當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]引 言 隨著經(jīng)濟(jì)的發(fā)展以及國(guó)內(nèi)工農(nóng)業(yè)領(lǐng)域的自動(dòng)化程度的提高,越來(lái)越多的場(chǎng)合需要遠(yuǎn)程監(jiān)控和操作的設(shè)備?;贕SM網(wǎng)絡(luò)短信息設(shè)備的領(lǐng)域,GSM Modem是必不可少的設(shè)備,本文討論目前應(yīng)用廣泛的基于Wavecom公司Q24PL

引  言

隨著經(jīng)濟(jì)的發(fā)展以及國(guó)內(nèi)工農(nóng)業(yè)領(lǐng)域的自動(dòng)化程度的提高,越來(lái)越多的場(chǎng)合需要遠(yuǎn)程監(jiān)控和操作的設(shè)備?;?strong>GSM網(wǎng)絡(luò)短信息設(shè)備的領(lǐng)域,GSM Modem是必不可少的設(shè)備,本文討論目前應(yīng)用廣泛的基于Wavecom公司Q24PL001模塊的GSM Modem嵌入式程序設(shè)計(jì),以實(shí)現(xiàn)將短信數(shù)據(jù)通信報(bào)文封裝進(jìn)GSM Modem,從而簡(jiǎn)化上位機(jī)軟件的工作量。

本文以O(shè)penAT3.12嵌入式開(kāi)發(fā)平臺(tái)為例,討論如何將遠(yuǎn)程控制和數(shù)據(jù)采集通信報(bào)文封裝進(jìn)以Q24PL001模塊為主的GSM Modem。

1  OpenAT操作系統(tǒng)介紹

OpenAT是Wavecom公司為GPRS/GSM無(wú)線(xiàn)CPU開(kāi)發(fā)的一款實(shí)時(shí)操作系統(tǒng),集成了內(nèi)存分配、Flash管理、數(shù)據(jù)流管理、GPIO管理、總線(xiàn)管理、定時(shí)器管理等多種功能。底層為嵌入式API應(yīng)用層,它包括程序初始化API、AT指令A(yù)PI、操作系統(tǒng)API、標(biāo)準(zhǔn)API、流控API、總線(xiàn)API等,包含了建立在OpenAT基礎(chǔ)之上的應(yīng)用開(kāi)發(fā)層函數(shù)庫(kù)。應(yīng)用開(kāi)發(fā)層(簡(jiǎn)稱(chēng)ADL)函數(shù)庫(kù)為開(kāi)發(fā)人員提供了上層應(yīng)用接口,簡(jiǎn)化了嵌入式應(yīng)用的開(kāi)發(fā);同時(shí)還提供了嵌入式應(yīng)用程序框架,包括消息解析器和服務(wù)聲明機(jī)制?;谝陨显?,OpenAT應(yīng)用程序開(kāi)發(fā)人員在開(kāi)發(fā)應(yīng)用程序時(shí),更多的時(shí)間用于調(diào)用服務(wù)處理函數(shù),使系統(tǒng)更專(zhuān)注于程序本身的優(yōu)化。

2  GSM Modom的硬件結(jié)構(gòu)和應(yīng)用程序

GSM模塊在工業(yè)領(lǐng)域中比較重要的一個(gè)應(yīng)用就是用來(lái)做GSM Modem,這也是GSM模塊一個(gè)最簡(jiǎn)單的應(yīng)用。如圖1所示,一個(gè)常規(guī)通用GSM Modem的系統(tǒng)結(jié)構(gòu)包括電源、RS232接口、GSM模塊、LED指示燈、SIM卡和天線(xiàn)等部分。



GSM Modem核心模塊采用Wavecom公司的無(wú)線(xiàn)CPU模塊Q24PL001。在Q24PL001模塊中,OpenAT與應(yīng)用程序的結(jié)構(gòu)關(guān)系如圖2所示。Q24PL001集成了ARM7內(nèi)核的32位CPU,內(nèi)嵌OpenAT操作系統(tǒng)內(nèi)核,支持OpenAT嵌入式應(yīng)用程序設(shè)計(jì)。



