×
接口总线驱动 > 总线 > 详情

基于Ethernet现场总线的多协议网络通信系统设计与实现

发布时间:2020-05-20 发布时间:
|

引言

    现场总线已成为自动化技术的集成组件,如今已获得广泛应用。它废弃了DCS(分散控制系统)的控制站及其输入/输出单元,从根本上改变了DCS集中与分散相结合的集散控制系统体系,通过将控制功能高度分散到现场设备这一途径,实现了彻底分散控制。虽然控制器CPU的性能发展迅猛,但传统的现场总线系统正日趋成为控制系统性能发展的“瓶颈”。此外对于现场总线系统来说,整个系统的分层控制结构由几层子系统构成,整个系统响应时间是控制器周期时间的3~5倍。工业以太网作为一种全新的“现场总线”是未来工业控制网络的必然选择,并实现了现场设备层与企业内部信息网(Intranet)的无缝连接。但如何使以太网总线实现传统现场总线的实时性、确定性及可靠性,并满足工业控制上不同的技术结构要求,如需要严格同步的运动控制采用Sercos、PROFIBUSDP v2等协议;因此本文围绕这些问题设计了基于LPC2214和DM9000AE并以Ethernet为现场总线的面向多协议的网络通信控制卡,并成功嵌入SERCOSIII协议与TCP/IP协议,设计了优化的任务调度以满足系统的实时性,并通过仿真验证了系统满足实时性、确定性及可靠性的要求,系统可嵌入各种功用性的控制协议。

1 硬件设计

    1.1硬件系统总体设计

    硬件结构模块如图1所示。典型的工业以太网现场总线控制网络系统结构分为线性拓扑和环形拓扑,如图2和图3所示,环形拓扑结构具有传输速率高、负载能力强、适合于实时传输等特点;线型拓扑结构具有结构简单、可扩充性好、可靠性高等特点;且工业以太网以100Mbit/s~1Gbit/s的高传输速率完全满足数控技术对运动控制总线的高速型要求,因此满足现场总线实时可靠性的特点成为本文的研究重点。将工业控制界最具先进性、最超前的工业控制网络应用于工业现场,其应用普及最终取决于是否能够提供一个从协议直至网络节点模块的整体解决方案。并开发相应的应用软件,实现从现场设备层到Internet层的无缝联结,真正实现工业控制网络的统一。因此系统的硬件结构图与软件协议结构图1与图6所示。

图1 硬件结构模块

图2环形拓扑结构

    根据系统性能要求,硬件系统总体方案为:基于ARM7嵌人式控制技术,实现数据传输速率100 Mbit/s,为满足实时性,实时效据延迟时间小于2 ms。为满足环形拓扑结构,控制卡应采用双网卡结构,系统硬件结构图如图4所示。网络控制系统以LPC2214作为处理器。它是NXP公司推出的基于ARM7TDMI内核的16/32位RISC处理器.功能强大,内置PLL锁相环可以设置CPU的工作频率达60MHz,为高速处理提供了保证,与以太网芯片DM9000A配合可满足以太网实时性要求;内部带256KB的FLASH和16KB RAM,为待嵌入的协议栈提供了必要的内存空间,片内带有多个串行接口(包括工业标准的UART、高速I2c接口和SPI接口)和外部存储器接口,非常适合通信网关、协议转换器、嵌人式软件调制解调器以及其它上层应用,满足扩展AI/AO和DI/DO功能的要求。

图3线型拓扑结构

图4 系统硬件结构框图

    1.2网络接口模块

    网络接口电路是在微处理器的控制下通过舟卡对数据进行封装或解封,来完成主站/从站的通信功能,以工业以太网的技术标准实现整个通信系统的物理层与数据链路层。接口电路以太罔控制器选用DAVIC0M公司的DM9000,它是一种高度集成、功能强大、引脚少、性价比高的单片快速以太网控制芯片,内部集成MAC和PHY,对其他硬件设备的依赖性非常小。并且,可对MAC和PHY独立编程,能设定多种控制状态,非常适用于嵌入式系统设计。[page]

    DM9000A是一款完全集成的和符合成本效益单芯片快速以太网MAC控制器与一般处理接口,一个10/100M自适应PHY和内部集成的16 KB的SRAM(其中13KB用作接收缓冲区,3 KB作为发送缓冲区),对内部存储器访问支持8位和16位数据接口以适用于不同的徽处理器;数据存取使用16bit模式时,理论最高速度可达800Mbit/s(但DM9000A被设计为100M以太网.因此最大速度被限定为100 Mbit/s)。DM9000A功耗非常低,单电源3.3 V工作,内置3.3 V变2.5 V电源电路,I/O端口支持3.3 V~5 V的容差。

