当前位置:首页 > 通信技术 > 通信技术
[导读]提出一种在嵌入式系统中实现短消息实时处理的方法,用ATmegal28单片机控制GSM模块,通过设置发送端和接收端的参数配置,使短消息不经过SIM卡而直接发送至单片机。

摘  要:提出一种在嵌入式系统中实现短消息实时处理的方法,用ATmegal28单片机控制GSM模块,通过设置发送端和接收端的参数配置,使短消息不经过SIM卡而直接发送至单片机。短消息格式为PDU方式,增加了通用性。利用ATmegal28快速处理能力,结合状态机的程序设计方法,在接收程序中解析出必要的信息,从而实现短消息的快速处理。
关键词:ATmegal28 短消息 实时处理

引 言
    GSM数字蜂窝移动通信技术已得到成熟而广泛的应用,目前已建成的覆盖全国的GSM数字蜂窝移动通信网,是我国公众移动通信网的重要方式。它能提供话音、短消息、数据等多种业务。短消息服务是GSM网络的一项重要业务,在远距离监控、数据采集、GPS定位、无线报警、缴费通知、车辆调度等领域有着广泛的应用。
 
    GSM模块通常都提供UART串行接口,因此很容易和单片机在物理层上互联。使用符合GSM07.05和GSM07.07标准的AT指令集,可以使GSM模块方便地完成短消息接收/发送等各种操作。其通信框图如图1所示。


    移动设备ME主要负责与GSM网络进行无线通信,终端适配器TA负责ME与外部终端设备TE的信息交换,AT指令就是在TA与TE之间传送的。TE可以是PC,或者是单片机系统,通过AT指令与ME进行信息交互。现在市场上的GSM模块,如TC35、FALCOM等,都把ME和TA集成在一起,这样整个通信就变成了TE与GSM模块之间的通信了。

    一般地,GSM模块在处理短消息时,采用一问一答的信息交互方式,这比较符合AT指令集的精神。但在实际应用中,发现这种方法存在一定的缺点:模块接收到短消息并存储起来,用户再用查询方式,发送指令“AT+CMGL”或“AT+CMGR”,使短信传送到TE,这中间会有一定的延时。另外,由于SIM卡容量有限,要保证短消息及时准确地接收,还要经常删除SIM卡中的短消息,这样多次的读写操作,势必会影响SIM卡的寿命。因此,有必要进行一些软件设置,使短消息不通过SIM卡,而直接发送至终端设备。本文给出一种在嵌入式系统中实时处理短消息的实现方法,当移动设备GSM模块接收到短消息时,直接将消息转发到终端设备,提高系统的响应速度和处理效率。

1 硬件接口实现
    一般,GSM无线通信控制终端采用标准的GSM模块进行二次开发,目前市场上很多,如TC35、FALCOM、WISM03等。它们都具备GSM无线通信的全部功能,支持GSM07.05,GSM07.07所定义的AT指令集。在本设计中,采用的GSM通信模块为FALCOMC2D,单片机使用的是Atmel公司的高速8位处理器AT-megal28。ATmegal28内集成有4 KB的RAM,4 KB的EEPROM,128 KB的Flash,以及2个UART串行接口等。其高速和大容量RAM的特性,为处理短消息这样的大数据包提供了便利;同时,节省了外围器件,使得硬件结构简化,提高系统可靠性。中文液晶屏用来显示接收到的中英文短信。系统的硬件接口框图如图2所示。


2 系统参数设置
    短消息的发送和接收控制模式有三种:Block模式、PDU模式和Text模式。使用Block模式需要手机生产厂家提供驱动支持。目前,PDU模式已取代Block模式,而
Text模式不支持中文。因此,为了系统的通用性,兼容中英文短消息的发送接收,本系统使用PDU模式来处理短消息。

    在进行系统设置前,先简要说明一下短消息类(class)的概念:根据指定存储的位置,短消息分为classO~3四个类,也可以不指定类别(no class),由移动设备按默认设置进行处理,存储到内存或者SIM卡中。在TPDU的TP-DCS字节中,当bit7~bit4为00xl、1111时,bit1~bit0指示消息所属类。

    00——ctass O,可直接显示。
    01——class 1,默认储存在ME内存中。
    02——class 2,储存在SIM卡中。
    03——class 3,可直接传输到终端设备TE。

    默认的短消息存在SIM卡中,无类别的短消息通常也存在SIM卡中。

    GSM Modem一般都支持一条“AT+CNMI”指令,用于设定当有某类短消息到达时,如何处理它——只储存在指定的内存(易失的/非易失的)中;先储存后通知TE;直接转发到TE,等等。

