一种wlan驱动实现方法

文档序号:7765385阅读:356来源:国知局
专利名称:一种wlan驱动实现方法
技术领域
本发明涉及无线通信领域,尤其涉及WLAN网络中无线网卡的驱动软件开发技术。
背景技术
随着无线网络技术的发展,其应用领域也不在不断的扩大,基于802. 11标准的 WLAN网络的使用范围早已不再局限于个人PC平台,而是深入到众多的嵌入式设备中,诸如数字家电、安防监控、工业应用等。相比于使用windows或Iinux操作系统的PC平台,嵌入式设备拥有较低的CPU性能和较少的硬件资源,因此多采用的是功能更简单的嵌入式操作系统,甚至是不使用任何的操作系统。通常WLAN网络的无线网卡驱动都是基于windows或 Iinux操作系统环境下实现,在不使用上述操作系统的环境下无法直接使用,而且由于不同的操作系统之间对于设备驱动程序实现的架构差异很大,当需要将在一个操作系统上开发的WLAN驱动移植到另外一个操作系统时需要做大量的移植工作,有时甚至是不可实现的。正是基于上述问题,本发明提出了一种方法,使得WLAN无线网卡驱动的实现可以不依赖于特定的操作系统环境,从而使WLAN驱动可以轻松的移植到任何的操作系统甚至是不使用操作系统的环境中运行。

发明内容
本发明提供一种不依赖特定操作系统的WLAN驱动实现方法,主要目的是使得在任何的操作系统甚至是不使用操作系统的环境下,都可以轻松的移植并运行按照本方法所实现的WLAN驱动程序,从而使用WLAN无线网络功能。本方法将WLAN驱动抽象为静态函数库,所有功能、操作均以接口函数的形式来体现,驱动实现不依赖任何的调度机制,所有操作均靠外部事件触发并实时处理完成。本方法将整个WLAN驱动抽象成三层,包括用来封装WLAN模块的硬件接口操作的硬件适配层、用来实现802. 11协议的协议处理层和用来封装用户控制与数据传输的应用接口层。


