当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]一种短信收发系统设计与实现

1.引言

全球移动通讯系统Global System of Mobile communicaTION就是众所周知的GSM,是当前应用最为广泛的移动电话标准。全球超过200个国家和地区超过10亿人正在使用GSM电话。GSM标准的无处不在使得在移动电话运营商之间签署"漫游协定"后用户的国际漫游变得很平常。GSM 较之它以前的标准最大的不同是他的信令和语音信道都是数字式的,因此GSM被看作是第二代 (2G)移动电话系统。这说明数字通讯从很早就已经构建到系统中。GSM是一个当前由3GPP开发的开放标准。同时嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

2.短信收发原理

SMS 是一种存储和转发服务。也就是说,短消息并不是直接从发送人发送到接收人,而始终通过 SMS 中心进行转发。如果接收人处于未连接状态(可能电话已关闭),则消息将在接收人再次连接时发送。短信息应用于内部管理,业务系统和客户服务系统: A公司在全国已有100多个业务划分区域,日常工作中有大量诸如新商品信息、价格调整等业务资讯需要及时提供给所有区域经理,在应用短信息之前,主要通过电话或Email来完成这些事情,需要投入大量的人力来完成这些工作,并且还经常由于各种因素的影响而出现延误的现象,现在用短信息则可以快捷和轻松地完成这部分工作。涉及SMS管理的协议如图1所示。

图中SME为短信实体, SMSC为短信服务中心,SMCGWMS为SMS网关,HLR是归属位置寄存器,用于永久储存管理用户和服务记录的数据库,MSC为移动交换中心,VLR为访问位置寄存器,含有用户临时信息的数据库,交换中心服务访问用户时需要这些信息。

短消息模块的接入方式支持两种模式:基于AT指令的teXT模式和基于AT指令的PDU模式,它指的是短信息数据的编码格式,文本模式只支持7-bit编码,只能发送纯英文和数字信息,而PDU模式支持7-bit编码、8-bit编码和UCS-2编码,其中后者可进行Unicode编码。

GSM模块采用标准AT指令集通信,其中本系统用到的AT指令如表1所示。

表1  相关AT指令

3.GSM短信数据格式分析

3.1发送短信PDU字符串

由于短信模式选择的是PDU格式,因此对PDU的编码和转码就变得很重要。中文短信息的实现需要将GB2312的中文编码转换为代码页为CP936的Unicode编码,PDU发送字符串数据格式中主要由短信中心地址、文件头字节、信息类型、目的地址、协议标识、数据编码方案、有效期、用户数据长度和用户数据组成。代码的含义如下所示:

08H:短信服务中心地址信息的长度,共8个八位字节(包括91) ;

91H:短信服务中心地址格式,用国际格式号码,在前面加‘+’ ;

68 31 08 20 01 05 F0H:短信服务中心地址,8613800210500,补‘F’凑成偶数个;

11H:基本参数,协议数据单元类型,表示发送,TP-VP用相对格式;

00H :信息参考,00H表示参考本身号码 ;

0DH :对方手机号数字个数,共13个十进制数 ;

91H :对方手机号,用国际格式号码,在前面加‘+’ ;

68 31 21 43 65 87 F9H:对方手机号(TP-DA),8613123456789,补‘F’凑成偶数个;

00H:协议标识(TP-PID),是普通GSM类型,点到点方式;

08H:用户信息编码方式(TP-DCS),主要用其1个字节的第2和第3位表示编码方式,08H表示为UCS-2编码,最多发140个字符;04H为8-bit编码,最多发140个字符;00H为7-bit编码,最多发160个字符;

00H:有效期(TP-VP),5分钟;

04H:短信长度(TP-UDL),实际长度4个字节;

4F 60 59 7DH:用户信息(TP-UD),“你好”的Unicode编码 。

3.2 短信接收PDU字符串

接收方PDU字符串的含义和发送方不同,同样以“你好”为例,接收方的PDU字符串为:08 91 68 31 08 20 01 05 F0 24 0D 91 68 31 67 24 47 63 F0 00 08 70 50 91 31 21 25 23 04 4F 60 59 7DH,其含义如下:

