首頁>>>技術>>>SMS and MMS  短信平臺產品

GSM模塊收發(fā)中文短消息的關鍵技術

王洪瑞 權愛榮 肖金壯 2008/12/03

引 言

  手機短消息服務SMS(Short Message Service)是全球移動通信系統(tǒng)GSM(Global System for Mobile Communi-cation)的一項基本業(yè)務,它利用信令信道傳輸,不用撥號建立連接,直接把要發(fā)的信息加上目的地址發(fā)送到短消息服務中心(service center),由短消息服務中心再發(fā)給最終的信宿,是目前應用最廣泛的一種通信方案。目前,隨著手機的廣泛使用,SMS服務以其傳遞信息方便快捷、價格低廉而越來越受人們的關注,已經廣泛地應用于監(jiān)控定位系統(tǒng)、無線報警、遠程維護及數據信息查詢等各個領域。

  本文針對單片機通過串口發(fā)送AT指令控制GSM無線收發(fā)模塊,實現在不支持中文編碼的Text(文本)模式下接收中文短消息的軟硬件設計進行了研究,并利用數控模擬開關CD4052實現了單片機多個串口的擴展。

1 短消息基本原理介紹

1.1 GSM模塊介紹

  目前,市場上GSM模塊種類很多,但功能、用法基本相同。本文中使用了Siemens公司生產的TC35i模塊。該模塊與GSM2/2兼容,提供 雙頻(GSM900/GSM1800)和RS232數據接口,外部提供9針串口及話柄接口(支持語音),如圖1所示;通過AT命令來傳輸數據、語音和短消息等,方便用戶開發(fā)和設計。

1.2 短消息AT指令

  AT指令用于由終端設備(TE)或數據終端設備(DTE),發(fā)送到終端適配器(TA)或數據電路終接設備(DCE)。設備通過發(fā)送AT命令來控制移動臺,并與GSM網絡業(yè)務進行交互。通過AT命令可進行呼叫、短信、電話本、數據業(yè)務、補充業(yè)務等方面的控制。本文中由單片機發(fā)送AT指令來控制GSM模塊接收和發(fā)送手機短消息。

常用短消息相關AT指令及說明如表1所列。





1.3 收發(fā)短消息的模式

  目前,接收和發(fā)送SMS信息常用的模式主要有兩種:Text(文本)模式和PDU(Protocol Data Unit,協(xié)議數據單元)模式。

(1)Text模式

  Text 模式是純文本方式,可使用不同的字符集。該模式下信息傳送和接收的編碼比較簡單,但國內手機Text模式下不支持收發(fā)中文漢字字符的手機短消息。本文通過編碼轉換實現了GSM模塊在Text模式下收發(fā)中文短信息。

(2)PDU模式

  PDU模式被所有手機支持,可發(fā)送中英文短信。PDU模式下可采用3種編碼方式,分別是7位、8位和UCS2編碼,分別用于發(fā)送普通的ASC Ⅱ字符、數據消息和Unicode字符。按照GSM07.05協(xié)議規(guī)定,手機短信息中的漢字編碼均采用Unicode碼。

  如表2所列,PDU模式中畫橫線部分依次為短信息中心號碼、發(fā)送短信方手機號碼以及發(fā)送短信的日期和時間。其代碼表示為將實際數據兩兩顛倒,例如實際短信息中心號碼應為“8613800311500”。短信內容“你好!”均為Unicode字符“4F60597D0021”。其他各項的具體說明見參考文獻。


  經研究比較發(fā)現,所要提取的短信信息包括手機號碼、時間和短信內容。在Text模式下時間和日期均為ASCII碼,可直接讀取,只需將內容中漢字部分的Unicode碼轉換成國標碼;而在PDU模式下除漢字編碼轉換外,還需將號碼、時間部分編碼進行兩兩顛倒的轉換,才能得到所需的正確信息。故在系統(tǒng)設計中將GSM模塊設為Text模式,更能簡化程序設計。

