位置:51电子网 » 技术资料 » 通信网络

WTB网络HDLC在FPGA中的实现

发布时间:2008/5/29 0:00:00 访问次数:440

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校验也可字节累加运算完成。

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

  3.3 位同步

  编码器发送有效帧序列,解码器对有效帧解析的最大难点在于起始的同步性。常用的同步方式有锁相环。但为了节省fpga内部资源,针对wtb特

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校验也可字节累加运算完成。

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

  3.3 位同步

  编码器发送有效帧序列,解码器对有效帧解析的最大难点在于起始的同步性。常用的同步方式有锁相环。但为了节省fpga内部资源,针对wtb特

相关IC型号

热门点击

 

推荐技术资料

耳机的焊接
    整机电路简单,用洞洞板搭线比较方便。EM8621实际采... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!