基于SOPC的列车通信网卡的设计
时间:09-03
来源:互联网
点击:
国内外车载网络技术的发展是随着现场总线网络技术的发展而发展起来的,先后产生了RS485、Lonworks、WorldFIP等多种总线网络形式。1999年,国际电工委员会(IEC)颁布了IEC-61375标准,该标准中将车载网络分为两级总线的层次结构,即用于连接各节可动态编组的车辆间的绞线式列车总线WTB(Wire Train Bus)和用于连接车辆(或固定编组的车辆单元)内部各种设备的多功能车辆总线MVB(Multifunction Vehicle Bus),它们之间的列车总线节点起着网关的作用,其中MVB网络由于较低的要求和其易用性高的特点,在实际中运用很广泛。本文通过深入研究几种列车通信网络产品底层协议,特别是TCN 的底层协议及关键技术,基于SOPC的设计思想,设计出符合IEC-61375 标准的MVB总线访问IP(Intellectual Property)内核和网卡。
系统体系结构
本设计正是基于SOPC的思想,开发实现自主知识产权的MVB收发控制器IP核,借助于Quarters II开发工具,集成至Altera FPGA器件内部,构建SOC片上系统实现MVB网卡基本功能,相比传统国外的MVB网卡,大大简化了系统的结构,降低了开发难度。
传统MVB网卡的硬件结构比较复杂,设计实现上有较大的难度。如图1所示,是Duagon公司的一款典型的MVB网卡d113的硬件结构。其硬件主要有以下几个部分构成:中央控制器采用高性能的32位ARM处理器,存储系统由非易失性程序存储器(ROM)Flash,以及数据存储器RAM组成,可编程器件上实现MVB收发器以及外部PC/104总线接口。

图1 d113硬件框图
本设计在一片FPGA上,采用SOPC技术实现的MVB网卡:由Altera 公司提供的32位高性能软核处理器NiosII取代ARM处理器,ROM,RAM及Traffic Memory均可以在FPGA片内由SOPC Builder工具实现,再集成MVB总线访问IP核便可以构成MVB网卡,实现了真正的片上系统。其硬件框图如图2所示。

图2 网卡结构框图
总线访问IP核的实现
总线访问IP 核是实现WTB和MVB的总线访问处理器(BAP)的核心内容。由此IP 核结合物理层的总线收发器完成总线访问。总线访问IP核可分为物理层、数据链路层与应用层的接口三大部分。1)在物理层实现基带曼彻斯特Biphase-L编解码,介质冗余处理,介质安装单元接口;用于输入解码的数字锁相环的设计。2)链路层包括寻址方式,F-code(功能代码)的生成,主从设备帧内容的填充,介质访问控制(MAC)等。3)与应用层的接口通常采用共享存储器的方法,需要完成端口的定义与维护,通信存储器的控制等。其逻辑框图如图3。

图3 网卡结构框图
MVB帧结构
在MVB中有两种帧格式,一种是只能由总线主设备发送的主设备帧,简称主帧,一种是为响应主帧而由从设备发送的从设备帧,简称从帧。 一个帧以9位定界符开始,主设备帧分界符和从设备帧分界符对防止同步失败是不相同的。
MVB编码器
MVB总线数据以帧为基本单位,数据帧采用了曼彻斯特码传输,编码和解码器不只是进行曼彻斯特编解码,帧头帧尾的特殊编解码也需要在这里进行,采用传统的曼彻斯特编解码器将无法完成此项工作。在本设计中,采用了结合收发器的状态机具体状态进行编解码的设计方法解决这一问题。MVB帧发送器通过控制逻辑模块调用曼彻斯特编码与CRC校验模块、通信存储单元模块完成缓冲区数据的发送。
MVB帧接收器
接收器实现的关键是有效数据帧的识别,实现思路类似于发送器,根据编码校验可以实现。另一个问题是与总线的接口方式,该设计采用了8位并行数据宽度输出,加序号标识的方法可以接收任意给定长度的有效数据。
数据校验
帧数据用一个或更多的8位校验序列来保护,数据的内容应处理成64位的代码字(对小一些的数据用16或32位),不包括起始分界符和终止分界符。这个代码字和随后的校验序列应作为最高有效的数据位首先发送。
校验序列按被其保护的16,32或64位数据的循环冗余校验(CRC)计算。校验序列按多项式计算,7位运算结果用一个偶校验位进行扩展。所有的8位数据取反发送。
通信存储单元模块
通信存储器(Traffic Store)作为MVB标准中的一个重要实现手段,是MVB接口网卡中的重要组成部分。通信存储器容量的大小依据具体应用而定。在MVB网络中通常所需要的通信存储器容量为32或64个端口即可,每个端口需要占用的空间最大为256位,这样通信存储器所需要的空间为8kbits或16kbits。开辟FPGA中的DRAM作为通信存储单元,完成数据交互功能。用来存储经由MVB总线传输的数据,是控制逻辑模块与编码校验单元之间的共享单元。控制逻辑模块依据通信存储模块端口地址的起始地址,以及其数据长度,来读取相应的过程数据和消息数据等。
系统体系结构
本设计正是基于SOPC的思想,开发实现自主知识产权的MVB收发控制器IP核,借助于Quarters II开发工具,集成至Altera FPGA器件内部,构建SOC片上系统实现MVB网卡基本功能,相比传统国外的MVB网卡,大大简化了系统的结构,降低了开发难度。
传统MVB网卡的硬件结构比较复杂,设计实现上有较大的难度。如图1所示,是Duagon公司的一款典型的MVB网卡d113的硬件结构。其硬件主要有以下几个部分构成:中央控制器采用高性能的32位ARM处理器,存储系统由非易失性程序存储器(ROM)Flash,以及数据存储器RAM组成,可编程器件上实现MVB收发器以及外部PC/104总线接口。

