>
首页 » 技术文章 » 用FPGA实现多功能车厢总线控制器

用FPGA实现多功能车厢总线控制器

作者:西南交通大学计算机与通信工程学院 蔡颖 诸昌钤 国腾  时间:2005-08-19 20:58  来源:本站原创

:本文介绍了多功能车厢总线(MVB),分析了国外先进MVB网卡的通信机制与特点,在此基础上,提出了用FPGA技术实现该网卡的核心部分多功能车厢总线控制器(MVBC)的方法,并采用功能相关的模块分组验证方法,对MVBC进行了功能验证及时序验证。

关键词MVB;网络接口单元;FPGA

前言

MVB为快速的过程控制总线,能提供较快的响应速度,适合用作车厢总线,对于固定编组的列车,MVB也可以用作列车总线。

同其它的几种通用的现场总线(LonWorksWordFIPCAN)在列车上的应用相比,MVB在实时性、可靠性、可管理性、介质访问控制方法、寻址方式、通信服务种类等方面有着一定的优势。但由于MVB是专门针对列车通信网络而开发,其适用范围、供货商、经济性均不如其他几种通用现场总线。尤其是所有与MVB连接的设备都需要通过MVB网卡访问MVB,而国外公司对该网卡的核心-MVBC芯片的垄断,给国内机车推广使用MVB和开发MVB的其它应用带来了极大的阻力。如果能用通用的FPGA实现MVBC的功能,不仅会大大推动国内MVB的应用,而且对国内今后自行制订列车网络标准也是大有裨益。

1 主动式MVB网卡硬件结构

2 MVBC内部模块系统框图(虚线内部分)

通用的MVB网卡

根据MVB设备的类别和功能,可以分为被动式MVB网卡和主动式MVB网卡。被动式网卡具有过程数据传输功能,板卡上没有应用处理器,一般不作为总线管理器和进行消息数据通信。

主动式MVB网卡有板上应用处理器,适合TCN定义的全部5类设备,但一般用于3类及3类以上设备网络接口单元,实现过程数据和消息数据通信,并可作为总线管理器。其硬件结构框图如图1所示。

FPGA实现

MVBC的设计方法

现有的MVB网卡上除了MVBC,其余都是通用器件,价格低廉且容易找到替代品。只有MVBC是专门为MVB总线设计,用于设备与总线通信。其内部包含编码/译码电路和控制通信存储器所需的逻辑电路,用来控制帧的发送和接收(如冲突检测、帧的前导比特处理、CRC校验位的处理等)、对输入帧译码并检验其有效性,以及把数据存放到相应的通信存储器中。考虑到布线的成功率,本文选用Xilinx公司的XC3S400来实现。

整体框架设计

该方案的整体结构框图如图2所示,各模块功能和工作方式如下。

编码、解码模块是GTMVBCMVB总线的接口电路,解码模块接收曼切斯特编码信号,并通过检测观察线上的信号获取正确的编码。接收时,区分主帧和从帧,读取帧数据和8位的CRC并存放于接收缓冲区RXB中。且由内部的错误检测机制确保汉明距离为8。而编码模块把16位的数据通过曼切斯特编码转变为1.5Mb/s的串行数据流,并以主帧或从帧的形式发送出去;发送、接收缓冲模块存储要发送的帧和校验序列;主控模块(MCU)接收来自报文分析单元(TAU)的控制命令,完成主帧的获取、端口预处理、数据传输、端口后处理以及TAU的命令反馈等操作。TAU进行报文分析,对接收的各种错误的主、从帧进行处理,并通过准确的定时控制整个系统的主、从帧的发送、接收和各种超时处理。TM访问控制模块(TMC)主要接收来自MCUCPU的各种端口TM的访问请求,实现链路层和网络层的通信。仲裁控制器解决MCUCPUTM的访问仲裁,决定TMC的访问模式和对地址逻辑的译码方式。地址逻辑单元受TMC控制,实现MCUTM访问的地址解析、译码,以及实现CPUTM、配置寄存器访问的地址编、译码。内部寄存器阵列实现MVBC对各个配置寄存器的位读写,及其CPU对每个寄存器的读写,同时还实现如中断逻辑等需自动状态更新的功能。中断逻辑是接收包括GTMVBC内部和外部中断源申请的32个中断,在中断屏蔽寄存器、中断申请待决寄存器、中断状态寄存器和中断判优逻辑的控制下形成相应的中断向量,以供CPU进一步处理。端口监控机制模块提供对宿端口数据刷新频率的监控。向下兼容接口模块是为了支持简单的、低级的MVB总线设备的通信而专门设置的功能模块。时钟产生器产生芯片内部需要的各种频率的时钟信号。

