0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

华大电子Nos- Wlan模块实现应用系统的移植操作

电子设计 来源:电子技术应用 作者:电子技术应用 2021-05-25 11:17 次阅读

引言

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

Nos-Wlan模块介绍

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

图1:TLG09UB09。

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

o4YBAGCsbLiAXlvoAAFrFGtW9Mc631.png

图2:Nos-Wlan驱动结构。

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

pIYBAGCsbK2ACTYyAACifqLwRAk980.png

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

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

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

pIYBAGCsbKeAD28WAABjAz1kCVo500.png

图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模块能够加速客户产品无线功能的升级。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19083

    浏览量

    228739
  • 嵌入式
    +关注

    关注

    5056

    文章

    18955

    浏览量

    301683
  • 无线
    +关注

    关注

    31

    文章

    5414

    浏览量

    172932
收藏 人收藏

    评论

    相关推荐

    如何进行Nos-Wlan移植

    需求,北京中电电子设计有限责任公司(以下简称电子)适时的推出了不依赖于任何操作系统Nos-Wl
    发表于 10-22 06:07

    基于STM32MP157的Linux操作系统移植

    免费课程分享:《基于STM32MP157的Linux操作系统移植清远见FS-MP1A开发板(主控芯片stm32mp157)获ST官方推荐,开发板入门系列视频上线ST官网!ST官网课程链接
    发表于 08-03 06:24

    大单片机移植RTThread操作系统教程及代码

    1.大单片机型号选择2.RTThread源码下载2.1 .资料说明2.3.源码下载3.移植过程3.1.新建华大单片机最小系统工程模板,这里不展开3.2.在Keil MDK加入Rtthread代码
    发表于 06-27 14:41

    基于S3C2410芯片Linux-Wlan-ng的移植和应用

    本文简单介绍针对S3C2410芯片和Linux操作系统平台扩展的USB无线网络模块,USB图像采集模块和数控系统模块。给出了Linux-
    发表于 09-02 08:29 13次下载

    基于S3C2410芯片Linux-Wlan-ng的移植和应用

    本文简单介绍针对S3C2410芯片和Linux操作系统平台扩展的USB无线网络模块,USB图像采集模块和数控系统模块。给出了Linux-
    发表于 12-23 16:37 22次下载

    操作系统下的Wi-Fi应用方案:Nos-WiFi

    操作系统下的Wi-Fi应用方案:Nos-WiFi WLAN作为无线局域网通信中应用最为广泛的技术,早已从PC/笔记本市场,逐渐延伸到了音视频、手持终端、无线城市覆盖、工业应
    发表于 03-26 09:05 3244次阅读

    什么是网络操作系统(NOS)

    什么是网络操作系统(NOS) 网络操作系统(NOS)是网络的心脏和灵魂,是向网络计算机提供服务的特殊的操作系统它在计算机
    发表于 04-03 15:07 2886次阅读

    Nos-Wlan模块在无操作系统环境下移植技巧

    WLAN技术已经在我们的工作和生活中广泛应用并且每一天都在增加其重要性。WLAN可以为用户提供前所未有的灵活性、便利性及显著提高工作效率
    发表于 03-07 09:03 906次阅读

    嵌入式操作系统移植

    嵌入式操作系统移植,感兴趣的小伙伴们可以看看。
    发表于 11-08 18:13 3次下载

    在uC/OS-ii环境下实现Nos-Wlan模块移植操作

    需求,北京中电电子设计有限责任公司(以下简称电子)适时的推出了不依赖于任何操作系统Nos-Wl
    的头像 发表于 01-15 08:00 1352次阅读

    嵌入式操作系统FreeRTOS的原理以及如何实现移植的方法说明

    针对嵌入式FreeRTOS操作系统进行介绍与分析,并结合时下流行的uC/OS-Ⅱ操作系统进行类比。在移植上,详细分析了FreeRTOS操作系统在基于STM32平台
    发表于 01-14 15:49 24次下载
    嵌入式<b class='flag-5'>操作系统</b>FreeRTOS的原理以及如何<b class='flag-5'>实现</b><b class='flag-5'>移植</b>的方法说明

    嵌入式操作系统FREERTOS的移植.

    嵌入式操作系统FREERTOS的移植.(济南嵌入式开发招聘)-嵌入式操作系统FREERTOS移植                 
    发表于 07-30 12:01 15次下载
    嵌入式<b class='flag-5'>操作系统</b>FREERTOS的<b class='flag-5'>移植</b>.

    嵌入式实时操作系统FreeRTOS在ARM7上移植实现

    嵌入式实时操作系统FreeRTOS在ARM7上移植实现(嵌入式开发工程师待遇)-嵌入式实时操作系统FreeRTOS在ARM7上移植
    发表于 07-30 12:05 20次下载
    嵌入式实时<b class='flag-5'>操作系统</b>FreeRTOS在ARM7上<b class='flag-5'>移植</b><b class='flag-5'>实现</b>

    WLAN驱动架构的组成和各部件的功能

    作者:徐赛 WLAN驱动概述 WLAN 是基于 HDF(Hardware Driver Foundation)驱动框架开发的模块,该模块实现
    的头像 发表于 09-05 10:46 6324次阅读
    <b class='flag-5'>WLAN</b>驱动架构的组成和各部件的功能

    大单片机移植RTThread操作系统

    大单片机移植RTThread-国产操作系统文章目录大单片机移植RTThread-国产操作系统
    发表于 11-17 17:21 53次下载
    <b class='flag-5'>华</b>大单片机<b class='flag-5'>移植</b>RTThread<b class='flag-5'>操作系统</b>