<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 2.4GHz無(wú)線(xiàn)鼠標鍵盤(pán)接收器的設計(二)

2.4GHz無(wú)線(xiàn)鼠標鍵盤(pán)接收器的設計(二)

作者: 時(shí)間:2013-06-16 來(lái)源:網(wǎng)絡(luò ) 收藏
封包控制域的格式如表2所示。數據長(cháng)度標志位只有在動(dòng)態(tài)數據長(cháng)度選項使能時(shí)才有效,6位可以表示傳輸的數據域字節數從0~32字節。標志位用來(lái)檢測接收到 的數據包是新的還是重發(fā)的。自動(dòng)應答標志位表示這個(gè)封包是否需要自動(dòng)應答。封包可以采用1或2字節的CRC校驗。對于應答包來(lái)說(shuō),數據域是一個(gè)可選項,但 是如果使用該選項的話(huà)應該使能動(dòng)態(tài)數據長(cháng)度特性。應用層按照設計需要可以是鍵盤(pán)和鼠標等HID類(lèi)設備。

2.4GHz無(wú)線(xiàn)鼠標鍵盤(pán)接收器的設計(二)

  這兩種封包在應用層協(xié)議中的用途不同。數據包主要用于傳送發(fā)射端和接收端之間的數據信息,應答包則是在自動(dòng)應答功能選項被使能之后才會(huì )出現的,以便于發(fā)送 端檢測有無(wú)數據丟失。一旦數據丟失,則通過(guò)自動(dòng)重發(fā)功能將丟失的數據恢復。增強型的ShockBurst模式可以同時(shí)控制應答和重發(fā)功能而無(wú)需增加MCU 工作量。

  在SCK時(shí)鐘控制下,數據在主從設備間傳輸,而且嚴格地遵守SPI通信的時(shí)序。作為接收端(PRX),nRF24L01通過(guò)2.4 GHz無(wú)線(xiàn)通信技術(shù)與發(fā)射端(PTX)進(jìn)行數據交換。收發(fā)器接收到數據后,通過(guò)中斷nIRQ通知MCU已接收到數據,可以進(jìn)行讀入操作,然后MCU通過(guò) MISO數據傳輸線(xiàn)讀入數據。nRF24L01在接收到數據之后,會(huì )自動(dòng)切換到發(fā)送模式發(fā)送應答信號給發(fā)射端(PIX),這樣就完成了一次數據傳輸過(guò)程。

  2.2 USB設備枚舉過(guò)程

  USB的枚舉過(guò)程是USB規范中一個(gè)非常重要的“動(dòng)作”或“過(guò)程”。這個(gè)動(dòng)作將會(huì )讓PC知道何種USB設備剮接上以及其所含的各種信息。若要完成一個(gè)設備 枚舉的過(guò)程,需要執行諸多的數據交換以及設備請求。圖4描述了一個(gè)HID設備的枚舉過(guò)程,由于本設計是針對鼠標鍵盤(pán)復合設備的接收器,所以在取完第一次報 告描述符后還需要再取另一個(gè)設備的報告描述符。

2.4GHz無(wú)線(xiàn)鼠標鍵盤(pán)接收器的設計(二)

3 固件設計

  固件設計使用HT-ICE仿真器,它提供了多種實(shí)時(shí)仿真功能,包括多功能跟蹤、單步執行以及設定斷點(diǎn)功能。圖5描述了USB鍵盤(pán) 接收器的程序執行流程。在程序中,鍵盤(pán)使用端點(diǎn)1,配置為輸入;鼠標使用端點(diǎn)2,配置為輸入。都采用USB通信協(xié)議中的中斷傳輸。采用“輪詢(xún)”的工作機 制,輪詢(xún)間隔為8 ms。

2.4GHz無(wú)線(xiàn)鼠標鍵盤(pán)接收器的設計(二)

  接收器上電后,完成系統的初始化,包括MCU的初始化和收發(fā)器的接收模式配置過(guò)程。然后系統進(jìn)入接收數據包的狀態(tài)中,一旦收到數據包就通過(guò)中斷的形式通知 MCU有數據包到來(lái),MCU就會(huì )通過(guò)I/O口模擬SPI總線(xiàn)通信過(guò)程從nRF24L01中將接收到的數據讀出,然后將數據寫(xiě)到相應的USB端點(diǎn)FIFO中。主機通過(guò)查詢(xún)的方式讀取各端點(diǎn)的數據信息,然后按照USB規范定義的鼠標和鍵盤(pán)的協(xié)議產(chǎn)生相應的動(dòng)作(如鼠標的移動(dòng)和按鍵的值)。

  無(wú)線(xiàn)收發(fā)器的初始化過(guò)程:1)配置本機地址和要接收的數據包大??;2)配置CONFIG寄存器,使之進(jìn)入接收模式,把CE置高;3)130μs 后,nRF24L01進(jìn)入監視狀態(tài),等待數據包的到來(lái);4)當接收到正確的數據包(正確的地址和CRC校驗碼),nRF24L01自動(dòng)把字頭、地址和 CRC校驗位移去;5)nRF24L01通過(guò)把STATUS寄存器的RX_DR置位(STATUS一般引起微控制器中斷)通知微控制器;6)微控制器把數 據從nRF24L01讀出;7)所有數據讀取完畢后,可以清除STATUS寄存器。nRF24L01可以進(jìn)入4種主要模式之一。

  4 結束語(yǔ)

  本系統基于8位單片機Hr82K95E和nRF24L01型射頻收發(fā)器設計了一個(gè)用于鍵盤(pán)復合設備的USB無(wú)線(xiàn)接收器。該接收器 能夠實(shí)現鼠標鍵盤(pán)復合設備的全部功能,具有成本低、體積小、通信方向不受制約和通信距離較遠等優(yōu)點(diǎn),使其替代藍牙及紅外遙控設備成為可能,實(shí)踐表明,該接 收器具有廣泛的應用前景。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>