李加明 任小永
摘要:文章以SMS短信實(shí)現(xiàn)通用便利低成本的雙向超遠(yuǎn)程無(wú)線工業(yè)測(cè)控系統(tǒng)。用戶可用控制短信實(shí)現(xiàn)設(shè)備的遠(yuǎn)程控制,也可查詢并接收系統(tǒng)的檢測(cè)短信實(shí)現(xiàn)設(shè)備的遠(yuǎn)程檢測(cè)。系統(tǒng)以原型開(kāi)發(fā)方式實(shí)現(xiàn),具備優(yōu)良的性價(jià)比與工程實(shí)用價(jià)值。文章研究了克服常規(guī)缺陷、以32位ARM Cortex-M3核STM32單片機(jī)為主控研制的項(xiàng)目裝置在測(cè)控功能、短信容錯(cuò)、系統(tǒng)安全及可靠性、維護(hù)性等方面的創(chuàng)新優(yōu)化。
關(guān)鍵詞:移動(dòng)通信;SMS;遠(yuǎn)程測(cè)控;ARM Cortex-M3; STM32
工業(yè)應(yīng)用中有無(wú)線遠(yuǎn)程檢測(cè)與控制的技術(shù)需求。但目前基于公共頻段的藍(lán)牙、ZigBee等方式傳輸距離都很短[1];而申請(qǐng)頻率的用戶電臺(tái)方式限于功率,傳輸距離有限,且頻率申請(qǐng)困難、頻率費(fèi)用高昂,普通用戶很難使用。
移動(dòng)通信網(wǎng)地域廣大,用戶無(wú)需申請(qǐng)頻率,借其做遠(yuǎn)程測(cè)控,有最大的距離優(yōu)勢(shì)。SMS短信是移動(dòng)通信的基本業(yè)務(wù),資源消耗最少、資費(fèi)最低[2]。解決工業(yè)模擬數(shù)字測(cè)控?cái)?shù)據(jù)在報(bào)文的編碼可為實(shí)現(xiàn)遠(yuǎn)程測(cè)控創(chuàng)造前提。
項(xiàng)目將移動(dòng)通信用于工業(yè)測(cè)控,基于底層協(xié)議開(kāi)發(fā)??朔R?guī)案例的不足,創(chuàng)新功能,優(yōu)化實(shí)現(xiàn)通用的工業(yè)雙向超遠(yuǎn)程測(cè)控系統(tǒng)。
1 項(xiàng)目系統(tǒng)的功能構(gòu)成與硬軟件設(shè)計(jì)
1.1 項(xiàng)目系統(tǒng)的功能與構(gòu)成
如圖1所示,系統(tǒng)包括控制裝置TE、通信裝置ME、被控設(shè)備與上位機(jī)。TE為系統(tǒng)主體裝置,以STC12, STM32單片機(jī)為主控實(shí)現(xiàn),軟件以電機(jī)測(cè)控設(shè)計(jì);含SIM卡的ME為西門子TC35[3],由TE控制連通基站并實(shí)現(xiàn)短信通信。系統(tǒng)可由授權(quán)用戶的控制短信實(shí)現(xiàn)遠(yuǎn)程控制、也可通過(guò)向授權(quán)用戶回送檢測(cè)短信實(shí)現(xiàn)遠(yuǎn)程檢測(cè)。
限于篇幅,主要介紹以ARM C。rtex-M3[4]核32位單片機(jī)STM32F103[5]為主控的控制裝置的優(yōu)化實(shí)現(xiàn)。
1.2 系統(tǒng)的用戶短信協(xié)議
1.2.1 TEXT模式標(biāo)準(zhǔn)短信(ASCII碼,數(shù)據(jù)可變)
控制短信:①forward 50 Hz;②reverse 50 Hz;③stoprun;④ask。
檢測(cè)短信:①M(fèi)otor speed 1 268 rpm,forward;②Motorspeed 1 268 rpm,reverse;③Motor stop。
1.2.2 PDU模式標(biāo)準(zhǔn)短信(UCS2碼,數(shù)據(jù)可變)
控制短信:①電機(jī)正轉(zhuǎn),頻率50 Hz;②電機(jī)反轉(zhuǎn),頻率50 Hz;③電機(jī)停轉(zhuǎn);④運(yùn)行查詢
檢測(cè)短信:①電機(jī)轉(zhuǎn)速1 268 r/min,正轉(zhuǎn);②電機(jī)轉(zhuǎn)速1 268 r/min,反轉(zhuǎn);③電機(jī)停止。
1.2.3 短信的遠(yuǎn)程測(cè)控規(guī)則
遠(yuǎn)程控制:授權(quán)用戶發(fā)送控制短信①、②、③之一,系統(tǒng)接收后讀取并解析短信報(bào)文、提取命令與頻率數(shù)據(jù),控制電機(jī)的運(yùn)行與調(diào)速。
遠(yuǎn)程檢測(cè):授權(quán)用戶發(fā)送控制短信④,系統(tǒng)接收后將電機(jī)狀態(tài)與轉(zhuǎn)速數(shù)據(jù)嵌入檢測(cè)短信①、②、③之一向用戶回送,檢測(cè)電機(jī)的狀態(tài)與轉(zhuǎn)速。
授權(quán)用戶的控制短信①?④,系統(tǒng)在接收解析后將其刪除;①?④外的無(wú)效短信或非授權(quán)用戶的短信,系統(tǒng)在接收后均不做解析而直接刪除。
1.3 系統(tǒng)TE的硬件功能與系統(tǒng)設(shè)計(jì)
TE控制ME與被控設(shè)備,連接PC;并完成各模式功能控制、移動(dòng)通信控制、電機(jī)控制及檢測(cè)等。TE與系統(tǒng)硬件框如圖2所示,各電路限于篇幅從略。
1.4 系統(tǒng)TE的軟件功能與程序設(shè)計(jì)
系統(tǒng)TE軟件的總體流程如圖3所示。
系統(tǒng)初始化:用戶初始化階段除完成常規(guī)任務(wù)之外,還以IGT啟動(dòng)TC35; GSM初始化階段以AT&F;,AT,ATE1,AT+CNMI=2,1,0,0,1, AT+CMGF=0或AT+CMGF=1[6]等配置GSM參數(shù)、通信、存儲(chǔ)及接收通知、TEXT或協(xié)議數(shù)據(jù)單元(Protocol Data Unit, PDU)處理模式并清除SIM卡的歷史短信。
程序主循環(huán):判別是否收到控制短信,收到則從接收通知獲取存儲(chǔ)地址并讀取報(bào)文、授權(quán)用戶有效短信解析并刪除。無(wú)效或非授權(quán)用戶短信不解析而直接刪除。
中斷服務(wù)程序:除定時(shí)中斷;串口1中斷自動(dòng)接收TC35各應(yīng)答報(bào)文生成緩沖區(qū)數(shù)組供程序用;串口2中斷自動(dòng)向PC發(fā)送運(yùn)行數(shù)據(jù)報(bào)文。
短信解析的簡(jiǎn)化流程如圖4所示。
2 系統(tǒng)功能的實(shí)現(xiàn)關(guān)鍵與創(chuàng)新優(yōu)化
2.1 系統(tǒng)功能的實(shí)現(xiàn)關(guān)鍵
系統(tǒng)實(shí)現(xiàn)關(guān)鍵為短信底層協(xié)議與控制的編程,涉及GSM配置、AT指令通信、短信模式處理、報(bào)文與數(shù)據(jù)的編碼組織、接收事件與通知、報(bào)文與數(shù)據(jù)的讀取解析、短信的發(fā)送與接收控制等。
2.2 系統(tǒng)功能較常規(guī)案例的創(chuàng)新優(yōu)化
硬件設(shè)計(jì)通用的測(cè)控信號(hào)端口,軟件基于底層協(xié)議控制實(shí)現(xiàn)完備的雙向遠(yuǎn)程檢測(cè)與控制。
用戶短信可脫離代碼自由安全定義;可嵌入動(dòng)態(tài)可變數(shù)據(jù)形成可變短信,實(shí)現(xiàn)可變信號(hào)的檢測(cè)與控制。
用戶短信的容錯(cuò)設(shè)計(jì)。短信僅需包含基本關(guān)鍵詞、關(guān)鍵詞內(nèi)容與位置、可變數(shù)據(jù)位數(shù)與范圍均可容錯(cuò)。
優(yōu)化PDU報(bào)文[7]結(jié)構(gòu),改進(jìn)報(bào)文通信控制,高效穩(wěn)定地實(shí)現(xiàn)中文短信的檢測(cè)與控制。
系統(tǒng)安全與可靠性設(shè)計(jì)。增加用戶身份與短信識(shí)別,屏蔽非授權(quán)用戶與無(wú)效短信;識(shí)別硬件故障并運(yùn)行保護(hù);優(yōu)化實(shí)現(xiàn)短信報(bào)文的存儲(chǔ)管理等。
3 系統(tǒng)功能創(chuàng)新優(yōu)化的技術(shù)實(shí)現(xiàn)
3.1 短信報(bào)文存儲(chǔ)與接收通知、地址與報(bào)文讀取
程序無(wú)法預(yù)測(cè)短信到來(lái)時(shí)刻,故短信接收編程較困難:需控制TC35存儲(chǔ)所收短信并發(fā)送短信接收通知;方可提取存儲(chǔ)地址、讀取短信報(bào)文。
TC35收到短信默認(rèn)不存儲(chǔ)也不向TE發(fā)送信息。編程解決:以AT+CNMI=2,1,0,0,1控制短信接收時(shí)存儲(chǔ)并向TE發(fā)送+CMTL “SM”,
3.2 控制短信的關(guān)鍵詞識(shí)別與解析控制
設(shè)計(jì)短信緩沖區(qū)以中斷接收TC35應(yīng)答及短信報(bào)文,識(shí)別緩沖區(qū)關(guān)鍵詞并邏輯組合作為報(bào)文的解析控制條件。
3.3 系統(tǒng)可維護(hù)性設(shè)計(jì)——用戶短信的自由定義
用戶短信須能據(jù)不同需求自由定義。
設(shè)計(jì)SMS.h獨(dú)立文本文件定義用戶短信,可徹底脫離程序代碼,確保系統(tǒng)維護(hù)的安全。
3.4 控制短信與檢測(cè)短信中可變數(shù)據(jù)的處理
3.4.1 控制短信中可變數(shù)據(jù)的解析提取
TEXT與PDU模式控制短信①,②的解析,還需從其報(bào)文中提取可變數(shù)據(jù)。編程方案如下:
TEXT模式,程序取“Hz”前1、2字節(jié)為個(gè)、十位。并對(duì)個(gè)、十位進(jìn)行0?9有效性判別:均有效數(shù)據(jù)由個(gè)、十位合成;僅個(gè)位有效數(shù)據(jù)只取個(gè)位。
PDU模式,程序取“Hz”前1,5字節(jié)為個(gè)、十位,因UCS2數(shù)字編碼為ASCII碼加高字節(jié)0x00,結(jié)合PDU協(xié)議,0?9字符最終編碼為“0030”?“0039”[8]。數(shù)據(jù)有效性須以4字節(jié)判別。
3.4.2 檢測(cè)短信中可變數(shù)據(jù)的編碼嵌入
檢測(cè)短信須編碼嵌入可變數(shù)據(jù)發(fā)送,為用戶閱讀習(xí)慣,還設(shè)計(jì)清除數(shù)據(jù)高位無(wú)效前導(dǎo)0的顯示。
以PDU模式檢測(cè)短信①為例,編程方案如下:
發(fā)送SCA,Type,MR,DA,PID,DCS,VP,UDL數(shù)據(jù)段;發(fā)送UD段固定內(nèi)容、可變轉(zhuǎn)速數(shù)據(jù)的各位(清除無(wú)效前導(dǎo)0)與報(bào)文結(jié)束符。
3.5 用戶控制短信的容錯(cuò)性設(shè)計(jì)
3.5.1 短信文本內(nèi)容與位置的容錯(cuò)
實(shí)際使用:用戶短信編輯不絕對(duì)符合標(biāo)準(zhǔn),如不能容錯(cuò),系統(tǒng)就會(huì)解析錯(cuò)誤。容錯(cuò)性設(shè)計(jì)可便利用戶并提高系統(tǒng)的安全性。
容錯(cuò)設(shè)計(jì):短信僅需在任意位置包含定義的關(guān)鍵詞,其余文本可隨意。以關(guān)鍵詞識(shí)別實(shí)現(xiàn)容錯(cuò)。
如PDU短信關(guān)鍵詞為“正轉(zhuǎn)”和“Hz”,則短信“G50Hz大正轉(zhuǎn)A”就是與標(biāo)準(zhǔn)短信“電機(jī)正轉(zhuǎn),頻率50 Hz”同含義的容錯(cuò)短信。
3.5.2 短信關(guān)鍵詞自身的容錯(cuò)
關(guān)鍵詞自身也設(shè)計(jì)容錯(cuò),編程以關(guān)鍵詞冗余定義與判別,使關(guān)鍵詞“Hz”可容錯(cuò)為“hz”。
3.5.3 模擬量數(shù)據(jù)位數(shù)與范圍的容錯(cuò)
控制短信①、②模擬量數(shù)據(jù)格式為二位;為一位時(shí),若無(wú)位數(shù)容錯(cuò),當(dāng)用戶編輯為一位數(shù)時(shí),一位數(shù)的字符前字節(jié)的非數(shù)字符將作十位數(shù)計(jì)算而出錯(cuò)。前述的位數(shù)據(jù)有效性判別可實(shí)現(xiàn)位數(shù)的容錯(cuò)。
設(shè)計(jì)模擬量超限處理,防止短信模擬量數(shù)據(jù)編輯超限可能的異常,實(shí)現(xiàn)數(shù)據(jù)范圍的容錯(cuò)。
3.6 系統(tǒng)的控制安全性設(shè)計(jì)
3.6.1 用戶身份的識(shí)別——授權(quán)與非授權(quán)用戶
軟件設(shè)計(jì)獨(dú)立定義多個(gè)授權(quán)用戶的號(hào)碼編碼供程序選擇以識(shí)別用戶,屏蔽非授權(quán)用戶的操作。
3.6.2 短信的有效性識(shí)別——有效與無(wú)效短信
有效短信含關(guān)鍵詞,否則為無(wú)效短信。對(duì)無(wú)效短信不解析而直接刪除,屏蔽無(wú)效短信的操作。
3.6.3 短信解析的條件限制——誤操作的防止
短信解析需同時(shí)滿足用戶身份與有效內(nèi)容;公網(wǎng)公共短信來(lái)自非授權(quán)用戶,故不會(huì)引起誤操作。
3.7系統(tǒng)的運(yùn)行可靠性設(shè)計(jì)
3.7.1 PDU報(bào)文的結(jié)構(gòu)優(yōu)化與可靠通信
PDU發(fā)送標(biāo)準(zhǔn)為Submit-PDU報(bào)文[7]。去除SCA數(shù)據(jù)段并縮短DA數(shù)據(jù)段形成比標(biāo)準(zhǔn)報(bào)文短18字節(jié)的優(yōu)化報(bào)文,提高了通信效率。
實(shí)驗(yàn)發(fā)現(xiàn)TC35對(duì)PDU報(bào)文連續(xù)性要求苛刻。編程在報(bào)文發(fā)送前暫停其他中斷響應(yīng),發(fā)送完畢恢復(fù),確保了可靠通信。
3.7.2 TE-ME運(yùn)行時(shí)序配合的可靠性設(shè)計(jì)
TE操作ME,時(shí)序要求ME執(zhí)行成功方可后續(xù)操作。常規(guī)的定時(shí)編程如遭遇ME尚未執(zhí)行成功但定時(shí)已到,TE將后續(xù)操作而導(dǎo)致出錯(cuò)。
軟件設(shè)計(jì)應(yīng)答判別編程:中斷接收ME應(yīng)答,并識(shí)別確認(rèn)應(yīng)答中已出現(xiàn)標(biāo)志執(zhí)行成功的關(guān)鍵詞再后續(xù)操作,徹底消除常規(guī)方案的出錯(cuò)隱患。
3.7.3 TE-ME硬件通信的故障識(shí)別與保護(hù)
增加ME應(yīng)答超時(shí)與出錯(cuò)編程,如工步應(yīng)答錯(cuò)誤或無(wú)應(yīng)答,程序?qū)⒅卦嚮謴?fù),硬件通信故障時(shí)將不能恢復(fù),工步將停止推進(jìn)實(shí)現(xiàn)運(yùn)行保護(hù),避免硬件故障時(shí)的帶病運(yùn)行,保障運(yùn)行的可靠性。
4 系統(tǒng)的運(yùn)行測(cè)試與使用示例
TE電路與ME如圖5所示。TE以RS-232C連接ME與PC、通用信號(hào)端子連接被控設(shè)備。
4.1 遠(yuǎn)程控制與檢測(cè)的運(yùn)行測(cè)試
運(yùn)行測(cè)試向系統(tǒng)發(fā)送關(guān)鍵詞、關(guān)鍵詞位置、頻率數(shù)據(jù)位數(shù)、范圍容錯(cuò)的多種中英文控制短信:
授權(quán)用戶的有效短信,接收解析與控制輸出正確,并能正確向用戶回送檢測(cè)短信。無(wú)效短信與非授權(quán)用戶的短信均被屏蔽忽略而不起作用。
人為制造硬件通信故障,程序均在當(dāng)前工步暫停后續(xù)的運(yùn)行,故障提示與運(yùn)行保護(hù)正常。
4.2 遠(yuǎn)程控制與檢測(cè)的使用示例
遠(yuǎn)程控制與檢測(cè)運(yùn)行截圖如圖6所示,反色為控制短信,正色為檢測(cè)短信。左圖中文、右圖英文控制短信中,前2條均為標(biāo)準(zhǔn)短信、后3條均為容錯(cuò)短信。測(cè)控功能正確、系統(tǒng)運(yùn)行穩(wěn)定。
5 結(jié)語(yǔ)
項(xiàng)目裝置硬件測(cè)控信號(hào)端口通用,測(cè)控功能由軟件靈活實(shí)現(xiàn)。僅需修改用戶短信即可實(shí)現(xiàn)對(duì)不同被控設(shè)備的超遠(yuǎn)程測(cè)控。系統(tǒng)較常規(guī)有多方面的創(chuàng)新優(yōu)化,具有優(yōu)良的性價(jià)比和工程實(shí)用價(jià)值。
[參考文獻(xiàn)]
[1]范春輝.物聯(lián)網(wǎng)短距離無(wú)線傳輸技術(shù)研究[J].無(wú)線互聯(lián)科技,2017(19):23-24.
[2]啜鋼,王文博,常永宇,等.移動(dòng)通信原理與系統(tǒng)[M].3版.北京:北京郵電大學(xué)出版社,2015.
[3]西門子.TC35 Hardware Interface Description [EB/OL].(2018-02-08)[2018-04-25].http://www.docin.com/p-262884181.html.
[4]JOSEPH Y.ARMCortex-M3權(quán)威指南[M].宋巖,譯北京:北京航空航天大學(xué)出版社,2009.
[5]張新民,段洪琳.ARMCortex-M3嵌入式開(kāi)發(fā)及應(yīng)用(STM32系列)[M].北京:清華大學(xué)出版社,2017.
[6]西門子AT Command Set Siemens Cellular Engines[EB/OL].(2018-02-08)[2018-04-25].http://wenku.itl68.com/d_000010289.shtml.n 西門子.SMS 短信 PDU 解析[EB/OL].(2018-02-08)[2018-04-25].http://www.taodocs.com/p-34104107.html.
[8]Unicode, Inc.The Unicode Standard[EB/OL].(2018-02-08)[2018-04-25].http://www.docin.com/p-105142298.html.