繁体中文
高级搜索
 
首页 | 电子技术应用 | 行业最新动态 | 行业最新产品 | 软件资料下载 | 电路图纸欣赏 | 博客文章精选 | 电子精品论坛 | 电子技术贴吧

当前位置:首页 >> 电子技术应用 >> 网络与通信-应用 >> PDU模式的短信息编/解码方法与实现
PDU模式的短信息编/解码方法与实现
作者:大连恒为电子有限公司 常君   来源:单片机及嵌入式系统应用 发表时间:2008-06-04  字号:  

 

公共无线移动通信网(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为左移次数。
例如:


粗体部分在编码发送时用于提供给前一个字符借用,在解码接收时由前一个字符回填给本字符;斜体部分是本字符需要保留的内容。

4 单片机子程序实现
主控制器采用华邦W77E58型号单片机,短信息发送与接收模块采用Motorola公司的G20型号,单片机子程序编写采用MCS51汇编语言。以下所列代码是实际应用工程截取的主要部分,经过实际验证,且一直应用于“高速GSM型紧急电话系统”中。(编码和解码程序见本刊网站www.mesnet.com.cn——编者注。)


结语
在短信息结构中,对用户数据转化成PDU模式编/解码比较麻烦。有了以上对编/解码的分析思路,实现起来就很容易。该部分可以通过C或其他形式语言代码编写,形成子程序块,嵌入剑其他应用系统中。


!注意:如果您发现此文章出现影响您的阅读的状况,请从浏览器地址栏里复制本文的链接到留言本报告给站长解决!
  • 上一篇: Modbus协议下单片机与eView触摸屏的通信方法
  • 下一篇: 嵌入式PROFIBUS-DP从站通信接口的设计

  • >> 联系我们请给我们留言·留言本
    本站所有提供的信息软件资料均来自网络,版权及著作权归原作者所有,如果无意中侵犯了您的相关权利或触及法律法规,请给我们留言, 我们将在24小时内删除。
      浙ICP备05071687号  电子技术精品网