基于FPGA全功能MVB网络从设备链路层IP核设计

2016-05-07 01:50胡远朋王宏志胡黄水
长春工业大学学报 2016年1期
关键词:链路层

胡远朋, 王宏志, 胡黄水

(长春工业大学 计算机科学与工程学院, 吉林 长春 130012)



基于FPGA全功能MVB网络从设备链路层IP核设计

胡远朋,王宏志*,胡黄水

(长春工业大学 计算机科学与工程学院, 吉林 长春130012)

摘要:采用模块化的设计方法,将从设备链路层IP核分为多个模块,包括编码译码模块、帧校验模块、收发缓冲器模块、通信存储器模块以及控制单元模块。使用Altera公司的QuartusⅡ集成开发环境,以Verilog HDL作为硬件描述语言,实现各个模块的具体功能。使用软件仿真并在FPGA开发板上对链路层功能进行测试。实验结果表明,所设计的IP核满足国际列车通信网络标准IEC-61375。

关键词:MVB; FPGA; 从设备; 链路层; IP核

0引言

多功能车辆总线(Multifunction Vehicle Bus, MVB)是基于国际列车通信网络(Train Communication Network, TCN)标准IEC-61375的核心部分,负责车辆内设备的互连,以及在固定编组的列车组中连接各车辆设备的车辆总线。除了MVB总线外,还有CAN、LonWorks、WorldFIP等其他总线在列车通信网络中不同程度的使用,但是与MVB总线相比,它们都不是针对列车通信网络研发出来的。例如:CAN是汽车计算机控制系统和嵌入式工业控制局域网的标准总线;LonWorks是指以工厂内的测量和控制机器间的数字通信为主的网络总线;WorldFIP是指以工厂内的测量和控制机器间的数字通讯为主的网络总线。因此,在列车通信网络应用上,MVB网络在可靠性、实时性、监控性等方面具有非常明显的优势。

MVB网络总线的结构必须遵循OSI(开放式系统互联参考模型)模式,按照OSI的分层结构,该网络的链路层通过链路层接口向上层提供服务。MVB网络从设备链路层的IP核包括编码译码模块、帧校验模块、收发缓冲器模块、通信存储器模块以及控制单元模块。该网络从设备链路层是从MVB网络其它层接收数据,还是发送数据,都由控制单元模块决定。编码译码模块主要功能是对MVB网络链路层数据进行编码和译码。收发缓冲器模块的主要功能是在MVB网络链路层接收数据的时候对数据进行暂时的存储。通信存储器模块的主要功能是管理MVB网络其它层的数据和应用处理器的数据进行交换。设计中是利用了Altera公司的Quartus Ⅱ软件中的IP核对全功能MVB网络链路层中的各个模块进行设计,然后利用现场可编程门阵列(FPGA)的设计方法去实现各个模块的功能。

1MVB网络从设备链路层结构简介

MVB网络从设备链路层位于物理层和网络层之间,它通过介质通道驱动器与物理层接口,通过实时协议与上层接口,如图1所示。

图1MVB网络从设备链路层结构

通常,有关全功能MVB链路层的设计包括一个专用的集成电路(ASIC)或一个可编程逻辑设备,用来实现所需的设备总线接口以及存储,恢复当前的数据到通信存储器,以及一个功能强大的处理器被用来完成设备的其它层,在这些设计中并没有清楚地说明设计覆盖了所有的标准规范。

MVB网络从设备链路层IP核按结构层次不同分为5个部分:链路层接口、上链路层、共享内存、下链路层以及物理层部,MVB网络从设备链路层结构如图2所示。

2IP核设计

2.1编码译码模块

由MVB网络协议规定,MVB网络链路层中的数据帧能够被译码器识别为有效的数据帧结构可以包含:起始分界符、帧数据、CRC校验以及结束分解符。

MVB网络信号的传输速率由MVB网络协议规定为1.5 Mbit,利用曼彻斯特进行编码,如图3所示。

图2 MVB网络从设备链路层结构

图3 曼彻斯特编码原理

曼彻斯特码实际上就是NRZ(不归零码)编码和时钟信号的异或。

在MVB网络中除了帧头帧尾,数据帧是以曼彻斯特码进行数据传输的,信号“1”被编为“10”,信号“0”被编为“01”,而信号“NH”被编为“11”,信号“NL”被编为“00”。

编码器在发送数据帧的时候,按照标准IEC-61375必须先发送一个起始位为1的逻辑位作为帧的开始。接收的时候,解码器必须先要确定帧的起始位(即检测下降沿),并据此作为启动同步的判据。曼彻斯特代码的仿真波形如图4所示。

图4曼彻斯特代码的仿真波形

2.2帧校验模块

TCN协议规定,传输数据需要通过校验检查。在MVB网络数据传输阶段,为了防止数据的失真,一般采取循环冗余校验(CRC)的方法,该方法是数字通信领域里使用最为广泛的一种差错校验方法,它的主要特征是信息帧和校验帧的帧长可以是任意长度。其原理是:一个由二进制数据帧构成的数据帧可以与一个系数为‘0’或‘1’的多项式相对应。例如:代码11100101对应的多项式是x7+x6+x5+x2+1,而这个多项式x7+x3+1对应的代码为10001001。