子模块设计举例

TAU通过准确的定时控制整个MVBC的主、从帧的发送、接收和各种超时处理。

整个TAU工作状态可划分为三个主状态和8个中断。中断分别是:错误主帧(EMF)、错误从帧(ESF)、重复主帧(DMF)、重复从帧(DSF)、主帧完成(MFC)、从帧完成(SFC)、响应超时(RTI)和总线超时(BTI)。三个主状态由于发生事件不同,状态也有不同的转换,以从设备为例具体工作过程如下:

1. 等待主帧状态

设备初始化后或者在一个报文周期结束后处于等待主帧状态。

收到正确的主帧:产生MFC中断,通知MCU端口预处理,转为等待从帧状态。

收到错误的主帧:产生EMF中断,转为忽略从帧状态,此时不报告MCU

收到正确的从帧:报告DSF中断,继续等待主帧。

收到错误的从帧:报告ESFDSF中断,继续等待主帧。

超时等待:长时间没收到主帧,发生BTI中断,通知解码模块进行线切换,继续处于等待主帧的状态。

2. 等待从帧状态

当设备处于等待从帧状态时,首先等待端口预处理结果,预处理结束后,MCU处于将等待发送、接收或忽略本次操作的命令。

收到正确的主帧:产生MFC中断,通知MCU端口预处理,继续等待从帧状态。

收到错误的主帧:产生EMF中断,转为忽略从帧的状态,报告MCU取消当前操作。

收到正确的从帧:产生SFC中断,报告MCU处理从帧,TAU转换为等待主帧的状态。

收到错误的从帧:产生ESF中断,报告MCU取消当前操作,TAU转为等待主帧的状态。

等待超时:产生RTI中断,转为等待主帧状态,并报告MCU取消当前操作。

3. 忽略从帧状态

在设备处于忽略从帧状态时,MCU已取消当前操作。

收到正确的主帧:发生DMF中断,通知MCU进行端口预处理,转为等待从帧状态。

收到错误的主帧:产生EMF中断,继续处于忽略从帧状态,不向MCU报告。

收到正确的从帧:发生SFC中断,转为等待主帧状态。不向MCU报告。

收到错误的从帧:发生ESF中断,转为等待主帧状态。不向MCU报告。

等待超时:转为等待主帧的状态。不向MCU报告。

验证与分析

MVBC系统功能复杂,本文将所有代码按照功能相关的原则分成4个部分,在工作站上用VCS进行仿真验证,分组验证如下。

1. 编码译码验证:验证基本编解码功能、报错和线切换功能。

2. 总线接口验证:验证主、从设备功能。

3. 存储器管理验证:验证地址逻辑、CPUMVBC的访问、仲裁逻辑和宿时间管理。

4. MVBC系统功能验证:验证Fcode 0481215的主设备功能以及91314的事件轮询读取主帧表、单双端口处理、数据存储,以及消息队列处理等MVBC各主要功能。同时还验证TM中为每种Fcode配置32字的主帧表以及物理端口数据内容,并验证MCUTMC发出的内部指令顺序。

结语

本文用FPGA实现的MVBC与专用芯片MVBC01具有几乎一样的功能和特点,采用16位数据总线,通讯存储器的寻址空间最大可为1MB,支持逻辑和设备寻址报文端口最大可为4096个。内嵌完整的MVB1类设备协议,可实现多达32个主帧的自动精确定时发送。另外,MVBC还提供2个通用定时器、基于矢量的智能中断逻辑以及宿端口通讯超时监视、消息队列的自动处理、设备地址可编程等功能。但由于使用的是通用FPGA器件,所以不能集成如MVBC02那样的电平转化和隔离的功能,需要外加耦合变压器或转换芯片。

相关推荐

没有退路的FPGA与晶圆代工业者

FPGA  晶圆代工  2014-01-03

采用FPGA的可编程电阻的设计结构分析

FPGA  电阻  2013-09-24

从FPGA的制程竞赛看英特尔与Fabless的后续变化

FPGA  Fabless  2013-07-16

物联网融合自动化推动高效生产模式变革

物联网  FPGA  SoC  2013-07-09

14纳米FPGA展现突破性优势

14纳米  FPGA  2013-06-20

高清视频监控FPGA应用迎来小高峰

视频监控  FPGA  2013-06-20
在线研讨会
焦点