姚杰森 彭來湖 史偉民
摘? 要:根據國內高速公路不停車收費系統ETC(Electronic Toll Collection)建設要求,本文以嵌入式ARM(Advanced RISC Machine)系統STM32作為開發(fā)平臺,采用C語言開發(fā)一種用于高速公路ETC門架的基于HTTP協議的現場數據采集服務終端,提出總體設計概論,介紹終端系統各模塊功能、相關技術及相關工作流程,進行終端系統設計與實現。與常見的數采系統相比,本系統通過HTTP嵌入式移植,利用多Socket連接技術進行以太網傳輸,以滿足ETC系統建設的邊緣處理要求,使高速公路ETC門架現場數采更加方便高效。
關鍵詞:HTTP協議;數據采集;Socket連接
中圖分類號:TP311.1? ? ?文獻標識碼:A
Abstract: This paper proposes to develop a data acquisition terminal based on HTTP (Hyper Text Transfer Protocol) on expressway ETC (Electronic Toll Collection) gantry site according to construction requirements of domestic expressway toll collection system ETC. The proposed terminal uses embedded ARM (Advanced RISC Machine) system STM32 (SGS-THOMSON Microelectronics 32) as development platform and C programming language. This paper puts forward an overview of overall design, introduces module functions of the terminal system, related technologies and work flow, and carries out design and implementation of the terminal system. Compared with other data acquisition systems, this system uses HTTP embedded transplantation and multiple Socket connection technology for Ethernet transmission, so to meet edge processing requirements of ETC system construction and improve convenience and efficiency of data acquisition on expressway ETC gantry site.
Keywords: HTTP protocol; data acquisition; Socket connection
1? ?引言(Introduction)
近年來,國內高速公路逐漸取消省界收費站,逐步全面實現電子不停車收費系統。為更好地滿足基于高速公路ETC門架供電智能監(jiān)測系統的戶外一體化機柜日常維護要求,各省級高速公路監(jiān)控中心均先后提出針對高速公路ETC門架現場數據采集的要求[1]?,F場數據采集終端作用對象分為現場動力與環(huán)境,高速公路ETC門架數據采集終端實時將戶外一體化機柜工作運行狀況上傳到收費站監(jiān)控中心,便于維護管理。
目前高速公路ETC門架數據采集終端上傳數據方式調試工作量大,不便于后續(xù)的系統更新維護,局限性大[2]。本文針對此問題提出了一個設計方案,以嵌入式ARM系統為基礎,通過嵌入式移植HTTP協議,設計適用于高速公路ETC門架系統的數據采集服務終端,減少調試工作量并加快終端系統的開發(fā)速度。該數據采集服務終端能夠同時作為客戶端與服務端,將現場數據提供到不同管理層面,便于高速公路ETC建設總監(jiān)控系統進行邊緣管理。
2? 終端系統總體方案設計(Overall design of terminal system)
ETC門架供電智能監(jiān)測系統涉及多種設備,包括交換機、防火墻、安全網關、天線接收設備、車道控制器、機柜專用空調、充電模塊、不間斷電源、智能管理模塊等[3,4]。為保證ETC門架供電智能監(jiān)測系統內設備處于正常工作環(huán)境,對系統工作現場動力環(huán)境進行監(jiān)控就顯得至關重要。
ETC門架供電智能監(jiān)測系統總體結構如圖1所示。
基于HTTP協議的ETC門架數據采集服務終端可分為三層結構,具體為:數據收發(fā)層、解析處理層、網絡應用層。數據采集服務終端整體框架如圖2所示。
數據收發(fā)層包含對各動力與環(huán)境設備工作狀態(tài)及工作參數的采集與控制,并與解析處理層通過系統寄存器進行數據交互;解析處理層對整個系統的數據進行解析處理,接收數據收發(fā)層上發(fā)的原始數據并進行數據的轉碼處理,提供統一的數據格式到網絡應用層以實現不同的顯示需求;網絡應用層開啟雙Socket通道,通過以TCP/IP協議為基礎的HTTP協議傳輸數據包[5]。對于來自本地監(jiān)控室瀏覽器的請求,網絡應用層將終端系統切換到HTTP-WEB服務端模式,將對應的數據包反饋到瀏覽器。當與總監(jiān)控系統通訊時,現場數采終端優(yōu)先處理現場數據后,將終端系統切換到HTTP客戶端模式,與遠程總監(jiān)控系統后臺服務器建立連接后,通過HTTP協議主動上傳現場實時數據json包,便于總監(jiān)控系統后臺服務器進行匯總管理,滿足邊緣處理要求。
3? ?硬件系統設計(Hardware system design)
基于HTTP協議的數據采集服務終端以嵌入式ARM系列的STM32F103VET6芯片為核心,結合高速公路ETC門架供電智能監(jiān)測系統現場要求對各硬件電路模塊協調工作。系統總體硬件結構框圖如圖3所示。
進行現場數據采集的主要設備以數據參數方式劃分,主要分為兩類:包括精密空調、不間斷電源UPS、蓄電池、溫濕度傳感器、配電單元等在內的以RS485總線通信的設備,通過終端系統硬件RS485電路傳輸設備工作與運行傳輸;包括煙霧傳感器、漏水感應器、門鎖行程開關等在內的以干接點作為開關量狀態(tài)指示的設備,通過終端系統硬件開關量輸入電路將設備狀態(tài)信息反饋到終端系統。繼電器電路、開關量輸出電路用于終端系統對現場聲光報警器、照明燈等設備進行智能控制。
數據采集服務終端采用W5500以太網通訊芯片,使網絡功能靈活,可操作性大。W5500以太網通訊芯片內部安裝相對簡單的TCP/IP協議,實現了軟件硬化[6],利用內置的多Socket通道功能,支持基于HTTP協議的數據采集服務終端進行不同場合的網絡應用。
4? ?軟件系統設計(Software system design)
4.1? ?數據收發(fā)與處理設計
為保證數據采集服務終端對設備數據采集的實時性,將現場數據準確地通過以太網傳輸到本地監(jiān)控室與總監(jiān)控中心,終端系統數據收發(fā)模塊程序需做到實時響應。對于干接點設備,僅需讀取終端系統開關量輸入口電平的高低變化情況,即可判斷設備是否產生異常報警信號;基于RS485總線通訊的設備則需根據對應設備協議(如MODBUS協議、機械指令協議等)讀取設備數據后將正常格式的數據保存。數據收發(fā)層以輪詢模式發(fā)送請求指令讀取設備數據,以接收中斷模式存儲并解析數據。
數據采集服務終端從各設備處采集到的原始數據經過解析處理后,才能封裝成相應的網絡傳輸格式。對于干接點設備,直接將對應設備的狀態(tài)字寫入對應寄存器;對于基于總線協議通訊的設備,終端系統根據對應設備通訊協議判斷原始數據是否正確后,根據對應設備通訊協議對原始數據進行大端小端調換、ASCII碼轉換、數學運算等,最后將處理完成的數據存儲到對應的系統寄存器,交由網絡傳輸調用。
4.2? ?HTTP協議嵌入式移植
HTTP協議是一個基于TCP/IP通訊協議來傳遞數據(HTML文件、圖片文件、查詢信息等)的協議。對HTTP協議的嵌入式移植即在對TCP/IP通訊協議移植的基礎上,以HTTP/1.1協議規(guī)定的json格式將數據封裝后進行網絡傳輸。
HTTP協議嵌入式移植包括硬件移植與軟件移植,本設計的終端系統通過W5500以太網通訊芯片擴展以太網功能,即HTTP協議硬件嵌入式移植本質上是對W5500芯片驅動移植,包括對應GPIO寄存器配置、SPI總線寄存器配置、W5500芯片初始化、打開網絡通信Socket通道等[7]。HTTP協議軟件嵌入式移植是對網絡傳輸信息的解析與封裝,對于接收到的外界數據信息,通過數據分割將數據信息劃分成不同數據組,并進行對比判斷以確定有效信息;對于將要傳輸到外界的數據信息,按照HTTP/1.1協議json格式將報文頭與報文體打包封裝成即將進行傳輸的json數據包。HTTP協議嵌入式移植與配置流程如圖4所示。
4.3? ?數據采集服務終端作為WEB服務端
當數據采集服務終端作為HTTP-WEB服務端時,即本地監(jiān)控室瀏覽器作為HTTP客戶端通過URL向WEB服務端發(fā)送GET請求,WEB服務端根據收到的請求向客戶端發(fā)送響應信息,將參數顯示和監(jiān)控功能通過統一網頁界面呈現給客戶,只需通過運行瀏覽器來調用分散在各個ETC門架的數據采集服務終端中的WEB服務端信息,即能達到監(jiān)控現場數據的目的。
嵌入式WEB服務器工作任務如圖5所示。
嵌入式WEB服務端以應答方式進行數據傳輸,主要包含兩大模塊:WEB服務端接收處理瀏覽器命令模塊和WEB服務端向瀏覽器發(fā)送命令模塊。
嵌入式WEB服務端接收處理瀏覽器命令模塊將接收到的請求命令保存到臨時存儲器中,解析HTTP協議數據包,從中劃分出不同數據組以確定此命令類型。嵌入式WEB服務端向瀏覽器發(fā)送命令模塊根據不同的命令將對應的數據包反饋到瀏覽器中[8,9]。命令類型分為三類:靜態(tài)網頁、設備參數、控制操作。若請求命令為靜態(tài)網頁HTML請求命令,響應瀏覽器請求將已保存在FLASH存儲器中的靜態(tài)網頁HTML以HTTP協議格式封裝并反饋回瀏覽器;若請求命令為設備參數命令,讀取系統寄存器中保存的設備參數,并以json格式封裝后響應上傳到瀏覽器;若請求命令為遠程控制操作命令,即執(zhí)行CGI程序,根據解析HTTP協議數據包得到的CGI程序具體控制操作命令,將對應控制操作信息交付解析處理層處理以滿足遠程控制要求。
WEB服務端具體工作流程如圖6所示。
4.4? ?數據采集服務終端作為HTTP客戶端
當數據采集服務終端作為HTTP客戶端時,主要是將設備實時信息作為一種POST請求上傳到總監(jiān)控中心服務器[10]。完整的POST請求包括請求行、請求報文頭、空行和請求報文體,請求報文頭包含描述本次請求的URL值、時間戳、請求報文體長度、域名等信息;請求報文體為json數據格式,包含所有需要上傳的現場數據實時信息?,F場數采HTTP服務終端POST請求上傳現場數據實時信息后,若收到反饋接收成功信息,即表示本次發(fā)送成功,HTTP客戶端斷開連接并等待下一次發(fā)送,否則重新整合POST請求信息并重新發(fā)送。
HTTP客戶端具體工作流程如圖7所示。
4.5? ?MD5加密處理機制
為確保實時數據傳輸的安全性,對現場數據實時信息json包進行MD5加密。MD5實際上是一種不可逆加密散列算法(哈希算法),把任意數據轉換為定長(或限制長度)數據,再通過加密算法運算得到哈希值標識碼[11]。現場數采HTTP服務終端作為HTTP客戶端上傳現場數據實時信息時,通過哈希算法將請求報文體加密得到對應的哈希值,并置于請求報文頭中一并上傳到總監(jiān)控中心服務器??偙O(jiān)控中心服務器接收到POST請求的報文體后,進行MD5加密運算得到哈希值,通過兩組哈希值對比,一致則表明本次現場數據實時信息在傳輸過程中無誤[12]。
MD5加密運算首先對原文長度進行處理,使得長度為512×N+448,不足位補零,其后64位為記錄原文長度值,組成處理后的信息,長度M為512×(N+1)。初始化MD5哈希值后進行數據循環(huán)加工,每512位原文數據分為一組,即循環(huán)次數為處理后的信息長度M/512,每組循環(huán)內各有64次子循環(huán),F(B,C,D)為四種形式的非線性函數統稱,Mj為32位的處理后的數據片段,Ki值為232×abs(sin(i))的整數部分,其中i與j的取值范圍從1到16。F(B,C,D)、Mj、Ki三者在64次子循環(huán)里每16次循環(huán)采用一組。其中。循環(huán)加工完成后將四個新哈希值abcd拼接得到MD5哈希值[13]。數據包MD5處理流程圖如圖8所示。
5? ?系統實現(System implementation)
通過使用IE瀏覽器地址欄輸入數據采集服務終端IP地址,瀏覽器通過URL向WEB服務端發(fā)送GET請求指令請求網頁數據包,WEB服務端接收到相應命令后,向瀏覽器響應對應數據包。當瀏覽器對現場設備進行控制操作時,瀏覽器通過URL向WEB服務端發(fā)送POST請求指令,數據采集服務終端接收到請求指令后,對相應的現場設備發(fā)送控制指令并將成功與否信息反饋回瀏覽器。
當數據采集服務終端作為HTTP客戶端,現場數據實時信息在等待發(fā)送POST請求到總監(jiān)控中心管理系統時,HTTP客戶端與總監(jiān)控中心斷開連接;當需要傳輸現場數據實時信息時才開始建立連接,隨后發(fā)送POST請求提交json數據包,在接收到反饋信息后斷開連接,等待下一次發(fā)送。
瀏覽器中顯示WEB服務端響應網頁界面如圖9所示。
6? ?結論(Conclusion)
在物聯網時代,根據各地高速公路要求,實現電子不停車收費系統為高速公路建設的重心。本文設計的基于HTTP協議的數據采集服務終端利用多Socket通道,以嵌入式ARM系統為平臺的基礎,向本地監(jiān)控室提供監(jiān)控網頁的同時,提供便于匯總處理的實時數據到總監(jiān)控中心。本終端系統是高速公路ETC總系統邊緣處理的一部分。作為邊緣端,本終端系統有利于減輕高速公路ETC總系統的數據處理工作量,使高速公路ETC門架供電智能監(jiān)測系統現場數采與監(jiān)控更加方便、高效,為高速公路ETC建設提供一種可靠的解決方案。
參考文獻(References)
[1] 劉鯤.通信機房動力設備及環(huán)境集中監(jiān)控系統在高速公路行業(yè)的應用[J].中國交通信息產業(yè),2006(03):106-107.
[2] 曹辰,張國強,張翠文.電力信通站點動環(huán)監(jiān)控標準化建設的研究[J].通信電源技術,2019,36(04):27-28.
[3] 宋艷,陳少波,郝自飛,等.電力信通站點動環(huán)監(jiān)控標準化建設[J].電子技術與軟件工程,2017(20):42-43.
[4] 吳永峰.動力環(huán)境集中監(jiān)控系統在通信基站維護中的應用[J].電子技術與軟件工程,2014(15):65.
[5] 梁曦捷.嵌入式Web服務器的設計與實現[D].廣州:暨南大學,2006.
[6] 李慧靜,李東敬.基于嵌入式Web服務器的遠程監(jiān)控系統設計與實現[J].電腦知識與技術,2018,14(11):249-251.
[7] 何婧媛.基于嵌入式Web服務器的遠程控制系統研究[J].信息技術,2017(07):139-141.
[8] 楚卉佳.基于嵌入式web服務器的遠程監(jiān)控系統的研究與應用[D].大連:大連海事大學,2016.
[9] 王振華.HTTP協議(服務端)在嵌入式系統上的實現[D].北京:中國地質大學北京,2006.
[10] 江小平.基于ARM和TCP/IP協議的網絡測控系統的研究與設計[D].蘇州:蘇州大學,2007.
[11] 靳燕.基于MD5算法的文件完整性檢測系統分析及設計[J].網絡安全技術與應用,2019(11):36-38.
[12] Wang Xijin, Fan Linxiu. The Application Research of MD5 Encryption Algorithm in DCT Digital Watermarking[J]. Physics Procedia, 2012(25):1264-1269.
[13] Ekta Chauhan. AES Encryption and MD5 Hash Function along with Steganography to Make Secure Money Transaction[J]. Research Cell: An International Journal of Engineering Sciences, 2016, 18(1):87-99.
作者簡介:
姚杰森(1996-),男,碩士生.研究領域:機械電子工程.
彭來湖(1980-),男,博士,副教授.研究領域:智能裝備與嵌入式控制技術,工業(yè)互聯網通信.
史偉民(1965-),男,博士,教授.研究領域:紡織機械自動控制.