一种基于M-LVDS总线实时高效数据传输方法与流程

文档序号:18007448发布日期:2019-06-25 23:33阅读:406来源:国知局
一种基于M-LVDS总线实时高效数据传输方法与流程

本发明涉及一种通讯领域数据传输方法,尤其是适用于电力系统嵌入式产品的一种基于m-lvds(multipointlowvoltagedifferentialsignaling)总线的实时高效数据传输方法。



背景技术:

随着电力系统智能电网技术的快速发展,在发电、输电、变电、配电及用电各环节都大量采用智能电子设备。这些智能电子设备多数属于嵌入式产品,产品功能越来越强,性能越来越高,很多产品由单处理器发展到多处理器,由单智能板卡发展到多智能板卡,板卡之间、处理器之间需要大量的数据交换。

m-lvds总线以其高速、抗干扰能力强以及支持热插拔优点,逐渐得到普及。现有技术中基于m-lvds总线的数据传输方法,存在以下缺陷:所支持传输的数据类型较少,总线利用率低,关键数据的实时性得不到保证,造成不同程度的总线适应能力不足。

另一方面,在电力系统智能变电站中,iec61850标准普遍采用,其中goose(genericobjectorientedsubstationevent)用于实现在多智能电子设备之间的信息传递,其对于可靠性、实时性、安全性的要求很高。goose报文传输在智能电子设备之间采用基于4层通信协议栈的光纤传输,能够最大程度降低传输延时。但是,goose报文或其携带的数据在智能电子设备内部传输的实时性成为制约设备总体性能的瓶颈。



技术实现要素:

本发明提出了一种基于m-lvds总线实时高效数据传输方法,其目的在于:提供一种实时性强、高效率、支持多数据类型传输的数据传输方法,扩大m-lvds总线在各类智能电子设备中的适用范围,满足各类复杂应用的需求。

本发明技术方案如下:

一种基于m-lvds总线实时高效数据传输方法,采用fpga进行数据链路控制,总线上的每个通讯节点分别配置fpga,每个通讯节点分配一个通讯地址,总线信号经过电平转换后引入各fpga的管脚,所述fpga用于对所收发的报文进行缓存;

所述通讯节点包括控制节点和一般节点;

所述控制节点存储有总线上全部通讯节点的地址信息;所述控制节点负责总线的控制权在各一般节点之间的传递;获取控制权的一般节点通过总线发送数据报文或响应报文至控制节点;

所述数据报文包含源地址和目标地址,所述源地址为发送报文的节点的通讯地址,所述目标地址用于标识接收该报文的节点的通讯地址;

控制节点将收到的数据报文存放到缓冲区,然后将缓冲区中的数据报文发送到目标地址对应的节点,并进行控制权的切换。

作为本方法的进一步改进:所述数据报文包括单播报文、组播报文和广播报文;单播报文对指定的目标一般节点有效,组播报文对指定组内的一般节点有效,广播报文对除发送节点外的所有节点有效;

数据报文的类型通过目标地址进行标识;

如果控制节点当前要发送的是单播报文,则将单播报文发送至报文中目标地址所对应的一般节点,并将控制权传递到该目标一般节点;

如果控制节点当前要发送的是组播报文或广播报文,则将组播报文或广播报文发送至所对应的一般节点,然后通过发送ack报文按轮流顺序传递控制权,所述ack报文中的目标地址所对应的一般节点获得控制权;

如果控制节点当前没有报文发送,则通过发送ack报文按轮流顺序传递控制权,所述ack报文中的目标地址所对应的一般节点获得控制权;

如果一般节点接收到组播报文或广播报文,则不需应答;如果一般节点接收到单播报文,则会获得控制权,然后立即用该节点缓冲区内的数据报文进行应答,如果缓冲区内无数据报文,则以res报文进行应答。

作为本方法的进一步改进:如果控制权传递至某一节点后,总线空闲时间超过2微秒没有收到数据报文或响应报文,则认为节点异常,继续进行控制权的传递。

作为本方法的进一步改进:如果某个节点连续出现3次异常,则对该节点置异常标志,之后减少该节点获取控制权的次数至其他正常节点的十五分之一,直至该节点能够及时响应后恢复。

作为本方法的进一步改进:在fpga中,待发送的数据报文存放在发送缓冲区,接收的数据报文存放在接收缓冲区;发送缓冲区和接收缓冲区均包括优先等级依次递减的goose缓冲区、一级数据缓冲区和二级数据缓冲区;

所述goose缓冲区用于缓存goose报文;

所述一级数据缓冲区用于缓存紧急数据或突发类型数据;

所述二级数据缓冲区用于缓存非紧急数据和周期性发送的数据;