“AT+CNMI'’指令语法为:
AT+CNMI=<mode>,<mt>,<bm>,<ds>,<bfr>

①<mode>控制通知TE的方式。
    O——先将通知缓存起来,再按照<mt>的值进行发送。
    l——在数据线空闲的情况下,通知TE,否则,不通知TE。
    2——数据线空闲时,直接通知TE;否则先将通知缓存起来,待数据线空闲时再行发送。
    3——直接通知TE。在数据线被占用的情况下,通知TE的消息将混合在数据中一起传输。

②<mt>设置短消息存储和通知TE的内容。
    O——接收的短消息储存到默认的内存位置(包括class 3),不通知TE。
    1——接收的短消息储存到默认的内存位置,并且向TE发出通知(包括class3)。通知的形式为:
    +CMTI:”SM”,<index>
    2——对于class 2短消息,储存到SIM卡,并且向TE发出通知;对于其他class,直接将短消息转发到TE:
    +CMT:[<alpha>],<length><CR><LF><pdu>(PDU模式)或者+CMT:<oa>,[<alpha>,]<scts>[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]<CR><LF><data>(text模式)
    3——对于class 3短消息,直接转发到TE,同<mt>=2;对于其他class,同<mt>=l。
③bm、ds、bfr的含义,请参考相关标准文档。一般不需要去关心它们,设置为0即可。

    综合以上分析,若使短消息不经过SIM卡,直接发送至TE,可以设置:
    AT+CNMI=2,2,0,0,0

    但是这样还有一个问题,对于class 2的短信,还是会存入SIM卡中,并发送+CMTI:”SM”,<index>。那么,接收程序需要处理短信通知和内容两种情况,增加了复杂性。如果发送方也由程序控制,可以只发no class和class1的短信。这里选用no class的配置。PDU模式下,令TP—DCS的bit7~bit4为00x0,即可设置发送的短信为no class。通常用手机发送的短信,也是无类别的。
 
    通信时,发送接收双方要统一短信格式。在发送方设置AT+CMGF=0,确定短信发送格式为PDU方式。在接收方设置:
    AT+CMGF=O //短信接收格式为PDU方式
    AT+CSMS=0

    如果AT+CSMS=1,接收到短信时,TE需在一定的时间内发送反馈消息至模块;若超时,<mode>和<mt>的值会强制复位到0。那么,再有新的短信将不能被正确处理,需要用“AT+CNMI'’指令重新设置参数才行。这增加了程序处理的复杂性。AT+CSMS=O时,省去了这些麻烦。

3 PDU模式下的中英文短信接收实现
    系统参数设置好以后,当接收到新的短信时,GSM模块直接转发至TE的格式如下所示:
