2.4GHz無(wú)線(xiàn)鼠標(biāo)鍵盤(pán)接收器的設(shè)計(jì)(二)
這兩種封包在應(yīng)用層協(xié)議中的用途不同。數(shù)據(jù)包主要用于傳送發(fā)射端和接收端之間的數(shù)據(jù)信息,應(yīng)答包則是在自動(dòng)應(yīng)答功能選項(xiàng)被使能之后才會(huì)出現(xiàn)的,以便于發(fā)送 端檢測(cè)有無(wú)數(shù)據(jù)丟失。一旦數(shù)據(jù)丟失,則通過(guò)自動(dòng)重發(fā)功能將丟失的數(shù)據(jù)恢復(fù)。增強(qiáng)型的ShockBurst模式可以同時(shí)控制應(yīng)答和重發(fā)功能而無(wú)需增加MCU 工作量。
在SCK時(shí)鐘控制下,數(shù)據(jù)在主從設(shè)備間傳輸,而且嚴(yán)格地遵守SPI通信的時(shí)序。作為接收端(PRX),nRF24L01通過(guò)2.4 GHz無(wú)線(xiàn)通信技術(shù)與發(fā)射端(PTX)進(jìn)行數(shù)據(jù)交換。收發(fā)器接收到數(shù)據(jù)后,通過(guò)中斷nIRQ通知MCU已接收到數(shù)據(jù),可以進(jìn)行讀入操作,然后MCU通過(guò) MISO數(shù)據(jù)傳輸線(xiàn)讀入數(shù)據(jù)。nRF24L01在接收到數(shù)據(jù)之后,會(huì)自動(dòng)切換到發(fā)送模式發(fā)送應(yīng)答信號(hào)給發(fā)射端(PIX),這樣就完成了一次數(shù)據(jù)傳輸過(guò)程。
2.2 USB設(shè)備枚舉過(guò)程
USB的枚舉過(guò)程是USB規(guī)范中一個(gè)非常重要的“動(dòng)作”或“過(guò)程”。這個(gè)動(dòng)作將會(huì)讓PC知道何種USB設(shè)備剮接上以及其所含的各種信息。若要完成一個(gè)設(shè)備 枚舉的過(guò)程,需要執(zhí)行諸多的數(shù)據(jù)交換以及設(shè)備請(qǐng)求。圖4描述了一個(gè)HID設(shè)備的枚舉過(guò)程,由于本設(shè)計(jì)是針對(duì)鼠標(biāo)鍵盤(pán)復(fù)合設(shè)備的接收器,所以在取完第一次報(bào) 告描述符后還需要再取另一個(gè)設(shè)備的報(bào)告描述符。
3 固件設(shè)計(jì)
固件設(shè)計(jì)使用HT-ICE仿真器,它提供了多種實(shí)時(shí)仿真功能,包括多功能跟蹤、單步執(zhí)行以及設(shè)定斷點(diǎn)功能。圖5描述了USB無(wú)線(xiàn)鼠標(biāo)鍵盤(pán) 接收器的程序執(zhí)行流程。在程序中,鍵盤(pán)使用端點(diǎn)1,配置為輸入;鼠標(biāo)使用端點(diǎn)2,配置為輸入。都采用USB通信協(xié)議中的中斷傳輸。采用“輪詢(xún)”的工作機(jī) 制,輪詢(xún)間隔為8 ms。
接收器上電后,完成系統(tǒng)的初始化,包括MCU的初始化和收發(fā)器的接收模式配置過(guò)程。然后系統(tǒng)進(jìn)入接收數(shù)據(jù)包的狀態(tài)中,一旦收到數(shù)據(jù)包就通過(guò)中斷的形式通知 MCU有數(shù)據(jù)包到來(lái),MCU就會(huì)通過(guò)I/O口模擬SPI總線(xiàn)通信過(guò)程從nRF24L01中將接收到的數(shù)據(jù)讀出,然后將數(shù)據(jù)寫(xiě)到相應(yīng)的USB端點(diǎn)FIFO中。主機(jī)通過(guò)查詢(xún)的方式讀取各端點(diǎn)的數(shù)據(jù)信息,然后按照USB規(guī)范定義的鼠標(biāo)和鍵盤(pán)的協(xié)議產(chǎn)生相應(yīng)的動(dòng)作(如鼠標(biāo)的移動(dòng)和按鍵的值)。
無(wú)線(xiàn)收發(fā)器的初始化過(guò)程:1)配置本機(jī)地址和要接收的數(shù)據(jù)包大小;2)配置CONFIG寄存器,使之進(jìn)入接收模式,把CE置高;3)130μs 后,nRF24L01進(jìn)入監(jiān)視狀態(tài),等待數(shù)據(jù)包的到來(lái);4)當(dāng)接收到正確的數(shù)據(jù)包(正確的地址和CRC校驗(yàn)碼),nRF24L01自動(dòng)把字頭、地址和 CRC校驗(yàn)位移去;5)nRF24L01通過(guò)把STATUS寄存器的RX_DR置位(STATUS一般引起微控制器中斷)通知微控制器;6)微控制器把數(shù) 據(jù)從nRF24L01讀出;7)所有數(shù)據(jù)讀取完畢后,可以清除STATUS寄存器。nRF24L01可以進(jìn)入4種主要模式之一。
4 結(jié)束語(yǔ)
本系統(tǒng)基于8位單片機(jī)Hr82K95E和nRF24L01型射頻收發(fā)器設(shè)計(jì)了一個(gè)用于無(wú)線(xiàn)鼠標(biāo)鍵盤(pán)復(fù)合設(shè)備的USB無(wú)線(xiàn)接收器。該接收器 能夠?qū)崿F(xiàn)鼠標(biāo)鍵盤(pán)復(fù)合設(shè)備的全部功能,具有成本低、體積小、通信方向不受制約和通信距離較遠(yuǎn)等優(yōu)點(diǎn),使其替代藍(lán)牙及紅外遙控設(shè)備成為可能,實(shí)踐表明,該接 收器具有廣泛的應(yīng)用前景。
DIY機(jī)械鍵盤(pán)相關(guān)社區(qū):機(jī)械鍵盤(pán)DIY
評(píng)論