新闻中心

EEPW首页 > 光电显示 > 设计应用 > 基于GSM短消息控制的智能照明节电系统设计

基于GSM短消息控制的智能照明节电系统设计

作者:时间:2009-04-03来源:网络收藏

注意单片机与MC35i串口不能直接相连,因为89C52管脚为5 V标准TTL电平,而MC35i电平较低,为3 V左右。为解决电平接口不一致的问题,同时避免板间干扰、提高通信的灵活性和可扩展性,中在单片机和模块之间加了一个MAX232电平转换电路。
下面重点论述中微处理器与之间如何实现收发。


4 分析与实现
为实现软件短信息的编辑和收发,我们有必要先分析一下的格式,然后再确定如何通过AT命令实现短消息的收发。
4.1 短消息分析
短消息的发送和接收共有三种模式:Block模式、AT命令的Text模式和AT命令的PDU模式。其中只存PDU模式可以用于中英文短消息传送,但因为有编码、解码过程,所以较Text模式复杂。由于PDU模式有很好的数据信息存储格式,并对中文有很好的支持.PDU模式在移动设备中使用最为普遍,现在各大网络公司都采用PDU模式来进行短消息的处理。
根据GSM07.05的定义,只要终端通过UART接口向GSM模块发送AT命令,就可以直接读取收到的PDU模式的短消息。PDU模式的数据表面上看是一串ASCII码,由‘O’~‘9’,‘A’~‘F’这些数字和字母组成,他们是8位字节的十六进制数。PDU数据不仅包含可显示的消息本身,还以固定格式包含很多其他消息,如SMS服务中心号码、目标号码、回复号码、编码方式和服务时间等。
目前国内汉字显示采用GB一2313编码,而GSM标准中中文编码采用UTF一8编码,因此处理短消息时需要进行中文编码的转换,才能与采用GB一2313汉字库相配合显示汉字字型。
由于UTF一8编码和GB一2313汉字库之间不存在一一对应的线性关系,因此嵌入式系统中只能采用查表的方式进行转换。下面给出一个由UTF一8编码到GB一2313编码转换的算法。
首先在存储区建立UTF一8和GB一2313两个编码表,然后进行软件解码。每次从PDU模式的短消息数据串的用户数据段取出两个字节,采用二分法快速数据查找算法,在UTF一8编码表中找到编码所对应的位置,然后在GB一2313编码表对应位置上读出短信内容相对应的GB一2313编码。相应的软件流程如图3所示。二分法的最坏查找次数为lg2(n+1),UTF一8表的长度n为7 445,所以最坏情况查找次数为13次,即一个中文编码由UTF一8到GB一2313的转换最多经过13次比较查找就可完成。这比采用简单的顺序查表快地多,大大减少了查表所花费的时间,非常适合在一般的嵌入式系统中使用。

4.2 使用AT命令实现短消息收发



评论


相关推荐

技术专区

关闭