基于A(yíng)RM7核處理器uC/OS-ii系統的Nos-Wlan移植
4.5 USB控制幀、Bulkin幀、Bulkout幀傳輸
本文引用地址:http://dyxdggzs.com/article/111153.htm本系統中USB幀的發(fā)送都是統一在USB傳輸主線(xiàn)程里處理的,USB相關(guān)幀的傳輸接口函數只需要完成相關(guān)發(fā)送數據結構的初始化后將其提交給USB傳輸處理主線(xiàn)程即可。USB控制幀傳輸函數hosts_UsbControl只需完成USB標準請求數據結構USB_DEV_REQ的初始化,USB BULKOUT幀傳輸函數hosts_UsbTx只需要完成USB請求數據結構urb的初始化,USB BULKIN幀傳輸函數usb_bulkin也是只需要完成USB請求數據結構urb的初始化。USB傳輸主線(xiàn)程usb_transfer_thread,主要處理USB控制幀和批量傳輸幀的發(fā)送及其USB傳輸完成后的處理,其中USB控制傳輸采用同步的通信方式,批量傳輸采用異步的方式,提交urb后即返回,等到傳輸完成后USB HOST驅動(dòng)調用提交urb時(shí)注冊的回調函數,該回調函數發(fā)送消息給USB傳輸主線(xiàn)程,由主線(xiàn)程完成對傳輸完成后的后續處理。USB傳輸完成后,主線(xiàn)程將根據完成幀的類(lèi)型分別調用模塊控制幀回調函數hedrv_UsbControlDone或者BULKOUT幀回調函數hedrv_UsbTxDone通知模塊本次傳輸完成,后模塊判斷內部緩存隊列是否為空,若不為空,則模塊調用控制幀或者BULKOUT幀傳輸回調函數(hosts_UsbControl,hosts_UsbTx)繼續發(fā)送。BULKIN幀傳輸完成后,傳輸完成回調函數將調用模塊內部接口函數hedrv_UsbRx將接收到的數據幀提交模塊處理后繼續提交BULKIN幀以接受網(wǎng)卡上行數據。
4.6 Nos-Wlan網(wǎng)絡(luò )協(xié)議棧接口
該部分移植代碼涉及的模塊回調函數有:hedrv_AllocateNetBuf,hedrv_NetSendNetBuf及hedrv_NetSend,需要用戶(hù)實(shí)現的模塊回調函數是hosts_NetRecv。其中hedrv_NetSend是hedrv_AllocateNetBuf和hedrv_NetSendNetBuf的綜合,hedrv_AllocateNetBuf用于向模塊申請發(fā)送內存,hedrv_NetSendNetBuf進(jìn)行發(fā)送操作,而hedrv_NetSend函數則是將用戶(hù)數據拷貝到模塊內部所申請的動(dòng)態(tài)內存里進(jìn)行相關(guān)處理及發(fā)送。用戶(hù)實(shí)現hosts_NetRecv回調函數用于處理網(wǎng)卡接收的數據幀,其中數據幀是以以太網(wǎng)包的形式由模塊內部調用該函數以提交給用戶(hù)進(jìn)行處理的。
調用模塊MAC幀發(fā)送函數需要用戶(hù)將需要發(fā)送的數據包打包成以太網(wǎng)數據包后提交模塊發(fā)送,調用函數hedrv_NetSend,用戶(hù)只需將打包的以太網(wǎng)數據包和長(cháng)度傳給該函數即可,模塊內部將完成緩存空間的申請和釋放,用戶(hù)也可以調用函數hedrv_AllocateNetBuf自行申請緩存空間并將以太網(wǎng)數據包拷貝至空間后調用函數hedrv_NetSendNetBuf進(jìn)行發(fā)送,申請的空間不需要用戶(hù)進(jìn)行釋放操作,模塊內部將會(huì )在發(fā)送成功后自行釋放。
當網(wǎng)卡接收到MAC數據幀時(shí),模塊將調用回調函數hosts_NetRecv提交用戶(hù)處理,該函數由用戶(hù)實(shí)現,提交該函數的MAC數據模塊將其打包成以太網(wǎng)數據包,用戶(hù)只需要按以太網(wǎng)數據包處理即可。
5 結論
本文詳細介紹了華大電子Nos-Wlan模塊在LPC2478處理器uC/OS-ii系統上的移植,整個(gè)項目周期為2周,其中系統CPU主頻為40MHz,Nos-Wlan模塊在該平臺下吞吐可達4Mbps,穩定通信可達72小時(shí)不斷網(wǎng)。通過(guò)該系統的移植,證明了華大電子Nos-Wlan模塊能夠加速客戶(hù)產(chǎn)品無(wú)線(xiàn)功能的升級。
參考文獻
[1] 北京中電華大電子設計有限公司. Nos-Wlan軟件用戶(hù)手冊[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] 邵貝貝等. 嵌入式實(shí)時(shí)操作系統uC/OS-II[M]. 北京:北京航空航天大學(xué)出版社,2006.
[5] NXP Semiconductors.LPC24XX User manual Rev.04[S].2009.
評論