《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 用單片機控制手機收發短信息
用單片機控制手機收發短信息
李 鴻
摘要: 介紹用MCS-51系列單片機控制手機收發短信息的原理、硬件電路、PDU數據格式和符合GSM07.05協議要求的短信息發送/接收程序,同時給出了一個應用實例。
Abstract:
Key words :

  摘  要: 介紹用MCS-51系列單片機" title="單片機">單片機控制手機收發短信息的原理、硬件電路、PDU" title="PDU">PDU數據格式和符合GSM" title="GSM">GSM07.05協議要求的短信息發送/接收程序,同時給出了一個應用實例。

  關鍵詞: 單片機  短信息  PDU  GSM  接口

   GSM(Global System for Mobile communication)系統是目前基于時分多址技術的移動通訊體制中比較成熟、完善、應用最廣泛的一種系統。目前已建成的覆蓋全國的GSM數字蜂窩移動通信網,是我國公眾移動通信網的主要方式。主要提供話音、短信息、數據等多種業務。基于GSM短消息功能可以做成傳輸各種檢測、監控數據信號和控制命令的數據通信系統,能廣泛用于遠程監控、定位導航、個人通信終端等。由于公眾GSM網絡在全球范圍內實現了聯網和漫游,建立上述系統不須再組建專用通信網絡,所以具有實時傳輸數據功能的短消息應用將得到迅速普及。

  目前,人們設計的各類DTE設備基本上以微處理器為核心,帶有RS232/RS485等通信接口" title="接口">接口,在物理層上很容易實現與GSM設備(如手機等)的連接。但對SMS協議的研究文獻卻較少,特別是用單片機控制手機的SMS(Short Message Service)收發的研究更少。筆者在用單片機設計基于GSM的SMS數據采集器時,對怎樣用單片機控制手機收發短信息進行了探討。

1 串口控制SMS的工作原理

  單片機與手機一般采用串行異步通信接口,具有紅外和通信電纜兩種連接方式,通信速度可設定,通常為19200bps。采用紅外接口的優點是單片機系統與手機電氣隔離,相互不干擾,接口各自獨立,使用方便;缺點是通信距離較短,紅外傳播的方向性對接口相對位置有要求。采用電纜連接時,數據傳輸的可靠性較好;其主要缺點是接口的電氣參數不兼容,設計不當時會對手機的通信質量產生影響。筆者經過實踐設計的接口電平轉換電路如圖1。

 

 

  GSM的短信息業務SMS利用信令信道傳輸,這是GSM通信網所特有的。它不用撥號建立連接,把要發的信息加上目的地址發送到短信息服務中心,經短消息服務中心完成存儲后再發送給最終的信宿。所以當目的GSM終端沒開機時信息不會丟失。每個短消息的信息量限制為160字節。

  現在市場上大多數手機均支持GSM07.05規定的AT指令集。該指令集是ETSI(歐洲通信技術委員會)發布的,其中包含了對SMS的控制。利用GSM手機的串行接口,單片機向手機收發一系列的AT命令,就能達到控制手機收發SMS的目的。ETSI 的GSM07.05中用于SMS收發控制的主要AT命令見表1,AT指令的詳細說明請見文獻[4]。

 

 

  GSM手機通過異步通信接口實現對SMS的控制共有三種接入協議:Block Mode;基于AT命令的Text Mode;基于AT命令的PDU Mode。PDU模式是發送或接收手機SMS信息的一種方法,短信息正文經過十六進制編碼后被傳送。目前,PDU Mode應用最為廣泛,基本上全國所有的電信局都提供支持PDU Mode的短消息業務。有些地方則不支持Text Mode和Block Mode,這就限制了這兩種接入協議的應用,而且PDU Mode已有取代Block Mode的趨勢。為了保證系統具有廣泛的適用性,本文采用PDU模式收發SMS。

  PDU相當于一個數據包,它由構成短消息(SMS)的信息組成。作為一種數據單元,它必須包含源/目的地址、保護(有效)時間、數據格式、協議類型和正文,正文長度可達140字節,它們都以十六進制表示。PDU結構根據短消息由移動終端發起或以移動終端為目的而不同。

  

  其中,SMSC為短消息業務中心地址,DA/OA為源/目的地址,PID為協議識別,DCS為數據編碼,UDL為用戶數據長度,UD為用戶數據,VP為有效時間,MR指明是發出信息,SCTS指明短消息到達業務中心的時間。

