查看: 3477|回复: 5

【学习笔记Ⅲ】给你的FPGA开发板插上键盘吧~

[复制链接]
  • TA的每日心情
    难过
    2018-9-25 15:55
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2016-8-15 11:07:05 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 叫我小杜可好 于 2016-8-15 11:29 编辑

    PS2接口现在虽然比较少见了,由于PS2的时钟频率比较慢,大约在10K左右,已经满足不了单身狗们的手速了,但对于学习FPGA来说,熟悉和掌握PS2的解码还是很有意义的,给你的FPGA接上一块PS2键盘来提升逼格吧
    PS2协议的内容

    1.jpg

    PS2接口如图,主要有用的引脚就是时钟和数据引脚对于我们来说是有意义的,其他引脚对于解码没有什么意义。
    2.jpg

         如图,时钟的一个从高到低的下降沿作为起始信号,紧接着传输8位数据为和一位校验位以及结束位,即一次传输10位数据,但这样说是不准确的,因为我们松开键盘的时候会发送出两位数据,这即是通码和断码的区分,按下键盘输出通码,通码是一个字节,10位数据位,松开键盘的时候发送出断码,断码是两个字节,但第一个字节是OXF0,因此我们解码的时候可以只检测第一个字节,如果是通码,则找出对应的按键,如果是0XF0,则可以忽略了,因为它表示我们松开按键不进行操作PS2部分键码表

    3.jpg


           恕小的啰嗦一句,我们要做的是解码而不是发送数据,当然PS2是一个双向的通信协议,但对于键盘,FPGA只需要接收识别出数据就行,因此我们需要做的是识别出系列按照PS2协议传输过来的数据1判断起始信号首先我们要做的是判断出数据传输的起始,即分辨出数据的起始位,数据的起始位是一个时钟下降沿,即判断下降沿的到来,此处采用固定写法,即数据线打两拍后与时钟线上的实时数据比较得到。


    4.jpg


        读取数据的标志得到了起始信号,就代表一大波数据也就是九个数据要跑来了,我们要做好接收的准备啊,每个数据的间隔是多大啊,对,10K,我们可以用计数器分频得到10K信号去接收数据,但你有没有想到更好地方法,我们的下降沿标志信号间隔多少啊,同样是10k,我们可以用下降沿标志作为读取信号线的标志。

    5.jpg

    接收得到数据


    6.jpg

         接下来我们就要开始接收得到的数据了,怎么接收呢,我不禁又想到了串转并,将串行的数据一个一个接收一个数据里头,可是我们怎样实现呢,这就需要我们控制了,我们心中要明白,第一位是起始位,2-9位是我们需要的数据,且数据是先低位后高位发送过来的,第十位是校验位,可以不做处理。因此我们下部分主要做的事情就是将2-9位数据提取出来,怎么提取,状态机出场了。利用下降沿标志触发状态机状态的转化,同时控制接收到的字符4判断按键的状态

    7.jpg

    好的,我们接收到数据了,接下来我们做什么呢,前面说到按键松开和按下都会有数据发出,那我们怎么知道呢,对,通码和断码的区别呗,所以接下来我们就判断接收到的数据来判断按键的状态。5实现后续功能现在我们已经得到了按键按下后准确的通码,接下来就可以使用了,例如用它来控制流水灯啊,点亮数码管什么的,这里我就用它将键值的ASCII码通过串口通信发送到电脑的串口助手上,来看看对不对
    8.jpg


    效果图展示看我萌不萌


    9.jpg


    we are family


    10.jpg

    11.jpg



    鸣谢:感谢南京锆石科技提供的开发板以及相应的资料教程

    回复

    使用道具 举报

  • TA的每日心情
    难过
    2018-9-25 15:55
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

     楼主| 发表于 2016-8-15 11:21:48 | 显示全部楼层
    我的图片呢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-2-27 22:16
  • 签到天数: 1568 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2016-8-16 19:26:27 | 显示全部楼层
    学习了,感觉编程软件不是很难
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-4-12 14:51
  • 签到天数: 163 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2016-8-17 08:26:19 | 显示全部楼层
    很不错哦,赞一下!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-5-11 10:52
  • 签到天数: 30 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2016-8-17 09:09:13 | 显示全部楼层
    叫我小杜可好 发表于 2016-8-15 11:21
    我的图片呢

    图片不是在上面么、、、
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2018-9-25 15:55
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

     楼主| 发表于 2016-8-20 15:24:33 | 显示全部楼层
    yerun 发表于 2016-8-17 09:09
    图片不是在上面么、、、

    我重新编辑了一遍...
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 11:52 , Processed in 0.185618 second(s), 26 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.