论文部分内容阅读
本文在分析了Linux下USB无线网卡驱动程序的环境、职责及行为后,总结出来了这些驱动程序的相同或者类似的行为与性质。本文以软件复用及软件分层的思想为依据,提出并设计了基于Linux的USB无线网卡通用驱动框架程序。本文通过研究不同类型USB无线网卡的驱动程序,寻找出了它们的相同点及不同点后对USB无线网卡通用驱动框架程序进行了整体设计,其中包括针对可复用部分的通用处理和针对不同点的参数文件部分处理。Linux的USB无线网卡驱动程序是工作在Linux的ieee802.11协议层之下,因此从某种角度上来说处理通用部分的框架程序是ieee802.11协议在驱动层的一种延伸,并为参数文件的编写创造了环境。针对不同点的参数或计算统统放到参数文件中,在每个参数文件中存放着某个型号USB无线网卡的硬件参数。当通用驱动框架程序发现了一个USB无线网卡后,从用户空间读取该硬件对应的参数文件并生成参数链。参数链中的参数都被包装成为指令的形式,每个参数都有一定的动作行为,通用驱动框架程序翻译并执行参数链中参数所要求动作。生成参数链后的通用驱动框架程序才是一个真正能够工作的驱动程序。参数链中的参数主要包含硬件初始化时需要的各种参数值和参数值的各种计算、硬件帧头部参数的添加与计算等等。然后添加各种锁来保护互斥资源。本文通过组建一个ad-hoc网络来测试驱动程序,实验结果证明:本文提出的通用驱动框架能够正确的生成参数链,能够正确处理参数链,并且驱动程序能够正常工作。当本文设计的USB无线网卡通用驱动框架程序被演变进化成熟后之后,编写USB无线网卡驱动程序的工作就转变为在用户空间编写硬件参数文件,这将大大的简化了编写USB无线网卡驱动程序的工作量及复杂度。