0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

華大電子Nos- Wlan模塊實現(xiàn)應用系統(tǒng)的移植操作

電子設計 ? 來源:電子技術(shù)應用 ? 作者:電子技術(shù)應用 ? 2021-05-25 11:17 ? 次閱讀

引言

目前,在無線監(jiān)控、工業(yè)控制、視頻傳輸?shù)刃袠I(yè)應用中,嵌入式無線系統(tǒng)主要采用以NORDIC解決方案為代表的無操作系統(tǒng)環(huán)境,該方案由“CPU+無線數(shù)傳模塊” 構(gòu)成,能夠?qū)崿F(xiàn)短距離低帶寬無線通信。為滿足這種需求,北京中電華大電子設計有限責任公司(以下簡稱華大電子)適時的推出了不依賴于任何操作系統(tǒng)的 Nos-Wlan模塊以加速現(xiàn)有產(chǎn)品的無線功能的升級,模塊支持國內(nèi)(WAPI)/國際(802.11i)安全標準。本文主要介紹了華大電子Nos- Wlan模塊在基于ARM7核處理器LPC2478的uC/OS-ii環(huán)境下的移植。

Nos-Wlan模塊介紹

Nos- Wlan系列模塊產(chǎn)品是為了滿足工業(yè)應用、安防監(jiān)控等領域中,現(xiàn)有產(chǎn)品的無線功能升級的需要而研發(fā)的,其最大的特點在于:它提供了一個不基于任何操作系統(tǒng)的驅(qū)動軟件,可以集成到任何的系統(tǒng)平臺中運行,并實現(xiàn)高速的數(shù)據(jù)傳輸,使得沒有操作系統(tǒng)也能使用Wi-Fi進行視頻傳輸成為可能。Nos-Wlan產(chǎn)品硬件如圖1所示:

圖1:TLG09UB09。

Nos-Wlan其驅(qū)動軟件結(jié)構(gòu)如圖2所示:

o4YBAGCsbLiAXlvoAAFrFGtW9Mc631.png

圖2:Nos-Wlan驅(qū)動結(jié)構(gòu)。

Nos-Wlan模塊集成到主機系統(tǒng)中的位置如圖3所示:

pIYBAGCsbK2ACTYyAACifqLwRAk980.png

圖3:Nos-Wlan在主機系統(tǒng)的位置。

LPC2478處理器uC/OS-ii系統(tǒng)框圖

該系統(tǒng)以NXP的LPC2478處理器為核心,外圍集成了FLASH,SDRAMUART模塊,以太網(wǎng)接口模塊,USB OTG接口模塊,LCD液晶屏和觸摸屏模塊,以及以FPGA為核心的視頻采集模塊以及華大電子的Nos-Wlan模塊,該系統(tǒng)主要應用于視頻監(jiān)控領域,其系統(tǒng)硬件框架如圖4所示:

pIYBAGCsbKeAD28WAABjAz1kCVo500.png

圖4:系統(tǒng)硬件框架。

Nos-Wlan模塊軟件移植

根據(jù)華大電子Nos-Wlan軟件用戶手冊,Nos-Wlan模塊軟件移植所調(diào)用的模塊內(nèi)部接口函數(shù)有:hedrv_Init,hedrv_UsbPlugIn,hedrv_UsbPullOut,hedrv_UsbRx,hedrv_UsbTxDone,hedrv_UsbControlDone,hedrv_TickFunction,所需要實現(xiàn)的模塊內(nèi)部回調(diào)函數(shù)有:hosts_UsbHostReset,hosts_UsbTx,hosts_UsbControl,Nos-Wlan 模塊軟件移植代碼部分主要實現(xiàn)模塊內(nèi)部的初始化,模塊內(nèi)部所使用源時鐘注冊,USB控制幀及批量傳輸幀的發(fā)送和接收。其中,系統(tǒng)USB HOST(OHCI)驅(qū)動是基于周立功公司所提供的基于U盤的OHCI驅(qū)動修改而來,以適應USB無線網(wǎng)卡的需求。

·模塊初始化

