基于GPRS的远程无线串口通讯系统设计

2021-08-18 08:19聂思兵杨济宁
山西电子技术 2021年4期
关键词:终端设备助手串口

徐 晶,聂思兵,陈 阵,张 镘,杨济宁

(1.内江师范学院计算机科学学院(人工智能学院),四川 内江 641100; 2.内江职业技术学院,四川 内江 641111)

0 引言

当今大数据时代,大量数据不断的由数据采集终端产生至服务器便于后续存储分析[1],随着人工智能的发展,数据采集终端由静态终端不断向运动的智能设备转变,如四轴飞行器、手持设备[2]等。应用环境的变更要求数据采集终端必须接入网络。拥有有线网络技术和移动通信技术的电信网络通信技术成为了入网的核心技术[3]。

采用高端处理器的数据采集终端,多数使用处理器自带的以太网模块[4],外加网络接口和网线,便可成功接入网络,但其价格昂贵,虽能将数据发送至服务器,但受网线牵制,难以适应复杂的运动环境中的传输任务。而采用低端处理器的数据采集终端,仅能使用串口进行数据通信,面对当今终端与服务器的交互场景将面临淘汰,若更换高端芯片,需对整个终端进行重新设计,成本较高。

为低成本使老旧设备方便快捷的拥有无线通信功能,同时促进低端芯片满足复杂运动环境,本文设计基于GPRS的远程无线串口通讯系统[5,6],只需将数据采集终端的串口与系统相联,直接使用串口程序便可与服务器进行交互。

1 系统设计原理

本系统主要由STM32通过AT指令对GPRS模块进行配置初始化,使其工作在TCP模式,方便与服务器终端进行数据交互。当STM32接收到服务器终端发送的数据后,会将收到的数据通过串口发送给与之连接的远程数据采集终端,当接收到远程数据采集终端通过串口发送的数据时,会将数据通过GPRS模块转发给服务器终端。整个系统的系统原理图如图1所示。

图1 系统原理图

如图1所示,本系统主要包含电源模块、GPRS模块、CPU模块、存储器模块、显示模块,系统接口模块。其中,电源模块为整个系统提供电压;GPRS模块为系统提供无线远程通讯功能;存储器模块核心部件为AT24C02,存放整个系统的初始化参数,系统启动时会从存储器模块中读取初始化参数,该参数可通过串口发送约定的命令进行修改;显示模块负责显示系统的工作状态;系统接口模块可提供系统与外部终端的物理接口以及电平转换功能;CPU模块选用STM32作为系统的核心部件,将系统的其他模块连接在一起,实现系统的远程串口通讯功能。

2 系统硬件设计

2.1 GPRS模块与CPU模块

GPRS模块主要由SIM900A作为核心部件,SIM900A采用了ARM926EJ-S架构,可通过串口协议发送AT命令进行控制,与CPU模块直接相连。SIM900A的TXD与STM32串口2的RXD相联,SIM900A的RXD引脚与STM32串口2的RXD相联,STM32通过串口2发送AT指令配置SIM900A进入GPRS的TCP工作模式,并将工作状态通过显示模块显示,外部终端通过串口与本系统正确连接,便无需再用AT命令对SIM900A进行配置,只需进行串口数据的收发,便可实现与配置的服务器进行数据交互。

2.2 接口模块与CPU模块

接口模块的核心为SP3232芯片和SP3485芯片,SP3232芯片工作电压为3.3V,可将TTL电平转换为232电平,作为芯片与电脑等设备通信的桥梁。SP3485芯片工作电压为3.3V,可通过串口实现485半双工通信。系统接口模块与主控芯片STM32单片机之间使用跳线连接,可通过跳线灵活的选择不同的系统接口或通信协议工作。接口模块采用D型9针串口和接线端子的物理接口,方便外部终端设备相联。

2.3 电源模块

