色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 無線USB的設(shè)計與實現(xiàn)

          無線USB的設(shè)計與實現(xiàn)

          作者: 時間:2013-10-26 來源:網(wǎng)絡(luò) 收藏


          后臺D12中斷服務(wù)程序和nRF401中斷服務(wù)程序與前臺主循環(huán)程序之間的數(shù)據(jù)交換,通過事件標(biāo)志和數(shù)據(jù)緩沖區(qū)來實現(xiàn)。后臺中斷服務(wù)程序由中斷觸發(fā),通過標(biāo)志位與主模塊通信。主模塊循環(huán)掃描各標(biāo)志位,對相應(yīng)的標(biāo)志位做出處理。例如,nRF401 接受到有效數(shù)據(jù)后,送入串口觸發(fā)串口中斷,進(jìn)入nRF401中斷服務(wù)程序,將數(shù)據(jù)接收后放入數(shù)據(jù)緩沖區(qū),然后設(shè)置UART_DATA標(biāo)志,退出子模塊。主模塊查詢到UART_DATA被置位,則調(diào)用 writendpoint()程序?qū)?shù)據(jù)發(fā)往PC。

          值得注意的是,nRF401在接受狀態(tài)下即使沒有數(shù)據(jù)接受,也會有隨機(jī)碼輸出。因此需要在所需傳輸?shù)臄?shù)據(jù)前加入標(biāo)識頭,如55AAH。當(dāng)檢測到從串口進(jìn)入的數(shù)據(jù)為55AAH時,再開始有效數(shù)據(jù)的接受。

          對PC而言,傳輸模塊是它的一個USB外設(shè),因此必須提供USB設(shè)備的驅(qū)動程序。驅(qū)動程序的設(shè)計采用WDM模型[5],使用DriverStudio 進(jìn)行開發(fā)。DriverStudio是一款優(yōu)秀的驅(qū)動程序開發(fā)軟件。啟動DriverStudio中DriverWizard,填寫USB設(shè)備的端點配置,便會自動生成驅(qū)動程序原代碼和相應(yīng)的測試程序原代碼,只需稍做改動便可用VC6.0編譯運(yùn)行[5]。驅(qū)動程序向用戶程序提供標(biāo)準(zhǔn)的IO接口:WriteFile ()、 ReadFile() 、DeviceIoControl ()。用戶程序調(diào)用相應(yīng)的函數(shù),即可實現(xiàn)對USB設(shè)備的訪問。下面的例子是實現(xiàn)向USB總線寫數(shù)據(jù)的功能。

          hFile = open_file(threadParam->pipe_name); //打開需要使用的端點

          ……

          bResult = WriteFile(hFile,

          threadParam->pcIoBuffer,

          //等待傳送的數(shù)據(jù)緩沖區(qū)地址

          threadParam->uiLength, //數(shù)據(jù)長度

          nBytes,

          NULL); //向該端點寫入數(shù)據(jù)
          if (bResult != TRUE) { //出錯處理

          DeviceIoControl(hFile, //復(fù)位該端點

          IOCTL_D12_RESET_PIPE,

          0, 0, 0, 0,

          nBytes,

          NULL);}

          編程過程中要注意串口波特率要一致,否則會造成接受數(shù)據(jù)錯誤。nRF401周圍的布線和天線的設(shè)計很有講究,一定要按照手冊的要求進(jìn)行設(shè)計。

          參考文獻(xiàn):

          [1] Universal Serial Bus Specification Revision 1.1. http:/
          /www.usb.org/developers/docs.html , 1998.

          [2] Philips Semiconductors PDIUSBD12 Specification. http://www.semiconductors.philips.com /, 1999.

          [3] Nordic 433Mhz Single Chip RF Transceiver nRF401 datasheet. http:// www.nvlsi.no/thenRF401.htm, 2000.

          [4] 徐愛鈞.單片機(jī)高級語言C51 Windows環(huán)境編程與應(yīng)用[M].北京: 電子工業(yè)出版社, 2001.

          [5] KRULINSKI D J. Programming Microsoft Visual C++6. 0技術(shù)內(nèi)幕[M].北京: 希望電子出版社,1999.

          [6]PDIUSBD12 datasheethttp://www.dzsc.com/datasheet/PDIUSBD12+_544412.html.


          [7]PCBdatasheethttp://www.dzsc.com/datasheet/PCB_1201640.html.


          [8]nRF401datasheethttp://www.dzsc.com/datasheet/nRF401_521026.html.


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