MVB网络链路层从设备中帧校验序列的生成部分相应的串行数据和检验码,然后利用曼彻斯特模块进行编码。MVB网络链路层使用的校验序列是由7位循环冗余校验码和1位偶校验扩展得到的一个8位校验帧。设计中循环冗余校验的计算方法是利用串行的方法,其电路结构由一个线性反馈移位寄存器(LFSR)和一些异或单元构成,其结构单元如图5所示。

图5CRC校验原理图

2.3收发缓冲器模块

发送缓冲器模块是临时存储链路层数从设备将要进行发送至MVB网络链路层里的数据。接收缓冲器模块是临时存储曼彻斯特解码器模块需要进行MVB网络上接收的数据。

在MVB网络链路层数据发送过程中,为了提高数据的传输速率,偶发的处理大数据流。需要设计一个将即将发送的数据帧存储到一个特定的区域,即发送缓存区(发送缓存器)。该区域是由一个同步单口的FIFO组成的模块,该模块能够满足对数据总线发送过来的所有数据的一个暂时性的存储操作,与此同时,该缓存器模块还能生成读写操作信号以及读写标志位。

在MVB网络链路层数据传输过程中,不仅需要发送缓存器模块,接收缓存器模块同样也是不可少的。该接收缓存器模块的设计原理与发送缓存器模块是一样的,其核心部分同样也是一个FIFO模块。该模块的功能是完成MVB网络链路层数据的缓存,如果MVB网络链路层传输过来的数据帧经过译码器译码之后,控制单元模块通过相应的指令来缓存数据帧,其仿真波形如图6所示。

图6收发缓冲器模块仿真波形

2.4通信存储器模块

通信存储器是MVB网络链路层中的重要组成部分,主要进行存储控制器和MVB网络总线通信的数据流。所以,在MVB网络链路层中,各模块会多次访问通信存储器模块以进行数据的读写行为,这样通信存储器模块在MVB网络从设备链路层中是不可或缺、极其重要的。

通信存储器模快工作过程是:该模块处于MVB网络链路层的逻辑控制模块控制之下,把应用处理器的数据安帧发送至MVB网络中,并且在MVB网络链路层的逻辑监控模块的控制之下,还将MVB网络链路层的数据发送至应用处理器。它能够被总线和应用同时访问。通信存储器由一组端口组成,端口内正好有一帧准备发送或接收的过程数据。

完成MVB网络链路层通信存储器模块一般有3种设计方法:一是用FPGA开发板自带的寄存器来实现;二是用Altera公司的FPGA开发板内嵌的IP核RAM模块来设计;三是用FPGA开发板上自带的外部存储器,例如用SRAM、EEPROM来实现。本设计最终选用的是Altera公司的FPGA开发板上自带的IP核,使用其中的RAM模块来实现设计中的通信存储器。选择该方法的主要原因有以下几点:现在Altera公司生产FPGA开发板几乎都带有内存不等的片内RAM资源,若使用FPGA开发板上自带的外部的存储器,就需要部分扩展电路。因此致使电路结构变得复杂,从而增加了不稳定性,同时也增加了对外部寄存器访问的延迟。经过比较,最后选用FPGA内部RAM模块实现通信存储器。

2.5控制单元模块

控制单元的主要功能是:当控制单元接到发送命令时,就从通信存储器读取相应的数据并且写入发送缓存区,同时控制单元开始向编码器发送数据命令后,编码器开始编码,CRC校验模块产生帧校验码再加在帧头帧尾之后发送至MVB总线。

当译码器收到一个主帧时,就将该主帧发送到控制逻辑单元。控制逻辑单元滤除起始位,同时读出逻辑地址位与本设备的各端口地址属性进行对比,如果一致,则使能相应端口有效标志位(即主帧有效),并在标准限定的时间内按时发送从帧至编码器中,并将接收到数据写入通信存储器单元。通信存储器单元与编、解码器之间由控制逻辑单元控制。对于数据接收端口,控制逻辑单元先给编码器发送编码命令,编码器就会加上从帧的帧头,然后控制逻辑单元将通信存储器单元中的数据按一个字长宽度依次读取出来发送给编码器,经过编码器编码后,再附加一个7位的CRC校验和一个1位的奇偶校验。对于通信存储器端口,控制逻辑单元将解码器解码后的数据读入,同时写到临时缓存单元,每接收一个数据帧,即接收一个8位的奇偶校验序列。并将接收的奇偶校验序列与自身生成的奇偶校验序列进行对比。如果不相同,则使能“信号错误”标志位,缓存单元的信息不写入过程数据存储器单元;如果数据没帧有奇偶检验错误,则按顺序将数据依次写入过程数据存储单元内。控制单元工作过程如图7所示。

