位置:51电子网 » 技术资料 » EDA/PLD

基于EDA的数据传输系统的HDB3编码器设计

发布时间:2008/5/28 0:00:00 访问次数:606

0 引言

  数字基带信号的传输是数字通信系统的重要组成部分。在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。采用ami码的信号交替反转,有可能出现四连零现象,这不利于接收端的定时信号提取。而hdb3码因其无直流成份、低频成份少和连0个数最多不超过三个等特点,而对定时信号的恢复十分有利,并已成为ccitt协会推荐使用的基带传输码型之一。为此,本文利用vhdl语言对数据传输系统中的hdb3编码器进行了设计。

1 hdb3码的编码规则

  hdb3码是ami码的改进型,称为三阶高密度双极性码,它克服了ami码的长连0串现象。

  hdb3码的编码规则为先检查消息代码(二进制)的连0串,若没有4个或4个以上连0串,则按照ami码的编码规则对消息代码进行编码;若出现4个或4个以上连0串,则将每4个连0小段的第4个0变换成与前一非0符号(+1或-1)同极性的v符号,同时保证相邻v符号的极性交替(即+1记为+v,-1记为-v);接着检查相邻v符号间非0符号的个数是否为偶数,若为偶,则将当前的v符号的前一非0符号后的第1个0变为+b或-b符号,且b的极性与前一非0符号的极性相反,并使后面的非0符号从v符号开始再交替变化。

2 hdb3编码器的vhdl建模与程序设计

  hdb3码的vhdl建模思想是在消息代码的基础上,依据hdb3编码规则进行插人“v”符号和“b”符号的操作,且用2位二进制代码分别表示。最后完成单极性信号变成双极性信号的转换。

  插“v”模块主要是对消息代码里的四连0串的检测,即当出现四个连0串的时候,把第四个“0”变换成符号“v”,用“11”标识。 “1”用“01”标识,“0”用“00”标识。其模型如图2所示,实现的vhdl结构代码如artv:

2.2 插“b”模块的实现

  插“b”模块的建模思路是当相邻“v”符号之间有偶数个非0符号时,把后一小段的第1个“0”变换成一个“b”符号。可用一个4位的移位寄存器来实现延迟,这样经插“v”处理过的码元,可在同步时钟的作用下同时进行是否插“b”的判决,等到码元从移位寄存器里出来的时候,就可以决定是应该变换成“b”符号,还是照原码输出。输出端用“11”表示符号“v”,“01”表示“1”码, “00”表示“0”码,“10”表示符号“b”。其模型如图3所示,vhdl的结构代码如artb:

2.3 单极性变双极性的实现

  根据编码规则, “b”符号的极性与前一非零符号相反,“v”极性符号与前一非零符号一致。因此,可对“v”单独进行极性变换(“v”已经由“11”标识,相邻“v”的极性是正负交替的),余下的“1”和“b”看成一体进行正负交替,从而完成hdb3的编码。

  因为经过插“b”模块后, “v”、 “b”、“1”已经分别用双相码“11”、 “10”、 “01”标识。“0”用“00”标识。而在实际应用中,cpld或fpga端口的输出电压只有正极性电压,且在波形仿真中也只有“+1”和“0”,而无法识别“-1”。所以要得到所需hdb3编码的结果,需定义“00”、“01”、“10”来分别表示“0”、 “-1”、 “+1”。可将插“b”模块后输出的“00”、“01”、“10”、“11”组合转换为“00”、“01”、 “10”组合,再通过“00”、 “01”、“10”控制四选一数字开关的地址来选择输出通道,就可以实现0、-b、+b。本设计使用cc4052的一组通道作为四选一数字开关,从而将cpld或fpga目标芯片的标识性输出转换成双极性信号,最终实现hdb3非归零编码。cc4052的接线如图4所示,所实现的地址控制器的模型如图5所示。其vhdl结构代码如artd:

3 hdb3编码器的仿真

  在此,以四连“0”的可能性通过如表1所列的多“0”消息代码进行分析,并利用eda工具对vhdl源程序进行编译、适