2 软件设计

    2.1软件结构设计

    在单片机的方案中实现多种嵌人的协议栈,一个很大的问题是单片机的资源有限。并且基于网络的环境.一定是多用户多任务的环境,因此,要达到实时性的要求,需要合理实现多种协议栈的流程,在单片机的实现方案下。必须进行任务的优化处理与调度。

    本课题中以嵌入的SERCOSIII协议与TCP/IP协议栈实现为例,采用面向对象的编程思想,并重点介绍了SERCOS对象中SERCOSIII协议的实现与Main对象中以太同驱动程序的设计,如图5为软件模块结构,而SERCOSIII协议与TCP/IP协议在系统中相应架构如图6所示。图5中设置的6种对象:

    (1)kernel对象:是系统核心。封装了程序任务区、任务调度块,以及有关任务调度的相关过程,保证所有对象能够快速有序地被执行处理。

    (2)Mac对象:是以太同数据帧处理核心。将接收到的数据及即将发送到的数据进行以太网解封与封装处理任务。

    (3)DM9000对象:封装了有关硬件设备的数据处理(发送和接收)功能。每个硬件芯片生成一个对象。如采用两片DM9000,则有两个DM9000对象。

    (4)Sercos对象:是SERCOS协议处理的核心。封装了有关SERcos协议的全部数据处理过程,实现了SERCOSIII协议的初始化及运行。

    (5)Tcpip对象:是TCP/IP协议处理的核心。封装rARP、IP、ICMP、TCP、UDP和HTTP六种协议的数据处理过程,主要实现上层管理层PC机对底层现场设备的远程访问。

图5软件模块结构图

图6软件协议架构图

    2.2 Mac对象设计

    系统软件协议架构如图6所示,在物理层与数据链路层的数据即为图5的MAC对象,DM9000A从网络端口列45接收到数据包进行数据的解封后数据再往上层传输时,CPU对端口读取的数据则需进行判断再分类处理。图7所示为硬件上电后系统的初始化流程图,首先清空串口接收缓冲区,接下来进行Globallnit()、Kemellint()、SERCOSIint()及本地MAc地址初始化,其中Globallmt()包括:串口UART0_Ini()、网卡芯片1DM90001_init()、网卡芯片2DM90002_init()、GPIO口GPIO_Init()及中断的初始化;再加载任务驱动设备列表和加载系统定时器,其中加载任务驱动设备列表为:HTTP、IP、ICMP、ARP、SERCOS、Ethernet、Ping等协议的收发任务。最终系统进入一个任务处理的无穷循环,先查找TaskReadyFind(&TaskNo,ALL_TYPE。COMM_TYPE)是否有就绪任务等待执行,该类任务是指(TCP/IP协议族),如有则先执行一个就绪任务,任务结束后进行Netflgl判断,没有就绪任务则直接进行Netflgl判断,当其Netflgl大于等于1时,则证明网卡1接收到数据包,进而对包判断,如果该数据包的站类型为从站且数据包为SERCOS包,则接收数据。当不能同时满足数据包的站类型为从站且数据包为SERCOS数据这两个条件时。再判断站类型是否为最后从站,是则接收数据,不是则转发数据且表明该包为TCP/IP协议族包。当Netflgl与Netfi92都为0时,则初始化SERC0SIII协议。

    2.3 SERCOSIII对象设计

    SERCOS(serial real time communication specification)是一种用于数字伺服和传动系统的现场总线接口和数据交换协议,能够实现工业控制计算机与数字伺服系统、传感器和可编程控制器I/O口之间的实时数据通讯。SERCOS-III是SER-COS接口的最新版本,使用了工业以太网作为传输机制。由图6可知,SERCOS协议在层次上相当于TCP/IP模型的3~5层。两种协议的数据链路层和物理层是完全相同的,因此协议开发仅需针对模型3~5层分别处理即可。[page]

