基于dsp的以太网-rs422通信转换器的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子质量
2020年第01期(总第394期)
作者简介院王庆贺(1991-),男,硕士研究生,助理工程师,研究方向为嵌入式系统设计与开发。
基于DSP 的以太网-RS422通信转换器的设计与实现
The Design and Implementation of Ethernet-RS422Communication Converter Based on DSP
王庆贺,吴超,唐顺晨,田少华(中国电子科技集团公司第五十八研究所,江苏无锡214072)
Wang Qing-he,Wu Chao,Tang Shun-chen,Tian Shao-hua (China Electronics Technology Group Corporation,NO.58Research Institute,Jiangsu Wuxi 214072)
摘要:现有的一些工业设备使用的是RS422通讯的方式,为了实现这些设备的网络化监控,提出了基于DSP 的以太网-RS422通信转换器的设计,并介绍了主要硬件模块的设计方案、各部分软件实现方法。
系统使用W5300以太网控制器实现UDP 通信,使用ADM2582实现RS422电平转换,DSP 对传输的数据进行两种格式的转换。
经过测试,
该以太网-RS422通信转换器实现了设计要求。
关键词:DSP;以太网;RS422;通信转换中图分类号:TN91
文献标识码:A
文章编号:1003-0107(2020)01-0026-05
Abstract:There are some industrial equipment in RS422communication mode.In order to realize the network monitoring of these devices,this paper put forward the design of ethernet-RS422communication converter based on DSP.This paper presents the design scheme of main hardware modules and the realization method of each part of software.W5300Ethernet controller is used to realize UDP communication,and ADM2582is used to realize RS422level conversion.DSP transform the transmitted data in two formats.After a series of tests,the ethernet-RS422communication converter achieves the design requirements Key words:DSP;Ethernet;RS422;communication conversion CLC number:TN91
Document code:A
Article ID :1003-0107(2020)01-0026-05
0引言
以太网技术是目前使用广泛的通信技术之一,具有组网方便、传输距离长、传输速率高等优点。
随着网络技术的发展,以太网技术在工业控制领域应用也越来越广泛[1]。
RS422也是工业中使用广泛的一种通信接口,可以实现主设备和从设备之间的数据传输。
随着科学技术发展,工业中越来越重视设备的网络化监控与管理,但是现有的一些工业设备仍旧使用RS422通信,因此设计了基于DSP 的以太网-RS422通信转换器实现以太网和RS422两种接口数据的转换。
1系统概述
通信转换器的以太网通信部分使用UDP 协议。
UDP 是无连接的通信协议,即在通信的过程中,数据的发送端和接收端不建立逻辑连接。
也就是说在通信的过程中,无论接收端是否存在,发送端都会直接将数据发送出去,接收端收到数据以后也不会向发送端反馈信息,但可以通过自定义上层协议来保证通信的可靠性[2]。
UDP 通信效率高、消耗资源小。
在工业中,UDP 通信主要应用在面向查询-应答的服务中。
RS422通信是一种全双工的通信方式,
可以同时收
发,使用差动方式发送和接收数据,需要4根信号线,两根用于发送,另外两根用于接收[3]。
RS422支持点对多点的通信方式,422总线上最多只有一个主设备,其余为从设备。
RS422通信的最大传输速率是10Mb/s。
通信转换器具有以太网和RS422通信功能,设计过程中选取了具有相关通信协议的芯片W5300、ADM 2582E 分别来实现以太网、RS422的通信,这样设计的系统更加稳定可靠。
主控芯片使用DSP28335,DSP28335性能高,外设丰富,最高主频150MHz。
系统架构示意图如图1所示。
DSP28335作为主控芯片,既可以将接收到的以太网数据转换为RS422数据通过RS422收发器发送出去,也可以将接收到的RS422数据转换为以太网数据通过W5300以太网控制器发送出去,起着通信桥梁的作用。
存储芯片用于存储一些系统设置的参数。
图1系统架构示意图
2硬件设计
2.1以太网通信模块硬件电路设计
W5300是一款CMOS 工艺的单芯片器件,集成了10/100M 以太网控制器,具有MAC 和TCP/IP 协议栈。
W5300支持16位数据总线,128KB 的存储空间用于数据通信。
数据传输速率最高可达50Mbps。
W5300使用十分方便,运行可靠稳定,
在嵌入式领域应用广泛。
W5300的硬件连接示意图如图2所示。
如图2所示,使用一个25MHz 有源晶振给W5300提供时钟输入信
号。
TEST_MODE[3:0]引脚都是接的低电平,
表示W5300使用的是内部PHY 模式;OP_MODE[2:0]引脚都接低电平,配置内部PHY 的运行模式为正常运行模式。
BIT16EN 引脚接高电平,表示选择16位数据位。
DSP28335通过Xintf 接口和W5300进行通信,DSP28335的读写信号、XINTF Zone 7的片选信号、地址线、数据线等都接到W5300对应的引脚上。
图2W5300硬件连接示意图
2.2RS422通信模块硬件电路设计
系统中使用隔离型RS422收发器ADM2852E,ADM 2852E 支持±15KV ESD 保护,内部集成了隔离式的
DC-DC 电源,并不需要外加DC-DC 隔离模块。
支持5V 或3.3V 供电,传输数据速率可达16Mbps。
图3所示为RS422收发控制电路图。
DSP28335的GPIO14(DSP-TX)和GPIO15(DSP-RX)分别连接到ADM2582E 的TXD 和RXD 引脚上。
DSP 的GPIO 分别将ADM2582E 的DE 引脚拉高,将/RE 引脚拉低,使其处于全双工模式。
为了去耦以及滤波,保证电源的平稳,ADM2852E 的VIOIN、VISOUT 和GND-RS422之间接了0.01uF、0.1uF 和10uF 的电容。
在RS422的接收和发送的总线上添加了TVS 管等器件来增强RS422收发芯片对大的电压和浪涌电流的防护能力。
在RS422总线的接收端添加了120欧姆
的终接电阻来消除反射干扰。
图3RS422收发控制电路图
电子质量2020年第01期(总第394期)
3软件设计
3.1以太网通信软件设计
以太网通信使用W5300以太网控制器实现,由于W5300自带了TCP/IP协议,使用该芯片实现网络通信编程相对简单些[4]。
在使用W5300之前需要进行复位,它不支持上电复位,因而需要使用DSP的GPIO操作它的/reset引脚对其进行复位。
在对W5300复位等待10ms以后就可以对其进行初始化操作。
对W5300的初始化主要的几个步骤是接口的配置、设置网络相关信息和内部TX/RX存储器的分配。
然后初始化要使用的SOCKETn,进行数据的发送和接收以及相关配置。
程序中使用uint32udp_sendto(SOCKET s,uint8* buf,uint32len,uint8*addr,uint16port)进行UDP数据的发送,使用void loopback_udp(SOCKET s,uint16port,uint 8*buf,uint16mode)进行UDP数据的接收。
上位机在与设备通信时,一帧数据的长度远小于1472字节(UDP的MTU是1472字节),在这种情况下,当使用udp_sendto 或者loopback_udp函数发送、接收UDP数据时,总能一次发送或者接收一帧完整的数据,这对通信转换器很重要,因为作为通信转换器有必要维持原数据的完整性、连续性。
3.2RS422通信软件设计
DSP28335共有3个SCI(Serial Communication Inter-face,串行通信接口)接口,SCI的收发器的中断和使能位独立,具有双缓冲接收和发送功能,既可以实现半双工通信,也可以实现全双工通信。
无论RS422通信、RS485通信还是RS232通信,对于DSP28335来说都是SCI 通信。
SCI通信时,发送数据较为简单,直接调用自己编写的发送函数即可,发送函数为void scib_send(unsigned char*msg,int length),未使用发送中断。
而接收数据使用中断的方式,稍微有些复杂。
SCI接收中断服务函数如下,__interrupt void SciB_Isr(void)
{
if(ScibRegs.SCIFFRX.bit.RXFFST>=1&&ScibRcv OverFlag==0)
{
//开启定时器1
StartCpuTimer1();
ReloadCpuTimer1();
ScibRcvBuf[ScibRcvCount++]=
ScibRegs.SCIRXBUF.all;
}
ScibRegs.SCIFFRX.bit.RXFFOVRCLR=1;
ScibRegs.SCIFFRX.bit.RXFFINTCLR=1;
PieCtrlRegs.PIEACK.all=PIEACK_GROUP9;
}
在使用串口接收数据时,一般需要判断是否已经接收完一帧数据,常用的方法是数据中添加帧头、帧尾,根据帧头帧尾来判断是否接收完一帧数据[5]。
这种方法不够通用,对数据是有要求的。
可以看到,本文使用的SCI 接收中断服务函数中使用了定时器,使用的是超时判断一帧完整数据的方法。
串口通信时,一帧数据中字节与字节之间的间隔很短,根据这个特点,在连续接收字节数据时,程序会不断进入SCI接收中断服务函数,定时器1不断重新计时,由于时间短计时未结束就重置了定时器,程序不会进入定时器1的中断服务函数,而当接收完某个字节一段较长时间后还没有新的字节数据的到来时,这时定时器会计时结束,程序会进入了定时器中断服务函数,ScibRcvOverFlag标志置一,此时就认为一帧数据接收完毕。
需要选择合适的定时器计时时间。
3.3以太网-RS422数据转发程序设计
以太网-RS422通信转换器的核心功能就是将以太网UDP数据转换成RS422数据或者将RS422数据转换成以太网UDP数据。
程序中的UDP数据的接收和发送、RS422数据的发送都放在主程序的while循环中,如前所述RS422数据的接收是放在SCI接收中断服务函数中实现的,图4所示为以太网和RS422数据转发流程图。
(a)以太网数据发送到RS422
总线
(b)RS422数据发送到以太网
图4以太网和RS422数据转发流程图
在主程序while循环中,使用loopback_udp函数检查是否接收到UDP数据,一旦接收到UDP数据立即将数据放到UDP接收缓冲区中,然后调用scib_send函数将数据通过SCI发送出去,数据输出到RS422总线上。
类似地,在主循环中检查串口接收完成标志ScibRcv OverFlag,该标志一旦置一,立即将SCI接收缓冲区ScibRcvBuf中的数据通过udp_sendto函数发送出去,完成RS422到以太网数据的转换。
4实验测试与结果
实验时,使用网线和USB转RS422数据线将本文设计的通信转换器和电脑连接起来,网络调试助手设置在UDP模式,串口调试助手需要配置好波特率等相关参数。
测试时,网络数据的发送间隔是5ms,串口数据的发送间隔也是5ms,串口通信波特率为115200。
网络调试助手和串口调试助手都启动,同时向以太网-RS422通信转换器发送数据。
网络调试助手和串口调试助手收发数据截图如图5所示,可以看到,网络调试助手发送了120120字节,经过通信转换器后,串口调试助手恰好接收到120120字节数据,同样地,网络调试助手接收的数据量也是串口调试助手发送的数据量。
以上数据说明在当前测试条件下本文设计的以太网-RS422通信转换器可靠地实现了以太网数据和RS422数据的转发,未出现丢包现象。
从实验结果可以看出,基于DSP的以太网-RS422通信转换器可以实现所需功能,而且比较可靠。
(a)网络调试助手
(b)串口调试助手
图5网络调试助手和串口调试助手收发数据截图
5结束语
本文结合以太网和RS422通信技术,设计了基于DSP的以太网-RS422通信转换器。
本文详细地介绍了W5300、RS422的硬件电路以及以太网通信、RS422通信软件设计,并通过实验对通信转换器进行了测试和验证,根据测试数据可以看出通信转换器实现了以太网和RS422数据间的相互转发功能,达到了系统设计的要求,能够满足现有的某些使用RS422
通信的工业设备
下转35页
网络化监控的需求。
参考文献:
[1]蔡晨曦,秦会斌.基于以太网的多仪器数据监控系统[J].电子与封装,2015,15(6):44-48.
[2]许坤,赵亮.基于UDP协议的可靠数据传输的实现[J].科技创新导报,2019,16(17):7-8.[3]边庆,吴琳,段小虎.基于双缓冲和FPGA的RS422接口电路设计[J].信息通信,2017,(4):55-56.
[4]倪晓宇,楚建安,严建海.基于W5300以太网接口的伺服控制系统设计[J].电子设计工程,2016,24(3):102-103, 106.
[5]李逸楠,孙丽君,王欣,等.一种基于SLIP协议的串行数据解析方法[J].科技与创新,2019,(12):25-28,30.
断提升制度的执行力。
律人先正己,消除工作中的混乱,让我们先从消除制度建设的"误区"做起。
4结束语
古人云:路漫漫而修远兮、吾将上下而求索。
这也是现代企业制度建设过程所必需经历和继续面对的,制度建设不仅要"管得住现在",更要能"跟得上未来"。
作为一项功在当代、利在千秋的企业基础性建设工作,只有不断经过系统的策划、严谨的运筹、稳步的推进、严格的执行,克服在制定与执行过程中的各种问题,切实提高制度的有效性,才能真正让制度在企业经营管理中发挥作用,
促进企业的健康发展和不断壮大。
上接29
页。