图1所示的是本发明所述的WLAN驱动软件结构。图2所示的是本发明所述的WLAN驱动系统控制流程。图3所示的是本发明所述的WLAN驱动数据传输流程。
具体实施例方式本发明提供了一种不依赖特定操作系统的WLAN驱动实现方法,目的是WLAN驱动可以移植运行在任何的操作系统甚至是不使用操作系统的环境下,以下结合附图,具体说明本发明。■基本设计概念1、静态函数库与事件驱动
根据本实现方法,WLAN驱动对外来说只是一组提供各种功能的函数库,从内部来说它有多个不同的事件状态机组成,驱动自身并无驻留后台运行,而是完全依靠外部事件来驱动。这些事件包括来自上层应用程序的用户命令、数据发送请求、来自底层硬件接口的接收数据请求以及定时器超时请求。对于主机系统发送给驱动的事件,全部由驱动提供的接口函数来输入;而对于驱动发送给系统的事件,则由驱动提供回调函数接口,主机系统向驱动注册事件回调函数,然后通过驱动调用事件回调函数的方式向主机系统发送事件。WLAN驱动软件内部不包含任何的调度、挂起等操作,所有接口函数全部直接返回。 对于有些函数执行完成时不能返回执行结果的操作,如加入网络命令,在操作完成后通过向系统发送事件的方式返回操作结果。2、抽象的数据收发机制根据本实现方法,WLAN驱动软件内部不实现真正的数据硬件收发功能,驱动内部的硬件适配层仅作为与主机系统的硬件驱动(如USB)接口的模块,用于驱动与主机硬件接口之间的数据传递。真正的通过硬件接口的数据收发工作(如usb接收/发送中断)由主机系统来实现。对于上行的数据(从硬件接口到WLAN驱动),驱动提供数据接收接口函数, 而对于下行的数据(从WLAN驱动到硬件接口),驱动提供回调函数接口,主机系统需要根据自身的系统来实现硬件接口数据发送的回调函数。3、定时器WLAN驱动软件内部包含一个定时器管理模块,用于内部的各种超时操作,驱动提供一个tick函数接口,所在的目标主机系统需周期性的调用该tick函数,作为驱动的周期时钟源。4、临界代码段根据本实现方法,WLAN驱动软件内部不具有线程同步等机制,所以对临界代码段的保护需要所在的主机系统来实现。WLAN驱动仅提供进出临界代码段的回调函数接口,主机系统可以根据自身情况实现具体的回调函数,如打开/关闭中断、使能/锁定系统调度寸。■软件实现架构1、软件结构如附图1所示,整个WLAN驱动软件大体上分为三层硬件适配层(HAL)、协议层 (PROTOCOL)和接口层(INF),包括用来封装WLAN模块的硬件接口操作的硬件适配层、用来实现802. 11协议的协议处理层和用来封装用户控制与数据传输的应用接口层。令硬件适配层本层用来实现用来封装WLAN模块的硬件接口操作,但并不实现真正的硬件收发操作,仅实现与主机系统的硬件接口驱动部分进行接口的功能。今协议层本层主要用来实现802. 11协议功能。今接口层本层是用来封装用户控制与数据传输接口功能,用户控制接口主要实现上层对 WLAN联网等操作的控制,而数据传输接口主要用来与主机系统的TCP/IP协议栈接口。2、系统控制流程
4
如附图2所示,主机系统通过调用驱动软件提供的命令接口函数来发出指令,对于无需等待的操作,直接通过命令接口函数返回结果。而对于那些需要一定的时间的操作, 驱动内部不进行挂起、等待等操作,而是函数直接返回。等到该操作完成以后,由事件回调接口将执行结果返回给主机系统。3、数据传输流程如附图3所示,上行数据流方向,主机系统的硬件接口驱动部分在接收中断中调用驱动的数据接收接口函数,该函数将数据搬移至接收缓冲区中(根据主机系统实现不同,可能仅进行指针偏移而不发生数据拷贝操作),随后的帧的重组、过滤、解析等操作均在接收缓冲区中进行。对于接收到的管理帧,将交由无线协议处理模块,而数据帧则进行格式转换后通过调用数据接收回调接口上交给主机系统。下行数据流方向,主机系统将准备发送的数据在缓冲区中准备好后调用驱动提供的数据发送接口函数,驱动将数据搬移至发送缓冲区(根据主机系统实现不同,可能仅进行指针偏移而不发生数据拷贝操作),随后的帧格式转换等操作均在发送缓冲区中进行。此外,无线协议处理模块组建的管理帧的发送也在发送缓冲区中完成。待发送帧组建完成后, 首先判断当前是否由数据正在发送,如果没有则将调用硬件发送回调接口将数据递交给主机系统的硬件接口驱动部分进行发送。否则,将当前帧复制到发送等待队列中。主机系统的硬件接口驱动部分在接收到数据发送完成中断后调用驱动提供的数据发送完成接口函数, 该函数将查询发送等待队列中是否有待发送数据,继续发送操作。
权利要求
1.一种不依赖特定操作系统的WLAN驱动实现方法,其特征在于本方法将WLAN驱动抽象为静态函数库,WLAN驱动提供各种功能的函数库,所有功能、操作均以接口函数的形式来体现,整个WLAN驱动分为三层用来封装WLAN模块的硬件接口操作的硬件适配层、用来实现802. 11协议功能的协议处理层和用来封装用户控制与数据传输的应用接口层;主机系统通过调用WLAN驱动提供的接口函数发出指令;WLAN驱动依靠外部事件来驱动,对于主机系统发送给WLAN驱动的事件,全部由驱动提供的接口函数来输入;对于驱动发送给系统的事件,由驱动提供回调函数接口,主机系统向驱动注册事件回调函数,然后通过驱动调用事件回调函数的方式向主机系统发送事件。
2.根据权利要求1所述的一种不依赖特定操作系统的WLAN驱动实现方法,其特征在于,WLAN驱动不包含任何的调度、挂起等操作,所有接口函数全部直接返回,对于函数执行完成时不能返回执行结果的操作,在操作完成后通过向主机系统发送事件的方式返回操作结果。
3.根据权利要求1所述的一种不依赖特定操作系统的WLAN驱动实现方法,其特征在于,WLAN驱动的实现不依赖任何的调度机制,所有操作均靠外部事件触发并实时处理完成。
4.根据权利要求1所述的一种不依赖特定操作系统的WLAN驱动实现方法,其特征在于,WLAN驱动不实现数据硬件收发功能,WLAN驱动内部的硬件适配层仅作为与主机系统的硬件驱动接口的模块,用于驱动与主机硬件接口之间的数据传递。
5.根据权利要求1所述的一种不依赖特定操作系统的WLAN驱动实现方法,其特征在于,WLAN驱动不具有线程同步等机制,WLAN驱动提供进出临界代码段的回调函数接口,主机系统根据实现具体的回调函数,对临界代码段的保护由所在的主机系统来实现。
全文摘要
本发明提供一种不依赖特定操作系统的WLAN驱动实现方法,主要目的是使得在任何的操作系统甚至是不使用操作系统的环境下,都可以轻松的移植并运行按照本方法所实现的WLAN驱动程序,从而使用WLAN无线网络功能。本方法将WLAN驱动抽象为静态函数库,所有功能、操作均以接口函数的形式来体现,驱动实现不依赖任何的调度机制,所有操作均靠外部事件触发并实时处理完成。整个WLAN驱动抽象成至少三层,包括用来封装WLAN模块的硬件接口操作的硬件适配层、用来实现802.11协议的协议处理层和用来封装用户控制与数据传输的应用接口层,并规定了系统控制与数据传输流程。
文档编号H04W80/00GK102467381SQ20101054682
公开日2012年5月23日 申请日期2010年11月16日 优先权日2010年11月16日
发明者余俊, 李庆, 王义锋 申请人:北京中电华大电子设计有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1