基于nRF24L01的無線USB控制系統(tǒng)
2 系統(tǒng)的硬件部分
2.1 nRY24L0l無線模塊原理圖
nRF24L01是挪威Nordic VLSI公司推出的單片射頻收發(fā)芯片,20個引腳4mm×4mm QFN封裝,內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,采用Enhanced ShockBurst技術(shù),使用SPI接口與微控制器通信,速率為O~8Mb/s,配置方便。nRF24L01適用于無線數(shù)據(jù)通信、無線個人電腦外設(shè)、無線報警及安全系統(tǒng)、無線開鎖、無線監(jiān)測、家庭自動化和玩具等諸多領(lǐng)域。關(guān)于該芯片的具體功能和工作模式及其編程過程請參照參考文獻。該模塊電路原理圖,如圖4所示。本文引用地址:http://m.butianyuan.cn/article/202551.htm
nRF24L01模塊在PCB布線時采用雙面板,底層全部鋪地,頂層放置元器件,所有電容電阻電感采用0402封裝電容電感電阻盡量靠近芯片引腳,頂層也需大面積鋪地,在頂層和底層放置大量的通孔。該模塊供電電壓為3.3V,SPI接口可以直接與5V的MCU的IO口相連接,無SPI接口的MCU可以用IO口模擬SPI時序,使用方便。
2.2 USB控制芯片PDIUSBDl2原理圖
PDIUSBD12是一款性價高的USB控制芯片,它與MCU配合使用,這使得設(shè)計者可以靈活地選擇MCU,它與MCU之間通過并行接口通信,還支持本地DMA傳輸。圖5是PDIUSBD12與STC89C58RD+單片機連接的原理圖。
上圖未畫出STC89C58RD+單片機,只給出了網(wǎng)點名稱,如P00-P07、P27、ALE、INTl、WR、RD,STC89C58RD+與標準的80C51(如AT89S51)引腳完全兼容,PDIUSBD12與MCU的連接有2種方式:總線方式和分開的地址數(shù)據(jù)方式。采用總線方式時引腳10的ALE連接MCU的ALE,引腳28的A0接到高電平;采用分開的地址數(shù)據(jù)方式,則ALE連接低電平,A0連接任意的IO口,數(shù)據(jù)或地址(命令)由A0來區(qū)分。圖5采用總線方式。另外該無線USB控制器直接使用USB接口供電,省去了電源,降低了成本。
3 系統(tǒng)的軟件部分
3.1 USB的固件與PC端應(yīng)用軟件設(shè)計
當USB設(shè)備連接到主機后,主機要先進行一系列的枚舉過程,枚舉就是從USB設(shè)備讀取一些信息,知道設(shè)備是什么樣的設(shè)備,如何進行通信,這樣主機就可以根據(jù)這些信息來加載合適的驅(qū)動程序。枚舉過程使用控制傳輸,對于USB設(shè)備來說,固件所要處理的是必須對主機發(fā)來的標準設(shè)備請求進行相應(yīng)的正確的響應(yīng),除此之外依據(jù)USB設(shè)備的類型還要響應(yīng)主機發(fā)來的USB設(shè)備類請求。另外如果開發(fā)屬于生產(chǎn)商自定義的USB設(shè)備類,則需要開發(fā)驅(qū)動程序。為了減少開發(fā)驅(qū)動程序的復(fù)雜性,可根據(jù)實際情況使用USB標準設(shè)備類,現(xiàn)有的設(shè)備類有以下幾種:音頻設(shè)備類、通信設(shè)備類、HID設(shè)備類、顯示設(shè)備類、海量存儲設(shè)備類、電源設(shè)備類、打印設(shè)備類、集線器設(shè)備類等,例如可選擇做成assStorage類(海量存儲設(shè)備類)或HID(人機接口)設(shè)備類,這樣無需開發(fā)驅(qū)動程序,直接利用操作系統(tǒng)自帶的驅(qū)動程序。本系統(tǒng)模擬成一個海量存儲設(shè)備類,這樣在枚舉過程中固件除了要響應(yīng)了標準的USB設(shè)備請求外,還需要響應(yīng)2個類特殊請求:GetMaxLun和BulkOnlyMassStorageReset,正確枚舉之后PC機通過發(fā)送SCSI命令來控制U盤設(shè)備,對于海量存儲設(shè)備類要響應(yīng)以下幾個命令:INQUIRY、READCAPACITY、READ(10)、WRITE(10)、REQUEST SENSE、TEST UNIT READY等,除此外要自定義私有的SCSI命令,以實現(xiàn)控制無線USB設(shè)備。另外還要構(gòu)造一個FAT文件系統(tǒng)的格式,要正確返回DBR和FAT文件分配表以及文件數(shù)據(jù)。
評論