零件:上周鍵盤

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

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

聯繫

公共汽車海盜
鍵盤上的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

2019年iPhone帶有三鏡相機,可以帶來3倍光學變焦,通過立體視覺2019年iPhone帶有三鏡相機,可以帶來3倍光學變焦,通過立體視覺

傳感3D感測,您比背面有兩個攝像機的iPhone更好嗎?一台有三台攝像機,或者至少這似乎是蘋果工程師認為,如果台灣網站的新報告經濟日常新聞是什麼,那麼要使用。 據The Outlet稱,2019年iPhone至少有一張發布的iPhone將根據Deutsche Securities分析師Jialin Lu的研究註釋,將配備三個後面的攝像頭鏡頭。 盧認為,由於立體視覺,三個相機的利用將使您可以進行高級3D傳感。這將意味著將使用兩個相機來捕獲完全相同的對象的圖片,但是,由於手機上的不同位置,從兩個不同的角度出發。 彭博(Bloomberg)此前曾建議,未來的iPhone將包括與後方3D感應能力有關的功能,以及最新的謠言將與如此良好的聯繫。 iPhone的6合1相機鏡頭配件 這樣的攝像機系統將進一步推動蘋果公司繼續推進增強真理的世界,而立體能力可能會幫助設計師利用Arkit,並為我們提供了一輪令人印象深刻的應用程序,符合符合iOS 11的初步湧入。 如果將三個鏡頭中的兩個用於從不同角度拍攝完全相同的鏡頭,那麼Lu認為第三個鏡頭可能會支持3X光學變焦,這是第一次將這種功能帶到iPhone上並改進iPhone X Plus目前提供的2倍光學變焦。如果所有這些都是正確的,那麼這種功能集可能會保留給蘋果2019年的旗艦產品,其中三台攝像頭可能會在未來幾年中滴落到其他手機。 (資料來源:經濟時報每天[Google翻譯]) 您可能同樣喜歡檢查: iOS 11.4最終下載預期發布日期 iOS 12 beta下載,謠言,功能,發布日期[到目前為止我們了解的一切] PUBG Mobile 0.7.1 Beta APK,iOS應用程序推出,補丁筆記。 越獄iOS 11.3.1:iOS 11.4最終以及iOS 12 beta發布,我們會看到新的公共越獄嗎?

READ MOREREAD MORE

去年晚些時候,OnePlus One去年晚些時候,OnePlus One

的前3個Lollipop Custom ROM,一家名為OnePlus的業務揭示了其第一張旗艦設備,即One。 OnePlus One被極度大肆宣傳,並且在發布後,完全值得等待。 OnePlus One以極為經濟的成本支架包裝野獸規格。它的一些亮點是它由Snapdragon 801芯片組提供動力,並帶有3GB RAM。玩家,這個小工具是適合您最需要的產品,因為OnePlus One將Adreno 330作為GPU。 我本人已經使用OnePlus One一個月了,而且我必須說,這確實是一種旗艦設備。 OnePlus One在Advand Android用戶中是如此突出,因為它帶有Cyanogenmod 11s,即開箱即用的自定義ROM。人們可以理解Cyanogen幾乎可以個性化您喜歡的任何東西的能力。 OnePlus的專長是它包含大量出色的氰基特徵,甚至不需要根。 但是,Cyanogen保證在初步釋放後的90天內釋放Android Lollipop(CM 12S)。 90天的時間段已經到期,以及許多人提供希望的人。如果您是這些人之一,並且想在OnePlus上體驗Android Lollipop,那麼本指南會特別為您提供!在本文中,我們將評估在最新的Android Lollipop上運行的OnePlus One的最佳自定義ROM。讓我們直接進入它! 要求: 一個帶有解鎖引導加載程序的OnePlus。 您的OnePlus必須植根。 安裝了自定義康復(我們建議TWRP)。 如果您尚未紮根,並且在OnePlus

READ MOREREAD MORE

3D打印:本週使用OpenSCAD3D打印:本週使用OpenSCAD

製作一件事,我們開始使用OpenSCAD,一個3D建模程序,比繪圖更像編程。大量有益的3D可打印物體 – 包括大量重新轉發的零件 – 是在OpenSCAD中創建的,因此在最終的位置,您將能夠符合自己的零件。 這並不表示為OpenSCAD的總教程;我只是在發作渣滓足以製定基本部分。下週我將很多可能使用AutoCAD創建零件,但是,如果您有什麼軟件應用程序工具的概念,我必須用作作文化以進行零件,請在評論中留下一個註釋。檢查3D打印指南,以便在下面的openscad中製作零件。 首先,一些基礎知識 OpenSCAD背後的基本概念是建設性的實心幾何形狀,這是一種建模方法,它利用球體,立方體或圓柱等基元與基本布爾操作一起產生物體。利用單詞解釋這種方法只是可怕,所以這是一個非常非常簡短的例子。為理想是在OpenSCAD中產生的兩個物體的照片,立方體以及下面的氣缸是代碼,您必須能夠輕鬆遵守: 前 1 2 3. 4. 5. 6. 7. 模塊示例(){ 球體(10); 翻譯([15,15,-10]){ 氣缸(H = 20,r = 5); } } 例子(); 大腦死亡簡單,對嗎?我們只是用半徑為10的球以及半徑為5的圓柱體和高度為20.我們在x以及y軸和y軸中,我們將面積15個單元等同於區域。以及z軸中的10個單位。這是建設性實體幾何中進入的地方。我們可以通過利用union()命令來集成這兩個3D基元: 1 2

READ MOREREAD MORE