基于FPGA的MVB接收模块设计.docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

??

?

??

基于FPGA的MVB接收模块设计

?

??

?

?

?

?

?

?

?

???

?

?

?

?

?

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

关键词:MVBFPGA状态机

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

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

?

MVB帧协议

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

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

图1MVB主从帧格式

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

?

接收模块状态机设计

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

图2接收模块状态机状态转移图

其状态转移描述如下:

?

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

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

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

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

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

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

?

模块设计及描述

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

图3模块原理框图

?

模块功能仿真

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

图4接收模块仿真结果

上图中sd_type类型为Input,其决定当前应该接收的帧类型,为0时表示当前应该接收主帧。在sd_type=0和上升沿的共同决定下,状态机由空

文档评论(0)

186****3372 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档