索尼PS手柄原理分析与制作.docx

上传人:b****6 文档编号:7312295 上传时间:2023-01-22 格式:DOCX 页数:11 大小:76.24KB
下载 相关 举报
索尼PS手柄原理分析与制作.docx_第1页
第1页 / 共11页
索尼PS手柄原理分析与制作.docx_第2页
第2页 / 共11页
索尼PS手柄原理分析与制作.docx_第3页
第3页 / 共11页
索尼PS手柄原理分析与制作.docx_第4页
第4页 / 共11页
索尼PS手柄原理分析与制作.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

索尼PS手柄原理分析与制作.docx

《索尼PS手柄原理分析与制作.docx》由会员分享,可在线阅读,更多相关《索尼PS手柄原理分析与制作.docx(11页珍藏版)》请在冰豆网上搜索。

索尼PS手柄原理分析与制作.docx

索尼PS手柄原理分析与制作

索尼PS手柄原理分析与制作

作者:

未知来源:

游戏机信息网加入时间:

2005-2-14

目录

∙Playstation手柄针脚输出

∙PS手柄信号

∙PS手柄数据

∙用74XX逻辑电路仿真PS手柄

∙用微处理器仿真PS手柄

PS手柄针脚输出

面对插头

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

PIN1->|ooo|ooo|ooo|

\_____________________________/

针脚#作用

1DATA

2COMMAND

3N/C(9Voltsunused)

4GND

5VCC

6ATT

7CLOCK

8N/C

9ACK

DATA

信号流向从手柄到主机。