3  基于短信遠(yuǎn)程控制系統(tǒng)的結(jié)構(gòu)

如圖3所示,基于GSM網(wǎng)絡(luò)的短信遠(yuǎn)程控制系統(tǒng)通常包括以下幾個(gè)部分:GSM Modem、上位機(jī)監(jiān)控終端、移動(dòng)運(yùn)營(yíng)商的GSM網(wǎng)絡(luò)和GSM終端等。



在一般產(chǎn)品設(shè)計(jì)中,GSM Modem作為發(fā)送GSM短信息的工具使用。PC機(jī)通過(guò)RS232串口與GSM Modem相連,根據(jù)通信協(xié)議處理短信數(shù)據(jù)將處理好的短信數(shù)據(jù)包打包,通過(guò)RS232串口發(fā)送一系列標(biāo)準(zhǔn)Ar指令控制GSM Modem,由其將短信數(shù)據(jù)包發(fā)送至終端系統(tǒng)。本文重點(diǎn)研究簡(jiǎn)化上位機(jī)軟件,將數(shù)據(jù)處理過(guò)程交給GSM Modem嵌入式系統(tǒng)軟件處理的方法。

4  GSM短信遠(yuǎn)程控制系統(tǒng)的通信報(bào)文設(shè)計(jì)

對(duì)于GSM遠(yuǎn)程通信系統(tǒng),數(shù)據(jù)通信報(bào)文并無(wú)統(tǒng)一標(biāo)準(zhǔn),設(shè)計(jì)者可以根據(jù)具體情況自由設(shè)計(jì)不同通信終端之間的數(shù)據(jù)通信報(bào)文。由于GSM網(wǎng)絡(luò)的短信數(shù)據(jù)通信接收端可以通過(guò)普通手機(jī)實(shí)現(xiàn)短信接收,所以必須在短信數(shù)據(jù)通信報(bào)文設(shè)計(jì)中進(jìn)行數(shù)據(jù)加密設(shè)計(jì),以防止非法用戶(hù)對(duì)GSM短信數(shù)據(jù)通信報(bào)文的破解和濫用,保證整個(gè)SMS短信控制系統(tǒng)的穩(wěn)定性。為了便于介紹,在此以非加密的GSM短信數(shù)據(jù)通信報(bào)文為例,介紹GSM短信通信報(bào)文的設(shè)計(jì)。

一個(gè)常用GSM短信數(shù)據(jù)通信報(bào)文設(shè)計(jì)格式如下:



其中,以$S作為短信數(shù)據(jù)通信報(bào)文的幀頭字節(jié);6個(gè)字符作為接收端的認(rèn)證密碼;S/T代表本報(bào)文的發(fā)送方為GSMModem(S)或短信終端(T);報(bào)文內(nèi)容受短信數(shù)據(jù)長(zhǎng)度的限制,一般在100字節(jié)以下;以#作為報(bào)文的結(jié)束符。

基于如上報(bào)文定義,一條上位機(jī)發(fā)出的SMS報(bào)文示例如下:

$S000000S0000AA100RlY2W3R4Y5G6Y7W5B#

其中,$S為數(shù)據(jù)幀頭;000000為SMS終端默認(rèn)的認(rèn)證密碼;S表明本數(shù)據(jù)來(lái)自GSM Modem;0000為服務(wù)器設(shè)備ID編號(hào);AA表示當(dāng)前數(shù)據(jù)命令;10為十六進(jìn)制數(shù)據(jù)0x10,表示當(dāng)前數(shù)據(jù)內(nèi)容長(zhǎng)度字節(jié);0R1G2W3R4G5G6Y7W為報(bào)文內(nèi)容;5B為校驗(yàn)碼;#為結(jié)束符。