如图2,电源模块主要使用MP2303芯片和AMS117-3.3芯片。MP2303芯片输入电压为4.75V~28V,可适应大部分场景供电,在终端设备可提供足够功率时,则直接从终端设备连接供电,在终端设备无法提供足够功率时,可使用备用电池等进行供电。SIM900A需提供3.2V~4.8V的电源,故将MP2303芯片的输出电压设置在4.8V,其最大能提供3A的电流,可满足SIM900A的最大供电需求。AMS1117-3.3V通过二极管将MP2303的输出电压作为输入电压,为剩余模块进行提供电源。

图2 电源原理图

3 软件设计

3.1 初始化程序

系统初始化程序负责整个系统的初始化操作,如图3,首先进行中断优先级的初始化;随后延时函数初始化;然后将串口1、3初始化至SIM900A的最高波特率115200;接着判断是否存在LCD,存在则进行LCD的初始化,否则跳过进入内存池初始化,至此STM32的初始化工作完成。接着进行STM900A的初始化工作,首先检测SIM900A模块是否存在,若不存在,在LCD屏幕显示或电脑串口打印错误提示,若SIM900A存在则进行SIM卡的检测,如SIM卡存在问题则给出错误提示,如SIM正常便连续执行AT+CGATT、AT+CIPCSGP等指令,将GPRS模块设置为TCP的CLIENT工作模式,最后将串口波特率、工作模式、本机IP及端口号、服务器IP地址及端口号显示在LCD屏幕或发送至串口。

图3 初始化流程图

3.2 主程序

系统主程序主要完成串口数据的交互工作和SIM900A的心跳维持。如图4,首先通过串口2的RX_STA判别串口2是否接收到终端的数据,如没有接收到数据,将延时10ms后通过判别串口3是否接收到来自SIM900A的数据,若没有,程序结束,继续循环。当串口2的RX_STA为1,则串口2接收到终端的数据,随后进行解析,查看是否包含配置字段,若包含则将数据解析后写入存储器模块,再次重启时完成新参数的配置更新,如没有包含配置字段,则进行SIM900A心跳检测,若不正常,则发送命令回复心跳,在心跳正常时将数据发送至串口3,数据便会通过SIM9000A发送至服务器,在此过程中会检测数据是否发送成功,没有发送成功时将继续发送至成功。在检测到串口3的RX_STA最高位为1时,则SIM900A接收到来自服务器的数据,STM32会通过USART2的SR检查其是否空闲,在其空闲时将串口3收到的数据通过串口2转发给终端设备。

图4 主程序流程图

4 系统调试

4.1 硬件调试

首先通过调整天线匹配电阻使得天线阻抗为50Ω,随后进行VCC和GND短路检测,接着检测STM32与SIM900A的地线是否均已连接到GND。然后检查STM32与SIM900A、STM32与接口模块的串口通信线是否连接正确,上电后,用万用表测试各模块工作电压是否正常,至系统正常启动显示信息。

4.2 软件测试

使用串口线将本系统与电脑连接,在串口调试助手选择相应的串口号,设置相应的波特率,在网络调试助手选择TCP Server协议;通过串口调试助手发送命令配置服务器IP地址后重启系统,通过网络调试助手发送信息,在串口调试助手可收到相应的数据,在串口调试助手发送信息,在网络调试助手可收到相应的数据,系统通讯正常。图5为串口调试助手收发数据的测试界面,图6为网络调试助手收发数据的测试界面。

图5 串口调试助手测试界面

图6 网络调试助手测试界面

5 结语

系统经过硬件电路设计与调试、软件设计与测试,最终实现基于GPRS的远程串口通讯系统,本系统成本低,使用时仅需将系统和终端设备的串口线和地线连接,便可通过串口代码将数据传输至远端服务器,使用方便快捷,不仅可以缩短开发调试环节时间,也可作为产品应用的无线通讯工具。

猜你喜欢
终端设备助手串口
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
基于MAC 认证的终端网络准入控制系统方案*
基于EM9000工控板高性能双串口通信模型设计与实现
船舶电子设备串口数据的软件共享方法
行车记录仪通信连接方法、行车记录仪及终端设备
电力配网自动化中配电自动化终端设备的应用
电网终端设备信息安全研究
小助手
灵感助手表彰大会(二)
灵感助手表彰大会(一)