一种过程数据动态分配mvb控制器和处理数据方法

文档序号:8004303阅读:488来源:国知局
专利名称:一种过程数据动态分配mvb控制器和处理数据方法
技术领域
本申请涉及列车控制网络系统技术领域,特别是涉及一种过程数据动态分配MVB 控制器和处理数据方法。
背景技术
TCN(Train Communication Network,列车通信网络)由 MVB (Multifunctional Vehicle Bus,多功能车辆总线)和WTB (Twisted Train Bus,绞线式列车总线)两级总线构成,两级总线之间通过网关互连。MVB是列车通信网络TCN的车辆总线部分,用于实现位于同一车辆或固定重联的不同车辆中有互操作性和互换性要求的标准设备之间的串行数据通信。MVB控制器是MVB总线上的核心处理单元,它独立于物理层和功能设备,为在总线上的各节点设备提供通信接口和通讯服务;根据实际配置可实现数据链路层以及部分传输层的数据处理,并通过通信存储器实现与上层软件的数据交换。根据IEC61375-1协议规定, 连接在MVB上的设备按性能可分为5类,其中1类设备具有设备状态性能和过程数据性能; 2/3/4/5类设备除具有1类设备的性能外,还具有消息数据性能,其中3/4/5类设备用户程序可编程下载;此外,4/5类设备还具有总线管理能力,可作为总线主,其中5类设备还可作为TCN网关。MVB网络中应用较多的主要是1 4类设备,目前MVB控制器的实现方案多采用专用进口的MVB主控芯片,也有采用基于FPGA的控制器方案。现有技术中,MVB控制器中过程数据端口地址分配固定,即根据协议规定,各类设备的端口可以为0-4095端口中的一个或者多个,因而不同设备的端口可能大不相同,可能某种设备设置了 1-10的端口,而另一种设备设置了 3000-3020的端口,这样由于过程数据端口地址分配固定,就需要保为全部的0-4095端口分配空间,即需要分配4096*32的空间, 以便具有不同端口的设备可以正常使用,而通常各种设备需要的总端口数基本上不可能用到全部0-4095的空间,即对于轻负荷的MVB网络,就会产生大量的内存空间浪费,资源利用率大大降低。

