SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制协议已被全球创客破解,可以方便用于机器人控制器,作为遥控输入设备。

这款手柄价格便宜,性价比极高。

原理

PS2无线手柄按键比较多,例如在一款游戏中的设定:

PS手柄无线接收器,针脚输出端(面对插头)

-----------------------------------------

PIN 1->| o o o | o o o | o o o |

\___________________________________/

针脚 从左到右分别是 :

1-DATA:信号流向从手柄到主机。此信号是一个8 bit的串行数据,同步传送于时钟下降沿(输入输出信号在时钟信号由高    到低时变化,所有信号的读取在时钟前沿到电平变化之前完成。)

2-COM, COMMAND :信号流向从主机到手柄。此信号和DATA相对,同样是一个8 bit的串行数据,同步传送于时钟下降沿。

3-N/C (9 Volts unused)

4-GND

5-VCC :电源电压从5V到3V原装的索尼手柄都可以工作。主机主板上装有表面安装的750mA 保险丝 ,用于防止外设过载    (750mA是包括左右手柄和记忆卡)。

6-ATT :用于提供手柄触发信号。信号在通信期间处于低电平。又有人将此针脚叫做CS(ChipSelect), DTR

7-CLOCK :信号流向从主机到手柄。用于保持数据同步。

8-N/C

9-ACK :从手柄到主机的应答信号。此信号在每个8 bits数据发送之后的最后一个时钟周期变低,并且ATT 一直保低电平。如果ACK 信号不变低约60微秒PS主机会试另一个外设。

PS手柄信号,所有通讯都是8 bit串行数据最低有效位先行。在PS 手柄总线的所有时码在时钟下降沿都是同步的。传送一个字节的情况如下所示。

数据线的逻辑电平在时钟下降沿驱动下触发改变。数据的接收读取在时钟的前沿(在记号*处)到电平变化之前完成。 在被选手柄接收每个COMMAND 信号之后,手柄需拉低ACK 电平在最后一个时钟。如果被选手柄没ACK 应答主机将假定没手柄接入。

当PS主机想读一个手柄的数据时,将会拉低ATT 线电平并发出一个开始命令 (0x01)。手柄将会回复它的ID (0x41=数字, 0x23=NegCon, 0x73=模拟红灯, 0x53=模拟绿灯). 在手柄发送ID字节的同时主机将传送0x42 请求数据。随后命令线将空闲和手柄送出 0x5A 意思说:"数据来了"。

本文只针对 "模拟手柄红灯模式"进行破解,字节定义如下。

============================================================================

