WTB网络HDLC在FPGA中的实现

2007-11-28 13:48:01来源: 国外电子元器件 关键字:周期  电平  接收  发送

1 引言

TCN(Train Communication Network)总体结构是由WTB(绞线式列车总线)和MVB(多功能车辆总线)组成,符合IEC61375-1标准。本文主要围绕WTB链路控制的帧格式进行研究。鉴于IEC61375-1标准中规定的WTB帧数据格式与IS03309中定义的HDLC(High Level Data Link Control)格式一致,基带Manchester-Biphase-L技术编解码器现则围绕HDLC展开。

随着深亚微米工艺技术的发展,FPGA(FieldProgrammable Gate Array)的规模越来越大,其单片逻辑门数已超过上百万门。同时还具有开发周期短、成本低、可实时在线检验等优点。因此广泛用于特殊器件设计。中小批量通信产品的设计生产中采用FPGA实现HDLC功能是一种值得借鉴的方法。

2 WTB的HDLC帧格式

WTB的有效帧格式包括帧头、HDLC帧数据格式、终止分界符。其中HDLC帧数据格式与ISO3309中定义的相同,包括起始8位标志位、HDLC数据、16位FCS、结束8位标志位。帧头和HDLC帧数据由曼彻斯特码编码,一个位单元的前半部分为负电平,在位单元的中间跳变为正电平的位编码为“1”,反之为“0”。帧头在起始位和结束位“1”之间有7个(“0”,“1”)位对。终止分界符可使线路保持2个周期的正电平。

2.1 HDLC帧格式

WTB通信方式中,所有信息都是以帧的格式传输的,HDLC帧格式如图1所示。HDLC协议规定,所有信息传输必须以一个标志字开始,且以同一标志字结束,这个标志字为01111110。开始标志到结束标志之间构成一个完整的信息单位,称为一帧。在HDLC通信方式中,接收方通过搜索01111110探知帧的开始和结束,以此建立帧同步。在帧与帧之间的空载期,可连续发送标志字来做填充。而在WTB的网络中,具有特殊的起始帧头,更易于产生同步解码。

2.2 HDLC数据及“0”比特插入

HDLC帧的数据区的长度是可变的,可传送标志字以外的任意二进制信息。其数据最小为32位,最大为1 056位,HDLC发送的数据应是8的整数倍。为了确保标志字是唯一的,发送方在发送信息时采用“0”比特插入技术,即发送方在发送除标志字符外的所有信息时(包括校验位),只要遇到连续的5个“1”,就自动插入一个“0”;反之,接收方在接收数据时,只要遇到连续的5个“1”,就自动将其后的“0”删掉。“0”比特插人与删除技术可使HDLC具有良好的传输透明性,可传输任何比特代码。

2.3 CRC校验

HDLC采用16位循环冗余校验码(CRC-16)进行差错控制,生成若干种多项式,WTB网络使用标准的生成多项式x16+x12+x5+1。HDLC差错校验是对整个帧的内容作CRC循环冗余校验,即纠正纠错范围内的错码,在校错范围内的错码只能校验,但不能纠正。标志位和按透明规则插入的所有“0”不在校验的范围内。

3 编码器与解码器的FPGA实现

基于FPGA成本低、实时性好、可扩展为SOPC(片上系统)便于应用层的开发等优点,本设计采用Altera公司的CYCLONE II经济型FPGA实现编解码。

3.1 有限时序状态机

HDLC通信帧属于串行数字信号编解码方式,其帧格式与时序逻辑联系紧密。编码器是功能、时序复杂的时序逻辑电路。为了便于利用硬件描述语言设计,将这一复杂的时序逻辑抽象成有限状态机,并利用有限状态机实现复杂设计。这种控制方式很容易解决0比特插入技术,使状态自由按照ISO3309的标准转换。根据HDLC的编码协议,得到FPGA设计的状态机,将状态的转换与数据处理分别在同一状态机的不同模块中实现。同时,在解码过程中,在起始标志位同步后,每一步HDLC状态过程均需对数据进行判断(若出错概率为P),直至结束。若有N个状态,其总体出错概率非常小,大小为PN,大大提高了解码的可靠性。发送器状态机如图2所示。准备状态:当发送器复位后,处于准备状态,收到开始发送信号后,状态机转至开始状态进行初始化,然后跳转至帧头状态。帧头状态:在该状态添加WTB固定的帧头和标志位,然后跳转至数据发送状态。数据发送状态:在该状态读取数据,按照帧结构将数据编码发出,直到全部发送完毕跳转至校验状态。校验状态:调用CRC校验单元模块,进行CRC检验。完成后进入结束状态。结束状态:发送结束标志,然后跳入下一次的准备状态。

3.2 CRC校验

HDLC数据编码是难点,数据位的不确定性进一步导致CRC校验的复杂性。但由于HDLC数据具有特殊含义:8位位组的整数倍,故可以采用以字节宽度读双口RAM的方式进行编码。CRC校验也可字节累加运算完成。校验模块示意图如图3所示。

校验序列按多项式:G(x)=x16+x12+x5+1进行计算,校验初始结果值应设为0xffff、图3中rst为复位信号,sig为事件触发电平,pdata为需要计算的数据,prevcrc为上一次计算的结果,crc最后输出的计算结果。Verilog核心代码为:

3.3 位同步

编码器发送有效帧序列,解码器对有效帧解析的最大难点在于起始的同步性。常用的同步方式有锁相环。但为了节省FPGA内部资源,针对WTB特有的帧头规则序列,采用高频采样比较方式进行同步。帧头在起始位和结束位“1”之间有7个(“0”,“1”)位对,如图4所示。在一个周期内,一位采样12次,若在位跳变的前后符合标准位,则同步开始,继续采样下一位,直到帧头位对全部完成,即使在空闲时,电平有干扰毛刺也不会产生误同步。

4 标准应用检验

通过使用Quartus II对WTB的编解码器的波形进行仿真,结果符合标准。

解码器在接收一个字节后进行CRC计算,当全部数据接收完成时计算出最后CRC结果;当全部CRC接收完毕接收到CRC结果,将这两种CRC结果进行比较。若数据合法则给一个脉冲。

如图5所示,硬件采用485实现物理层与标准机车WTB网卡的通讯,能够相互解析,证明了设计的准确可靠性,为下一步应用层的设计打下基础。

5 结束语

针对WTB网络标准提出了一种基于FPGA的HDLC协议编解码器设计方案,并利用Altera公司的CYCLONE II EP2C8实现。目前对该网络协议的实现仅限于初期阶段,只能实现基本链路的HDLC数据编解码。该系统的后续还需加入NIOS进行链路控制的优化和应用层的设计,如WTB总线的初运行。实践表明,该编解码器实现简单、使用灵活,资源占用合理,对进一步工作的展开有深远意义。

关键字:周期  电平  接收  发送

编辑:赵思潇 引用地址:http://www.eeworld.com.cn/FPGA/tx/200711/1808.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:用CPLD实现DSP2407A与S3C4480的通信
下一篇:多时钟域数据传递的FPGA实现

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
周期
电平
接收
发送

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved