关闭
关闭
首页 > 嵌入式软件 > 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的编码和转码就变得很重要。中文短信息的实现需要将utf-8的中文编码转换为代码页为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内核修复Ryzen线程数目识别错误,多线程性能将会飙升

Linux内核修复Ryzen线程数目识别错误,多线程性能将会飙升Linux已经在官网发布最新的内核修复这一问题,预计Ryzen 7处理器又能纵横在Linux系统上。......关键字:Linux内核 Ryzen 多线程

[新鲜事] 针对 Linux 的木马程序Wirenet出现

针对 Linux 的木马程序Wirenet出现以往Linux其中一个卖点是“没有病毒”,然而Linux日益普及却令它也开始成为恶意程式的目标。根据俄罗斯保安方案开发商Dr Web的报告、继 Mac OS X之后,在Linux也发现了意图取得用户密码的木马程序。 ......关键字:Wirenet Linux 木马 程序

[新鲜事] Windows、Mac、Linux 3 版 Skype 更新齐发

Windows、Mac、Linux 3 版 Skype 更新齐发 在今天一天内 Windows、Mac、Linux 3 个平台上的 Skype 都获得了更新。在 Windows 版本中 UI 得到了一些改进,包括可以将联系人「钉」到联系人列表顶部、在配置较差的电脑上加入了影像渲染的反向兼容性以及更好的 ......关键字:Windows Linux Skype Mac

[猎聘集] 全世界最成功的程序员:远见卓识会毁了Linux

全世界最成功的程序员:远见卓识会毁了LinuxLinux发明者称,正因为我不知道它将来会怎样,所以我对别人的建议和影响才表现得格外开放。......关键字:程序员 Linux 开源

[真心话] Windows、Linux、OS X 版 Opera 12.10 正式发布:支持 Windows 8 触控、Retina 屏幕、SPDY 协议

Windows、Linux、OS X 版 Opera 12.10 正式发布:支持 Windows 8 触控、Retina 屏幕、SPDY 协议 Opera 日前正式在 Windows、Linux、OS X 三大平台上推出了 12.10 版本。作为 Opera 12 的后续版本,Opera 12.10 新加入了对 OS X 通知中心、Retina 屏幕、Windows 8 触控......关键字:Windows Retina Linux 12.10

[新鲜事] Valve老大G胖:支持Linux因Win8是个灾难

Valve老大G胖:支持Linux因Win8是个灾难华尔街日报》旗下科技博客AllThingsD报道,昨日Valve老大Gabe Newell出席了由Google风投等私募公司在西雅图举行的一场晚宴,期间和前微软游戏发行部门副总裁Ed Fries谈到了他近期对业界一些的看法。Valve在上周......关键字:Valve Linux Win8

[新鲜事] Twitter 成为 Linux 基金会新成员

Twitter 成为 Linux 基金会新成员 继英伟达和三星之后,Twitter 日前宣布他们也将于本周在加州举行的北美站 LinuxCon 大会上正式成为 Linux 基金会的成员(英特尔、IBM、Google 等:「鼓掌欢迎!」)。Twitter 的开源业务经理 Chris An......关键字:Twitter Linux 基金会

[新鲜事] Linux Steam Beta 版将会在十月封测

Linux Steam Beta 版将会在十月封测 Valve 旗下的 Steam 一直以来都是 Windows 的好伙伴,不过他们的创办人 Gabe Newell 早前曾经高调说过:「Windows 8 是一场灾难」,并会将 Steam 平台移植到 Linux 作为「避险策略」。直到现在......关键字:Linux Steam Beta 封测

[新鲜事] Linux之父怒喷谷歌安全工程师为哪般?

Linux之父怒喷谷歌安全工程师为哪般?上周五,Linux 之父 Linus Torvalds 在内核邮件列表上用很犀利的言辞抨击了 Google Pixel 安全团队的开发者 Kees Cook,引起了大家广泛地讨论。......关键字:Linux 谷歌 安全工程师

[新鲜事] 退隐江湖!GSM 2G网络2017年关闭

退隐江湖!GSM 2G网络2017年关闭人类社会已经进入了4G移动通信时代,而越来越多的运营商也在关闭GSM和CDMA二代(2G)网络。而据IDG新闻社的报道,全球诸多GSM网络运营商,已经将2017年确定为关闭GSM网络的年份。而之所以关闭GSM等2G网络,是将无线电频......关键字:网络 GSM

[新鲜事] CentOS系统宣布为ARM(armhfp)硬件架构发布CentOS Linux 7(1611)镜像

CentOS系统宣布为ARM(armhfp)硬件架构发布CentOS Linux 7(1611)镜像今天,CentOS系统开发人员Fabian Arrotin非常高兴的宣布为ARM(armhfp)硬件架构发布CentOS Linux 7(1611)镜像。该GNU/Linux发行版本深受单板计算机和嵌入式设备的喜爱,支持树莓派3、树莓派2、......关键字:ARM CentOS Linux

[真心话] 神技能get:实现1秒启动Linux?

神技能get:实现1秒启动Linux?尽可能快的启动系统,对于自动化设备是非常重要的。系统能够在用户无法感知的时间内启动,也就意味着在不需要工作时,可以完全切断电源,而不是挂起进入休眠状态。本文基于Atmel AT91系列片上系统和NAND闪存,经过一......关键字:Linux 自动化设备 启动 系统
条评论

我 要 评 论

网友评论

大家都爱看

  • 华为的优势,就是自家的各种自研芯片

    CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
    2017-08-16
  • 你不知道Ryzen芯片有多火?来看看AMD的股票吧

    据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。

    2017-08-16
  • 国产芯片:厚积薄发,强势崛起

    关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边… 2017-08-16
  • 为了数据安全 大疆无人机增加隐私飞行功能

    大疆周一表示,在美国陆军因为“网络缺陷”而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot… 2017-08-15
  • Intel代工 展讯发布14nm SC9853I手机SoC

    SC9853I采用的Intel的14nm FinFET制程,架构为8核64位Airmont架构,主频1.8GHz,GPU为Mali-T820 MP2,号称面向799~1299元档次的手机。… 2017-08-15