同理,短信終端返回至GSM Modem的SMS報(bào)文示例為:

$S888888T0055CC1930RX1YX2YX3YX4YX5Y6Y7YXEF#

其中,$S為數(shù)據(jù)幀頭;888888為SMS上位機(jī)服務(wù)器端默認(rèn)的認(rèn)證密碼;T表明數(shù)據(jù)來(lái)自短信終端;0055為終端設(shè)備ID編號(hào);CC表示當(dāng)前返回?cái)?shù)據(jù)命令;19為十六進(jìn)制數(shù)據(jù)0x19,表明當(dāng)前返回?cái)?shù)據(jù)內(nèi)容長(zhǎng)度字節(jié);30RX1YX2YX3YX4YX5Y6Y7YX為返回?cái)?shù)據(jù)內(nèi)容;EF為校驗(yàn)碼;#為結(jié)束符。

5 GSM Modem短信數(shù)據(jù)通信報(bào)文處理流程

采用常規(guī)的上位機(jī)軟件來(lái)進(jìn)行設(shè)計(jì),將數(shù)據(jù)通信報(bào)文整理好后再根據(jù)一系列的AT命令組合發(fā)送至GSM Modem,同時(shí)還需要解析來(lái)自若干個(gè)SMS終端的數(shù)據(jù)通信報(bào)文。常規(guī)上位機(jī)服務(wù)器端軟件處理短信數(shù)據(jù)的流程如圖4所示。


上位機(jī)軟件數(shù)據(jù)處理過(guò)程中,需要不停地對(duì)GSMModem進(jìn)行操作,響應(yīng)GSM Modem接收到的數(shù)據(jù),處理發(fā)送數(shù)據(jù)包。在整個(gè)過(guò)程中,GSM Modem只作為數(shù)據(jù)傳輸工具,不參與任何的數(shù)據(jù)處理;而一般的SMS遠(yuǎn)程監(jiān)控通信系統(tǒng)的通信報(bào)文多達(dá)幾十乃至上百條,會(huì)導(dǎo)致上位機(jī)軟件工作量非常大。為了便于上位機(jī)程序簡(jiǎn)化開(kāi)發(fā),結(jié)合Q24PL001模塊自身支持OpenAT嵌入式軟件的特點(diǎn),將短信數(shù)據(jù)通信報(bào)文的發(fā)送處理和接收解析流程嵌入GSMModem內(nèi),只保留一些簡(jiǎn)單的AT命令接口給上位機(jī)軟件控制,大大減小了上位機(jī)軟件的工作量。

6  基于OpenAT的通信協(xié)議報(bào)文封裝

OpenAT嵌入式操作系統(tǒng)是為廣泛的基于GSM/GPRS的模塊系統(tǒng)應(yīng)用而設(shè)計(jì)的,用于實(shí)現(xiàn)嵌入式的短信數(shù)據(jù)通信協(xié)議報(bào)文封裝,可以大大提高GSM Modem硬件系統(tǒng)的資源利用率?;贠penAT的程序設(shè)計(jì)流程分為SIM卡服務(wù)聲明、短信服務(wù)聲明、發(fā)送數(shù)據(jù)包處理和接收數(shù)據(jù)包數(shù)據(jù)解析等部分。

6.1  SlM卡初始化程序

在OpenAT嵌入式程序中,啟動(dòng)SIM卡初始化的聲明函數(shù)為adl_simSubscribe(bpt_SimInitHandler," ")。其中,bpt_SimInitHandler為SIM卡

聲明返回函數(shù):



其中,事件ADL_SIM_EVENT_FULL_INIT表明SIM的初始化完成。

6.2  短信服務(wù)初始化程序

在OpenAT嵌入式程序設(shè)計(jì)中,當(dāng)返回函數(shù)返回狀態(tài)為ADL_SIM_EVENT_FULL_INIT時(shí),表明系統(tǒng)SIM卡初始化過(guò)程成功完成,系統(tǒng)可以進(jìn)入短信聲明流程。短信功能聲明函數(shù)為:

