<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 用單片機控制手機收發(fā)短信息

用單片機控制手機收發(fā)短信息

作者: 時(shí)間:2007-03-09 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:介紹用MCS-51系列控制手機收發(fā)短信息的原理、硬件電路、PDU數據格式和符合GSM07.05協(xié)議要求的短信息發(fā)送/接收程序,同時(shí)給出了一個(gè)應用實(shí)例。關(guān)鍵詞: 短信息 PDU GSM 接口 GSM(Global System for Mobile communication)系統是目前基于時(shí)分多址技術(shù)的移動(dòng)通訊體制中比較成熟、完善、應用最廣泛的一種系統。目前已建成的覆蓋全國的GSM數字蜂窩移動(dòng)通信網(wǎng),是我國公眾移動(dòng)通信網(wǎng)的主要方式。主要提供話(huà)音、短信息、數據等多種業(yè)務(wù)?;贕SM短消息功能可以做成傳輸各種檢測、監控數據信號和控制命令的數據通信系統,能廣泛用于遠程監控、定位導航、個(gè)人通信終端等。由于公眾GSM網(wǎng)絡(luò )在全球范圍內實(shí)現了聯(lián)網(wǎng)和漫游,建立上述系統不須再組建專(zhuān)用通信網(wǎng)絡(luò ),所以具有實(shí)時(shí)傳輸數據功能的短消息應用將得到迅速普及。 目前,人們設計的各類(lèi)DTE設備基礎上以微處理器為核心,帶有RS232/RS485等通信接口,在物理層上很容易實(shí)現與GSM設置(如手機等)的連接。但對SMS協(xié)議的研究文獻卻較少,特別是用控制手機的SMS(Short Message Service)收發(fā)的研究更少。筆者在用單片機設計基于GSM的SMS數據采集器時(shí),對怎樣用單片機控制手機收發(fā)短信息進(jìn)行了探討。1 串口控制SMS的工作原理 單片機與手機一般采用串行異步通信接口,具有紅外和通信電纜兩種連接方式,通信速度可設定,通常為19200bps。采用紅外接口的優(yōu)點(diǎn)是單片機系統與手機電氣隔離,相互不干擾,接口各自獨立,使用方便;缺點(diǎn)是通信距離較短,紅外傳播的方向性對接口相對位置有要求。采用電纜連接時(shí),數據傳輸的可靠性較好;其主要缺點(diǎn)是接口的電氣參數不兼容,設計不當時(shí)會(huì )對手機的通信質(zhì)量產(chǎn)生影響。筆者經(jīng)過(guò)實(shí)踐設計的接口電平轉換電路如圖1。 GSM的短信息業(yè)務(wù)SMS利用信令信道傳輸,這是GSM通信網(wǎng)所特有的。它不用撥號建立連接,把要發(fā)的信息加上目的地址發(fā)送到短信息服務(wù)中心,經(jīng)短消息服務(wù)中心完成存儲后再發(fā)送給最終的信宿。所以當目的GSM終端沒(méi)開(kāi)機時(shí)信息不會(huì )丟失。每個(gè)短消息的信息量限制為160字節。 現在市場(chǎng)上大多數手機均支持GSM07.05規定的AT指令集。該指令集是ETSI(歐洲通信技術(shù)委員會(huì ))發(fā)布的,其中包含了對SMS的控制。利用GSM手機的串行接口,單片機向手機收發(fā)一系列的AT命令,就能達到控制手機收發(fā)SMS的目的。ETSI的GSM07.05中用于SMS收發(fā)控制的主要AT命令見(jiàn)表1。表1 常用AT指令 GSM07.05Function(功能)ATE0RESETAT+CSMS選擇短信息服務(wù)AT+CPMS選擇短信息內存AT+CMGF選擇短信息格式AT+CSCA短信息中心地址AT+CNMI顯示新收到的短信息AT+CMGR讀短信息AT+CMGS發(fā)送短信息AT+CMGL列出SIM卡中短信息AT+CMSS從SIM內存中發(fā)短信息AT+CMGW向SIM內存中寫(xiě)入待發(fā)短信息AT+CMGD刪除SIM內存中的短信息AT+CSCB選擇蜂窩廣播信息GSM手機通過(guò)異步通信接口實(shí)現對SMS的控制共有三種接入協(xié)議:Block Mode;基于A(yíng)T命令的TextMode;基于A(yíng)T命令的PDU Mode。PDU模式是發(fā)送或接收手機SMS信息的一種方法,短信息正文經(jīng)過(guò)十六進(jìn)制編碼后被傳送。目前,PDU Mode應用最為廣泛,基本上全國所有的電信局都提供支持PDU Mode的短消息業(yè)務(wù)。有些地址則不支持Text Mode和Block Mode,這就限制了這兩種接入協(xié)議的應用,而且PDU Mode已有取代Block Mode的趨勢。為了保證系統具有廣泛的適用性,本文采用PDU模式收發(fā)SMS。 PDU相當于一個(gè)數據包,它由構成消息(SMS)的信息組成。作為一種數據單元,它必須包含源/目的地址、保護(有效)時(shí)間、數據格式、協(xié)議類(lèi)型和正文,正文長(cháng)度可達140字節,它們都以十六進(jìn)制表示。PDU結構根據短消息由移動(dòng)終端發(fā)起或以移動(dòng)終端為目的而不同。 當由移動(dòng)終端發(fā)起時(shí),PDU的格式為: SMSCPDU類(lèi)型MRDAPIDDCSVPUDLUD(0~140octed)當以移動(dòng)終端為目的時(shí),PDU的格式為: SMSCPDU類(lèi)型OAPIDDCSSCTSUDLUD(0~140octed)其中,SMSC為短消息業(yè)務(wù)中心地址,DA/OA為源/目的地址,PID為協(xié)議識別,DCS為數據編碼,UDL為用戶(hù)數據長(cháng)度,UD為用戶(hù)數據,VP為有效時(shí)間,MR指明是發(fā)出信息,SCTS指明短消息到達業(yè)務(wù)中心的時(shí)間。 2 PDU格式下短信息的接收 根據設置不同,手機將收到的短消息保存在緩存單元或存入SIM卡,單片機從手機中接收短消息實(shí)質(zhì)上就是從SIM或緩存中讀出信息。這主要利用AT+CMGR和AT+CMGL兩條指令來(lái)完成,其工作過(guò)程見(jiàn)圖2。 由于不同的廠(chǎng)商對AT指令集的解釋代碼和響應信息不一樣,所以單片機首先要確認能否與手機建立起通信,一般用ATE指令完成此確認;然后用AT+CMGF指令選定短消息的數據格式;在收到手機的正確回答反以AT指令完成讀出功能。一般用AT+CMGL讀取以前的信息,在收到手機的RING(振鈴)數據時(shí),用AT+CMGR讀取實(shí)時(shí)信息。 以下是筆者設計的物流數據采集系統中用到的接收SMS的一個(gè)實(shí)例,它說(shuō)明了PDU模式的應用。單片機發(fā)送和接收(手機回答)均為ASCII碼。所用手機為SIEMENS S3508i。 操作過(guò)程如下({}內為注釋?zhuān)? 發(fā)送:ATE 手機回答:OK {已建立聯(lián)接} 發(fā)送:AT+CMGF=0 {選用PDU格式} 手機回答:OK {允許選擇PDU格式} 發(fā)送:AT+CMGL=2 {列出已有的短信息} 手機回答:+CMGL:1,2,,24{1表示信息個(gè)數,2表示未發(fā)信息,24表示信息總容量} 0D71683108370105F004000D81683179133208F10000026080410033802632184CF682D 95E0DC2B36D3D170A0243106933D97A0243106933D97A02451068B1983492608 OK 以上這組PDU格式的十六進(jìn)制字符串,不但包含了短消息的內容,同時(shí)包含了發(fā)送者的手機號碼、短信息中心號碼、短消息發(fā)送時(shí)間等。 下面對信息內容進(jìn)行分析: 0D:短信息中心地址(號碼)長(cháng)度。 91:短信息中心號碼類(lèi)型,91是TON/NPI。TON/NPI遵守International/E.164標準,指在號碼前需加"+"號;此外還可直有其他數值,但91最常用。 683108370105F0:SMSC 短信息所使用的服務(wù)中心號碼13807310500。它經(jīng)過(guò)十六進(jìn)制以字節為單位的高低半字節換位處理,號碼是奇數的添F,構成一個(gè)HEX字節。 04:PDU類(lèi)型,文件頭字節。 0B:主叫號碼長(cháng)度。 81:主叫號碼類(lèi)型。 3179133208F1:0A主叫號碼,也經(jīng)過(guò)了處理,實(shí)際號碼為13973123801。 00:PID,為協(xié)議標識。 00:DCS短信息編碼類(lèi)型是GSM Default Alphabet,即由7位ASCII碼移位組成8位十六進(jìn)制碼(octet),其方法見(jiàn)表2。 1sthexB0A6A5A4A3A2A1A02ndhexC1C0B6B5B4B3B2B13rdhexD2D1D0C6C5C4C3C24thhexE3E2E1E0D6D5D4D35thhexF4F3F2F1F0E6E5E46thhexG5G4G3G2G1G0F6F56thhexH6H5H4H3H2H1H0G602608041003380:SCTS短信息發(fā)送時(shí)間,02/06/08/14:00:33.08。 26:UDL經(jīng)處理后的8位碼(octet)短信息字節長(cháng)度,它小于消息ASCII碼的長(cháng)度。 32184CF682D95E30DC2B36D3D170A0243106933D97A0243106933D97A02451068B1983492608:UD 編碼后的PDU數據,短信息內容“2002/06/08/13:48ID102OKID103OK ID201FAIL”。 3 短信息的發(fā)送 與接收短信息一樣,發(fā)送時(shí)也要先建立聯(lián)接,傳送一些初始化指令,然后發(fā)送短消息內容。下面是用SIEMENS S3508i發(fā)送一個(gè)短信息的例子,內容為:“2002/06/08/13:48 ID102OK ID103OK ID201FAIL”。其ASCII碼為:“32030322F30362F30382F31333A34382049443130324F4B 2049443130334F4B2049443230314641494C20”。 發(fā)送:ATE {請求建立聯(lián)接} 手機回答:OK {已建立聯(lián)接} 發(fā)送:AT+CMGF=0 {選擇PDU模式} 手機回答:OK 發(fā)送:AT+CSMS=0{檢測手機是否支持SMS命令} 手機回答:OK 發(fā)送:AT+CMGS=52{發(fā)送短信息,52 octets(不包括最初9個(gè)短信息元字節)} 手機回答:>{允許上傳數據,ASCII碼是($20H,$2EH)} 發(fā)送:0891683108701305F011000B813179133208F10000AA2632184CF682D95 E30DC2B36D3D170A0243106933D97A0243106933D97A02451068B19834926081A 不計最初9個(gè)短消息信元字節,本短信息有52字節(104個(gè)字符)。AT+CMGS僅說(shuō)明了SMSC信息內容的長(cháng)度,在收到手機回答的>符號手才發(fā)送PDU數據串,并以(CTRL^Z)結束。 PDU數據串的內容說(shuō)明如下: 08:短信息信元SMSC(短信息中心號碼)的字節長(cháng)度 91:短信息中心號碼類(lèi)型,91表明中心號碼是國際通用電話(huà)號碼。 683108701305F0:短信息中心號碼:8613807310500。 11:PDU SMS發(fā)送的文件頭字節。這里11指正常發(fā)送短信息。 00:信息類(lèi)型。這里00指讓手機自動(dòng)加上主叫號碼。 0B:被叫號碼長(cháng)度。 81:被叫號碼類(lèi)型。 3179133208F1:被叫號碼13973123801。 00:協(xié)議標識。 00:短信息編碼類(lèi)型是GSM Default Alphabet。 AA:短信息被保留的時(shí)間為4天,其計算方法依照表3。 VP值短消息有效時(shí)間長(cháng)度0~143(VP+1)%26;#215;5分鐘144~16712時(shí)+(VP-143)%26;#215;30分168~1961天%26;#215;(VP-166)197~2551周%26;#215;(VP-192)26:PDU格式短信息編碼后字節長(cháng)度。 32184CF682D95E30DC2B36D3D170A0243106933D97A0243106933D 97A02451068B1983492608:編碼后的PDU數據,短信息內容為“2002/06/08/13: 48ID102OKID103OK ID201FAIL”。 1A:ASCII碼CTRL^Z:報文結束標志。 4 應用情況及常見(jiàn)主要問(wèn)題的解決 筆者用MCS-51系列的單片機研制了一個(gè)手持式的數據采集產(chǎn)品,通過(guò)SIMEENS手機,利用GSM的SMS傳輸數據。經(jīng)過(guò)在國內多個(gè)省市較大數量長(cháng)期廣泛的使用,性能良好,沒(méi)有出現數據丟失的現象。證明上述設計用,性能良好,沒(méi)有出現數據丟失的現象。證明上述設計是正確的。但在調試和試用階段也遇到了如下問(wèn)題: (1)接口電平 手機的電纜接口電平一般是3V左右,單片機系統的工作電壓一般為2.7~5.5V,范圍較寬,為保證數據傳輸的正確,需在接口加電平限制電路,詳見(jiàn)圖1。 (2)部分城市無(wú)法使用 一些城市的SMS平臺不允許使用缺省短消息服務(wù)中心號碼的協(xié)議,只需在發(fā)送的PDU數據前面幾個(gè)字節加上中心號碼即可,詳見(jiàn)本文發(fā)送實(shí)例。 (3)不能接收已正確發(fā)送的短消息 除GSM的SMS信道擁塞原因外,主要是PDU中PID字節的設置,使得收到的信息要存入SIM卡,而SIM卡已滿(mǎn),故不再接收信息。改變PID的設置即可。 (4)收不到開(kāi)機前的短消息 主要是發(fā)送數據時(shí),對短消息有效時(shí)間VP值設置不當造成的。

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>