首页 > 嵌入式软件 > linux

引言

本文引用地址: http://embed.21ic.com/software/linuxos/201801/50006.html

1.全球移动通信系统GSM是我国范围最广、通信能力最强的移动通信业务,而其中的短消息功能由于其使用方便、价格低廉、可靠性高而得到广泛应用。嵌入式Linux也是目前得到广泛应用的技术,功能强大和资源丰富是其最大的优势。本文在嵌入式Linux系统中利用GSM模块实现短信的收发,对不方便架设通信线的偏远地区,提供了数据采集的新手段。同时嵌入式系统体积小巧,Linux操作系统资源开放,所以本系统经过二次开发,可方便地构成移动数据采集系统,用于远程数据采集、监控。

2. 短信收发原理

短信服务业务SMS(Short Message Service)是GSM系统提供给用户的一种数字业务。它与话音传输及传真一样同为GSM数字蜂窝移动通信网络提供的主要电信业务。涉及SMS管理的协议如图1所示。

 

1.jpg

图1 SMS管理的协议

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

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

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

 

2.jpg

3. GSM短信数据格式分析

3.1 发送短信PDU字符串

由于短信模式选择的是PDU格式,因此对PDU的编码和转码就变得很重要。中文短信息的实现需要将GB2312的中文编码转换为代码页为CP936的Unicode编码,PDU发送字符串数据格式中主要由短信中心地址、文件头字节、信息类型、目的地址、协议标识、数据编码方案、有效期、用户数据长度和用户数据组成。例如:设置PDU格式的编码为08 91 68 31 08 20 01 05 F0 11 00 0D 91 68 31 21 43 65 87 F9 00 08 00 04 4F 60 59 7DH,这组代码的含义如下所示:

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) ,分析同发送方;

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协议栈的功能。MC35模块支持中文短信,支持GPRS功能,便于将来功能的扩展。

4.2 libcssl函数库

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

libcssl函数库提供给用户多种基于事件驱动方式的串行接口函数。其主要的函数有4类,分别进行串口初始化、收发数据、错误信息和结束串口操作。在使用某个串口之前,应调用初始化函数,为其设定相应的参数,使得收发双方遵循相同的通信协议和数据格式,同时通过初始化操作,为串口数据源和采集服务器之间建立异步连接,分配采集句柄。当数据源通过串口向嵌入式系统发送数据时,该数据会被送入数据缓冲区,并通过该数据源的采集句柄访问该串口的事件回调函数,在该函数中完成数据的处理。这样,当用户使用多个串口时,不需要用多个线程,只需为每个串口设置独立的回调函数,各回调函数之间可方便地实现数据交换共享。程序中可通过获取错误信息得知系统出现的错误状态,而采集程序结束,应关闭串口,释放系统资源。相关的函数如表2所示。

换一批

延伸阅读

[行业资讯] 开源平台化成科技公司必由之路 包括微软

开源平台化成科技公司必由之路 包括微软

曾经的科技市场有自己的玩法,那就是通过占有独一无二的资源来获取强大的议价能力。不过,现在新趋势正在逐渐瓦解这一传统玩法,公司向平台化发展并与人才、技术和信息生态......

关键字:Linux 微软

[行业资讯] Linux Kernel 5.0或在达成600万Git Objects时到来

Linux Kernel 5.0或在达成600万Git Objects时到来

早两天,Linus Torvalds在Google+上表示,Linux内核当前正在从4.0向5.0大版本迈进(half-way between),同时接近600万Git的目标。之前的大版本,比如Linux 3.0或Linux 4.0......

关键字:Linux5.0

[行业资讯] 2016年最佳Linux发行版排行榜

2016年最佳Linux发行版排行榜

2015年,不管在企业市场还是个人消费市场都是 Linux 非常重要的一年。作为一个自2005年起就开始使用 Linux 的 Linuxer ,我门见证了 Linux 在过去十年的成长。2016 Linux......

关键字:ezgo Linux openSUSE Linux

[行业资讯] Linux基金会宣布举办新会议,支持开源大数据社区协作

Linux基金会宣布举办新会议,支持开源大数据社区协作

Apache: Big Data大会,开源项目提交者将汇聚一堂,促进Apache大数据技术的应用Marketwired 2015年5月28日美国加利福尼亚州旧金山消息――致力于促进Linux和协作开发发展的......

关键字: Linux 开源大数据

[行业资讯] Linux之父:讨厌封闭 回绝乔布斯

Linux之父:讨厌封闭 回绝乔布斯

一个21岁的芬兰大学生,在学生宿舍里写了一个操作系统的内核——Linux,然后公布于众,吸引了成千上万的程序员为之增补、修改和传播,短短几年就拥有了千万的用户......

关键字:linux 苹果 乔布斯

[疯狂史] 一个只会投机取巧的程序员的奇葩经历,编程没有“捷径”

一个只会投机取巧的程序员的奇葩经历,编程没有“捷径”

在讲述这个故事之前,我有一句话要说:编程是一件特别难的事情!成为优秀的程序员没有捷径,你要拥有高智商,要保持谦逊,还要不断的努力,犯错,在错误中成长,深刻理解你所学习的材料。但是有些人就是一定要寻找捷径,而其中之一,就是使用欺诈的手段。......

关键字:程序员 编程

[真心话] 单片机大师郭天祥的大学六年,看看与你的有何不同?

单片机大师郭天祥的大学六年,看看与你的有何不同?

在哈尔滨工程大学五年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在这里与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。......

关键字:单片机 郭天祥

[真心话] 三大运营商取消流量漫游费,本地流量将被国内流量替代

三大运营商取消流量漫游费,本地流量将被国内流量替代

7月1日,中国移动、中国联通和中国电信正式全面取消流量漫游费,原有套餐中的省内通用流量直接升级为国内流量,但并不包含港澳台地区。目前原来的本地流量已经转化为国内流量。对于本地流量转化为国内流量后价格是否......

关键字:电信 网络流量

[真心话] 工程师中大热的的“技术型复合人才”究竟是什么?

工程师中大热的的“技术型复合人才”究竟是什么?

经过半年的工作和学习,突然想到以前在哪里听说,技术型复合人才比较抢手。单从技术角度看,我认为在任何科技领域,除了能够出色完成自己手中的工作外,还能帮助两个、多个研发人员甚至整个团队解决从理论、方案到工程实现中所面临各种难题,这样的人才应该能......

关键字:工程师
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14