2 PDU格式下短信息的接收

  根據設置不同,手機將收到的短消息保存在緩存單元或存入SIM卡,單片機從手機中接收短消息實質上就是從SIM或緩存中讀出信息。這主要利用AT+CMGR和AT+CMGL兩條指令來完成,其工作過程見圖2。

 

 

  由于不同的廠商對AT指令集的解釋代碼和響應信息不一樣,所以單片機首先要確認能否與手機建立起通信,一般用ATE指令完成此確認;然后用AT+CMGF指令選定短消息的數據格式;在收到手機的正確回答后以AT指令完成讀出功能。一般用AT+CMGL讀取以前的信息,在收到手機的RING(振鈴)數據時,用AT+CMGR讀取實時信息。

  以下是筆者設計的物流數據采集系統中用到的接收SMS的一個實例,它說明了PDU模式的應用。單片機發送和接收(手機回答)均為ASCII碼。所用手機為SIEMENS S3508i。

  操作過程如下({}內為注釋):

       發送:ATE

       手機回答:OK           {已建立聯接}

       發送:AT+CMGF=0       {選用PDU格式}

       手機回答:OK         {允許選擇PDU格式}

       發送:AT+CMGL=2        {列出已有的短信息}

  手機回答:+CMGL:1,2,,24{1表示信息個數,2表示未發信息,24表示信息總容量}

0D91683108370105F004000D81683179133208F10000026080410033802632184CF682D95E0DC2B36D3D170A0243106933D97A0243106933D97A02451068B1983492608

OK

  以上這組PDU格式的十六進制字符串,不但包含了短消息的內容,同時包含了發送者的手機號碼、短信息中心號碼、短消息發送時間等。

  下面對信息內容進行分析:

  0D:短信息中心地址(號碼)長度。

  91:短信息中心號碼類型,91是TON/NPI。TON/NPI遵守International/E.164標準,指在號碼前需加‘+’號;此外還可有其他數值,但91最常用,詳見文獻[1]、[2]。

  683108370105F0:SMSC 短信息所使用的服務中心號碼13807310500。它經過十六進制以字節為單位的高低半字節換位處理,號碼是奇數的添F,構成一個HEX字節。

  04:PDU類型,文件頭字節,詳見文獻[2]、[4]。

  0B:主叫號碼長度。

  81:主叫號碼類型。

  3179133208F1:OA主叫號碼,也經過了處理,實際號碼為13973123801。

  00: PID,為協議標識。

  00:DCS短信息編碼類型是GSM Default Alphabet,即由7位ASCII碼移位組成8位十六進制碼(octet),其方法見表2。

 

 

  02608041003380:SCTS 短信息發送時間,02/06/08/14?:00:33.08。

  26:UDL經處理后的8位碼(octet)短信息字節長度,它小于短消息ASCII碼的長度。

  32184CF682D95E30DC2B36D3D170A0243106933D97A0243106933D97A02451068B1983492608:UD 編碼后的PDU數據,短信息內容“2002/06/08/13:48ID102OK ID103OK ID201FAIL”。

3 短信息的發送

  與接收短消息一樣,發送時也要先建立聯接,傳送一些初始化指令,然后發送短消息內容。下面是用SIEMENS S3508i發送一個短信息的例子,內容為:“2002/06/08/13:48 ID102OK ID103OK ID201FAIL”。其ASCII碼為:“323030322F30362F30382F31333A343820

    49443130324F4B2049443130334F4B2049443230314641494C20”。

    發送:ATE             {請求建立聯接}

    手機回答:OK          {已建立聯接}

    發送:AT+CMGF=0       {選擇 PDU 模式}

    手機回答:OK

    發送:AT+CSMS=0       {檢測手機是否支持SMS命令}

    手機回答:OK

    發送:AT+CMGS=52      {發送短信息, 52 octets (不包括最初9個短信息信元字節)}

    手機回答:>           {允許上傳數據,ASCII碼是($20H,$2EH)}

    發送:0891683108701305F011000B813179133208F100

    00AA2632184CF682D95E30DC2B36D3D170A0243106933D97A0243106933D97A02451068B19834926081A

    不計最初9個短信息信元字節,本短信息有52字節(104個字符)。AT+CMGS僅說明了SMSC 信息內容的長度,在收到手機回答的>符號后才發送PDU數據串,并以(CTRL^Z)結束。

  PDU數據串的內容說明如下:

  08:短信息信元SMSC(短信息中心號碼)的字節長度

  91:短信息中心號碼類型,91表明中心號碼是國際通用電話號碼。

  683108701305F0:短信息中心號碼:8613807310500。

  11:PDU SMS發送的文件頭字節。這里11指正常發送短信息,詳見文獻[1]。

  00:信息類型。這里00指讓手機自動加上主叫號碼。

  0B:被叫號碼長度。

  81:被叫號碼類型。

  3179133208F1:被叫號碼 13973123801。

  00:協議標識,詳見文獻[2]。

  00:短信息編碼類型是GSM Default Alphabet。

  AA:短信息被保留的時間為4天,其計算方法依照表3。

 

 

  26:PDU格式短信息編碼后字節長度。

  32184CF682D95E30DC2B36D3D170A0243106933D97A0243106933D97A02451068B1983492608:編碼后的PDU數據,短信息內容為:“2002/06/08/13:48ID102OK ID103OK ID201FAIL”。

  1A:ASCII碼CTRL^Z:報文結束標志。

