PDU模式的短信息7位码编/解码方法与实现

作者:fly 发布于:2014-7-1 14:36 分类:嵌入式

公共无线移动通信网(G网和C网)几乎覆盖全球的每一个角落,而短信息又是公共无线移动通信网络的基本业务之一。利用现有的网络资源,通过短信息技术,可以开发出多种测控产品,实现对远端控制设备实时性监测和控制。短信息技术应用于数据传输量不大和传输速度要求不是很高的测控系统中,每条短信息可以传送160个7位编码数据或140个8位编码数据,或70个Unicode码。因此,可以依照短信息格式,将用户数据组成数据包,通过GSM网络实现短信息数据传输。本文通过对PDU模式的短信息结构中用户数据的详细分析,得出了编/解码规律,给出单片机实现的子程序。



1 短信息模式与分析

   SMS是由ETSI组织制定的一个规范。短信息格式有两种:TEXT模式和PDu模式。TEXT模式是基于ASCII码形式字符的一种结构模式,每一条命令很容易读懂,实现起来电十分容易;缺点是不能收发中文短信,PDU模式也是基于十六进制形式字符的,数据和代码都经过编码,所以无法直接读懂;但PDU模式同时支持中英文两种短信。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为左移次数。

发表评论:

 
Powered by emlog sitemap