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