




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于PS/2鼠标接口单片机输入设备的实现摘要:PS/2接口是较早出现的计算机接口,也是现在使用最广泛的接口之一,它主要应用于鼠标、键盘和游戏手柄的输入。PS/2接口协议简洁易于实现,而且多年来PS/2设备一直运行稳定,这使得古老的PS/2接口至今在输入接口中具有举足轻重的地位。本课题在详细分析PS/2协议的基础上,提出了一套实现PS/2鼠标接口设备的可行方案。该方案提供了一个PS/2鼠标接口设备的硬件和软件的实现方法,其中着重介绍了单片机中PS/2接口驱动的实现方法,PS/2鼠标的Reset模式和Stream模式的工作流程等内容。依据上述设计方案实现了一个PS/2鼠标接口设备。本论文中为该设备设计了两项基本功能测试、两项性能测试和一项兼容性测试。该设备在测试中取得了十分理想的成绩。最后对PS/2鼠标接口设备进行扩展,实现了串口转PS/2鼠标设备。该设备的实现证明了本课题实现的PS/2鼠标接口设备具有良好的可扩展性。关键词:PS/2接口 通信协议 单片机 鼠标 驱动程序 前言PS/2接口鼠标是被现代个人微机广泛采用的外部定点输入设备,它易于操作而且价格低廉,如果能够利用PS/2鼠标的标准接口特性,在单片机应用系统中设计一个PS/2接口作为系统的输入设备,不仅占用系统的资源少、成本低而且操作简单,具有广泛的应用领域。作为一个出现较早的输入接口,基于PS/2的开发技术已经相当成熟,但是这些成熟的技术主要掌握在部分主板开发商和鼠标键盘开发商手上。而且PS/2协议的官方参考资料已经很难找到,所以本课题将以监控并分析PS/2鼠标在实际工作中的数据流并结合前人开发经验心得为主要开发依据,通过不断调试改进来完成PS/2鼠标接口的开发。国内外除了少数的研究学习的人员鲜少有人做基于PS/2的产品开发,市场上有一些串口转PS/2的转接器,但其兼容性和稳定性都不是很高。PS/2产品的发展趋势可能主要是为一些特定的项目提供接口。实现PS/2鼠标接口可以扩展实现基于PS/2接口的鼠标、USB转PS/2鼠标转接器、PS/2转USB鼠标转接器、串口转PS/2鼠标转接器的开发,且开发成本较低,开发周期较短,产品稳定性和可靠性在理论上和实际使用中都已经证明可以满足工业生产或日常生活需求。PS/2协议本身也较简单,这样就有利于开发者较深入完整的理解协议本身及其实现过程,为以后的项目开发积累很好的经验。1 背景1.1 PS/2协议的发展PS/2协议的发展主要经历过三个阶段:1981年IBM推出了IBM PC/XT接口标准。该标准采用5脚DIN连接器和简单的串行协议。1984年IBM推出了IBM AT接口标准。该标准采用5脚DIN连接器和双向串行通讯协议。1987年,IBM又推出了PS/2接口标准。该标准采用6脚mini-DIN连接器,该连接器在封装上更小巧,仍然用双向串行通讯协议。PS/2接口标准在在IBM技术参考手册里,而该手册已经很多年没有印刷了,因此关于这个内容现在没有官方的出版物。所以我们可以认为能够被IBM提供的PS/2接口上识别并稳定运行的设备就实现了PS/2协议。PS/2接口标准设备主要应用于鼠标,键盘和游戏手柄。1.2 PS/2鼠标接口的优点PS/2鼠标接口很早就成为了计算机计算机鼠标的标准输入接口,它有如下三个优点:适用范围和机型众多PS/2鼠标接口在现存的几乎所有的台式PC机上都能找到,这就意味着基于PS/2鼠标接口的设备可以在现在的绝大多数PC机上运行。开发成本低,开发周期短PS/2协议是一种简单的串行通信协议,不需要专门的接口芯片,只需要在单片机中用软件模拟就可以完成通信。一个基于PS/2的设备可以在较短的时间内完成。稳定性高,速度快PS/2协议自问世以来,基于它的产品已经在PC机上稳定运行了几十年,经过实践检验PS/2设备在稳定性和反应速度方面完全可以满足日常需求。2 协议分析2.1 PS/2物理接口定义物理上的PS/2 端口分为两类连接器:一种5 脚的DIN ;一种是6 脚的mini-DIN。两种连接器的区别只是引脚的排列,鉴于目前5 脚的DIN已经很少使用,对于5 脚的DIN我们将不予介绍。mini-DIN的接口定义如图2.1所示。图2.1 mini-DIN的接口定义2.2 PS/2数据帧定义和传输PS/2 鼠标和键盘履行一种双向同步串行协议。换句话说每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。键盘/鼠标可以发送数据到主机而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自于键盘/鼠标的通讯,只要把时钟拉低即可。数据传输过程中的时钟始终都由设备提供,如果主机要想设备发送数据就必需先告诉设备产生一个时钟信号(具体的过程将在后面描述)。从设备到主机的数据在时钟的下降沿被读取,从主机到设备的数据在时钟的上升沿被读取。设备到主机的通讯过程从设备到主机的通讯过程中共定义11个数据位,如表2.1所示。表2.1 从设备到主机的数据帧格式1 个起始位,总是为08 个数据位,低位在前1 个校验位,奇校验1 个停止位,总是为1通讯的时钟频率为1016.7kHz。通讯过程应该符合以下要求。从时钟脉冲的上升沿到一个数据转变的时间至少要有5微秒。数据变化到时钟脉冲的下降沿的时间至少要有5微秒,并且不大于25微秒。这个定时非常重要。主机可以在第11个时钟脉冲(停止位)之前把线拉低,这样设备将放弃发送当前字节(这是非常罕见的)。在停止位发送后,设备在发送下个包前至少应该等待50微秒。这将给主机时间,当它处理接收到的字节时抑制发送(主机在收到每个包时通常自动做这个),在主机释放抑制后设备至少应该在发送任何数据前等50微秒。设备到主机的通讯时序如图2.2所示。图2.2 设备到主机通讯时序图主机到设备的通讯过程:从主机到设备的通讯过程的数据帧与设备到主机有所不同,表2.1给出了主机到设备的数据帧格式。表2.2 从主机到设备的数据帧格式8 个数据位,低位在前1 个校验位,奇校验1 个停止位,总是为11 个应答位,由设备向主机发送因为时钟总是由设备提供,所以主机要想发送数据它必须向设备 “请求发送”,过程如下:1)主机通过下拉时钟线至少100微秒来抑制通讯。2)主机通过下拉数据线来应用请求发送然后释放时钟。通讯时序如图2.3所示。图2.3主机到设备的通信时序图2.3 PS/2数据报定义标准的PS/2鼠标发送位移和按键信息给主机采用3字节数据包格式。数据包的具体定义如表2.3所示。表2.3标准PS/2鼠标数据报格式Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0Byte 1Y overflowX overflowY sign bitX sign bitAlways 1Middle BtnRight BtnLeft BtnByte 2X MovementByte 3Y Movement这里的标准PS/2鼠标指的是不带滚轮的鼠标。对于带滚轮的鼠标数据报只是比标准PS/2 鼠标数据报多一个Byte4用来描述Z方向(也就是滚轮)的移动。本论文中采用标准的PS/2鼠标数据报格式。Y overflow(X overflow)是Y方向(X方向)的移位溢出标志。坐标原点在屏幕左下角。Y sign bit(X sign bit)和Y Movement(X Movement)共同构成九位的移位计数器,其中以二进制补码整数形式存放Y(X)方向的移位,Y sign bit(X sign bit)作为最高位存放符号位。位移计数器可表示的值的范围是-255到+255。Middle Btn、 Right Btn 、Left Btn分别表示中、右、左三个按键是否有按下。3 硬件设计3.1 PS/2接口设备的基本硬件设计PS/2接口与单片机可以直接连接,将单片机的VCC和GND分别与PS/2接口的4号和3号针脚连接,实现对设备的供电。将P2.0和P2.1分别和PS/2接口的1号和5号针脚连接,作为数据线和时钟线实现单片机到PS/2接口的信号传输。(PS/2接口的针脚定义见图2.1)在单片机的P2.2-P2.7引脚上连接六个按键,分别用来模拟鼠标的上下左右移动以及鼠标的左右键。该模块用来测试PS/2接口设备的基本功能。P1口接8个发光二极管,在调试和测试中显示相关内容。P3.0-P3.1接串口模块,实现单片机和PC的通信,该模块用于扩展和测试。PS/2接口设备的电路结构如图3.1所示。图3.1单片机与PS/2接口的连接3.2 PS/2接口设备与PC通过串口的连接这个模块是一个扩展和测试模块,用来实现串口转PS/2接口,并且可以测试PS/2接口的功能和性能。通过串口将PC机同PS/2接口设备连接,在PC机上编写测试软件,测试软件通过串口向单片机发送一定的鼠标数据报,设备将这些数据报转发到PS/2接口,这样使得调试更加方便灵活,同时也实现了本课题的PS/2接口设备的一个扩展应用。下面简单介绍单片机与PC的串口通信的硬件设计:51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以进行串口通讯。但是电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,这个转换电路一般有两种实现方式:第一种方式是用三个三极管来实现,如图3.2所示,该方法所用器件和电路都比较简单且成本较低。第二种方法采用了专用芯片MAX232进行转换,如图3.3所示,该方法较第一种方法更加简单可靠。但器件成本要略高。考虑到设计该模块的主要目的是测试PS/2接口的性能,我们忽略了成本差异,选择了使用更加可靠的第二种方法。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如图3.3所示。MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。图3.2 三极管实现电平转换电路图3.3 MAX232芯片实现电平转换电路4 软件设计4.1 PS/2接口驱动设计根据PS/2协议和对双飞燕鼠标实际工作时数据流的测试,设备要想向主机发送一个字节的数据,其发送函数要遵循图4.1的设计流程。其中每一个数据位的发送都要遵循图4.2所示流程。 图4.1 发送一个字节流程图 图4.2 发送一个数据位流程图设备要想从主机读取一个字节的数据,其读取函数要遵循图4.3的设计流程。其中每一个数据位的读取过程都要遵循图4.4所示流程。应答位的发送要遵循图4.5所示流程。图4.3 读取一个字节流程图 图4.4 读取一个数据位流程图 图4.5 读发送应答位流程图4.2 PS/2鼠标的四种工作模式PS/2鼠标有四种标准的工作模式:Reset模式,Stream模式,Remote模式,Wrap模式。Reset模式:鼠标在上电或收到Reset(0xFF)命令后进入Reset模式Stream模式: 这是缺省模式在Reset执行完成后,也是多数软件使用鼠标的模式。如果主机先前把鼠标设置到了Remote模式,那它可以发送Set Stream Mode(0xEA)命令给鼠标,让鼠标重新进入Stream模式。Remote模式:在某些情况下Remote 模式很有用可以通过发送Set Remote Mode(0xF0) 命令进入。Wrap模式:除了为测试鼠标和它的主机之间的连接外这个模式不是特别地有用,Wrap 模式可以通过发送Set Wrap Mode(0xEE)命令给鼠标来进入,要退出Wrap模式主机必须发布Reset(0xFF)命令或Reset Wrap Mode(0xEC)命令如果Reset(0xFF)命令收到了鼠标将进入Reset模式,如果收到的是Reset Wrap Mode(0xEC)命令鼠标将进入Wrap模式前的那个模式。由于鼠标主要工作在Reset模式和Stream模式,以下的的软件设计将主要围绕这两种模式进行。4.3 PS/2鼠标接口设备状态转换通过分析双飞燕的PS/2鼠标在实际使用过程中的信号了解到,在鼠标上电一定时间后主机会向鼠标发送多次复位信号,鼠标上电机进入Reset模式。如图4.6所示。图4.6 PS/2鼠标接口设备状态转换图Reset模式下主机会对鼠标进行检测和配置,这个过程也被叫做鼠标的初始化。主机在重新启动和休眠唤醒时也会让鼠标进入Reset模式并初始化鼠标。Stream模式下设备可以向主机发送鼠标数据报,当然主机在这个时期也可能短暂的抑制鼠标数据报的发送。4.4 Reset模式设备在收到主机发送的复位命令(FF)后进入复位模式。在该模式下鼠标会进行一次自检并对采样速率、分辨率、缩放比等设置缺省值,如果成功完成自检鼠标会想主机发送自检完成(AA),并发送设备ID(00),说明这个设备是鼠标。然后鼠标进入Stream模式。因为我们不是真的要做一个鼠标,所以设备的自检的环节可以省去,但必须在收到复位命令后大约500毫秒向主机发送自检完成(AA)并发送设备号。Reset模式程序流程设计如图4.7所示。图4.7 Reset模式程序流程设计4.5 Stream模式Stream 模式是操作的缺省模式。该模式程序流程设计如图4.8所示。图4.8 Stream模式程序设计在Reset模式下是鼠标设置的一个缺省值之一是“数据报告被禁止”,也就是在收到主机发送的设备使能(F4)命令之前,设备不应该向主机发送任何数据。事实上主机在发送设备使能命令之前通常会对设备的设置进行查询和设置。4.6 软件结构设计PS/2接口设备的软件主要包括六个部分:PS/2接口驱动模块,Reset模式处理模块,stream模式处理模块,显示处理模块,按键处理模块,主程序模块。各模块的结构关系如图4.9所示。图4.9 PS/2鼠标接口程序结构设计各模块的功能如下:1.PS/2接口驱动模块实现对PS/2接口的基本操作,包括向PS/2口发送一个字节数据,从PS/2口接收一个字节数据等操作的实现。2.Reset模式处理模块完成Reset模式操作,具体过程见图4.2所示。3.Stream模式处理模块完成Stream模式操作,提供发送一个完整鼠标数据报的函数,具体过程见图4.3所示。4.显示处理模块提供用于调试和测试的显示函数。5.按键处理模块用六个按键分别模拟鼠标的上下左右移动和左右键,当按下某个按键时产生相应的鼠标数据报,并调用Stream模式处理模块中的发送鼠标数据报函数,数据包发送到主机。6.主程序模块协调各模块稳定运行。5 系统测试5.1 功能测试测试科目:设备识别测试内容:设备在主机开机、重启和待机唤醒三种情况下的识别情况测试环境:联想启天M4000测试方法:为单片机P1口连接8个发光二极管,当设备受到主机发送F4后在P1口显示F4成功标志:单片机二极管显示F4测试结果:如表5.1所示。表5.1 设备识别测试测试内容开机重启待机唤醒测试次数203030成功次数203030表5.1的测试结果表明该设备在联想启天M4000上可以正常识别。测试科目:数据报传输测试内容:设备在向主机发送上下左右四个方向的移动命令及左右键的点击命令式主机是否能作出正确响应。测试环境:联想启天M4000测试方法:在单片机P0口连接6个按键分别代表鼠标上下左右移动和左右键点击,在按键时发送相应的数据报。成功标志:主机鼠标有预想的动作。测试结果:如表5.2所示。(移动距离为一个单位)表5.2 数据报传输测试测试内容鼠标向上鼠标向下鼠标向左鼠标向右左键单击右键单击数 据 报08 00 0128 00 FF18 00 FF08 01 0009 00 0008 00 000A 00 0008 00 00测试次数303030303030成功次数303030303030表5.2的测试结果表明设备可以成功的向主机发送鼠标数据报。5.2 性能测试测试科目:数据连续传输出错率测试环境:联想启天M4000测试方法:通过串口连续的向设备发送鼠标数据报,设备负责转发这些数据报。测试一:打开主机的画图板,选择画笔工具让鼠标在画图板上绘制一系列正方形。查看正方形的绘制情况。为串口端鼠标数据报发送软件如图5.1所示。图5.1 鼠标连续传输测试软件测试二:在主机运行如图5.2所示的测试程序,从串口发送一定数量的左键点击数据报,查看是否有数据报丢失现象。图5.2 鼠标连续点击测试成功标志:测试一:连续绘制多个正方形可以重叠不走形。测试二:统计点击数与预计点击数相符。测试结果:测试一:连续绘制20个正方形结果如图5.3所示。图5.3 连续绘制20个正方形结果多次测试表明鼠标向上向左的移动要比向下向右移动多一点,但其差值远小于鼠标移动的最小单位,可以认为这个偏差不是在数据传输过程中产生的,忽略掉这一微小的漂移之后,测试结果显示在绘制正方形的而过程中没有丢失数据报的现象。测试结果如表5.3所示。表5.3 正方形测试圈 数11050100200边 长110151515步 长10108108测试次数1020202020测试结果10次正常20次正常20次正常20次正常20次正常测试二:如表5.4所示。表5.4 鼠标左键点击测试点击次数150500300000测试次数2020201测试结果20次成功20次成功20次成功成功两项测试结果表明,该设备可以连续长时间的工作而不出错。测试科目:设备兼容性测试环境:四种不同主板的主机测试方法:在不同型号的计算机上分别对设备做西欧哪个能和性能测试成功标志:能够通过或经过一定修正功能测试和性能测试 测试结果:如表5.5所示。表5.5 兼容性测试联想启天M4000联想NA11928559P5kplam主板IBM Xserise 236设备识别测试全部通过全部通过全部通过全部通过连续传输测试全部通过未通过全部通过全部通过备 注在两个数据报发送间隔加一毫秒的延时后连续传输测试全部通过测试结果表明该设备可以较好的兼容上述四种机型(或主板)。致谢经过三个多月的学习和研究,本次毕业设计接近尾声。本课题的研究设计及学术论文的撰写是在赵润林老师的指导下完成的。从课题的选题到课题的最终完成赵老师都给予我极大的帮助,使我理论和实践能力都有了较大的提高。整个毕业设计的过程,在思考问题、做事情上始终受到赵老师的启发,这将是我以后学习和工作的一笔巨大财富。在此向赵润林老师表示诚挚的谢意,感谢他耐心的辅导和诲人不倦的敬业精神。同时也感谢运城学院计算机系各位领导的负责工作,为我们提供了丰富的参考资料及学习环境,使我可以潜心学习和研究。参考文献1 胡晓毅.基于PS/2鼠标接口单片机输入设备的实现J.厦门大学学报(自然科学版), 2003,4:463-4662 于静,张立新.PS/2鼠标与51系列单片机的软硬件接口J.北京石油化工学院学报, 2008,3:40-423 黎爱琼,陈家林.基于嵌入式微处理器的PS/2鼠标驱动设计J.测控技术, 2006,2:71-744 沈建华.嵌入式设备鼠标接口的设计与实现J.电子技术应用, 2003,11:12-145 秦旭.计算机鼠标的硬件原理及其编程J.电子技术,1999,9:22-256 洪喜,续志军.鼠标控制数字电位器在编码器中的应用J.电子技术应用, 2008,11:68-707 冯伟.PS/2鼠标在基于S3C2410A的多通道数据采集系统中的应用J.计算机与数字工程, 2009,04:172-1898 洪喜.鼠标控制数字电位器在编码器中的应用J.电子技术应用, 2008,11:68-709 王小明.基于FPGA的PS/2鼠标接口设计方法及其应用J.世界电子元器件,2007,10:54-6810 张轶飞.PS/2键盘鼠标在嵌入式系统中的应用J.电气自动化, 2006,2:145-14611 薛孟谦.PS/2协议单片机实时模拟的实现J.东北农业大学学报, 2008,3:110-11212 谈宏华.基于嵌入式微处理器的PS/2鼠标驱动设计J.测控技术, 2006,2:71-7413 徐晓.标准PS/2键盘与单片机的接口设计J.中国测试技术, 2005,1:89-9114 朱磊.多键盘/鼠标系统J.西安工程科技学院学报, 2004,2:164-16815 赵玉昆.PS/2鼠标和单片机的接口J.上海应用技术学院学报(自然科学版). 2004,1:48-5116 陈志宇.嵌入式设备鼠标接口的设计与实现J.电子技术应用, 2003, 11:12-1317 姜立东.嵌入式系统原理及应用M.北京:机械工业出版社,200618 薛圆圆,赵建领.USB应用开发实例详解M.北京:人民邮电出版社,200919 卢艳军.单片机基本原理及应用系统M.北京:机械工业出版社,200520 刘荣.圈圈教你玩USBM.北京:北京航空航天大学出版社,200921 李冉琦,白丽源.基于单片机的PS/2标准键盘接口制作J.电子制作,2007,11:159-16322 Ed Sutter. Embedded Systems Firmware Demisted. CMP Books Lawrence. Kansas 6604623 Edward A. Lee. Embedded Software. University of California. Berkeley. CA 94720.USA1.2001附录程序说明程序共包含7个文件:1.ps2dvr.c 该文件中包含了PS/2接口数据缓存的定义,延时函数,PS/2数据帧发送函数,PS/2数据帧接收函数等。 缓存定义:unsigned char bdata rcv_byte; /缓存刚从主机接收到的【字节】unsigned char rcv_buffer11;/接收【位】缓冲区unsigned char rcv_buffer_bit=0;/rcv_bufferrcv_buffer_bit延时函数:void delay6us() /实现功能:延时6微秒,调用一次产生8微秒的延时void delay8us() /实现功能:延时8微秒void delay16us() /实现功能:延时16微秒void delay32us() /实现功能:延时32微秒void delay40us() /实现功能:延时40微秒void delayms(unsigned int t) /延时t毫秒,入口参数:t 延时毫秒数驱动函数:unsigned char Checkout(void)实现功能:对rcv_byte进行奇校验void data_analyse()实现功能:分析处理从主机接收的数据位数组。因为数据时按位接收的,所以需要利用该函数将接收的位数据组装成字节,并进行校验。void sendbyte(unsigned char dat)实现功能:向主机发送一个字节的数据入口参数:dat 要向主机发送的字节void receivebyte()实现功能:从主机接收一个字节的数据并进行奇偶校验。当时钟信号被主机拉低且检测到数据线被拉低时,等待时钟线释放后调用该函数。产生时钟信号,并在上升沿读取主机数据,共接收十位数据,接收后产生一个应答信号。从主机读取的位数据存放在数组rcv_buffer中。rcv_buffer_bit是rcv_buffer的下标2.ps2dvr.h 该文件中包含了PS/2鼠标接口引脚的定义和ps2dvr.c中函数的声明等。PS/2鼠标接口连接引脚定义#define DAT P2_0 /数据线#define CLK P2_1 /时钟线函数声明略。3.mouse.c该文件中包含鼠标数据报缓存,鼠标初始化函数,鼠标数据报发送函数等。unsigned char mouse_data3;/向现有主机发送的数据【包】缓存int init_mouse() 实现功能:接收主机的数据并进行相应回复。主机在初始化过程中会不断的向设备发送命令,设备需要作出相应的回复,如果回复信息出错可能会导致设备的初始化失败。初始化失败主机将拉低时钟线抑制通信,直到主机重启。设备收到命令F4表示舍而被初始化结束,这意味着主机已经认为PS/2接口上所接的设备就是鼠标,此后设备就可以向主机发送鼠标数据报了。void send_mousedata()实现功能:向主机发送一个数据包,即mouse_data34.mouse.h 该文件中包含mouse.c中的函数声明等。5.serial.c该文件并非实现PS/2接口设备所必须的文件,文件用来实现串口转PS/2接口设备的实现和对PS/2接口设备的测试。该文件中包含串口初始化,串口发送函数串,口接收函数等 void init_serial(void) /实现功能:串口通信初始化void sendto serial (unsigned char dat) 实现功能:向上游主机发送一个字节数据入口参数:dat 要向上游主机发送的字节void ReceiveData(void) interrupt 4 实现功能:以中断方式接收串口数据。并将接收到的数据放入缓存区。虽然PS/2口的传输速度要略大于串口的传输速度,但PS/2口主机可能随时会抑制设备发送数据报,所以我设计一个可以放八个数据报的先进先出队列作为数据缓存区,以确保串口发送的数据不至于丢失。在为避免串口发送不完整的鼠标数据报而导致数据混论,规定串口再发送数据报的时候,在数据报前面再加一个字节的报头标志。void zhuanfa(void) /实现功能:从缓存区中提取一个数据报发送个PS/2接口。队列定义:unsigned char FIFO_data4;/向现有主机发送的数据【包】缓存unsigned char FIFO_DL32;/上游主机发送的数据缓存队列unsigned char FIFO_DL_H; /队列头unsigned char FIFO_DL_L; /队列尾unsigned char FIFO_DL_N; /队列包的个数unsigned char FIFO_DL_byte; /队列中接收到一个包的字节数6.serial.h该文件中包含serial.c中的函数声明等。7.main.c主程序。main()函数。附录部分代码void sendbyte(unsigned char dat)unsigned char i;delay40us();DAT=0; /开始位delay8us();CLK=0;delay40us();CLK=1;delay8us();for(i=0;ii)&0x01; /8个数据位delay8us();CLK=0;delay40us();CLK=1;delay8us();/一个奇偶校验位delay8us();ACC=dat;DAT=P;delay16us();CLK=0;delay40us();CLK=1;delay16us();/一个停止位,总是为1DAT=1;/发送停止位delay16us();CLK=0;delay40us ();CLK=1;delay32us();delay32us();void receivebyte() delay32us();for(rcv_buffer_bit=0;rcv_buffer_bit20) /超时则该主机一直通信,goto d1;if(DAT=0)t=0;while(CLK=0) delay8us(); t+;if(t20) /超时则该主机一直通信,goto d1; rcv();t=0;d1: if(cansend=1) /若不是初始化状态,就要发送队列中的数据报 if(FIFO_DL_N0) /若队列中有未转发的数据报,就转发一个 zhuanfa(); void ReceiveData(void) interrupt 4char r;RI=0;r=SBUF; /读串口缓存数据 if(FIFO_DL_L%4=0)/将队列划分为四字节八个区域到区域开头就检查报头 if(r&0xF8)!=0x50) /如果报头格式错误就丢弃 goto end;FIFO_DLFIFO_DL_L+=r; /入队 if(FIFO_DL_L=32) /循环队列FIFO_DL_L=0; FIFO_DL_byte+; if(FIFO_DL_byte=4) /如果接收够四个字节FIFO_DL_byte=0;FIFO_DL_N+; /队列内的包数加一if(FIFO_DL_N8) /若队列溢出,丢掉队列头上的包FIFO_DL_H=(FIFO_DL_H+4)%32;FIFO_DL_N=8;end:指导老师评语该设计应用单片机模拟PS/2时序,不仅实现单片机模拟鼠标与PC的通信,而且对题目进行了扩展,完成了串口信号向PS/2信号的转换。经过大量科学合理的测试,该系统性能可靠,与不同主板的PC的兼容性良好,具有一定的应用价值。论该生能够理论联系实际,并进行一定的创新,在毕业设计期间,工作量饱满,查阅了多种资料,做了大量的测试实验,表现出较强的分析问题和解决问题的能力。论文格式规范,结构条例清晰,语言流畅。Implementation of MCU Input DeviceBased on PS / 2 mouse interfaceAbstract:PS/2 interface is an earlier computer interface, and it is also one of the most widely used interfaces. It is mainly applied to the input of the mouse, keyboard and game joysticks. PS/2 is a concise interface protocol which is easy to realize. Also, PS/2 equipments have a stable operation performance for many years. It is these advantages that make the ancient PS/2 interfaces have an important role in the field of input interface. Based on detailed analysis, this topic puts forward a set of feasible program which aims to realize PS/2 mouse interface device. The program provides a realization method of a PS/2 mouse interface devices hardware and software. This topic underlines those contents about the implement method of PS/2 interface drive, the work process of PS/2 mouses reset model and stream model, and so on. According to the above solution, I make a PS/2 mouse interface device. This topic provides two basic function testing, two performance testing and a compatibility testing for the device. The device obtains an ideal result in the testing. Finally I extend PS/2 mouse interface device and I switch serial port to PS/2 mouse device. This devices realization proves that the PS/2 mouse interface device which is realized in this topic have a favorable expandability.Key Words: PS/2 interface;Communication protocol;SCM;Mouse;Drivers袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit6 Rain or Shine SectionaA Pronunciation说课稿2024-2025学年人教版(2024)七年级英语下册
- 课题3 物质的转化与应用说课稿-2025-2026学年初中化学仁爱科普版2024九年级下册-仁爱科普版2024
- 2025年中考数学试题分类汇编:锐角三角函数(10大考点62题) (第1期)原卷版
- 2025年中考化学试题分类汇编:坐标图像题(第2期)解析版
- A A hard choice (Viewing and listening)教学设计-2025-2026学年初中英语沪教版五四学制2024七年级下册-沪教版五四学制2024
- 第六单元 平行四边形的认识 (教学设计)-2023-2024学年四年级下册数学西师大版
- 2025年四川高考地理试题及答案详解
- 七年级道德与法治下册 第2单元 做情绪情感的主人 第5课 品出情感的韵味 第2框 在品味情感中成长说课稿 新人教版
- 四年级语文下册一二单元测试题(附答案)
- 2025年全国高压电工作业人员操作证考试题库(含答案)
- 教师消防培训课件
- 中国血脂管理指南(基层版+2024年)解读
- 早期生产遏制-GP-12-加严控制-Reinforce-Control
- 什么是医院感染
- 2025年轴流式消防排烟风机项目可行性研究报告
- 《管理学基础》课程标准(含课程思政)
- 《涡街流量计交流会》课件
- QC/T 1206.1-2024电动汽车动力蓄电池热管理系统第1部分:通用要求
- 国企内部控制审计服务方案
- 宁德时代笔试题库
- 骨干教师专业成长规划
评论
0/150
提交评论