1. 程式人生 > >工業物聯網:2 裝置端(3)

工業物聯網:2 裝置端(3)

2.3    工業閘道器 2.3.1    基本功能 所謂閘道器,主要負責兩個異質網路的連線,這在工業物聯網場景中尤其常見,因為感測網路經常採用的是和通用的網路層(長輸網)完全不同的電氣訊號和協議。工業閘道器的基本功能組成如圖2-1。  

圖2-1 工業閘道器功能組成

2.3.1.1    感知層訊號介面 主要承擔對接感測網內各裝置的訊號的任務。該模組包括對接不同電氣訊號的硬體介面,也包括對應的資料採集和指令傳送的軟體。為了應對感知層的複雜性,工業閘道器的生產企業一般會根據其目標應用領域的不同,配備感知層訊號介面的一個硬體介面和協議組合。

2.3.1.2    網路層訊號介面  主要承擔對接網路層的訊號的任務。相對感知層訊號介面而言,網路層訊號介面一般相對簡單得多,因為通常整個系統中只需要一種標準的長輸網路及其協議,所以對應的硬體介面和資料收發軟體都相對單一。不過這並不是說只能支援一種,在實際應用中,工業閘道器的生產企業為了產品的通用性往往設計成可以支援多種長輸網路的形式。具體的形式,可以是多種介面同時配備的方式,也可以是將產品設計成插卡可配置的形式,讓使用者選擇不同的配置在出廠的時候配置好。

2.3.1.3    資料處理 裝置端的資料處理主要解決的是資料失配問題。也就是說,服務端需要的資料的範圍、頻率、完整性等方面的差異。資料處理的目的是整理輸入介面進入的資料,轉化成適合輸出的資料形式並推送到輸出介面。這裡的輸入方和輸出方即可以由裝置端扮演,也可以由服務端扮演,因此資料的流動是雙向的,而且因資料的型別不同也有所區別。

2.3.1.4    就地資料庫 處理後的資料在某些場景下還需要儲存在閘道器本地的資料庫內,以便複雜的資料處理流程或者其他的就地業務邏輯處理而使用。因為工業閘道器一般屬於嵌入式計算裝置,所以此類資料庫一般也採用嵌入式資料庫。嵌入式資料庫功能較為簡單,一般有記憶體緩衝以提高存取速度。

2.3.1.5    就地業務邏輯 主要是處理與閘道器所關聯的那部分感測網所連線的裝置、感測器和執行器有關的區域性系統的業務邏輯。不同閘道器的就地業務邏輯模組的豐富和複雜程度差異較大,如果一個工業閘道器中沒有這部分功能模組,則經常被稱為資料透傳式的閘道器,或者稱為協議轉換器、通訊管理機。對就地業務邏輯的詳細描述,可參見“邊緣計算”。

2.3.1.6    其他功能 除了以上主要模組,一個閘道器還往往配置其功能的使用者操作介面,可以採用按鍵、命令列(通過telnet或串列埠)或者圖形介面的模式(如內建有WEB Server甚至帶有面板)。如果閘道器具有就地業務邏輯,可能還需要向其載入本地業務邏輯所需要的指令碼檔案、配置檔案的工具。

另一類及其重要的模組就是安全模組。與一般的網路裝置一樣,安全是必不可少的設計考量。除了要抵禦來自外部的網路攻擊,還要考慮裝置接入服務端時的身份認證問題,也就是說,只有合法的裝置才能連線服務端。這就要求每個裝置端成員(工業閘道器或智慧裝置)必須有唯一的識別標誌和授權標誌才能進入工業物聯網,否則能有可能會被冒名的外部惡意裝置接入,從而干擾整個系統的正常執行。同樣地,裝置也只能接入合法的服務端,否則會被惡意冒用身份的服務端干擾裝置的正常工作。 工業閘道器作為遠端裝置,其自維護性也很重要。一般要求其應利用自身連線服務端的優勢,能夠從服務端自動下載自身的軟體更新包並完成更新,一些設定和配置工作也應該可以通過遠端登入來完成,從而降低派駐人員現場維護的成本,並提高對使用者需求的響應速度。

2.3.2    技術實現

圖2-2 閘道器基本架構

工業閘道器一般採取嵌入式架構來實現。系統根據設計所支援的電氣介面種類配置有需要的介面硬體。處理器可能採取專用的SoC,比如基於ARM、MIPS等架構的,也可能是通用的PC架構的低端Intel X86 CPU。同時還要配備必要數量的記憶體和儲存裝置,以便支援計算和儲存資料和配置引數。作業系統常見為各種嵌入式作業系統,其中Linux目前較為流行。作為通訊管理裝置,自然需要配備必要種類的通訊協議解析模組。通訊協議解析根據協議和作業系統的特點,可能是使用者態的程序,也可能是作業系統核心態的程序。然後是作為整個閘道器核心的資料處理模組。資料處理模組主要由軟體和主處理器實現,但是不排除在某些場景下為了加速而採用GPU等協處理器。業務邏輯和嵌入式資料庫屬於可選部分,另外配有必要的使用者介面和其他應用。安全機制在各個層面都應該有適當的體現。

在軟體部分的程式語言上,對於這種計算能力較低但有一定實時性要求的嵌入式裝置,C/C++通常是首選,但是這並沒有擋住開發者們在閘道器中使用shell、java、Python等高階語言的熱情。因為在使用者配置介面等低頻操作中,使用這些高階語言的開發效率較高,而這些低頻操作中即便效能較差也並不會造成日常執行的效能問題。在現場感測層因為使用者的業務流程的不穩定性而不得不跟著改變的場景中,閘道器也不得不隨之改變配置甚至需要一定的現場二次開發,這種高階語言提供的快速開發能力可能就更加必要了。