零件:上周鍵盤

我們推出了一個新版本的總線海盜通用串行接口工具。最後一個固件更新包括兩個硬件版本的鍵盤解碼器庫。

在鍵盤上有一大噸舊的舊柵欄。我們將向您展示如何作為下一個項目的輸入設備回收一個。

聯繫

公共汽車海盜
鍵盤上的PC(PIN#)

SDA.
KBD數據(3)

SCL.
KBD時鐘(1)

+ 5Volts.
VDD(5)

GND.
GND(2)

在鍵盤上通過雙向雙線接口進行通信。公共汽車是開放的收集器,但鍵盤已經有內部上拉電阻。此處描述了鍵盤協議處的PC。我們使用我們的總線海盜工具來展示鍵盤協議,但相同的基本原理適用於任何微控制器。

如表中所述,我們將總線海盜連接到鍵盤。我們認為這是鍵盤插孔的通風女性,但我們還沒有評估它。你知道新插座的來源嗎?

協議

鍵盤為所有數據傳輸提供時鐘信號; PC側類似於從設備。沒有現有的總線海盜接口庫與外部時鐘一起使用,因此我們在鍵盤解碼器庫中寫了一款簡單。庫取決於鍵盤的時鐘信號,如果鍵盤故障或未連接,則會掛起。如果在自己的項目中使用我們的庫,請考慮在Readbit()和WriteBit()函數中添加超時延遲。

PC到鍵盤命令代碼

代碼
命令

0xed.
設置狀態LED.

0笑
echo 0xee.

0xF0.
設置scancode類型

0xF3.
設置重複率

0xF4.
鍵盤使能

0xF5.
鍵盤禁用

0xFE.
重新發送最後一個字節

0xFF.
重置鍵盤

PC使用這些命令來控制鍵盤上的各種功能。鍵盤響應具有確認字節(OXFA)的命令。在我們的經驗中,如果在命令發送後不久,不久會讀取反應字節,則將重置鍵盤。

鍵盤到PC反應代碼

代碼
回复

0xFA.
承認

0xAA.
自我測試通過了

0笑
迴聲響應

0xFE.
重新發送最後一個字節

0x00或0xff
錯誤或緩衝區溢出

鍵盤有許多單個字節反應代碼。許多PC命令用0xFA確認。 0xAA在鍵盤復位後發送。

設置總線海盜

Hiz> M.
1.艾特
……
9.鍵盤上的PC
模式> 9 <-set模式 900模式集 KB解碼器準備好X02 PC 鍵盤上的電腦>

首先,我們在鍵盤模式下設置總線海盜,選項9。

鍵盤上的電腦> P <-Power供應設置 w / w切換3.3 volt電源? 否 2.是的 模式> 1 <-NO 3.3VOLT供電 w / w切換5 volt電源? 否 2.是的 模式> 2 <-USE 5VOLT電源 9xx供電配置,使用w / w切換 9xx電壓監控:5V:0.0 | 3.3V:0.0 | vpullup:0.0 | 鍵盤上的電腦> W <-Capital'W',轉動供應 9xx 5Volt供應 鍵盤上的電腦>

接下來,我們配置總線海盜的電源,為鍵盤提供5Volts。

鍵盤上的PC>鍵盤中的R <-READ BYTE X30 PCATKB讀取:無<-no數據可用 鍵盤上的電腦>

鍵盤庫遵循標準總線海盜語法。數值被發送到鍵盤為字節,“R”從鍵盤讀取一個字節。協議由鍵盤時鐘計時,因此禁用按位操作。如果沒有數據可用,則讀取將返回“無”。

設置鍵盤

鍵盤上的PC> 0xee R <-SEND 0xee,讀取一個字節 x20 pcatkb寫:0xee get ack <-write Oxee,得到了一點 x30 pcatkb閱讀:0xee <-read 0xee,Echo成功 鍵盤上的電腦>

我們可以使用echo命令0xee測試與鍵盤的連接。如果我們的連接正確,則鍵盤將響應0xee。

鍵盤響應具有協議級別的ACK位的命令,然後使用Ack字節進行響應。我們發現,如果在發送命令後沒有立即讀取ACK字節,我們的測試鍵盤會自動復位。

鍵盤上的PC> 0xee <-Echo命令 x20 pcatkb寫:0xee get ack <-wrote echo,get ack 鍵盤上的PC> R <-READ一個字節 X30 PCATKB讀取:0xAA <-READ 0xAA,重置指示燈 鍵盤上的電腦>

在這裡,我們嘗試發送echo命令,然後稍後閱讀回复。鍵盤自動復位並回复0xAA,通過進行自檢。

鍵盤上的PC> 0xFF r r <-reset命令,讀取兩個字節 x20 pcatkb寫入:0xff get ack <-write reset命令,get ack X30 PCATKB讀取:0xFA <-Command Ack字節 x30 pcatkb讀取:無< - 再次才能重置 鍵盤上的電腦>

通過編寫命令0xFF並讀取兩個字節來重置鍵盤。鍵盤不會重置,直到讀取第二個字節。

鍵盤上的PC> R <-READ一個字節 X30 PCATKB閱讀:0xAA <-RESET成功 鍵盤上的電腦>

重置後的短時間我們可以讀取自檢的電源(POST)結果,0xAA表示發布成功。

鍵盤上的電腦> 0xF5 R <-Disable鍵盤 x20 pcatkb寫入:0xf5 get ack <-wrote命令 X30 PCATKB讀取:0xFA <-read ACK字節 鍵盤上的PC> 0xF4 R <-ENABLE鍵盤 x20 pcatkb寫入:0xf4 get ack <-wrote命令 X30 PCATKB讀取:0xFA <-read ACK字節 鍵盤上的電腦>

0xF5 DisaBLES鍵盤輸入。 0xF4啟用鍵盤並清除緩衝區。

鍵盤上的PC> 0xed R 0B111 R <-SET指示燈LED X20 PCATKB寫入:0xed GOT ACK <-SET LED命令 X30 PCATKB讀取:0xFA <-Command確認 x20 pcatkb寫入:0x07 get ack <-send LED值 X30 PCATKB閱讀:0xFA <-Value確認 鍵盤上的電腦>

NUM,CAP和滾動鎖定LED由0xED命令控制。第二個字節(OB111)的最後三位指示燈指示燈。執行鍵盤超時期間的所有四個字節操作,或者將重置鍵盤是至關重要的。

鍵盤上的PC> 0xee R <-Echo測試命令 x20 pcatkb寫:0xee得到了ack X30 PCATKB閱讀:0xee PC在鍵盤> 0xFE R <-Repeat最後一個字節命令 X20 PCATKB寫入:0xFE GOT <-WRITE REPEAT命令 x30 pcatkb讀取:0xee <-Previous字節重複 鍵盤上的電腦>

最後一個有趣的鍵盤命令是重複字節命令。 0xFE使鍵盤再次發送最後一個字節。如果先前傳輸中存在錯誤,這是一個有用的命令。

閱讀基本印刷機

鍵盤緩衝按鍵,直到我們讀取它們。

鍵盤上的PC> R <-READ BYTE X30 PCATKB讀取:0x29 <-space scancode 鍵盤上的PC> R <-READ BYTE X30 PCATKB讀取:0xF0 <-Key釋放scancode 鍵盤上的PC> R <-READ BYTE X30 PCATKB讀取:0x29 <-space scancode 鍵盤上的電腦>

一個基本新聞發出掃描,代表基本印刷機的多字節序列。在該示例中,我們按下了具有Scancode 0x29的空間。當一個必不可少的釋放時,鍵盤向Essent(0x29)發送0xF0和Scancode。每個基本新聞都會產生類似的三個部分序列。

鍵盤上的PC> R:4 <-read 4字節 X31 PCATKB批量讀取,0x04字節: 0x29 0xF0 0x29 none <-space scancode 鍵盤上的電腦>

這只是前一個示例的簡化版本。我們使用批量讀命令而不是單獨閱讀三個字節。再次,我們得到了空間掃描序列。我們嘗試讀取不存在的第四個字節失敗。

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

簡單的DEV板模塊插座簡單的DEV板模塊插座

當您建立快速原型或一次性項目時,能夠安全地安裝各種模塊和開發板很好。有時這些板有安裝孔,但往往不會。作為後者類別的示例,數字音樂儀器製造商和執行者[Diydsp]向我們展示瞭如何構建一個簡單的套接字來安裝STM32核OOM-32模塊。 插座內置在標準墊片的矢量板上切割到所需尺寸。焊接成對的母銷標頭條焊接到電路板上。內部標頭用於模塊,外部對為您的互連。標頭用短焊接橋連接,並且[Diydsp]建議您將外部對的幾個引腳擴展超過必要。這些額外可用於額外的電源或接地點,或者在某些板上,它們可以連接到調試頭引腳。他更喜歡使用雌插管,因為這減少了無意中彎曲的別針將縮短一些東西的可能性。 最後一步是在所需位置鑽出安裝孔,並且沒有更多的開發板自由浮動並僅按電線舉起。您是否有用於安裝這些模塊的任何提示,如這裡所示或在PCB上所示?讓我們在評論中知道。

READ MOREREAD MORE

阿姆斯特丹阿姆斯特丹

在2012年的“盒子安全與保障會議上的hack”中對POD2G進行了簡短的採訪,最近我很高興被送往阿姆斯特丹參加“盒子安全與保障會議中的黑客”。在那裡,我遇到了“慢性開發團隊”,並與他們基本上閒逛了幾天。 我立即發現了這些人釋放完全免費的公共越獄的巨大工作。他們對我非常熱情,整個HITB團隊也是如此。 實際上,我非常歡迎我接受了POD2G的採訪,這裡是: 克雷格·福克斯(Craig Fox):嗨,pod2g,所以我的第一個問題很容易:您的Twitter句柄背後的故事/Nick Pod2g是什麼? pod2g:嗨,克雷格,好的,我之所以選擇這個名字,是因為當ipod2g(第二代)發行時,我加入了Twitter,並認為這是我Twitter帳戶的理想名稱。我立即聯繫了“慢性開發團隊”,並開始幫助他們越獄。 (pod2g的真名是西里爾) 克雷格·福克斯(Craig Fox):您開始編程時幾歲? POD2G:我6歲。我從父親的計算機ZX Spectrum開始,他為我購買了一本帶有基本源代碼的書,我從書中復制了這些內容,然後我開始理解代碼,並在8歲時開始寫自己的代碼。 克雷格·福克斯(Craig Fox):您最喜歡的編程語言是什麼? POD2G:我最喜歡的語言是Java。這很奇怪,因為在那些日子裡,爪哇在安全和保障領域沒有良好的新聞界。這很好,因為您一次編寫一些代碼,並且可以在任何支持Java平台的系統上使用,並且該對象編程語言是那裡最高級的對象語言之一。 克雷格·福克斯(Craig Fox):如果您可以向Java添加一個功能,那會是什麼? POD2G:他們在JNA(Java本機訪問)方面做得很好,但是在最近的構建中,JNA不包括在標準Java運行時,因此您必須將其包含在庫中,以便您可以使用它。因此,我想說我希望Java將JNA作為標準API。 克雷格·福克斯(Craig Fox):迄今為止,您從事的最酷的項目是什麼? POD2G:毫無疑問,我處理的最酷的項目是最近的苦艾酒,我們與Corona + Rocky Racoon的所作所為非常好。 克雷格·福克斯(Craig Fox):在越獄時,您會發生什麼最糟糕的事情? (Nikias Bassen又名Pimskeks立即說Geohot發布了Limera1n) POD2G:是的,我想說的是Limera1n的發行最初對我們有很大傷害,但最終這是最好的舉動,我們感到Limera1n處理的設備比Shatter的設備要多得多。我可以說,幾個月過去了,這是他最好的搬遷。因此,這並不是最糟糕的事情,但這是當時的。 克雷格·福克斯(Craig

READ MOREREAD MORE

Adobe Flash Player的支持已經結束,這是如何從計算機中消除它的方法Adobe Flash Player的支持已經結束,這是如何從計算機中消除它的方法

已經過去了三年,但是我們最後可以向Adobe Flash告別。除了正式結束對Flash的支持外,Adobe同樣建議每個人都完全將其從機器中刪除。 Adobe在2020年1月1日在元旦結束了對Flash的支持,但是同樣,計劃在不到兩週的時間內阻止與Adobe Flash Player真正合作的所有Flash材料。根據Adobe的說法,卸載Flash播放器至關重要,因為不會應用額外的安全補丁: 卸載Flash Player將協助您的系統保護您的系統,因為Adobe並不意味著EOL日期之後的問題閃存播放器更新或安全補丁。 如果您需要一些支持以從Mac中消除Flash播放器,以下步驟將向您顯示如何刪除它,然後完全從計算機中消除它: 虛擬閃光燈 如果您已將Flash Player安裝到Mac上,則它將顯示在系統首選項應用程序下,並因此可以將其定義。 在Mac上啟動系統首選項應用程序。您可以通過 /應用程序或使用Spotlight這樣的瀏覽功能來執行此操作。 從系統首選項中選擇Flash Player,然後選擇“高級”。 您會看到一個名為“刪除這台計算機……”的選擇。選擇它來執行動作。 刪除Adobe Flash 打開您的 /應用程序文件夾,並選擇“實用程序”文件夾。 定位並打開Adobe Flash Player設置管理器條目,然後選擇“卸載”選項。 這是您需要做的一切。內置的嚮導將完全從設備中消除Adobe Flash播放器,並讓您了解完成後。 除了通知通知以通知Flash已被卸載外,Safari Web瀏覽器還將引入並顯示出虔誠的SAID,感謝您的消息,告知Adobe很高興在整個網絡上播放了不斷發展的材料。 您可能同樣喜歡檢查: 下載:iOS 14.3最終IPSW鏈接,OTA配置文件數據與iPados

READ MOREREAD MORE