一种具有亮度调节功能的双键盘采集模块设计
2014-06-28姚毅雷凌毅
姚毅,雷凌毅
(西南自动化研究所,四川绵阳621000)
一种具有亮度调节功能的双键盘采集模块设计
姚毅,雷凌毅
(西南自动化研究所,四川绵阳621000)
针对某型显控终端设计一种具有亮度调节和记忆功能的双键盘采集模块,该模块综合PWM输出和EEPROM记忆功能,将双键盘采集和显示屏亮度控制集成到一个模块中;通过虚拟PS/2键盘和CPU键盘控制器,实现用一个PS/2键盘接口同时响应两种类型键盘的按键输入,WINDOWS系统下PS/2键盘的即插即用,独立的显示屏亮度控制和亮度记忆功能。
双键盘;即插即用;PS/2键盘协议;PWM
矩阵键盘受空间限制,按键往往较少,在系统调试或特殊情况时还需外接标准键盘扩展使用。通常CPU只有一个PS/2键盘接口,直接并联矩阵键盘和外接的PS/2键盘接口电路,势必造成两种键盘在硬件和通信协议上产生冲突。此外,PS/2键盘在WINDOWS系统下不具备即插即用功能。PS/2键盘如果在BIOS自检时未被识别,操作系统不再响应键盘输入。而作为显控终端,不同使用环境对显示屏亮度需求不同。通常显示屏亮度由终端CPU控制,但这样设计易造成显控终端关机重启后亮度复位,需重新设置。且显示屏亮度依赖于CPU控制功能,不便于通用化。针对上述问题,双键盘采集模块通过集成微处理器、键盘扫描单元,将采集模块虚拟成PS/2键盘和CPU键盘控制器,基于PS/2键盘协议,完成矩阵键盘、外接PS/2键盘的管理控制,实现两种键盘的同时输入和外接PS/2键盘即插即用。同时双键盘采集模块还集成PWM输出和EEPROM记忆功能,脱离CPU控制,独立完成显示屏亮度控制和亮度记忆功能。
1 PS/2键盘协议
PS/2键盘协议是PS/2键盘与CPU键盘控制器(以下简称HOST)之间履行的一种同步双向串行协议。硬件接口为集电极开路的CLK、DATA,5VDC电源和电源地。由PS/2键盘产生12.5 kHz的同步时钟,接收或发送DATA信号。通信格式为1位起始位、8位数据位,1位奇偶校验位和1位停止位。
PS/2键盘向HOST发送数据时,首先检查CLK信号电平状态。当CLK为低电平时,PS/2键盘将当前准备发送的扫描码压入缓冲区内,转入接收状态。当CLK为高电平时,PS/2产生同步时钟,按照图1所示向HOST发送数据包。CLK时钟周期为80μs,DATA在时钟下降沿被HOST读取,采用奇校验。每发送完一位数据,PS/2检测CLK是否被拉低。如果为低,放弃此次发送,转入接收状态。
图1 PS/2向HOST发送数据帧格式
HOST上电启动或重启时向PS/2键盘发送键盘指令,并在20 ms内等待键盘回复响应。通过此方式,HOST可快速检测出是否接有PS/2键盘。当PS/2回复FC或者不响应时,CPU禁用PS/2键盘接口。除一般命令指令外,键盘指令还包括参数设置指令。其中F3机打速率和延迟指令直接影响PS/2键盘输入状态,而不同系列的CPU对机打速率和延迟设置有所不同。如果PS/2键盘不按设置要求运行,将导致键盘接口出现通信故障,或在WINDOWS运行过程提示键盘粘连等非正常信息。HOST发送数据帧格式如图2所示。
图2 HOST向PS/2发送数据帧格式
HOST向PS/2键盘发送指令时,拉低CLK信号100μs抑制通信。PS/2输出CLK响应后,HOST在CLK低电平时设置数据位,PS/2在CLK上升沿锁定DATA信号并采集。传输完成后,由PS/2发送1个ACK应答位。从HOST拉低CLK信号到PS/2产生同步时钟不超过15 ms(a区段)。从PS/2产生同步时钟到HOST输出停止位,传输周期不超过2 ms(b区段)。
2 模块设计原理
双键盘采集模块由数字处理电路(以下简称MCU)、矩阵键盘扫描电路、模拟开关切换电路、PWM驱动电路、RS232/RS422驱动电路、各输入输出接口、隔离电源等组成,原理框图如图3所示。
图3 双键盘采集模块原理框图
矩阵键盘信号采集后,由MCU输出DATA和CLK信号与HOST通信。外接PS/2键盘不直接与MCU的DATA和CLK并联,而是分成两路分别与MCU I/O和模拟开关连接。通过MCU分时切换模块开关,形成与HOST的通信链路。因此,当两种键盘同时输入时,外接PS/2键盘信号首先输入到MCU,MCU通过虚拟HOST的运行方式,判定PS/2键盘的输入状态,再切换模拟开关,使PS/2键盘与HOST通信。同时MCU继续采集矩阵键盘信号,并将扫描码存储到缓冲区内,待PS/2键盘通信完成后,再以虚拟PS/2键盘方式将扫描码发送HOST,避免两种键盘同时输入形成硬件电路和通信协议上的冲突。
单纯的PS/2键盘在WINDOWS系统下不具备即插即用功能,而双键盘采集模块可以起到桥梁作用,使PS/2键盘在任意时刻都具备即插即用功能。在CPU BIOS自检时,MCU作为虚拟的PS/2键盘,及时响应HOST发送的键盘指令。CPU通过识别虚拟的PS/2键盘,开放PS/2键盘接口,分配系统资源,响应键盘输入。在满足硬件识别的前提下,双键盘采集模块通过虚拟HOST指令,管理、控制外接PS/2键盘,完成PS/2键盘上电识别和即插即用参数设置。
双键盘采集模块集成PWM输出电路和内置EEPROM,实现显示屏独立的亮度控制。当矩阵键盘输入亮度按键时,MCU根据EEPROM记忆的亮度等级,改变亮度参数,重设PWM定时器初值,调整PWM输出占空比。显示屏背光电路接口检测到PWM波形变化后,调整显示屏亮度。同时由于EEPROM记忆功能,显控终端关机重启后,MCU依然输出相同的PWM波形,实现显示屏亮度的记忆功能。
3 硬件电路设计
3.1 数字处理电路
数字处理电路(MCU)用于扫描矩阵键盘,虚拟PS/2键盘响应HOST指令,虚拟HOST完成外接PS/2键盘即插即用设置,控制I/O输出PWM波形等。数字处理电路由STC90C52RC单片机、晶振电路,复位电路等组成,与RS422/ RS232驱动电路一起组成单片机基本控制单元,如图4所示。
图4 单片机基本控制单元原理
STC90C52RC单片机采用兼容80C51的增强型内核,片内集成FLASH、SRAM、定时/计数器、UART串口、I/O、EEPROM、看门狗等功能模块,是一个集成度较高的片上系统。
3.2 RS422/RS232驱动电路
RS422/RS232驱动电路用于程序下载和键盘扫描码远程输出,由ADM3251ERS232收发器、ADM2582ERS422收发器及旁路电路组成。与传统RS232/RS422收发器不同,ADM3251E和ADM2582E内部集成隔离电源,依靠芯片自身实现信号隔离,集成度较高。
3.3 矩阵键盘扫描电路
矩阵键盘扫描电路用于矩阵键盘扫描信号输出与接收,与矩阵键盘电路一起组成键盘扫描回路。扫描时,P1端口输出低电平信号。当矩阵键盘按下时,接通扫描回路。MCU采样P0端口信号变化,通过行列判断,确认扫描码。键盘扫描回路如图5所示。
图5 矩阵键盘扫描回路原理
3.4 模拟开关切换电路
模拟开关切换电路用于切换MCU与HOST、外接PS/2键盘与HOST之间的PS/2通信链路,由两片MAX4624芯片组成,如图6所示。MCU_DATA、MCU_CLK通过10 kΩ电阻上拉到P2端口,KB_DATA、KB_CLK同时连接外接PS/2键盘接口和MCU P2端口。MCU输出SWITCH控制信号同步切换CLK和DATA信号,分时连接CPU键盘控制器HOST_ DATA和HOST_CLK信号。图6中省略外接PS/2键盘接口ESD保护电路。
图6 模拟开关切换电路原理
3.5 PWM驱动电路
PWM驱动电路用于隔离输出200 Hz的PWM波形,为显示屏背光电路提供信号源。PWM驱动电路由IL711-3、SN74HC244、隔离电源等组成。IL711-3数字磁隔离器将MCU输出的PWM波形隔离。相比光耦隔离器,IL711-3传输延迟短,响应更快,可靠性更高。
4 程序设计
双键盘采集模块具有单矩阵和双键盘两种运行模式,其核心为PS/2键盘通信协议。MCU通过程序流程,将双键盘采集模块虚拟成PS/2键盘和CPU键盘控制器,实现MCU向上与HOST PS/2通信,向下管理控制外接PS/2键盘。系统上电后默认运行单矩阵模式。
单矩阵模式下,MCU保持与HOST通信状态,时刻虚拟成标准的PS/2键盘,按照CPU启动顺序,依次响应HOST键盘指令,完成CPU对PS/2键盘接口硬件识别,使双键盘采集模块具备键盘输入功能。此过程中,MCU监测矩阵键盘和PS/2键盘接口。当扫描到矩阵按键时,MCU将键盘扫描码存入缓冲区内,等待发送时机。MCU在回复完所有HOST指令后,从缓冲区取出扫描码,通过扫描码通断码转换发送给HOST,实现矩阵键盘按键输入。当外接PS/2键盘插入键盘接口时,MCU虚拟成HOST,解析PS/2键盘上电指令。在确认PS/2正常运行后,MCU切换到双键盘模式。
双键盘模式下,MCU优先接收和回复HOST指令。当接收到F3指令后,MCU即时保存参数,并虚拟HOST运行方式,向PS/2键盘转发F3参数,完成外接PS/2键盘参数设置。此过程中为避免PS/2键盘回复键盘指令,扰乱HOST正常发送顺序,MCU不切换模拟开关,保持MCU与HOST通信状态。在完成参数设置和无新的F3指令情况下,MCU监测PS/2键盘输入状态。当PS/2键盘处于发送起始状态时,MCU切换模拟开关,使PS/2键盘与HOST通信,并在100 ms后重新检测其通信状态。如果此过程中矩阵键盘同时输入,为避免矩阵键盘和PS/2键盘产生协议冲突,MCU将采集到矩阵键盘扫描码存入缓冲区内,待PS/2键盘完成通信后再发送给HOST。其次,如果使用过程中拔插PS/2键盘,MCU通过虚拟成HOST,读取PS/2键盘上电指令,判断其拔插状态,并及时完成即插即用参数设置。当PS/2键盘没有在规定的时间内响应MCU指令时,MCU认为PS/2键盘出现故障,返回单矩阵模式。
两种模式下,MCU一旦扫描到亮度控制按键,将重设定时器初值,改变PWM波形占空比,刷新显示屏亮度,并将亮度参数存储到EEPROM。程序总体流程如图7所示。
图7 程序流程
5 结束语
本文设计的具有亮度调节功能的双键盘采集模块,综合PWM输出和EEPROM记忆功能,将双键盘采集和显示屏亮度控制集成到一个模块中。通过虚拟PS/2键盘和CPU键盘控制器,实现用一个PS/2键盘接口同时响应两种类型键盘的按键输入,WINDOWS系统下PS/2键盘的即插即用,独立的显示屏亮度控制和记忆功能。该双键盘采集模块具有响应速度快、集成度高、体积小,嵌入方便等优点,可广泛应用于自控设备和军用嵌入式设备中。
[1]Prof Stephen A,Edwards.The PS/2 Keyboard And Mouse Interface[D].Columbia University,2009.
[2]郑采君.基于CPLD的矩阵键盘扫描模块设计[J].电子工程设计,2010(10):169-175.
[3]李小亮,董雪峰.基于FPGA的键盘控制计数电路的设计与实现[J].电子工程设计,2011,19(8):154-156.
[4]李勇,王玉晶.一种嵌入式PC非标准键盘的设计[J].微计算机信息,2007(1z):87-88.
(责任编辑周江川)
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.
本文引用格式:姚毅,雷凌毅.一种具有亮度调节功能的双键盘采集模块设计[J].四川兵工学报,2014(7):96-99.
10.11809/scbgxb2014.07.027
2014-04-21
姚毅(1981—),男,工程师,主要从事嵌入式系统设计与控制研究。
TP399