模塊初始化函數(shù)aq3_usb_init,完成整個模塊的初始化,包括Nos Wi-Fi模塊內(nèi)部內(nèi)存池的初始化(調(diào)用模塊接口函數(shù)hedrv_Init)、USB傳輸部分主數(shù)據(jù)結(jié)構(gòu)的初始化、USB傳輸主線程的創(chuàng)建、模塊內(nèi)部源時鐘的初始化及網(wǎng)卡的初始化(調(diào)用模塊接口函數(shù)hedrv_UsbPlugIn),網(wǎng)卡初始化完成后模塊內(nèi)部會調(diào)用用戶注冊的初始化完成回調(diào)函數(shù) (DevInitDone,用戶實現(xiàn)),該函數(shù)由網(wǎng)卡初始化函數(shù)hedrv_UsbPlugIn的參數(shù)傳入。

·模塊的卸載

模塊卸載函數(shù)aq3_usb_exit,完成整個模塊的卸載,包塊模塊主源時鐘的釋放、Nos Wi-Fi模塊的卸載(調(diào)用模塊接口函數(shù)hedrv_UsbPullOut)及所申請資源的釋放等。

Nos-Wlan模塊臨界保護的實現(xiàn)

由于ucos-ii是實時的多任務嵌入式操作系統(tǒng),模塊需要對相關數(shù)據(jù)結(jié)構(gòu)進行臨界保護,其實現(xiàn)只需要使用ucos-ii提供的臨界保護函數(shù)即可:

void hosts_EnterCritical (void)

{

OS_ENTER_CRITICAL();

}

void hosts_LeaveCritical (void)

{

OS_EXIT_CRITICAL();

}

·模塊源時鐘

模塊的源時鐘時由系統(tǒng)tick定時器產(chǎn)生的,驅(qū)動向系統(tǒng)tick服務程序注冊定時器超時回調(diào)函數(shù),該函調(diào)函數(shù)進行計時,當10ms定時時間到時,該函數(shù)調(diào)用模塊定時器超時處理回調(diào)函數(shù)hedrv_TickFunction。

·USB控制幀、Bulkin幀、Bulkout幀傳輸

本系統(tǒng)中USB幀的發(fā)送都是統(tǒng)一在USB傳輸主線程里處理的,USB相關幀的傳輸接口函數(shù)只需要完成相關發(fā)送數(shù)據(jù)結(jié)構(gòu)的初始化后將其提交給USB傳輸處理主線程即可。USB控制幀傳輸函數(shù)hosts_UsbControl只需完成USB標準請求數(shù)據(jù)結(jié)構(gòu)USB_DEV_REQ的初始化,USB BULKOUT幀傳輸函數(shù)hosts_UsbTx只需要完成USB請求數(shù)據(jù)結(jié)構(gòu)urb的初始化,USB BULKIN幀傳輸函數(shù)usb_bulkin也是只需要完成USB請求數(shù)據(jù)結(jié)構(gòu)urb的初始化。USB傳輸主線程 usb_transfer_thread,主要處理USB控制幀和批量傳輸幀的發(fā)送及其USB傳輸完成后的處理,其中USB控制傳輸采用同步的通信方式,批量傳輸采用異步的方式,提交urb后即返回,等到傳輸完成后USB HOST驅(qū)動調(diào)用提交urb時注冊的回調(diào)函數(shù),該回調(diào)函數(shù)發(fā)送消息給USB傳輸主線程,由主線程完成對傳輸完成后的后續(xù)處理。USB傳輸完成后,主線程將根據(jù)完成幀的類型分別調(diào)用模塊控制幀回調(diào)函數(shù)hedrv_UsbControlDone或者BULKOUT幀回調(diào)函數(shù)hedrv_UsbTxDone通知模塊本次傳輸完成,后模塊判斷內(nèi)部緩存隊列是否為空,若不為空,則模塊調(diào)用控制幀或者BULKOUT幀傳輸回調(diào)函數(shù) (hosts_UsbControl,hosts_UsbTx)繼續(xù)發(fā)送。BULKIN幀傳輸完成后,傳輸完成回調(diào)函數(shù)將調(diào)用模塊內(nèi)部接口函數(shù) hedrv_UsbRx將接收到的數(shù)據(jù)幀提交模塊處理后繼續(xù)提交BULKIN幀以接受網(wǎng)卡上行數(shù)據(jù)。

· Nos-Wlan網(wǎng)絡協(xié)議棧接口

