基于FPGA的MVB接收模块设计论文_高永亮, 王艳琴, 杨雨

中车唐山机车车辆有限公司

摘要:本文在研究和分析IEC61375-3-1的基础上,提出了一种MVB接收模块的状态转移图,并用verilog HDL描述了该状态机,最后用Vivado开发平台自带的isim仿真工具进行了功能仿真。

关键词: MVB FPGA 状态机

MVB(多功能车辆总线),是一种串行数据通信总线,主要用于连接列车各个车辆内的控制单元和设备,为车辆级网络设备提供信息通道,从而实现对网络设备的监控、诊断、通信等,它具有高实时性和高稳定性的优势。MVBC(多功能车辆总线控制器)是MVB总线通信的核心,也是MVB设备上不可缺少的组成部分。它独立于物理层和功能设备,为总线上的各个设备提供通讯接口和通讯服务。

由于起步晚及以及国外企业的垄断,MVBC技术一直掌握在西门子、ABB、庞巴迪等行业巨头手中。随着可编程逻辑器件在电子行业的广泛应用,为基于FPGA实现MVBC的功能提供了可能。同时Dugon公司在基于FPGA实现MVB通信卡方面的成功也为国内开发MVBC提供了可借鉴的经验。

1.MVB帧协议

MVB的数据采用曼彻斯特编码,从低到高为“0”,从高到低为“1”,同时增加了两个非数据符编码“NH”和“NL”。它有两种帧类型,一种是总线主设备发布的主帧;另一种则是由从设备响应主帧而发送的从帧。一条主帧和其对应的从帧组成一个报文。

主帧的长度固定为33位,主帧数据的内容包括:9位主起始分界符、16位数据(包括4位F code和12位的地址或参量)以及8位校验序列。所有设备都对主帧进行译码,随后被寻址的源设备响应一个从帧,该从帧可被几个其他的设备所接收。从帧可能有五种长度:33、49、81、153或者297位,它是由主帧中的4位F代码所决定的,其中包括9位从起始分界符和16--256位的数据。每隔64位序列有一个8位校验序列。主帧和从帧的格式如下图1所示:

在一个MVB网络中,所有的网络设备都配置了相同数量和大小的数据端口。在具有某个端口地址的端口中,只允许有一个端口是源端口。信息是通过源寻址广播的方式传输的。对于一条报文的具体传输过程是,1.主设备广播一条带有源标识符主帧;2.总线上的所有从设备均对该主帧进行接收,当某一个从设备接收到这条主帧后,如果它的源端口地址正好与这个主帧中的源标识符一致,则这个从设备就把其源端口中的数据发送出去;如果它的宿端口地址与这个主帧中的源标识符一致,则它将准备好接收别的设备发送的从帧,并将接收到的从帧保存在与主帧标识符相应的端口中。

2.接收模块状态机设计

根据MVB帧类型及其实际情况,对帧数据的接收分为:空闲状态、主帧起始分界符接收、从帧起始分解符接收、主帧帧有效数据接收、从帧帧有效数据接收、帧结束等待和帧终止分界符接收共7种状态。其状态转移如下图2所示:

其状态转移描述如下:

1.在上电复位后,状态机进入空闲状态;

2.在接收控制器和总线数据上升沿共同判定下,状态机跳转到主帧或从帧起始分界符接收状态;

3.如果帧起始分界符正确,则跳转到主帧或从帧的帧有效数据接收状态;如果帧起始分界符错误,则状态机跳转到帧结束等待状态,放弃接收后续所有的数据;如果发生主帧重复(在接收从帧起始分界符的状态接收到主帧起始分界符),则状态机跳转到主帧有效数据接收状态;如果发生从帧重复(在接收主帧起始分界符的状态接收到从帧起始分界符),则状态机跳转到帧结束等待状态;

4.在帧有效数据接收状态时,如果发生帧长度错误、曼彻斯特编码违规时,状态机跳转到帧结束等待状态,正常情况下,接收帧数据完成后,跳转到帧终止分界符接收状态;

5.在帧结束等待状态时,如果接收到帧终止分界符,则状态机跳转到空闲状态,否则一直保持在帧结束等待状态;

6.在帧终止分界符接收状态时,如果接收到帧终止分界符,则状态机跳转到空闲状态,如果帧终止分界符错误,则跳转到帧结束等待状态。

3.模块设计及描述

接收模块用Verilog HDL进行描述,基于三段式的写法,第一段用同步时序电路描述现态输出,第二段用组合逻辑电路进行状态转移描述,第三段用同步时序电路对输出信号和状态转移条件的中间信号进行描述。硬件描述完成后生成的原理框图如下图3:

4.模块功能仿真

ISIM是Vivado开发平台自带的仿真软件,它不用编译库,仿真速度快。本模块在基于Verilog HDL描述完成后,编写了测试模块,用ISIM进行了功能仿真,仿真结果如下图4所示:

上图中sd_type类型为Input,其决定当前应该接收的帧类型,为0时表示当前应该接收主帧。在sd_type=0和上升沿的共同决定下,状态机由空闲状态跳转到主帧帧起始分界符接收状态;在帧起始分界符寄存器sd_reg为18’b101100011100010101时,代表主帧帧头正确接收完成,状态机跳转到主帧有效数据接收状态;而后在计数器的控制下,在接收到24位曼彻斯特编码数据后,状态机跳转到帧终止分界符接收状态。

5.结论

本文在对MVB底层协议研究的基础上,结合帧数据在实际接收过程中的情况,基于FPGA用Verilog描述设计出了一款MVB接收模块,并通过仿真验证其设计的正确性。对更深入研究MVBC和基于MVB的列车网络系统有着重要的现实意义。

参考文献:

[1] IEC 61375-3-1 Edition 1.0 2012-06

[2] 宋娟,王立德,刘保明 MVB四类设备控制器的FPGA设计. 2008全国博士生学术论坛电气工程论文集,2008

论文作者:高永亮, 王艳琴, 杨雨

论文发表刊物:《科学与技术》2019年第09期

论文发表时间:2019/9/30

标签:;  ;  ;  ;  ;  ;  ;  ;  

基于FPGA的MVB接收模块设计论文_高永亮, 王艳琴, 杨雨
下载Doc文档

猜你喜欢