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