袁啟孟 張久明 翟樂
【摘要】鍵盤鼠標(biāo)是計算機必不可少的輸入設(shè)備,目前USB接口的鍵盤鼠標(biāo)已普遍應(yīng)用,但是仍有一部分PS2接口的設(shè)備仍在使用,尤其是在軍用加固設(shè)備領(lǐng)域,可長距離傳輸?shù)膬?yōu)勢使得PS2設(shè)備廣泛應(yīng)用于加固計算機、服務(wù)器等設(shè)備。本設(shè)計基于F340單片機,開發(fā)出一款集鍵盤鼠標(biāo)于一體的一款USB/PS2自適應(yīng)鍵鼠。
【關(guān)鍵詞】鍵鼠;USB/PS2;自適應(yīng);F340
Based on F340 microcontroller Design of USB/PS2 self-adapted Keyboard&Mouse
Qimeng Yuan Jiuming Zhang Le Zhai
Abstract:Its absolutely necessary devices of keyboard and mouse for computers. Keyboard and mouse with PS2 interface still in use, while devices with USB interface are universally used at present, especially in military reinforce devices. The superiority of far transmission of PS2 devices signal compared with USB devices, resulting in the wide use of the PS2 devices in reinforce computer and servers equipment. This design developing a device integrated of keyboard and mouse, witch based on F340 microcontroller can be self-adaptedof USB/PS2 signal.
Key words:mouse;USB/PS2;self-adapteF340
1.引言
當(dāng)前,鍵盤鼠標(biāo)的設(shè)計已很成熟,目前市面上有USB鍵盤、USB鼠標(biāo),PS2鍵盤、PS2鼠標(biāo),種類繁多,樣式各異,有設(shè)計廉價的普通鍵盤鼠標(biāo),有人體力學(xué)的工程鍵盤鼠標(biāo)。
在眾多的鍵鼠產(chǎn)品中,雖然形式各異,但最終實現(xiàn)的都是單一的鍵盤功能或者鼠標(biāo)功能。目前市面上缺乏功能更加完善的鍵鼠產(chǎn)品。除此之外,鍵鼠的接口形式因主機而異,有的是USB接口,有的是PS2接口,雖然目前帶有PS2接口的主機日趨減少,但在加固裝備領(lǐng)域,應(yīng)用仍比較普遍。
因此我們需要一款既能支持USB,又能支持PS2接口的一體化鍵鼠設(shè)備。
2.硬件設(shè)計方案
圖1為設(shè)計方案框圖。F340 MCU作為主控單片機,PS2鼠標(biāo)連
圖1 系統(tǒng)框圖
接到鍵鼠輸出接口,作為PS2鼠標(biāo)輸出,同時PS2鼠標(biāo)連接到MCU單片機,在USB模式下,單片機會讀取PS2鼠標(biāo)數(shù)據(jù)并轉(zhuǎn)化為USB鼠標(biāo)數(shù)據(jù)。矩陣鍵盤通過GPIO連接到F340單片機上,單片機通過GPIO掃描矩陣鍵盤獲取鍵值,并輸出PS2或USB鍵盤數(shù)據(jù)至輸出接口。MCU程序通過JTAG接口燒寫進(jìn)入系統(tǒng),鍵盤指示燈即capslock、numlock、scrollock按鍵指示燈通過F340單片機的GPIO來控制其亮滅。PS2電壓與USB電壓分開引到鍵盤控制器上,再通過MOS管連接到F340單片機的GPIO引腳。系統(tǒng)供電由PS2電壓與USB電壓經(jīng)過一片集成負(fù)載開關(guān)生成系統(tǒng)5V供電電壓,給系統(tǒng)供電。鍵鼠外部連線采用雙接口模式,使用PS2或USB主機時,連接上相應(yīng)的鍵鼠接口即可。
2.1USB/PS2自檢測電路
USB/PS2自適應(yīng)檢測方式如圖2所示,將USB與PS2電源引接至鍵盤控制板,通過圖3電路將USB電壓與PS2電壓隔離開,兩組電壓經(jīng)過FPF2147后生成電路板5V供電電壓,而前端USB 5V電壓與PS2 5V電壓分別連接到2N7002柵極,當(dāng)USB電壓有電時,或則PS2電壓有電時,將相應(yīng)的MOS管打開,并將檢測點電壓拉低,單片機通過GPIO檢測電平值,來判斷連接的是USB信號,還是PS2信號,從而實現(xiàn)USB/PS2信號自檢測。
圖2 主機接入電壓檢測電路
圖3 供電隔離電路
3.軟件設(shè)計方案
本設(shè)計需要編寫單片機控制程序,通過JTAG口刷錄進(jìn)人F340 MCU,系統(tǒng)上電后,單片機首先判斷USB電壓與PS2電壓的狀態(tài),根據(jù)其檢測到的電壓狀態(tài),來確定主機端連接的信號形式,如果連接的為PS2接口,單片機通過GPIO掃描矩陣鍵盤,通過解析鍵盤矩陣,進(jìn)行數(shù)據(jù)編碼,輸出PS2鍵盤信號,PS2鼠標(biāo)信號由PS2鼠標(biāo)直接輸出到鍵鼠接口。如果單片機判斷的為USB接口,單片機則進(jìn)行GPIO掃描矩陣鍵盤,并進(jìn)行USB編碼,同時單片機接收PS2鼠標(biāo)的數(shù)據(jù),并進(jìn)行USB編碼,之后將鍵鼠數(shù)據(jù)通過USB接口輸出。從而實現(xiàn)USB/PS2自適應(yīng)一體化鍵鼠的設(shè)計。
4.軟件關(guān)鍵技術(shù)
(1)單片機接收處理PS2鼠標(biāo)數(shù)據(jù)
當(dāng)鍵鼠設(shè)備連接USB設(shè)備時,鼠標(biāo)數(shù)據(jù)通過單片機處理后發(fā)送給主機,單片機接收的鼠標(biāo)數(shù)據(jù)為PS2格式,因此設(shè)計的重點為單片機對PS2數(shù)據(jù)的解析,將PS2數(shù)據(jù)準(zhǔn)確無誤的讀入,并將PS2數(shù)據(jù)正確打包為USB格,發(fā)送給主機。
單片機接收PS2數(shù)據(jù)采用中斷方式,根據(jù)PS2協(xié),PS2鼠標(biāo)CLK時鐘線產(chǎn)生負(fù)跳變時,進(jìn)入單片機中斷,如果此時上一個PS2數(shù)據(jù)包剛好接收完整,則判斷此刻DATA數(shù)據(jù)線是否為低電平,如果為低電平,則認(rèn)為是PS2數(shù)據(jù)的起始位,之后每一個時鐘負(fù)跳變記錄一次DATA數(shù)據(jù)電平狀態(tài),通過移位操作存儲在一個char型變量中,直到接收完P(guān)S2數(shù)據(jù)stop位,一個PS2數(shù)據(jù)包就被單片機讀取完整。之后單片機將PS2數(shù)據(jù)轉(zhuǎn)化為USB格式,發(fā)送至主機端。
(2)USB 驅(qū)動設(shè)計
USB固件主要包括通用的枚舉配置部分和類協(xié)議部分。圖4為描述符樹狀圖,枚舉配置實現(xiàn)USB主機對設(shè)備的枚舉和配,使主機確認(rèn)設(shè)備的功能并提供資源;類協(xié)議部分主要實現(xiàn)USB設(shè)備各自數(shù)據(jù)傳輸?shù)墓δ?,包括鼠?biāo)的HID報告描述符合鍵盤HID報告描述符,規(guī)定了主機和USB設(shè)備數(shù)據(jù)的傳輸格式。USB枚舉過程結(jié)束后,F(xiàn)340將PS2鼠標(biāo)數(shù)據(jù)和掃描的鍵值組合成HID描述符要求的格式,通過相應(yīng)的USB端點傳送給主機,并接受主機的命令。
圖4 描述符樹狀圖
5.結(jié)束語
此設(shè)計將鍵鼠融為一體,并且可自適應(yīng)USB/PS2接口,作為鍵鼠一體化設(shè)備節(jié)省了占用空間,增加了鍵鼠設(shè)備的適用性,可廣泛應(yīng)用于各類計算機。
參考文獻(xiàn)
[1]薛圓圓,趙建領(lǐng).USB應(yīng)用開發(fā)寶典.北京:人民郵電出版社,2011.
[2]張弘.USB接口設(shè)計.西安:西安電子科技大學(xué)出版社,2002.
[3]Adam Chapweske. PS/2 技術(shù)參考.