賈書飛 商俊燕 宋潔
摘要:該文提出了一種基于USB HID協(xié)議的工控鍵盤,采用 PDIUSBD12芯片作為USB接口芯片,使用STC15F2K60S2芯片微處理器,其管腳多、性能好、制作成本低,可同時與標(biāo)準(zhǔn)大鍵盤使用或獨立使用。
關(guān)鍵詞:USB;HID;工控鍵盤;PDIUSBD12芯片
中圖分類號:TN-9 文獻標(biāo)識碼:A 文章編號:1009-3044(2018)29-0257-02
隨著用工荒出現(xiàn),越來越多企業(yè)需要智能化設(shè)備來替代部分人工,而在這些智能化設(shè)備中,核心控制設(shè)備就是嵌入式計算機,鍵盤是一種重要的人機交互設(shè)備,方便用戶操作工業(yè)設(shè)備。工控鍵盤與標(biāo)準(zhǔn)鍵盤的區(qū)別在于,工控鍵盤可以為滿足特定要求而設(shè)計,常用的接口有PS/2和USB兩種,目前隨著技術(shù)發(fā)展,USB接口以其熱拔插、采集速率高等特定,應(yīng)用越來越多。該文中采用USB接口來設(shè)計鍵盤。
1 HID協(xié)議簡介
USB HID類是一個比較大的類,其設(shè)備屬于人機交互操作的設(shè)備,用于控制計算機操作USB方面的操作:USB鍵盤、USB鼠標(biāo)、USB觸摸板、USB游戲操作桿、電話撥號設(shè)備、VCR遙控等設(shè)備。另外,一般操作系統(tǒng)會自帶HID類的驅(qū)動程序,用戶在開發(fā)是無須再開發(fā)驅(qū)動程序,只需要直接進行API調(diào)用完成通信即可,因此很多簡單的USB設(shè)備采用HID設(shè)備。
HID設(shè)備主要使用USB的中斷管道和控制管道和主機進行通信。其中必須使用端點為0的控制管道,它的主要用途是傳輸類請求代碼、USB描述符以及提供查詢消息數(shù)據(jù);中斷管道必需中斷輸入管道,它的作用是傳輸主機到設(shè)備的輸入數(shù)據(jù)。
在進行設(shè)計時,如需把設(shè)備識別為HID類必須遵守HID規(guī)范。HID設(shè)備的描述符有5個USB的標(biāo)準(zhǔn)描述符:設(shè)備描述符、接口描述符、配置描述符、字符串描述符、端點描述符;3個HID設(shè)備類特定描述符:HID描述符、物理描述符、報告描述符。
2 系統(tǒng)方案設(shè)計
自定義工控鍵盤主要分為兩部分進行設(shè)計:鍵盤和USB接口部分,其系統(tǒng)的組成圖如圖1所示。
該自定義工控鍵盤的設(shè)計主要包含兩部分:硬件設(shè)計和軟件設(shè)計。
2.1 硬件設(shè)計
USB接口部分,目前微處理器實現(xiàn)USB通信的方案比較多,我們采用的是:單片機加PDIUSBD12芯片結(jié)構(gòu)。
PDIUSBD12芯片,作為USB器件它的性能優(yōu)化,常用在微控制器的系統(tǒng)與微控制器通過高速通用并行接口進行通信的場合。PDIUSBD12芯片的USB接口實現(xiàn)通過模塊化方法來實現(xiàn)USB,并允許選擇最合適的作為系統(tǒng)微控制器,同時也能兼容現(xiàn)有的體系結(jié)構(gòu)還能是其他的固件減少到最小。通過這種方式可以降低開發(fā)時間、風(fēng)險和成本, 所以使用PDIUSBD12芯片來開發(fā)USB外圍設(shè)備的解決方案,是一種高效、低成本的方案,在很多外圍設(shè)備如數(shù)碼相機、掃描儀、打印機等都會使用這種方案。
單片機采用的是宏晶STC15F2K60S2,其LQFP44腳封裝,管腳多、體積小、成本低廉,在本應(yīng)用中用來進行矩陣鍵盤掃描,配合PDIUSBD12接口芯片,將掃描到的鍵值變化通過HID協(xié)議發(fā)送給USB主機。其電路原理圖如下圖2所示。
2.2 軟件設(shè)計
通過單片機給PDIUSBD12芯片發(fā)送命令和數(shù)據(jù)來實現(xiàn)PDIUSBD12和單片機之間的通信。PDIUSBD12芯片的命令字有三種:初始化命令字、通用命令字和數(shù)據(jù)流命令字。其工作流程為:1)單片機發(fā)地址命令給PDIUSBD12芯片;2)芯片根據(jù)命令要求來讀取或發(fā)送數(shù)據(jù)。
編寫固件程序主要作用是能是操作系統(tǒng)能檢測、識別設(shè)備。在設(shè)計工控鍵盤的USB固件程序分為三部分:首先進行單片機和外圍電路的初始化,接著設(shè)計主循環(huán)部分,注意其中的任務(wù)可以中斷,最后中斷服務(wù)程序。
在USB協(xié)議里,從主機開始進行傳輸,前臺工作設(shè)備為單片機需要等待中斷。工作流程為:首先發(fā)令牌包給PDIUSBD12芯片的USB設(shè)備,接著PDIUSBD12芯片接收到令牌包給單片機發(fā)中斷命令,然后單片機接受到命令后進入中斷服務(wù)程序,讀取PDIUSBD12芯片的中斷寄存器,并判斷令牌包的類型并執(zhí)行操作。
3 系統(tǒng)測試與應(yīng)用
自定義工控鍵盤測試,使用JAVA編寫一個提供鍵盤測試界面,可識別鍵盤接口電路發(fā)送上來的鍵值,并做反顯顯示,具體應(yīng)用時可對不同的按鍵值賦予不同的功能,從而實現(xiàn)工業(yè)控制要求。
首先將工控鍵盤通過USB接口接入嵌入式計算機后,當(dāng)我們按下工控鍵盤上的1鍵,則測試軟件界面上1黃色反顯,類似方法,測試出其他按鍵都正常運行。其運行效果如下圖3所示:
4 結(jié)束語
在工控領(lǐng)域,工控鍵盤設(shè)計方案很多,該文介紹了一種基于單片機和PDIUSBD12芯片結(jié)合的設(shè)計,其性能高、速度快、使用方便以及成本低廉,具有很高的實際應(yīng)用價值和廣闊的應(yīng)用前景。
參考文獻:
[1] 榮劍, 趙同林. 基于PS/2接口的工控特殊鍵盤設(shè)計[J]. 電腦知識與技術(shù), 2010(19).
[2] 戴捷, 胡曉吉. 基于光傳輸?shù)腢SB鍵盤鼠標(biāo)一體化設(shè)計[J]. 計算機工程與設(shè)計, 2012(7).
[3] 董鋼. 基于PDIUSBD12與單片機設(shè)計的智能USB軟件狗[J]. 電腦迷, 2017(1).
[4] 秦德樂, 謝文娣. 基于STC15F2K60S2的動態(tài)掃描LED多功能旋轉(zhuǎn)屏設(shè)計[J]. 計算機工程與設(shè)計, 2017(z1).
[5] 滕鵬, 姜昌華. 基于HID類的USB手勢輸入系統(tǒng)設(shè)計與實現(xiàn)[J]. 數(shù)字技術(shù)與應(yīng)用, 2017(2).
【通聯(lián)編輯:謝媛媛】