查看: 327|回复: 5

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

[复制链接]

5

主题

1

好友

135

积分

童生

Rank: 2

  • TA的每日心情

    2016-11-3 20:21
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 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



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

    回复

    使用道具 举报

    5

    主题

    1

    好友

    135

    积分

    童生

    Rank: 2

  • TA的每日心情

    2016-11-3 20:21
  • 签到天数: 12 天

    [LV.3]偶尔看看II

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

    使用道具 举报

    21

    主题

    1

    好友

    966

    积分

    举人

    Rank: 4

  • TA的每日心情
    无聊
    3 小时前
  • 签到天数: 108 天

    [LV.6]常住居民II

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

    使用道具 举报

    10

    主题

    10

    好友

    1425

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    开心
    15 小时前
  • 签到天数: 143 天

    [LV.7]常住居民III

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

    使用道具 举报

    138

    主题

    7

    好友

    1888

    积分

    超级版主

    Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2016-7-28 15:40
  • 签到天数: 27 天

    [LV.4]偶尔看看III

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

    图片不是在上面么、、、
    回复

    使用道具 举报

    5

    主题

    1

    好友

    135

    积分

    童生

    Rank: 2

  • TA的每日心情

    2016-11-3 20:21
  • 签到天数: 12 天

    [LV.3]偶尔看看II

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

    我重新编辑了一遍...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-8 23:58 , Processed in 0.304413 second(s), 15 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部