這篇文章主要介紹了SuperIO通訊機制與設備驅動對接是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇SuperIO通訊機制與設備驅動對接是什么文章都會有所收獲,下面我們一起來看看吧。
通訊的總體機制采用呼叫應答方式,就是上位機軟件主動發送請求數據命令,下位機終端接收到命令后,并校驗成功,返回相應的數據。
(1)串口通訊機制包括:輪詢模式。
串口總線涉及到一對一的通訊、一對多的通訊,為了避免總線上數據的沖突問題以及環境干擾的問題,在保障通訊穩定性的前提下,只采用輪詢通訊機制。一個設備發送、接收完成數據后,才進行下一個設備的通訊。但是這種通訊效率比較低,如果要提高通訊效率,可以增加串口服務器,在SuperIO平臺上實現一個串口對應多臺現場設備進行通訊,也就是把現場的所有設備平衡負載到不同的串口上。
(2)網絡通訊機制包括:輪詢模式、并發模式和自控模式。
輪詢模式與串口通訊機制中的輪詢模式相同,但是對于網絡通訊時,這個操作模式的效率是非常低,不能體現網絡通訊的優勢?;谶@樣的考慮,在輪詢模式的基礎上,增加了并發模式和自控模式。
并發模式,由SuperIO的內部來協調實現,通過調用IRunDevice設備接口的GetSendBytes函數獲得發送的命令包,集中發送所有設備的數據。接收數據部分采用異步監聽方式,接收相應設備的數據。并發模式的通訊周期由SuperIO平臺統一進行調度,不能自主控制請求數據的周期,在此基礎上增加了自控模式。
自控模式,二次開發者在開發設備驅動時,可以定時通過OnSendDataHandler發送請求數據命令,接收數據部分采用異步監聽方式,接收相應設備的數據,做到即時請求即時響應。
另外一種情況,現場硬件終端會主動發送狀態字數據給上位機軟件,這時候就需要能夠主動監聽接收數據事件,這是輪詢模式做不到的。遇到這類情況,建議使用自控模式進行通訊。
SuperIO包括兩大部分:通訊部分和設備驅動部分。
(1) 通訊部分如何與設備驅動協調工作?兩部分主要是通過IRunDevice接口實現兩部分之間的協調工作,線程、異步、同步等機制由SuperIO內部來完成。
(2) 通訊部分接收到數據后如何傳輸到相應的設備上?輪詢模式不存在這個問題,主要涉及到并發模式和自控模式,因為這兩部分采用的是異步監聽數據的方式。解決這個問題有兩種方式:第一種、通過接收協議驅動獲得設備ID來識別相應的設備。第二種、通過設備設置的IP地址來識別相應的設備?,F在的SuperIO平臺采用的是第二種方式。
(3) 并發模式和自控模式如何實現通訊中斷狀態?在鏈路不通的情況下,發送請求命令,沒有返回相應的數據,也不過觸發運行設備的接口,所以通訊狀態也不會改變,也不會做出任何反應。解決這個問題的方式是,發送請求數據命令超過3次,每次都沒有返回相應的數據,就會觸發運行設備接口,來完成運行設備的整個流程。
關于“SuperIO通訊機制與設備驅動對接是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“SuperIO通訊機制與設備驅動對接是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。