[導讀]本文討論目前應用廣泛的基于Wavecom公司Q24PL001模塊的GSM Modem嵌入式程序設計,以實現將短信數據通信報文封裝進GSM Modem,從而簡化上位機軟件的工作量。
引 言
隨著經濟的發(fā)展以及國內工農業(yè)領域的自動化程度的提高,越來越多的場合需要遠程監(jiān)控和操作的設備??煽?、實時、低成本、低功耗的基于GSM網絡的短信遠程數據控制與傳輸系統,在電力抄表、水文監(jiān)測、防盜、環(huán)境監(jiān)測、車輛跟蹤、兒童定位、油田監(jiān)控等需要遠程數據采集和控制領域中的應用越來越廣泛。在所有這些基于GSM網絡短信息設備的領域,GSM Modem是必不可少的設備。本文討論目前應用廣泛的基于Wavecom公司Q24PL001模塊的GSM Modem嵌入式程序設計,以實現將短信數據通信報文封裝進GSM Modem,從而簡化上位機軟件的工作量。
本文以OpenAT3.12嵌入式開發(fā)平臺為例,討論如何將遠程控制和數據采集通信報文封裝進以Q24PL001模塊為主的GSM Modem。
1 OpenAT操作系統介紹
OpenAT是Wavecom公司為GPRS/GSM無線CPU開發(fā)的一款實時操作系統,集成了內存分配、Flash管理、數據流管理、GPIO管理、總線管理、定時器管理等多種功能。底層為嵌入式API應用層,它包括程序初始化API、AT指令API、操作系統API、標準API、流控API、總線API等,包含了建立在OpenAT基礎之上的應用開發(fā)層函數庫。應用開發(fā)層(簡稱ADL)函數庫為開發(fā)人員提供了上層應用接口,簡化了嵌入式應用的開發(fā);同時還提供了嵌入式應用程序框架,包括消息解析器和服務聲明機制。基于以上原因,OpenAT應用程序開發(fā)人員在開發(fā)應用程序時,更多的時間用于調用服務處理函數,使系統更專注于程序本身的優(yōu)化。
2 GSM Modom的硬件結構和應用程序
GSM模塊在工業(yè)領域中比較重要的一個應用就是用來做GSM Modem,這也是GSM模塊一個最簡單的應用。如圖1所示,一個常規(guī)通用GSM Modem的系統結構包括電源、RS232接口、GSM模塊、LED指示燈、SIM卡和天線等部分。
GSM Modem核心模塊采用Wavecom公司的無線CPU模塊Q24PL001。在Q24PL001模塊中,OpenAT與應用程序的結構關系如圖2所示。Q24PL001集成了ARM7內核的32位CPU,內嵌OpenAT操作系統內核,支持OpenAT嵌入式應用程序設計。
3 基于短信遠程控制系統的結構
如圖3所示,基于GSM網絡的短信遠程控制系統通常包括以下幾個部分:GSM Modem、上位機監(jiān)控終端、移動運營商的GSM網絡和GSM終端等。
在一般產品設計中,GSM Modem作為發(fā)送GSM短信息的工具使用。PC機通過RS232串口與GSM Modem相連,根據通信協議處理短信數據將處理好的短信數據包打包,通過RS232串口發(fā)送一系列標準Ar指令控制GSM Modem,由其將短信數據包發(fā)送至終端系統。本文重點研究簡化上位機軟件,將數據處理過程交給GSM Modem嵌入式系統軟件處理的方法。
4 GSM短信遠程控制系統的通信報文設計
對于GSM遠程通信系統,數據通信報文并無統一標準,設計者可以根據具體情況自由設計不同通信終端之間的數據通信報文。由于GSM網絡的短信數據通信接收端可以通過普通手機實現短信接收,所以必須在短信數據通信報文設計中進行數據加密設計,以防止非法用戶對GSM短信數據通信報文的破解和濫用,保證整個SMS短信控制系統的穩(wěn)定性。為了便于介紹,在此以非加密的GSM短信數據通信報文為例,介紹GSM短信通信報文的設計。
一個常用GSM短信數據通信報文設計格式如下:
其中,以$S作為短信數據通信報文的幀頭字節(jié);6個字符作為接收端的認證密碼;S/T代表本報文的發(fā)送方為GSMModem(S)或短信終端(T);報文內容受短信數據長度的限制,一般在100字節(jié)以下;以#作為報文的結束符。
基于如上報文定義,一條上位機發(fā)出的SMS報文示例如下:
$S000000S0000AA100RlY2W3R4Y5G6Y7W5B#
其中,$S為數據幀頭;000000為SMS終端默認的認證密碼;S表明本數據來自GSM Modem;0000為服務器設備ID編號;AA表示當前數據命令;10為十六進制數據0x10,表示當前數據內容長度字節(jié);0R1G2W3R4G5G6Y7W為報文內容;5B為校驗碼;#為結束符。
同理,短信終端返回至GSM Modem的SMS報文示例為:
$S888888T0055CC1930RX1YX2YX3YX4YX5Y6Y7YXEF#
其中,$S為數據幀頭;888888為SMS上位機服務器端默認的認證密碼;T表明數據來自短信終端;0055為終端設備ID編號;CC表示當前返回數據命令;19為十六進制數據0x19,表明當前返回數據內容長度字節(jié);30RX1YX2YX3YX4YX5Y6Y7YX為返回數據內容;EF為校驗碼;#為結束符。
5 GSM Modem短信數據通信報文處理流程
采用常規(guī)的上位機軟件來進行設計,將數據通信報文整理好后再根據一系列的AT命令組合發(fā)送至GSM Modem,同時還需要解析來自若干個SMS終端的數據通信報文。常規(guī)上位機服務器端軟件處理短信數據的流程如圖4所示。
上位機軟件數據處理過程中,需要不停地對GSMModem進行操作,響應GSM Modem接收到的數據,處理發(fā)送數據包。在整個過程中,GSM Modem只作為數據傳輸工具,不參與任何的數據處理;而一般的SMS遠程監(jiān)控通信系統的通信報文多達幾十乃至上百條,會導致上位機軟件工作量非常大。為了便于上位機程序簡化開發(fā),結合Q24PL001模塊自身支持OpenAT嵌入式軟件的特點,將短信數據通信報文的發(fā)送處理和接收解析流程嵌入GSMModem內,只保留一些簡單的AT命令接口給上位機軟件控制,大大減小了上位機軟件的工作量。
6 基于OpenAT的通信協議報文封裝
OpenAT嵌入式操作系統是為廣泛的基于GSM/GPRS的模塊系統應用而設計的,用于實現嵌入式的短信數據通信協議報文封裝,可以大大提高GSM Modem硬件系統的資源利用率?;贠penAT的程序設計流程分為SIM卡服務聲明、短信服務聲明、發(fā)送數據包處理和接收數據包數據解析等部分。
6.1 SlM卡初始化程序
在OpenAT嵌入式程序中,啟動SIM卡初始化的聲明函數為adl_simSubscribe(bpt_SimInitHandler," ")。其中,bpt_SimInitHandler為SIM卡
聲明返回函數:
其中,事件ADL_SIM_EVENT_FULL_INIT表明SIM的初始化完成。
6.2 短信服務初始化程序
在OpenAT嵌入式程序設計中,當返回函數返回狀態(tài)為ADL_SIM_EVENT_FULL_INIT時,表明系統SIM卡初始化過程成功完成,系統可以進入短信聲明流程。短信功能聲明函數為:
ptk_SmsHandler=adl_smsSubscribe((adl_smsHdlr_f)bpt_SmsDataHandler,\(adl_smsCtrlHdlr_f)bpt_SmsCtrlHandler,ADL_SMS_MODE_TEXT);
其中,ptk_SmsHandler為短信聲明函數返回句柄;bpt_SmsDataHandler為短信數據處理返回函數;bpt_SmsCtrlHandler為短信發(fā)送狀態(tài)事件返回函數;ADL_SMS_MODE_TEXT參數表示采用TEXT模式進行短信數據傳輸。bpt_SmsDataHandler短信數據返回函數定義如下:
在該函數中,smsTel為接收到的短信電話號碼,smsTimeLength為TEXT模式下的短信時間戳,smsText為接收到的短信數據內容。
SmsCtrlHandler短信發(fā)送事件返回狀態(tài)定義如下:
其中,ADL_SMS_EVENT_SENDING_OK事件表明短信發(fā)送成功。
6.3 SMS通信協議發(fā)送實現
對示例通信報文$S000000S0000AA100R1Y2W3R4Y5G6Y7W5B#來說,報文的頭和尾以及S服務器標志為固定字節(jié);000000為終端訪問密碼,從Q24PL001模塊內部Flash中調用;服務器ID碼0000及終端SIM卡號碼,同樣從內部Flash中通過OpenAT嵌入式API函數adl_flhRead函數調用;命令字AA為固定命令字節(jié);報文內容通過AT命令接收自上位機軟件。
該數據通信協議發(fā)送時通過OpenAT嵌入式API函數adl_smsSend()函數發(fā)送。adl_smsSend函數定義如下:
adl smsSend(ptk SmsHandler,Telephone,Message,ADL_SMS_MODE_TEXT)
其中,ptk_SmsHandler為6.2節(jié)中短信聲明返回句柄;Telephone參數為目標的SIM卡號碼;Message為封裝好的SMS短信數據通信報文;ADL_SMS_MODE_TEXT表明采用TEXT格式的短信傳輸。
6.4 數據通信協議的接收處理
對于GSM Modem接收到的短信數據報文的處理,相當于發(fā)送短信數據報文的解包過程,主要過程在GetSmsDataPackage()函數中實現。處理后數據發(fā)送至上位機軟件格式為:
RES:0001,8,30RX1YX2YX3YX4YX5Y6Y7Y
返回數據通過串口發(fā)送至上位機,上位機軟件直接接收該字符串,即完成短信數據的接收過程。
7 GSM Modem AT命令設計
利用OpenAT操作系統自定義AT命令設計接口,定義GSM Modem對上位機的數據通信接口。AT命令聲明函數如下:
adl_atCmdSubscribe("AT+SETDIS",(adl_atCmdHandler_t)SetMode,ADL_CMD_TYPE_PARA∣ADL_CMD_TYPE_READ∣0x0041);
其中,參數"AT+SETDIS"為自定義的AT命令接口;SetMode為該AT命令的返回函數;第3個參數為當前AT命令的類型,ADL_CMD_TYPE_PARA為鍵入參數型,ADL—CMD—TYPE—READ為讀參數型,0x0041為AT命令類型值,根據函數規(guī)定設置。
在SETDIS命令中,以“AT+SEDDIS=X,Y”類型為自定義命令的訪問接口。在返回函數中,第1個參數X作為SMS通信協議的命令字參數,第2個參數Y作為SMS通信協議的數據報文內容參數。SMS數據報文目標接收終端SIM卡號碼由“AT+SETTEL”命令預設,該命令定義如下:
adl_atCmdSubscribe("AT+SETTEL",(adl_atCmdHandler_t)SetTel,ADL_CMD_TYPE_PARA∣ADL_CMD_TYPE_READ∣0x0041)}
該命令用于首次設置GSM Modem,將所有接收終端SIM卡號存入Q24PL001內部Flash內,以ID號標識。
上位機通過串口鍵人“AT+SETDlS=0,"0R1Y2W3R4 Y5G6Y7W"”,則GSM Modem立即向相應ID為0的終端發(fā)出數據包為$S000000S0000AA100R1Y2W3R4Y5G6Y7W5B#完整數據。
8 上位機軟件的操作實現
相對于復雜的數據報文運算,以及復雜的AT命令發(fā)送GSM短信數據包的上位機軟件系統來說,將短信數據報文封裝進GSM Modem后,對GSM Modem的控制操作變得簡單,只需要一條簡單的AT命令,即可實現非常復雜的短信數據包的傳輸。同樣對于接收到的數據,GSMModem完成數據包解包后,立即通過RS232串口輸出簡潔的響應字符串,大大簡化了上位機軟件的處理。經過對GSM Modem進行短信協議報文封裝后的上位機軟件處理流程如圖5所示。
結 語
在系統穩(wěn)定性和實時性要求較高的通信領域中,相比在上位機軟件中進行協議處理,將GSM Modem進行嵌入式報文封裝處理簡單而又高效。另外,在很多無人值守的服務端平臺,只要保持GSM Modem開機,數據包數據處理即可以直接由GSM Modem完成,而無需上位機電腦開機,既方便了用戶操作,又保證了SMS通信系統的穩(wěn)定性。該設計已經應用于南寧及深圳市智能交通誘導系統中,均取得較好的效果。
本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
Wefi的WeConnect和OpenRoaming提供自動、無縫和安全的連接,為網絡運營商和用戶提供價值驅動的網絡體驗 洛杉磯2022年10月19日 /美通社/ -- W...
關鍵字:
PEN
Wi-Fi
NEC
STORE
通過第二項3nm設計選用擴展技術領先地位 第三季度強勁的貿易和設計選用反映出我們結合了IP和定制硅的混合業(yè)務模式 自2022年9月1日起,OpenFive首次并入集團 盡管宏觀環(huán)境困難,但管理層仍對業(yè)務...
關鍵字:
BSP
ALPHA
PEN
Silicon
摘要:隨著我國城鎮(zhèn)化進程加快,汽車保用量劇增,土地資源緊缺,停車難問題日益嚴重,提升車位空間的利用率是目前解決這個問題的有效途徑之一。鑒于此,設計了一種基于PLC與小程序的自助立體停車庫,以PLC為控制系統的核心,服務器...
關鍵字:
控制系統
PLC
通信協議
Sumo Logic可靠性管理為企業(yè)領導者提供關鍵數據,以平衡創(chuàng)新速度和服務可靠性
關鍵字:
LOGIC
應用程序
PEN
COM
北京2022年9月6日 /美通社/ -- 9月2日,2022年龍芯工業(yè)生態(tài)大會在蘇州召開,軟通動力子公司鴻湖萬聯受邀出席本次峰會。本次大會以“自主‘芯’架構·連接新未來”為主題,由龍芯中科技術股份有限公司主...
關鍵字:
操作系統
芯片
HARMONY
PEN
上海2022年9月5日 /美通社/ -- 以數字科技為代表的新一輪科技革命和產業(yè)變革正在重塑全球創(chuàng)新、經濟、科技與行業(yè)生態(tài)。作為新興經濟體最為集中的地區(qū),亞洲正在積極探索科技倫理變革并致力于為負責任的全球科技發(fā)...
關鍵字:
APP
PEN
AI
人工智能
(全球TMT2022年9月2日訊)博通公司發(fā)布2022財年第三財季財報。報告顯示,博通第三財季凈營收為84.64億美元,同比增長25%;凈利潤為30.74億美元,同比增長64%;不按照美國通用會計準則調整后凈利潤為42...
關鍵字:
博通
PEN
EV
富士
合并后的公司將提升Alphawave的領導地位、產品供應和客戶群,同時在擴展后的整體潛在市場推動更大的業(yè)務規(guī)模和營收增長 倫敦和多倫多2022年9月1日 /美通社/ -- 世界技術基礎設施高速連接領域的全球領先企業(yè)Al...
關鍵字:
PEN
ALPHA
BSP
GROUP
倫敦2022年9月1日 /美通社/ -- 由國際企業(yè)家和慈善家Elena Baturina創(chuàng)立的創(chuàng)意智庫BE OPEN通過社交媒體發(fā)布下一項全球公開呼吁。通過多項公開呼吁,BE OPEN號召參與者以最形象的方式...
關鍵字:
可持續(xù)發(fā)展
PEN
BSP
BAT
已獲得CIFIUS批準,預計交易將于2022年9月完成 倫敦和多倫多2022年8月26日 /美通社/ -- 全球技術基礎設施高速連接領域的全球領導者Alphawave IP Group plc(簡稱為"Alp...
關鍵字:
ALPHA
PEN
IP
GROUP
要點:重新設計USOpen.org網站及美網應用程序,包括以混合云與可解釋的AI賦能的新球迷體驗應用 北京2022年8月24日 /美通社/ -- IBM(紐約證券交易所股票代碼: IBM)和美國網球協會(USTA)日前...
關鍵字:
IBM
PEN
應用程序
BSP
(全球TMT2022年8月24日訊)IBM和美國網球協會(USTA)日前宣布,將雙方長達30年的長期合作關系再延長五年。從1995年推出USOpen.org到2009年推出移動應用,以及在去年首次推出IBM Power...
關鍵字:
IBM
ST
PEN
FACTORS
上海2022年8月22日 /美通社/ -- "元宇宙"正在逐步走進現實。根據摩根士丹利的研究預測,中國元宇宙潛在市場規(guī)模達52萬億人民幣。 我們現在通常所討論的"元宇...
關鍵字:
APP
PEN
AI
模型
(全球TMT2022年8月17日訊)8月16日,數字藝術創(chuàng)新品牌XPPen正式迎來了自己的17歲生日,伴隨著品牌IP形象Fenix的全球煥新亮相,以"17逐夢"為主題的XPPen品牌17周年慶也正式拉開帷幕。相比舊版I...
關鍵字:
PEN
IP
NI
GEN
逐夢17年,步履不停。 深圳2022年8月17日 /美通社/ -- 8月16日,在全球CG藝術創(chuàng)作者和愛好者的共同期待與見證中,知名數字藝術創(chuàng)新品牌XPPen正式迎來了自己的17歲生日,伴隨著品牌IP形象Fenix的全...
關鍵字:
PEN
IP
NI
TI
(全球TMT2022年8月17日訊)8月16日,數字藝術創(chuàng)新品牌XPPen正式迎來了自己的17歲生日,伴隨著品牌IP形象Fenix的全球煥新亮相,以"17逐夢"為主題的XPPen品牌17周年慶也正式拉開帷幕。相比舊版I...
關鍵字:
PEN
IP
NI
GEN
(全球TMT2022年8月9日訊)近日,德國萊茵TUV香港公司(簡稱“TUV萊茵”)獲阿曼蘇丹國標準與計量總局 (DGSM)授權,被指定為新阿曼符合性計劃的全球首個公告機構。從即刻起, TUV萊茵可向受管制產品的制造商...
關鍵字:
GSM
吸塵器
洗碗機
洗衣機
上海2022年8月3日 /美通社/ -- 夏草芳菲,驕陽似火,在這個熱情洋溢的季節(jié),Veeva迎來了一個重要時刻。7月15日,"向未來 賦新生" -- Veeva大連分公司新辦公室啟動儀式在大連軟件園...
關鍵字:
EV
軟件
PEN
CHINA
北京2022年8月2日 /美通社/ -- 8月10日,開放計算領域含金量充足、生態(tài)覆蓋最廣、極具影響力的亞洲最大年度技術峰會 -- 第四屆OCP China Day 2022將在北京拉開帷幕。 大會由OCP社區(qū)主辦、浪...
關鍵字:
CHINA
數據中心
邊緣計算
PEN
使用Amazon EKS等云托管服務構建現代化應用,提升機器人開發(fā)和運維效率,加速創(chuàng)新迭代 使用Amazon OpenSearch搜索服務實現對機器人知識庫高達每分鐘數十萬次搜索,平均搜索時間最快可達30毫秒,...
關鍵字:
亞馬遜
AI技術
PEN
云服務