4 應用情況及常見主要問題的解決

  筆者用MCS-51系列的單片機研制了一個手持式的數據采集產品,通過SIEMENS手機,利用GSM的SMS傳輸數據。經過在國內多個省市較大數量長期廣泛的使用,性能良好,沒有出現數據丟失的現象。證明上述設計是正確的。但在調試和試用階段也遇到了如下問題:

  (1)接口電平

手機的電纜接口電平一般是3V左右,單片機系統的工作電壓一般為2.7~5.5V,范圍較寬,為保證數據傳輸的正確,需在接口加電平限制電路,詳見圖1。

    (2)部分城市無法使用

一些城市的SMS平臺不允許使用缺省短消息服務中心號碼的協議,只需在發送的PDU數據前面幾個字節加上中心號碼即可,詳見本文發送實例。

    (3)不能接收已正確發送的短消息

  除GSM的SMS信道擁塞原因外,主要是PDU中PID字節的設置,使得收到的信息要存入SIM卡,而SIM卡已滿,故不再接收信息。改變PID的設置即可。

  (4)收不到開機前的短消息

  主要是發送數據時,對短消息有效時間VP值設置不當造成的。

 

參考文獻

1 GSM03.39 (Version6.0.0): European digital cellular telecommunications system (Phase2+);Interface protocols for the  connection of Short Message Service Centres (SMSCs) to Short Message Entities (SMEs) [S].

2 GSM03.40 (Version6.0.0):European digital cellular telecommunications system (Phase2);Technical realization of the Short Message Service Point to Point [S].

3 Short Message Pereto Pere Protocol Specifi-cationv3.4 (document version:-12-oct-1999 issue1.2) [S].

4 Digital cellular telecommunications system (Phase 2+);Use of Data Terminal Equipment-Data Circuit terminating;Equipment (DTE-DCE) Interface for Short Message Service (SMS) and Cell Broadcast Service(CBS)(GSM 07.05 version  7.0.1 Release 1998)[S]

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 色在线网 | 97影院理伦在线观看 | 中文字幕在线视频一区 | 一级aaaaaa片毛片在线播放 | 日本精品久久久免费高清 | 日本波多野结衣字幕久久 | 精品国产一区二区三区麻豆小说 | 波多野氏免费一区 | 日韩欧美一区二区三区视频 | 国产成人a大片大片在线播放 | 精品国产高清自在线一区二区三区 | 成人久久18免费网 | 亚洲欧美日韩国产综合专区 | 国产女人伦码一区二区三区不卡 | 午夜伦理片在线观看 | 黄色一级播放 | 激情伊人网 | 国产精品亚洲一区二区三区久久 | 极品美女一级毛片 | 日韩精品一区二区三区免费观看 | 黄色网址视频在线观看 | 我亲爱的朋友们免费看 | 欧美成人激情 | 午夜影视免费观看 | 日日碰狠狠添天天爽五月婷 | 伊人射 | 天天干天天拍天天射天天添天天爱 | www.99在线| 日韩资源网 | 中文字幕第7页 | 成人综合久久综合 | 亚洲综合日韩在线亚洲欧美专区 | 在线午夜影院 | 亚洲成人一区在线 | 国产网曝手机视频在线观看 | 97视频精品 | 91看片淫黄大片欧美看国产片 | 天天干天天在线 | 亚洲爆爽 | 人人狠人人透人人爱 | 国产成人精品高清在线观看99 |