SONY无线PS2遥控手柄与stm32单片机通信相关推荐

  1. 对PS2遥控手柄与stm32单片机通信的理解(结合平衡小车之家的说明和程序)

    为了更好地应用PS2遥控手柄,我想尽可能理解一下它与stm32单片机间通信控制的过程,首先看了平衡小车之家给的PS2遥控手柄使用说明,讲解的内容比较简洁,光凭这个说明不能很轻易地理解配套的程序逻辑,接 ...

  2. 单片机右摇杆c语言函数英文,对PS2遥控手柄与stm32单片机通讯的理解(结合平衡小车之家的说明和程序)...

    为了更好地应用PS2遥控手柄,我想尽量理解一下它与stm32单片机间通讯控制的过程,首先看了平衡小车之家给的PS2遥控手柄使用说明,讲解的内容比较简洁,光凭这个说明不能很轻易地理解配套的程序逻辑,接下 ...

  3. PS2无线遥控手柄与STM32单片机通信

    PS2无线遥控手柄 接下来要做一个小车玩玩,在网上淘了一个PS2无线遥控手柄,用于控制小车的前进.后退等功能. 实物图如下: 其中有两个PS2游戏摇杆,对应的驱动原理参见下文: PS2游戏摇杆原理及控 ...

  4. python实现STM32单片机通信

    python实现STM32单片机通信 注意事项 注意事项 Python3中的encode('unicode-escape')和encode('raw_unicode_escape')区别与联系 htt ...

  5. 超详细OpenMV与STM32单片机通信 (有完整版源码)

    目录标题 1.前言(闲话) 2.硬件连接 3.软件代码---OpenMV端 4.软件代码---STM32端 5.利用PC端测试数据数据是否发送接收正常 6.学习补充 (代码看不懂的时候可以来看一下) ...

  6. STM32F4 高主频引起的PS2遥控手柄协议移植问题

    在STM32F103主板上运行正常的PS2手柄驱动协议,平移到STM32F405的板子上,遇到板子收不到手柄按键信号的情况.各种查找资料,各种测试之后,终于在这篇博文的启发下找到了问题.关于使用STM ...

  7. 485通讯线是几芯的_RS485协议 电脑与stm32单片机通信 keil编程 在485的硬件错误中徘徊...

    学习于:野火stm32视频教程 CAN是用在汽车总线中,RS485是用在工业现场环境中.特定是传输距离远,抗干扰能力强. 485由232协议改进而来,协议层不变,只是改进了物理层,因此保留了串口通讯协 ...

  8. Arduino单片机(五).基于OpenWrt模块的无线视频遥控小车设计

    1.功能介绍 本项目所设计的机器人需要实现的功能为:操作员在操作终端(手机或PC端)通过Wi-Fi连接到小车上Wi-Fi模块所在的网络中,向其发出相关操作指令,在Wi-Fi模块接收相关的数据指令并通过 ...

  9. stm32 温湿度_基于STM32单片机大棚温湿度检测无线蓝牙APP控制设计

    本设计由STM32单片机+风扇控制电路+温湿度传感器电路+1602液晶显示电路+蓝牙模块电路+电源电路组成. 通过温湿度传感器检测温湿度,并在液晶上和APP上实时显示. 当湿度超过75度,APP发出报 ...

  10. STM32单片机智能语音温控摇头电风扇落地扇可红外遥控可PWM调速定时温度显示

    实践制作DIY- GC0074-智能语音温控摇头电风扇 一.功能说明: 基于STM32单片机设计-智能语音温控摇头电风扇 功能介绍: 硬件组成:STM32单片机+语音识别模块+DS18B20温度传感器 ...

最新文章

  1. 关于Jquery中ajax方法data参数用法的总结
  2. python接口测试demo_python http接口自动化测试简单demo
  3. 上交大博导:写给不想做学术的你
  4. 南大用“推荐算法”分宿舍666,新生配好舍友美滋滋
  5. linux 硬盘繁忙,icinga2 借助check_iostat.sh抓取linux服务器的diskIO(硬盘繁忙度)
  6. mysql 日期函数大全_MYSQL 日期函数大全
  7. allure报告---动态显示模块名和用例标题
  8. 创建前缀一样的文件_Win10更快速创建或重命名仅扩展名文件
  9. R实现地理位置与经纬度相互转换
  10. 常用游戏分析工具 之 PChunter 及 procexp 使用心得
  11. C# ajax上传图片
  12. 阿里第一轮电话面试面经
  13. PSPICE 仿真石英晶体振荡电路
  14. 交换机和集线器的区别是什么?
  15. 如何用python爬取股票数据选股_用python爬取股票数据
  16. unity3D原生声音系统
  17. 2021-08-11好奇心
  18. copypng emitted errors
  19. 基于ASAM ODS标准的试验数字化平台-WDP
  20. [禅悟人生]疑问是成长的标志

热门文章

  1. 【codecademy笔记1】
  2. 20 行代码编写一个简单的端口扫描器
  3. html修改progress背景色,html5 progress标签如何更改进度条颜色?progress进度条详解...
  4. 详解区块链P2P网络
  5. 大一计算机专业选修课,大学计算机类开什么公选课好?
  6. Spring框架初学习
  7. 计算机接口接触不良,如何处理电脑耳机插口接触不良
  8. ilm 和dlm差异_价值观异质性对团队绩效的影响机制研究 ———团队互动的中介作用与DLMX的调节效应(上)...
  9. windows 7家庭版升级为旗舰版 序列
  10. P5144 蜈蚣 (线性DP)