发明内容
本申请所要解决的技术问题是提供一种过程数据动态分配MVB控制器和处理数据方法,首次采用动态地址分配的方法,用较少的存储空间就可以实现过程数据4096个端口全地址选址,可更加能灵活地配置为多类MVB设备,并且电路简单可靠,方便升级。为了解决上述问题,本申请公开了一种过程数据动态分配MVB控制器,包括物理层编码模块、物理层解码模块、发送缓冲模块、接收缓冲模块、通信存储器模块、地址仲裁模块和链路层控制模块;所述的物理层编码模块用于在链路层控制模块的控制下,从发送缓冲模块读出数据,按照MVB数据帧格式向MVB网络发送数据;所述的物理层解码模块用于根据链路层控制模块指定的接收数据帧长度,从MVB 总线获取数据帧,将接收到的数据帧存入接收缓冲模块;
4
所述的发送缓冲模块用于临时存放欲发送到MVB网络上的数据帧;所述的接收缓冲模块用于临时存放解码器模块从MVB网络上获取的数据帧;所述地址仲裁模块用于决定应用处理器读写通信存储器的数据地址;所述通信存储器模块用于在链路层控制模块的控制下,实现应用处理器与MVB网络的数据交换;所述的链路层控制模块用于控制物理层编码模块、物理层解码模块、发送缓冲模块、接收缓冲模块和通信存储器模块完成规定标准中的所有链路层功能;其中,所述通信存储器模块包括程数据端口地址动态分配控制空间、过程数据配置空间和过程数据空间所述过程数据端口地址动态分配控制空间用于记录过程数据端口的数量以及启动网卡最新配置;所述过程数据配置空间用于过程数据端口地址以及源宿的配置,实现端口状态刷新;所述过程数据空间用于存储各个端口的数据,并根据端口类型的源宿,决定向MVB网络发送数据或从MVB网络接收数据。优选的,所述通信存储器模块还包括设备配置空间、消息数据队列和监视数据空间;所述的备控制空间用于存放该MVB设备在网络中的物理地址,也是监视数据和消息数据的收发地址,并且标识该设备的事件优先级;所述的消息数据队列包括发送消息FIFO和接收消息FIFO,用于收发MVB消息数据;所述监视数据空间用于决定是否向MVB网络发送监视数据以及发送监视数据的内容。进一步的,根据上电配置实现MVB的1类设备、或2类设备、或3类设备、或4类设备。相应的,本申请还公开了一种过程数据动态分配MVB处理数据方法,包括获取配置的过程数据端口个数N ;依次读取N个过程数据端口的配置信息;当N个过程数据端口的配置信息读取完毕后,对于主帧中的过程数据轮询,根据主帧指定的端口和配置信息为所述过程数据轮询分配的动态地址,获得相应地址的端口配置;根据所述过程数据端口属性对过程数据进行处理;其中,所述的配置信息通过如下步骤获得对于应用的N个过程数据端口和过程数据空间中的N个地址,在过程数据配置空间配置所述端口与地址的一一对应关系;根据所述一一对应关系,将所述地址进行端口配置。优选的,在获取配置的过程数据端口个数N之前还包括确认系统的配置信息配置完毕。优选的,通过如下步骤确认系统的配置信息配置完毕判断开始标识是否为OxAA,如果是,确认系统的配置信息配置完毕;优选的,通过以下步骤根据所述过程数据端口属性对过程数据进行处理如果该端口属性为源端口,则从动态分配的过程数据空间地址中读出数据;
如果该端口属性为宿端口,把得到的从帧写入动态分配的过程数据空间地址中;如果主帧中所指定的端口为无效端口,返回到等待主帧状态。本申请还公开了一种过程数据动态分配MVB控制系统,包括权利要求1或2所述的MVB控制器和应用处理器;所述的应用处理器用于MVB控制器进行设备配置,过程数据端口配置和启动MVB控制器的过程。优选的,所述的MVB控制器封装在FPGA芯片上,外接应用处理器;或者,所述的 MVB控制器与应用处理器封装在同一个FPGA芯片上。与现有技术相比,本申请包括以下优点本申请通过在通信存储模块中设置过程数据端口地址动态分配空间、过程数据配置空间,所述过程数据端口地址动态分配控制空间用于记录过程数据端口的数量以及启动网卡最新配置;所述过程数据配置空间用于过程数据端口地址以及源宿的配置,实现端口状态刷新;通过过程数据端口地址动态分配空间、过程数据配置空间将各端口与过程数据配置空间的各地址进行一一对应,然后根据该对应关系配置端口。通过本申请首先可以用较小的过程数据空间实现过程数据全地址全功能码动态选址。其次,较少的存储空间就可以实现过程数据4096个端口全地址选址,可更加能灵活地配置为多类MVB设备。再次,设计可靠、方便升级,并且可以根据不同的应用场合灵活修改。


