娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年02月04日(星期二)

2018年02月04日 | 基于HID協議的工控自定義鍵盤接口設計方案

發布者:boczsy2018 來源: eefocus關鍵字:HID協議  工控自定義鍵盤 手機看文章 掃描二維碼
隨時隨地手機看文章

內容摘要:設備智能化改造大趨勢下,嵌入式計算機大量的應用到工控系統中,自定義工控鍵盤的應用也變得越來越廣泛。本文提出一種基于USB HID協議的自定義鍵盤設計,設計簡單功能實用,免驅動自動識別。很好的解決了按需定制鍵盤設備的設計要求,方便了系統上位機軟件編程,貼近工程實踐,應用前景廣闊。

    隨著智能化工控設備的推廣,越來越多的工控設備采用嵌入式計算機作為其控制核心。以嵌入式計算機系統為平臺進行產品開發,需要進行控制單元硬件和用戶應用軟件設計。在應用軟件設計環節,不可避免的需要用到人機交互設備,以完成操作人員對計算機系統的控制,工控鍵盤作為最常用的一類輸入設備,進入了我們的視線。

    工控鍵盤區別與標準鍵盤,它所有按鍵是為滿足特定產品需求而設計,常用接口有PS/2和USB。USB設備具有支持熱插拔和楨采集速率高等優點,正逐步取代原來的PS/2設備,成為市場的主流。本文主要介紹一種USB接口的自定義工控鍵盤的設計,解決智能化數控設備中鍵盤定制的問題。

    1 USB BID簡介

    USB接口是一種即插即用型的串行總線通信端口,廣泛應用于各類計算機系統。HID類設備屬于人機交互操作的設備,是USB設備中比較大的一個類,用于控制計算機操作,如USB鼠標,USB鍵盤等設備。操作系統自帶了HID類的驅動程序,免去了驅動程序的編寫,因此一些簡單的USB設備,喜歡枚舉成HID設備,方便了設計也方便了使用。

    所有HID設備通過USB的控制管道(默認管道,即端點0)和中斷管道與主機通信。控制管道主要用于:接收USB主機的控制請示及相關的類數據;在USB主機查詢時傳輸數據;接收USB主機的數據。中斷管道主要用于:USB主機接收USB設備的異步傳輸數據;USB主機發送有實時性要求的數據給USB設備。

    要讓計算機將一個HID設備識別為鍵盤設備,要完成的主要工作是修改HID設備的描述符。HID設備的描述符主要包括5個USB的標準描述符(設備描述符、配置描述符、接口描述符、端點描述符、字符串描述符)和3個HID設備類特定描述符(HID描述符、報告描述符、實體描述符)。修改描述符可以將HID設備枚舉為鼠標、鍵盤及其他HID設備。

    2 系統方案設計

    USB自定義工控鍵盤從系統構成上看主要分為鍵盤部分設計和USB接口設計兩部分。系統組成框圖如圖1所示。

基于HID協議的工控自定義鍵盤接口設計

    其中鍵盤掃描部分軟硬件設計根據具體鍵盤定制要求,預留足夠的I/O,設計方案大致相同。USB接口部分,目前微處理器實現USB通信的方案比較多,主要有以下3種:1)單片機+PDIUSBD12芯片結構;2)采用Cypress公司的集成了USB2.0協議的微處理器CY7C68013A芯片;3)選用基于ARM Cortex-M3內核的STM32系列處理器。3種方案各有優勢,單片機+PDIUSBD12芯片結構,設計簡單,成本低廉;采用CY7C68013A芯片,集成度高,自帶協議開發方便;選用STM32系列處理器,電路簡單、性能優異、擴展性強、有豐富的固件資源,方便開發。

    作為新一代32位處理器STM32系列,性能提升是顯而易見的,價格也比較合理,性價比非常高,有很廣闊的應用前景。因此,這里構建USB工控鍵盤硬件平臺采用STM32F103C8T6處理芯片。

    3 硬件設計

    STM32F103C8T6是中等容量的STM32產品,它基于ARM的Cortex-M3內核,具有64K片上閃存,LOFP-48封裝,USB接口及豐富的其他外設接口。使用STM32F103C8T6設計USB通信接口,電路簡單,性能穩定,電路原理圖如圖2所示。