ptk_SmsHandler=adl_smsSubscribe((adl_smsHdlr_f)bpt_SmsDataHandler,\(adl_smsCtrlHdlr_f)bpt_SmsCtrlHandler,ADL_SMS_MODE_TEXT);

其中,ptk_SmsHandler為短信聲明函數(shù)返回句柄;bpt_SmsDataHandler為短信數(shù)據(jù)處理返回函數(shù);bpt_SmsCtrlHandler為短信發(fā)送狀態(tài)事件返回函數(shù);ADL_SMS_MODE_TEXT參數(shù)表示采用TEXT模式進(jìn)行短信數(shù)據(jù)傳輸。bpt_SmsDataHandler短信數(shù)據(jù)返回函數(shù)定義如下:



在該函數(shù)中,smsTel為接收到的短信電話(huà)號(hào)碼,smsTimeLength為T(mén)EXT模式下的短信時(shí)間戳,smsText為接收到的短信數(shù)據(jù)內(nèi)容。

SmsCtrlHandler短信發(fā)送事件返回狀態(tài)定義如下:



其中,ADL_SMS_EVENT_SENDING_OK事件表明短信發(fā)送成功。

6.3  SMS通信協(xié)議發(fā)送實(shí)現(xiàn)

對(duì)示例通信報(bào)文$S000000S0000AA100R1Y2W3R4Y5G6Y7W5B#來(lái)說(shuō),報(bào)文的頭和尾以及S服務(wù)器標(biāo)志為固定字節(jié);000000為終端訪(fǎng)問(wèn)密碼,從Q24PL001模塊內(nèi)部Flash中調(diào)用;服務(wù)器ID碼0000及終端SIM卡號(hào)碼,同樣從內(nèi)部Flash中通過(guò)OpenAT嵌入式API函數(shù)adl_flhRead函數(shù)調(diào)用;命令字AA為固定命令字節(jié);報(bào)文內(nèi)容通過(guò)AT命令接收自上位機(jī)軟件。

該數(shù)據(jù)通信協(xié)議發(fā)送時(shí)通過(guò)OpenAT嵌入式API函數(shù)adl_smsSend()函數(shù)發(fā)送。adl_smsSend函數(shù)定義如下:

adl smsSend(ptk SmsHandler,Telephone,Message,ADL_SMS_MODE_TEXT)

其中,ptk_SmsHandler為6.2節(jié)中短信聲明返回句柄;Telephone參數(shù)為目標(biāo)的SIM卡號(hào)碼;Message為封裝好的SMS短信數(shù)據(jù)通信報(bào)文;ADL_SMS_MODE_TEXT表明采用TEXT格式的短信傳輸。

6.4  數(shù)據(jù)通信協(xié)議的接收處理

對(duì)于GSM Modem接收到的短信數(shù)據(jù)報(bào)文的處理,相當(dāng)于發(fā)送短信數(shù)據(jù)報(bào)文的解包過(guò)程,主要過(guò)程在GetSmsDataPackage()函數(shù)中實(shí)現(xiàn)。處理后數(shù)據(jù)發(fā)送至上位機(jī)軟件格式為:

RES:0001,8,30RX1YX2YX3YX4YX5Y6Y7Y

返回?cái)?shù)據(jù)通過(guò)串口發(fā)送至上位機(jī),上位機(jī)軟件直接接收該字符串,即完成短信數(shù)據(jù)的接收過(guò)程。

7  GSM Modem AT命令設(shè)計(jì)

利用OpenAT操作系統(tǒng)自定義AT命令設(shè)計(jì)接口,定義GSM Modem對(duì)上位機(jī)的數(shù)據(jù)通信接口。AT命令聲明函數(shù)如下:

adl_atCmdSubscribe("AT+SETDIS",(adl_atCmdHandler_t)SetMode,ADL_CMD_TYPE_PARA∣ADL_CMD_TYPE_READ∣0x0041);

