姚毅,雷凌毅
(西南自動(dòng)化研究所,四川綿陽(yáng)621000)
一種具有亮度調(diào)節(jié)功能的雙鍵盤(pán)采集模塊設(shè)計(jì)
姚毅,雷凌毅
(西南自動(dòng)化研究所,四川綿陽(yáng)621000)
針對(duì)某型顯控終端設(shè)計(jì)一種具有亮度調(diào)節(jié)和記憶功能的雙鍵盤(pán)采集模塊,該模塊綜合PWM輸出和EEPROM記憶功能,將雙鍵盤(pán)采集和顯示屏亮度控制集成到一個(gè)模塊中;通過(guò)虛擬PS/2鍵盤(pán)和CPU鍵盤(pán)控制器,實(shí)現(xiàn)用一個(gè)PS/2鍵盤(pán)接口同時(shí)響應(yīng)兩種類(lèi)型鍵盤(pán)的按鍵輸入,WINDOWS系統(tǒng)下PS/2鍵盤(pán)的即插即用,獨(dú)立的顯示屏亮度控制和亮度記憶功能。
雙鍵盤(pán);即插即用;PS/2鍵盤(pán)協(xié)議;PWM
矩陣鍵盤(pán)受空間限制,按鍵往往較少,在系統(tǒng)調(diào)試或特殊情況時(shí)還需外接標(biāo)準(zhǔn)鍵盤(pán)擴(kuò)展使用。通常CPU只有一個(gè)PS/2鍵盤(pán)接口,直接并聯(lián)矩陣鍵盤(pán)和外接的PS/2鍵盤(pán)接口電路,勢(shì)必造成兩種鍵盤(pán)在硬件和通信協(xié)議上產(chǎn)生沖突。此外,PS/2鍵盤(pán)在WINDOWS系統(tǒng)下不具備即插即用功能。PS/2鍵盤(pán)如果在BIOS自檢時(shí)未被識(shí)別,操作系統(tǒng)不再響應(yīng)鍵盤(pán)輸入。而作為顯控終端,不同使用環(huán)境對(duì)顯示屏亮度需求不同。通常顯示屏亮度由終端CPU控制,但這樣設(shè)計(jì)易造成顯控終端關(guān)機(jī)重啟后亮度復(fù)位,需重新設(shè)置。且顯示屏亮度依賴于CPU控制功能,不便于通用化。針對(duì)上述問(wèn)題,雙鍵盤(pán)采集模塊通過(guò)集成微處理器、鍵盤(pán)掃描單元,將采集模塊虛擬成PS/2鍵盤(pán)和CPU鍵盤(pán)控制器,基于PS/2鍵盤(pán)協(xié)議,完成矩陣鍵盤(pán)、外接PS/2鍵盤(pán)的管理控制,實(shí)現(xiàn)兩種鍵盤(pán)的同時(shí)輸入和外接PS/2鍵盤(pán)即插即用。同時(shí)雙鍵盤(pán)采集模塊還集成PWM輸出和EEPROM記憶功能,脫離CPU控制,獨(dú)立完成顯示屏亮度控制和亮度記憶功能。
PS/2鍵盤(pán)協(xié)議是PS/2鍵盤(pán)與CPU鍵盤(pán)控制器(以下簡(jiǎn)稱HOST)之間履行的一種同步雙向串行協(xié)議。硬件接口為集電極開(kāi)路的CLK、DATA,5VDC電源和電源地。由PS/2鍵盤(pán)產(chǎn)生12.5 kHz的同步時(shí)鐘,接收或發(fā)送DATA信號(hào)。通信格式為1位起始位、8位數(shù)據(jù)位,1位奇偶校驗(yàn)位和1位停止位。
PS/2鍵盤(pán)向HOST發(fā)送數(shù)據(jù)時(shí),首先檢查CLK信號(hào)電平狀態(tài)。當(dāng)CLK為低電平時(shí),PS/2鍵盤(pán)將當(dāng)前準(zhǔn)備發(fā)送的掃描碼壓入緩沖區(qū)內(nèi),轉(zhuǎn)入接收狀態(tài)。當(dāng)CLK為高電平時(shí),PS/2產(chǎn)生同步時(shí)鐘,按照?qǐng)D1所示向HOST發(fā)送數(shù)據(jù)包。CLK時(shí)鐘周期為80μs,DATA在時(shí)鐘下降沿被HOST讀取,采用奇校驗(yàn)。每發(fā)送完一位數(shù)據(jù),PS/2檢測(cè)CLK是否被拉低。如果為低,放棄此次發(fā)送,轉(zhuǎn)入接收狀態(tài)。
圖1 PS/2向HOST發(fā)送數(shù)據(jù)幀格式
HOST上電啟動(dòng)或重啟時(shí)向PS/2鍵盤(pán)發(fā)送鍵盤(pán)指令,并在20 ms內(nèi)等待鍵盤(pán)回復(fù)響應(yīng)。通過(guò)此方式,HOST可快速檢測(cè)出是否接有PS/2鍵盤(pán)。當(dāng)PS/2回復(fù)FC或者不響應(yīng)時(shí),CPU禁用PS/2鍵盤(pán)接口。除一般命令指令外,鍵盤(pán)指令還包括參數(shù)設(shè)置指令。其中F3機(jī)打速率和延遲指令直接影響PS/2鍵盤(pán)輸入狀態(tài),而不同系列的CPU對(duì)機(jī)打速率和延遲設(shè)置有所不同。如果PS/2鍵盤(pán)不按設(shè)置要求運(yùn)行,將導(dǎo)致鍵盤(pán)接口出現(xiàn)通信故障,或在WINDOWS運(yùn)行過(guò)程提示鍵盤(pán)粘連等非正常信息。HOST發(fā)送數(shù)據(jù)幀格式如圖2所示。
圖2 HOST向PS/2發(fā)送數(shù)據(jù)幀格式
HOST向PS/2鍵盤(pán)發(fā)送指令時(shí),拉低CLK信號(hào)100μs抑制通信。PS/2輸出CLK響應(yīng)后,HOST在CLK低電平時(shí)設(shè)置數(shù)據(jù)位,PS/2在CLK上升沿鎖定DATA信號(hào)并采集。傳輸完成后,由PS/2發(fā)送1個(gè)ACK應(yīng)答位。從HOST拉低CLK信號(hào)到PS/2產(chǎn)生同步時(shí)鐘不超過(guò)15 ms(a區(qū)段)。從PS/2產(chǎn)生同步時(shí)鐘到HOST輸出停止位,傳輸周期不超過(guò)2 ms(b區(qū)段)。
雙鍵盤(pán)采集模塊由數(shù)字處理電路(以下簡(jiǎn)稱MCU)、矩陣鍵盤(pán)掃描電路、模擬開(kāi)關(guān)切換電路、PWM驅(qū)動(dòng)電路、RS232/RS422驅(qū)動(dòng)電路、各輸入輸出接口、隔離電源等組成,原理框圖如圖3所示。
圖3 雙鍵盤(pán)采集模塊原理框圖
矩陣鍵盤(pán)信號(hào)采集后,由MCU輸出DATA和CLK信號(hào)與HOST通信。外接PS/2鍵盤(pán)不直接與MCU的DATA和CLK并聯(lián),而是分成兩路分別與MCU I/O和模擬開(kāi)關(guān)連接。通過(guò)MCU分時(shí)切換模塊開(kāi)關(guān),形成與HOST的通信鏈路。因此,當(dāng)兩種鍵盤(pán)同時(shí)輸入時(shí),外接PS/2鍵盤(pán)信號(hào)首先輸入到MCU,MCU通過(guò)虛擬HOST的運(yùn)行方式,判定PS/2鍵盤(pán)的輸入狀態(tài),再切換模擬開(kāi)關(guān),使PS/2鍵盤(pán)與HOST通信。同時(shí)MCU繼續(xù)采集矩陣鍵盤(pán)信號(hào),并將掃描碼存儲(chǔ)到緩沖區(qū)內(nèi),待PS/2鍵盤(pán)通信完成后,再以虛擬PS/2鍵盤(pán)方式將掃描碼發(fā)送HOST,避免兩種鍵盤(pán)同時(shí)輸入形成硬件電路和通信協(xié)議上的沖突。
單純的PS/2鍵盤(pán)在WINDOWS系統(tǒng)下不具備即插即用功能,而雙鍵盤(pán)采集模塊可以起到橋梁作用,使PS/2鍵盤(pán)在任意時(shí)刻都具備即插即用功能。在CPU BIOS自檢時(shí),MCU作為虛擬的PS/2鍵盤(pán),及時(shí)響應(yīng)HOST發(fā)送的鍵盤(pán)指令。CPU通過(guò)識(shí)別虛擬的PS/2鍵盤(pán),開(kāi)放PS/2鍵盤(pán)接口,分配系統(tǒng)資源,響應(yīng)鍵盤(pán)輸入。在滿足硬件識(shí)別的前提下,雙鍵盤(pán)采集模塊通過(guò)虛擬HOST指令,管理、控制外接PS/2鍵盤(pán),完成PS/2鍵盤(pán)上電識(shí)別和即插即用參數(shù)設(shè)置。
雙鍵盤(pán)采集模塊集成PWM輸出電路和內(nèi)置EEPROM,實(shí)現(xiàn)顯示屏獨(dú)立的亮度控制。當(dāng)矩陣鍵盤(pán)輸入亮度按鍵時(shí),MCU根據(jù)EEPROM記憶的亮度等級(jí),改變亮度參數(shù),重設(shè)PWM定時(shí)器初值,調(diào)整PWM輸出占空比。顯示屏背光電路接口檢測(cè)到PWM波形變化后,調(diào)整顯示屏亮度。同時(shí)由于EEPROM記憶功能,顯控終端關(guān)機(jī)重啟后,MCU依然輸出相同的PWM波形,實(shí)現(xiàn)顯示屏亮度的記憶功能。
3.1 數(shù)字處理電路
數(shù)字處理電路(MCU)用于掃描矩陣鍵盤(pán),虛擬PS/2鍵盤(pán)響應(yīng)HOST指令,虛擬HOST完成外接PS/2鍵盤(pán)即插即用設(shè)置,控制I/O輸出PWM波形等。數(shù)字處理電路由STC90C52RC單片機(jī)、晶振電路,復(fù)位電路等組成,與RS422/ RS232驅(qū)動(dòng)電路一起組成單片機(jī)基本控制單元,如圖4所示。
圖4 單片機(jī)基本控制單元原理
STC90C52RC單片機(jī)采用兼容80C51的增強(qiáng)型內(nèi)核,片內(nèi)集成FLASH、SRAM、定時(shí)/計(jì)數(shù)器、UART串口、I/O、EEPROM、看門(mén)狗等功能模塊,是一個(gè)集成度較高的片上系統(tǒng)。
3.2 RS422/RS232驅(qū)動(dòng)電路
RS422/RS232驅(qū)動(dòng)電路用于程序下載和鍵盤(pán)掃描碼遠(yuǎn)程輸出,由ADM3251ERS232收發(fā)器、ADM2582ERS422收發(fā)器及旁路電路組成。與傳統(tǒng)RS232/RS422收發(fā)器不同,ADM3251E和ADM2582E內(nèi)部集成隔離電源,依靠芯片自身實(shí)現(xiàn)信號(hào)隔離,集成度較高。
3.3 矩陣鍵盤(pán)掃描電路
矩陣鍵盤(pán)掃描電路用于矩陣鍵盤(pán)掃描信號(hào)輸出與接收,與矩陣鍵盤(pán)電路一起組成鍵盤(pán)掃描回路。掃描時(shí),P1端口輸出低電平信號(hào)。當(dāng)矩陣鍵盤(pán)按下時(shí),接通掃描回路。MCU采樣P0端口信號(hào)變化,通過(guò)行列判斷,確認(rèn)掃描碼。鍵盤(pán)掃描回路如圖5所示。
圖5 矩陣鍵盤(pán)掃描回路原理
3.4 模擬開(kāi)關(guān)切換電路
模擬開(kāi)關(guān)切換電路用于切換MCU與HOST、外接PS/2鍵盤(pán)與HOST之間的PS/2通信鏈路,由兩片MAX4624芯片組成,如圖6所示。MCU_DATA、MCU_CLK通過(guò)10 kΩ電阻上拉到P2端口,KB_DATA、KB_CLK同時(shí)連接外接PS/2鍵盤(pán)接口和MCU P2端口。MCU輸出SWITCH控制信號(hào)同步切換CLK和DATA信號(hào),分時(shí)連接CPU鍵盤(pán)控制器HOST_ DATA和HOST_CLK信號(hào)。圖6中省略外接PS/2鍵盤(pán)接口ESD保護(hù)電路。
圖6 模擬開(kāi)關(guān)切換電路原理
3.5 PWM驅(qū)動(dòng)電路
PWM驅(qū)動(dòng)電路用于隔離輸出200 Hz的PWM波形,為顯示屏背光電路提供信號(hào)源。PWM驅(qū)動(dòng)電路由IL711-3、SN74HC244、隔離電源等組成。IL711-3數(shù)字磁隔離器將MCU輸出的PWM波形隔離。相比光耦隔離器,IL711-3傳輸延遲短,響應(yīng)更快,可靠性更高。
雙鍵盤(pán)采集模塊具有單矩陣和雙鍵盤(pán)兩種運(yùn)行模式,其核心為PS/2鍵盤(pán)通信協(xié)議。MCU通過(guò)程序流程,將雙鍵盤(pán)采集模塊虛擬成PS/2鍵盤(pán)和CPU鍵盤(pán)控制器,實(shí)現(xiàn)MCU向上與HOST PS/2通信,向下管理控制外接PS/2鍵盤(pán)。系統(tǒng)上電后默認(rèn)運(yùn)行單矩陣模式。
單矩陣模式下,MCU保持與HOST通信狀態(tài),時(shí)刻虛擬成標(biāo)準(zhǔn)的PS/2鍵盤(pán),按照CPU啟動(dòng)順序,依次響應(yīng)HOST鍵盤(pán)指令,完成CPU對(duì)PS/2鍵盤(pán)接口硬件識(shí)別,使雙鍵盤(pán)采集模塊具備鍵盤(pán)輸入功能。此過(guò)程中,MCU監(jiān)測(cè)矩陣鍵盤(pán)和PS/2鍵盤(pán)接口。當(dāng)掃描到矩陣按鍵時(shí),MCU將鍵盤(pán)掃描碼存入緩沖區(qū)內(nèi),等待發(fā)送時(shí)機(jī)。MCU在回復(fù)完所有HOST指令后,從緩沖區(qū)取出掃描碼,通過(guò)掃描碼通斷碼轉(zhuǎn)換發(fā)送給HOST,實(shí)現(xiàn)矩陣鍵盤(pán)按鍵輸入。當(dāng)外接PS/2鍵盤(pán)插入鍵盤(pán)接口時(shí),MCU虛擬成HOST,解析PS/2鍵盤(pán)上電指令。在確認(rèn)PS/2正常運(yùn)行后,MCU切換到雙鍵盤(pán)模式。
雙鍵盤(pán)模式下,MCU優(yōu)先接收和回復(fù)HOST指令。當(dāng)接收到F3指令后,MCU即時(shí)保存參數(shù),并虛擬HOST運(yùn)行方式,向PS/2鍵盤(pán)轉(zhuǎn)發(fā)F3參數(shù),完成外接PS/2鍵盤(pán)參數(shù)設(shè)置。此過(guò)程中為避免PS/2鍵盤(pán)回復(fù)鍵盤(pán)指令,擾亂HOST正常發(fā)送順序,MCU不切換模擬開(kāi)關(guān),保持MCU與HOST通信狀態(tài)。在完成參數(shù)設(shè)置和無(wú)新的F3指令情況下,MCU監(jiān)測(cè)PS/2鍵盤(pán)輸入狀態(tài)。當(dāng)PS/2鍵盤(pán)處于發(fā)送起始狀態(tài)時(shí),MCU切換模擬開(kāi)關(guān),使PS/2鍵盤(pán)與HOST通信,并在100 ms后重新檢測(cè)其通信狀態(tài)。如果此過(guò)程中矩陣鍵盤(pán)同時(shí)輸入,為避免矩陣鍵盤(pán)和PS/2鍵盤(pán)產(chǎn)生協(xié)議沖突,MCU將采集到矩陣鍵盤(pán)掃描碼存入緩沖區(qū)內(nèi),待PS/2鍵盤(pán)完成通信后再發(fā)送給HOST。其次,如果使用過(guò)程中拔插PS/2鍵盤(pán),MCU通過(guò)虛擬成HOST,讀取PS/2鍵盤(pán)上電指令,判斷其拔插狀態(tài),并及時(shí)完成即插即用參數(shù)設(shè)置。當(dāng)PS/2鍵盤(pán)沒(méi)有在規(guī)定的時(shí)間內(nèi)響應(yīng)MCU指令時(shí),MCU認(rèn)為PS/2鍵盤(pán)出現(xiàn)故障,返回單矩陣模式。
兩種模式下,MCU一旦掃描到亮度控制按鍵,將重設(shè)定時(shí)器初值,改變PWM波形占空比,刷新顯示屏亮度,并將亮度參數(shù)存儲(chǔ)到EEPROM。程序總體流程如圖7所示。
圖7 程序流程
本文設(shè)計(jì)的具有亮度調(diào)節(jié)功能的雙鍵盤(pán)采集模塊,綜合PWM輸出和EEPROM記憶功能,將雙鍵盤(pán)采集和顯示屏亮度控制集成到一個(gè)模塊中。通過(guò)虛擬PS/2鍵盤(pán)和CPU鍵盤(pán)控制器,實(shí)現(xiàn)用一個(gè)PS/2鍵盤(pán)接口同時(shí)響應(yīng)兩種類(lèi)型鍵盤(pán)的按鍵輸入,WINDOWS系統(tǒng)下PS/2鍵盤(pán)的即插即用,獨(dú)立的顯示屏亮度控制和記憶功能。該雙鍵盤(pán)采集模塊具有響應(yīng)速度快、集成度高、體積小,嵌入方便等優(yōu)點(diǎn),可廣泛應(yīng)用于自控設(shè)備和軍用嵌入式設(shè)備中。
[1]Prof Stephen A,Edwards.The PS/2 Keyboard And Mouse Interface[D].Columbia University,2009.
[2]鄭采君.基于CPLD的矩陣鍵盤(pán)掃描模塊設(shè)計(jì)[J].電子工程設(shè)計(jì),2010(10):169-175.
[3]李小亮,董雪峰.基于FPGA的鍵盤(pán)控制計(jì)數(shù)電路的設(shè)計(jì)與實(shí)現(xiàn)[J].電子工程設(shè)計(jì),2011,19(8):154-156.
[4]李勇,王玉晶.一種嵌入式PC非標(biāo)準(zhǔn)鍵盤(pán)的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2007(1z):87-88.
(責(zé)任編輯周江川)
Design of Double Keyboard Acquisition M odule w ith Brightness Adjustment Function
YAO Yi,LEILing-yi
(Southwest Automation Research Institute,Mianyang 621000,China)
We designed a double keyboard acquisition module with brightness adjustment and brightness memory functions for a certain type of display and control terminal.Themodule synthesized PWM output and EEPROM memory function to integrate double keyboard acquisition and display brightness control into onemodule.Through the virtual PS/2 keyboard and CPU keyboard controller,we could achieve three goals:first,to respond two types of input keyboard through one PS/2 keyboard interface at the same time; second,to allow for plug and play of the PS/2 keyboard under theWINDOWSsystem;third,independent screen brightness control and brightnessmemory function.
double keyboard;plus and play;PS/2 keyboard protocol;PWM
:A
1006-0707(2014)07-0096-04
format:YAO Yi,LEI Ling-yi.Design of Double Keyboard Acquisition Module with Brightness Adjustment Function[J].Journal of Sichuan Ordnance,2014(7):96-99.
本文引用格式:姚毅,雷凌毅.一種具有亮度調(diào)節(jié)功能的雙鍵盤(pán)采集模塊設(shè)計(jì)[J].四川兵工學(xué)報(bào),2014(7):96-99.
10.11809/scbgxb2014.07.027
2014-04-21
姚毅(1981—),男,工程師,主要從事嵌入式系統(tǒng)設(shè)計(jì)與控制研究。
TP399