华大电子Nos-Wlan模块在基于ARM7核处理器uC/OS-ii系统的移植

发布时间:2010-7-27 09:56    发布者:嵌入式公社
关键词: ARM7 , Nos-Wlan
引言

目前,在无线监控、工业控制、视频传输等行业应用中,嵌入式无线系统主要采用以NORDIC解决方案为代表的无操作系统环境,该方案由“CPU+无线数传模块” 构成,能够实现短距离低带宽无线通信。为满足这种需求,北京中电华大电子设计有限责任公司(以下简称华大电子)适时的推出了不依赖于任何操作系统的 Nos-Wlan模块以加速现有产品的无线功能的升级,模块支持国内(WAPI)/国际(802.11i)安全标准。本文主要介绍了华大电子Nos- Wlan模块在基于ARM7核处理器LPC2478的uC/OS-ii环境下的移植。

Nos-Wlan模块介绍

Nos- Wlan系列模块产品是为了满足工业应用、安防监控等领域中,现有产品的无线功能升级的需要而研发的,其最大的特点在于:它提供了一个不基于任何操作系统的驱动软件,可以集成到任何的系统平台中运行,并实现高速的数据传输,使得没有操作系统也能使用Wi-Fi进行视频传输成为可能。Nos-Wlan产品硬件如图1所示:

1.jpg
图1:TLG09UB09。

Nos-Wlan其驱动软件结构如图2所示:

2.jpg
图2:Nos-Wlan驱动结构。

Nos-Wlan模块集成到主机系统中的位置如图3所示:

3.jpg
图3:Nos-Wlan在主机系统的位置。

LPC2478处理器uC/OS-ii系统框图

该系统以NXP的LPC2478处理器为核心,外围集成了FLASH,SDRAM,UART模块,以太网接口模块,USB OTG接口模块,LCD液晶屏和触摸屏模块,以及以FPGA为核心的视频采集模块以及华大电子的Nos-Wlan模块,该系统主要应用于视频监控领域,其系统硬件框架如图4所示:

4.jpg
图4:系统硬件框架。

Nos-Wlan模块软件移植

根据华大电子Nos-Wlan软件用户手册,Nos-Wlan模块软件移植所调用的模块内部接口函数有:hedrv_Init,hedrv_UsbPlugIn,hedrv_UsbPullOut,hedrv_UsbRx,hedrv_UsbTxDone,hedrv_UsbControlDone,hedrv_TickFunction,所需要实现的模块内部回调函数有:hosts_UsbHostReset,hosts_UsbTx,hosts_UsbControl,Nos-Wlan 模块软件移植代码部分主要实现模块内部的初始化,模块内部所使用源时钟注册,USB控制帧及批量传输帧的发送和接收。其中,系统USB HOST(OHCI)驱动是基于周立功公司所提供的基于U盘的OHCI驱动修改而来,以适应USB无线网卡的需求。

·模块初始化

模块初始化函数aq3_usb_init,完成整个模块的初始化,包括Nos Wi-Fi模块内部内存池的初始化(调用模块接口函数hedrv_Init)、USB传输部分主数据结构的初始化、USB传输主线程的创建、模块内部源时钟的初始化及网卡的初始化(调用模块接口函数hedrv_UsbPlugIn),网卡初始化完成后模块内部会调用用户注册的初始化完成回调函数 (DevInitDone,用户实现),该函数由网卡初始化函数hedrv_UsbPlugIn的参数传入。

·模块的卸载

模块卸载函数aq3_usb_exit,完成整个模块的卸载,包块模块主源时钟的释放、Nos Wi-Fi模块的卸载(调用模块接口函数hedrv_UsbPullOut)及所申请资源的释放等。

Nos-Wlan模块临界保护的实现

由于ucos-ii是实时的多任务嵌入式操作系统,模块需要对相关数据结构进行临界保护,其实现只需要使用ucos-ii提供的临界保护函数即可:

void hosts_EnterCritical (void)
{
OS_ENTER_CRITICAL();
}
void hosts_LeaveCritical (void)
{
OS_EXIT_CRITICAL();
}

·模块源时钟

模块的源时钟时由系统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.

作者:北京中电华大电子设计有限责任公司 余俊
本文地址:https://www.eechina.com/thread-17242-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
嵌入式公社 发表于 2010-7-27 09:57:47
最新的文章
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表