搜索關(guān)鍵詞:熱電偶,熱電阻,雙金屬溫度計,壓力表,壓力變送器,磁翻板液位計
工業(yè)控制現(xiàn)場中的分散控制系統(tǒng)(DCS)需要特定 的DCS操作員鍵盤對其進行控制。本文研究基于 ARM微處理器的DCS工業(yè)鍵盤,設(shè)計了具有 USB2.0通信協(xié)議的標(biāo)準(zhǔn)HID類鍵盤接口程序以及具有標(biāo)準(zhǔn)PC鍵盤和DCS功能擴展鍵盤功能的鍵盤任 務(wù)處理程序,有效實現(xiàn)了該鍵盤。實驗結(jié)果表明, 設(shè)計合理、系統(tǒng)穩(wěn)定與可靠,能滿足工業(yè)現(xiàn)場環(huán)境的需要。
引言
隨著工業(yè)控制現(xiàn)場中分散控制系統(tǒng)(DCS)的發(fā) 展,需要特定的DCS操作員鍵盤對系統(tǒng)進行控制。該 鍵盤使操作員能對系統(tǒng)的操作更加直觀,操作方法更 加簡捷,以降低對操作員的操作技能要求,進一步減 少誤操作的可能,從而提高整個生產(chǎn)線的自動化能力。 DCS操作員鍵盤正是基于這個目的產(chǎn)生的。該鍵盤在 功能上除了兼容標(biāo)準(zhǔn)PC鍵盤的功能外,增加了 DCS 功能擴展區(qū)和用戶自定義擴展區(qū)。在該鍵盤按鍵殼體 上印刷按鍵功能,如邏輯開、邏輯關(guān)、手動、自動、報警、 輸出步長等等,一旦有按鍵動作,鍵盤立刻響應(yīng)并將按 鍵編碼發(fā)給主機,主機根據(jù)接收到的按鍵編碼調(diào)用相 應(yīng)的子函數(shù)來完成響應(yīng)功能。同時該鍵盤支持目前廣 泛流行的USB接口的標(biāo)準(zhǔn)PC鍵盤通訊協(xié)議。USB協(xié) 議專門為人機交互設(shè)備提供了接口描述,即HID設(shè)備 類。用戶可以按照HID設(shè)備類的協(xié)議設(shè)計通用鍵盤, 也可以根據(jù)自己的需要設(shè)計特殊的鍵盤,以滿足不同 的應(yīng)用場合。USB通信協(xié)議的設(shè)備一旦接入主機USB 接口 ,主機調(diào)用底層驅(qū)動自動完成USB設(shè)備的枚舉, 實現(xiàn)方便快捷的即插即用。另外該鍵盤可記掛標(biāo)準(zhǔn) PC鍵盤,即便在DCS操作員鍵盤故障或在工程 師操作管理模式下,可使用標(biāo)準(zhǔn)PC鍵盤做進一步的 操作。在基本功能上與標(biāo)準(zhǔn)PC鍵盤保持一致,可相互 控制Capslock狀態(tài)。本文描述的正是這樣一個基于 ARM的DCS工業(yè)鍵盤的研究與實現(xiàn)。
2.1USB任務(wù)處理設(shè)計
USB鍵盤是HID類設(shè)備的一種,遵循著USB設(shè) 備啟動過程。即每次設(shè)備接入總線,*入設(shè)備檢測 狀態(tài),總線對設(shè)備進行總線復(fù)位。其次是設(shè)備枚舉過 程,在這里USB設(shè)備將被枚舉為標(biāo)準(zhǔn)的HID類鍵 盤。主機通過默認端點0發(fā)送SETUP包,得到設(shè)備 描述符,然后給設(shè)備分配新的地址,分配成功后, 主機將通過新的設(shè)備地址向設(shè)備依次發(fā)送標(biāo)準(zhǔn)USB 請求來獲取設(shè)備的配置信息,即獲得設(shè)備描述符、配 置描述符、接口描述符、端點描述符、HID描述符 和報表描述符。通過設(shè)備的這些描述符,主機就知 道了設(shè)備的詳細信息,并根據(jù)設(shè)備的配置情況對設(shè)備 的端點進行操作。這些操作包括初始化端點數(shù)目,分 配各端點所需使用的Packet Buffer;初始化所使用的 端點,配置端點的傳輸類型、傳輸方向、Packet Buffer地址和初始狀態(tài)。在需要發(fā)送數(shù)據(jù)或接收數(shù)據(jù) 的時候,使能端點;并在該端點的中斷回調(diào)函數(shù)中, 處理數(shù)據(jù),如果需要則使能下一次傳輸。以上便是實 現(xiàn)USB鍵盤設(shè)備的步驟。
USB設(shè)備描述符如下:
在實際設(shè)計與開發(fā)中,由于STM32提供豐富的 USB標(biāo)準(zhǔn)函數(shù)庫,充分使用該函數(shù)庫會加快開發(fā)進 程。下面是一段對IN端點的初始化和使能,以及 IN傳輸?shù)年P(guān)鍵代碼:
2.2鍵盤任務(wù)處理設(shè)計
鍵盤任務(wù)處理函數(shù)keyboard ()流程圖如圖3所 示。先對按鍵進行掃描,若無按鍵按下,則每隔 10ms掃描一次。若有按鍵按下,記錄下按鍵所處鍵 盤的位置代碼,轉(zhuǎn)向消抖處理。所按下按鍵若通過 消抖處理,則確認其位置代碼,進入到按鍵處理階 段,將位置代碼轉(zhuǎn)換為按鍵HID碼并發(fā)送。否則釋 放其位置代碼,轉(zhuǎn)到按鍵掃描處重新掃描。發(fā)送完 其HID碼的按鍵再進行消抖處理看釋放否。若按鍵 未釋放則繼續(xù)等待,若已釋放則轉(zhuǎn)向按鍵掃描處重新掃描。
在具體設(shè)計中引入狀態(tài)轉(zhuǎn)移分析法和定時器中 斷。將按鍵的所有狀態(tài)分為4種。狀態(tài)0為按鍵掃 描,狀態(tài)1為按鍵消抖處理并確認,狀態(tài)2為按鍵鍵 碼轉(zhuǎn)換并發(fā)送,狀態(tài)3為等待按鍵釋放狀態(tài)。以上的 函數(shù)流程實際上是在這4個狀態(tài)中轉(zhuǎn)移, 如圖 4所 示。設(shè)置一個狀態(tài)標(biāo)志位key_state來表示按鍵所處 的不同狀態(tài),采用多分支結(jié)‘ swich-case,可以很方便的實現(xiàn)。
而定時器中斷是使MCU的TIM2定時器產(chǎn)生 10ms的定時中斷。主程序每隔10ms中斷調(diào)用key¬board ()函數(shù)一次。當(dāng)無按鍵按下時,key_state二0, 執(zhí)行case0,即實現(xiàn)了每10ms執(zhí)行一次鍵盤掃描。若 有按鍵按下,則定位其按下按鍵的位置代碼,并使 key_state二1。當(dāng) 10ms 后再次調(diào)用 keyboard ()函數(shù), 這時key_state二1而進入case1,在case1中對前面所 定位的按鍵位置再次進行確認,若還在,則再次確定 其位置代碼,并使key_state二2。如此時按鍵已經(jīng)釋 放,說明為假按鍵,則使key_state二0,返回按鍵掃 描。這里巧妙利用了兩次定時'斷的10ms間隔實現(xiàn) 按鍵的消抖處理。若key_state二2, 10ms后再次調(diào)用 keyboard (函數(shù)時則進入case2,這里將已確認的按 鍵位置代碼轉(zhuǎn)化為按鍵代碼以及zui終的HID碼,建 立鍵盤報表并發(fā)送給主機,然后使key_state二!。當(dāng)下 一個10ms, key_state二!則進入csae!,等待按鍵釋放 狀態(tài),此時再次掃描前面已確定按鍵的位置,若按鍵 已釋放,則key_state 二0,下一個10ms來臨則進入 case0重新按鍵掃描;否則仍然key_state 二!,繼續(xù)等 待釋放。這里也巧妙的利用這10ms進行按鍵釋放時 的去抖動處理。
另外在多鍵(含雙鍵)、特殊功能鍵和復(fù)合鍵的 實現(xiàn)中,該軟件也設(shè)計了比較好的實現(xiàn)方法。譬如多 鍵,設(shè)置內(nèi)部緩存器,在逐行掃描中將每個按下按鍵 在矩陣鍵盤中的位置代碼存入其中。之后的消抖處理 等操作的對象便是緩存器中的按鍵位置代碼值。系統(tǒng) zui多處理的普通鍵數(shù)為6個,超過則為溢出。對于特 殊功能鍵,其形式上是單鍵,實際實現(xiàn)的是多鍵的功 能。只要將單鍵在發(fā)送前轉(zhuǎn)換成需要的多鍵HID碼, 即可方便實現(xiàn)。對于復(fù)合鍵,理論上是兩個以上按鍵 同時按下所完成的功能,實際情況很難實現(xiàn)真正的 “同時按下”,它們的時間差別可能長達50ms。譬如 對引導(dǎo)鍵SHIFT鍵的設(shè)計,需設(shè)置專門標(biāo)志位 Shiftkeyjlag,有 SHIFT 按下則 Shiftkey_£lag二1,否則 為0。在*次檢測出SHIFT單按鍵時,改變狀態(tài) 標(biāo)志位為1。隨后的按鍵掃描中,若再無其他按鍵按 下,則key_state 二0,直到有其他按鍵按下,key_state 二1。這在軟件中實際上是對狀態(tài)0的細化。同理, 在各個狀態(tài)中,因為該鍵的特殊性,也有相應(yīng)的細化 過程。
從以上分析可見,這樣的軟件設(shè)計不僅結(jié)構(gòu)清 晰,代碼簡潔,實現(xiàn)便捷,而且使得當(dāng)無按鍵按下, 鍵盤每10ms掃描一次,當(dāng)有確定非復(fù)合按鍵按下 (即通過消抖處理",則鍵盤響應(yīng)速度在30ms以內(nèi), 如此的響應(yīng)速度大大提高了鍵盤的靈敏度。
3結(jié)束語
DCS系統(tǒng)是目前工業(yè)控制領(lǐng)域的核心系統(tǒng),其 鍵盤是提高整個生產(chǎn)線自動化能力的關(guān)鍵一環(huán)。 該鍵盤的設(shè)計避免了現(xiàn)有鍵盤電路特殊按鍵實現(xiàn) 復(fù)雜、軟硬件成本高的情況,而是研究開發(fā)了基于 ARM的DCS工業(yè)鍵盤,實現(xiàn)了對多達86個按 鍵的控制。采用STM32芯片及有效率的軟件開發(fā)大 大提高了產(chǎn)品開發(fā)的速度。經(jīng)過實驗結(jié)果與實際應(yīng)用 證明,該鍵盤易用性、可靠性達到了工業(yè)要求, 并產(chǎn)生很大的經(jīng)濟效益。
掃一掃 微信咨詢
©2024 上自儀表有限公司(m.bigmacyd.com)版權(quán)所有 備案號:滬ICP備15055501號-9 技術(shù)支持:化工儀器網(wǎng) sitemap.xml 總訪問量:281888 管理登陸