趙忠彪
(許昌學院電氣信息工程學院,河南許昌461000)
GSM網絡的通信技術已經成熟,覆蓋面又廣,即可以實現數據的遠距離傳輸又免除了網絡的日常修改和維護工作,最大限度地節省了投資[1],實現了環保、節能、資源最大共享.短信息服務(SMS)作為GSM網絡的一種基本服務已得到越來越多的系統運營商與開發商的重視,基于這種業務的各種應用也蓬勃地發展起來.針對數據量不大、數據通信不頻繁、實時性要求不高、固定IP搭建困難,需要對設備進行遠程數據采集及遠程監控方面應用等領域的應用越來越引起人們的注意.然而,利用短信進行數據傳輸時需要面臨著如何合理設計通信協議,提高通信效率,避免垃圾短信的侵擾等問題[2].
本文分析了短信設備之間通信的特點,合理的設計了他們之間的通信協議,最大程度的提高了通信效率的同時,有效避免了垃圾短信的侵擾.
系統整體框圖如下圖1所示.
圖1 系統整體框架
上位機運行數據管理軟件,它負責對終端設備的數據采集和通信模塊的參數配置.當上位機需要對終端完成數據采集時,通過短信模塊將上位機命令通過GSM網絡送達終端設備,終端設備收到上位機命令后進行分析如果是數據采集命令則將相應的數據通過短信模塊送上位機,上位機將接收到的數據進行相應的處理.
短信模塊收到短信后提取目標手機號碼,并對其進行分析,如果是垃圾短信則自動丟棄,否則提取短信內容并將其打包發送給終端設備或者上位機[3].
為了防止垃圾短信侵擾,該短信模塊預留2個優先權號碼,系統收到短信后提取手機號碼同時和系統保存的優先權號碼進行比較如果不一致視為垃圾短信將其丟棄,否則提取短信內容并將其打包發送給終端設備或者上位機.此協議不需要工作人員親臨現場就可通過短信對短信模塊進行配置,提高了效率節省了系統維護成本.其短信配置協議如下:
設置特權號命令
sztqhmxyyyyyyyyyyy
x第幾個特權號(目前預留2個);
yyyyyyyyyyy特權號碼;
例如,sztqhm213137886957.
sztqhm設置特權號碼碼第一個字母;
2表示第二個特權號碼;
13137886957特權號;
短信模塊收到此命令后將此手機號碼存于EEPROM中.
2.1.1 垃圾短信過濾流程圖
垃圾短信的過濾實現如下圖2所示.
圖2 垃圾短信過濾流程圖
短信模塊收到短信后,提取手機號碼,并和EEPROM中預存的特權號碼比較,如果不是特權號則直接丟棄整條短信,否則提取短信數據,并將此數據打包發送給終端設備[4,5].
當終端設備有數據需要發送給上位機時,終端設備按照表1協議發送給短信模塊.
表1 終端設備和短信模塊通信協議(上行)
包頭:0x80,長度1個字節;
數據長度:0XNN,長度1個字節,包括目標號碼長度和數據內容長度之和;
目標手機號碼:長度11個字節,高位在前低位在后,短信模塊1的號碼;
數據內容:長度N個字節,低位在前高位在后;
校驗和:長度2個字節,低位在前,高位在后.
為保證終端設備和短信模塊之間通信數據的可靠性,他們之間采用16bit的無符號校驗和,需要校驗的數據包括11位目標手機號碼和N位數據,如果校驗正確,通信模塊向終端設備回應OK,否則回應ERROR同時將數據發送到指定的目標手機號碼.
上行數據含有11為目標手機號碼,終端設備可以根據通信需要隨意更改目標手機號碼,發送目的地配置靈活方便[6].
當短信模塊有數據需要向終端設備發送時,短信模塊按照表2協議發送給終端設備.
表2 終端設備和短信模塊通信協議(下行)
包頭:0x80,長度1個字節;
數據長度:0XNN,長度1個字節,包括目標號碼長度和數據內容長度之和;
源手機號碼:長度11個字節,高位在前低位在后,短信模塊1的號碼;
數據內容:長度N個字節,低位在前高位在后;
校驗和:長度2個字節,低位在前,高位在后.
短信模塊收到短信后提取目標手機號碼,判斷是否是發送到終端設備的數據,如果是則發送到終端設備,否則視為垃圾短信直接丟棄.
上行數據通信協議和下行數據通信協議采用對稱結構,這種結構方便組成閉環系統進行測試[7,8].
為確保終端設備和短信模塊通信的可靠性,終端設備在發送數據前可以先和短信模塊進行握手,以確保短信模塊工作正常,握手協議具體如下表3.
表3 終端設備和短信模塊握手協
包頭:0x90,區別于數據包,長度1個字節;
數據長度:0x07,長度1個字節;
數據內容:connect;
校驗和:長度2個字節,低位在前,高位在后.
短信模塊收到終端設備的握手命令后,如果數據長度、數據內容和校驗和都正確則向終端設備發送OK,否則發送ERROR.
2.4.1 終端設備和短信模塊握手實現框圖
短信模塊具體實現如下圖3所示.
圖3 短信模塊實現框圖
通信模塊可以為TC35I,SIM900A,M35等主流通信模塊,MCU收到終端設備的數據后進行判斷,如果是需要發送的數據包,則將需要發送的數據直接通過通信模塊發送到目標手機號碼,如果是握手信息,MCU將向通信模塊發送AT指令,若通信模塊回應錯誤或者沒有回應,表明模塊死機,則MCU重啟通信模塊,如果回應正確則表明通信模塊工作正常.
為防止垃圾短信侵擾系統預留了兩個特權號碼,并設計優先權號碼配置協議;為保證通信的可靠性,模塊和設備終端設計了握手協議.
上位機和通信模塊之間的通信協議與設備終端與通信模塊之間的通信協議完全相同,這種兩端設備通信協議對稱,上行數據和下行數據通信協議對稱的設計,既方便了系統測試又便于短信模塊的批量生產.
運行該協議的短信模塊在西繼迅達電梯控制器上進行了長時間運行測試,測試結果表明該通信協議運行穩定、簡單明了、通信效率高、配置靈活、方便測試、運行該協議的短信模塊便于批量生產,達到了設計目的.
[1] 何 為,蔡梅園,劉細亮.基于GSM通信的配電變壓器遠程監控系統設計[J]電力系統保護與控制,2009,37(1):83-86.
[2] 李 斌,郭鳳儀,王智勇,等.雙穩態永磁機構優化設計及智能控制器[J].電工技術學報,2013,28(10):83-88.
[3] 王 鵬,蘇華衍.基于地理空間信息多視圖的電力故障全景搶修應用[J].電力系統保護與控制,2014,42(4):128-132.
[4] 殷志鋒,周 雅,張元敏.基于EPON的電力自動化信息傳送平臺[J].電力系統保護與控制,2014,42(2):111-115.
[5] 張海東,陳愛林,倪益民,等.智能變電站智能電子設備在線評估及動態重構[J].電力系統保護與控制,2014,42(2):111-115.
[6] 馮 暖.基于GSM通信模塊的遠程機械設備控制系統[J].控制工程 ,2013,20(5):1138-1141.
[7] 羅希昌,周 杰,杜景林.基于無線傳感器網絡的應急氣象觀測系統設計[J].傳感器與微系統,2013,20(5):108-111.
[8] 樊 龍,張文愛.基于Modbus協議的智能電表數據采集傳輸系統的實現[J].制造業自動化,2014,36(2):120-124.