PC手柄与单片机之间的通讯.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PC手柄与单片机之间的通讯

PC手柄与单片机之间的通讯 2010-05-09 17:00:44| 分类: ps2|举报|字号 订阅 本科毕设参加了亚太大学生机器人比赛国内选拔赛,接触了机器人的机械和控制系统的设计。我主要负责手动机器人控制系统的设计。由于控制任务不是很复杂,对数据处理能力和控制实时性上要求不是很高,所以主控芯片选择了ATMEL的51系列,控制器选的是平时玩拳皇和实况时用的PS手柄。下面是单片机与手柄的通讯的设计过程: PC手柄的硬件剖析 输入设备在控制系统中是十分重要的,是人机交互的界面。手柄输入在一些特殊的场合比如机器人控制中十分方便,直观。比赛中采用的是PC接口(25针)的数字手柄(Psx Digital)。这种接口的手柄通讯协议简单,且与单片机通讯时不需要转换接口。在与单片机通讯时只需要四根信号线,手柄与单片机是通过串行方式通讯的市场上可以买到的普通PC手柄大都由PS手柄改装而成.图1是PS手柄到PC手柄的改装线路.由图可以看出,普通PS手柄插头中第3针和第8针没有用,剩余的7根针所接的线从左到右的颜色依次为:棕,桔,黑,红,黄,蓝,绿.每根线都有固定的作用.手柄与主机之间是通过串行方式通讯的.针脚具体含义如图2: 图1 PC手柄的改装接线图 针脚 定 义 用 途 1 DATA 信号流方向:从手柄到主机.此信号是一个8bit的串行数据.同步传送于时钟的下降沿(输入输出信号在时钟信号由高到低时变化,所有信号的读取在时钟前沿到电平变化之前完成) 2 COMMAND 信号流方向:从主机到手柄.此信号和DATA相对,是一个8bit的串行数据,同步传送于时钟下降沿 3 N/C 未用 4 GND 电源地和信号地 5 Vcc 电源电压,有效工作电压3V-5V 6 ATT ATT用于提供手柄触发信号.信号在通讯期间处于低电平 7 CLOCK 信号流方向:从主机到手柄.用于保持数据同步 8 N/C 未用 9 ACK 从手柄到主机的应答信号.此信号在每个8bit数据发送之后的最后一个时钟周期变低,并且ATT一直保持低电平.如果ACK信号保持60μs 不变低,PS主机会试另一个外设 图2 PC手柄针脚含义 PC手柄的信号通讯协议 手柄通信都是8 bit串行数据最低有效位先行。PC手柄总线的所有时码在时钟下降沿都是同步的。传送一个字节的情况如图3: 图 3 PC手柄传输数据时序图 数据线的逻辑电平在时钟下降沿驱动下触发改变。数据的接收读取在时钟的前沿(在记号*处)到电平变化之前完成。在被选手柄接收每个COMMAND信号之后,手柄需拉低ACK电平在最后一个时钟。如果被选手柄没有ACK应答,主机将假定没手柄接入。 当主机想读一个手柄的数据时,将会拉低ATT线电平并发出一个开始命令(0x01).手柄将会回复它的ID(0x41=数字,0x23=Negcon,0x73=模拟红灯,0x53=模拟绿灯)。在手柄发送ID字节的同时,主机将传送0x42 请求数据。随后命令线将空闲,手柄送出0x5A,表明数据准备好了。图4是一个数字手柄的时钟信号: 图 4 数字手柄时钟信号 在手柄执行初始化命令之后将发送它的所有的数据字节(数据手柄只有两个字节)。在最后字节发送之后使ATT高电平,手柄无需ACK应答。数字手柄的数据传送如图5: 图 5 数字手柄的数据传送 标准数字手柄的实际发送字节(所有按键按下均有效)如图6: 图 6 数字手柄按键码位数据图 手柄是以串行方式和主机进行通讯,通讯时钟由CLOCK提供,在实时性要求不高的场合握手信号可以省去。 PC手柄与单片机的通讯调试 根据通讯协议,我们设计了手柄与单片机的硬件通讯电路,编写了通讯程序。为了调试方便,我们通过LED的 亮灭来测试手柄与单片机的通讯。加电后发现发光二极管没有任何反应。测量单片机的输出信号发现信号比较稳定但太微弱,我们怀疑是单片机输出的驱动能力不 够,致使手柄接收不到单片机的控制信号。于是我们拆开手柄,分析了手柄的线路,查清各个信号线,把从单片机到手柄的信号线即COMMEND,ATT和CLOCK三根线断开,在中间增加一级驱动,重新试验,LED有了反应,说明我们的判断是正确的。 但是LED的 亮灭并不是象预想的那样随按键的变化而变

文档评论(0)

wuyuetian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档