新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 如何以O(shè)penAT3.12為平臺將通信報文封裝進(jìn)GSM Modem

如何以O(shè)penAT3.12為平臺將通信報文封裝進(jìn)GSM Modem

作者: 時間:2010-12-07 來源:網(wǎng)絡(luò) 收藏

引 言

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

本文以嵌入式開發(fā)為例,討論將遠(yuǎn)程控制和數(shù)據(jù)采集進(jìn)以Q24PL001模塊為主的GSM Modem。

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

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

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

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



GSM Modem核心模塊采用Wavecom公司的無線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è)計。



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

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



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

4 GSM短信遠(yuǎn)程控制系統(tǒng)的通信設(shè)計

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

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



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

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

$S000000S0000AA100RlY2W3R4Y5G6Y7W5B#

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

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

$S888888T0055CC1930RX1YX2YX3YX4YX5Y6Y7YXEF#

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

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

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


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