<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM7核處理器uC/OS-ii系統(tǒng)的Nos-Wlan移植

          基于ARM7核處理器uC/OS-ii系統(tǒng)的Nos-Wlan移植

          作者:余俊(北京中電華大電子設(shè)計(jì)有限責(zé)任公司) 時(shí)間:2010-07-23 來源:電子產(chǎn)品世界 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/111153.htm

            本系統(tǒng)中USB幀的發(fā)送都是統(tǒng)一在USB傳輸主線程里處理的,USB相關(guān)幀的傳輸接口函數(shù)只需要完成相關(guān)發(fā)送數(shù)據(jù)結(jié)構(gòu)的初始化后將其提交給USB傳輸處理主線程即可。USB控制幀傳輸函數(shù)hosts_UsbControl只需完成USB標(biāo)準(zhǔn)請求數(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ū)動(dòng)調(diào)用提交urb時(shí)注冊的回調(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)部緩存隊(duì)列是否為空,若不為空,則模塊調(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ù)。

            4.6 網(wǎng)絡(luò)協(xié)議棧接口

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

            調(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進(jìn)行發(fā)送,申請的空間不需要用戶進(jìn)行釋放操作,模塊內(nèi)部將會(huì)在發(fā)送成功后自行釋放。

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

            5 結(jié)論

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

            參考文獻(xiàn)

            [1] 北京中電華大電子設(shè)計(jì)有限公司. Nos-Wlan軟件用戶手冊[Z]. 北京:北京中電華大電子設(shè)計(jì)有限公司,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] 邵貝貝等. 嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-II[M]. 北京:北京航空航天大學(xué)出版社,2006.

            [5] NXP Semiconductors.LPC24XX User manual Rev.04[S].2009.


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: ARM7 Nos-Wlan uC/OS-ii OHCI

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();