鍵盤介面ps2和usb介面的差別:1、USB鍵盤的一個封包只有8個位元組,其中2個位元組標記狀態,其餘6個位元組用來記錄目前按下或彈起的按鍵的掃描碼;2、PS2是按下什麼就報告什麼,彈起什麼也報告什麼,如果同時按下10個鍵,就依次報告10次。
鍵盤介面ps2和usb介面的差別:
簡單的說:USB鍵盤的一個封包只有8個位元組(為什麼只有8個,這是因為協定規定,為什麼協定這麼規定,是因為早期的時候USB速度慢,使用中斷傳輸一個包最大就8個位元組),其中2個位元組標記狀態,其餘6個位元組用來記錄目前按下或彈起的按鍵的掃描碼,所以,USB鍵盤最多同時描述6個按鍵的狀態。
USB鍵盤的這種坑爹的設計規範導致了它只能做到最多6個按鍵無衝。要解決這個問題,必須重新設計USB鍵盤的規範,但我估計沒人願意這麼做,因為這東西用的好好的,大多數人沒事也不會一起按6個鍵。
至於PS/2鍵盤,用的不是這種規範,PS/2是:按下什麼就報告什麼,彈起什麼也報告什麼,如果同時按下10個鍵,就依序報告10個按下事件,至於能同時記錄多少個按鍵的狀態,協定沒有限制,取決於作業系統本身,所以PS/2鍵盤理論上可以做到無限按鍵無衝。
當然,確實有人看過USB鍵盤突破了6個按鍵的限制,可能的原因之一是:這種鍵盤內建的USB裝置是多個鍵盤USB HUB的方式,因為USB允許多級設備連接,這樣就可以突破6個的限制了。
當然,USB鍵盤自己自帶驅動也是一個辦法,因為雖然中斷傳輸只有6個字節,但Bulk傳輸傳256個位元組都沒問題。 (註:我自己百度了一下,發現雖然很多廠商實現了USB全鍵無衝,但似乎bug也不少,看來技術還有待發展啊)總之,規範是規範,也總有不受規範限制的辦法。
相關免費推薦:#程式設計影片課程
以上是鍵盤介面ps2和usb介面的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!