基于FPGA的PS/2鼠标接口设计方法及其应用
发布时间:2008/5/28 0:00:00 访问次数:958
当前嵌入式系统技术已得到了广泛应用,但传统嵌入式系统的人机接口多采用小键盘操作的文本菜单方式,用户操作较为不便。本设计利用fpga实现对ps/2接口鼠标的控制,是在以vga作为输出设备的单片机系统上初步实现图形化用户界面的方案,它成本低、效果好,并且有很强的实用性。
fpga(field programmable gate array)是 20世纪80年代中期出现的高密度、可编程逻辑器件,fpga及其软件系统是开发数字电路的最新技术,它利用eda技术,以电路原理图、硬件描述语言及状态机等形式输入设计逻辑,提供功能模拟、时序仿真等模拟手段,在功能模拟和时序仿真度满足要求后,经过一系列变换,将输入逻辑转换成fpga器件的编程文件,以实现专用集成电路。本设计选用altera公司推出的cyclone ii系列的ep2c5t144c8 fpga来设计ps/2接口,体积减小,可靠性提高。
ps/2接口和协议
接口的物理特性
ps/2接口用于许多现代的鼠标和键盘,由ibm最初开发和使用。物理上的ps/2接口有两种类型的连接 器 :5脚的din和6脚的mini-din。图1就是两种连接器的引脚定义。使用中,主机提供+5v电源给鼠标,鼠标的地连接到主机电源地上。
图1 ps/2接口连接器引脚定义(略)
接口协议原理
ps/2鼠标接口采用一种双向同步串行协议,即每在时钟线上发一个脉冲,就在数据线上发送一位数据。在相互传输中,主机拥有总线控制权,即它可以在任何时候抑制鼠标的发送,方法是把时钟线一直拉低,鼠标就不能产生时钟信号并发送数据。在两个方向的传输中,时钟信号都由鼠标产生,主机不产生通信时钟信号。
图2 鼠标到主机传输时序(略)
如果主机要发送数据,就必须控制鼠标产生时钟信号,方法如下:主机首先下拉时钟线至少100μs抑制通信,然后再下拉数据线,最后释放时钟线。鼠标检测到这个时序状态后,会在10ms内产生时钟信号。如图3中(a)时序段。主机和鼠标之间,传输数据帧的时序如图2、图3所示。
图3 主机到鼠标的传输时序(略)
ps/2鼠标的工作模式和协议数据包格式
ps/2鼠标的四种工作模式
ps/2鼠标的四种工作模式分别是:reset模式,当鼠标上电或主机发复位命令(0xff)给它时,进入这种模式;stream模式,鼠标的默认模式,当鼠标上电或复位完成后,自动进入此模式,鼠标基本上以此模式工作;remote模式,只有在主机发送了模式设置命令(0xf0)后,鼠标才进入这种模式;wrap模式,这种模式只用于测试鼠标与主机连接是否正确。
数据包结构
ps/2鼠标在工作过程中,会及时把它的状态数据发送给主机。发送的数据包格式如表1所示。
表1:鼠标发送数据格式(略)
byte1中的bit0、bit1、bit2分别表示左、右、中键的状态,状态值0表示释放,1表示按下;byte2和byte3分别表示x轴和y轴方向的移动计量值,是二进制补码值;byte4的低四位表示滚轮的移动计量值,也是二进制补码值,高四位作为扩展符号位。这种数据包由带滚轮的三键三维鼠标产生,若是不带滚轮的三键鼠标,产生的数据包没有byte4,其余的相同。
vga信号时序
图4所示是计算机vga(640×480,60hz)图像格式的信号时序图,其点时钟dclk为25.175mhz,场频为59.94hz。图中,vsync为场同步信号,场周期tvsync为16.683ms,每场有525行,其中480行为有效显示行,45行为场消隐期。场同步信号vs每场有一个脉冲,该脉冲的低电平宽度twv为63μs(2行)。场 消隐期包括场同步时间twv、场消隐前肩thv(13行)和场消隐后肩tvh(30行),共45行。行周期thsync为31.78μs,每显示行包 括800点,其中640点为有效显示,160点为行消隐期(非显示 区)。行同步信号hs每行有一个脉冲,该脉冲的低电平宽度twh为3.81μs(即96个dclk);行消隐期包括行同步时间twh,行消隐前肩thc(19个dclk)和行消隐后肩tch(45个dclk),共160个点时钟。复合消隐信号是行消隐信号和场消隐信号的逻辑与,在有效显示期复合消隐信号为高电平,在非显示区域它是低电平。
图4 vga显示驱动时序(略)
设计实现
实现功能
1、 用fpga实现ps/2鼠标接口。
2、鼠标左键按下时十字形鼠标图象的中间方块改变颜色,右键按下时箭头改变颜色。
3、 reset按键:总复位。
设计原理
主机复位后,首先向鼠标发送初始化命令(0xf4)。当鼠标收到命令字后会给出一个应答字节(0xfa),主机根据应答字节来判断鼠标是否正确应答。如果应答正确则接收鼠标数据包,然后从接收到的数据包中获得鼠标位置及状态数据,并输出给显示模块。显示模块在crt上显示出当前鼠标的状态和位置,否则,停止处理。如图5。
如图6,
当前嵌入式系统技术已得到了广泛应用,但传统嵌入式系统的人机接口多采用小键盘操作的文本菜单方式,用户操作较为不便。本设计利用fpga实现对ps/2接口鼠标的控制,是在以vga作为输出设备的单片机系统上初步实现图形化用户界面的方案,它成本低、效果好,并且有很强的实用性。
fpga(field programmable gate array)是 20世纪80年代中期出现的高密度、可编程逻辑器件,fpga及其软件系统是开发数字电路的最新技术,它利用eda技术,以电路原理图、硬件描述语言及状态机等形式输入设计逻辑,提供功能模拟、时序仿真等模拟手段,在功能模拟和时序仿真度满足要求后,经过一系列变换,将输入逻辑转换成fpga器件的编程文件,以实现专用集成电路。本设计选用altera公司推出的cyclone ii系列的ep2c5t144c8 fpga来设计ps/2接口,体积减小,可靠性提高。
ps/2接口和协议
接口的物理特性
ps/2接口用于许多现代的鼠标和键盘,由ibm最初开发和使用。物理上的ps/2接口有两种类型的连接 器 :5脚的din和6脚的mini-din。图1就是两种连接器的引脚定义。使用中,主机提供+5v电源给鼠标,鼠标的地连接到主机电源地上。
图1 ps/2接口连接器引脚定义(略)
接口协议原理
ps/2鼠标接口采用一种双向同步串行协议,即每在时钟线上发一个脉冲,就在数据线上发送一位数据。在相互传输中,主机拥有总线控制权,即它可以在任何时候抑制鼠标的发送,方法是把时钟线一直拉低,鼠标就不能产生时钟信号并发送数据。在两个方向的传输中,时钟信号都由鼠标产生,主机不产生通信时钟信号。
图2 鼠标到主机传输时序(略)
如果主机要发送数据,就必须控制鼠标产生时钟信号,方法如下:主机首先下拉时钟线至少100μs抑制通信,然后再下拉数据线,最后释放时钟线。鼠标检测到这个时序状态后,会在10ms内产生时钟信号。如图3中(a)时序段。主机和鼠标之间,传输数据帧的时序如图2、图3所示。
图3 主机到鼠标的传输时序(略)
ps/2鼠标的工作模式和协议数据包格式
ps/2鼠标的四种工作模式
ps/2鼠标的四种工作模式分别是:reset模式,当鼠标上电或主机发复位命令(0xff)给它时,进入这种模式;stream模式,鼠标的默认模式,当鼠标上电或复位完成后,自动进入此模式,鼠标基本上以此模式工作;remote模式,只有在主机发送了模式设置命令(0xf0)后,鼠标才进入这种模式;wrap模式,这种模式只用于测试鼠标与主机连接是否正确。
数据包结构
ps/2鼠标在工作过程中,会及时把它的状态数据发送给主机。发送的数据包格式如表1所示。
表1:鼠标发送数据格式(略)
byte1中的bit0、bit1、bit2分别表示左、右、中键的状态,状态值0表示释放,1表示按下;byte2和byte3分别表示x轴和y轴方向的移动计量值,是二进制补码值;byte4的低四位表示滚轮的移动计量值,也是二进制补码值,高四位作为扩展符号位。这种数据包由带滚轮的三键三维鼠标产生,若是不带滚轮的三键鼠标,产生的数据包没有byte4,其余的相同。
vga信号时序
图4所示是计算机vga(640×480,60hz)图像格式的信号时序图,其点时钟dclk为25.175mhz,场频为59.94hz。图中,vsync为场同步信号,场周期tvsync为16.683ms,每场有525行,其中480行为有效显示行,45行为场消隐期。场同步信号vs每场有一个脉冲,该脉冲的低电平宽度twv为63μs(2行)。场 消隐期包括场同步时间twv、场消隐前肩thv(13行)和场消隐后肩tvh(30行),共45行。行周期thsync为31.78μs,每显示行包 括800点,其中640点为有效显示,160点为行消隐期(非显示 区)。行同步信号hs每行有一个脉冲,该脉冲的低电平宽度twh为3.81μs(即96个dclk);行消隐期包括行同步时间twh,行消隐前肩thc(19个dclk)和行消隐后肩tch(45个dclk),共160个点时钟。复合消隐信号是行消隐信号和场消隐信号的逻辑与,在有效显示期复合消隐信号为高电平,在非显示区域它是低电平。
图4 vga显示驱动时序(略)
设计实现
实现功能
1、 用fpga实现ps/2鼠标接口。
2、鼠标左键按下时十字形鼠标图象的中间方块改变颜色,右键按下时箭头改变颜色。
3、 reset按键:总复位。
设计原理
主机复位后,首先向鼠标发送初始化命令(0xf4)。当鼠标收到命令字后会给出一个应答字节(0xfa),主机根据应答字节来判断鼠标是否正确应答。如果应答正确则接收鼠标数据包,然后从接收到的数据包中获得鼠标位置及状态数据,并输出给显示模块。显示模块在crt上显示出当前鼠标的状态和位置,否则,停止处理。如图5。
如图6,