余俊杰
摘 要:PlayStation家用電視游戲娛樂平臺(tái),發(fā)展至今,已經(jīng)經(jīng)歷了幾代產(chǎn)品,不管是PS、PS one、PS2、PS3、還是PS4,它們標(biāo)配的游戲控制器(游戲手柄)功能基本上沒有太大的改變,形狀基本也大同小異。文章內(nèi)容介紹了PSX游戲控制器接口各引腳的功能、通信協(xié)議的格式及各種控制器與設(shè)備間的通信內(nèi)容。
關(guān)鍵詞:PSX;游戲控制器;手柄;接口;協(xié)議
中圖分類號(hào):TS952.83 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-8937(2015)12-0077-02
PlayStation家用電視游戲娛樂平臺(tái),發(fā)展至今,已經(jīng)經(jīng)歷了幾代產(chǎn)品,不管是PS、PS one、PS2、PS3、還是PS4,它們標(biāo)配的游戲控制器(游戲手柄)功能基本上沒有太大的改變,形狀基本也大同小異。模擬搖桿控制器除了14個(gè)功能鍵外,還有兩個(gè)的搖桿。
1 連接器的引腳排列及其功能
控制器無論是哪款,它們跟游戲機(jī)連接的接口都是一樣的。游戲控制器信號(hào)輸出的插口引腳排列如圖1所示。PSX游戲手柄控制器是一種使用同步串行總線和通信協(xié)議的智能設(shè)備。其引腳左邊起為{1}腳。
{1}為數(shù)據(jù)腳DATA,信號(hào)從控制器到設(shè)備(游戲主機(jī))。
是一個(gè)8 bit的串行數(shù)據(jù),在CLOCK下降沿同步傳送(輸入輸出信號(hào)在時(shí)鐘信號(hào)的由高到低時(shí)變化,所有信號(hào)的讀取在時(shí)鐘前沿到電平變化之前完成)。
②CMD指令腳,信號(hào)從設(shè)備到控制器。
和DATA相對(duì)應(yīng),同樣是一個(gè)8 bit的串行數(shù)據(jù),在CLOCK下降沿同步傳送。
③+7.6 V震動(dòng)電機(jī)驅(qū)動(dòng)電源,接9 V也可以工作。
④GND電源地,或稱公共極。
⑤VCC電源正極,電壓范圍可以從3~5 V,原裝游戲控制器是3.3 V供電,高仿控制器大多數(shù)是5 V供電工作,一般使用3.3 V電壓即可。另外設(shè)備主板上有一個(gè)貼片的750 mA自恢復(fù)熔斷器,用于防止過載(750 mA含兩只手柄和存儲(chǔ)卡)。
⑥ATT請(qǐng)求信號(hào),用于提供控制器觸發(fā)信號(hào)。在傳輸數(shù)據(jù)、命令期間處于低電平。
⑦CLOCK時(shí)鐘腳,信號(hào)從設(shè)備到控制器。用于保證數(shù)據(jù)同步傳輸。
⑧NC空腳,不連接。
ACK應(yīng)答腳,信號(hào)從控制器到設(shè)備,在每個(gè)8 bits數(shù)據(jù)發(fā)送后,至少保持一個(gè)時(shí)鐘周期的低電平,并且ATT一直保持低電平。假如ACK信號(hào)約有60 us不出低電平,主機(jī)就會(huì)查詢另一個(gè)外設(shè)。
2 PSX控制器信號(hào)
2.1 控制器的時(shí)序
PSX游戲控制器通信的時(shí)序圖如圖2所示,所有的信號(hào)傳輸都以8位串行低位先出的方式進(jìn)行。設(shè)備端在時(shí)鐘線CLK發(fā)出500 kHz的信號(hào)。數(shù)據(jù)線DATA的電平在時(shí)鐘線CLOCK的下降沿由發(fā)送端決定,數(shù)據(jù)的接收則在時(shí)鐘線CLOCK的上升沿由接收端接收讀取,以保證有足夠的時(shí)間讓DATA的信號(hào)穩(wěn)定。在被選中的控制器接收到每個(gè)CMD信號(hào)之后,控制器需要在最后一個(gè)時(shí)鐘周期拉低應(yīng)答線ACK的電平進(jìn)行應(yīng)答。如果沒有應(yīng)答,主機(jī)將認(rèn)為沒有手柄接入。
2.2 通信協(xié)議的格式
當(dāng)PSX主機(jī)想要讀取一個(gè)控制器的信息時(shí),首先會(huì)拉低請(qǐng)求線ATT的電平并在命令線CMD發(fā)出一個(gè)開始命令0x01。
控制器會(huì)通過數(shù)據(jù)線DATA回復(fù)它的ID,ID有幾種,分別代表不同的控制器:
0x41表示數(shù)字模式的控制器;
0x23表示NegCon控制器專用模式;
0x73表示模擬控制器紅燈模式;
0x53表示模擬控制器綠燈模式;
0x12表示PSX鼠標(biāo)。
在控制器發(fā)送ID字節(jié)的同時(shí)PSX主機(jī)通過命令線傳送命令0x42請(qǐng)求數(shù)據(jù)。隨后進(jìn)入空閑,控制器DATA線送出0x5A,表示開始傳送數(shù)據(jù)。
時(shí)序圖如圖3所示,前三個(gè)字節(jié)的初始化控制器命令之后,緊接著發(fā)送所有數(shù)據(jù)字節(jié)。在實(shí)際上,數(shù)字控制器的初始化,只有兩個(gè)字節(jié),并在最后一個(gè)數(shù)據(jù)字節(jié)之后的ATT線是高電平,控制器無需作ACK應(yīng)答。
2.3 協(xié)議的內(nèi)容
各種控制器對(duì)外發(fā)送的字節(jié)數(shù)據(jù)見表1,控制器的按鍵都是以低電平觸發(fā)的。
3 結(jié) 語
游戲控制器是一款普通的游戲機(jī)手柄,加以開發(fā)利用可以使它在其他方面得以發(fā)光發(fā)亮,它將不僅僅只是一款游戲手柄。
參考文獻(xiàn):
[1] 談笑天.變電站自動(dòng)化系統(tǒng)遠(yuǎn)動(dòng)通信模式探討[J].中小企業(yè)管理與科技,2009,(25).