08 91 68 31 08 20 01 05 F0H:短信服务中心,分析同发送相同;

24H:协议数据单元类型基本参数(TP-MTI/VFP) ,发送,TP-VP用相对格式;

0DH:对方手机号数字个数;

91H:对方手机号(TON/NPI),用国际格式号码(在前面加‘+’);

68 31 67 24 47 63 F0H :对方手机号(TP-DA),8613764274360,补‘F’凑成偶数个;

00H:协议标识(TP-PID) ,是普通GSM类型,点到点方式;

08H:用户信息编码方式(TP-DCS) ,分析同发送方;[!--empirenews.page--]

70 50 91 31 21 25H:短信息发送时间(SCTS),07年05月19日13时12分52秒;

23H:发送时间对应的时区;

04H:短信长度(TP-UDL),实际长度4个字节;

4F 60 59 7DH:用户信息(TP-UD) ,“你好”的Unicode编码。

4.系统组成

4.1硬件组成

系统由嵌入式Linux系统和西门子MC35模块通过串行接口三线制连接而构成, MC35模块通过串口1与嵌入式系统相连,嵌入式系统配置包括50MHz 主频的MPC860 32位处理器,16M SDRAM内存,2个RS232,操作系统采用嵌入式Linux for PowerPC。MC35模块由GSM基带处理器、电源专用集成电路、射频电路和闪速存储器等部分组成,负责处理GSM蜂窝设备中的音频、数据信号,内嵌的软件部分执行应用接口和所有GSM协议栈的功能。GSM 是Global SySTem of Mobile communication(全球移动通讯系统)的英文缩写,是当前应用最为广泛的移动电话标准。全球超过200个国家和地区超过10亿人正在使用GSM电话。所有用户可以在签署了"漫游协定"移动电话运营商之间自由漫游。 GSM 较之它以前的标准最大的不同是它的信令和语音信道都是数字式的,因此GSM被看作是 第二代 (2G)移动电话系统。 这说明数字通讯从很早就已经构建到系统中。GSM是一个当前由3GPP开发的开放标准。

4.2libcssl函数库

为了实现短信收发,需要在嵌入式Linux下通过串口发送一系列的AT指令。串行通信是计算机与其它设备通信的常用方法,在本系统中采用一个基于Linux的串行通信函数库libcssl,可实现串行接口的异步事件驱动并发。采用该方法,用户只要在服务器和数据源之间建立异步连接,编写数据处理函数,而对数据源事件的监测、数据读取、多事件的处理等操作是由操作系统内部完成的,因而,很大程度上简化了编程者的工作,同时保证了较高的资源利用率。

libcssl函数库提供给用户多种基于事件驱动方式的串行接口函数。其主要的函数有4类,分别进行串口初始化、收发数据、错误信息和结束串口操作。在使用某个串口之前,应调用初始化函数,为其设定相应的参数,使得收发双方遵循相同的通信协议和数据格式,同时通过初始化操作,为串口数据源和采集服务器之间建立异步连接,分配采集句柄。当数据源通过串口向嵌入式系统发送数据时,该数据会被送入数据缓冲区,并通过该数据源的采集句柄访问该串口的事件回调函数,在该函数中完成数据的处理。相关的函数如表2所示。

表2 libcssl函数库中的主要函数

4.3软件设计

使用了异步事件驱动函数库,程序设计简单而容易实现,程序主要由2部分组成,即主程序设计和回调函数程序设计,主程序只需做初始化和发送短信,其余功能都放在回调函数中完成。

在主程序中,各变量赋初值,调用cssl_open函数打开串口,设定的参数为采用串口1,即嵌入式Linux的ttyS0设备,波特率9600bps,8位数据位,1位停止位,无奇偶校验,无数据流控制,定义串口接收数据缓冲区有数据输入时,回调函数为callback函数,该函数对数据缓冲区中的数据进行分析处理。通过发送AT+CMGF=0指令定义短信模式为PDU模式,并判断是否有短信需要发送。

