精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

在uC/OS-ii環境下實現Nos-Wlan模塊的移植操作

電子設計 ? 來源:網絡整理 ? 作者:佚名 ? 2020-01-15 08:00 ? 次閱讀

引言

目前,在無線監控、工業控制、視頻傳輸等行業應用中,嵌入式無線系統主要采用以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所示:

在uC/OS-ii環境下實現Nos-Wlan模塊的移植操作

圖2:Nos-Wlan驅動結構。

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

在uC/OS-ii環境下實現Nos-Wlan模塊的移植操作

圖3:Nos-Wlan在主機系統的位置。

LPC2478處理器uC/OS-ii系統框圖

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

在uC/OS-ii環境下實現Nos-Wlan模塊的移植操作

圖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

    文章

    19170

    瀏覽量

    229187
  • 無線
    +關注

    關注

    31

    文章

    5431

    瀏覽量

    173101
  • 操作系統
    +關注

    關注

    37

    文章

    6743

    瀏覽量

    123198
收藏 人收藏

    評論

    相關推薦

    uC/OS-II簡介

    毫秒或100毫秒發生一次,時間頻率取決于用戶對硬件系統的定時器編程來實現。中斷發生的時間間隔是固定不變的,該中斷也成為一個時鐘節拍。uC/OS-II要求用戶定時中斷的服務程序中,調用
    發表于 10-08 09:11

    uC/OS-II簡介

    毫秒或100毫秒發生一次,時間頻率取決于用戶對硬件系統的定時器編程來實現。中斷發生的時間間隔是固定不變的,該中斷也成為一個時鐘節拍。uC/OS-II要求用戶定時中斷的服務程序中,調用
    發表于 10-11 09:26

    uC/OS-II簡介

    毫秒或100毫秒發生一次,時間頻率取決于用戶對硬件系統的定時器編程來實現。中斷發生的時間間隔是固定不變的,該中斷也成為一個時鐘節拍。uC/OS-II要求用戶定時中斷的服務程序中,調用
    發表于 10-15 11:03

    uC/OS-II簡介

    毫秒或100毫秒發生一次,時間頻率取決于用戶對硬件系統的定時器編程來實現。中斷發生的時間間隔是固定不變的,該中斷也成為一個時鐘節拍。uC/OS-II要求用戶定時中斷的服務程序中,調用
    發表于 10-20 09:35

    uC/OS-II簡介

    毫秒或100毫秒發生一次,時間頻率取決于用戶對硬件系統的定時器編程來實現。中斷發生的時間間隔是固定不變的,該中斷也成為一個時鐘節拍。uC/OS-II要求用戶定時中斷的服務程序中,調用
    發表于 10-25 09:59

    uC/OS-II簡介

    毫秒或100毫秒發生一次,時間頻率取決于用戶對硬件系統的定時器編程來實現。中斷發生的時間間隔是固定不變的,該中斷也成為一個時鐘節拍。uC/OS-II要求用戶定時中斷的服務程序中,調用
    發表于 10-27 09:29

    如何進行Nos-Wlan移植

    目前,無線監控、工業控制、視頻傳輸等行業應用中,嵌入式無線系統主要采用以NORDIC解決方案為代表的無操作系統環境,該方案由“CPU+無線數傳模塊”構成,能夠
    發表于 10-22 06:07

    uC/OS-II移植過程記錄

    怎么去移植uC/OS-II系統呢?移植uC/OS-II系統的過程是怎樣的?
    發表于 11-01 07:38

    為什么想學uc/OS-II

    請大家先想一,為什么想學uc/OS-II?通過例程學習單片機的時候有沒有這樣的疑問,為什么例程是一個個孤立的呢,能否整合在一起?RTOS就是這樣一個多線程運行的好工具,我選取UCO
    發表于 02-18 07:16

    μC/OS-II Nios上的移植

    首先介紹嵌入式實時操作系統μC/OS-II 和Nios 嵌入式處理器, 分析μC/OS-II 移植對目標處理器的要求, 重點介紹μC/
    發表于 03-08 09:31 ?90次下載

    μC OS-II Nios 上的移植1

    首先介紹嵌入式實時操作系統μC/OS-II 和Nios 嵌入式處理器, 分析μC/OS-II 移植對目標處理器的要求, 重點介紹μC/OS-II
    發表于 05-16 14:32 ?28次下載

    μC/OS-IIPC機上移植的設計與實現

    本文介紹了μC/OS-II移植到PC機上的過程,使μC/OS-II應用系統程序PC機上脫離DOS或Windows環境運行。著重介紹了Boo
    發表于 09-02 08:51 ?14次下載

    μC/OS-IIEP7312上的移植

    μC/OS-IIEP7312上的移植首先介紹μC/OS-II操作系統的特點,重點分析μC/OS-II
    發表于 06-16 11:24 ?1134次閱讀
    μC/<b class='flag-5'>OS-II</b><b class='flag-5'>在</b>EP7312上的<b class='flag-5'>移植</b>

    uC/OS-IIARM系統上的移植實現

    - II 移植到ARM 系統之后,可以充分結合兩者的優勢。 如果一個程序一個環境里能工作,我們經常希望能將它移植到另一個編譯系統、處理器
    發表于 10-30 16:08 ?4次下載
    <b class='flag-5'>uC</b>/<b class='flag-5'>OS-II</b><b class='flag-5'>在</b>ARM系統上的<b class='flag-5'>移植</b>與<b class='flag-5'>實現</b>

    華大電子Nos- Wlan模塊實現應用系統的移植操作

    標準。本文主要介紹了華大電子Nos- Wlan模塊基于ARM7核處理器LPC2478的uC/OS-ii
    的頭像 發表于 05-25 11:17 ?2054次閱讀
    華大電子<b class='flag-5'>Nos</b>- <b class='flag-5'>Wlan</b><b class='flag-5'>模塊</b><b class='flag-5'>實現</b>應用系統的<b class='flag-5'>移植</b><b class='flag-5'>操作</b>