其中,參數(shù)"AT+SETDIS"為自定義的AT命令接口;SetMode為該AT命令的返回函數(shù);第3個(gè)參數(shù)為當(dāng)前AT命令的類(lèi)型,ADL_CMD_TYPE_PARA為鍵入?yún)?shù)型,ADL—CMD—TYPE—READ為讀參數(shù)型,0x0041為AT命令類(lèi)型值,根據(jù)函數(shù)規(guī)定設(shè)置。

在SETDIS命令中,以“AT+SEDDIS=X,Y”類(lèi)型為自定義命令的訪(fǎng)問(wèn)接口。在返回函數(shù)中,第1個(gè)參數(shù)X作為SMS通信協(xié)議的命令字參數(shù),第2個(gè)參數(shù)Y作為SMS通信協(xié)議的數(shù)據(jù)報(bào)文內(nèi)容參數(shù)。SMS數(shù)據(jù)報(bào)文目標(biāo)接收終端SIM卡號(hào)碼由“AT+SETTEL”命令預(yù)設(shè),該命令定義如下:

adl_atCmdSubscribe("AT+SETTEL",(adl_atCmdHandler_t)SetTel,ADL_CMD_TYPE_PARA∣ADL_CMD_TYPE_READ∣0x0041)}

該命令用于首次設(shè)置GSM Modem,將所有接收終端SIM卡號(hào)存入Q24PL001內(nèi)部Flash內(nèi),以ID號(hào)標(biāo)識(shí)。

上位機(jī)通過(guò)串口鍵人“AT+SETDlS=0,"0R1Y2W3R4 Y5G6Y7W"”,則GSM Modem立即向相應(yīng)ID為0的終端發(fā)出數(shù)據(jù)包為$S000000S0000AA100R1Y2W3R4Y5G6Y7W5B#完整數(shù)據(jù)。

8  上位機(jī)軟件的操作實(shí)現(xiàn)

相對(duì)于復(fù)雜的數(shù)據(jù)報(bào)文運(yùn)算,以及復(fù)雜的AT命令發(fā)送GSM短信數(shù)據(jù)包的上位機(jī)軟件系統(tǒng)來(lái)說(shuō),將短信數(shù)據(jù)報(bào)文封裝進(jìn)GSM Modem后,對(duì)GSM Modem的控制操作變得簡(jiǎn)單,只需要一條簡(jiǎn)單的AT命令,即可實(shí)現(xiàn)非常復(fù)雜的短信數(shù)據(jù)包的傳輸。同樣對(duì)于接收到的數(shù)據(jù),GSMModem完成數(shù)據(jù)包解包后,立即通過(guò)RS232串口輸出簡(jiǎn)潔的響應(yīng)字符串,大大簡(jiǎn)化了上位機(jī)軟件的處理。經(jīng)過(guò)對(duì)GSM Modem進(jìn)行短信協(xié)議報(bào)文封裝后的上位機(jī)軟件處理流程如圖5所示。



結(jié)  語(yǔ)

在系統(tǒng)穩(wěn)定性和實(shí)時(shí)性要求較高的通信領(lǐng)域中,相比在上位機(jī)軟件中進(jìn)行協(xié)議處理,將GSM Modem進(jìn)行嵌入式報(bào)文封裝處理簡(jiǎn)單而又高效。另外,在很多無(wú)人值守的服務(wù)端平臺(tái),只要保持GSM Modem開(kāi)機(jī),數(shù)據(jù)包數(shù)據(jù)處理即可以直接由GSM Modem完成,而無(wú)需上位機(jī)電腦開(kāi)機(jī),既方便了用戶(hù)操作,又保證了SMS通信系統(tǒng)的穩(wěn)定性。該設(shè)計(jì)已經(jīng)應(yīng)用于南寧及深圳市智能交通誘導(dǎo)系統(tǒng)中,均取得較好的效果。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