版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第28卷第1期2011年1月计算机应用与软件ComputerApplicationsandSoftware一种基于单片机的网络键盘的设计与实现王君1’2罗焕佐1许石哲1邹媛媛11(中国科学院沈阳自动化研究所辽宁沈阳1100162(中国科学院研究生院北京100049摘要针对工业设备智能维护领域,通过研究分析PS/2键盘的接口、电气特性及协议规范,利用单片机实现了标准的PC机键盘。并结合网络技术,设计并实现了一种网络键盘,称之为IP—KeyBoard,其扩展了传统键盘的作用范围,可以对远程设备进行调试、参数设置等本地键盘操作。在局域网环境下,实验验证了网络键盘远程操作的可行性。关键词单片机PS/2键盘网络通信智能维护DESIGNINGANDREALISINGANMCU.BASEDIP.KEYBOARDWangJunl・2LuoHuanzu01XuShizhelZouYuanyuanl7(ShenyangIr“tituteofAutomation,ChineseAcademyofScience,Shenyang110016,Liaoning,China2(GraduateSchooloftheChineseAcademyofSciences,Beijing100049,ChinaA:bstractInlightofthefieldofintelligentmaintenanceofindustrialequipments,bystudyingandanalysingtheinterface,electricalcharac・teristicsandprotocolspecificationofthePS/2keyboard,inthisarticlewerealizedastandardPCkeyboardwithMCU,andcombiningwiththenetworktechnology,wedesignedandimplementedakindofnetworkkeyboard,whichisnamedtheIP—KeyBoardinthisarticle.Itexpandsthefunctionrangeoftraditionalkeyboard,andCanbeusedtOdosomelocalkeyboardoperationsonremoteequipments.InenvironmentofLAN,thefeasibilityoftheIP-KeyBoardhasbeenprovedbytheexperiments.KeywordsMCUPS/2keyboardInternetcommunicationIntelligentmaintenance0引言随着网络技术的发展,装备制造业的经营理念也发生了很大变化,正逐步从装备制造到装备制造、服务领域转型。智能维护的概念随即被提出,其核心思想是在设备中嵌入监测、诊断和维护等功能模块。1J,利用网络技术,实现设备的远程维护。其优点是显而易见的,但它也存在着一些不完善的地方:一方面,在每套设备中都要嵌入相应的维护模块,势必增加设备的成本;另一方面,该技术需要被维护的设备连接在互联网上,而目前多数的设备都不具备此功能,大规模地进行产品更新和升级的代价也是高昂的,尤其是很多领域出于安全的原因,不允许设备连接在互联网上。一种较好的方法是设计专门的仪器,与设备相连。再通过网络连接仪器,进而远程对设备进行调试、参数设置等本地操作。目前,已有的类似技术是KVMoverIP,它利用IP技术扩展KVM(Keyboard、Video、Mouse的作用范围。虽然它也可以实现对设备进行远程操作,但由于KVM技术的主要特点是利用一套外设控制多台计算机,不适合应用到点对点的设备维护领域。另外它的成本较高,性价比低,且不利于集成。因此,本文针对设备的远程维护仪器中的键盘控制部分,将网络技术与单片机技术相结合,设计并实现了一种网络键盘,本文称为IP.KeyBoard,其扩展了传统键盘的作用范围,可以远程实现对设备的键盘输入。1PS/2键盘协议键盘主要由键开关矩阵、单片机和译码器三大部分组成,其基本原理就是不断扫描按键,并通过PS/2接口向主机发送扫描码,同时接收主机命令。1.1Ps/2设备接口PS/2设备接口协议是由IBM提出并开发的,它广泛应用于现代的键盘、鼠标上。PC机键盘可以有6脚的mini—DIN或5脚的DIN连接器,本文选用的是6脚的mini—DIN接口,如图1所示,目前只用到了四个管脚:电源地、+5V、数据和时钟。Male公的Female坶∞6-proMmi—DINePS2I:历心历心1.Data:・N,oltmplcrnemcd弋::夕弋::y3.Ground\../\、—/4.一5、(Plug撼又ISocket}衢.毫5.CIock6・NotImplemcmed图1PS/2设备接口1.2PS/2协议规范PS/2鼠标和键盘遵循一种双向同步串行协议。每次数据收稿日期:2009-07—09。王君,硕士,主研领域:计算机技术。网络通信技术。万方数据164计算机应用与软件2011血线上发送一位数据,同时在时钟线上产生一个脉冲时被读入。键盘/鼠标可以发送数据到主机,而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自于键盘/鼠标的通信,只要把时钟拉低即可旧J。主机与PS/2设备通信时,所有数据为一个字节,每个字节亦称为一帧。当设备到主机通信时,每帧有11位,包括1个起始位,总为0;8个数据位,低位在前;1个奇校验位和一个停止位,总为1,数据在时钟的下降沿被读取,如图2所示r2]。设备在发送数据前要先判断时钟是否为高电平,如果不是,则主机抑制了通信,设备缓存待发送数据直到时钟电平为高。司几厂]n厂ln广]几厂]厂]r]厂一面烈,[][](][[][】][[]厂~皇暑鼍譬譬;雩墨宅∈山ll薹b-薹差b-lll主b-l妻《卜-卜-卜Eo卜=q吒q吒呵骂粤墨曩卜∽ooooa凸口凸‘∞图2设备到主机的通信当主机到设备通信时,每帧有12位,与设备到主机通信不同的是最后多了一个应答位,数据在时钟的上升沿被读取,如图3所示一o。主机发送数据时,首先拉低时钟信号至少lOOms以抑制通信,然后通过下拉数据线、释放时钟的方式发出“请求发送”的消息。设备要在不超过10ms的时间内检查这个状态,并产生时钟,实现通信。丽广1几几厂]几厂1几厂]几r]n广——一磊i—_、[X](][[X][[研./广一llllillllll重∽oa凸j凸盘凸‘∽‘图3主机到设备的通信1.3键盘扫描码键盘向主机发送指定的代码,以表明指定键的按下和释放状态。这种代码称为扫描码,扫描码分为“通码”和“断码”两种,键按下时发送通码,释放时,发送断码。每个键有唯一的通码和断码,主机通过通断码判断哪个键被按下或释放,所有键一整套的通断码组成了“扫描码集”【2J。目前有三套扫描码集,而所有现代键盘都默认使用第二套扫描码集。键的通码和断码之间有一定的规律。多数第二套断码有两个字节长,第一个字节是F0h,第二个字节是键的通码。扩展键的断码有三个字节,前两个是E0h和F0h,第三个是通码的最后一个字节。1.4键盘初始化由于PS/2键盘不支持热插拔,所以需要重新启动主机,对键盘进行一些初始化,对于自制键盘而言,初始化就是按照协议完成与主机的应答。主机与键盘之间的初始化应答主要包括以下几步:(1键盘发送自检通过命令(0xAA;(2主机发送重置状态指示灯命令(0xED,键盘发送应答(0xFA;(3主机发送关闭所有LED灯命令(0xOO,键盘发送应答(0xFA;(4主机发送读设备ID命令(OxF2,键盘发送三个字节:应答(0xFA、ID首字节(0xAB、ID次字节(0x83;(5主机发送重置状态指示灯命令(OxED,键盘发送应答(0xFA;(6主机发送机打速率命令(OxF3,键盘发送应答(0xFA;还有其它一些命令,基本原则就是,主机发送命令,键盘发送应答(0xFA,例外的是读设备ID命令和主机在某时发送的回应命令(0xEE,此时键盘亦发送回应命令(0xEE,以表明键盘状态正常。2网络通信本文在自制键盘的基础上,加入了网络通信功能,设计出一种网络键盘。网络通信的实现采用的是套接字技术。2.1Winsock套接字上位机程序的开发平台是安装Windows操作系统的PC机,故套接字选用的是Windows下的套接字,即Winsock,它类似于UNIX下的Socket,基于标准的TCP/IP协议。利用套接字编程,通常有两种方式:一种是面向连接的流方式,即通信双方首先获得一条连接链路,然后就可以接收和发送数据,它基于的是TCP(TransportControlProtoc01协议,这种方式的特点是通信可靠,具有校验和重传机制,通常用来发送一些可靠性要求较高的数据文件;另一种是无连接的数据报文方式,这种方式基于UDP(UserDatagramProtoc01协议,通信双方只是简单地将数据包以独立包的形式发送,并不提供无错保证,数据可能会丢失、重复,多用于实时语音、图像等数据的传输。2.2阻塞与非阻塞网络通信过程中,由于网络堵塞或一次数据量发送过大,使得数据无法在短时间内交换完,收发数据的函数无法返回,这种情况称为阻塞。Winsock提供了两种工作方式:阻塞和非阻塞模式。前者要等所有数据都处理完才能返回,当数据量很大时,这种方式所带来的问题就十分明显;而非阻塞模式下,函数被调用后立即返回,当网络操作完成后,由Winsock给应用程序发消息,通知操作完成,此时可以根据消息参数判断操作是否正常。Winsock通过异步选择函数WSAAsyncSelect(函数实现非阻塞通信一J。方法是由该函数指定某种网络事件,当指定的网络事件发生时,由Winsock发送事先约定的消息,程序根据这些消息作出相应处理。主要的网络事件如表1所示。表1主要网络事件值说明FDREAD希望有数据可读时收到通知FD_ACCEPT希望有连接请求时收到通知FD—CONNECT希望连接完成时收到通知FDCLOSE希望套接字关闭时收到通知3系统设计3.1单片机电路本文利用AT89S52单片机仿真键盘,实现了标准的Pc键盘的功能,作为网络键盘的关键一环,其作用是接收主机的并口数据,判断远端Pc机的被按键,然后向工业设备的PS/2接口发送相应扫描码。其接口电路如图4所示。万方数据第1期王君等:一种基于单片机的网络键盘的设计与实现165P2O2碱=c1峻P2.13P幺24D^T^P3.OP2.35P2.46P2.68GND6mI'2.79设备Ps/2j;£口^T89ss2现场主机并口图4单片机接口电路单片机的管脚P3.0作为数据线,P3.1作为时钟线,由设备Ps/2接口供电;另外,P2端口的8个管脚分别接现场主机并口的2到9号管脚,即数据端口。3.2系统软件设计单片机程序采用C语言编写,主要功能是完成开机初始化、接收主机命令并应答、响应上位机信息发送扫描码。单片机主程序的流程如图5所示。图5单片机主程序流程图在单片机与主机的通信过程中,要频繁使用到两个子程序:接收子程序和发送子程序,如图6、7所示。由于主机在通信上有优先权,所以单片机要不断查询主机是否取消通信。图6接收子程序流程图图7发送子程序流程图PC机程序以VisualC++6.0为开发工具,基于Winsock技术,搭建C/S(客户端/服务器模型网络通信平台。考虑到通信的可靠性,数据的传输选用面向连接的流协议,即TCP协议;同时利用wsAAsyncselect(函数实现套接字的非阻塞通信。(1客户端程序客户端程序主要功能包括提供人机交互界面、响应本地键盘消息、发送网络数据。人机交互界面如图8所示,界面有视频显示、云台控制和网络连接功能,同时有一个键盘控制的复选框,以保证在需要的时候才能进行键盘控制图8客户端界面程序首先建立流式套接字:m~Client=WSASocket(AF—INET,SOCK_STREAM,0,NULL,0,0;选择网络事件,实现非阻塞套接字:WSAAsyncSelect(n1..Client,ITI—.hWnd,CM..READINFO,FD—.READIFD_WRITEFD—CLOSEFD—CONNECT;对键盘进行远程控制的思想是客户端截获键盘消息,获取虚拟键值等参数,按照事件规定的格式打包、发送,服务端接收数据包,解析后将命令放入消息队列、处理。客户端在PreTranslateMessage(MSG4pMsg函数中截获键盘消息:if((rectSync.PtlnRect(pMsg一>pt&&m~KeyCheck{//判断是否截获键盘消息万方数据166计算机应用与软件2011年memset(szMouseMessage,’、O’.sizeof(szMouseMessage;sprintf(szMouseMessage。”WM—KD;%d;%d;%d;%d;\0”,pMsg一>wParam,1,1,pMsg一>IParam;//数据打包send(nl—Client,szMouseMessage,strlen(szMouseMessage,0;//发送数据包break;利用实验室条件,选择三台Pc机,分别作为客户端、服务器和设备。连接硬件,用自制的键盘代替作为设备的Pc机的PSl2键盘,重新开机,完成自检;另外自制键盘的P2端口接到服务器PC机的并口数据引脚上(PIN2~PIN9。软件上,首先在服务器上运行服务端程序,开始监听指定端口;然后客户端分别连接服务器和网络摄像机。通过网络摄像机观测设备屏幕,开启键盘控制,本地敲击键盘,完成对设备的输入操作。实验效果如图8所示。fc蛾WM—KEYUP://键释放5结论{//与“WM—KEYDOWN”处理相同}只有复选框被选中,同时鼠标放在视频显示区时才可以进行消息截获,避免与本地输入操作冲突。pMsg一>wParam表示按键的虚拟键值,通过它可以判断是哪个键被按下。获取按键信息后,加上头信息,如“WM—KD”表示键按下,放入字符串sz.MouseMessage后发送到服务器。客户端程序通过嵌入WEB浏览器控件,连接网络摄像机,实现远程视频监测及云台控制。(2服务端程序服务器程序主要实现网络接收、解析网络数据、并口发送等功能。,服务器的套接字建立与客户端相似,首先响应FD—ACCEPT网络事件,接受连接请求:m—Client:accept(m—ListenSocket,0,O;接着响应FD—READ网络事件,接收数据:recv((SOCKETwParam,szMessage,length,O;然后解析数据,判断是键按下(“WM—KD”还是键释放(“WM—KU”,并通过虚拟键值确定对应按键,最后,根据虚拟键值输出相应参数到Pc机并口的数据端口,与单片机通信。并口的写操作通过调用WinIO库的SetPortVal(WORDwPortAddr,DWORDdw-PortVal,BYTEbSize函数实现,wPortAddr为端口地址,dwPortVal为待写入值,bSize为写入的字节数,取值为1、2或4。4.实验在局域网环境下,搭建实验平台。平台主要包括单片机键盘、远程主机、网络摄像机、设备主机和本地主机五部分,如图9所示。图9网络键盘实验平台本文基于单片机设计并实现了一种网络键盘,可以在远程对设备进行调试、参数设置等本地键盘操作。在局域网中进行多次实验,未发现输入错误的情况。而且由于数据包很小,加上采用TCP传输协议,数据几乎没有阻塞和丢包的情况,实验验证了网络键盘远程操作的可行性和有效性。文中重点讨论了网络键盘的设计与实现,对于键盘操作的网络延时问题将在下一步工作中深入研究。同时,利用网络键盘的思想,也可以实现鼠标的远程控制。参考文献[1]袁楚明,何岭松,陈幼平,等.数字化智能维护技术研究现状及发展趋势[J].机械与电子,2003(5:34—36.[2]AdamChapweske.PSl2Keyboard&MouseProtocols.[3]丁展,刘海英.VisualC++网络通信编程实用案例精选[M].北京:人民邮电出版社。2004.[4]陈曦.PSl2接口协议解析及应用[J].国外电子元器件,2004(4:14一18.[5]孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2006.(上接第144页软件开发难以回避软件技术问题,可使用自动代码生成技术将有关复杂软件技术的工作转移给软件专家,以降低业务领域专家的开发难度。这样不同类型专家的长处可以充分发挥,有利于提高工作效率。本文研究发现,自动代码生成技术不仅可以帮助软件专家和业务领域专家合理分工,还可为软件开发带来代码易于修改、容易保持一致性等好处。对大型软件开发来说,根据软件项目特点适当使用自动代码生成技术,可以有效控制代码质量,加快开发进度。参考文献[1]蒋志军,祝成民.基于CORBA的火箭发动机仿真软件集成[c]//北京航空航天大学第四届研究生学术论坛.2007—06.[2]蒋志军.火箭发动机仿真系统软件集成与虚拟现实用户界面研究[D].北京:北京航窄航天大学,2007.[3]乔健行,任惠英.软件系统集成[M].北京:科学出版社,2005.[4]万建成,孙彬.支持用户界面自动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年终工作总结15篇
- 人文关怀:传递爱与温暖的力量主题班会
- 2025年高考语文文化常识题试题库300题(含答案)
- 2025年河南对外经济贸易职业学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年杨凌职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 中班幼儿重阳活动策划方案五篇
- 电子商务交易合同
- 广告宣传片制作合同范本
- 固始土鸡蛋购销合同书
- 幼儿园种子科学活动策划方案五篇
- 福建省泉州市晋江市2024-2025学年七年级上学期期末生物学试题(含答案)
- 2025年春新人教版物理八年级下册课件 第十章 浮力 第4节 跨学科实践:制作微型密度计
- 财务BP经营分析报告
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 《社区康复》课件-第八章 视力障碍患者的社区康复实践
- 透析患者的血糖管理
- 《逆向建模与产品创新设计》课程标准
- 前置审方合理用药系统建设方案
- 国寿增员长廊讲解学习及演练课件
- 新疆维吾尔自治区乌鲁木齐市初中语文九年级期末模考试题详细答案和解析
- 同等学力申硕英语考试高频词汇速记汇总
评论
0/150
提交评论