刘 艺 沈阳理工大学信息科学与工程学院 110159
【文章摘要】
为了实现现有以RS232 为通讯方式的设备的网络化监控和管理,提出了以太网转RS232 的转换器设计。利用STM32F103 实现了对转换器的硬件设计,对软件模块进行了功能划分,利用主程序和中断服务程序对转换器功能进行软件实现。设计的以太网转RS232 转换器具有较强的通用性, 在不改变硬件平台的情况下,仅对软件的处理模块进行少量修改便能适应各种RS232 协议。
【关键词】
以太网;RS232 ;协议转换;STM32
【Abstract】
In order to monitor and manage the existed device with RS232 communication protocol,Ethernet to RS232 converter design is necessary.The converter hardware design used STM
【Key words】
ethernet;RS232;protocol convert;STM32
0 引言
RS232 是工业中应用非常广泛的接口之一,它实现着主设备与从设备之间的数据交互,该技术已经应用于较多的设备现场中。随着科技的发展和互联网技术的飞速发展,人们对设备的监控和传感器信息的网络化管理和显示提出了更高的要求,为了使现有的设备具备网络监控和管理的能力,以太网转RS232 的转换器是一个必不可少的网络转换模块之一。
1 转换器的硬件设计
1.1 转换器的总体框架设计
转换器具有以太网与RS232 之间协议转换功能,所以在系统硬件设计时选取具有以太网和RS232 模块的芯片, 用户不必为实现以太网和RS232 而增加外围电路,不仅可以节约开发费用和时间,而且可以极大地提高系统的可靠性和稳定性。为了实现项目的开发,选用目前工业上应用比较广泛的控制系统开发芯片STM32F103 作为系统控制主芯片。STM32 是一种基于Cotex-M3 内核的新型的32 位闪存微控制器,采用了高性能、高代码密度的Thumb-2 指令集和紧耦合嵌套向量中断控制器,拥有多个RS232 接口和一个RMII 接口的以太网,具有高性能、低成本和低功耗等优点。
转换器硬件总体结构图如图1 所示。监控系统可以通过双绞线或Wi-Fi 与路由器相连,路由器通过双绞线与转换器相连。监控系统由此可以与转换器进行数据交互。具有RS232 接口的设备,通过RS232 接口与转换器相连,并进行数据交互。
1.2 以太网模块电路设计
为了实现STM32F103 芯片与以太网的连接,必须要在芯片和以太网之间加上一个物理层的接口芯片,本文选用了ENC28J60 以太网控制器来实现连接, STM32F103 与ENC28J60 的电路图如图2 所示。ENC28J60 是目前常用的一款独立以太网控制器,符合IEEE 802.3 协议规范。ENC28J60 带有行业标准串行外设接口(SPI),通过SPI 接口与主控制器的通信,嵌入式应用系统的以太网接口由此变得简单,数据传输速率高达10 Mbit/s。ENC28J60 由七个主要功能模块组成:SPI
图1 以太网转RS232 模块结构框图
图2 转换器以太网接口电路图
电子科技
Electronics Technology
电子制作
接口、控制寄存器、双端口RAM 缓冲器、判优器、总线接口、MAC 模块、PHY 模块。
1.3 RS232 串行接口电路设计
RS232 串行通讯接口用正负电压来表示逻辑状态,+3~+15V 表示逻辑电平“
2 转换器软件设计
由于STM32 内部没有TCP/IP 协议,所以需要通过移植LWIP 协议来实现以太网功能。LWIP 协议即Light Weight IP 协议, 对操作系统没有依赖性,可以在没有操作系统支持的情况下运行,LWIP 可以实现TCP/IP 协议主要功能,同时有不会占用太多的RAM,这对于RAM 资源不足的低端嵌入式设备是非常合适的。LWIP 主要是完成IP 层和TCP/UDP 数据传输层的任务, 它与底层网络控制器的接口主要体现在ethernetif.c 函数中。在以太网帧的接受过程中,IP 层在收到底层传来的以太网数据包后,首先判断是TCP 数据包还是UDP 数据包,如果是TCP 数据包,则利用TCP 协议的数据传输层处理数据包,如果是UDP 数据包,则利用UDP 协议的数据传输层处理数据包,在处理完数据包后将数据发送到用户应用程序。在以太网帧的发送过程中, 用户程序通过UDP 或者TCP 将数据包发送至各自对应的传输层,再经过IP 层将数据包送至底层,由发送程序发出。
为了实现以太网模块和RS232 模块之间的数据通讯,转换器需要具有接收以太网数据、发送以太网数据、发送RS232 数据、接收RS232 数据和数据处理5 个部分。5 个部分之间的关系如图4 所示。
转换器将来自以太网的数据包进行解包并生成RS232 数据,然后通过RS232 串口将数据发送到设备端;转换器将来自设备的监测数据封装成1 帧1 帧的以太网数据包通过以太网送到监控系统,监控系统可根据收到的数据判断各个监控模块的运行状态。
数据处理模块是汇聚节点中完成TCP/IP 协议与RS232 协议转换的核心, 无论是从以太网至RS232 接口,还是由RS232 至以太网都必须由数据处理模块完成协议转换。
确定了软件功能和划分了功能模块之后,进行主程序设计,主程序设计的流程图如图5 所示。首先是对STM32 芯片初始化,初始化包括:GPIO 初始化、中断初始化、以太网初始化和RS232 初始化。GPIO 初始化主要是定义各个引脚的功能及各IO 端口相关参数;中断初始化用于设定中断向量、中断的入口函数及中断的优先级;以太网初始化用于设定以太网的相关参数;RS232 初始化用于设定RS232 接口的相关参数。
在初始化完成后,需要判断数据的形式才能采取相应的处理。在这里用状态位来做判断,若状态位改变为2,模块接收RS232 数据,并对RS232 数据进行处理和封包,然后通过以太网发送到监控主机, 同时状态位清零;若状态位改变为1,模块接收以太网数据,并对以太网数据进行解包和处理,然后通过RS232 串口将数据送给ZigBee 模块;若状态位为0,不做任何处理,为下一次数据接收做准备。
3 结束语
以太网转RS232 转换器可以方便地利用网络对现有的许多以RS232 为通讯方式的设备进行操控和监测,可以使设备的网络化水平大大提高,也可以提高人们对现有设备的网络化管理、网络化监控和网络化故障诊断。以太网转RS232 转换器同时具有较强的通用性,设备之间的RS232 协议会有较大的区别,在不改变硬件的环境下,仅改变其数据处理模块,便可以实现多设备之间的硬件平台共用,模块的复用性较强,可广泛应用于各种环境的监测。
【参考文献】
[1] 王永虹, 徐炜, 郝立平.STM32 系列ARM Cortex-M3 微控制器原理与实践[M]. 北京: 北京航空航天大学,2008.
[2] 范钦武. 基于Arduino 和ENC28J60 的温湿度监控系统设计[J]. 科技视界,2014,23:108-109.
[3] 周淑华. 单片机以太网通信实现软硬件操作同步[J]. 电脑编程技巧与维护,2014,2:53-55.
[4] 陈聪, 曲波. 基于ENC424J600 的以太网与串行接口转换技术[J]. 单片机与嵌入式系统应用,2011, 12(135): 37-39.
图3 转换器RS232 接口电路图
图5 程序流程图
图4 转换器的软件模块关系003