0 引言

  数字基带信号的传输是数字通信系统的重要组成部分。在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。采用ami码的信号交替反转,有可能出现四连零现象,这不利于接收端的定时信号提取。而hdb3码因其无直流成份、低频成份少和连0个数最多不超过三个等特点,而对定时信号的恢复十分有利,并已成为ccitt协会推荐使用的基带传输码型之一。为此,本文利用vhdl语言对数据传输系统中的hdb3编码器进行了设计。

1 hdb3码的编码规则

  hdb3码是ami码的改进型,称为三阶高密度双极性码,它克服了ami码的长连0串现象。

  hdb3码的编码规则为先检查消息代码(二进制)的连0串,若没有4个或4个以上连0串,则按照ami码的编码规则对消息代码进行编码;若出现4个或4个以上连0串,则将每4个连0小段的第4个0变换成与前一非0符号(+1或-1)同极性的v符号,同时保证相邻v符号的极性交替(即+1记为+v,-1记为-v);接着检查相邻v符号间非0符号的个数是否为偶数,若为偶,则将当前的v符号的前一非0符号后的第1个0变为+b或-b符号,且b的极性与前一非0符号的极性相反,并使后面的非0符号从v符号开始再交替变化。

2 hdb3编码器的vhdl建模与程序设计

  hdb3码的vhdl建模思想是在消息代码的基础上,依据hdb3编码规则进行插人“v”符号和“b”符号的操作,且用2位二进制代码分别表示。最后完成单极性信号变成双极性信号的转换。

  插“v”模块主要是对消息代码里的四连0串的检测,即当出现四个连0串的时候,把第四个“0”变换成符号“v”,用“11”标识。 “1”用“01”标识,“0”用“00”标识。其模型如图2所示,实现的vhdl结构代码如artv:

2.2 插“b”模块的实现

  插“b”模块的建模思路是当相邻“v”符号之间有偶数个非0符号时,把后一小段的第1个“0”变换成一个“b”符号。可用一个4位的移位寄存器来实现延迟,这样经插“v”处理过的码元,可在同步时钟的作用下同时进行是否插“b”的判决,等到码元从移位寄存器里出来的时候,就可以决定是应该变换成“b”符号,还是照原码输出。输出端用“11”表示符号“v”,“01”表示“1”码, “00”表示“0”码,“10”表示符号“b”。其模型如图3所示,vhdl的结构代码如artb:

2.3 单极性变双极性的实现

  根据编码规则, “b”符号的极性与前一非零符号相反,“v”极性符号与前一非零符号一致。因此,可对“v”单独进行极性变换(“v”已经由“11”标识,相邻“v”的极性是正负交替的),余下的“1”和“b”看成一体进行正负交替,从而完成hdb3的编码。

  因为经过插“b”模块后, “v”、 “b”、“1”已经分别用双相码“11”、 “10”、 “01”标识。“0”用“00”标识。而在实际应用中,cpld或fpga端口的输出电压只有正极性电压,且在波形仿真中也只有“+1”和“0”,而无法识别“-1”。所以要得到所需hdb3编码的结果,需定义“00”、“01”、“10”来分别表示“0”、 “-1”、 “+1”。可将插“b”模块后输出的“00”、“01”、“10”、“11”组合转换为“00”、“01”、 “10”组合,再通过“00”、 “01”、“10”控制四选一数字开关的地址来选择输出通道,就可以实现0、-b、+b。本设计使用cc4052的一组通道作为四选一数字开关,从而将cpld或fpga目标芯片的标识性输出转换成双极性信号,最终实现hdb3非归零编码。cc4052的接线如图4所示,所实现的地址控制器的模型如图5所示。其vhdl结构代码如artd:

3 hdb3编码器的仿真

  在此,以四连“0”的可能性通过如表1所列的多“0”消息代码进行分析,并利用eda工具对vhdl源程序进行编译、适

相关IC型号

热门点击

 

推荐技术资料

声道前级设计特点
    与通常的Hi-Fi前级不同,EP9307-CRZ这台分... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!