ps2手柄是索尼游戏机的遥控手柄,索尼的系列游戏主机在全球很是畅销。不知什么时候便有人打起ps2手柄的主意,破解了通讯协议,使得手柄可以接在其他器件上做遥控使用,比如遥控我们熟悉的四轮车与机器人。突出的特点是现在这款手柄性价比极高。按键丰富,方便扩展到其它应用中。 移步优酷观看:http://v.youku.com/v_show/id_XMTQ5MzM0NjMyMA==.html
一、接收器线号 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| DI/DAT
| DO/CMD
| NC
| GND
| VDD
| CS/SEL
| CLK
| NC
| ACK
|
批次不同,接收器的外观会有所区别,一个上有电源灯红灯,一个上没有电源灯,但使用方法是一样的,引脚定义是一样的。 - DI/DAT:信号流向,从手柄到主机,此信号是一个8bit的串行数据,同步传送于时钟的下降沿。信号的读取在时钟由高到低的变化过程中完成。
- DO/CMD:信号流向,从主机到手柄,此信号和DI相对,信号是一个8bit的串行数据,同步传送于时钟的下降沿。
- NC:空端口;
- GND:电源地;
- VDD:接收器工作电源,电源范围3~5V;
- CS/SEL:用于提供手柄触发信号。在通讯期间,处于低电平;
- CLK:时钟信号,由主机发出,用于保持数据同步;
- NC:空端口;
- ACK:从手柄到主机的应答信号。此信号在每个8bits数据发送的最后一个周期变低并且CS一直保持低电平,如果CS信号不变低,约60微秒PS主机会试另一个外设。在编程时未使用ACK端口。
二、手柄的使用、连接配对说明 PS2手柄由手柄和接收器两个部分组成,手柄需要两节7号1.5V供电,接收器的电源和控制器使用同一电源,电源范围为3~5V,不能接反,不能超电压,过压和反接,都会使接收器烧坏。 手柄上有个电源开关,ON开/OFF关,将手柄开关打到ON上,在未搜索到接收器的状况下,手柄上的灯会不停的闪,在一定时间内,还未搜索到接收器,手柄将进入待机模式,手柄上的灯将灭掉,这时,按下“START”键,唤醒手柄。 接收器供电,在未配对的状况在,绿灯闪。 手柄打开,接收器供电,手柄和接收器会自动配对,这时灯常亮,手柄配对成功。按键“MODE”(手柄批次不同,上面的标识有可能是"ANALOG",但不会影响使用),可以选择“红灯模式”、“绿灯模式”。 有些用户反映,手柄和接收器不能正常配对!多数问题是,接收器的接线不正确,或程序有问题。 解决方法:接收器只接电源(电源线一定要连接正确),不接任何数据线和时钟线,一般情况下手柄是能够配对成功。配对成功后灯常亮,说明手柄是好的。这时再检查接线是否正确,程序移植是否有问题。 三、时序及数据意义 在时钟下降沿时,完成数据(1bit))的发送与接收。 当主机想读手柄数据时,将会拉低CS线电平,并发出一个命令“0x01”;手柄会回复它的ID“0x41=模拟绿灯,0x73=模拟红灯”;在手柄发送ID的同时,主机将传送0x42,请求数据;随后手柄发送出0x5A,告诉主机“数据来了”。 idle:数据线空闲,该数据线无数据传送。 一个通讯周期有9个字节(8位),这些数据是依次按传送的。 顺序
| DO
| DI
| Bit0、Bit1、Bit2、Bit3、Bit4、Bit5、Bit6、Bit7、
| 0
| 0X01
| idle
|
| 1
| 0x42
| ID
|
| 2
| idle
| 0x5A
|
| 3
| idle
| data
| SELECT、L3、R3、START、UP、RIGHT、DOWN、LEFT
| 4
| idle
| data
| L2、R2、L1、R1、△、○、╳、□
| 5
| idle
| data
| PSS_RX(0x00=left、0xFF=right)
| 6
| idle
| data
| PSS_RY(0x00=up、0xFF=down)
| 7
| idle
| data
| PSS_LX(0x00=left、0xFF=right)
| 8
| idle
| data
| PSS_LY(0x00=up、0xFF=down)
|
当有按键按下,对应位为“0”,其他位为“1”,例如当键“SELECT”被按下时,Data[3]=11111110B, 红灯模式时:左右摇杆发送模拟值,0x00~0xFF之间,且摇杆按下的键值L3、R3有效; 绿灯模式时:左右摇杆模拟值为无效,推到极限时,对应发送UP、RIGHT、DOWN、LEFT、△、○、╳、□,按键L3、R3无效。 详细手册说明及例程请下载附件,线的连接方式根据您的程序进行正确连接。 在这里我们提供一个附件,里面的内容包括:
1、PS2例程(PS2解码例程(主控stm32,c语言编写解码例程)、PS2控制小车程序、PS2控制舵机例程);
2、PS2-Arduino-lib(Arduino例程);
3、PS2解码通讯手册.pdf; 4、PS2解码通讯常见问题汇总.pdf。 打开文件后请首先阅读ReadMeFirst.txt,提高您浏览的效率。 如果您遇到问题,先先打开《PS2解码通讯常见问题汇总》,看是否能够解决,如不能解决请回复或直接联系我。 |