标准PS2键盘与单片机的接口设计
2023年8月22日发(作者:我要的世界初中优秀作文)
毕业论文2 3天能写完吗-
第31卷第1期 2005年1月中国测试技术CHINAMEASUREMENTTECHNOLOGYVol131 No11Jan,2005 标准PSΠ2键盘与单片机的接口设计徐 晓,汪道辉(四川大学电气信息学院,四川成都610065)摘 要:针对标准的PSΠ2设备,实现了与单片机的接口,本文分析了PSΠ2键盘的接口和通讯协议,介绍了PSΠ2键盘与单片机的接口设计,并以8051为例,配合点阵LCD显示器,实现了PSΠ2键盘的输入,并进一步探讨了用PSΠ2鼠标实现嵌入式设备的图形化人机接口(GUI)。关键词:PSΠ2接口;双向同步协议中图分类号:TN9291532 文献标识码:A 文章编号:167224984(203InterfaceofstandardPSΠ2keyboardconnectedtoMCUXUXiao,WANGDao2hui(CollegeofElectricalEngineering,SichuamUniversity,Chengdu610065,China)Abstract:ThispaperdescribestheinterfaceandprotocolusedbyPSΠ2keyboardandhowtoconnectthePSΠ2keyboardtoaMCU1Thispapersets8051equippedwithaLCDasaminimumsystemandrealizestheinputprocessofPSΠ2keyboard1Furthermore,itdiscusstherealizeofgraphicalinterfacesofembeddeddeviceswithPSΠ2mouse1Keywords:PSΠ2interface;Bidirectionalsynchronousserialprotocol1 引 言目前,在嵌入式智能仪器仪表中,常用LCD加键盘实现人机接口,在实际应用中人机界面需要显示汉字,笔者从事的一个电力保护项目中还需要输入并保存汉字以标注线路号等信息,如果用简单的控制键盘实现英文甚至汉字的输入,则程序较复杂,笔者考虑到PC上用的标准PSΠ2键盘,可通过简单的接口实现与MCU的连接,利用成熟且普及的PC键盘,可实现复杂的输入,对于MCU并不占用很多口线,甚至口线复用,可仅在需要输入时再接上键盘,是一种廉价的键盘解决方案。2 PSΠ2键盘的接口和协议211 接口的物理特性PSΠ2接口用于许多现代的鼠标和键盘,由IBM最初开发和使用。如图1所示,物理上的PSΠ2接口有两种类型的连接器:5脚的DIN和6脚的mini2DIN。在使用时由单片机提供+5V电源给键盘,键盘的地直接接在电源地上。212 接口协议原理PSΠ2键盘采用一种双向同步串行协议。即每次向时钟线上发送一位脉冲就在数据线上发送一位数据。相互传输中,主机拥有总线控制权,可以把时钟线一直拉低来抑制来自键盘的通讯。从键盘发往收稿日期:2004206218;收到修改稿日期:2004208225主机的数据在时钟信号的下降沿被读取,主机发往键盘的数据在上升沿被读取。不管通讯的方向怎样,总是键盘产生时钟信号,如果主机要发送数据,必须首先告诉键盘开始产生时钟信号,具体过程:主μ机首先下拉时钟线至少100s抑制通信,然后再下拉数据线最后释放时钟线,键盘检测到这一时序状态,会在10ms内产生时钟信号,如图2所示,键盘在时© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved. 90 中国测试技术 2005年1月钟脉冲标记下输入八个数据位和一个停止位后,键盘将数据线拉低并产生最后一个时钟脉冲。如果键盘向主机发送数据,首先检查时钟以确定它是否为高电平。如果不是,那么主机抑制了通讯,必须缓冲要发送的数据直到重新获得总线的控制权(键盘有16字节的缓冲区),即等到时钟线是高电平,就可以传输数据。具体时序如图3所示。这里未给出主机时序,此时主机一直处于接收状态。0x74,断码为0xE0,0xF0,0x74。单个按键的接收:(以“A”为例)A通码+A断码:0x1C,0xF0,0x1C按Shift+aShift通码+a通码+a断码+Shift断码其他接收过程不再赘述。3 设计与实现311 硬件接口设计213 数据包结构如上所示,在通讯中的八个数据位为通讯中的命令字,任何时候,主机都可以对键盘发送命令字。举例如表1,除以下两种情况外,键盘必须在20ms内应答确认命令字0FAH:(1)当主机发送ECHO指令(0EEH),表示通讯正常;(2)当主机要求重发数据时,键盘重发上次发送的数据。表1 通讯命令字主机发送的命令字复位键盘重新发送键盘停止扫描重新使能键盘ECHOLED状态16进制值0xFF0xFE0xF50xF40xEE0xED键盘发送的命令字16进制值应答成功码应答错误码ECHO确认重新发送0xAA0xFC0xEE0xFA0xFE 其中0xED命令后跟随一个参数字节,用于指示键盘上NumLock,CapsLock,andScrollLockLED的状态,此参数字节定义如下:00000CapsNumScroll 最后三位0:关LED,1:开LED键盘在有按键按下时,会向主机发送该按键的通码,当键释放时,发送断码,例如:“A”,通码为0x1C,断码为0xF0,0x1C。扩展按键通常通码与断码均要多一个字节,例如:RightArrow通码为0xE0,考虑到时钟脉冲信号总由键盘产生,因此,采用这种方案:键盘的CLOCK接主机的一外部中断(INT0),数据线,接任一IΠO口线(P310,为兼容用串口方式故接在RxD0上)。在数据线及时钟线上加10K的大电阻上拉,试验中,首先使用最原始的查寻方式,即MCU在释放总线控制权后(置CLOCK为高),一直查询CLOCK状态,由图3知键盘需要发送数据时,取得总线控制权,产生时钟的下降沿,主机继续查询CLOCK当检测到下降沿,即从DAT读入一个数据,循环往复,直至接收完8位数据位,一个奇校验位,一个停止位。此种方式通过后,即在程序中改为CLOCK触发产生中断方式,即主机释放总线控制权后,开外部中断,CLOCK下降沿产生中断信号,进入中断服务程序接收数据,但此种方案的不足在于,中断频繁,耗费资源。考虑到键盘与主机采用串行传输,类似于MCU的UART传输,故可DAT接MCU的RxD0这样主机每接收到数据才中断一次,减少了资源的耗费,不过,键盘等PSΠ2设备一般工作在10~20kHz(依厂家设备不同),故要求主机与设备的波特率同步自适应,才能正确接收数据(波特率自适应的实现:键盘上电自检时要发送状态码,利用时钟脉冲的中断,由定时器测量脉冲周期,可得时© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved. 第31卷第1期 徐 晓等:标准PSΠ2键盘与单片机的接口设计 91钟频率,从而得到波特率,实现波特率的自适应)。312软件设计软件流程如图5所示,驱动及键盘码的映射和部分按键服务程序由中断服务程序完成,键盘键值通过全局变量传递给主程序,主程序只要查询标志位,当有键按下时,执行相应的程序,在这里,笔者完成了全拼的输入法程序,并通过了试验验证。4 应用实例在一电力系统的保护系统中,采用80C196系统,需要各个轧刀名称及投切状态,线路号等,但用来控制用的几个键太少,要想实现输入法过于复杂,故在主板上加了一个PSΠ2接口用来连接键盘,只在输入汉字时使用,所增加的成本也不高,但程序相对简化了很多。5 结束语PSΠ2接口设备均可无缝连接至单片机,常用的就是键盘鼠标,笔者也已实现了鼠标的输入,PSΠ2鼠标与键盘遵从同一传输协议,总体来说,随着嵌入式处理器性能的不断提高,各种设备应朝着更为人性化的方向发展,在嵌入式系统中采用键盘或鼠标,即可已灵活配置,亦可降低成本减小占用资源,还可使LCD更加美观,特别是一些监控设备中,很少使用键盘,只在初始化时使用来配置一些参数,使用PSΠ2接口是一种较好的解决方案。参考文献[1] PSΠ2TechnicalReference1AdamChapweske,20021[2] 徐爱钧,等1单片机高级语言C51应用程序设计[M]1北京:电子工业出版社,20011[3] 何立民1单片机应用系统设计[M]1北京:北京航空航天大学出版社,19901(上接第86页)4 结束语RS485是一种抗干扰能力强的串口通信方式。GenerateCR;ΠΠ协议状态机FSM;ΠΠ判断结果ifCurCommandState=stEndthenbeginResult:=true;endelsebeginResult:=false;end;end;在很多领域中由于RS485硬件电路已比较成熟,软件的设计就显得尤为重要。设计中利用RS485特点来进行通讯,并用Delphi开发的通信软件,达到了计算机与智能仪表双向通信的目的。该软件具有开发迅速灵活、人机界面良好且易实现等优点。本设计所编写的通信程序就是对其有效运用的具体体现。参考文献[1] 李朝青1PC机与单片机&DSP数据通信技术选编(1)[M]1北京:北京航空航天大学出版社,20021[2] 石东海1单片机数据通信技术从入门到精通[M]1西安:西安电子科技大学出版社,20021[3] 陈灿煌1Delphi6彻底研究[M]1北京:中国铁道出版社,20021© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.