图1是本申请一种过程数据动态分配MVB控制器结构示意图;图2是本申请一种过程数据动态分配MVB控制器结构工作示意图;图3是本申请一种过程数据动态分配MVB控制器处理流程示意图;图4是本申请过程数据TM动态分配的MVB控制器通信存储器地址空间分配图;图5是本申请一种过程数据动态分配MVB控制系统;图6是过程数据TM动态分配的MVB控制器封装接口图。
具体实施例方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本申请作进一步详细的说明。本申请提供一种过程数据动态分配的MVB控制器,符合IEC61375-1标准,具有全部设备状态性能、过程数据、消息数据和总线管理器等功能,本申请过程数据端口可以动态分配地址,可较小过程数据存储空间(比如128*32byte),实现MVB过程数据端口全地址 (0-4095)全功能码(0-4)动态选址,参照图1和图2,图1示出了本申请一种过程数据动态分配MVB控制器结构示意图;图2示出了本申请一种过程数据动态分配MVB控制器结构工作示意图。本申请的一种过程数据动态分配MVB控制器包括物理层编码模块110、物理层解码模块120、发送缓冲模块130、接收缓冲模块140、通信存储器模块150、地址仲裁模块160 和链路层控制模块170。所述的物理层编码模块110用于在链路层控制模块的控制下,从发送缓冲模块读出数据,按照MVB数据帧格式向MVB网络发送数据。所述的物理层编码模块主要实现MVB帧数据的底层编码,由于MVB数据不是采用的标准曼彻斯特编码,所以需要采用状态机的模式自行设计编码器,在链路层控制模块的控制下,从发送缓冲模块读出数据,进行 CRC(Cyclic Redundancy Check循环冗余校验码)校验、奇偶校验并取反,向MVB总线驱动器发送使能信号,同时按照发送时钟将MVB数据帧格式的数据发送到MVB网络。所述的物理层解码模块120用于根据链路层控制模块指定的接收数据帧长度,从 MVB总线获取数据帧,将接收到的数据帧存入接收缓冲模块。所述的物理层解码模块根据链路层控制模块指定的接收数据帧长度,从MVB总线获取数据帧,包括同步、校验、检错、冲突检测和提取数据等步骤,在没有出错的情况下,正确的数据被存入接收缓冲区,并且通知控制单元,将数据取走。所述的发送缓冲模块130用于临时存放欲发送到MVB网络上的数据帧。所述的发送缓冲模块加在物理层编码模块端,提高MVB控制器的总线响应能力,临时存放欲发送到 MVB网络上的数据帧,缓冲大小至少能容纳一个完整的数据帧,故可设定为256bits,该缓冲大小可根据实际情况设定。所述的接收缓冲模块140用于临时存放解码器模块从MVB网络上获取的数据帧。 所述的接收缓冲模块加在物理层解码模块端,提高MVB控制器的总线响应能力,临时存放解码器模块从MVB网络上获取的数据帧,缓冲大小至少能容纳一个完整的数据帧,故可设定为256bits,该缓冲大小可根据实际情况设定。所述地址仲裁模块160用于决定应用处理器读写通信存储器的数据地址。所述地址仲裁模块用于决定应用处理器读写通信存储器的数据地址,根据处理器读/写以及地址不同,来切换访问的地址空间。所述通信存储器模块150用于在链路层控制模块的控制下,实现应用处理器与 MVB网络的数据交换。所述通信存储器模块在链路层控制模块的控制下,实现应用处理器与MVB控制器的数据交换,其中的数据包括过程数据,监视数据,消息数据及其它端口配置等信息,过程数据和监视数据存储采用DPRAM实现,消息队列采用FIFO方式。所述的链路层控制模块170用于控制物理层编码模块、物理层解码模块、发送缓冲模块、接收缓冲模块和通信存储器模块完成规定标准中的所有链路层功能。所述的链路层控制模块完成IEC61375-1标准中的所有链路层功能,负责指挥MVB控制器各个部分的协调工作,完成主帧检测接收、从帧检测接收、确认主帧和从帧的对应关系、产生各个存储器的访问控制信号和地址信号、协调TM和缓冲区的数据交换以及发送接收定时等等。其中,所述通信存储器模块包括过程数据端口地址动态分配控制空间、过程数据配置空间和过程数据空间所述过程数据端口地址动态分配控制空间用于记录过程数据端口的数量以及启动网卡最新配置。所述的过程数据端口地址动态分配控制空间用于记录过程数据端口的数量以及启动网卡最新配置;其中统计所配置的过程数据端口的数量放在该空间的Total字节,这样所有的端口按照配置的顺序访问过程数据空间;如需确认配置并且启动网卡,则需要将Mart位置1,即Mart字节置OxAA,当网卡复位时该位置0。所述过程数据配置空间用于过程数据端口地址以及源宿的配置,实现端口状态刷新。所述的过程数据配置空间用于过程数据端口地址以及源宿的配置,还实现端口状态刷新,每个端口有4个字节的配置信息。
所述过程数据空间用于存储各个端口的数据,并根据端口类型的源宿,决定向MVB 网络发送数据或从MVB网络接收数据。在实际应用中,所述的过程数据空间用于存储各个端口的数据,每个端口预留32个字节,用128*32byte的空间,实现MVB过程数据端口全地址(0-40%)全功能码(0-4)动态选址,根据端口类型的源宿,决定向MVB网络发送数据,还是从MVB网络接收数据。实际中该过程数据配置空间可以根据实际端口数量的需求预留。另外,所述通信存储器模块还包括设备配置空间、消息数据队列和监视数据空间。所述的备控制空间用于存放该MVB设备在网络中的物理地址,也是监视数据和消息数据的收发地址,并且标识该设备的事件优先级。所述的设备控制空间存放该MVB设备在网络中的物理地址,也是监视数据和消息数据的收发地址,并且标识该设备的事件优先级。所述的消息数据队列包括发送消息FIFO和接收消息FIFO,用于收发MVB消息数据。所述发送消息FIFO和接收消息FIFO,用来实现MVB消息数据的收发,每次发送消息数据,判断信号接口 mqsncLalmostfull为0,则可以写入32字节即256位消息数据;判断信号接口 mqrCV_alm0Stempty为0,表示有一个完整消息数据收到,读出32字节即256位消息数据。所述监视数据空间用于决定是否向MVB网络发送监视数据以及发送监视数据的内容。所述监视数据空间决定是否向MVB网络发送监视数据以及发送监视数据的内容,主要是设备状态以及事件查询帧。另外,本申请可根据上电配置实现MVB的1类设备(class 1 device)、或2类设备 (class 2 device)、或 3 类设备(class 3 device)、或 4 类设备(class 4 device)。另外,本申请一种过程数据动态分配处理方法的流程示意图,包括获取配置的过程数据端口个数N;依次读取N个过程数据端口的配置信息;当N个过程数据端口的配置信息读取完毕后,对于主帧中的过程数据轮询,根据主帧指定的端口和配置信息为所述过程数据轮询分配的动态地址,获得相应地址的端口配置;根据所述过程数据端口属性对过程数据进行处理;其中,所述的配置信息通过如下步骤获得对于应用的N个过程数据端口和过程数据空间中的N个地址,在过程数据配置空间配置所述端口与地址的一一对应关系;根据所述一一对应关系,将所述地址进行端口配置。其中,在获取配置的过程数据端口个数N之前还包括确认系统的配置信息配置完毕。其中,通过如下步骤确认系统的配置信息配置完毕判断开始标识是否为OxAA,如果是,确认系统的配置信息配置完毕;其中,通过以下步骤根据所述过程数据端口属性对过程数据进行处理如果该端口属性为源端口,则从动态分配的过程数据空间地址中读出数据;如果该端口属性为宿端口,把得到的从帧写入动态分配的过程数据空间地址中;
如果主帧中所指定的端口为无效端口,返回到等待主帧状态。根据图2的工作示意图,本申请优选的数据处理过程参照图3,包括1、系统上电复位;2、读取Mart标识字节,如果是OxAA,则表明系统已经配置完毕并且可以开始工作,否则继续等待系统启动信号;3、一旦系统启动,则读取Total字节,获得配置的过程数据端口个数N ;4、依次读取N个过程数据端口配置信息,放在缓存里;5、车载设备进入等待主帧状态;6、同时,MVB主控制器在每毫秒开始时,判断端口是否需要刷新;如果需要刷新, 则获取端口配置;判断端口类型是否是宿端口,若是,则首先获取端口刷新定时器值,更新值后,再次写入到端口刷新定时寄存器,之后回到等待主帧状态;7、收到主帧后,把主帧从接收缓冲中读出,解析功能码和地址;8、如果该主帧是本设备所期待的主设备轮询事件,且事件悬挂标志有效,则首先清空事件悬挂标志,表示该事件已经发生;9、根据主帧中的功能码判断轮询是过程数据轮询、消息数据轮询还是监视数据轮询;10、如果是过程数据轮询,则对应配置信息分配的动态地址,获得所指定地址的端口配置状况;如果该端口属性为源端口,则从动态分配的通信存储器过程数据区域读出数据并写入发送缓冲,待发送定时到后,启动编码器,发送从帧;如果该端口属性为宿端口,则等待响应的从帧,在指定的时间内如果得到响应从帧,则把从帧从接收缓冲中读出,再写入动态分配的通信存储器模块对应的过程数据区域;如果等待从帧超时,则继续返回到等待从帧状态;如果主帧中所指定的端口为无效端口,亦返回到等待主帧状态;11、如果是消息数据轮询,判断主帧中指定的地址是否同本设备的设备地址相同; 若相同,则判断是否有消息数据需要发送,如果有则从消息输出队列读出数据,写入发送缓冲,待发送定时到后,启动编码器,发送从帧;如果没有消息数据需要发送,则返回到等待主帧状态;若主帧中的地址与本车载设备的设备地址不同,则等待接收从帧;收到从帧后,首先分析从帧中的内容,看该消息数据是否是发给本车载设备的,如果是,则从接收缓冲读出数据,写入消息输入队列;否则,抛弃该消息数据,返回到等待主帧状态;如果出现等待从帧超时状况,亦回到等待主帧状态;12、如果是监视数据轮询,判断主帧中指定的地址是否同本车载设备的设备地址相同;若相同,则从通信存储器模块读出监视数据,写入发送缓冲,待发送定时到,启动编码器,发送从帧;若不同,则返回到等待主帧状态。通信存储器(Traffic Memory)是MVB总线控制器和应用处理器通信的桥梁,其中的数据包括过程数据,监视数据,消息数据及其它端口配置等信息。过程数据和监视数据存储采用 DPRAM(Dual Port RAM,双口 RAM)实现,消息队列采用 FIFO (First In First Out, 先入先出)方式,DPRAM和FIFO两种存储器均可以通过FPGA内部的存储器模块实现。参照图4,图4是过程数据TM动态分配的MVB控制器通信存储器地址空间分配图。虽然表面看只有1 个过程数据端口的寻址空间,但是却使用动态分配的方法,达到过程数据端口全地址全功能码的通信,同时具备消息数据和监视数据处理能力。
图5是其示出了一种过程数据动态分配MVB控制系统。另外,本申请提供了一种过程数据动态分配MVB控制系统,包括权利要求1或2所述的MVB控制器和应用处理器;所述的应用处理器用于MVB控制器进行设备配置,过程数据端口配置和启动MVB控制器的过程。 所述的MVB控制器封装在FPGA芯片上,外接应用处理器。或者,所述的MVB控制器与应用处理器封装在同一个FPGA芯片上。图5给出了两种应用系统,一种是使用FPGA基本实现 MVB控制器,外接任何应用处理器,两者采用数据、地址和控制总线进行通信,实现访问MVB 总线;另一种是在FPGA中不仅包括了 MVB控制器,还同时封装一个Nios II CPU,两者采用 Avalon总线通信,实现真正的SOPC系统,提高系统集成度。与MVB接口部分则采用双路冗余,输出信号有 MVB_IN_A、MVB_0UT_A、MVB_0UTEN_A 和 MVB_IN_B、MVB_0UT_B> MVB_0UTEN_ B两组,外围再根据不同的MVB介质采用不同的接口驱动电路,以实现ESD/EMD/0GF介质通
fn °参照图6是过程数据TM动态分配的MVB控制器封装接口图。图6给出了该MVB 控制器封装的对外接口。另外如表1 列出过程数据TM动态分配的MVB控制器的对外信号定义。
10
权利要求
1.一种过程数据动态分配MVB控制器,包括物理层编码模块、物理层解码模块、发送缓冲模块、接收缓冲模块、通信存储器模块、地址仲裁模块和链路层控制模块,其特征在于所述的物理层编码模块用于在链路层控制模块的控制下,从发送缓冲模块读出数据, 按照MVB数据帧格式向MVB网络发送数据;所述的物理层解码模块用于根据链路层控制模块指定的接收数据帧长度,从MVB总线获取数据帧,将接收到的数据帧存入接收缓冲模块;所述的发送缓冲模块用于临时存放欲发送到MVB网络上的数据帧; 所述的接收缓冲模块用于临时存放解码器模块从MVB网络上获取的数据帧; 所述地址仲裁模块用于决定应用处理器读写通信存储器的数据地址; 所述通信存储器模块用于在链路层控制模块的控制下,实现应用处理器与MVB网络的数据交换;所述的链路层控制模块用于控制物理层编码模块、物理层解码模块、发送缓冲模块、接收缓冲模块和通信存储器模块完成规定标准中的所有链路层功能;其中,所述通信存储器模块包括程数据端口地址动态分配控制空间、过程数据配置空间和过程数据空间所述过程数据端口地址动态分配控制空间用于记录过程数据端口的数量以及启动网卡最新配置;所述过程数据配置空间用于过程数据端口地址以及源宿的配置,实现端口状态刷新;所述过程数据空间用于存储各个端口的数据,并根据端口类型的源宿,决定向MVB网络发送数据或从MVB网络接收数据。
2.根据权利要求1所述的方法,其特征在于,所述通信存储器模块还包括 设备配置空间、消息数据队列和监视数据空间;所述的备控制空间用于存放该MVB设备在网络中的物理地址,也是监视数据和消息数据的收发地址,并且标识该设备的事件优先级;所述的消息数据队列包括发送消息FIFO和接收消息FIFO,用于收发MVB消息数据; 所述监视数据空间用于决定是否向MVB网络发送监视数据以及发送监视数据的内容。
3.根据权利要求1所述的一种过程数据动态分配的MVB控制器,其特征在于 根据上电配置实现MVB的1类设备、或2类设备、或3类设备、或4类设备。
4.一种过程数据动态分配MVB处理数据方法,其特征在于,包括 获取配置的过程数据端口个数N ;依次读取N个过程数据端口的配置信息;当N个过程数据端口的配置信息读取完毕后,对于主帧中的过程数据轮询,根据主帧指定的端口和配置信息为所述过程数据轮询分配的动态地址,获得相应地址的端口配置; 根据所述过程数据端口属性对过程数据进行处理; 其中,所述的配置信息通过如下步骤获得对于应用的N个过程数据端口和过程数据空间中的N个地址,在过程数据配置空间配置所述端口与地址的一一对应关系;根据所述一一对应关系,将所述地址进行端口配置。
5.根据权利要求1所述的方法,其特征在于,在获取配置的过程数据端口个数N之前还包括确认系统的配置信息配置完毕。
6.根据权利要求5所述的方法,其特征在于,通过如下步骤确认系统的配置信息配置完毕判断开始标识是否为OxAA,如果是,确认系统的配置信息配置完毕;
7.根据权利要求4所述的方法,其特征在于,通过以下步骤根据所述过程数据端口属性对过程数据进行处理如果该端口属性为源端口,则从动态分配的过程数据空间地址中读出数据; 如果该端口属性为宿端口,把得到的从帧写入动态分配的过程数据空间地址中; 如果主帧中所指定的端口为无效端口,返回到等待主帧状态。
8.—种过程数据动态分配MVB控制系统,其特征在于包括权利要求1或2所述的MVB控制器和应用处理器;所述的应用处理器用于MVB控制器进行设备配置,过程数据端口配置和启动MVB控制器的过程。
9.根据权利要求8所述的系统,其特征在于,所述的MVB控制器封装在FPGA芯片上,外接应用处理器; 或者,所述的MVB控制器与应用处理器封装在同一个FPGA芯片上。
全文摘要
本申请提供了一种过程数据动态分配MVB控制器和处理数据方法,涉及列车控制网络系统技术领域。本申请通过在通信存储模块中设置过程数据端口地址动态分配空间、过程数据配置空间,通过过程数据端口地址动态分配空间、过程数据配置空间将各端口与过程数据配置空间的各地址进行一一对应,然后根据该对应关系配置端口。通过本申请可以用较小的过程数据空间实现过程数据全地址全功能码动态选址;用较少的存储空间就可以实现过程数据4096个端口全地址选址,可更加能灵活地配置为多类MVB设备;并且设计可靠、方便升级,并且可以根据不同的应用场合灵活修改。
文档编号H04L29/08GK102523265SQ20111040279
公开日2012年6月27日 申请日期2011年12月7日 优先权日2011年12月7日
发明者严翔, 宋娟, 王立德 申请人:北京交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1