图7系统驱动程序框图

    SERCOSIII协议初始化过程包括CP0~CP4五个阶段,CP0~CP3为接口初始化的阶段。CP4是正常通信阶段。其初始化流程图如图8所示。CP0的作用是检测环路是否闭合和确定环路的延时。在CPO阶段,主机通过发送同步信息来检测环路,当检测环路为闭合时,系统进入下一通讯阶段CPI,在CP0阶段的主要函数为void SendCP0(),它的作用是发送CP0阶段的信息,在CP0阶段MDT数据区40字节。AT数据区512字节。CPI是识别所有连接在环路上的伺服装置,主站向环路发送包含待识别的伺服装置地址的MDT与AT电报,其中MDT与AT发送时间小于650/us(下同),当环路上所有装置都作出正确的应答,则可以进入下一个通信阶段CP2。CPI阶段的函数主要为void SendCPl(),功能为发送CPl阶段的参数,在该阶段MDT、AT数据区均1280字节。CP2是通过非周期数据的传输,完成主站向各个伺服装置发送周期通信所需要的配置参数,实现过程与CPl阶段相同,MDT中包含每个从机的地址及配置数据,配置成功从站回复主站AT包作为应答。在CP2阶段的主要函数为发送函数void SendCP2()和参数配置函数void InitCP2Idn()。CP3是通过非周期数据传输设置各伺服装置的运行参数,在CP3阶段,主站向各从站发送MDT与AT报文,各伺服装置都能接收本机报文后回复AT作为应答,在CP3阶段主要的函数为发送函数voidSendCP3()和参数配置函数InitCP3Idn()。CP4是正常的通讯阶段,初始化CP4阶段实时数据队列函数InitCP4RTData()。在CP1~CP4的任何阶段中,从站只要超过65ms没有收到新的MDT0报文,则自动切换到CP0阶段。且在CPI~CP4的任何阶段中,从站收到主站发送的切换到CP0阶段的MDT报文,则强制切换到CP0阶段。

图8 SERCOSIII初始化流程图

图9 任务调度

    2.4 kernel对象设计

    为实现实时性的要求,处理器面对多任务时能及时有效地处理各个任务,因此软件系统采取任务的优化处理与调度也即核心对象所要做的工作,其任务调度机制如图9所示。[page]

    (1)当产生一个新任务的时候,分配一个任务块。并且将该任务放人“就绪任务队列”中。

    (2)当目前任务空闲时,或者运行中的任务进入阻塞态时,任务调度器根据调度规则从“就绪任务队列”中选择取出一个任务,进入运行态。任何时候最多只能有一个任务处于运行态。

    (3)当正在运行的任务出现“资源请求等待”的时候,该任务将被转入阻塞态,进入“阻塞任务队列”。阻塞只能由任务自身进行。

    (4)当位于“阻塞任务列表”中的任务得到所等待的“资源”之后,该任务由相应的任务程序激活,进入“就绪任务列表”。

    (5)如果位于“阻塞任务列表”中的任务超过规定时间仍然没有得到所等待的“资源”(超时),该任务被系统激活,进入“就绪任务列表”。

    (6)位于运行态的任务运行结束后,该任务完成,释放任务区,任务调度进入空闲。

3 系统运行与调试结果

    为了验证设计方案和关键技术的可行性和系统的稳定性、可靠性,选用5块这样的接口卡通过五类屏蔽双绞线连接的SERCOS总线环路,并在系统运行调试过程中,使用上位机应用软件进行控制参数的设置和状态数据的显示。经过反复的实验显示,基于Ethernet总线的SERCOSIII协议能在本测试系统中顺利完成初始化过程并进入正常操作阶段,能实现在100M速度的情况下两个以太网帧问隔为8 ms,并实现了SERCOSIII协议的同步性要求,系统运行时未出现丢包现象,且WEB访问成功,TCP/IP协议嵌入成功,实现了实现控制设备与互联网的无缝连接。

4 结论

    随着数控技术对运动控制总线的高速犁、实时型、高可靠性的进一步要求,以工业以太网作为一种全新的“现场总线”标准不仅已经成为可能,而且也是未来工业控制网络的必然选择。本课题设计的嵌入式Ethernet现场总线多协议控制系统成功的将SERCOSIII协议与TCP/IP协议内嵌到自主研发的控制卡中,能实现控制设备与互联网的无缝连接。系统通过双绞线与光纤进行连接,器件的通用性强,性价比高,可运用于数控、过程控制等领域。 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
串口通信属性及事件解析