PS2设备通信协议 时序图
- 格式:ppt
- 大小:303.50 KB
- 文档页数:23
PS2鼠标接口协议协议名称:PS2鼠标接口协议一、介绍PS2鼠标接口协议是一种用于连接计算机和鼠标之间的通信协议。
该协议规定了数据传输格式、通信流程以及错误处理等方面的内容,以确保计算机和鼠标之间的稳定通信。
二、数据传输格式1. 数据帧格式PS2鼠标接口协议使用异步串行通信方式传输数据,数据帧由8个bit组成,其中包括1个起始位、1个停止位和6个数据位。
数据帧的格式如下所示:起始位数据位0 数据位1 数据位2 数据位3 数据位4 数据位5 停止位2. 通信速率PS2鼠标接口协议支持的通信速率为1200bps。
三、通信流程1. 初始化计算机在启动时,需要向鼠标发送初始化命令,以建立通信连接。
初始化命令的格式如下所示:发送:0xFF接收:0xFA2. 数据传输一旦通信连接建立成功,计算机可以向鼠标发送指令,鼠标将根据指令执行相应的操作,并将结果返回给计算机。
指令的格式如下所示:发送:0xFX(X为指令码)接收:0xFA(表示指令执行成功)或0xFE(表示指令执行失败)3. 中断当鼠标有新的数据需要传输给计算机时,会发送一个中断信号,以通知计算机接收数据。
计算机在接收到中断信号后,可以通过读取数据寄存器来获取鼠标发送的数据。
四、错误处理1. 通信错误如果在通信过程中发生错误,计算机会发送复位命令给鼠标,以重新建立通信连接。
复位命令的格式如下所示:发送:0xFF接收:0xFA2. 指令错误如果鼠标接收到无法识别的指令,将返回错误码给计算机,表示指令执行失败。
计算机可以根据错误码来判断具体的错误类型,并进行相应的处理。
五、安全性考虑为了保证通信的安全性,PS2鼠标接口协议还提供了数据校验功能。
每个数据帧的最后一个bit是校验位,计算机和鼠标都会对数据进行校验,以确保数据的完整性和准确性。
六、总结PS2鼠标接口协议是一种用于连接计算机和鼠标之间的通信协议,它规定了数据传输格式、通信流程以及错误处理等方面的内容。
FPGA基础设计_PS2键盘控制及短按、长按
PS2键盘也是一个经典的实验,可能很多人接触如何对通信协议、时序编程就是从这个实验开始学习的。
USB键盘已经很普及,现在市场上还是有一些USB转PS2的转接头,还有一些转换芯片。
这个实验虽然简单,不过不知道您有考虑过单按一次输出一个有效脉冲、短按、长按等这些是如何实现的么?这就涉及到一些时钟、边沿检测等设计问题。
PS2协议实现
我们见到的PS2的接口电路应该都是这样的:
一根时钟线、一根数据线完成通信,PS2通信的帧格式如下所示,时钟的下降沿数据有效:
按键在被按下时,会发送一个字节,这个码就是通码;按键在释放时,会发送两个字节,这个码就做断码(当然也有例外)。
每一个按键都有唯一的通码和断码,据此进行判断按下的是哪个键,从而执行对应的功能。
如一部分按键的通码和断码如下所示:
可以看出断码其实就是在通码前加了一个F0,比如A的通码是1C,则它的断码是F01C。
另外一些特殊功能的按键,在通码和断码前都会加个E0。
PS2解码的代码如下所示:
//-----------------ps2_clk下降沿捕获--------------------
//clk相当于中间采样点的作用,第一个下降沿到来说明起始位开始
reg ps2_clk0,ps2_clk1,ps2_clk2;//缓冲寄存器
wire ps2_clk_neg; //1表示检测到下降沿
reg ps2_state;
always @ (posedge clk or negedge rst_n)
if (!rst_n)
{ps2_clk0,ps2_clk1,ps2_clk2} 《= 3‘d0;
else。
中小系统上位机通讯协议2004-11-2DL451-91(CDT)通讯规约采用RS232通讯接口;波特率支持1200、2400、4800、9600,字符格式10位(1位起始位、8位数据、1位停止位)。
1.帧定义1.1.帧结构1.2.同步字发送:EBH 90H EBH 90H EBH 90H,共6个字节。
1.3.控制字控制字共有B7 – B12 共6个字节,定义如下:1.3.1.控制字节控制字节定义如下:E:扩展位,E=0 表示使用本协议已定义帧类别码,E=1帧类别码可自定义,本协议中总为0L:帧长定义位,E=0 表示本帧无信息字,E=1 表示本帧有信息字,本协议中总为1S:源站地址有效D:目的站地址有效(上行信息中,S=1,D=1,源站地址为直流设备设置地址,目的站地址为上位机地址,固定为01H。
)(下行信息中,D=1, 目的站地址为直流设备设置地址)1.3.2.帧类别码帧类别码定义如下:1.3.3.信息字数信息字数n表示该帧中所含信息字数量;n=0表示本帧无信息。
1.3.4.校验码本协议采用CRC校验,校验多项式为107H,为信息字前5字节构成码流,后面加8个0,得到48位码流,用校验多项式作为除数除以码流,相除时做异或;最后得到8位余数取反后既为校验码。
例如:信息字为;43h E8h 7DH 33H 56H 计算余数为2FH,取反后为D0H,发送序列为:43h E8h 7DH 33H 56H D0H。
1.4.信息字1.4.1.信息字结构每个信息字由6个字节构成:功能码1字节,信息4字节校验码1字节。
功能码定义功能码定义如下:1.4.2.信息字格式遥测:每个信息字传送2路遥测量,每个遥测量包含2字节,先送低字节,后送高字节。
b11 – b0 表示一路模拟量,以2进值表示,b11=0表示正,b11=1表示负,以二进值补码表示负数。
b14=1表示溢出,b15=1表示无效,b12 b13 未使用。
遥信:每个信息字传送32个遥信量。
PS2键盘与鼠标的接口定义针脚定义:原理PS/2鼠标接口采用一种双向同步串行协议。即每在时钟线上发一个脉冲,就在数据线上发送一位数据。在相互传输中,主机拥有总线控制权,即它可以在任何时候抑制鼠标的发送。方法是把时钟线一直拉低,鼠标就不能产生时钟信号和发送数据。在两个方向的传输中,时钟信号都是由鼠标产生,即主机不产生通信时钟信号。如果主机要发送数据,它必须控制鼠标产生时钟信号。方法如下:主机首先下拉时钟线至少100μs 抑制通信,然后再下拉数据线,最后释放时钟线。通过这一时序控制鼠标产生时钟信号。当鼠标检测到这个时序状态,会在10ms内产生时钟信号。如图3中A 时序段。主机和鼠标之间,传输数据帧的时序如图2、图3所示。2.2 数据包结构在主机程序中,利用每个数据位的时钟脉冲触发中断,在中断例程中实现数据位的判断和接收。在实验过程中,通过合适的编程,能够正确控制并接收鼠标数据。但该方案有一点不足,由于每个CLOCK都要产生一次中断,中断频繁,需要耗用大量的主机资源。PS/2鼠标的四种工作模式是:Reset模式,当鼠标上电或主机发复位命令0xFF给它时进入这种模式;Stream模式鼠标的默认模式,当鼠标上电或复位完成后,自动进入此模式,鼠标基本上以此模式工作;Remote模式,只有在主机发送了模式设置命令0xF0后,鼠标才进入这种模式;Wrap模式,这种模式只用于测试鼠标与主机连接是否正确。PS/2鼠标在工作过程中,会及时把它的状态数据发送给主机。发送的数据包格式如表1所示。Byte1中的Bit0、Bit1、Bit2分别表示左、右、中键的状态,状态值0表示释放,1表示按下。Byte2和Byte3分别表示X轴和Y轴方向的移动计量值,是二进制补码值。Byte4的低四位表示滚轮的移动计量值,也是二进制补码值,高四位作为扩展符号位。这种数据包由带滚轮的三键三维鼠标产生。若是不带滚轮的三键鼠标,产生的数据包没有Byte4 其余的相同。一.PS/2 鼠标键盘协议PC 键盘可以有6 脚的mini-DIN 或5 脚的DIN 连接器如果你的键盘是6 脚的mini-DIN 而你的计算机是5 脚的DIN 或者相反这两类连接器可以用上面提到的适配器来兼容具有6 脚mini-DIN 的键盘通常被叫做PS/2 键盘而那些有5 脚DIN 叫做AT 设备XT 键盘也使用5 脚DIN 但它们非常古老并且多年前就不生产了所有现代的为PC 建造的键盘不是PS/2,AT 就是USB 的这篇文章不适用于USB 设备它们使用了一种完全不同的接口。
PS/2鼠标协议原理(中文)按照PS/2协议,移动时,鼠标会输出一组时钟和数据信号;而在静止时,时钟和数据信号将一直保持为逻辑高电平,表示处于空闲状态。
每次移动时,鼠标会向主机发送3个数据帧,每个数据帧11位,包括1个起始位“0”、8个数据位(低位在前)、1个奇校验位和一个结束位“1”,因此每次移动时,鼠标会向主机发送33位数据,其中第0、11和22位是起始位“0”,第10、21和32位是结束位“1”,如图5.7所示。
图5.7 PS/2鼠标的数据传送在图5.7 中,“Mouse status byte”、“X direction byte”和“Y direction byte”三个字节的数据是鼠标移动产生的相关数据,包括状态、X方向数据和Y方向数据。
按照PS/2协议,鼠标数据在时钟CLK的下降沿有效,而时钟CLK的频率要求在20KHz~30KHz之间。
基于PS/2协议的鼠标采用相对坐标的形式来追踪它的移动轨迹,如图5.8所示。
如果鼠标水平向右移动,则得到一个正的X值;否则,得到一个负的X值。
如果鼠标竖直向上移动,则得到一个正的Y值;否则,得到一个负的Y值。
使用“0”表示正值;而使用“1”表示负值。
在“Mouse status byte”数据字节中,XS和YS就表示了鼠标的移动方向。
图5.8 PS/2鼠标的相对坐标相对坐标中,X值和Y值表示了鼠标的移动速度,值越大表示鼠标的移动速度越大。
“Mouse status byte”数据字节中,XV和YV则标识鼠标的移动是否超出了范围,包括X方向和Y 方向。
如果超出了范围,则XV或YV置位为1。
“Mouse status byte”数据字节中,L和R 则分别表示鼠标的左键和右键,如果有键按下,则相应的L或R置位。
如果鼠标一直移动,则图 5.7所示的33个位的数据不停发送,重复周期约为50ms。
按照PS/2协议,移动时,鼠标会输出一组时钟和数据信号;而在静止时,时钟和数据信号将一直保持为逻辑高电平,表示处于空闲状态。
PS2键盘在单片机上的应用摘要:在嵌入式PC应用系统中,作为人机交互设备的键盘,往往采用结构简单按键少的矩阵键盘。
标准键盘虽然能直接与嵌入式PC机的PS/2接口相连,但是体积大,按键多,不能满足需求,本文提出用一种AT89C52单片机实现具有标准PS/2接口的矩阵键盘,具有便捷,实用的特点。
关键词:PS/2接口,PS/2键盘,拨号键,AT89C52,LCD1602Abstract:PS/2 interface is one of the most useful mouse interface.It was IBM’s patent named osulum before. It is the dedicate interface of mouse and keyboard. This text implied a plan using PS/2 to make a system. PS/2 tansmit the data which was pressed, and AT89C52 receive it ,disposed it and transmit it to Lcd1602. Lcd1602 discover it to make us know which key has been pressed. PS/2 simulate a phone’s dial keyboard. This system’s feature is the circuit is sample and useful.Keywords:PS/2 keyboard, AT89C52, LCD1602,PS/2 interface,dial keyboard目录1、前言 (1)2、整体方案设计 (2)2.1方案论证 (2)2.2方案比较 (3)3、单元模块设计 (4)3.1PS2键盘模块 (4)3.2单片机模块 (6)3.3LCD显示模块 (7)4、软件设计 (9)5、系统技术指标及精度和误差分析 (10)6、结论 (11)7、设计小结 (12)8、致谢 (14)9、参考文献 (14)附录1:电路总图 (15)附录2:仿真图 (16)附录3:软件代码 (17)1、前言单片机因其性价比高, 处理能力强, 且抗干扰能力好, 在医疗器械、机电液控制、数据传输等各类工控系统和设备仪器中得到广泛应用。