图1 d113硬件框图
本设计在一片FPGA上,采用SOPC技术实现的MVB网卡:由Altera 公司提供的32位高性能软核处理器NiosII取代ARM处理器,ROM,RAM及Traffic Memory均可以在FPGA片内由SOPC Builder工具实现,再集成MVB总线访问IP核便可以构成MVB网卡,实现了真正的片上系统。其硬件框图如图2所示。

图2 网卡结构框图
总线访问IP核的实现
总线访问IP 核是实现WTB和MVB的总线访问处理器(BAP)的核心内容。由此IP 核结合物理层的总线收发器完成总线访问。总线访问IP核可分为物理层、数据链路层与应用层的接口三大部分。1)在物理层实现基带曼彻斯特Biphase-L编解码,介质冗余处理,介质安装单元接口;用于输入解码的数字锁相环的设计。2)链路层包括寻址方式,F-code(功能代码)的生成,主从设备帧内容的填充,介质访问控制(MAC)等。3)与应用层的接口通常采用共享存储器的方法,需要完成端口的定义与维护,通信存储器的控制等。其逻辑框图如图3。

图3 网卡结构框图
MVB帧结构
在MVB中有两种帧格式,一种是只能由总线主设备发送的主设备帧,简称主帧,一种是为响应主帧而由从设备发送的从设备帧,简称从帧。 一个帧以9位定界符开始,主设备帧分界符和从设备帧分界符对防止同步失败是不相同的。
MVB编码器
MVB总线数据以帧为基本单位,数据帧采用了曼彻斯特码传输,编码和解码器不只是进行曼彻斯特编解码,帧头帧尾的特殊编解码也需要在这里进行,采用传统的曼彻斯特编解码器将无法完成此项工作。在本设计中,采用了结合收发器的状态机具体状态进行编解码的设计方法解决这一问题。MVB帧发送器通过控制逻辑模块调用曼彻斯特编码与CRC校验模块、通信存储单元模块完成缓冲区数据的发送。
MVB帧接收器
接收器实现的关键是有效数据帧的识别,实现思路类似于发送器,根据编码校验可以实现。另一个问题是与总线的接口方式,该设计采用了8位并行数据宽度输出,加序号标识的方法可以接收任意给定长度的有效数据。
数据校验
帧数据用一个或更多的8位校验序列来保护,数据的内容应处理成64位的代码字(对小一些的数据用16或32位),不包括起始分界符和终止分界符。这个代码字和随后的校验序列应作为最高有效的数据位首先发送。
校验序列按被其保护的16,32或64位数据的循环冗余校验(CRC)计算。校验序列按多项式计算,7位运算结果用一个偶校验位进行扩展。所有的8位数据取反发送。
通信存储单元模块
通信存储器(Traffic Store)作为MVB标准中的一个重要实现手段,是MVB接口网卡中的重要组成部分。通信存储器容量的大小依据具体应用而定。在MVB网络中通常所需要的通信存储器容量为32或64个端口即可,每个端口需要占用的空间最大为256位,这样通信存储器所需要的空间为8kbits或16kbits。开辟FPGA中的DRAM作为通信存储单元,完成数据交互功能。用来存储经由MVB总线传输的数据,是控制逻辑模块与编码校验单元之间的共享单元。控制逻辑模块依据通信存储模块端口地址的起始地址,以及其数据长度,来读取相应的过程数据和消息数据等。
总线 Altera FPGA ARM 收发器 编码器 解码器 LCD LTE 仿真 示波器 相关文章:
- 热插拔和缓冲I2C总线 (04-14)
- PCIe总线何时突破Unix服务器坚冰(02-03)
- TMS320VC5402 HPI接口与PCI总线接口设计(04-12)
- 基于Nios II的I2C总线接口的实现(04-09)
- 双口RAM CY7C026在高速数据采集系统中的应用(04-12)
- 计算机在新型多电机同步系统中的应用(07-08)
