簡訊貓程式設計的一些資料1(At指令傳送簡訊)

liuxixi發表於2016-03-28

現在正在做TC35的專案,

下面分享一下這幾天在網上找到的資料:

手機 SMS PDU 格式參考手冊 

 1.相關的GSM   AT指令  
  與SMS有關的GSM   AT指令(from   GSM07.05)如表1所示:  
  表1   相關的GSM   AT指令  
  AT   指令   功                                           能    
  AT+CMGC   Send   an   SMS   command(發出一條短訊息命令)    
  AT+CMGD   Delete   SMS   message(刪除SIM卡記憶體的短訊息)    
  AT+CMGF   Select   SMS   message   formate(選擇短訊息資訊格式:0-PDU;1-文字)    
      AT+CMGL   List   SMS   message   from   preferred   store(列出SIM卡中的短訊息PDU/text:       0/“REC   UNREAD”-未讀,1/“REC   READ”-已讀,2/“STO   UNSENT”-待發,3/“STO   SENT”-已發,4/“ALL”-全部的)    
  AT+CMGR   Read   SMS   message(讀短訊息)    
  AT+CMGS   Send   SMS   message(傳送短訊息)    
  AT+CMGW   Write   SMS   message   to   memory(向SIM記憶體中寫入待發的短訊息)    
  AT+CMSS   Send   SMS   message   from   storage(從SIN|M記憶體中傳送短訊息)    
  AT+CNMI   New   SMS   message   indications(顯示新收到的短訊息)    
  AT+CPMS   Preferred   SMS   message   storage(選擇短訊息記憶體)    
  AT+CSCA   SMS   service   center   address(短訊息中心地址)    
  AT+CSCB   Select   cell   broadcast   messages(選擇蜂窩廣播訊息)    
  AT+CSMP   Set   SMS   text   mode   parameters(設定短訊息文字模式引數)    
  AT+CSMS   Select   Message   Service(選擇短訊息服務)    
   
  對短訊息的控制共有三種模式:  
  ·   Block   Mode    
  ·   基於AT命令的PDU   Mode    
  ·   基於AT命令的Text   Mode    
  使用Block模式需要手機生產廠家提供驅動支援,目前,PDU   Mode   已取代   Block   Mode,   Text   Mode比較簡單,本文重點介紹模式PDU   Mode,以西門子公司的產品TC35T為例。  
  2.計算機與TC35T的通訊  
  (1)RS232串列埠連線  
  由於TC35T自帶RS232串列埠線,故只需將其連線到計算機串列埠即可。開啟超級終端,選擇相應的串列埠,將埠引數設定為:速率—4800、奇偶校驗位—無、資料位—8、停止位—1、流量控制—硬體。  
  (2)連線測試  
  輸入“AT”然後回車,螢幕上返回“OK”表明計算機與TC35T已連線成功,TC35T能夠正常工作。這時就可以測試各類AT命令。  
  當測試命令“AT+CMGS=?<CR>”時,如果返回“OK”標明TC35T支援該指令。該指令的完整語法如下:  
  ·   如果此時TC35T處於PDU   Mode(即“AT+CMGF?<CR>”返回“0”)    
  AT+CMGS=<length><CR>PDU   is   given<^Z/ESC>  
  如果短訊息傳送成功,則返回“OK”,並顯示資訊號:  
  +CMGS:   <mr>[,<ackpdu>]  
  如果短訊息傳送失敗,則返回如下資訊號:  
  +CMS   ERROR:   <err>  
  ·   如果此時TC35T處於Text   Mode(即“AT+CMGF?<CR>”返回“1”)    
  AT+CMGS=<da>[,toda]<CR>text   is   entered<^Z/ESC>  
  如果短訊息傳送成功,則返回“OK”,並顯示資訊號:  
  +CMGS:   <mr>[,<scts>]  
  如果短訊息傳送失敗,則返回如下資訊號:  
  +CMS   ERROR:   <err>  
  另外,由於使用的是TC35T,當有新的短訊息到來時,需要TC35T產生提示,使用指令“AT+CNMI”。該指令的完整語法如下:  
  AT+CNMI=[<mode>][,<mt>][,<bm>][,<ds>][,<bfr>]  
  如果有新的短訊息來到,則TC35T將自動返回下列提示:  
  +CMTI:   “SM”,   <index>  
  此時讀出<index>,然後用“AT+CMGR”指令即可讀出短訊息內容。  
  3.PDU資料格式分析:  
  例如,我們要將字元“Hi”字元傳送到目的地“13677328099”  
  PDU字串為:  
  08   91   683108701305F0   11   00   0D   91   3176378290F9   00   00   00   02   C834  
  ⑴08—簡訊息中心地址長度。指(91)+(683108701305F0)的長度。  
  ⑵91—簡訊息中心號碼型別。91是TON/NPI遵守International/E.164標準,指在號碼前需加‘+’號;此外還有其它數值,但91最常用。  
  91—10010001  
  BIT   No.   7   6   5   4   3   2   1   0    
  Name   1   數值型別   號碼鑑別    
   
  數值型別(Type   of   Number):000—未知,001—國際,010—國內,111—留作擴充套件;  
  號碼鑑別(Numbering   plan   identification):0000—未知,0001—ISDN/電話號碼(E.164/E.163),1111—留作擴充套件;  
  ⑶683108701305F0—簡訊息中心號碼。由於位置上略有處理,實際號碼應為:8613800731500(字母F是指長度減1)。這需要根據不同的地域作相應的修改。  
  ⑴、⑵、⑶通稱短訊息中心地址(Address   of   the   SMSC)。  
  ⑷11—檔案頭位元組。  
  11&h=00010001&b  
  BIT   No.   7   6   5   4   3   2   1   0    
  Name   TP-RP   TP-UDHI   TP-SPR   TP-VFP   TP-RD   TP-MTI    
  Value   0   0   0   1   0   0   0   1    
   
  應答路徑—TP-RP(TP-Reply-Path):0—不設定;   1—設定  
  使用者資料頭標識—TP-UDHL(TP-User-Data-Header-Indicator):0—不含任何頭資訊;   1—含頭資訊  
  狀態報告要求—TP-SPR(TP-Status-Report-Request):0—需要報告;   1—不需要報告  
  有效期格式—TP-VPF(TP-Validity-Period-Format):00—不提供(Not   present);   10—整型(標準);01—預留;   11—提供8位位元組的一半(Semi-Octet   Represented)  
  拒絕複製—TP-RD(TP-Reject-Duplicates):0—接受複製;   1—拒絕複製  
  資訊型別提示—TP-MTI(TP-Message-Type-Indicator):00—讀出(Deliver);   01—提交(Submit)  
  ⑸00—資訊型別(TP-Message-Reference)  
  ⑹0B—被叫號碼長度。  
  ⑺91—被叫號碼型別(同⑵)。  
  ⑻3176378290F9—被叫號碼,經過了位移處理,實際號碼為“13677328099”。  
  ⑹、⑺、⑻通稱目的地址(TP-Destination-Address)。  
  ⑼00—協議標識TP-PID(TP-Protocol-Identifier)  
  BIT   No.   7   6   5   4   3   2   1   0    
   
  Bit   No.7與Bit   No.6:   00—如下面定義的分配Bit   No.0—Bit   No.5;01—參見GSM03.40協議標識完全定義;10—預留;11—為服務中心(SC)特殊用途分配Bit   No.0—Bit   No.5。  
  一般將這兩位置為00。  
  Bit   No.5:0—不使用遠端網路,只是短訊息裝置之間的協議;1—使用遠端網路。  
  Bit   No.0—Bits   No.4:00000—隱含;00001—電傳;00010—group   3   telefax;00100—語音;00101—歐洲無線資訊系統(ERMES);00110—國內系統;10001—任何基於X.400的公用資訊處理系統;10010—Email。  
  ⑽00—資料編碼方案TP-DCS(TP-Data-Coding-Scheme)  
  BIT   No.   7   6   5   4   3   2   1   0    
   
  Bit   No.7與Bit   No.6   :一般設定為00;Bit   No.5:0—文字未壓縮,1—文字用GSM標準壓縮演算法壓縮;Bit   No.4:0—表示Bit   No.1、Bit   No.0為保留位,不含資訊型別資訊,1—表示Bit   No.1、Bit   No.0含有資訊型別資訊;Bit   No.3與Bit   No.2:00—預設的字母表,01—8bit,10—USC2(16bit),11—預留;Bit   No.1與Bit   No.0:00—Class   0,01—Class   1,10—Class   2(SIM卡特定資訊),11—Class   3。  
  ⑾00—有效期TP-VP(TP-Valid-Period)    
  VP   value(&h)   相應的有效期    
  00   to   8F   (VP+1)*5   分鐘    
  90   to   A7   12小時+(VP-143)*30分鐘    
  A8   to   C4   (VP-166)*1天    
  C5   to   FF   (VP-192)*1   周    
   
  ⑿02—使用者資料長度TP-UDL(TP-User-Data-Length)  
  ⒀C834—使用者資料TP-UD(TP-User-Data)“Hi”  
  4.短訊息編碼  
  設需要傳送的短訊息內容為“Hi”,使用的GSM字符集為7位編碼。首先將字元轉換為7位的二進位制,然後,將後面字元的位呼叫到前面,補齊前面的差別。例如:H翻譯成1001000,i翻譯成1101001,顯然H的二進位制編碼不足八位,那麼就將i的最後一位補足到H的前面。那麼就成了11001000(C8),i剩下六位110100,前面再補兩個0,變成00110100(34),於是“Hi”就變成了兩個八進位制數   C8   34。  
  5.短訊息的傳送與接收案例  
  鑑於TC35(T)支援TEXT格式,我們在試驗中主要測試該格式。  
  (1)設定短訊息中心  
  AT+CSCA="+8613800731500"(短訊息中心);    
  (2)設定短訊息傳送格式  
  AT+CMGF=1   (1-TEXT;   0-PDU);    
  (3)傳送短訊息(短訊息內容為“test”)  
  AT+CMGS="13508485560"(目的地址)   <cr>  
  >   test   ^z   ;    
  (4)設定短訊息到達自動提示:   設定短訊息到達提示當短訊息被接收,將獲取指令:   +CMTI:"SM",INDEX(資訊儲存位置)  
  AT+CNMI=1,1,0,0,1();  
  (5)獲取短訊息內容(Once   more),假設INDEX=8。  
  AT+CMGR=8  
  返回資訊如下:  
  +CMGR:   "REC   UNREAD","+8613508485560",,"01/07/16,15:37:28+32",Once   more  
  6.注意事項  
  (1)短訊息中心一般不會改動,如果短訊息中心號碼改動,在使用“AT+CSCA”語句時,記住TC35要重新啟動,否則TC35不能正常工作(TC35T不存在此問題)。  
  (2)某些SIM卡帶有密碼,啟動時需要輸入密碼。 

相關文章