資源描述:
《接收和發(fā)送的短信的格式》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、短信格式(sms)以及編碼總結(jié)1.一短信貓操作分為三種模式BlockPdu和Text2.二短信傳送有三種編碼7位8位UniCode3.三地址編碼4.四編碼示例5.五接收短消息6.附錄關(guān)于PDU模式發(fā)送短信短信開發(fā)指通過串口at命令驅(qū)動短信貓進行短信發(fā)送和接收操作。??AT命令:AT命令是驅(qū)動短信設(shè)備的標準工業(yè)命令,除了業(yè)界的標準之外,每個廠商可能會對其進行擴展,不過一般來說,標準命令應該夠用,我在這里用的是西門子MC39i,有專門的AT命令文檔。?一、短信貓操作分為三種模式:Block、Pdu和Text1、Block模式基本
2、已經(jīng)被Pdu模式取代,沒有具體研究。2、Text模式比較簡單,但是支持的設(shè)備不是很全,而且不能實現(xiàn)中文。AT+CGMF=1AT+CGMS=“13612344321”,129>HelloWorld!<^Z>?3、Pdu模式Pdu編碼主要包括兩個主要的部分,一是pdu串的整體數(shù)據(jù)格式,分別因為發(fā)送信息串和接收信息串而有區(qū)別,二是pdu中文本部分的編碼,分別因為字符集而不同。我們也可以這樣來理解這個pdu編碼的格式,sms相當于一個協(xié)議棧,最簡單的協(xié)議棧:?根據(jù)gsm03.40規(guī)范,sms協(xié)議包括以下幾層:1、SM
3、-AL:應用層。這個部分就是數(shù)據(jù)部分。2、SM-TL:傳輸層。我們可以清楚的看到這里描述了主要的短信內(nèi)容,包括發(fā)送號碼,接收號碼,信息類型,編碼,數(shù)據(jù)報長度等等,這也是我們編程主要要面對的問題。3、SM-RL:中繼層。這個指的是短信在網(wǎng)關(guān)之間中繼需要的協(xié)議。4、SM-LL:鏈路層。從上述描述中我們可以清楚的看到,我們編程主要集中于傳輸層。???二、短信傳送有三種編碼:7位,8位,UniCode?1、英文7位編碼這是gsm的默認編碼方式由于這樣的移位,我們可以看到我們能發(fā)的最多英文字符等于:140*8/7=160。2、數(shù)據(jù)8位
4、編碼8-bit編碼通常用于發(fā)送數(shù)據(jù)消息,比如圖片和鈴聲等;3、中文pdu編碼發(fā)送中文時,必須用UCS2(utf-16)進行編碼,最多可以發(fā)140/2=70個漢字。UniCode編碼轉(zhuǎn)換也比較簡單,以中文為例,一個中文字符是兩個字節(jié),直接對高位字節(jié)和低位字節(jié)進行十六進制轉(zhuǎn)換就可以了。如“歡迎”,UniCode編碼是6B228FCE,這同時也就是轉(zhuǎn)換的結(jié)果,如果發(fā)送的串中有英文字符,那么在前面補全00,以保證一個字符對應兩個字節(jié)。?4、PDU串的用戶信息(TP-UD)段最大容量是140字節(jié),所以在這三種編碼方式下,可以發(fā)送的短消
5、息的最大字符數(shù)分別是160、140和70。這里,將一個英文字母、一個漢字和一個數(shù)據(jù)字節(jié)都視為一個字符。?三、地址編碼短信發(fā)送中都會涉及到短信地址的問題,他們的編碼規(guī)則是一致的,簡單來說就是BCD8421碼編碼。如:08916808501505F0,08:地址長度,(號碼類型+號碼長度)/2的十六進制表示91:號碼類型683108501505F0:號碼,實際號碼應為:+8613805515500,號碼處理方法為,如果為+86開始,將+號去掉,然后判斷是否為偶數(shù),不是在末尾補F,然后將奇數(shù)位和偶數(shù)位互換?四、編碼示例1、發(fā)送信息
6、的PDU串:用手機寫一條短信息,發(fā)送手機號碼為13605696031,信息內(nèi)容為“HelloWorld!”。通過執(zhí)行AT+CMGL=2可以讀出此條信息。AT+CMGL=2{讀未發(fā)短信息}+CMGL:1,2,,24{1表示信息個數(shù),2表示未發(fā)信息,24表示信息總?cè)萘縸0891683108501505F011000B813106656930F10000FF0BE8329BFD06DDDF723619OK下面分析這條信息:08短信息中心地址長度。(短信息中心號碼類型+短信息中心號碼長度/2的十六進制表示)91短信息中心號碼類型,9
7、1是TON/NPI。TON/NPI遵守International/E.164標準,指在號碼前需加‘+’號;此外還可有其他數(shù)值,但91最常用。683108501505F0短信息中心號碼,是所使用的服務(wù)中心地址。由于位置上略有處理,實際號碼應為:8613805515500(字母F意指長度減1),這是作者所在地GSM短信息中心的號碼。(號碼處理方法為,如果為+86開始,將+號去掉,然后判斷是否為偶數(shù),不是在末尾補F,然后將奇數(shù)位和偶數(shù)位互換)11文件頭字節(jié)(headerbyte,是一種bitmask)。這里11指正常地發(fā)送短信息。
8、00信息參考號。(TP-MR)0D被叫號碼長度。被叫號碼長度的十六進制表示。81被叫號碼類型。3106656930F1被叫號碼,也經(jīng)過了移位處理,實際號碼為13605696031。00協(xié)議標識(TP-PID),是普通GSM類型,點到點方式00用戶信息編碼方式(TP-DCS),7-bit編碼