+CMT:,230891683108200105F0040BAl31193887421:F5000850802251739120044F60597D

    “+CMT:”为短消息指示标识,由AT+CNMI的值确定。“23”指明该短信息PDU数据包长度为23字节。第2行为十六进制数据,总长度为32字节,其中SMSC地址占用9字节,其余23字节为TPDU数据。

    需要指出的是,和AT指令中的指令符号、数字一样,PDU数据都是以ASCII编码的形式传送的,比如“A”的ASCIl编码为41H,“O”的ASCII编码为30H等。PDU数据包的内容是以十六进制表示的数据,但并不是直接向单片机传递十六进制数据,而是把每一位十六进制数以ASCII编码来发送。例如:08H会以30H(“0”),38H(“8”)的形式发送。这样,1个字节的十六进制数就变成2个字节的ASCIl码。但是,PDU数据包中的数据字节长度部分仍然是原始十六进制字节的长度。而不是变成ASCII码的字节长度,这在编程时应特别注意,否则,接收和处理数据就会不完整。单片机接收到P D U数据包数据后,必须将其恢复成十六进制数据,其算法如下:

    设a为接收的ASCII码,b为转换后的十六进制数。如果a<39H,则b=a-30H;如果a>39H,则b=a-30H-07H,最后把前后2个数合并为1个字节。

    PDU数据包有着严格的定义,现简单介绍如下:


    PDU的这种格式,层次清楚,结构清晰,方便接收。在本系统中,采用LISART中断方式接收短信,充分利用了AVR系列单片机指令执行速度快的特点,并在接收过程中运用状态机的思想,解析出短信中的发送源号码、日期时间、数据编码方案和用户短信数据。接收到一个完整的PDU数据包后,中断程序中设置接收完成标志为1。在主程序中,检测到接收完成标志为1时,就根据数据编码方案,对接收到的短信解码并保存,并准备下一条短信的接收。如果短信到来时TA与TE的数据线忙,则短信会暂时保存在TA的缓存中,等数据线空闲时再转发至TE

    在PDU模式中,发送普通的ASCII字符用7-bit编码方式,将一串7-bit字符编码为8-bit数据,每8个字符可压缩成7个。如果发送中文字符,则采用USC2编码方式,每个中文字符用16位的Unicode字符表示;如果是中英文混合的短信,由于英文字符只占1字节,需要补O,成为16位的编码。例如,“你好!”的unicode编码为4F60597D0021,其中“!”的ASCII码为21H,编码后为0021H。PDU的用户数据段最大容量是140字节,GSM模块发送给单片机的是280个ASCII编码。除此之外,还要接收保存发送源号码、日期和时间等信息。由于ATmegal28有4 KB内部SRAM,为短信的接收和解码提供了足够的空间。这是它的一大优势。PDU串的用户信息长度TP-UDL,在7-bit编码时,指原始短消息的字符个数,而不是编码后的字节数;在UCS2编码时,指编码后的十六进制字节数,因为1个字符用2个字节表示,所以经UCS2编码后,字节数等于原始短消息字符数的2倍。

    PDU模式下可以发送中英文短信,但是对英文字符和数字的7-bit编码/解码比较复杂,如果只需要发送和接收纯英文字符和数字字符,最好采用Text方式。


3.1  7-bit用户数据解码

    7-bit数据解码时,将源数据每7个字节分为一组,解码成8个字符。基本思想是:将第n个字节左移n位,再加上前一字节的剩余数据,即第(n-1)个字节右移(8-n)位的数值,屏蔽最高位,即得到一目标字符数据,n=0…6。第7个字节右移1位就得到解码后的第8个字符数据。


3.2 中文字符解码

    短消息的中文字符采用Unicode编码,占用2字节,不是目前国内常用的 GB-2312编码。巍峨了能够在GB-2312汉字库的液晶上显示,还需要进行中文编码的转换。


    基本思想就是建立Unicode和gb-2312两个中文编码表,通过查找实现相互转换。具体过程这里不再叙述。

 

结  语

    上述介绍的在嵌入式系统中,实时接受处理短消息的设计方案,已在车载GSM-GPS系统上应用。经过长时间的操作使用,系统工作稳定,拥护反映良好。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

作者 Mohamad Ali| IBM咨询首席运营官 北京2024年5月24日 /美通社/ -- 生成式AI的兴起几乎在所有面向上给业务带来改变。根据 IBM 商业价值研究院最新的年度 CEO 研究,近60%...

关键字: IBM AI BSP 模型

新型天线可在宽频率范围内工作 加利福尼亚州尔湾2024年5月27日 /美通社/ -- Infinite Electronics 旗下品牌,业界领先的射频、微波和毫米波产品供...

关键字: 天线 波导 TE ST

台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...

关键字: AMD 内存 BSP GB

上海2024年5月20日 /美通社/ -- 2024年5月16日,世界知名的生命科学公司 Eppendorf 集团于第二十三届生物制品年会上成功举办了"疫路超越 推流出新"的产品发布会,正式推出大规模...

关键字: RF PEN BSP IMAC

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

华钦科技集团(纳斯达克代码: CLPS ,以下简称"华钦科技"或"集团")近日宣布致敬 IBM 大型机 60 载辉煌历程,并将继续实施集团大型机人才培养计划。

关键字: IBM BSP 研发中心 PS

BBB Industries (BBB) 的创新太阳能电池板和电动汽车电池生命周期管理部门 TERREPOWER 很荣幸地宣布与 Brighten Haiti 建立合作伙伴关系。该组织是一家致力于在海地利用太阳能扩大教育...

关键字: TE POWER 太阳能电池板 TI

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪
关闭
关闭