新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 2.4GHz無線鼠標鍵盤接收器的設計(二)

        2.4GHz無線鼠標鍵盤接收器的設計(二)

        作者: 時間:2013-06-14 來源:網絡 收藏
        封包控制域的格式如表2所示。數據長度標志位只有在動態數據長度選項使能時才有效,6位可以表示傳輸的數據域字節數從0~32字節。標志位用來檢測接收到 的數據包是新的還是重發的。自動應答標志位表示這個封包是否需要自動應答。封包可以采用1或2字節的CRC校驗。對于應答包來說,數據域是一個可選項,但 是如果使用該選項的話應該使能動態數據長度特性。應用層按照設計需要可以是和鼠標等HID類設備。

        2.4GHz無線鼠標鍵盤接收器的設計(二)

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

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

          2.2 USB設備枚舉過程

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

        2.4GHz無線鼠標鍵盤接收器的設計(二)

        3 固件設計

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

        2.4GHz無線鼠標鍵盤接收器的設計(二)

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

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

          4 結束語

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

        DIY機械鍵盤相關社區:機械鍵盤DIY




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 邹平县| 玛沁县| 长宁县| 宝丰县| 安福县| 辽阳市| 长寿区| 水富县| 吴江市| 南澳县| 营山县| 丰原市| 读书| 彩票| 伊宁市| 翼城县| 方山县| 武安市| 吉木乃县| 巴林右旗| 且末县| 平武县| 尼玛县| 平和县| 甘肃省| 安塞县| 维西| 丹巴县| 清新县| 佳木斯市| 巩义市| 离岛区| 新邵县| 抚宁县| 正阳县| 平安县| 宝清县| 遵义县| 疏附县| 蛟河市| 南昌县|