查看: 1190|回复: 0
打印 上一主题 下一主题

想用FPGA读PS2手柄,用串口模块改装是否可行?

[复制链接]
跳转到指定楼层
沙发
发表于 2015-3-23 14:43:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

前提:
1 PS2手柄宽接口的那种
           PS手柄针脚输出端(面对插头)

         ---------------------------------------------------------
            PIN 1->| o  o  o | o  o  o | o  o  o |
         \________________________________/

2 PS手柄信号
        PS手柄通讯都是8 bit串行数据最低有效位先行。在PS 手柄总线的所有时码在时钟下降沿都是同步的。传送一个字节的情况如下所示。
                       |BIT 0|BIT 1|BIT 2|BIT 3|BIT 4|BIT 5|BIT 6|BIT 7|
            CLOCK -----___---___---___---___---___---___---___---___-----------
            DATA  -----000000111111222222333333444444555555666666777777--------
                          *     *     *     *     *     *     *     *
            CMND  -----000000111111222222333333444444555555666666777777--------
        注:        CMND:FPGA端向手柄端发送指令
                DATA:手柄端向FPGA端发送信号

3 串口收发模块借用《verilog那些事》里串口收发模块

两者异同:
同:        都是8位有效位,低位先行。
        上升沿采集信号
        收发互不干扰
异:        收发模块时钟同频率,但是不一定同步。
        串口没有时钟线,PS2需要(FPGA端)提供时钟信号

正式问题:
        在《verilog那些事》里串口收发模块各自都有BPS模块,但是发送端只有在有数据要发送时BPS才开始计时。接受模块也是在接受到第一位信号时BPS才开始计时的。我想把这两个BPS模块从收发模块中独立出来。用这个模块输出PS2端口的时钟,同时送给两个收发模块。收发模块都有使能信号。不使能时应该不会影响。
        再加一个控制模块直接接受串口接收模块的8位数据,再发送另一个8位数据给串口发送模块。以实现解读PS2手柄信息。

想请教一下这种想法是否可行,如可行还有那些地方我要注意的也请多多指教。
另:本人基础薄弱,描述的不清楚请见谅。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表