摘要:为了将以太网通信技术应用于电力自动化系统当中,本文结合电力自动化系统实际详细分析了嵌入式TCP/IP协议的选取原则,采用DSP芯片和网卡接口控制芯片设计了以太网接口,介绍了DSP芯片对网卡接口控制芯片的控制过程和TCP/IP协议栈处理数据包的流程,完成了嵌入式TCP/IP系统的开发。该系统可以将数据按网络协议处理,实现数据的以太网传输。
关键词:DSP;嵌入式系统;TCP/IP;电力系统自动化;以太网
引言
近几年来,我国电力自动化工作取得了很大进展,电力自动化系统的通信方式也不断改进。早是用RS485总线将各种保护、远动设备联在一起,用主从方式与主机通信,方式简单,技术缺陷也比较多。后来出现的现场总线技术因其组网方便、抗干扰能力强等特点得到广泛的应用。现场总线标准有多种,电力自动化系统中常用的是LONWORKS总线和CAN总线两种。LONWORKS总线通信速率为78kbps和1.25Mbps,CAN总线通信速率为1Mbps。随着电网的发展,现场总线标准不统一、传输速率低(也仅为1Mbps左右)的局限性逐渐暴露出来。以太网具有通用性强、技术成熟、带宽迅速增加等特性,工业控制领域出现嵌入式技术,尤其是DSP技术的发展和DSP在工业控制领域的广泛应用,使得在电力自动化系统设计时可以利用嵌入式技术实现以太网通信,为电力自动化提供开放式、全分布、可互操作性的通信平台。网络传输的实时性是电力自动化系统内部通信网的关键指标。以太网带宽达到10Mb/s,可承受的网络负荷很大,加上交换式智能集线器的使用,选择10Mb/s以太网作为变电站自动化系统的内部通信网,其网络传输实时性是有保证的。本文将着重讨论嵌入式TCP/IP协议的选择和DSP实现。
嵌入式协议的选择
TCP/IP协议是一组不同层次上的多个协议的组合,通常被认为是一个包含链路层、网络层、传输层和应用层的四层协议系统[2]。嵌入式系统是为完成某种特定的功能而设计的专用系统。嵌入式系统不要求(也不可能)实现所有的TCP/IP协议,所以嵌入式TCP/IP是对TCP/IP协议族进行选择而形成的协议集合.
链路层协议的选择
链路层协议的选择链路层基本的功能是将物理层提供的原始传送比特流可能出错的物理连接改造为逻辑上无差错的数据连接,为其上层协议发送和接收数据包。以太网遵循IEEE802.3所规定的CSMA/CD(载波监听多路访问及冲突监测)协议,实现该协议可以采用通用的NIC(networkinterfacecontroller网络接口控制)芯片。另外,以太网上数据的传输是采用网络的MAC地址来进行识别的,这就要求系统有实现IP地址到MAC地址的转换功能,即ARP(地址解析)协议。ARP协议包括ARP请求和ARP响应两部分,系统要同其他计算机通信,就必须要支持ARP响应。ARP请求在本地建立了一个IP地址到MAC地址的映射,保证了对外通信的有的放矢。RARP(逆地址解析)协议主要用于解决如何从MAC地址得到IP地址,主要用于无盘工作站中。在本嵌入式系统中可以把IP地址存储于本地存储器中,不必从其他服务器得到IP地址,这样就无需实现RARP协议。
网络层协议的选择
网络层主要负责处理数据包在网络中的活动。在TCP/IP协议族中,网络层协议包括IP协议(网际协议)、ICMP协议(Internet控制报文协议)以及IGMP协议(Internet组管理协议)等。IP协议是TCP/IP族的协议,它使异构网络之间的通信成为可能。因此RTU等系统数据跨越不同的网络进行传输就必须要实现IP协议。ICMP中规定了多种协议类型和代码,如果完全的实现也要耗费不少的系统资源,本嵌入式系统中,在ICMP协议中能够测试网络的连通情况即可,因此只需实现ICMP中类型号为0、代码为0的Ping应答协议。IGMP协议主要用于支持主机和路由器进行组播,在将报文发给多个接收者时,嵌入式TCP/IP作为一种专用系统接入网络的技术,为了降低处理协议的复杂程度,可以直接采用广播方式,不必要采用组播的方式进行通信。因此在设计中不考虑实现IGMP协议。
传输层协议的选择
传输层主要在两台主机之间提供端到端的通信。传输层有两种不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP是面向连接的,在不可靠的网络服务上提供端到端的可靠字节流。TCP协议设计了严格的3次建立连接握手过程、4次关闭连接握手过程以及捎带确认信息并通过滑动窗口进行流量控制的数据传输过程。UDP协议是用来提供不面向连接的,它只是简单地把数据报从一台主机发送到另一台主机,但并不保证该数据报能到达另一端,可靠性必须由应用层来提供。在微机远动和故障录波等实时性要求不太高的设备中采用TCP协议,保证传输的质量。在微机保护和自动控制等实时性要求高的设备中采用UDP协议,其固有的传输可靠性低的缺陷可通过应用层的协议进行弥补。
应用层协议选择
应用层协议主要是指用户进程。在电力自动化系统中,可以采用国际标准远动通信协议IEC60870-5-103或IEC60870-5-104协议等。IEC61850协议草案是IEC(国际电工委员会)针对电力系统自动化制定的面向对象和设备的无缝联接通信协议。该协议正式公布以后,也可以采用。
基于芯片嵌入式的实现
基于DSP的嵌入式TCP/IP网络通信系统主要包括DSP芯片和以太网控制器等芯片组成的以太网接口、驱动软件和嵌入式TCP/IP协议栈。
硬件设计
TMS320LF240x是TI公司发布的一款具有很高的性价比,适合用于工业控制领域的芯片。TMS320LF2407控制器是240x系列中功能强的一种控制器,在电力自动化系统中得到了广泛应用。TMS320LF2407工作频率高(40MHz),有很大的存储空间(高达32K字的FLASH程序存储器,可扩展外部64K字程序存储器,64K字数据存储器,64K字I/O寻址空间),也非常适合用来处理复杂的TCP/IP协议。
RTL8019AS是台湾REALTEK半导体公司生产的以太网控制器,其性能包括:支持EthernetⅡ和EEE802.3标准;支持8/16位数据总线;内置16K字的SRAM;全双工,收发同时达到10Mbps;支持BNC,AUI,UTP介质。RTL8019AS可提供100脚的TQFP封装,减少了PCB面积,更适合于嵌入式系统。
RTL8019AS通过CR寄存器中PS0和PS1位将寄存器组分为4页。每页包含16个寄存器,00H到1FH为各种寄存器的地址,10H-17H为远端DMA端口,18H-1FH为复位端口(这些地址是相对于网卡I/O起始地址而言的,起始地址由配置寄存器的3-0bit决定)。TMS320LF2407对RTL8019AS的控制就是对寄存器编程,所以我们只用5根地址线与RTL8019AS相连。由于DSP与单片机不同,DSP的I/O空间与程序数据空间使用相同的地址区域,必须使用
TMS320LF2407的控制信号IS控制对RTL8019AS寄存器的读写。TMS320LF2407的读/写速度很快,因此将RTL8019AS的IOCHRDY信号与TMS320LF2407的READY相连。需要注意的是TMS320LF2407和RTL8019AS工作电压不同,之间的连线需要通过电平转换。以太网接口电路如图1所示。
软件设计
以太网链路层遵循的IEEE802.3协议的CSMA/CD和CRC校验等功能由网卡控制芯片Rtl8019as完成,TMS320LF2407芯片则完成其他TCP/IP协议的解释和执行。TMS320LF2407控制RTL8019AS完成通信任务时,首先要对RTL8019AS复位,并对RTL8019AS的寄存器进行初始化,确定发送和接收的条件,然后才能发送数据或接收数据。当一帧数据发送结束、接收到一帧数据或出错等事件发生时,RTL8019AS向TMS320LF2407申请中断,TMS320LF2407响应中断后根据中断状态寄存器的内容进行相应的处理。
在TMS320LF2407内部,DSP程序完成对数据的打包解包。系统复位后,系统首先发送ARP请求,建立地址映射,并内部中断进行定时更新。DSP芯片根据情况将采集或收集到数据按照TCP协议或UDP协议格式打包,送入网卡芯片,由网卡芯片将数据输出到局域网中。反之,当有数据从RJ45过来,网卡芯片产生外部中断,请求DSP进行处理。DSP芯片对数据报进行分析,如果是ARP(物理地址解析)数据包,则程序转入ARP处理程序。如果是IP数据包则进一步判断是哪个协议向IP传送数据。如果是ICMP协议,判断是否为Ping请求,是则应答,不是丢弃该数据包;如果是TCP或UDP协议,且端口正确则按相应的协议处理数据,端口不正确丢弃数据包。程序框图如图2所示。
结论
本文结合电力系统自动化系统实际提出了一种基于DSP的嵌入式TCP/IP的实现,论述了协议的选择和软硬件的设计方法。实验结果表明数据通过该系统处理以后可以直接送到以太网进行传输。这为在电力自动化系统当中应用以太网通信技术提供了一种解决方法. 参考文献:
[1]. RS485 datasheet https://www.dzsc.com/datasheet/RS485_585289.html.
[2]. TMS320LF2407 datasheet https://www.dzsc.com/datasheet/TMS320LF2407_309787.html.
[3]. RTL8019AS datasheet https://www.dzsc.com/datasheet/RTL8019AS_1096173.html.
[4]. BNC datasheet https://www.dzsc.com/datasheet/BNC_2319479.html.
[5]. TQFP datasheet https://www.dzsc.com/datasheet/TQFP_1528902.html.
[6]. PCB datasheet https://www.dzsc.com/datasheet/PCB_1201640.html.
[7]. PS0 datasheet https://www.dzsc.com/datasheet/PS0_1196847.html.
[8]. PS1 datasheet https://www.dzsc.com/datasheet/PS1_1196822.html.