該部分移植代碼涉及的模塊回調(diào)函數(shù)有:hedrv_AllocateNetBuf,hedrv_NetSendNetBuf及hedrv_NetSend,需要用戶實現(xiàn)的模塊回調(diào)函數(shù)是hosts_NetRecv。其中hedrv_NetSend是hedrv_AllocateNetBuf和 hedrv_NetSendNetBuf的綜合,hedrv_AllocateNetBuf用于向模塊申請發(fā)送內(nèi)存,hedrv_NetSendNetBuf進行發(fā)送操作,而hedrv_NetSend函數(shù)則是將用戶數(shù)據(jù)拷貝到模塊內(nèi)部所申請的動態(tài)內(nèi)存里進行相關處理及發(fā)送。用戶實現(xiàn)hosts_NetRecv回調(diào)函數(shù)用于處理網(wǎng)卡接收的數(shù)據(jù)幀,其中數(shù)據(jù)幀是以以太網(wǎng)包的形式由模塊內(nèi)部調(diào)用該函數(shù)以提交給用戶進行處理的。

調(diào)用模塊MAC幀發(fā)送函數(shù)需要用戶將需要發(fā)送的數(shù)據(jù)包打包成以太網(wǎng)數(shù)據(jù)包后提交模塊發(fā)送,調(diào)用函數(shù) hedrv_NetSend,用戶只需將打包的以太網(wǎng)數(shù)據(jù)包和長度傳給該函數(shù)即可,模塊內(nèi)部將完成緩存空間的申請和釋放,用戶也可以調(diào)用函數(shù) hedrv_AllocateNetBuf自行申請緩存空間并將以太網(wǎng)數(shù)據(jù)包拷貝至空間后調(diào)用函數(shù)hedrv_NetSendNetBuf進行發(fā)送,申請的空間不需要用戶進行釋放操作,模塊內(nèi)部將會在發(fā)送成功后自行釋放。

當網(wǎng)卡接收到MAC數(shù)據(jù)幀時,模塊將調(diào)用回調(diào)函數(shù)hosts_NetRecv提交用戶處理,該函數(shù)由用戶實現(xiàn),提交該函數(shù)的MAC數(shù)據(jù)模塊將其打包成以太網(wǎng)數(shù)據(jù)包,用戶只需要按以太網(wǎng)數(shù)據(jù)包處理即可。

本文小結(jié)

本文詳細介紹了華大電子Nos-Wlan模塊在LPC2478處理器uC/OS-ii系統(tǒng)上的移植,整個項目周期為2周,其中系統(tǒng)CPU主頻為 40MHz,Nos-Wlan模塊在該平臺下吞吐可達4Mbps,穩(wěn)定通信可達72小時不斷網(wǎng)。通過該系統(tǒng)的移植,證明了華大電子Nos-Wlan模塊能夠加速客戶產(chǎn)品無線功能的升級。

責任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19100

    瀏覽量

    228813
  • 嵌入式
    +關注

    關注

    5059

    文章

    18973

    瀏覽量

    302010
  • 無線
    +關注

    關注

    31

    文章

    5417

    瀏覽量

    172969