此信号是一个8bit的串行数据,同步传送于时钟下降沿(输入输出信号在时钟信号由高到低时变化,所有信号的读取在时钟前沿到电平变化之前完成。

COMMAND

信号流向从主机到手柄。

此信号和DATA相对,同样是一个8bit的串行数据,同步传送于时钟下降沿。

VCC

电源电压从5V到3V原装的索尼手柄都可以工作。

主机主板上装有表面安装的750mA保险丝,用于防止外设过载(750mA是包括左右手柄和记忆卡)。

ATT

ATT用于提供手柄触发信号。

信号在通信期间处于低电平。

又有人将此针脚叫做Select,DTR和Command。

CLOCK

信号流向从主机到手柄。

用于保持数据同步。

ACK

从手柄到主机的应答信号。

此信号在每个8bits数据发送之后的最后一个时钟周期变低,并且ATT一直保低电平。

如果ACK信号不变低约60微秒PS主机会试另一个外设。

PS手柄信号

所有通讯都是8bit串行数据最低有效位先行。

在PS手柄总线的所有时码在时钟下降沿都是同步的。

传送一个字节的情况如下所示。

|BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6|BIT7|

CLOCK-----___---___---___---___---___---___---___---___-----------

DATA-----000000111111222222333333444444555555666666777777--------

********

CMND-----000000111111222222333333444444555555666666777777--------

ACK----------------------------------------------------------__-

数据线的逻辑电平在时钟下降沿驱动下触发改变。

数据的接收读取在时钟的前沿(在记号*处)到电平变化之前完成。

在被选手柄接收每个COMMAND信号之后,手柄需拉低ACK电平在最后一个时钟。

如果被选手柄没ACK应答主机将假定没手柄接入。

当PS主机想读一个手柄的数据时,将会拉低ATT线电平并发出一个开始命令(0x01)。

手柄将会回复它的ID(0x41=数字,0x23=NegCon,0x73=模拟红灯,0x53=模拟绿灯).在手柄发送ID字节的同时主机将传送0x42请求数据。

随后命令线将空闲和手柄送出0x5A意思说:

“数据来了”。

下面是一个数字手柄的时钟信号

ATT-______________________________________________________________

|Byte1||Byte2||Byte3|

CLOCK---_-_-_-_-_-_-_-_-----_-_-_-_-_-_-_-_-----_-_-_-_-_-_-_-_-----

0xFF0x410x5A

DATA-------------------------__________--__----__--__----__--__----

0x010x42

CMND-----_____________-----__--________--__------------------------

ACK--------------------__-------------------__-----------------__-

在手柄执行初始化命令之后将发送它所有的数据字节(数字手柄只有两个字节)。

在最后字节发送之后使ATT高电平,手柄无需ACK应答。

数字手柄的数据传送如下所示(这里A0,A1,A2...B6,B7是两个字节的数据比特)。

ATT_______________________________________-------

|Byte4||Byte5|

CLOCK---_-_-_-_-_-_-_-_-----_-_-_-_-_-_-_-_--------

DATA---D0D1D2D3D4D5D6D7----E0E1E2E3E4E5E6E7-------

CMND----------------------------------------------

***

ACK--------------------__------------------------

注意:

没ACK.

PS手柄数据

下面五个表显示手柄的实际发送字节

标准数字手柄

BYTECMNDDATA

010x01idle

020x420x41

03idle0x5ABit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7

04idledataSLCTSTRTUPRGHTDOWNLEFT

05idledataL2R2L1R1/\OX|_|

所有按键按下有效。

NegCon

BYTECMNDDATA

010x01idle

020x420x23

03idle0x5ABit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7

04idledataSTRTUPRGHTDOWNLEFT

05idledataR1AB

06idledataSteering0x00=Right0xFF=Left

07idledataIButton0x00=Out0xFF=In

08idledataIIButton0x00=Out0xFF=In

09idledataL1Button0x00=Out0xFF=In

所有按键按下有效。

模拟手柄红灯模式

BYTECMNDDATA

010x01idle

020x420x73

03idle0x5ABit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7

04idledataSLCTJOYRJOYLSTRTUPRGHTDOWNLEFT

05idledataL2R2L1R1/\OX|_|

06idledataRightJoy0x00=Left0xFF=Right

07idledataRightJoy0x00=Up0xFF=Down

08idledataLeftJoy0x00=Left0xFF=Right

09idledataLeftJoy0x00=Up0xFF=Down

所有按键按下有效。

模拟手柄绿灯模式

BYTECMNDDATA

010x01idle

020x420x53

03idle0x5ABit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7

04idledataSTRTUPRGHTDOWNLEFT

05idledataL2L1|_|/\R1OXR2

06idledataRightJoy0x00=Left0xFF=Right

07idledataRightJoy0x00=Up0xFF=Down

08idledataLeftJoy0x00=Left0xFF=Right

09idledataLeftJoy0x00=Up0xFF=Down

所有按键按下有效。

PS鼠标

(credittoT.Fujita)

BYTECMNDDATA

010x01idle

020x420x12

03idle0x5ABit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7

04idle0xFF

05idledataLR

06idledataDeltaVertical

07idledataDeltaHorizontal

所有按键按下有效。

用74XX逻辑电路仿真PS手柄

这个电路能设置到仿真一个数字手柄,一个模拟手柄(两种模式)或一个NegCon。

本电路使用了六块74XXIC仿真一个数字手柄,如仿真一个模拟手柄要多四块74XXIC'和四块A/D转换器,同样仿真一个NegCon手柄一样要多四块74XXIC'和四块A/D转换器。

电路如何工作

当ATT电平被主机拉低,反相器4/4A拉高74HC165的SH/!

LD脚,串口输入脚读入数据(图中只画了五块IC中的二块)。

反相器1/4A为HC165提供时钟信号,因此在PS主机输出的CLK信号的每个下降沿HC165移出数据的下一比特。

数据经由ATT信号控制的反相器2/4B门电路输出,使到只有被选的设备才能接入总线。

读进HC165的数据的时码关系如以上图表所示。

看回图表所示第一字节是0xFF,意思是从A1到A8全是高位。

下一个字节是手柄ID。

数据手柄的ID是0x41即B1-8是HLLLLLLHL排列。

再下一个字节是数据准备命令0x5A即C1-8为HLHLLHLH。

最后两个字节是表示按键情况,当没按下为高电平,按下为低电平。

Ack信号由反相器1/4A,2/4A和1/4B产生。

二极管D1只允许当CLK低时反相器1/4A对C1充电。

当CLK高位时间比R1/C1设定的长,反相器2/4A将输出高电平。

高电平经过C2到反相器1/4B输出低脉冲,由ATT信号控制门电路输出(避免争夺总线)。

用微处理器仿真PS手柄

微处理器使用Motorola68HC11。

运行代码使用用汇编,可内置或使用任何52脚的EEPROM。

电路如何工作

本电路使用一片MotorolaMC68HC11完成所有工作。

状态的读入使用16路N/O(normalyopen)开关输入,在电路的左边。

四路模拟输入在右边。

数据发送使用了芯片两个串行口中的一个。

四个跳线控制电路的工作情况。

J1跳线在电路板顶部控制HC11工作在两种操作模式中的一种。

当J1打开时微处理器运行在单芯片模式,闭合时在特殊的bootstrap模式。

J2,3和4选择仿真何种PS手柄,如下表所示。

模式

J2

J3

J4

数字

O

O

O

模拟红灯

O

O

C

NegCon

O

C

O

模拟绿灯

O

C

C

保留

C

X

X

O=打开,C=关闭,X=不用

四个模拟输入在电路的右上角设计外接电位器。

电位器值并没规定一般用10K到50K较灵敏。

三条线分别接中点,电源和地如下所示。

____________________

|||

|\/

|/\/\/\/\

|/\/\/\/\

|||

|||

OOO

PIN3PIN2PIN1

电路板下面的九个插座连到PS主机给微处理器程序使用。

各脚作用如下。

Pin#

作用

1

SCIRXFORRS-232comms(notusedbypsx)

2

SCITX

3

DATA(pin1onPSX)

4

CLOCK(pin2onPSX)

5

COMMAND(pin7onPSX)

6

ATT(pin6onPSX)

7

VCC(pin5onPSX)

8

ACK(pin9onPSX)

9

GND(pin4onPSX)

最后在电路板下部的LVI(lowvoltageinhibitor)作用是保持HC11在复位状态当没足够电压安全运行时。

如果你找不到可以不用不影响电路工作但可能导至过流烧保险丝。

电路板

上面电路板所用元件的编号及型号如下。

元件表

U1

MC68HC11E2

U2

MC34064Lowvoltageinhibitor

XTAL

8Mhz晶振

C1,C2

18pF瓷片电容

C3,C4

1uFmonoorMKT电容

R1

10M电阻

R2-R5

4K7电阻

RP1

4K7x9电阻排

CON1

9脚插座

D1-D16

1N4148二极管

J1

引导模式跳线

J2-J4

手制模式跳线

POT1-4

模拟输入

Button1-16

16路跳线开关

软件

软件包包括电路板PCB图(auto/easytrax格式)这里下载

点击下载该文件

HC11的下载软件

程序包括在ZIP文件中,文件名EELOADER.EXE.这是一个IBM执行文件用作下载代码进HC11。

九针连接口的第一、二脚是一个5VRS232口,可以通过如下一个MAX232转换器连接到任何IBM兼容PC的串口上。

使用它连接到你的PC串口,打EELOADPSXCONT.S19/Cx,x是使用的串口,接着按屏幕上的指令做。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1