基于USB接口芯片CH372的人機接口設備設計與實(shí)現
基于一種新型USB 總線(xiàn)接口芯片CH372,設計出一種人機接口設備-USB 鼠標。闡述了CH372 的工作原理和特點(diǎn),給出了系統的硬件電路圖;在軟件設計中,分析了HID 類(lèi)設備描述符枚舉過(guò)程,根據主程序流程圖,寫(xiě)出了部分單片機本地端主程序。通過(guò)硬件和軟件調試,最后成功模擬出鼠標左鍵和右鍵功能。
1 引言
USB(Universal Serial Bus,通用串行總線(xiàn))是計算機上的一種新型接口技術(shù),它使得計算機和外部設備的連接十分方便。HID 是Human InterfaceDvices 的縮寫(xiě),即人機接口設備,是USB 協(xié)議中最早提出并支持的一種設備類(lèi)。典型的HID 有鍵盤(pán)和鼠標等,其主要用于和計算機進(jìn)行交互通信。鼠標屬于HID 設備,USB 串行總線(xiàn)規范專(zhuān)門(mén)定義了HID 類(lèi)規范。Windows 操作系統能夠方便地和HID 設備建立連接。
2 USB總線(xiàn)接口芯片CH372
2.1 功能介紹
CH372 是一個(gè)USB 總線(xiàn)的通用設備接口芯片,是CH371的升級產(chǎn)品,是CH375芯片的功能簡(jiǎn)化版。
CH372 具有8 位數據總線(xiàn)和讀、寫(xiě)、片選控制線(xiàn)以及中斷輸出,可以方便的掛接到單片機/DSP/MCU/MPU 等控制器的系統總線(xiàn)上;在計算機控制中,CH372 的配套軟件提供了簡(jiǎn)潔易用的操作接口,與本地端的單片機通訊就如同讀寫(xiě)文件。
CH372 內置了USB 通訊中的底層協(xié)議,具有省事的內置固件模式和靈活的外置固件模式。在內置固件模式下,CH372 自動(dòng)處理默認端點(diǎn)0 的所有實(shí)物,本地端的單片機只要負責數據交換,所以單片機程序非常簡(jiǎn)潔。在外置固件模式下,由外部單片機根據需要自行處理各種USB 請求,從而可以實(shí)現符合各種USB 類(lèi)規范的設備。
2.2 通信原理
圖1 通信原理框圖
圖1 為CH372 通信原理框圖,D7~D0 為8 位雙向數據總線(xiàn)、RD#為讀選通輸入引腳、WR#為寫(xiě)選通輸入引腳、CS#為片選輸入引腳、INT#為中斷輸出引腳、A0 為地址輸入引腳。
CH372 芯片的RD#和WR#可以分別連接到單片機的讀選通輸出引腳和寫(xiě)選通輸出引腳。CS#由地址譯碼電路驅動(dòng),用于當單片機具有多個(gè)外圍器件時(shí)進(jìn)行設備選擇。INT#輸出的中斷請求是低電平有效,可以連接到單片機的中斷輸入引腳或者普通I/O 引腳,單片機可以使用中斷方式或者查詢(xún)方式獲知中斷請求。
當WR#為高電平并且CS#和RD#及A0 都為低電平時(shí),CH372 中的數據通過(guò)D7~D0 輸出;當RD#為高電平并且CS#和WR#及A0 都為低電平時(shí),D7~D0 上的數據被寫(xiě)入CH372 芯片中;當RD#為高電平并且CS#和WR#都為低電平而A1 為高電平時(shí),D7~D0 上的數據被作為命令碼寫(xiě)入CH372 芯片中。
3 硬件電路
圖2 HID 設備硬件電路圖
圖2 中是沒(méi)有外部擴展總線(xiàn)的單片機系統,單片機用普通的I/O 引腳模擬出8 位并口時(shí)序操作CH372 芯片。在這個(gè)電路中,CH372 的CS#固定為低電平,一直處于片選狀態(tài)。IC1 的P1 端口作為8位雙向數據總線(xiàn),在單片機程序中,可以控制各個(gè)I/O引腳模擬并口時(shí)序與CH372 進(jìn)行數據交換。
單片機的P3.0 引腳模擬為鼠標的左鍵;P3.1 引腳模擬為鼠標的右鍵。
4 軟件設計
4.1 HID 類(lèi)設備描述符枚舉
USB Mouse 屬于HID 設備,和所有的HID 設備一樣遵從USB 啟動(dòng)流程:設備插入→總線(xiàn)復位→設備枚舉→數據接收/傳送。怎樣讓PC 認識USB Mouse流程中的設備枚舉就是告知PC 設備描述類(lèi)型[5]。當插入USB 設備后,主機會(huì )向設備請求各種描述符來(lái)識別設備。為了把一個(gè)設備識別為HID 類(lèi)別,設備在定義描述符的時(shí)候必須遵守HID 規范,因此除了USB 標準定義的一些描述符外,HID 設備還必須定義HID 描述符。主機通過(guò)識別描述符從而認識設備,認識設備數據通信格式,從而才能正常進(jìn)行數據傳送接收。
下面圖3 是在調試過(guò)程中的截圖,可以清楚地看出枚舉有沒(méi)有成功,有沒(méi)有被PC 機設別出來(lái)。他們分別是成功識別,識別出設備有問(wèn)題,無(wú)法識別USB設備。
圖3 調試過(guò)程3 種狀態(tài)截圖。
4.2 單片機本地端主程序
4.2.1 主程序流程圖
圖4 主程序流程圖
評論