回调函数中首先读取输入缓冲区内容,根据对标志和缓冲区内容的判断,可以得知回调事件是由哪个事件引起,分别加以处理,由于每次向GSM模块发送AT指令后,模块会发送OK或ERROR等响应表示操作成功或失败,所以在回调函数中一个很重要的功能就是判断AT指令是否发送成功,为了区分不同AT指令的响应,程序中采用状态标志,表征系统发送AT指令的类型。在收到新短信后,需要提取短信发送方电话号码、短信发送时间和短信内容等相关信息,并加以存储,提取的依据就是短信接收PDU字符串的编码格式。相关的流程图如图2和图3所示。

图2 主程序流程图

5.结论

本文的创新之处在于提供了嵌入式Linux下GSM模块的短信收发系统设计方法,程序设计中利用串行接口驱动函数库libcssl,以串口I/O事件驱动设备的数据采集。短信收发采用PDU模式,能够处理中文、英文和中英文短信。异步事件驱动的架构可以提高系统并发处理性能,程序能够执行多个异步操作而不调用阻塞线程,降低系统开销。嵌入式系统加GSM模块的系统组成体积小巧,非常适合于偏远地区或移动的数据采集系统。

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

数字可编程变频电源是一种能够根据用户需求调整输出电压和频率的电源设备。它在工业生产和实验室研究等领域中被广泛使用。

关键字: 单片机 可编程电源 系统设计

太阳能供电应用系统的设计需要考虑多个方面,包括太阳能电池板、储能装置、控制模块等。本文将介绍一种基于太阳能供电的应用系统设计方法,并从这几个方面进行详细阐述。

关键字: 太阳能 系统设计

北京2023年9月21日 /美通社/ -- 去年年底,ChatGPT诞生,凭借强大、精准的自然语言理解和生成能力,令全球用户为之一震。 自此,各行各业纷纷投身大模型研发竞赛,掀起新一轮技术创新热潮。金融行业更是如此。如...

关键字: 模型 GPU PD 多模

(全球TMT2023年9月8日讯)第24届中国国际光电博览会将于2023年9月6日-8日在深圳举行。三安集成出席,与行业同仁分享最新动态。在同期举办的2023 CIOE&YOLE国际论坛上,三安受邀在光收发器&...

关键字: 光电 集成 VCSEL PD

帕博利珠单抗在中国境内迎来首个基于特定生物标志物状态而不基于肿瘤类型的适应证 上海2023年9月8日 /美通社/ -- 默沙东(默沙东是美国新泽西州罗威市默克公司的公司商号)宣布,其PD-1抑制剂帕博利珠单抗(商品名:...

关键字: PD DM SI TE

在未来的5-10年里,液晶材料仍然会是显示面板行业的主流发展方向。 上海2023年8月31日 /美通社/ -- 为了深入了解液晶材料的技术及应用,近日,网易科技以新一代智能液晶调光技术为主题,对飞凯材料全资子...

关键字: 液晶 PD 液晶材料 HC

广州及苏州生产基地产品均实现"出口"零突破 北京2023年8月21日 /美通社/ -- 百济神州(纳斯达克代码:BGNE;香港联交所代码:06160;上交所代码:688235)是一家全球性生物科技公...

关键字: 神州 代码 TI PD

北京2023年8月15日 /美通社/ -- 日前,在第五届OCP China Day 2023(开放计算中国技术峰会)上,浪潮信息正式推出融合架构3.0原型系统,以开创性的系统架构设计实现了计算资源、存储资源、...

关键字: 系统设计 内存 软件定义 数据中心

北京2023年8月7日 /美通社/ -- 随着大模型智能水平的提升,AIGC所需要的算力在不断增长。大模型的参数量超过千亿,甚至突破万亿级别,预计智算中心将迎来更快发展。IDC预测,2022-2026年,全球AI计算市场...

关键字: CHINA 数据中心 AI 系统设计

无论温度怎么变化始终UCQ1=UCQ2,电路以两只管子集电极电位差作为输出,就克服了温漂 当u11=u12(共模信号)T1管和T2管所产生的电流变化相等;因此集电极电位的变化也相等。

关键字: 差分放大器 系统设计 电极电位
关闭
关闭