2 Unicode碼到GB2312碼的轉換

  由于Unicode編碼和GB2312編碼之間沒有一一對應的線性轉換關系,用單片機控制代碼轉換只能采用查表方法實現,因此,需要建立Unicode碼和GB碼之間轉換的對照。中文簡體漢字有7 464個,一個漢字占2個字節(jié),因此對照表需要29 856(7 464×4)的存儲空間。本設計中選擇P89V51RD型單片機,該芯片提供的1 KB RAM可以滿足存儲多條短信的要求。

  單片機通過串口與模塊連接后,發(fā)送讀取第一條新短消息指令:“AT+CMGR=1”。提取模塊接收的短消息后,先判斷其內容是否為ASCII碼。若為ASCII碼,則無需轉換直接讀取;否則,通過查表法查找其對應的漢字GB碼,實現不同編碼間的轉換。轉換流程如圖2所示。


提取信息內容的部分程序如下:

  采用二分查找法,其最壞查找次數為lg2(n+1),對照表的長度n為7 464,故最壞查找次數約為13次。也就是說,一個中文編碼轉換最多經過13次比較查找即可完成,單片機控制能夠實時完成。

3 單片機多串口的實現

  51系列單片機一般只有一個串行通路,通過串口與GSM模塊連接后,則不能再連接其他串口設備;而一些串口擴展芯片成本較高,連接也較麻煩。本方法利用數控模擬開關CD4052來做多串口擴展器,成本低廉而且接線簡單。其引腳排列如圖3所示。


  CD4052具有4個獨立的通道數據選擇器,有A、B兩個輸入端和一個禁止輸入INH,通過A、B的4種二進制組合狀態(tài)來選擇4對通道中的一對。

  本設計中,A、B分別占用P2.0和P2.1口,P2=0x01則選通模塊串口,P2=0x02則接通其他串口設備。當INH為1時,所有通道均關閉。X、Y分別連接單片機的RXD和TXD,則可將一個串口擴展為4個,具體接線方法如圖4所示。


  CD4052實際上是2個一分四的數據分配器,所擴展的串口均是全雙工異步工作模式,具有很高的工作速度,方便地實現了一片單片機多個串口的擴展能力。以Siemens公司的TC35i GSM模塊為編程對象,通過P89 V51單片機進行控制,構建了實際系統(tǒng),實現了編程過程以及系統(tǒng)串口擴展等,有效地接收并完成中文短消息代碼的轉換,驗證了上述構建思路的可行性和正確性。



結 語

  單片機控制GSM模塊在Text模式下接收手機中文短信息,其編碼轉換格式較為簡單,并有較高的轉換速率。對于終端接收中英文信息的項目,采用本文所研究的單片機控制GSM模塊收發(fā)短消息技術,實現簡單,成本較低,可直接嵌套使用。另外,經擴展后單片機可同時與其他串行設備相連,例如與串行打印機相連,即可直接打印出手機信息內容。在車輛監(jiān)控系統(tǒng)、倉庫監(jiān)控系統(tǒng)及儀器數據遠傳等方面,也能很好地結合本技術。

單片機與嵌入式系統(tǒng)



相關鏈接:
唐雄燕:全業(yè)務運營背景下的VoIP和IM 2008-11-26
3G前夜的手機游戲 2008-11-18
觀察:IP視頻監(jiān)控-短板猶存 2008-11-17
移動電視商業(yè)模式應取經全球運營經驗 2008-11-17
Black Berry為何那么火 2008-11-12

分類信息:  移動增值_與_短信/彩信  移動增值_與_sms技術  短信/彩信_與_移動  短信/彩信_與_sms技術
           移動_與_sms技術
武平县| 虞城县| 广州市| 海安县| 石景山区| 静乐县| 云龙县| 达拉特旗| 凤山县| 磴口县| 青龙| 乌审旗| 伊金霍洛旗| 霍林郭勒市| 台东市| 丹凤县| 花垣县| 广河县| 棋牌| 故城县| 临邑县| 彩票| 清河县| 宝坻区| 彝良县| 乐陵市| 民乐县| 华亭县| 泗阳县| 赣榆县| 淳化县| 老河口市| 筠连县| 威远县| 广南县| 甘南县| 沁水县| 青川县| 吉木乃县| 秦安县| 大足县|