找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于SOPC的车辆息线控制器设计方案

[复制链接]
admin 发表于 2013-3-21 21:58:05 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
引 言
     基于分布式控制的MVB(多功能车辆总线)是IEC61375-l(1999)TCN(列车通信网络国际标准)的推荐方案,它与WTB(绞线式列车总线)构成的列车通信总线具有实时性强、可靠性高的特点。MVB作为快速的过程控制优化的总线,能提供最佳的响应速度.是主要用于有互操作性和互换性要求的互联设备之间的串行数据通信总线,适合用作车辆总线,对于固定编组的列车,MVB也可以用作列车总线,如图1所示。
   
     随着系统集成技术的不断成熟,出现了一种新兴的产业,即IP(Intellcctual Property,知识产权)产品及模块化设计。在集成电路设计中,IP特指可以通过知识产权贸易,在各设计公司间流通的实现特定功能的电路模块。IP核的奉质特征是可莺用性,通常满足良好的通用性、可移植性及绝对正确3个基本特征,是未来SOPC(System OnProgrammable Chit))设计的核心。要使SOPC设计成功,就要更多地采用知识产权(IP)复用,以快速地完成设计,得到价格低廉的硅器件,从而满足市场需求。
     笔者对国外传统MVB通信控制器芯片MVBC以及MVB底层通信协议进行了深入的研究,在此基础上设计了自主知识产权的MVB总线访问IP核,并利用SOPC技术设计了MVB控制器。
  
     1 MVBC介绍
     MVBC(多功能车辆总线控制器)是MVB总线上的新一代核心处理器。它独立于物理层和功能设备,为总线上的各个设备提供通信接口和通信服务。MVBC与上一代MVB通信控制器BAP15-2/3相比,在性能上有了很大的提高,是目前MVH总线上最先进的通信控制器。MVBC内部结构如图2所示。
    20121107052838877681005.jpg
     MVBC用于将来自MVB总线的串行位信号转换为并行的数据字节,把需发送的字节交由串行化电路发送到传输介质上,实现数据链路层以及部分传输层的数据处理,并通过通信存储器与上层软件交互。总线控制器内部包含编解码电路和控制通信存储器所需的逻辑电路,用来控制帧的发送和接收(如冲突检测、帧的前导比特处理和CRC校验位的处理等)。
     2 MVB总线访问IP核的实现
     总线访问IP核用于代替现有MVB网卡的MVBC芯片实现应用的功能,由此IP核结合物理层的总线收发器完成总线访问。总线访问IP核可分为物理层、数据链路层和与应用层的接口3部分。
     ①物理层:实现基带曼彻斯特Biphase-L编解码,介质冗余处理,介质安装单元接口,以及用于输入解码的数字锁相环的设计。
     ②数据链路层:包括寻址方式,F-code(功能代码)的生成,主从设备帧内容的填充以及介质访问控制(MAC)等。
     ③与应用层的接口:通常采用共享存储器的方法,需要完成端口的定义与维护、通信存储器的控制等,其逻辑框图如图3所示。
    20121107052838940181006.jpg
     2.1 MVB帧结构
     在MVB中有两种帧格式:一种是只能由总线主设备发送的主设备帧,简称“主帧”;另一种是为响应主帧而由从设备发送的从设备帧,简称“从帧”。一个帧以9位定界符开始,主设备帧分界符和从设备帧分界符对于防止同步失败是不相同的。图4为MVB主从帧结构图。
    20121107052838971431007.jpg
     2.2 MVB帧发送器
     MVB总线数据以帧为基本单位,数据帧采用了曼彻斯特码传输。编码器和解码器不只是进行曼彻斯特编解码,帧头帧尾的特殊编解码也需要在这里进行,采用传统的曼彻斯特编解码器将无法完成此项工作。在本设计中,采用结合收发器的状态机具体状态进行编解码设讣的方法解决这一问题。MVB帧发送器通过控制逻辑模块,调用曼彻斯特编码与CRC校验模块,通信存储单元模块完成缓冲区数据的发送。
     下面说明发送器的状态机FSM(Finite State Machine)的设计。发送器的一项主要功能是实现并串转换和组帧。MVB总线数据在收到发送置位信号后开始进行数据发送;当数据存入通信存储单元后,等待控制逻辑模块的置位信号;然后进入帧的发送状态,通过时钟信号的触发完成各个状态之问的转移,实现一组有效的帧数据发送。发送器的状态机FSM如图5所示。
    20121107052839002681008.jpg 2.3 MVB帧接收器
   
     接收器实现的关键是有效数据帧的识别,实现思路类似于发送器,根据编码校验可以实现。另一个问题是与总线的接口方式,本设计采用了8位并行数据宽度输出,加序号标识的方法可以接收任意给定长度的有效数据。接收器的状态机如图6所示。
    20121107052839065181009.jpg
     2.4 Avalon总线接口
     采用Altera公司开发的Avalon交互式片上系统总线作为本总线访问IP核的内联总线,连接IP核内各个模块。如图7所示,总线访问IP核结构包括:编码器模块、解码器模块、宿端口刷新时间监控模块、一类设备逻辑控制模块。总线访问IP核内共有4个Avalon从端口,其中NiosII主控制器上设置了一个Avalon总线主端口,其他各个模块上面均设置了Avalon总线从端口,由主控制器控制总线上的数据流传输实现各个模块的协同工作,其逻辑框图如图7所示。
   
     3 SOPC片上系统MVB控制器设计
   3.1 总线访问IP核与NiosII的系统集成
     利用QuartersII的SOPC Builder工具,集成了1个32位NiosII软核处理器、4 KB的片内RAM、MVB总线访问IP核(包括编码器和解码器)以及LCD控制模块,在Altera的CycloneII FPGA上构成了一个能实现MVB一类网络节点功能的片上系统,如图8所示。图9为SOPCBuilder中各个功能模块的凋用情况。
    20121107052839143301011.jpg 3.2 NiosII处理器上的软件设计
   
     基于上述SOPC系统,设计了一个基本的MVB节点,以实现过程数据传输。该节点将Oxl4地址设置为源端口。当主帧轮询0x14地址时,本节点将此端口里的数据打包成从帧发送到总线上面,以刷新0x14地址的宿端口。
     MVB模块头文件altera_avalon_mvb.h的设计,包括总线访问IP核寄存器读写的宏定义。
    20121107052839205801012.jpg
     在主函数里置MVB总线接收允许位,循环等待接收MVB主控制器发过来的主帧。节点在接收到主帧之后,程序进入中断处理程序。在巾断程序里提取接收到的主帧里的端口地址,并与自身预设的端几地址码进行比较。如果地址码相符,则节点将本端口的数据通过MVB发送器发到总线上,实现端口数据刷新操作。
     主循环代码节选:
    20121107052839221421013.jpg
20121107052839252671014.jpg
  
     4 仿真与实测波形
     4.1 仿真波形
     在本实验中,对实验室设计的MVB板卡进行了功能仿真和FPGA验证.通过对过程数据的发送与接收验证了所搭建的MVB系统。对MVB总线控制器发送过程的主从帧仿真结果如图10所示。发送的主从帧数据都为0x0055,包含1个帧头及8位CRC校验数据。
    20121107052839315171015.jpg
     4.2 实测波形
     编好程序后,再编译一遍QuartersII工程文件,将得到的.pof文什下载至FPGA内。上电后用示波器测输出引脚,便可观察到MVB从帧波形,实测波形如图11所示。对照IEC-61375协议标准,可以判断出该渡形为符合标准的正确波形,并且源端口节点上收到了正确的数据,从而证明该过程数据端口成功刷新。
    20121107052839346421016.jpg
     结语
     目前,MVB控制器实现了实验室环境中过程变量的正确接收和发送。本总线访问IP核实现的功能与MVBC相当,但是由于采用了先进的SOPC设计技术,其体系结构大大简化,设计难度也大大降低,在通用性方面有了很大的提高。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-23 14:41 , Processed in 0.058118 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表