首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FPGA之PS/2接口

FPGA之PS/2接口




PS/2接口是一种6针的连接口,除了电源和接地之外。还有双向的时钟引脚和数据引脚,时钟引脚和数据引脚分别接在FPGA的PS2C和PS2D信号所在的引脚。这种接口一般用于一些输入设备,比如键盘和鼠标。ps/2 通讯协议是一种双向同步串行通讯协议。通讯的两端通过Clock(时钟脚)同步,并通过DATA(数据脚)交换数据。任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到低电平。如果是pc机和ps/2键盘间的通讯,则pc机必须做主机,也就是说,pc机可以抑制ps/2键盘发送数据,而 ps/2键盘则不会抑制pc机发送数据。一般两设备间传输数据的最大时钟频率是33kHz,大多数ps/2设备工作在10~20kHz。推荐值在 15kHz左右,也就是说,Clock(时钟脚)高、低电平的持续时间都为40μs。每一数据帧包含11~12个位。(摘自百度百科)
数据与主机的通信有两种:
1、设备——主机通信:设备将数据送往主机。一般在空闲的时候,主机的数据位和时钟位都是处于高电平,主机会在时钟下降沿接收设备发过来的信息。
2、主机——设备通信:设备通过接受主机的命令,向主机发送数据。主机向设备发送命令,设备时钟开始工作。因为市时钟和数据都是双向的,所以这时候需要一个三态门用于使得主机的发送命令有效。如果主机三态门处于高阻态的时候,那么主机就可以接受设备发来的信息。与此同时,如果设备发现主机在向他发送数据,那么他就会使得三态门为高阻态,已接收主机的命令。
不管以上哪一种方法,发送数据的每一帧都是11位的:起始位,8位数据,奇偶校验位,停止位。当然,也有12位的,在11位的基础上,增加一个1个应答位。仅用在主机对设备的通讯中。不过PS/2有一个致命的缺点啊!就是每次插进电脑还要重启啊!USB就不需要重启,即插即用,所以可以看到现在市面上几乎都是USB的天下了。
附:
PS/2的一种通信方式参考:PS/2设备的Clock(时钟脚)和Data?数据脚 都是集电极开路的,平时都是高电平。当PS/2设备等待发送数据时,它首先检查Clock(时钟脚)以确认其是否为高电平。如果是低电平,则认为是PC机抑制了通讯,此时它必须缓冲需要发送的数据直到重新获得总线的控制权(一般PS/2键盘有16个字节的缓冲区,而PS/2鼠标只有一个缓冲区仅存储最后一个要发送的数据)。如果Clock(时钟脚)为高电平,PS/2设备便开始将数据发送到PC机。一般都是由PS/2设备产生时钟信号。发送时一般都是按照数据帧格式顺序发送。其中数据位在Clock(时钟脚)为高电平时准备好,在Clock(时钟脚)的下降沿被PC机读入。 http://baike.baidu.com/view/65675.htm?fr=aladdin



记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表