在节点发送数据报文时,优先发送goose缓冲区中的数据,并且将goose缓冲区内的数据在一次控制权期限内全部发送出去;如果goose缓冲区内没有数据,检查一级数据缓冲区是否有待发数据:如果有则在一次控制权期限内发送一个完整数据包数据,如果没有待发数据则检查二级数据缓冲区是否有待发数据,如果二级数据缓冲区有待发数据,则再检查待发的数据包大小,如果超过512字节则进行分包发送且每次发送的数据包大小不超过512字节,每次控制权期限内只发送一个二级数据缓冲区的数据包,如果不超过512字节则一次发送出去;

节点接收数据报文时,不同类型的数据存放在不同的接收缓冲区。

作为本方法的进一步改进:对于单播报文,如果传输过程中出现错误,接收端的fpga在下一次获取控制权时发送rep报文给原单播报文的发送方申请重发,连续两次仍然出错则不再申请重发;

对于各节点的fpga,每次最新发送出去的报文将被缓存在端口缓冲区,一旦接收到所述rep报文要求重发,则在下一次获取总线控制权时直接将端口缓冲区所缓存的报文发送出去。

作为本方法的进一步改进:fpga还负责通讯传输的差错检验;所述报文通过对所有有效字节通过crc32方式进行校验:发送端边发送边校验,校验码附加在有效数据之后发送形成发送报文;接收端边接收边校验,并与收到的校验码进行比较,如果不一致,判断传输出错,设置出错标志。

作为本方法的进一步改进:所述控制节点包括主控节点和辅控节点;所述主控节点负责控制权的传递和报文的收发;辅控节点监视总线的空闲时间,在总线通讯开始后,如果总线空闲时间超出了5倍的控制权传递间隔时间,则认为主控节点出现故障,辅控节点接管控制权传递和报文的收发,并设置告警标志供应用层读取。

相对于现有技术,本发明具有以下积极效果:(1)基于fpga进行数据链路控制,并对收发报文进行缓存,相较于采用处理器,速度更快,更加稳定可靠,为高效、实时性高的数据传输提供基础;(2)总线控制权传递采用专用短报文——ack报文,总线控制权切换延时短,总线利用率高,实时性高;(3)主控节点既能发送单播报文等数据报文还兼发控制权报文,节约了传输开销;(4)实时监测通讯状态,减少异常节点获得控制权的次数,提升控制权传递效率,同时保证异常节点恢复后可正常使用,可以支持热插拔功能;(5)获得控制权的通讯节点立即响应,无需等待形成反馈报文后再响应,有效减少等待时间,提高总线利用率;(6)利用广播、组播、单播多种形式传输数据,能够避免相同信息在总线内重复传送,进一步提高总线利用率;(7)可以支持goose报文、紧急数据、非紧急数据等多种数据类型的传输,电力系统智能电子设备涉及的各类数据都可以在总线上进行传输;(8)对数据进行分级分缓冲区存储,并分级分策略传送,分级接收处理,避免实时性要求高的数据淹没在其它数据之中,将实时性要求低的数据的单次控制权占用限制在可度量的时间范围内,最大幅度降低高优先数据的传输处理延时,保证goose报文或其携带紧急数据的快速实时传输,满足应用需求;(9)具备基于fpga的差错校验和重发机制,实时性高,可靠性高,不需处理器干预,并能够提供告警信息;(10)增加辅控节点设计,能够保证主控节点出现异常后总线传输功能正常,体现在电力系统中,可以保证一个重要板卡出现异常后,另一个重要板卡仍可保证主要功能正常。

附图说明

图1是实施例中电力系统变电站智能母线保护装置的主机后视图。

图2是电力系统变电站智能母线保护装置的m-lvds总线通讯示意图。

具体实施方式

下面结合附图详细说明本发明的技术方案:

本实施例为一种用于电力系统变电站智能母线保护装置,其主机后视图如图1所示。装置由主机和子机两个机箱组成,每个机箱配置若干个板卡,子机所有数据通过光纤与主机com板卡通讯,本例结合主机配置的板卡间m-lvds总线通讯进行描述。

如图1,装置主机由mpu-b、dsp保护、dsp闭锁、com、eth-4、di-b、co-a、power-80w共8个板卡组成,每个板卡带有96针端子,插在装置内部的母线板上,母线板上布置各类连接线将板卡之间进行互连,其中包括两条m-lvds总线。每个板卡从左到右所在的插槽位置就是板卡的板地址,每个板卡利用母线板上的位置信号可以获得自身的地址。

如图2,装置主机mpu-b、dsp保护、dsp闭锁、com、eth-4板卡之间需要通过m-lvds总线进行通讯。主机配置了两条m-lvds总线,分别为m-lvds1和m-lvds2。其中m-lvds1是sv(采样值)报文专用,m-lvds2用于goose及其它各类报文交互,本发明方法以m-lvds2为例进行描述。

