1.基于集总帧的实时通信系统
1.1系统结构
系统的总体构架:该系统是基于DSP+FPGA+PHY的体系结构而设计的.在此系统中,PHY采用集成芯片实现以太网物理层功能,FPGA(FieldProgrammableGateArray)实现MAC层协议,两个端口通过MII接口与物理层通信,DSP(DigitalSignalProcessing)实现用户层协议,包括系统的初始化、网络的初始化、数据接收和发送模块,数据转发模块等。 DSP与FPGA之间采用16位并行总线连接,数据和控制指令都通过总线传输。同ISO/OSI模型一样,该系统也采用分层结构,但不同的是该系统只分三层:应用层、MAC层和PHY层。PHY层采用ISO/OSI参考模型定义的物理层;MAC层对应于ISO/OSI参考模型定义的数据链路层、网络层和传输层,并对其进行实时性改造,向应用层提供服务;应用层与ISO/OSI参考模型定义的应用层相同;该系统没有ISO/OSI参考模型定义的会话层和表示层。本文采用环型拓扑结构进行多节点通信。在环型结构中,每个站点都有一个编号,信号按编号顺序以接力方式传输。环型拓扑具有结构简单,实时性好,传输延迟确定,容易安装和监控,可以通过双环冗余通信可以提高系统的稳定性和容错能力等特点。
1.2报文结构
各个节点间采用集总帧的形式通信,帧中每个字段有其特定的长度和用途,本文在标准以太网帧的基础上进行简化和修改,得到了适用于数控系统的集总帧。处于 MAC帧开始处的字段为前导码字段,由7个字节组成。其功能是使接收器建立比特同步。帧首定界符(SFD)是MAC帧的第2个字段,其编码形式为 10101011序列,长度刚好为一个字节。该字段的功能是指示一帧的开始,也可成为时钟同步时间戳捕获的标识。目标地址(Destination)标识该数据帧传输的目的地,源地址(Source)标识该数据帧的发出节点,在本文中将目标节点号的标识符和命令数据一起打包在数据(Data)中,但为了与 TCP/IP兼容,本文仍然保留了6字节的目标地址和源地址,在实际的通信中,此目标地址和源地址不发挥作用。数据类型(Type)标识该帧的类型,包括集总帧、逆时针方向初始化帧和初始化成功信号帧。数据(Data)中包含了目标节点号和主节点发往各从节点的命令或从节点上传给主节点的反馈数据。帧检验序列(FCS)用来检验数据是否正确发送。
1.3通信过程
通信过程可分为初始化阶段和正常通信阶段。初始化阶段主要是主节点通过给从节点发送配置信息和读取从节点的反馈信息来确定从节点的个数和工作状态,为正常通信做准备的过程。系统上电后,所有芯片复位,系统进行节点内部初始化,内部初始化结束后,系统将进行网络初始化,主节点将配置数据发送到与之相邻的第一个从节点,第一个从节点接收到配置数据并配置完成后两个端口同时发送下一个节点的配置信息,主节点收到该配置信息标志着此从节点初始化完成,下一个从节点收到配置信息后与前一个同样动作,直到最后一个从节点。最后一个从节点接收到前一个从节点转发的配置信息并配置完成后两个端口同时发送相同数据,主节点两个端口收到相同数据标志着所有节点初始化完成,系统成为一个连通的环型网络。
正常通信阶段采用集总帧的通信方式。集总帧从主节点开始传输,集总帧中包含了目标节点号和主节点对该节点的控制命令,当集总帧传输到某一预定从节点时,该从节点从集总帧总提取控制命令,并将反馈数据填入集总帧,将集总帧传输给下一节点,如此反复,最后一个从节点完成数据收发后将集总帧传输给主节点,从而完成一个数据周期循环。这样,只有接收到集总帧的节点才会进行数据交互,其他节点都处于等待状态,因此不会出现数据传输冲突。为了解决采样同步的问题,可以在本文提出的实时通信系统中采用IEEEl588精确时钟同步协议,通过发送同步报文周期性地对网络中所有节点的时钟进行校正同步,使基于以太网的数控系统中的各节点达到精确同步。
2.实验研究
2.1实验平台
原型为了验证本文提出的基于集总帧的以太网系统的实时性,搭建实验平台。测试方法是将三个以太网节点连接成环型拓扑结构,其中一个节点设置成主节点工作模式,另外两个节点设置成从节点工作模式。每个节点包括:一块以太网通信板和一块控制板,通信板上采用的物理层芯片是LXT973,控制板上的核心芯片包括一块CycloneIIIEP3C10E144I7FPGA芯片和一块F2812DSP芯片。节点之间采用双绞线或者光纤连接。
2.2实验结果
及分析试验中数据包由主节点发送给1号从节点,1号从节点提取命令数据并将反馈数据填入集总帧后转发给2号从节点,2号从节点完成数据处理过程后将数据包返回给主节点,完成一个通信周期循环。传输的数据大小分别为24bytes、64bytes、100bytes和200bytes,传输数据次数200次。在包中的字节数一定的情况下,200次测得的DSP向FPGA写入一个数据包和DSP从FPGA读取一个数据包的时间几乎不变;当数据包的大小变化时,DSP向FPGA写入一个数据包的时间与数据包的大小呈现良好的线性关系,每增加1byte,DSP写数据时间增加0138s.DSP从FPGA读取一个数据包的时间也与数据包的大小呈现良好的线性关系,每增加1byte,DSP读数据时间增加0263s。实验中测得主节点发出控制命令到接收到从节点的反馈数据的通信周期时间。在传输不同长度的数据包时的通信周期。从中可以看出,在包中的字节数一定的情况下,200次测得的周期时间抖动较小,在03s 以下;当数据包的大小变化时,周期时间与数据包大小之间呈现较好的线性关系,每增加1byte,周期时间增加163s.综合以上实验数据,可以得出如下结论:
(1)DSP从FPGA中读取数据和向FPGA写入数据的过程很稳定,但占用的时间较长,因此通信延迟时间有很大一部分来源于DSP与FPGA的交互上;
(2)基于集总帧的通信系统在数据传输时比较稳定,抖动较小,远小于1s;
(3)由于数控系统传输的数据包一般比较小(小于100bytes),基于集总帧的通信系统(采用三个节点)的数据传输周期时间远小于05ms,系统的延迟时间短,实时性较好。
3.结论
本文所述的数控系统以太网接口采用集总帧的方式进行通信,并采用双环冗余拓扑结构,避免了传统以太网数据传输过程中的冲突,满足确定性通信要求。在实验室环境下,节点个数为3个的情况下,系统的通信周期远小于05ms,抖动远小于1s,满足了数控系统的实时性要求。在接下来的研究中,为了进一步减少集总帧在从节点中的转发延迟,从节点的转发模块应该放在FPGA中实现,并采cutthrough的传输方式,即在接收的同时进行转发,只处理和该从节点相关的数据,尽量减少中转延时。
评论
加载更多