- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
华大电子Nos-Wlan模块在基于ARM7核处理器uC/OS-ii系统的移植
·模块源时钟
模块的源时钟时由系统tick定时器产生的,驱动向系统tick服务程序注册定时器超时回调函数,该函调函数进行计时,当10ms定时时间到时,该函数调用模块定时器超时处理回调函数hedrv_TickFunction。
·USB控制帧、Bulkin帧、Bulkout帧传输
本系统中USB帧的发送都是统一在USB传输主线程里处理的,USB相关帧的传输接口函数只需要完成相关发送数据结构的初始化后将其提交给USB传输处理主线程即可。USB控制帧传输函数hosts_UsbControl只需完成USB标准请求数据结构USB_DEV_REQ的初始化,USB BULKOUT帧传输函数hosts_UsbTx只需要完成USB请求数据结构urb的初始化,USB BULKIN帧传输函数usb_bulkin也是只需要完成USB请求数据结构urb的初始化。USB传输主线程usb_transfer_thread,主要处理USB控制帧和批量传输帧的发送及其USB传输完成后的处理,其中USB控制传输采用同步的通信方式,批量传输采用异步的方式,提交urb后即返回,等到传输完成后USB HOST驱动调用提交urb时注册的回调函数,该回调函数发送消息给USB传输主线程,由主线程完成对传输完成后的后续处理。USB传输完成后,主线程将根据完成帧的类型分别调用模块控制帧回调函数hedrv_UsbControlDone或者BULKOUT帧回调函数hedrv_UsbTxDone通知模块本次传输完成,后模块判断内部缓存队列是否为空,若不为空,则模块调用控制帧或者BULKOUT帧传输回调函数(hosts_UsbControl,hosts_UsbTx)继续发送。BULKIN帧传输完成后,传输完成回调函数将调用模块内部接口函数hedrv_UsbRx将接收到的数据帧提交模块处理后继续提交BULKIN帧以接受网卡上行数据。
· Nos-Wlan网络协议栈接口
该部分移植代码涉及的模块回调函数有:hedrv_AllocateNetBuf,hedrv_NetSendNetBuf及hedrv_NetSend,需要用户实现的模块回调函数是hosts_NetRecv。其中hedrv_NetSend是hedrv_AllocateNetBuf和hedrv_NetSendNetBuf的综合,hedrv_AllocateNetBuf用于向模块申请发送内存,hedrv_NetSendNetBuf进行发送操作,而hedrv_NetSend函数则是将用户数据拷贝到模块内部所申请的动态内存里进行相关处理及发送。用户实现hosts_NetRecv回调函数用于处理网卡接收的数据帧,其中数据帧是以以太网包的形式由模块内部调用该函数以提交给用户进行处理的。
调用模块MAC帧发送函数需要用户将需要发送的数据包打包成以太网数据包后提交模块发送,调用函数hedrv_NetSend,用户只需将打包的以太网数据包和长度传给该函数即可,模块内部将完成缓存空间的申请和释放,用户也可以调用函数hedrv_AllocateNetBuf自行申请缓存空间并将以太网数据包拷贝至空间后调用函数hedrv_NetSendNetBuf进行发送,申请的空间不需要用户进行释放操作,模块内部将会在发送成功后自行释放。
当网卡接收到MAC数据帧时,模块将调用回调函数hosts_NetRecv提交用户处理,该函数由用户实现,提交该函数的MAC数据模块将其打包成以太网数据包,用户只需要按以太网数据包处理即可。
本文小结
本文详细介绍了华大电子Nos-Wlan模块在LPC2478处理器uC/OS-ii系统上的移植,整个项目周期为2周,其中系统CPU主频为40MHz,Nos-Wlan模块在该平台下吞吐可达4Mbps,稳定通信可达72小时不断网。通过该系统的移植,证明了华大电子Nos-Wlan模块能够加速客户产品无线功能的升级。
参考文献
[1] 北京中电华大电子设计有限公司. Nos-Wlan软件用户手册[Z]. 北京:北京中电华大电子设计有限公司,2009.
[2] Compaq,Microsoft,National Semiconductor.Open Host Controller Interface Specification for USB[S].1999.
[3] Compaq,Hewlett-Packard,Intel,Lucent,Microsoft,NEC,Philips.Universal Serial Bus Specification Revision 1.1 [S].1998.
[4] 邵贝贝等. 嵌入式实时操作系统uC/OS-II[M]. 北京:北京航空航天大学出版社,2006.
[5] NXP Semiconductors.LPC24XX User manual Rev.04[S].2009.
作者:余俊
北京中电华大电子设计有限责任公司