基于STM32和Modbus的串口服务器系统
2018-01-08张永伟康兴无
张永伟,康兴无
(火箭军工程大学 陕西 西安 710025)
基于STM32和Modbus的串口服务器系统
张永伟,康兴无
(火箭军工程大学 陕西 西安 710025)
为满足工业控制中不同功能模块的信息交换、无法联网和远程控制不方便等问题,设计了一种基于STM32微控制器的串口数据采集、处理和传输的串口服务器系统。系统以STM32F103RBT6为核心处理芯片,通过USR-WIFI232-D2双网模组进行WIFI无线传输,并使用RS232和RS485芯片发送和接收低速串口数据。系统采用构造简单、功能强大的Modbus协议作为上层通讯协议,保证了系统运行的稳定可靠。实验表明了串口系统的实时性和可靠性良好,为在通信工程的信号采集与传输提供了一种有效的组网技术方案。
STM32;Modbus;串口服务器;串口总线;WIFI
随着物联网的兴起和网络技术的发展,智能仪器接入网络己成为一种趋势,从而实现数据的共享与远程管理[1-3]。要使串口设备接入网络,目前解决办法是采用串口转以太网服务器的方案,通过串口转以太网服务器将串口数据转换为以太网帧[4]。但以太网存在布线困难、灵活性差等缺点,对于作业环境复杂的工业控制领域,铺设有线以太网比较困难,无法实现大量串口设备与远端用户通信的现实要求[5-6]。WIFI作为一种无线局域网形式,能够克服以太网布线困难、灵活性差的缺点[7]。
传统的串口服务器采集数据单一,不能完成多参数采集,采集端口较少[8-9]。目前,串口服务器普遍使用CPU连接以太网接口芯片。这些芯片只实现了TCP/IP协议的物理层,编程较为复杂,不利于快速开发和稳定运行[10-11]。且大多数串口服务器只能实现有线上传和单个客户端连接,适应性较差。
文中基于STM32微控制器和Modbus协议设计的串口服务器系统设置了多路采集信号输入端,兼容RS485和RS232两种串口。系统使用USRWIFI232-D2双网模组发送和接收以太网数据并通过WIFI技术进行无线传输。其内部集成了TCP/IP协议,不需要编写复杂的TCP/IP协议栈且实现了多个串口设备与一个或多个远端主机通信。现有的串行设备可以方便地接入和局域网以太网,不需要改变原有仪器设备的硬件。客户端可以直接通过网络监控和操作串口设备。该串口服务器基于开放标准设计,易于升级与维护。
1 串口服务器系统概述
串口服务器系统实现串口链路与上位机之间的通信数据的转换与传输。硬件设计包括:控制器最小系统设计、电源模块的设计、串口模块的设计和网络模块的设计等。软件设计的目的是完成通信协议的转换工作,实现上下行通信、参数配置、数据封包策略和数据缓冲等。串口服务器作为远端上位机和串行设备之间的桥梁,通过协议转化达到数据在系统间的透明传输[12]。串口服务器系统结构原理图如图1所示。
图1 串口服务器系统结构原理图
2 串口服务器硬件设计
服务器系统的信号输入接口设计采用RS485/RS232双模接口。输出端通过WIFI技术连接连接局域网或以太网,串口总线则可以完成中短距有线传输。硬件设计结构如图2所示,系统以STM32F103RBT6为核心,该处理器性价比高,是一款基于Cortex-M3内核的32位增强型闪存微控制器,Cortex-M3内核支持Thumb-2指令集,能够迅速完成单周期乘法和硬件除法。它的主频高达72 MHz,完全满足串口通信系统的需要。STM32微控制器嵌入有512 kB的Flash和64 kB的SRAM。其标准外设包括10个定时器、5个USART接口、12条DMA通道和一个支持96位唯一标识码的CRC计算单元等。低电压和节能是STM32微控制器的两大优点,其工作电压范围在2.0 V至3.6 V,能够很好兼容主流电池技术。
图2 串口服务器硬件结构图
2.1 输入转换电路
RS232传输距离约为15 m,异步数据传输速率在0~20 Kbps范围内的通信。RS485弥补了RS232通信距离短、速率低的缺点,还增加了多点和双向通信的能力,采用平衡发送和差分接收,抗共模干扰能力比较强。
在输入接口转换电路中,RS232的电平转换芯片采用Maxim公司的MAX3221。在输入端没有接收到有效的信号电平时,MAX3221片上电源和驱动器能够自动关闭,节能性能比较出色。MAX3221由一个高效、双电荷泵的电源供电,工作电压为+3 V~+5.5 V。RS485电平转换芯片选用SP3485收发器,它的工作电压为+3.3 V,是一个低消耗、半双工收发器,具有低功耗关断模式,数据传输速率最高可达10 Mbps。2款收发器通过74LS08芯片实现RS485和RS232串口双模输入。共有4个输入转换接口,其中一个接口电路为如图3所示。
图3 输入接口转换电路
2.2 输出转换电路
WIFI技术又称802.11标准,它性能稳定,传输速率高,可以达到11Mbps[13-14]。在输出接口转换电路中,WIFI模式是通过 USR-WIFI232-D2串口转WIFI模组实现,该模组是一体化的802.11 b/g/n WIFI和以太网的模组,提供了一种将物理设备连接到WIFI无线网络或是以太网,并提供USART数据传输接口的解决方案。通过该模组,串口设备可以接入WIFI无线网络或是以太网,作为热点可以同时容纳32个WIFI客户端同时接入,也可同时容纳32个TCP客户端。串口通信通过串口转换电路完成。输出串口转换电路如与输入串口转换电路类似,WIFI模组电路如图4所示。
图4 WIFI模组电路
2.3 电源转换电路
系统模组的供电为5 V和3.3 V两种直流稳压电源,串口服务器电源输入端采用12 V直流供电,通过电源转换芯片TPS5430输出稳定的5 V电压,TPS5430负载能力大,使系统工作稳定,转化效率高,有过流保护及热关断功能。再通过2个低压差调节器LM1117为MCU、WIFI模组等提供3.3 V稳压电源,电源转换电路如图5所示。
图5 电源转换电路
3 串口服务器软件设计
串口服务器的软件设计包括Modbus协议的选择、主程序和串口通信子程序等。
Modbus是工业现场设备中是使用很广泛的一种总线协议,支持,如RS232、RS485、以太网等多种电气接口[15]。Modbus协议采用主机查询、从机回复的工作结构。一台主机可以和多台从机进行通信,,地址范围为1-255,地址0用作广播地址。主机能以广播的方式与所有从机进行通信,也能单独与每个从机进行通信,但从机之间无法直接通信[15]。Modbus信息帧格式如表1所示。
表1 Modbus帧格式
文中STM32微控制机为主机,其他为从机。主机主动发起网络中的通信,依次向各个从机发送命令,从机根据接收到的命令做出相应的回应。主机的程序处在循环中查询各个从机,并对回应的数据进行识别和处理。程序设置了超时检测保证系统的可靠性。信息帧以连续的字符流发送,当超过一定的间隔没有字符接收,认为报文结束。通过设置定时中断时间将采集到的数据合成一个帧节再通过串口或者WIFI上传给客户机。主机程序流程如图6所示。
图6 主机流程图
从机一直处在接收的模式,当它接收到数据时,首先判断地址的正确性,如果与自己的地址不一致就丢弃这一帧数据,继续等待新数据,如果地址匹配就进行CRC校验。若校验结果吻合则通信正常,按功能码调用数据采集的子程序,并返回响应帧。若发送的功能码异常,则发送一个异常数据帧给主机。上位机可以主动向串口服务器发送命令帧。
4 串口服务器性能实验
实验中,通过接入4路SM52D无线串口通信模块分别模拟RS485和RS232串口信号输入。上位机采用串口与网口二合一测试软件助手对主机进行参数设置和发送命令帧。实验流程为:串口服务器先通过串口总线接入上位机,串口助手对远端传感器发送采集命令,设置串口服务器上传时间,传输的波特率为9600bps,接收采集信号。断开串口通信,连接WIFI网络,选择TCP Client模式,进行IP地址和端口号等相关设置,发送命令,接收服务器信号。服务器实验实物如图7所示;实验结果如图8所示。
图7 实验实物图
实验表明串口服务器数据传输稳定可靠,在9600bps的串口波特率工作下,性能稳定,无丢包现象,能长时间无差错地实现分布式数据采集。上传的信息帧格式如表2所示。
图8 实验结果图
表2 上传信息帧格式
5 结束语
文中介绍了一种基于STM32微控制器和Modbus协议的串口服务器的设计与实现。服务器系统所需的外围器件少,组网方便,可以通过两种串口总线输入,通过有线或无线方式传输,实现客户机对串口设备的管理和控制。系统传输数据的实时性和可靠性良好,运行稳定,能满足一般工业控制系统数据传输要求。
[1]彭刚,秦志强.基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践[M].北京:电子工业出版社,2011.
[2]Fumitaka Kurauchi.Variability of commuters’bus line choice:an analysis of oyster card data[J].Public Transport,2014,6(1-2):21-34.
[3]Anonymous.Easy-To-Use Controllers,Indicators[J].Plastics Technology.2014,60(8):58.
[4]Boltz,Eric S,Henke,Karl,Boltz.Increasing Efficiency with Advanced Controls[J].Industrial Heating,2014,82(6):38-40.
[5]李勋,刘文怡.基于FPGA的以太网接口设计与实现[J].自动化与仪表,2014(5):57-60.
[6]杨刚,陈健美,宋余庆,等.嵌入式设备与网络数据库交互的中间件设计[J].计算机工程与设计,2013,34(11):3878-3882.
[7]贺洪江,程琳.基于STM32与MODBUS协议的超声波测距仪设计[J].仪表技术与传感器,2014(11):27-33.
[8]彭刚,徐庆江,张崇金,等.基于STM32单片机的RS485总线分布式数据采集系统设计[J].伺服控制,2011(2):64-67.
[9]贺洪江,程琳.基于STM32和Modbus的电参数采集系统[J].自动化与仪表,2014(6):26-29.
[10]董武,陆丽坤,李业丽.基于W5300的以太网和串口数据相互转换系统设计[J].制造业自动化,2013,35(1):139-142.
[11]刘苍,王建业,张景伟.基于ARM的便携式数据采集存储系统设计[J].仪表技术与传感器,2013(8):89-92.
[12]李聪,李春梅,周志群,等.基于STM32数据传输转换接口器的设计与实现[J].计算机工程与设计,2014,35(10):3416-3421.
[13]Yong Cui,Xiao Ma,Hongyi Wang.A Survey of Energy Efficient Wireless Transmission and Modeling in Mobile Cloud Computing[J].Mobile Networks and Applications,2013,18(1):148-155.
[14]Syed Faraz Hasan,Nazmul H.Siddique.Developments and Constraints in 802.11-Based Roadside-to-Vehicle Communications[J].Wireless Personal Communications,2013,69(4):1261-1287.
[15]杨艳华,周永录,苏红军,等.通用串口到Modbus RTU的协议转换器设计与实现[J].计算机测量与控制2014,22(2):606.
A serial device server based on STM32 microprocessor and Modbus protocol
ZHANG Yong-wei,KANG Xing-wu
(The Rocket Force Engineering University,Xi'an 710025,China)
To solve the problems of information exchange,networking and remote control of different function modules in industrial control,a serial device server for the serial data acquisition,processing and transmission based on STM32 microprocessor was designed.System with STM32F103RBT6 as the core processing chip,WIFI wireless transmission through the dual module of USR-WIFI232-D2,and uses the RS232 and RS485 chip sends and receives a low-speed serial data.The system adopts Modbus protocol with simple structure and powerful function as the upper layer communication protocol,which ensures the stability and reliability of the system.The result shows that the real-time performance and reliability of the serial device server provides an effective networking technology for the real-time collection and transmission of the communication engineering.
STM32; Modbus; serial device server; serial bus;WIFI
TN609
A
1674-6236(2017)16-0108-04
2016-06-28稿件编号:201606213
张永伟(1991—),男,福建龙岩人,硕士研究生。研究方向:装备维修与保障。