无线数据采集系统通信模块的设计与实现精选.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
本文采用嵌入式微处理器STM32作为系统主控芯片,选用的通信芯片为SIM900A,在参考一些相关的文献资料和芯片厂家的数据手册后,设计了一种无线数据采集的通信模块,并且经过实际验证得出本模块运行性能稳定,数据传输速度快,外观精致,性价比高的特点。关键词:SIM900A;数据采集;通信
abstract
This paper adopts the embedded microprocessor STM32 as master chip, communication chip is SIM900A, in reference to some relevant literature and chip manufacturer's data sheet, design the communication module of a wireless data acquisition, and after the actual verification shows that this module runs stable performance, fast data transmission, exquisite appearance, characteristics high price.
Key words: SIM900A; data acquisition; communication
引言
随着互联网技和当今通信技术的快速发展,无线数据采集技术经过这些年多次的实验研究以及实际中的应用,目前其技术水平已达到非常成熟的地步,并且在各个领域有着重要的地位和起着重大作用。本文所设计的无线数据采集通信模块,主要实现信息数据的接收发送功能,并且模块运行数据传输达到稳定状态。
1 无线通信模块整体设计方案
本次设计的硬件通信模块主要由四部分构成:电源部分、通信部
分、主控芯片部分、数据采集部分。软件部分主要实现通过主控芯片进行数据控制保证信息数据能够发送接收正常。
2 无线通信模块硬件设计
2.1电源部分
本电路的电源主要采用外接12V电源的供电模式,经过电容滤波后将12电源输送到LM2576电源集成块中,将电压由12V转到4V,为主控芯片STM32以及通信芯片SIM900A提供稳定的电源输入。
2.2 主控芯片部分
主控芯片采用的是单片机stm32,该芯片的工作温度范围为:-40°C ~105°C ,采用电平转换MAX3232芯片对串口转换来保证主控芯片与接口之间的通信。MAX3223芯片与串口1相连,输出USART1_TX,因此将GPIO定义为输出接口,定义USART1_RX接口为输入模式。SN65LBC184D与串口2进行数据的接收发送通信,USART2_RTS、USART2_RX定义为输入模式,USART2_CTS、USART2_TX 定义为输出模式,串口2控制主芯片SIM900A,USART3_RTS、USART3_RX 定义为输入接口,USART3_CTS、USART3_TX定义为输出接口[1]。
2.3 通信芯片
SIM900A是SIMCom公司开发生产的新型的产品,具有双频功能gsm/gprs的通信模块,采用的是SMT形式封装,此款芯片运行性能稳定,外观精致,性介比方面比较高,并且在使用功能上能满足开发的多种需求[2]。此芯片还带自动断线重连功能,此功能的实现需要用
到DCD/RI两个引脚,DCD引脚具有将模拟信号转换成数字信号功能,当通信模块断电时,会将DCD引脚置高电平,当DCD检测到引脚处于高电平时,通信模块会采用动作,进行重新连接。RI引脚则不同,其一直处于高电平状态,当有无线数据信号传来的时候,此引脚就会出现一个低点评信号,当RI检测到引脚处于低电平时,通信模块就会采取动作进入到无线数据信号传输模式。
3 无线通信模块软件设计
3.1 STM32 的底层配置
要实现主控芯片STM32 与通信芯片SIM900A之间的数据通信,首先需要构建系统开发环境,在此环境中添加一些会用的库函数和一些配置文件,然后进行对系统时钟的配置,中断的设置,输入以及输出端口电平设置,相应通信串口设置。当为以上内容设置参数时,需参照系统原理图进行程序编写,然后对芯片的各个端口的功能,能产生什么作用进行查看,做到准确无误。
3.1.1 串口配置
开发环境准备好后,开始对端口参数进行设置。设置USART:9600b/s比特率、8bit字长、1bit停止、检验模式无。接下来将各个串口初始化,打开中断函数,配置基本完成。
3.1.2 中断控制器的配置
首先将优先级分组设置,先占1位优先级、3位从优先级。全局中断定义5个:2个RTC、USART1、USART2、USART3,针对每个全局中断设置优先级用来串口初始化。特别注意的是 EXTI15的中断管
角为低电平的时候会被触发,此时通信模块进入数据模式,所以此引脚需要设备高优先级,定义该中断为1位先占,0位从优[3]。优先级设置时需要根据运行情况,选择最佳中断的分组以及优先级,才能达到快速中断响应。
4 无线通信模块数据传输的实现
4.1 数据格式的定义
数据头文件定义为 S_PACKET_HEADER类型、link_id为DWORD 类型,数据发送为目标 link_id,数据接收为源 link_id,以数据0行为结束,数据data根据具体命令变化。
4.2登陆、退出的协议过程
软件根据服务器和端口地址发出请求连接,当连接成功后便开始信息数据交互,其工作流程如下:
1)后台接到 CMD_LOGIN命令,登录服务器,期间不会处理其他命
令。然后发送命令CMD_LOGIN: FORWARD 到服务器,传输的数
据为S_TERMINAL。
2)服务器将模块信息传来,在客户端形成在线列表。如果收到命
令CMD_LOGIN::RESPONSE_FAILED表示失败,如果收到命令
CMD_LOGIN:RESPONSE_OK表示成功,其传输据为 S_TERMINAL。
3)后台会定时向服务器发出命令,用来检测是否服务器与网络断
开。在线设备需在一定时间向服务器发送CMD_KEEP_LIVE信息,服务器进行检测,如服务器没哟按时收到信息,认为该设备失
效,断开连接。