收藏 人收藏

    評論

    相關推薦

    如何進行Nos-Wlan移植?

    需求,北京中電電子設計有限責任公司(以下簡稱電子)適時的推出了不依賴于任何操作系統(tǒng)Nos-Wl
    發(fā)表于 10-22 06:07

    基于STM32MP157的Linux操作系統(tǒng)移植

    免費課程分享:《基于STM32MP157的Linux操作系統(tǒng)移植清遠見FS-MP1A開發(fā)板(主控芯片stm32mp157)獲ST官方推薦,開發(fā)板入門系列視頻上線ST官網(wǎng)!ST官網(wǎng)課程鏈接
    發(fā)表于 08-03 06:24

    大單片機移植RTThread操作系統(tǒng)教程及代碼

    1.大單片機型號選擇2.RTThread源碼下載2.1 .資料說明2.3.源碼下載3.移植過程3.1.新建華大單片機最小系統(tǒng)工程模板,這里不展開3.2.在Keil MDK加入Rtthread代碼
    發(fā)表于 06-27 14:41

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

    本文簡單介紹針對S3C2410芯片和Linux操作系統(tǒng)平臺擴展的USB無線網(wǎng)絡模塊,USB圖像采集模塊和數(shù)控系統(tǒng)模塊。給出了Linux-
    發(fā)表于 09-02 08:29 ?13次下載

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

    本文簡單介紹針對S3C2410芯片和Linux操作系統(tǒng)平臺擴展的USB無線網(wǎng)絡模塊,USB圖像采集模塊和數(shù)控系統(tǒng)模塊。給出了Linux-
    發(fā)表于 12-23 16:37 ?22次下載

    操作系統(tǒng)下的Wi-Fi應用方案:Nos-WiFi

    操作系統(tǒng)下的Wi-Fi應用方案:Nos-WiFi WLAN作為無線局域網(wǎng)通信中應用最為廣泛的技術(shù),早已從PC/筆記本市場,逐漸延伸到了音視頻、手持終端、無線城市覆蓋、工業(yè)應
    發(fā)表于 03-26 09:05 ?3245次閱讀

    什么是網(wǎng)絡操作系統(tǒng)(NOS)

    什么是網(wǎng)絡操作系統(tǒng)(NOS) 網(wǎng)絡操作系統(tǒng)(NOS)是網(wǎng)絡的心臟和靈魂,是向網(wǎng)絡計算機提供服務的特殊的操作系統(tǒng)它在計算機
    發(fā)表于 04-03 15:07 ?2892次閱讀

    Nos-Wlan模塊在無操作系統(tǒng)環(huán)境下移植技巧

    WLAN技術(shù)已經(jīng)在我們的工作和生活中廣泛應用并且每一天都在增加其重要性。WLAN可以為用戶提供前所未有的靈活性、便利性及顯著提高工作效率
    發(fā)表于 03-07 09:03 ?907次閱讀

    嵌入式操作系統(tǒng)移植

    嵌入式操作系統(tǒng)移植,感興趣的小伙伴們可以看看。
    發(fā)表于 11-08 18:13 ?3次下載

    在uC/OS-ii環(huán)境下實現(xiàn)Nos-Wlan模塊移植操作

    需求,北京中電電子設計有限責任公司(以下簡稱電子)適時的推出了不依賴于任何操作系統(tǒng)Nos-Wl
    的頭像 發(fā)表于 01-15 08:00 ?1358次閱讀

    嵌入式操作系統(tǒng)FreeRTOS的原理以及如何實現(xiàn)移植的方法說明

    針對嵌入式FreeRTOS操作系統(tǒng)進行介紹與分析,并結(jié)合時下流行的uC/OS-Ⅱ操作系統(tǒng)進行類比。在移植上,詳細分析了FreeRTOS操作系統(tǒng)在基于STM32平臺
    發(fā)表于 01-14 15:49 ?24次下載
    嵌入式<b class='flag-5'>操作系統(tǒng)</b>FreeRTOS的原理以及如何<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>移植</b>的方法說明

    嵌入式操作系統(tǒng)FREERTOS的移植.

    嵌入式操作系統(tǒng)FREERTOS的移植.(濟南嵌入式開發(fā)招聘)-嵌入式操作系統(tǒng)FREERTOS移植? ? ? ? ? ? ? ? ?
    發(fā)表于 07-30 12:01 ?15次下載
    嵌入式<b class='flag-5'>操作系統(tǒng)</b>FREERTOS的<b class='flag-5'>移植</b>.

    嵌入式實時操作系統(tǒng)FreeRTOS在ARM7上移植實現(xiàn)

    嵌入式實時操作系統(tǒng)FreeRTOS在ARM7上移植實現(xiàn)(嵌入式開發(fā)工程師待遇)-嵌入式實時操作系統(tǒng)FreeRTOS在ARM7上移植
    發(fā)表于 07-30 12:05 ?20次下載
    嵌入式實時<b class='flag-5'>操作系統(tǒng)</b>FreeRTOS在ARM7上<b class='flag-5'>移植</b><b class='flag-5'>實現(xiàn)</b>

    WLAN驅(qū)動架構(gòu)的組成和各部件的功能

    作者:徐賽 WLAN驅(qū)動概述 WLAN 是基于 HDF(Hardware Driver Foundation)驅(qū)動框架開發(fā)的模塊,該模塊實現(xiàn)
    的頭像 發(fā)表于 09-05 10:46 ?6335次閱讀
    <b class='flag-5'>WLAN</b>驅(qū)動架構(gòu)的組成和各部件的功能

    大單片機移植RTThread操作系統(tǒng)

    大單片機移植RTThread-國產(chǎn)操作系統(tǒng)文章目錄大單片機移植RTThread-國產(chǎn)操作系統(tǒng)
    發(fā)表于 11-17 17:21 ?53次下載
    <b class='flag-5'>華</b>大單片機<b class='flag-5'>移植</b>RTThread<b class='flag-5'>操作系統(tǒng)</b>