m-lvds2总线所使用的传输方法如下:采用fpga进行数据链路控制,总线上的每个通讯节点分别配置fpga,每个通讯节点分配一个通讯地址,总线信号经过电平转换后引入各fpga的管脚,所述fpga用于对所收发的报文进行缓存;

所述通讯节点包括控制节点和一般节点。

所述控制节点存储有总线上全部通讯节点的地址信息;所述控制节点负责总线的控制权在各一般节点之间的传递;获取控制权的一般节点通过总线发送数据报文或响应报文至控制节点;正常通讯时,控制节点轮流在其它一般节点之间传递控制权,永不休止;

所述数据报文包含源地址和目标地址,所述源地址为发送报文的节点的通讯地址,所述目标地址用于标识接收该报文的节点的通讯地址;

控制节点将收到的数据报文存放到缓冲区,然后将缓冲区中的数据报文发送到目标地址对应的节点,并进行控制权的传递切换。

进一步的,所述控制节点包括一个主控节点,必要时还可以选取一个辅控节点,其它节点为一般节点。所述主控节点负责控制权的传递和报文的收发;辅控节点监视总线的空闲时间,在总线通讯开始后,如果总线空闲时间超出了5倍的控制权传递间隔时间,则认为主控节点出现故障,辅控节点接管控制权传递和报文的收发,并设置告警标志供应用层读取。

通常选取智能电子设备中最核心的板卡或掌管通讯的核心处理器为主控节点。如图2,装置主机mpu-b板卡负责整个装置的信息收集、运行监视及对外通讯功能,适合做主控节点;dsp保护板卡完成装置核心应用母线保护功能,要求在失去监控情况下主要保护功能正常,适合做辅控节点;dsp闭锁板卡协助dsp保护板卡完成保护动作出口,作为一般节点;com板卡是主机与子机交互信息的中转站,作为一般节点;eth-4板卡负责组网方式的goose报文接收和发送,作为一般节点。每个节点的地址由板卡所在插槽位置决定。

如图2,本实施例采用的m-lvds总线由6对差分信号组成,分别是clk、ctrl、data0、data1、data2、data3。clk为时钟线,本实施例采用时钟频率为40mhz;ctrl为控制线,本实施例用于控制data信号的开始和结束;data0、data1、data2、data3为数据线,分别代表0、1、2、3数据位。这样m-lvds总线带宽理论上可达160mbit/s。

本实施例中,fpga采用altera公司生产的ep4ce40f23i7或ep4ce15f23i7,逻辑编译调试环境采用quartusii13.1,逻辑时钟采用100mhz,一个时钟周期为10ns,可以有效识别总线信号。

所述数据报文包括单播报文、组播报文和广播报文;单播报文对指定的目标一般节点有效,组播报文对指定组内的一般节点有效,广播报文对除发送节点外的所有节点有效;

数据报文的类型通过目标地址进行标识。本实施例中,目标地址为0xff则为广播报文。目标地址为0x1f~0xef则为组播报文,通过配置,可以对通讯节点根据对信息的共同需求进行分组,分配组号,组号范围0x1~0xe共14个,即组播地址的高4位如果不为0或f则代表组号。目标地址为0x01~0x0e为单播地址,即高4位为0表示是单播报文。

本实施例中,列举板卡间交互的部分数据报文有:(1)mpu-b分别对其它板卡进行参数配置;(2)mpu-b将在线修改的定值发送给dsp保护及dsp闭锁;(3)com将接收到的goose发送给mpu-b、dsp保护及dsp闭锁;(4)eth-4将接收到的goose发送给mpu-b、dsp保护及dsp闭锁;(5)mpu-b向其它所有板卡发布时钟;(6)eth-4向其它所有板卡发送光口功率数据;(7)dsp保护向其它所有板卡发送goose;(8)dsp保护向mpu-b发送告警报告、动作报告及继电器字;(9)dsp闭锁向dsp保护发送闭锁信号;(10)dsp保护向mpu-b发送保护测量值;(11)dsp闭锁向mpu-b发送保护测量值;(12)dsp保护向mpu-b发送故障录波数据。

本实施例中,在上述列举的报文中,属于广播报文的有(5)、(6)、(7),属于组播报文的有(2)、(3)、(4),属于单播报文的有(1)、(8)、(9)、(10)、(11)、(12)。其中mpu-b、dsp保护及dsp闭锁划分为组,便于共享信息。

如果控制节点当前要发送的是单播报文,则将单播报文发送至报文中目标地址所对应的一般节点,并将控制权传递到该目标一般节点;

如果控制节点当前要发送的是组播报文或广播报文,则将组播报文或广播报文发送至所对应的一般节点,全部发送结束等待51微秒后发送ack报文,ack报文是一种最短报文,专门用于传递控制权,所述ack报文中的目标地址所对应的一般节点获得控制权;

