摘要:2USB网卡无线网络功能的实现2.1无线网卡的软件管理层实现嵌入式系统硬件部分建立好后,需要建立软件系统。本系统中采用了vivi做为BOOTLOADER(引导启动程序),嵌入式Linux作为操作系统,以Cramfs作为主文件系统,为支持可读写功能还添加了Jffs2文件系统。接着,需要软件上实现无线网卡的功能。无线网卡的软件包括无线网
2 USB网卡无线网络功能的实现
2.1 无线网卡的软件管理层实现
嵌入式系统硬件部分建立好后,需要建立软件系统。本系统中采用了vivi做为BOOTLOADER(引导启动程序),嵌入式Linux作为操作系统,以Cramfs作为主文件系统,为支持可读写功能还添加了Jffs2文件系统。 接着,需要软件上实现无线网卡的功能。
无线网卡的软件包括无线网卡固件(Firmware)、无线网卡驱动程序(Driver)和无线网卡配置管理程序三部分。
无线网卡的软件实现结构图如图3所示。固件是无线网卡上最基本的控制系统,主要基于MAC芯片来实现对整个网卡的控制和管理,并向下提供与物理层的接口,向上提供一个程序开发接口,为程序开发附加的移动主机应用程序提供支持。在嵌入式系统中,IEEE802.11提供的服务,包括认证、解除认证、登录、重登录等均由固件完成。
无线网卡的驱动程序使用固件提供的软件编程接口,对无线网卡进行控制,配合固件完成数据的收发以及对信息帧的处理。无线网卡驱动程序主要是针对相应的无线网卡芯片进行设计的,不同的芯片,它们的固件和寄存器相关设置存在很大的差异。除了要完成对下层的控制外,无线网卡驱动还要向上层应用程序和管理程序提供操作和配置无线网卡的应用程序编程接口,以实现其网络传输功能。
所有的Linux网络驱动程序遵循通用的接口。设计时采用的是面向对象的方法。一个设备就是一个对象(device结构),它内部有自己的数据和方法。每一个设备的方法被调用时的第一个参数都是这个设备对象本身,这样这个方法就可以存取自身的数据(类似面向对象程序设计时的this引用)。一个网络设备最基本的方法有初始化、发送和接收。
初始化程序完成硬件的初始化,device中变量的初始化和系统资源的申请,发送程序是在驱动程序的上层协议层有数据要发送时自动调用的。一般驱动程序中不对发送数据进行缓存,直接使用硬件的发送功能把数据发送出去。接收数据一般是通过硬件中断来通知的。在中断处理程序里,把硬件帧信息填入一个 skbuff结构中,然后调用 netif_rx()传递给上层处理。
本系统的无线网卡驱动接口主要实现了以下接口函数:
无线网卡配置管理程序利用驱动程序提供的信息查询和设置接口,向用户实时提供无线网卡的状态,同时利用该管理软什可以实现对IP、SSID等无线刚卡参数进行必要的配置。常见的无线网卡配置管理程序有iwconfig、iwlistt、iwspy、iwpriv等。这里介绍几个主要的无线网卡配置管理程序:
通信工程师备考资料免费领取
去领取