??? 摘 要: 借助內容提供商SP的運行平臺構建基于短信的無線測控系統" title="測控系統">測控系統,拋棄了傳統的手機對手機的通信模式,而將前端改為SP接入,并且給鏈路上的短信封裝了靈活的通信協議" title="通信協議">通信協議,從而在一定程序上提高了系統的整體性能,具有良好的可擴展性和移植性。
??? 關鍵詞: 短信? SP? 通信協議? 無線測控
?
??? 目前,無線測控系統已經廣泛地運用在車輛監控、無線抄表、小區傳呼、工業數據采集系統等眾多領域之中。常用的無線數據傳輸方式主要有以下兩種:無線數傳電臺以及公用移動通信網。前者雖然實時性較高,傳輸速率也較快,但是由于其系統建設周期長,投資費用高以及需要一定高度的基礎設施與之配合等缺點,導致其使用不是非常普遍。近年來,隨著GSM、PHS等網絡的迅猛發展,手機短信網絡的覆蓋面越來越廣,系統的可靠性越來越高,重要的是該無線網絡不需要用戶進行自行維護。由于上述原因,在慢速測控系統中基于手機短信網絡的無線測控系統變得越來越普及。
??? 以往討論較多的基于短信的測控系統往往是手機對手機的模式[1],即監控中心與遠程終端都是通過手機模塊來進行短信數據的互傳。這種模式的主要缺點是很難實現一點對多點的數據傳輸。本文介紹一種借助內容提供商SP(Service Provider)的運行平臺來構建基于短信的無線測控系統。該系統在監控中心端通過網絡直接與移動運營商的短信網關相連,避免了在監控中心端使用手機模塊,因此可以較為容易地實現一點與多點之間的數據通信,大大提高了短信收發的頻率。
1 系統基本結構
??? 本系統在設計時所針對的短信網絡是中國電信的PHS網絡。系統采用一點對多點的雙向通信方式,一點即為數據監控" title="數據監控">數據監控中心,多點則為多個遠程終端。每個遠程終端連接一個受控設備,受控設備為支持Modbus協議的PLC。
??? 本系統的設計分成三個部分:數據監控中心、遠程終端以及短信鏈路上的通信協議。數據監控中心發送應用于遠程終端的控制命令,并且接收來自遠程終端的回復信息。其前端通過SP方式接入中國電信的PHS短信網關,所有短信的收發都需通過短信網關來與短信中心進行交互。遠程終端負責連接PLC,接收、解析并傳遞來自監控中心的控制命令;同時將PLC返回的信息以短信形式發送給數據監控中心。通信協議的作用則是為了改善短信鏈路上的固有缺陷,進一步提高系統的性能。
??? 系統的拓撲結構和分層模型分別如圖1、圖2所示。
?
2 數據監控中心設計
??? 數據監控中心采用SP方式接入短信網絡,設計分成SP接口軟件和人機交互軟件兩個部分。
2.1 SP接口軟件
??? 傳統監控中心的設計是通過一個或多個手機模塊以無線的方式接入短信網絡[1]。其缺點是增加了系統的硬件成本,更重要的是短信收發的頻率受到短信模塊自身能力的限制(較好的工業模塊每秒僅能處理1~2條短信),從而使監控中心無法對多個終端同時進行訪問,降低了發送端的實時性。在接入方式改為SP以后,監控中心就可以以短信網關作為橋梁,以有線網絡的方式直接與短信中心進行短消息" title="短消息">短消息的交互,因而大幅度提高了數據監控中心的短信收發頻率。
??? SP和模塊的發送性能對比如表1所示,在進行大話務測試時,SP每秒5條的發送成功率亦為100%。與原系統相比,SP還具有以下優點:(1)減少了短信在空中駐留所帶來的延時。(2)增加了監控中心發送的數據的實時性。(3)增強了系統的可靠性(SP與短信網關底層通過TCP/IP協議傳遞數據)。(4)可以同時收發短信(收發依賴于多個不同的線程);而模塊在一個時刻只能處理一個請求。(5)SP接入為軟件接入,便于前期開發、后期維護和系統升級。
???
??? SP接口軟件負責整個數據監控中心與短信網關之間的短消息交互,它與短信網關之間采用SMGP協議進行通信。SMGP協議是一個基于數據包的交互式協議,底層通過TCP/IP協議傳遞數據包,每個數據包都包含請求標識,代表數據包的用途。SP與短信網關之間的通信為長連接[2],并采用Client/Server方式交互信息,SP作為Client端,網關作為Server端。
??? SP接口軟件在通過SMGP協議與短信網關進行數據交互時需采用特定的API函數,該類函數由短信網關設備供應商提供。最主要的API函數有以下幾種[2]:
??? InitSMGPAPI(Parameter):初始化短信網關的API函數,應用程序只需調用一次此函數。
??? SMGPSendSingle(Parameters):向短消息網關發送1條短消息到一個終端用戶。
??? SMGPSendBatch(Parameters):向短消息網關發送1條短消息到多個終端用戶。
??? GetSendBatchResp(Parameters):讀取群發的某一條短消息的標識及其發送結果。
??? SMGPDeliver(Parameters):連接短消息網關,等待接收屬于本SP的短消息。
??? 因此,SP接口軟件的核心就是利用以上函數處理好兩個線程(發送線程和接收線程)及其分別對應的兩個緩沖區(發送緩沖區和接收緩沖區)之間的關系。為了保障SP的發送性能,發送線程還配有重發機制。SP接口軟件工作流程圖如圖3所示。
?
2.2 人機交互軟件
??? 人機交互軟件負責與用戶進行溝通。其設計可分成監控軟件、數據庫管理軟件和協議處理軟件三個部分。
??? 監控軟件采用GE Fanuc 的iFIX 軟件。它具有易于擴展和集成、易于與數據庫相結合、易于采用分布式網絡結構等優點。本系統中,iFIX用于生成控制遠程PLC的Modbus監控命令。
??? 數據庫管理軟件采用SQL Server 2000,它可以方便地與iFIX 進行接口。iFIX全面支持ODBC API接口[3],可直接把實時數據寫入一個或多個關系數據庫中,并可將數據從關系數據庫寫回到iFIX 實時數據庫中。
??? 協議處理軟件主要進行通信協議的處理接收iFIX軟件的Modbus監控命令,并將其進行協議封裝后提交給SP接口軟件;同時將接收緩沖區內的短信進行協議解析,并返回給iFIX。
3 遠程終端設計
3.1硬件設計
??? 與傳統的遠程終端相似,硬件由典型的MCU、存儲器擴展、復位電路、電平轉換以及相應的短信模塊所組成。另外,由于MCU是通過串口" title="串口">串口上的AT命令與短信模塊進行通信的,且MCU與受控的PLC之間的通信也是通過串口上的Modbus命令進行的,因此,本系統還需加上串口擴展電路,即將原MCU上的串口由一個轉為多個。硬件核心框圖如圖4所示。
?
3.2 固件設計
??? 遠程終端固件采用C語言設計,使用μVision3作為開發環境。固件結構可以分為三層:UART層、AT命令層以及協議層。這樣處理的優點是結構清晰,便于移植[4]。
??? UART層:該層面向串口數據流,它將串口讀寫的函數進行了封裝,并采用中斷驅動模式對串口數據進行處理。在中斷服務程序中,僅對由固件實現的兩個緩沖區(UART發送和接收緩沖區)進行操作。
??? AT命令層:該層面向手機模塊,主要完成發送短信、接收短信和刪除短信這三個功能。它從UART接收緩沖區中提取出AT命令,或者生成AT命令并填入UART發送緩沖區。
??? 協議層:該層與人機交互軟件的協議處理軟件相對等,主要進行通信協議的處理,將來自AT命令層的短信內容進行解析,恢復出原始Modbus控制命令,然后將其發送給PLC;并將來自PLC的回復信息按照協議要求進行打包,提交給下一層的AT命令層處理。
4 通信協議
4.1協議的特性
??? 短信本身雖然具有一些無法比擬的優點(如通信鏈路不需自行維護),但是它也隱含著一些特殊的缺陷,比如短信到來的無序性(后發先到)、延時的不確定性(易產生過期短信)、抗攻擊性弱(無法自行判斷短信是否合法)以及短信內容有長度限制(每條短信116個字節)。這一系列的缺陷都將給系統的可靠性和實時性造成影響,如果不加以適當的處理將會導致系統崩潰。因此,本系統在短信鏈路上引入了自定義的通信協議,即監控中心與遠程終端之間交互的短信均需經過該通信協議進行封裝。該協議提供的主要特性包括:
??? (1)數據完整性:配有數據校驗機制,確保短信在傳輸過程中沒有傳輸錯誤。
??? (2)安全性:自動剔除非法短信(包括號碼非法、內容非法以及時間非法)。
??? (3)可靠性:命令與回復通過序列號一一對應。
??? (4)認證:配有認證機制,確保短信來自正確的信息源。
??? (5)加密:對原始數據進行加密,防止其被未經授權的讀取。
??? (6)分片:對內容過長的短信進行自動分割,分別封裝在序列號相同而分片號不同的短信中予以發送;接收端將分片短信予以組裝。
??? 通信協議的幀結構如表2所示。
?
4.2 協議的處理過程
??? 接收時協議處理的實際上就是對多消息緩沖區的維護:程序在內存單元中開辟N個緩沖區(稱為多消息緩沖區),用于緩沖接收到的合法短信。每一個緩沖區可以容納最多5條分片短信,且該緩沖區內所有短信的序列號必須相等或者相差N的倍數(N即為開辟緩沖區的個數)。接收方的協議處理流程圖如圖5所示。
?
??? 表3反映了在網絡狀況不好時協議所帶來的良好性能。從表中數據含義可以看出:剔除一條延時過長的短信可降低網絡阻塞的程度,保證其后續短信能夠按時到達。因此,加了協議的系統比不加協議的系統其平均延時從57.6秒降低至15.8秒,大幅度提高了系統的實時性能。
?
5 系統運行情況
??? 本系統進行了測試以驗證系統的可行性。測試系統采用兩個遠程終端及相應模擬PLC,PLC站號定為21和44。數據監控中心分別以10秒和15秒為間隔同時向兩臺PLC發送Modbus控制命令,且等待回復時間均設為命令的發送間隔,超時的回復短信均作為命令失敗處理。系統測試結果如表4所示。
?
??? 從表中可以看出,由于短信固有延時的存在,只要給回環系統加了時延限制,其成功率就無法達到100%。但是適當調整時延后,成功率仍可達到95%左右。因此,本系統適合于數據量較小的、突發性以及對延時要求不太高的無線測控系統。
本文構建了一個基于SP接入的無線測控系統。該系統較為容易地實現了一點與多點之間的數據通信,提高了監控中心端短信的收發頻率,且靈活的通信協議進一步保障了系統的性能。因此,它可以較為容易地移植到類似的控制領域中去。
參考文獻
[1] 高鋒,季瑞松.基于GSM的短信模塊TC35在遠程抄表上的應用[J].電工技術,2004,9:32-35.
[2]?基于固定電話網的信息終端及綜合信息系統技術規范:第七分冊短消息網關(SMGP)協議V2.0.[S].CT/T6.2004.
[3]?汪曉平. PLC可編程控制器系統開發實例導航[M].北京:人民郵電出版社,2004:334-365.
[4]?LABROSSE J J.嵌入式系統構件[M].北京: 機械工業出版社,2002:49-82.