这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 用FPGA实现多功能车厢总线控制器

共1条 1/1 1 跳转至

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

菜鸟
2005-09-28 15:42:58     打赏
西南交通大学计算机与通信工程学院 蔡颖 诸昌钤 国腾微电子有限公司 王勇 摘 要:本文介绍了多功能车厢总线(MVB),分析了国外先进MVB网卡的通信机制与特点,在此基础上,提出了用FPGA技术实现该网卡的核心部分多功能车厢总线控制器(MVBC)的方法,并采用功能相关的模块分组验证方法,对MVBC进行了功能验证及时序验证。 关键词:MVB;网络接口单元;FPGA 前言 MVB为快速的过程控制总线,能提供较快的响应速度,适合用作车厢总线,对于固定编组的列车,MVB也可以用作列车总线。 同其它的几种通用的现场总线(LonWorks、WordFIP、CAN等)在列车上的应用相比,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所示,各模块功能和工作方式如下。 编码、解码模块是GTMVBC与MVB总线的接口电路,解码模块接收曼切斯特编码信号,并通过检测观察线上的信号获取正确的编码。接收时,区分主帧和从帧,读取帧数据和8位的CRC并存放于接收缓冲区RXB中。且由内部的错误检测机制确保汉明距离为8。而编码模块把16位的数据通过曼切斯特编码转变为1.5Mb/s的串行数据流,并以主帧或从帧的形式发送出去;发送、接收缓冲模块存储要发送的帧和校验序列;主控模块(MCU)接收来自报文分析单元(TAU)的控制命令,完成主帧的获取、端口预处理、数据传输、端口后处理以及TAU的命令反馈等操作。TAU进行报文分析,对接收的各种错误的主、从帧进行处理,并通过准确的定时控制整个系统的主、从帧的发送、接收和各种超时处理。TM访问控制模块(TMC)主要接收来自MCU、CPU的各种端口TM的访问请求,实现链路层和网络层的通信。仲裁控制器解决MCU和CPU对TM的访问仲裁,决定TMC的访问模式和对地址逻辑的译码方式。地址逻辑单元受TMC控制,实现MCU对TM访问的地址解析、译码,以及实现CPU对TM、配置寄存器访问的地址编、译码。内部寄存器阵列实现MVBC对各个配置寄存器的位读写,及其CPU对每个寄存器的读写,同时还实现如中断逻辑等需自动状态更新的功能。中断逻辑是接收包括GTMVBC内部和外部中断源申请的32个中断,在中断屏蔽寄存器、中断申请待决寄存器、中断状态寄存器和中断判优逻辑的控制下形成相应的中断向量, 以供CPU进一步处理。端口监控机制模块提供对宿端口数据刷新频率的监控。向下兼容接口模块是为了支持简单的、低级的MVB总线设备的通信而专门设置的功能模块。时钟产生器产生芯片内部需要的各种频率的时钟信号。 子模块设计举例 TAU通过准确的定时控制整个MVBC的主、从帧的发送、接收和各种超时处理。 整个TAU工作状态可划分为三个主状态和8个中断。中断分别是:错误主帧(EMF)、错误从帧(ESF)、重复主帧(DMF)、重复从帧(DSF)、主帧完成(MFC)、从帧完成(SFC)、响应超时(RTI)和总线超时(BTI)。三个主状态由于发生事件不同,状态也有不同的转换,以从设备为例具体工作过程如下: 1. 等待主帧状态 设备初始化后或者在一个报文周期结束后处于等待主帧状态。 收到正确的主帧:产生MFC中断,通知MCU端口预处理,转为等待从帧状态。 收到错误的主帧:产生EMF中断,转为忽略从帧状态,此时不报告MCU。 收到正确的从帧:报告DSF中断,继续等待主帧。 收到错误的从帧:报告ESF和DSF中断,继续等待主帧。 超时等待:长时间没收到主帧,发生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. 存储器管理验证:验证地址逻辑、CPU与MVBC的访问、仲裁逻辑和宿时间管理。 4. MVBC系统功能验证:验证Fcode 0、4、8、12、15的主设备功能以及9、13、14的事件轮询读取主帧表、单双端口处理、数据存储,以及消息队列处理等MVBC各主要功能。同时还验证TM中为每种Fcode配置32字的主帧表以及物理端口数据内容,并验证MCU向TMC发出的内部指令顺序。 结语 本文用FPGA实现的MVBC与专用芯片MVBC01具有几乎一样的功能和特点,采用16位数据总线,通讯存储器的寻址空间最大可为1MB,支持逻辑和设备寻址报文端口最大可为4096个。内嵌完整的MVB1类设备协议,可实现多达32个主帧的自动精确定时发送。另外,MVBC还提供2个通用定时器、基于矢量的智能中断逻辑以及宿端口通讯超时监视、消息队列的自动处理、设备地址可编程等功能。但由于使用的是通用FPGA器件,所以不能集成如MVBC02那样的电平转化和隔离的功能,需要外加耦合变压器或转换芯片。



关键词: 实现     多功能     车厢     总线     控制器     网卡     功能     模块    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]