2024年6月12日发(作者:封志专)
第39卷 第11期
2021年 11月
中图分类号:TP393.11
数字技术与应用
Digital Technology &Application
文献标识码:A
Vol.39 No.11
November 2021
2021年第 11 期
文章编号:1007-9416(2021)11-0205-03
DOI:10.19695/12-1369.2021.11.65
基于W5300的DSP工业以太网数据传输设计
杭州卓天科技有限公司 郭炎鹏 金理剑 陈国栋
介绍了一种采用DSP总线挂载W5300以太网协议芯
优化。
片实现工业以太网数据传输的软硬件设计及优化方法。
1 W5300以太网协议芯片
该设计实现了TCP/IP协议数据高性能、高稳定性传输,
W5300是韩国WIZnet公司设计的一款0.18μm CMOS
并在项目工程实践中得到广泛应用。
专用网络协议芯片器件,内部已经集成了TCP/IP协议
0 引言
工业以太网技术是目前工业领域最广泛的网络数据
传输技术,能满足工业应用中的高稳定、高效率、低时
延、低成本、远距传输、智能化、易集成等多种需求。根据
其技术应用特点,在工业生产过程的控制及管理领域得
到广泛应用。工业以太网解决方案目前有三种:(1)采用
中央处理器单元(Central Processing Unit,CPU)与物
理层接口芯片连接,在控制器内编写以太网(Ethernet)通
信协议。此种方法需要耗费大量的时间精力去编写繁杂
协议程序及进行后期调试,网络协议比较庞大和复杂,
程序稳定性往往会出现问题,对快速开发系统与可靠运
行是不利的。(2)在嵌入式系统上运行Linux操作系统,
因操作系统自带TCP/IP等复杂的通信协议,可方便实
现以太网通信,但该方法需对操作系统比较熟悉,移植
难度大、专业性强、开发周期长。(3)将网络协议芯片独立
于系统处理器CPU之外,只需要系统处理器CPU对网络
协议芯片进行总线访问,实现寄存器读写就可以进行以
太网传输通信,此方式采用硬件模块化替代软件开发,分
担处理器CPU负担,系统硬件简单,软件稳定,开发周期
短,利于后期维护升级。因此,本文基于第三种工业以太
网解决方案,设计了一种采用DSP TMS32F28335总线
挂载外设W5300以太网协议芯片实现TCP/IP网络数据
传输,并重点对硬件连接和软件可靠性设计进行研究和
收稿日期:2021-08-02
栈、10/10OM以太网控制器、MAC和PHY。W5300与主
机采用总线连接,支持8位/16位的数据总线。它支持8路
独立的Socket通信,内部含128KB的发送/接收缓冲区进
行快速数据交换,最大有效通信速率可达70Mbps
[1]
。使用
W5300不需要主机干预,内部自己处理所有以太网底层
通信协议,只需要对端口(Socket)进行配置和编程。
W5300内部设置了三种寄存器,包括模式寄存器(MR)、通
用寄存器(COMMON)和端口寄存器(SOCKET)。模式寄
存器可设置接口模式和总线宽度;配置寄存器设置中断
寄存器、硬件地址、网关地址、本机IP地址和传输存储器
大小;端口寄存器可实现数据的接收和发送及访问端口
的发送/接收缓冲寄存器。该芯片集成了各种通信协议进
行硬件逻辑化处理,可实现简单、快捷、稳定的Internet连
接,大大提高了网络传输开发效率,广泛应用于高性能、
低成本工业以太网网络传输领域。
.. All Rights Reserved.
2 TMS320F28335与W5300的硬件接口连接
DSP TMS320F28335为主处理器CPU,通过地址线和
数据线与W5300相连。在直接地址模式下,主处理器F28335
将W5300内模式寄存器(MR)、通用寄存器(COMMON)和
端口寄存器(SOCKET)映射到存储空间,直接访问W5300
的上述寄存器。这些寄存器从主机系统的基地址开始以2
字节递增方式连续映射在主机存储器空间。使用映射地
址,只需0x400字节的存储器空间。
作者简介:郭炎鹏(1980—),男,湖北天门人,本科,高级工程师,研究方向:大功率高压电源的软硬件设计研发。
205
第 39 卷 数字技术与应用
本设计W5300片选信号接F28335的ZONE6区,
W5300映射地址占用F28335从0x100000到0x1003FF共
2K的地址空间。W5300 10位地址线和16位数据线以及读
写信号线直接与F28335连接,不需要电平转换。F28335的
GPIO连接W5300的复位信号进行硬件强制复位, W5300
的中断信号线接入F28335的外部中断XINTl。W5300的
BIT16EN引脚决定数据总线模式:BIT16EN拉高时为16
位宽数据总线模式,BIT16EN拉低时为8位宽数据总线模
式
[2]
。本设计采用W5300其他引脚如BIT16EN拉高到3.3V,
定义为16位宽数据总线模式;TEST_MODE[3∶0]4个引脚
接低电平,定义为使用内部PHY模式(正常运行模式);
OP_MODE[2∶0]3个引脚均接低电平,定义为全功能自动
握手模式。该系统结构图如图1所示。
由系统硬件连接图可看出,该方案硬件电路简单,形
式类似于DSP芯片总线挂载外设SRAM,只额外增加了
复位和中断两条控制线。
RCR等寄存器配置本机硬件地址、本机IP地址、子网掩码、
网关地址、超时重发及重发次数。第三步分配SOCKETn内
部TX/RX存储器空间。通过设置MTYPER=0x00FF,使
第1到第8个存储单元为TX,其他8个存储单元为RX。设
TMSR=0x0808,RMSR=0x0808,使每个SOCKETn的
TX/RX存储器都为8KB。
3.2 W5300数据传输流程
W5300初始化之后,在TCP模式下,首先根据IP地址
和端口号与对端建立连接。建立SOCKETn连接有两种
方式:一种是“TCP服务器”模式,等待对端的连接请求
当收到连接请求时建立连接(被动打开);另一种是“TCP
客户端”模式,主动发出连接请求,与对端建立连接(主动
打开)。
一般DSP主控制系统是作为服务器使用,本设计
W5300配置为TCP服务器模式,完成主要步骤为:设置侦
听端口号,执行端口打开、侦听对端连接请求、连接建立
后数据的接收和发送以及主动或被动断开连接请求等。
具体步骤如下:
第一步初始化SOCKETn。在TCP服务器模式为实现
SOCTKETn的TCP通信:
(1)首先设置Sn_CR为CLOSE,使Sn关闭,Sn_SSR变
为SOCK_CLOSED;
(2)设置Sn_MR=0x0001,使SOCTKETn采用TCP协
议;
(3)通过Sn_PORTR寄存器设置本机侦听端口号;
3 系统软件设计
3.1 W5300初始化配置
.. All Rights Reserved.
第一步设置W5300初始化。由于W5300不支持上电复
位,初始化之前须硬件复位,DSP GPIO引脚/RESET产
生一个低电平脉冲,脉冲宽度持续大于2us。复位完成后
设置W5300的MR=0x0000,W5300与主机的接口模式为
直接总线模式MR(IND)为0;设置IR=0x0000,清所有中
断标志;IMR=0x00FF允许8个SOCKETn中断。第二步网
络设备初始化。通过SHAR、SIPR、SUBR、GAR、RTR和
图1 系统硬件接线
Fig.1 System hardware wiring
206
郭炎鹏 金理剑 陈国栋:基于W5300的DSP工业以太网数据传输设计
2021年第 11 期
(4)设置Sn_CR=OPEN,打开端口。经过延时,若Sn_
SSR变为SnCK_INIT,则SOCKETn端口打开初始化完
成,否则重复执行(1)~(4)步。
第二步侦听对端连接并建立连接。设置Sn_CR为
LISTEN,一直扫描Sn_SSR直至变为ESTABLISHED,否
则关闭SOCKET重新进行端口打开并重复侦听过程。直
至连接已建立,可以进行数据传输。
第三步接收数据。以中断的方式实现接收数据。
(1)W5300设置允许接收中断,在中断服务程序中扫描
Sn_IR为RECV接收数据中断,调用W5300数据接收函数;
(2)执行数据接收函数;首先通过读取Sn_MR寄存器
ALIGN标志位计算接收数据的长度。S0_CR执行RECV
指令,然后从RX存储器中移出相应长度接收的数据,最
后通过解析接收数据执行回复发送命令。
第四步发送数据。执行W5300发送函数。
(1)读取发送缓冲存储器的剩余空间是否够用。首先
读取Sn_TX_FSR寄存器大小,判断是否可以发送数据。
如果发送的字节数小于等于Sn_TX_FSR,则可以向
W5300发送缓冲寄存器中写入数据。
(2)若非首次发送操作,在运行SEND指令前,需查询
Sn_IR状态是否为SENDOK,Sn_IR=SENDOK证明上一
次数据发送已成功完成,可执行发送SEND指令。如果上
一次的发送指令还没有执行完而又开始下一次的发送指
令,将会产生错误和故障。
第五步主动或被动断开连接。
当Sn_IR=DISCON接收到对端发来的断开连接中断,
则被动执行断开连接的处理,可执行CLOSE或DISCON指
令来断开与客户端的连接。若连接请求、数据传输、ARP
请求或其响应等数据包超时发送,将产生TIMEOUT中
断,W5300主动执行CLOSED或DISCON指令来断开与客
户端的连接。在TCP服务器模式下关闭端口后W5300再
次打开端口均回到LISTEN状态等待下次连接。
4 系统优化设计
从软件实际测试情况来看,在非正常断网下,有可能
出现网络连接一直建立,SOCKET处于OPEN状态没有
执行CLOSED的情况,此种情况反复多次出现后,8个端
口(Socket)被全部打开,则后续无法建立新的SOCKET连
接,出现网络故障。在软件优化上采用定时检测数据交换
情况,一旦某个SOCKET连接长时间无数据交换,W5300
可以主动执行CLOSED关闭该端口。释放SOCKET端口,
然后重新打开执行LISTEN,建立新的连接,从而避免上
述网络故障情况出现。软件经过优化后未出现断网情况,
极端情况下也可自己恢复通信功能。
TMS320F28335访问W5300的速率直接决定了W5300
通信传输速度。通过对TMS320F28335软件进行优化可以
减小对W5300访问时间,提升程序代码执行速率。TMS
320F28335程序代码一般存放在片内FLASH中,如果代
码直接在FLASH中执行则程序读写等待周期长,代码执
行效率低。但如果代码在片内SARAM中执行,程序读写
周期可相对提高5倍速率,大大提高了代码执行效率。因
此程序在TMS320F28335上电初始化后立即将代码从
FLASH寄存器的搬移至SARAM中执行,采用FLASH流
水线功能,这样可以减小访问等待周期,大大这样提升
DSP执行代码的效率,提高W5300的通信传输速度
[3]
。将
FLASH程序搬移至SARAM代码如下:
memcpy( &RamAppFuncsRunStart,
&RamAppFuncsLoadStart,
&RamAppFuncsLoadEnd - &RamAppFuncsLoad
Start);
5 结语
本文详细介绍了DSP TMS320F28335挂载W5300以
太网协议芯片的软硬件设计及优化方案。该设计方案可实
现高性能、低成本工业以太网网络数据传输。经工程验证,
系统在TCP/IP协议的数据通信方面具有稳定可靠表现。
引用
[1] W5300数据手册-v1.1.1[2021-08-13]..
.
[2] 吕翠玉,於成业.基于W5300以太网与S7-1200通讯系统的
设计[J].电子世界,2021(2):182-183.
[3] 孙中禹.数字信号处理器TMS320F2812的片内FLASH应用
程序设计[J].电子元器件应用,2009,11(12):28-30.
207
.. All Rights Reserved.
2024年6月12日发(作者:封志专)
第39卷 第11期
2021年 11月
中图分类号:TP393.11
数字技术与应用
Digital Technology &Application
文献标识码:A
Vol.39 No.11
November 2021
2021年第 11 期
文章编号:1007-9416(2021)11-0205-03
DOI:10.19695/12-1369.2021.11.65
基于W5300的DSP工业以太网数据传输设计
杭州卓天科技有限公司 郭炎鹏 金理剑 陈国栋
介绍了一种采用DSP总线挂载W5300以太网协议芯
优化。
片实现工业以太网数据传输的软硬件设计及优化方法。
1 W5300以太网协议芯片
该设计实现了TCP/IP协议数据高性能、高稳定性传输,
W5300是韩国WIZnet公司设计的一款0.18μm CMOS
并在项目工程实践中得到广泛应用。
专用网络协议芯片器件,内部已经集成了TCP/IP协议
0 引言
工业以太网技术是目前工业领域最广泛的网络数据
传输技术,能满足工业应用中的高稳定、高效率、低时
延、低成本、远距传输、智能化、易集成等多种需求。根据
其技术应用特点,在工业生产过程的控制及管理领域得
到广泛应用。工业以太网解决方案目前有三种:(1)采用
中央处理器单元(Central Processing Unit,CPU)与物
理层接口芯片连接,在控制器内编写以太网(Ethernet)通
信协议。此种方法需要耗费大量的时间精力去编写繁杂
协议程序及进行后期调试,网络协议比较庞大和复杂,
程序稳定性往往会出现问题,对快速开发系统与可靠运
行是不利的。(2)在嵌入式系统上运行Linux操作系统,
因操作系统自带TCP/IP等复杂的通信协议,可方便实
现以太网通信,但该方法需对操作系统比较熟悉,移植
难度大、专业性强、开发周期长。(3)将网络协议芯片独立
于系统处理器CPU之外,只需要系统处理器CPU对网络
协议芯片进行总线访问,实现寄存器读写就可以进行以
太网传输通信,此方式采用硬件模块化替代软件开发,分
担处理器CPU负担,系统硬件简单,软件稳定,开发周期
短,利于后期维护升级。因此,本文基于第三种工业以太
网解决方案,设计了一种采用DSP TMS32F28335总线
挂载外设W5300以太网协议芯片实现TCP/IP网络数据
传输,并重点对硬件连接和软件可靠性设计进行研究和
收稿日期:2021-08-02
栈、10/10OM以太网控制器、MAC和PHY。W5300与主
机采用总线连接,支持8位/16位的数据总线。它支持8路
独立的Socket通信,内部含128KB的发送/接收缓冲区进
行快速数据交换,最大有效通信速率可达70Mbps
[1]
。使用
W5300不需要主机干预,内部自己处理所有以太网底层
通信协议,只需要对端口(Socket)进行配置和编程。
W5300内部设置了三种寄存器,包括模式寄存器(MR)、通
用寄存器(COMMON)和端口寄存器(SOCKET)。模式寄
存器可设置接口模式和总线宽度;配置寄存器设置中断
寄存器、硬件地址、网关地址、本机IP地址和传输存储器
大小;端口寄存器可实现数据的接收和发送及访问端口
的发送/接收缓冲寄存器。该芯片集成了各种通信协议进
行硬件逻辑化处理,可实现简单、快捷、稳定的Internet连
接,大大提高了网络传输开发效率,广泛应用于高性能、
低成本工业以太网网络传输领域。
.. All Rights Reserved.
2 TMS320F28335与W5300的硬件接口连接
DSP TMS320F28335为主处理器CPU,通过地址线和
数据线与W5300相连。在直接地址模式下,主处理器F28335
将W5300内模式寄存器(MR)、通用寄存器(COMMON)和
端口寄存器(SOCKET)映射到存储空间,直接访问W5300
的上述寄存器。这些寄存器从主机系统的基地址开始以2
字节递增方式连续映射在主机存储器空间。使用映射地
址,只需0x400字节的存储器空间。
作者简介:郭炎鹏(1980—),男,湖北天门人,本科,高级工程师,研究方向:大功率高压电源的软硬件设计研发。
205
第 39 卷 数字技术与应用
本设计W5300片选信号接F28335的ZONE6区,
W5300映射地址占用F28335从0x100000到0x1003FF共
2K的地址空间。W5300 10位地址线和16位数据线以及读
写信号线直接与F28335连接,不需要电平转换。F28335的
GPIO连接W5300的复位信号进行硬件强制复位, W5300
的中断信号线接入F28335的外部中断XINTl。W5300的
BIT16EN引脚决定数据总线模式:BIT16EN拉高时为16
位宽数据总线模式,BIT16EN拉低时为8位宽数据总线模
式
[2]
。本设计采用W5300其他引脚如BIT16EN拉高到3.3V,
定义为16位宽数据总线模式;TEST_MODE[3∶0]4个引脚
接低电平,定义为使用内部PHY模式(正常运行模式);
OP_MODE[2∶0]3个引脚均接低电平,定义为全功能自动
握手模式。该系统结构图如图1所示。
由系统硬件连接图可看出,该方案硬件电路简单,形
式类似于DSP芯片总线挂载外设SRAM,只额外增加了
复位和中断两条控制线。
RCR等寄存器配置本机硬件地址、本机IP地址、子网掩码、
网关地址、超时重发及重发次数。第三步分配SOCKETn内
部TX/RX存储器空间。通过设置MTYPER=0x00FF,使
第1到第8个存储单元为TX,其他8个存储单元为RX。设
TMSR=0x0808,RMSR=0x0808,使每个SOCKETn的
TX/RX存储器都为8KB。
3.2 W5300数据传输流程
W5300初始化之后,在TCP模式下,首先根据IP地址
和端口号与对端建立连接。建立SOCKETn连接有两种
方式:一种是“TCP服务器”模式,等待对端的连接请求
当收到连接请求时建立连接(被动打开);另一种是“TCP
客户端”模式,主动发出连接请求,与对端建立连接(主动
打开)。
一般DSP主控制系统是作为服务器使用,本设计
W5300配置为TCP服务器模式,完成主要步骤为:设置侦
听端口号,执行端口打开、侦听对端连接请求、连接建立
后数据的接收和发送以及主动或被动断开连接请求等。
具体步骤如下:
第一步初始化SOCKETn。在TCP服务器模式为实现
SOCTKETn的TCP通信:
(1)首先设置Sn_CR为CLOSE,使Sn关闭,Sn_SSR变
为SOCK_CLOSED;
(2)设置Sn_MR=0x0001,使SOCTKETn采用TCP协
议;
(3)通过Sn_PORTR寄存器设置本机侦听端口号;
3 系统软件设计
3.1 W5300初始化配置
.. All Rights Reserved.
第一步设置W5300初始化。由于W5300不支持上电复
位,初始化之前须硬件复位,DSP GPIO引脚/RESET产
生一个低电平脉冲,脉冲宽度持续大于2us。复位完成后
设置W5300的MR=0x0000,W5300与主机的接口模式为
直接总线模式MR(IND)为0;设置IR=0x0000,清所有中
断标志;IMR=0x00FF允许8个SOCKETn中断。第二步网
络设备初始化。通过SHAR、SIPR、SUBR、GAR、RTR和
图1 系统硬件接线
Fig.1 System hardware wiring
206
郭炎鹏 金理剑 陈国栋:基于W5300的DSP工业以太网数据传输设计
2021年第 11 期
(4)设置Sn_CR=OPEN,打开端口。经过延时,若Sn_
SSR变为SnCK_INIT,则SOCKETn端口打开初始化完
成,否则重复执行(1)~(4)步。
第二步侦听对端连接并建立连接。设置Sn_CR为
LISTEN,一直扫描Sn_SSR直至变为ESTABLISHED,否
则关闭SOCKET重新进行端口打开并重复侦听过程。直
至连接已建立,可以进行数据传输。
第三步接收数据。以中断的方式实现接收数据。
(1)W5300设置允许接收中断,在中断服务程序中扫描
Sn_IR为RECV接收数据中断,调用W5300数据接收函数;
(2)执行数据接收函数;首先通过读取Sn_MR寄存器
ALIGN标志位计算接收数据的长度。S0_CR执行RECV
指令,然后从RX存储器中移出相应长度接收的数据,最
后通过解析接收数据执行回复发送命令。
第四步发送数据。执行W5300发送函数。
(1)读取发送缓冲存储器的剩余空间是否够用。首先
读取Sn_TX_FSR寄存器大小,判断是否可以发送数据。
如果发送的字节数小于等于Sn_TX_FSR,则可以向
W5300发送缓冲寄存器中写入数据。
(2)若非首次发送操作,在运行SEND指令前,需查询
Sn_IR状态是否为SENDOK,Sn_IR=SENDOK证明上一
次数据发送已成功完成,可执行发送SEND指令。如果上
一次的发送指令还没有执行完而又开始下一次的发送指
令,将会产生错误和故障。
第五步主动或被动断开连接。
当Sn_IR=DISCON接收到对端发来的断开连接中断,
则被动执行断开连接的处理,可执行CLOSE或DISCON指
令来断开与客户端的连接。若连接请求、数据传输、ARP
请求或其响应等数据包超时发送,将产生TIMEOUT中
断,W5300主动执行CLOSED或DISCON指令来断开与客
户端的连接。在TCP服务器模式下关闭端口后W5300再
次打开端口均回到LISTEN状态等待下次连接。
4 系统优化设计
从软件实际测试情况来看,在非正常断网下,有可能
出现网络连接一直建立,SOCKET处于OPEN状态没有
执行CLOSED的情况,此种情况反复多次出现后,8个端
口(Socket)被全部打开,则后续无法建立新的SOCKET连
接,出现网络故障。在软件优化上采用定时检测数据交换
情况,一旦某个SOCKET连接长时间无数据交换,W5300
可以主动执行CLOSED关闭该端口。释放SOCKET端口,
然后重新打开执行LISTEN,建立新的连接,从而避免上
述网络故障情况出现。软件经过优化后未出现断网情况,
极端情况下也可自己恢复通信功能。
TMS320F28335访问W5300的速率直接决定了W5300
通信传输速度。通过对TMS320F28335软件进行优化可以
减小对W5300访问时间,提升程序代码执行速率。TMS
320F28335程序代码一般存放在片内FLASH中,如果代
码直接在FLASH中执行则程序读写等待周期长,代码执
行效率低。但如果代码在片内SARAM中执行,程序读写
周期可相对提高5倍速率,大大提高了代码执行效率。因
此程序在TMS320F28335上电初始化后立即将代码从
FLASH寄存器的搬移至SARAM中执行,采用FLASH流
水线功能,这样可以减小访问等待周期,大大这样提升
DSP执行代码的效率,提高W5300的通信传输速度
[3]
。将
FLASH程序搬移至SARAM代码如下:
memcpy( &RamAppFuncsRunStart,
&RamAppFuncsLoadStart,
&RamAppFuncsLoadEnd - &RamAppFuncsLoad
Start);
5 结语
本文详细介绍了DSP TMS320F28335挂载W5300以
太网协议芯片的软硬件设计及优化方案。该设计方案可实
现高性能、低成本工业以太网网络数据传输。经工程验证,
系统在TCP/IP协议的数据通信方面具有稳定可靠表现。
引用
[1] W5300数据手册-v1.1.1[2021-08-13]..
.
[2] 吕翠玉,於成业.基于W5300以太网与S7-1200通讯系统的
设计[J].电子世界,2021(2):182-183.
[3] 孙中禹.数字信号处理器TMS320F2812的片内FLASH应用
程序设计[J].电子元器件应用,2009,11(12):28-30.
207
.. All Rights Reserved.