




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑GPRS模块的应用技巧《电气时代》2022年第五期
一、应用技术和特点
目前,微控制器与GPRS模块之间的互动操作大部分采用通用异步串行数据接口实现,微控制器通过串口发出AT指令,接收GPRS模块的指令应答和数据,实现对模块的控制和数据传输。与早期GSM模块不同,目前的GPRS模块在实现语音和短信通信的基础上,大部分都内嵌TCP/IP协议栈,可以直接实现与后台服务器之间的数据传输功能。以数据传输为例,说明GPRS模块以TCP/IP协议进行数据通信时,要经过3个操作过程。1)建立连接。一般来说都是客户端主动向服务器端的IP和端口发出连接请求,而服务器端侦听指定的端口,等待客户端的连接请求并且进行回应建立连接。2)数据收发。利用已经建立的链路进行数据收发。可以使用单帧数据包的传输,通常一帧可以包含1KB左右。也可以使用“透明传输”模式,将串口收到的所有字符和数据原封不动地按照TCP/IP协议打包发送到远方服务器。3)连接释放。当所有数据都收发完成,就需要切断与后台服务器的连接,释放通信信令和后台服务器的资源。但在某些场合,也可一直保持与后台的连接过程,即“永远在线”,但在没有数据传输的间隙内,需要通过“心跳”数据包来维持与后台的连接,否则在一定空闲后通信网络将自动回收空闲的资源。
二、软件应用方案
在使用GPRS模块进行设备开发过程中,逐渐发现以下的几个特点。1)使用串口与模块的通信过程中,存在长度不定的通信帧需要区分,如果不能可靠地分断各帧数据就不可能正常运行。2)由于涉及到外部网络的通信过程,微控制器与GPRS模块通信过程中存在应答延迟的情况,而且延迟的时间长短随机。如果缺乏合理的应对机制,则可能会影响到程序中其他进程的工作。下面就遇到的两个主要问题进行分析,并提出一种可能的解决方案进行讨论。
1.分割数据帧对于来自GPRS模块的数据帧长度不定的情况,一般有以下两种方式解决。1)对于串口具备硬件缓存或DMA以及空闲中断的微控制器,可以使用足够长度的缓存进行接收,并配合空闲标志进行判断,该方案可以最大程度地释放CPU的资源,对于CPU负荷较重的场合比较合适。但该方案对MCU的外设资源有一定的要求,使得该方案受到一定的限制,而且对延时判断时间的控制也缺乏灵活性。2)在硬件条件不成熟的情况下,借鉴Modbus协议的3.5字符时间作为帧分断的思路,以一定的延迟时间作为判断数据帧完成的标志。具体来说,在串口接收到第一个字节后,启动已经设定的定时器,并且在每次收到新的字节后都清空该定时器。帧数据接收完成后最后一次清除定时器,等待定时器溢出并产生中断,报告一帧数据接收完成。由于大部分的微控制器都具备串口和定时器等外设,该方案具有更大的普遍意义。另外,在开发调试过程中,同一条AT指令的应答返回数据,可能被分断为两个甚至三个段发送回来,中间的间隔可能比MCU串口的硬件产生的空闲中断判据要大,可能存在接收不完整的情况。由于可以灵活设置定时器的超时范围,对不同厂家的GPRS模块具备更好的适应能力。
2.GPRS模块的操作机制尝试了2种不同的处理架构,分别是有限状态机方式和优先级消息方式。两种方式各有千秋,分别适应与不同的应用模式,同时,作为一种设计思路,还可以应用于更多的场合。(1)有限状态机方式由于GPRS模块的操作是由一系列的请求和应答指令配合完成,部分操作流程中“指令-应答”之间的顺序存在严格要求。但在涉及与外部网络通信的情况下,应答的延迟情况难以判断。为了严格遵循流程操作,同时为了避免由于不定延迟导致系统过长等待而影响其他进程的执行,在GPRS模块的操作中引入“有限状态机”的方式,每一步操作成为一个状态,包含:当前状态,当前状态下收到的各类消息及转向的下一状态,和当前状态需要执行的动作。若干个操作形成的序列就转换为一系列顺序流转的状态,所有的状态集合成为“状态矩阵”,如下图1所示。程序进入状态机,如果收到新的消息,则与已经发出的指令的规定应答相比较,判断相同则可以按照“状态矩阵”规定的路线转移。直至正确收到本序列最后一条指令的应答,结束本流程操作返回空闲状态。以图2为例进行说明。对于比较简单的数据传输任务,本方案可以较好实现,尤其对于后续应答或操作不明确的场合比较适合。例如,在人机交互过程中,由于操作人员可能随意操作按键,对键盘的响应过程可能出现大量不可预计的操作,利用状态矩阵就可为每一个状态下每一个按键消息进行约束,可以从容地应对各种可能出现的情况。对GPRS模块的操作由于涉及到外部网络的互动过程,有时候也会存在一些“意料之外”的情况,采用该方案能较好地控制异常的流程。但对于需要双向数据通信的需求来说,存在一定的风险,即“流程交叉”的情况。举例来说,如果当前正在执行一次数据发送流程,其中进行到第2步,此时如果收到一条短信数据,则可能驱动状态机转入短信接收流程。如果之后收到数据发送流程第2步的应答,则状态机可能陷入混乱。虽然发生这种极端情况的概率非常小,但系统中始终暗藏这种的风险。如果要避免发生这样的混乱,就必须再进一步加入状态流程的挂起机制,必然会使得整个机制变得更加复杂。(2)优先级消息方式结合“指令-应答”结构体(RA)及表达序列流程的RA数组,数据的组成方式如图3所示。顶层的“操作流程”由一系列的RA组成,比如一次“透传流程”就包括:打开链接指令及应答,启动透传指令及应答,发起传输指令及应答,关闭透传指令及应答,关闭连接指令及应答等5个步骤。且每一个步骤又涉及:发出的指令和各种情况的应答。在程序方面,采用带有优先级的消息控制的方式,以一种简洁的方式高效实现四种不同操作:数据收/发与短信收/发。进入GPRS处理流程,首先判断是否收到新的消息,如果收到消息则按照一定顺序判断收到消息是否为收短信或收数据并按标记挂起,然后判断当前是否存在正在执行的流程,并将收到的应答与RA中的正确应答进行比较判断,并按序列推动状态在RA数组内部流转。如果没有收到任何消息,且不存在任何正在执行的流程,则按照:发数据,收短信,收数据和发短信的优先级顺序检查是否存在挂起的事件,并启动相应的流程。比如,如果存在正在执行的流程而没有收到应答,则转入对应的流程超时管理机制,对不同的流程分别进行超时控制,并在超时发生的时候产生标记,然后清空当前正在执行流程的指针,转入空闲等待状态。消息处理的过程如图4所示。
三、结束语
通过采用以上机制,以一种简
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【课件】认识三角形第2课时课件北师大版七年级数学下册
- 城市绿地系统规划课件
- 《细菌生态》课件2
- 未来纺织品的设计理念与应用前景试题及答案
- 商业设计师品牌建设能力考核试题及答案
- 学校学生食品安全培训课件
- D滩上海商业房地产发展战略研究
- 医学影像设备行业发展趋势与未来市场展望
- 《办公技能培训》课件
- 检测报告的标准格式试题及答案
- 建筑工人安全教育新模式试题及答案
- 环境艺术设计职业生涯规划书
- 邮政社招笔试试题及答案
- 2025年java开发面试题及答案
- (完整版)公司的代账协议模板合同7篇
- 全过程工程咨询投标方案(技术方案)
- 2024中国合同能源管理行业发展前景预测及投资战略咨询报告
- 风力发电项目实习报告范文
- 自然辩证法概论(视频课)知到课后答案智慧树章节测试答案2025年春安徽农业大学
- 海南省临高县2022-2023学年小升初语文试卷(有答案)
- 第六单元“保护环境”(主题阅读)-六年级语文上册阅读理解(统编版)
评论
0/150
提交评论