新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > OpenAT平臺的GSM Modem通信協議報文設計

        OpenAT平臺的GSM Modem通信協議報文設計

        作者: 時間:2010-06-28 來源:網絡 收藏


        一個常用短信數據格式如下:



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

        基于如上報文定義,一條上位機發出的SMS報文示例如下:

        $S000000S0000AA100RlY2W3R4Y5G6Y7W5B#

        其中,$S為數據幀頭;000000為SMS終端默認的認證密碼;S表明本數據來自 ;0000為服務器設備ID編號;AA表示當前數據命令;10為十六進制數據0x10,表示當前數據內容長度字節;0R1G2W3R4G5G6Y7W為報文內容;5B為校驗碼;#為結束符。

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

        $S888888T0055CC1930RX1YX2YX3YX4YX5Y6Y7YXEF#

        其中,$S為數據幀頭;888888為SMS上位機服務器端默認的認證密碼;T表明數據來自短信終端;0055為終端設備ID編號;CC表示當前返回數據命令;19為十六進制數據0x19,表明當前返回數據內容長度字節;30RX1YX2YX3YX4YX5Y6Y7YX為返回數據內容;EF為校驗碼;#為結束符。

        5 GSM Modem短信數據報文處理流程

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



        上位機軟件數據處理過程中,需要不停地對GSMModem進行操作,響應GSM Modem接收到的數據,處理發送數據包。在整個過程中,GSM Modem只作為數據傳輸工具,不參與任何的數據處理;而一般的SMS遠程監控通信系統的通信報文多達幾十乃至上百條,會導致上位機軟件工作量非常大。為了便于上位機程序簡化開發,結合Q24PL001模塊自身支持嵌入式軟件的特點,將短信數據通信報文的發送處理和接收解析流程嵌入GSMModem內,只保留一些簡單的AT命令接口給上位機軟件控制,大大減小了上位機軟件的工作量。

        6 基于的通信報文封裝

        嵌入式操作系統是為廣泛的基于GSM/GPRS的模塊系統應用而的,用于實現嵌入式的短信數據通信報文封裝,可以大大提高GSM Modem硬件系統的資源利用率。基于OpenAT的程序設計流程分為SIM卡服務聲明、短信服務聲明、發送數據包處理和接收數據包數據解析等部分。

        6.1 SlM卡初始化程序

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

        聲明返回函數:



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

        6.2 短信服務初始化程序

        在OpenAT嵌入式程序設計中,當返回函數返回狀態為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為短信發送狀態事件返回函數;ADL_SMS_MODE_TEXT參數表示采用TEXT模式進行短信數據傳輸。bpt_SmsDataHandler短信數據返回函數定義如下:



        在該函數中,smsTel為接收到的短信電話號碼,smsTimeLength為TEXT模式下的短信時間戳,smsText為接收到的短信數據內容。

        SmsCtrlHandler短信發送事件返回狀態定義如下:



        其中,ADL_SMS_EVENT_SENDING_OK事件表明短信發送成功。

        6.3 SMS通信發送實現

        對示例通信報文$S000000S0000AA100R1Y2W3R4Y5G6Y7W5B#來說,報文的頭和尾以及S服務器標志為固定字節;000000為終端訪問密碼,從Q24PL001模塊內部Flash中調用;服務器ID碼0000及終端SIM卡號碼,同樣從內部Flash中通過OpenAT嵌入式API函數adl_flhRead函數調用;命令字AA為固定命令字節;報文內容通過AT命令接收自上位機軟件。


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临猗县| 普定县| 虎林市| 凤阳县| 抚松县| 平原县| 梁平县| 阳江市| 双柏县| 莫力| 长海县| 宿州市| 平阳县| 定结县| 赤壁市| 谷城县| 沽源县| 格尔木市| 莎车县| 永安市| 收藏| 横山县| 民县| 武鸣县| 蛟河市| 兴化市| 汝阳县| 舞阳县| 莲花县| 宁乡县| 盈江县| 渝中区| 利川市| 金溪县| 上杭县| 萍乡市| 阜康市| 新源县| 梁山县| 凉城县| 兰州市|