基于HID協議的工控自定義鍵盤接口設計

    圖中J1為USB接口直接與STM32處理器PA11、PA12相連,J3、J4為鍵盤掃描接口,共引出16個IO,最多可掃描8*8矩陣鍵盤即64個按鍵。其余電路為處理器最小系統電路。

    4 軟件設計

    ST公司給我們提供了詳盡的The USB—FS—DevICe library固件庫,固件庫程序結構清晰,主要分為底層和上層兩個部分。

    1)底層結構包括5個文件:usb_core.c(USB總線數據處理的核心文件),usb_init.c,usb_int.c(用于端點數據輸入輸入中斷處理),usb_mem.c(用于緩沖區操作),usb_regs.c(用于寄存器操作)。

    2)上層結構總共5個文件:hw_config.c(用于USB硬件配置)、usb_pwr.c(用于USB連接、斷開操作)、usb_istr.c(直接處理USB中斷)、usb_prop.c(用于上層協議處理,比如HID協議,大容量存儲設備協議)、usb_desc.c(具體設備的相關描述符定義和處理)。

    基于STM32 USB固件庫的主程序設計流程如圖3所示。

基于HID協議的工控自定義鍵盤接口設計

    設備初始化所做的工作主要有:初始化時鐘系統、GPIO及相關設備;配置USB所用到的中斷;配置和使能USB時鐘;初始化全局指針。

    進入主程序大循環后,掃描按鍵改動,按鍵有變動,通過SendReport()函數將按鍵狀態發送到USB主機。實際上這里只是將數據寫入IN端點緩沖區,主機的IN令牌包來的時候,SIE負責把它返回給主機。

    5 系統測試與應用

    軟件設計完成后,將程序下載到STM32處理器中,連接計算機USB給處理器上電,在完成設備初始化后,打開計算機設備管理器可以看到鍵盤設備中新增一項HID Keyboard Device(如圖4),這時鍵盤設備已經作為標準HID設備被計算機識別了。

基于HID協議的工控自定義鍵盤接口設計

    接下來要進行的工作要根據鍵盤定制要求,查閱HID用途表文檔,確定工控鍵盤上行列值對應的按鍵代碼,修改函數SendReport(),完成鍵盤定制程序設計。函數SendReport()返回8字節報告暫存在數組Buf[8]中。通過報告描述符的定義及HID用途表文檔,可知Buf[0]的D0是左CTRl鍵,D1是左Shift鍵,D2是左Alt鍵,D3是左GUI(即Window鍵),D4是右Ctrl,D5是右Shift,D6是右Alt,D7是右GUI鍵。Buf[1]保留,值為0。Buf[2]-Buf[7]為鍵值,最多可以有6個。


6 結論

    在工業控制應用領域,工控鍵盤定制屢見不鮮。本文通過對USB HID設備的研究,提出自定義USB工控鍵盤設計,電路簡單,成本低廉,無需驅動自動識別,具有很高的實用價值和廣闊的應用前景。


關鍵字:HID協議  工控自定義鍵盤 引用地址:基于HID協議的工控自定義鍵盤接口設計方案

上一篇:基于GPRS和嵌入式Linux的遠程圖像監控系統設計
下一篇:基于DeviceNet 的嵌入式I/O模塊設計方案

推薦閱讀

????常用變頻器在使用中,是否能滿足傳動系統的要求,變頻器的參數設置非常重要,如果參數設置不正確,會導致變頻器不能正常工作。  1、參數設置  常用變頻器,一般出廠時,廠家對每一個參數都有一個默認值,這些參數叫工廠值。在這些參數值的情況下,用戶能以面板操作方式正常運行的,但以面板操作并不滿足大多數傳動系統的要求。所以,用戶在正...
巡檢機器人、裝配機器人、打磨機器人……近年來,各種工業機器人“名字”逐漸出現在工業制造企業管理者口中,甚至也漸漸為普通消費者所熟知。記者走訪發現,在廣東制造巨頭格力電器、美的、格蘭仕等的生產線上,工業機器人已成為標配,而無人車間的和管理,也已是這些先進制造企業的日常。 作為制造業大省,隨著制造轉型升級的不斷推進,廣東已逐漸成...
經緯儀根據度盤刻度和讀數方式的不同,分為游標經緯儀,光學經緯儀和電子經緯儀。目前我國主要使用光學經緯儀和電子經緯儀,游標經緯儀早已淘汰。經緯儀是一種根據測角原理設計的測量水平角和豎直角的測量儀器,分為光學經緯儀和電子經緯儀兩種,目前最常用的是電子經緯儀。經緯儀是望遠鏡的機械部分,使望遠鏡能指向不同方向。經緯儀具有兩條互相垂直的轉...
歐洲又再次重燃在先進半導體制造領域的雄心。經過過去的幾次嘗試后,最近又有19個歐盟成員國簽署了一項聯合聲明,以“加強歐洲開發下一代處理器和半導體的能力”進行合作。 其中包括為各行各業的特定應用提供最佳性能的芯片和嵌入式系統,以及逐漸向處理器技術的2nm節點發展的領先制造技術。” 歐洲不是尋求加強其本地半導體生態系統的唯一國家。美國最近...

