新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > PDU模式的短信息編/解碼方法與實現

        PDU模式的短信息編/解碼方法與實現

        作者: 時間:2008-03-17 來源:網絡 收藏
        公共無線移動通信網(G網和C網)幾乎覆蓋全球的每一個角落,而短又是公共無線移動通信網絡的基本業務之一。利用現有的網絡資源,通過短技術,可以開發出多種測控產品,對遠端控制設備實時性監測和控制。短技術應用于數據傳輸量不大和傳輸速度要求不是很高的測控系統中,每條短信息可以傳送160個7位編碼數據或140個8位編碼數據,或70個Unicode碼。因此,可以依照短信息格式,將用戶數據組成數據包,通過GSM網絡短信息數據傳輸。本文通過對的短信息結構中用戶數據的詳細分析,得出了編/規律,給出單片機的子程序。


        1 短信息與分析
        SMS是由ETSI組織制定的一個規范。短信息格式有兩種:TEXT和PDu模式。TEXT模式是基于ASCII碼形式字符的一種結構模式,每一條命令很容易讀懂,實現起來電十分容易;缺點是不能收發中文短信,模式也是基于十六進制形式字符的,數據和代碼都經過編碼,所以無法直接讀懂;但模式同時支持中英文兩種短信。PDU模式收發短信包括3種編碼:7位、8位和UCS2編碼。7位編碼用于發送普通的ASCII字符,8位編碼用于發送數據信息,UCS2編碼用于發送Unicode字符。PDU模式在GSM移動設備中使用得最為普遍。
        在PDU模式中,當使用7位編碼時,最多可發160個字符;使用8位編碼時,最多可發140個字符;使用16位編碼時,最多可發70個漢字字符。因此在發送時需要將8位(HEX)字節數據編碼成8位(OCT)字節發送;接收時需要將8位(OCT)字節成7位(ASCII)字節。
        PDU模式短信息結構中,較難實現的是對用戶數據部分的編/。例如,要發送數據為“123456789abc”,經過編碼后變成“31 D9 8C 56 B3 DD 70 B9 B0 78 OC”。


        2 編碼分析
        在這里規定.對于一個8位字符最右邊為第0位,最左邊為第7位。設需要發送的短信息內容為“123456789abc”,編碼后變為“3l D9 8C 56 B3 DD 70 B9BO 78 0C”。使用的GSM字符集為7位編碼。需要注意的是在每次操作之前,都要將原始數據保存好。首先,將第1個字符轉換為7位的二進制,將第1個字符右移0位。然后,將第2個字符的最右邊的第O位加到第1個字符的第7位,形成一個8位字符,第2個字符的最右邊的第1位通過右移1位方式銷毀。之后,將第2個字符轉換為7位的二進制,將第2個字符右移1位;將第3個字符最右邊的2位(第l、0位)填加到第2個字符的第7、6位,形成一個8位字符;第3個字符的最右邊的2位通過右移2位方式銷毀。其他字符依此類推。當第8個字符需要第9個寧符全部補位時,還不夠,就從第10個字符取最右邊的第0位加到第8個字符的第7位。依次循環,當最后一個字符沒有下一個字符給它填位時,就填0占位,完成數據編碼。
        可以形成表達式:(所有移位方式都選用帶進位位(C=0)循環移位,也就是被移入位均為0)

        A(要編碼的字符)=當前字符右移m次取自己保留的內容+后一個字符左移n次取需要給前一個字符填充的內容。
        B(編碼移位次數)=m+n=7(7≥m≥0;7≥n≥O)。m為右移次數;n為左移次數。


        3 解碼分析
        設收到的短信息內容為“31 D9 8C 56 B3 DD 70 B9B0 78 OC”,解碼后變為“123456789abc”。解碼過程是將第1個字符的第7位移走,保存起來,補給第2字符的第O位。第1個字符左移O位,第1個字符的第7位銷毀,形成一個新的7位ASCII字符;第2個字符第7、6位移走,保存起來,提供給第3個字符的第2、1位,第2個字符的第7、6位銷毀,第2個字符左移1位,將前一個字符回填內容添加到第2個字符的第O位,從而又形成一個新的7位ASCII字符,依此類推。須注意的是,當第8個字符提供第9個字符全部7位時,形成第9個字符,同時第7位提供給第1O個字符的最右邊第O位。依次循環,形成解碼數據。

        可以形成表達式:
        A(要解碼字符)一前一個字符右移M次取需要給后一個字符回填內容+當前字符左移N次取自己保留的內容。
        B(解碼移位次數)=M+N=8(8≥M≥0;8≥N≥0)。M為右移次數;N為左移次數。
        例如:


        粗體部分在編碼發送時用于提供給前一個字符借用,在解碼接收時由前一個字符回填給本字符;斜體部分是本字符需要保留的內容。

        4 單片機子程序實現
        主控制器采用華邦W77E58型號單片機,短信息發送與接收模塊采用Motorola公司的G20型號,單片機子程序編寫采用MCS51匯編語言。以下所列代碼是實際應用工程截取的主要部分,經過實際驗證,且一直應用于“高速GSM型緊急電話系統”中。(編碼和解碼程序見本刊網站www.mesnet.com.cn――編者注。)


        結語
        在短信息結構中,對用戶數據轉化成PDU模式編/解碼比較麻煩。有了以上對編/解碼的分析思路,實現起來就很容易。該部分可以通過C或其他形式語言代碼編寫,形成子程序塊,嵌入劍其他應用系統中。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 九江县| 浦江县| 梁平县| 固始县| 新宾| 静宁县| 财经| 若尔盖县| 赤水市| 竹溪县| 融水| 杭州市| 革吉县| 丹阳市| 京山县| 定结县| 乌审旗| 尚志市| 衡东县| 化州市| 波密县| 旬邑县| 永平县| 门源| 灵武市| 香港 | 瑞安市| 桃园县| 台东市| 迁安市| 威宁| 呈贡县| 内黄县| 江山市| 额济纳旗| 黄大仙区| 阳西县| 黔东| 商城县| 澎湖县| 南漳县|