因仑“3+1”工程特种兵精英论坛

标题: 想用FPGA读PS2手柄,用串口模块改装是否可行? [打印本页]

作者: 123321    时间: 2015-3-23 14:43
标题: 想用FPGA读PS2手柄,用串口模块改装是否可行?

前提:
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手柄信息。

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






欢迎光临 因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4