史海拾趣

問答坊 | AI 解惑

實用電源電路大全

給大家分享實用電源電路大全,呵呵 …

查看全部問答∨

BGA中焊盤和過孔重疊在一起?

在PADS Layout中BGA封裝的元器件的焊盤附近的過孔可以移動到跟焊盤重疊(重疊一部分),而在PADS Router中卻不能把過孔移動到跟焊盤重疊,改怎樣設置?希望前輩們幫幫忙!謝謝!…

查看全部問答∨

WinCE6.0似乎讀寫文件比較5.0的慢

200K的數據,每次16個字節去寫,5.0只要7秒左右,6.0要2分半鐘左右,同一段代碼產生的結果,非常疑惑。 另外,6.0似乎在寫文件的過程中,我拔掉SD卡,似乎非常容易造成SD卡亂碼(似乎是FAT亂了才導致文件全是亂碼),上述寫文件過程中會不斷改變文 ...…

查看全部問答∨

線程問題!!!!

我在對話框應用程序的初始化里建了個線程 hReadIcThread=CreateThread(0,0,ReadIcThread,this,0,&IDThread1); 當調試運行到這個對話框時調出個對話框 Unhandled exception at 0x03fb4f34 in APOLO.exe: Microsoft C++ exception: COleExceptio ...…

查看全部問答∨

Protel99se如何設置PCB層數啊

Protel99se如何設置PCB層數啊, 現在一只要一創建PCB文件就是N層的,我也不知道在那編輯層數. 但我現在想設計單層,雙層,4層板,因該怎么設置啊. 新手.謝謝.…

查看全部問答∨

arm的jtag小板上復位電路三極管作用?

現在調試arm都要用jtag,常用的是wigger jtag,我看上面就是一個244,然后就是一些上拉電阻。 我在網上看有的電路圖有2中情況: 情況1:PC并口的DB2經過一個三極管,然后連到jtag的rst信號, 情況2:PC并口的DB2先經過244,然后從244出來后再經 ...…

查看全部問答∨

C51單片機IO口電壓值降低

手上有塊液晶驅動板,由于液晶板的關系,使得驅動板的電壓為3.3V。現在我手上只有STC89C52單片機和一些電阻電容之類的元件,想要驅動液晶屏,就手上的這些東西能夠做嗎? 考慮:單片機IO口輸出電壓為5V,但是驅動板上液晶控制芯片的電源電壓為3.3V ...…

查看全部問答∨

為了項目需要開始學習WinCE嵌入式開發,都需要什么工具

為了項目需要開始學習WinCE嵌入式開發,在開發中會用到SQL數據庫,那么我都需要什么開發工具來展開項目呢?…

查看全部問答∨

求助 UART通訊的問題

大家好啊,我用的是6713的板子作為高速數據處理。DSP能夠處理的過來,但是在利用兩個UART進行數據通信,PC對兩個口進行發數據的時候,剛開始可能接受到幾幀數據,但是馬上DSP就不會響應中斷了! 各位大俠知道是怎么回事啊?…

查看全部問答∨

家用電話怎么通過51單片機和isd2560相連接啊?非常感謝啊

家用電話怎么通過51單片機和isd2560相連接啊?非常感謝啊…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 苗栗市| 华阴市| 娱乐| 南阳市| 灌阳县| 台山市| 临湘市| 即墨市| 铜川市| 玛多县| 大港区| 赤峰市| 丰原市| 乐至县| 西安市| 富阳市| 晋中市| 虹口区| 上思县| 砀山县| 五常市| 惠州市| 阿图什市| 庆云县| 甘德县| 开远市| 峨眉山市| 太和县| 秭归县| 米泉市| 万州区| 抚宁县| 平山县| 察隅县| 永州市| 临夏市| 富民县| 会东县| 屯门区| 麻栗坡县| 会理县|