電腦鍵盤工作原理
輔助設(shè)備(指 鍵盤) 檢查 時(shí)鐘線 ,如果時(shí)低電平,禁止發(fā)送數(shù)據(jù)
The auxiliary device checks the 'data' line. If the line is inactive, the controller receives data from the system.
設(shè)備檢查數(shù)據(jù)線,如果是 低電平,那么控制器從系統(tǒng)接收數(shù)據(jù)
The auxiliary device checks the 'clock' line during the transmission at intervals not exceeding 100 microseconds. If the device finds the system holding the 'clock' line inactive, the transmission is terminated. The system can terminate transmission anytime during the first 10 clock cycles.
設(shè)備在傳輸過程中 檢查 時(shí)鐘 線 間隔不超過100us。 如果設(shè)備發(fā)現(xiàn) 主機(jī)系統(tǒng) 將電平拉低,就終止傳輸。 在傳輸過程的前10個(gè)時(shí)鐘周期的任何時(shí)候,主機(jī)系統(tǒng)可以中止傳輸。
A final check for terminated transmission is performed at least 5 microseconds after the 10th clock.
終止傳輸?shù)淖詈笠粋€(gè)檢查 要持續(xù)至少5us
The system can hold the 'clock' signal inactive to inhibit the next transmission.
系統(tǒng)拉低時(shí)鐘線,將禁止下一次傳輸
The system can set the 'data' line inactive if it has a byte to transmit to the device. The 'data' line is set inactive when the start bit (always 0) is placed on the 'data' line.
系統(tǒng)如果有一個(gè)字節(jié)要傳輸給設(shè)備,可以拉低數(shù)據(jù)線。當(dāng)開始位(總是0)放置到數(shù)據(jù)線時(shí),數(shù)據(jù)線被拉低。
The system raises the 'clock' line to allow the next transmission.
系統(tǒng)拉高時(shí)鐘將允許下一次傳輸
Host-to-Device主機(jī)到設(shè)備的通信
First of all, the PS/2 device always generates the clock signal.
首先,PS/2設(shè)備總是產(chǎn)生時(shí)鐘信號(hào)
If the host wants to send data, it must first put the Clock and Data lines in a "Request-to-send" state as follows:
如果主機(jī)想發(fā)送數(shù)據(jù),它必須先將時(shí)鐘線和數(shù)據(jù)線設(shè)置成"Request-to-send"狀態(tài):
1) Inhibit communication by pulling Clock low for at least 100 microseconds.
拉低時(shí)鐘線至少100us來禁止通信
2) Apply "Request-to-send" by pulling Data low, then release Clock.
拉低數(shù)據(jù)線,請(qǐng)求 "Request-to-send", 然后釋放時(shí)鐘 .
The device should check for this state at intervals not to exceed 10 milliseconds.
設(shè)備應(yīng)該在不超過10ms(注意,是毫秒)的間隔內(nèi)就要檢查一次這個(gè)狀態(tài)。
When the device detects this state, it will begin generating Clock signals and clock in eight data bits and one stop bit.
當(dāng)設(shè)備檢測(cè)到這個(gè)狀態(tài),它將開始產(chǎn)生時(shí)鐘信號(hào),
The host changes the Data line only when the Clock line is low, and data is read by the device when Clock is high.
只有當(dāng)時(shí)鐘線 為低的時(shí)候,主機(jī)才可以改變數(shù)據(jù)線(也就是將數(shù)據(jù)寫入到數(shù)據(jù)線)。數(shù)據(jù)將在時(shí)鐘為高電平的時(shí)候 被 設(shè)備讀取。
After the stop bit is received, the device will acknowledge the received byte by bringing the Data line low and generating one last clock pulse.
在收到停止位之后,設(shè)備將通過拉低數(shù)據(jù)線,生成最后一個(gè)時(shí)鐘脈沖 來 應(yīng)答收到的字節(jié)
If the host does not release the Data line after the 11th clock pulse, the device will continue to generate clock pulses until the the Data line is released (the device will then generate an error.)
在第11個(gè)時(shí)鐘脈沖之后,如果主機(jī)并沒有釋放數(shù)據(jù)線,設(shè)備將繼續(xù)產(chǎn)生時(shí)鐘脈沖,直到數(shù)據(jù)線被釋放(然后 設(shè)備將產(chǎn)生一個(gè)錯(cuò)誤)
The host may abort transmission at time before the 11th clock pulse (acknowledge bit) by holding Clock low for at least 100 microseconds.
在第11個(gè)脈沖之前(回應(yīng)位),主機(jī)可以隨時(shí)中止傳輸,只要拉低時(shí)鐘持續(xù)100us即可
|
T9 == Time from inactive to active CLK transition, used to time when the auxiliary device samples DATA
FreeScale(Moto)提供的時(shí)序圖
主機(jī)到鍵盤的數(shù)據(jù)傳輸
1.主機(jī) 通過拉低 時(shí)鐘線 來 啟動(dòng)一個(gè)主機(jī)到鍵盤的數(shù)據(jù)傳輸。大約35us后,主機(jī)拉低數(shù)據(jù)線
。這個(gè)事件序列 就是 通知 鍵盤,主機(jī)要傳輸一個(gè)命令了。在數(shù)據(jù)信號(hào)的下降沿大約 125us 后 時(shí)鐘信號(hào)釋放,就被鍵盤內(nèi)部的上拉電阻拉為高電平 。
2. 在時(shí)鐘信號(hào)的上升沿 約 1ms ,數(shù)據(jù)傳輸開始。這個(gè)期間,數(shù)據(jù)線保持低電平。鍵盤拉低時(shí)鐘線,clocking in the low data line. 這個(gè)就做傳輸?shù)钠鹗嘉弧?BR>
3. 鍵盤用時(shí)鐘驅(qū)動(dòng) 8個(gè)數(shù)據(jù)位從主機(jī)傳輸?shù)阶约哼@邊。 這個(gè)時(shí)鐘有50%的占空比(duty cycle).高電平和低電平的時(shí)間都在30~50us之間。主機(jī)在每個(gè)周期的低電平的時(shí)候改變數(shù)據(jù)線上的數(shù)據(jù)。在每個(gè)時(shí)鐘的上升沿5~25us之后鍵盤 開始從數(shù)據(jù)線上取樣,取出主機(jī)發(fā)來的數(shù)據(jù)。
4.數(shù)據(jù)位之后是一個(gè)奇偶校驗(yàn)位(采用奇校驗(yàn))
5.最后是停止位
6.如果鍵盤讀到一個(gè)高電平的停止位,鍵盤就在 取樣停止位的那個(gè)時(shí)鐘的下降沿 之后的低電平期間 拉低數(shù)據(jù)線。這個(gè)行為叫做 鍵盤給主機(jī)的應(yīng)答信號(hào)。
鍵盤拉高時(shí)鐘之后,也拉高數(shù)據(jù)線。
7.在收到一個(gè)字節(jié)后,鍵盤對(duì)接收的數(shù)據(jù)執(zhí)行一個(gè)奇偶校驗(yàn)。如果奇偶校驗(yàn)錯(cuò)誤,或者接收的數(shù)據(jù)無法識(shí)別為有效的命令,那么鍵盤請(qǐng)求重新發(fā)送(發(fā)送0xFE給主機(jī))
1. 鍵盤發(fā)送數(shù)據(jù)前,首先必須讓時(shí)鐘 和數(shù)據(jù)線都在鍵盤內(nèi)部的上拉電阻作用下 拉成高電平。然后鍵盤拉低數(shù)據(jù)線,5-25us之后,鍵盤拉低時(shí)鐘線。在時(shí)鐘的下降沿,開始傳輸起始位The falling edge of the clock line clocks in the transfer’s start
bit.
2. 鍵盤用時(shí)鐘驅(qū)動(dòng) 8個(gè)數(shù)據(jù)位到主機(jī)。 這個(gè)時(shí)鐘有50%的占空比(duty cycle).高電平和低電平的時(shí)間都在30~50us之間。鍵盤在每個(gè)周期的高電平的時(shí)候改變數(shù)據(jù)線上的數(shù)據(jù)。這個(gè)改變出現(xiàn)在時(shí)鐘的上升沿的5us后 和 下降沿的5us前。鍵盤的數(shù)據(jù)在時(shí)鐘的下降沿被鎖存進(jìn)主機(jī)。
3.數(shù)據(jù)位之后是一個(gè)奇校驗(yàn)位
4.最后是停止位。在時(shí)鐘的下降沿 0~50us之間 主機(jī)拉低時(shí)鐘 來鎖存停止位。這就告訴鍵盤主機(jī)現(xiàn)在忙,不能在接收 其他的鍵盤傳輸數(shù)據(jù)。在處理完接收的數(shù)據(jù),準(zhǔn)備好接收下一個(gè)數(shù)據(jù)之前,主機(jī)釋放時(shí)鐘。
6.在鍵盤傳輸數(shù)據(jù)到主機(jī)的過程中,主機(jī)任何時(shí)候都可以中斷這個(gè)傳輸,發(fā)送一個(gè)命令到鍵盤。主機(jī)拉低時(shí)鐘和數(shù)據(jù)線 即可中止傳輸。所以,鍵盤在時(shí)鐘為 低電平的時(shí)候必須取樣數(shù)據(jù)線。(無論什么時(shí)候輸出高數(shù)據(jù)位的時(shí)候)。在產(chǎn)生時(shí)鐘的上升沿時(shí),必須讀取時(shí)鐘。
在任何時(shí)候發(fā)現(xiàn)這兩個(gè)條件不滿足,就拉高時(shí)鐘和數(shù)據(jù)線,放棄這次傳輸,并準(zhǔn)備從 主機(jī)接收命令。
Moto 香港公司的 Derek Lau
當(dāng)時(shí)鐘 高電平是,發(fā)送給主機(jī)的數(shù)據(jù)被主機(jī)讀取。在空閑狀態(tài),時(shí)鐘和數(shù)據(jù)線都被拉為高電平。主機(jī) 拉低 時(shí)鐘最少100ms(?還是us)開始發(fā)送數(shù)據(jù)給鍵盤:
1.主機(jī)等待,直到?jīng)]有外部設(shè)備傳輸被處理
2.主機(jī) 拉低時(shí)鐘
3.主機(jī)拉低數(shù)據(jù)作為開始位
4 .主機(jī)釋放時(shí)鐘
5.設(shè)備拉低時(shí)鐘
6.主機(jī)發(fā)送數(shù)據(jù)
7.設(shè)備釋放時(shí)鐘,讀取數(shù)據(jù)
8.設(shè)備檢查時(shí)鐘線,如果時(shí)鐘為低,中止傳輸
9.重復(fù) 5-7步,發(fā)送 數(shù)據(jù)1-到數(shù)據(jù)0,以及 奇校驗(yàn)位
10. 設(shè)備拉低時(shí)鐘
11. 主機(jī)釋放數(shù)據(jù)
12.設(shè)備時(shí)鐘時(shí)鐘
13.設(shè)備讀取數(shù)據(jù)線,想得到停止位,如果數(shù)據(jù)線為低(不是停止位),產(chǎn)生錯(cuò)誤
14.設(shè)備拉低 時(shí)鐘和數(shù)據(jù)線
15.設(shè)備釋放 時(shí)鐘和數(shù)據(jù)線
從設(shè)備發(fā)送到主機(jī)的數(shù)據(jù),在時(shí)鐘的下降沿被讀取。在發(fā)送數(shù)據(jù)前,設(shè)備檢查通過檢測(cè)時(shí)鐘信號(hào)為高來得知 主機(jī)是否貯備好:
1.鍵盤(設(shè)備)等待時(shí)鐘為高(約50ms?us)
2.如果數(shù)據(jù)為 低,終止
3.鍵盤 發(fā)送數(shù)據(jù)
4.鍵盤拉低時(shí)鐘為低
5.鍵盤釋放時(shí)鐘為高
6.鍵盤 讀取時(shí)鐘線,如果時(shí)鐘為低,中止傳輸
7.重復(fù) 4-6步,傳輸數(shù)據(jù)0-數(shù)據(jù)7,
DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY
評(píng)論