如果控制节点当前没有报文发送,则通过发送ack报文按轮流顺序传递控制权,所述ack报文中的目标地址所对应的一般节点获得控制权;

如果一般节点接收到组播报文或广播报文,则不需应答;如果一般节点接收到单播报文,则会获得控制权,然后立即用该节点缓冲区内的数据报文进行应答,如果缓冲区内无数据报文,则以res报文进行应答。res报文也是最短报文之一,用于获取控制权的节点没有数据需要发送时快速响应控制节点,便于控制权快速继续传递。例如,控制节点a向一般节点b发送一个单播控制命令报文,节点b获取控制权,并不需要等待应用层解析该报文做出回应后再向总线发送控制命令的返回报文,而是直接发送缓冲区内的待发报文或发出res报文;控制命令返回报文在准备好后存放到发送缓冲区内排序,等到下一次获取总线控制权时再进行发送。这种策略可以使得总线资源得以充分利用。

如果控制权传递至某一节点后,总线空闲时间超过2微秒没有收到数据报文或响应报文,则认为节点异常,继续进行控制权的传递。

进一步的,如果某个节点连续出现3次异常,则对该节点置异常标志,之后减少该节点获取控制权的次数至其他正常节点的十五分之一,直至该节点能够及时响应后恢复。

本方法采用分类分级方式缓存数据。在fpga中,待发送的数据报文存放在发送缓冲区,接收的数据报文存放在接收缓冲区;发送缓冲区和接收缓冲区均包括优先等级依次递减的goose缓冲区、一级数据缓冲区和二级数据缓冲区;

所述goose缓冲区具有最高优先级0级,用于缓存goose报文;

所述一级数据缓冲区具有次高优先级1级,用于缓存紧急数据或突发类型数据,例如电力系统中的控制命令、状态变位、动作报告、告警报告、继电器字等;

所述二级数据缓冲区具有低优先级2级,用于缓存非紧急数据和周期性发送的数据,例如电力系统中的测量值、录波数据、文件传输、定值、参数等数据。

在节点发送数据报文时,优先发送goose缓冲区中的数据,并且将goose缓冲区内的数据在一次控制权期限内全部发送出去;如果goose缓冲区内没有数据,检查一级数据缓冲区是否有待发数据:如果有则在一次控制权期限内发送一个完整数据包数据,如果没有待发数据则检查二级数据缓冲区是否有待发数据,如果二级数据缓冲区有待发数据,则再检查待发的数据包大小,如果超过512字节则进行分包发送且每次发送的数据包大小不超过512字节,每次控制权期限内只发送一个二级数据缓冲区的数据包,如果不超过512字节则一次发送出去;上层应用按照优先级读取和处理不同缓冲区数据,并对分包数据完成组包工作;

节点接收数据报文时,不同类型的数据存放在不同的接收缓冲区。

本实施例中,结合上述列举的报文,各节点fpga对数据进行分级分缓冲区存储,并分级分策略传送,假定某时刻com有(3)需要发送而com刚放弃总线控制权,那么按照悲观情况,其它板卡恰都有数据需要发送,由于一级数据一般报文较短,以二级数据最大数据包512字节计算,其传输时间理论值为25.6微秒;控制权报文ack为8字节,其传输时间理论值为0.4微秒;节点间每次控制权切换开销1微秒,那么最大延时时间为(25.6+0.4+1)*4=108微秒。这就使得goose报文传输实时可控,对于装置对goose报文处理延时1毫秒的要求是完全满足的。

还具备重发机制:对于单播报文,如果传输过程中出现错误,接收端的fpga在下一次获取控制权时发送rep报文给原单播报文的发送方申请重发,连续两次仍然出错则不再申请重发;rep报文是专门用于申请重发的最短报文;

对于各节点的fpga,每次最新发送出去的报文将被缓存在端口缓冲区,一旦接收到所述rep报文要求重发,则在下一次获取总线控制权时直接将端口缓冲区所缓存的报文发送出去,而不去检查ram中的发送缓冲区。

对于广播和组播报文,由于接收的节点不止一个,因此不适合请求重发。

fpga还负责通讯传输的差错检验;所述报文通过对所有有效字节通过crc32方式进行校验:发送端边发送边校验,校验码附加在有效数据之后发送形成发送报文;接收端边接收边校验,并与收到的校验码进行比较,如果不一致,判断传输出错,设置出错标志。

本实施例中,主控节点的控制权传递、异常节点的识别、差错校验与重发、辅控节点接管控制权传递,完全按照本发明所述技术方案设计,功能可以通过严格测试,完全能达到设计要求,装置长期运行实践能够验证。其中fpga逻辑编程的细节,本领域技术人员可以根据上述方法的描述参考相关工具书、手册一一实现,在本实施例中不做赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1