3系统验证

在Quartus Ⅱ环境下,采用其内置的ModelSim Altera仿真软件,首先对MVB从设备链路层各个子模块IP核进行功能仿真。之后再将各个子模块IP核综合并将其配置到了芯片型号为EP2C70F896C8的FPGA中。在仿真环境和实际开发板都能实现链路层功能。对解码器接收数据进行验证,测试用的接收数据帧为随意选择的16位数据:0111111011000011,系统在控制单元模块的控制下帧校验模块计算出对应的校验码为11011101,如图8所示。

图7控制单元工作过程

图8 MVB从设备链路层仿真波形图

在控制单元模块的控制下,将数据按IEC-61375标准的帧格式打包发送给MVB网络从设备其它层。在整体测试中,由于之前的设计在ModelSim下进行了全部的仿真模拟,所以测试过程比较顺利,并且通过测试,验证了设计的正确性。

4结语

在遵从MVB网络协议的基础上,利用FPGA开发板提出了全功能MVB网络从设备链路层IP核的模块化的设计方法。将全功能MVB网络从设备链路层IP核分为:编码译码模块、帧校验模块、收发缓冲器模块、通信存储器模块以及控制单元模块。这些模块按照控制单元模块发送的指令执行相应的操作。经过对每个模块进行功能仿真和FPGA 验证,充分论证了所设计的方案是可行的。所设计的IP核满足国际列车通信网络标准IEC-61375中多功能车辆总线MVB网络从设备链路层的功能。

参考文献:

[1](美)巴斯,夏宇闻. Verilog HDL入门[M].甘伟,译.3版.北京:北京航空航天大学出版社,2008.

[2]周润景,苏良碧.基于Quartus Ⅱ的数字系统Verilog HDL设计实例详解[M].北京:电子工业出版社,2012.

[3]刘东华.Altera系列FPGA芯片IP核详解[M].北京:电子工业出版社,2014.

[4]于雷.TCN多功能车辆通信总线的FPGA设计[D].武汉:中南民族大学,2009.

[5]陈艳子.MVB网络接口单元的研究与FPGA实现[D].长沙:湖南科技大学,2008.

[6]魏耀南.四类设备网络接口设计及实现[D].南昌:华东交通大学,2010.

[7]幸柒荣.基于FPGA的MVB2类设备控制器设计[D].南昌:华东交通大学,2009.

[8]牛涛.基于IEC61375标准的MVB通信控制器的设计[D].北京:北京交通大学,2007.

[9]王立德,王永祥.一种MVB接口IP软核[P].中华人民共和国国家知识产权局:200910078089.2,2009.

[10]青锋,朱其新,幸柒荣,等.基于FPGA的MVBC帧收发器设计[J].华东交通大学学报,2012,27(6):47-51.

[11]陈特放,淡兴文,成庶,等.基于双FPGA的MVB通用接口研制[J].机车电传动,2012(4):1-5.

[12]Jaime, Jiménez, José, et al. Design of a master device for the multifunction vehicle bus[J]. IEEE Transactions on Vehicular Technology,2007,1(6):3695-3707.

[13]Moreno J C, Laloya E J, Navarro J. Line redundancy in MVB-TCN devices:a control unit design[J]. Electrotechnical Conference,2006,25:789-794.

IP core design of slave device link layer in MVB network based on FPGA

HU Yuanpeng,WANG Hongzhi*,HU Huangshui

(School of Computer Science & Engineering, Changchun University of Technology, Changchun 130012, China)

Abstract:With modular design method, the slave device link layer IP core is divided into several modules which include coding decoding, frame calibration, communication and control. QuartusⅡ and Verilog HDL applied as developing environment to realize the specific function of each module. FPGA development board is designed to test the link layer functions and the experimental result shows that the design of IP core meets international train communication network standard IEC-61375.

Key words:MVB; FPGA; slave device; link layer; IP core.

中图分类号:U 285

文献标志码:A

文章编号:1674-1374(2016)01-0020-05

DOI:10.15923/j.cnki.cn22-1382/t.2016.1.05

作者简介:胡远朋(1989-),男,汉族,湖北咸宁人,长春工业大学硕士研究生,主要从事轨道列车通信网络技术方向研究,E-mail:huyp@163.com. *通讯作者:王宏志(1961-),男,汉族,黑龙江牡丹江人,长春工业大学教授,博士,主要从事数字信号处理方向研究,E-mail:wanghongzhi@ccut.edu.cn.

基金项目:吉林省工业和信息化厅省校合作项目([2013]227); 吉林省科技厅科技攻关计划项目(20140204037GX)

收稿日期:2015-09-10

猜你喜欢
链路层
基于多空间内存共享的数据链路层网络包捕获方法
卫星网络中的TCP 跨层技术研究
一种基于PCI接口的1394B总线的设计与实现
基于FPGA的SATA主机端控制器链路层发送模块设计
IEEE 1394事务层接口的设计与实现
IEEE1394总线接口设计