摘要:HDB3(三阶高密度双极性)码具有无直流分量、低频成分少、连零个数不超过3个、便于提取时钟信号等特点。通过对HDB3编解码原理进行分析和研究,提出一种基于FPGA的HDB3编解码实现方法,给出Verilog HDL语言的实现方法和仿真波形,完成硬件电路的设计和测试,采用该方法设计的HDB3编解码器已应用于相关实验设备中。
关键词:HDB3编码;HDB3解码;FPGA;Verilog HDL
1 引言
数字通信系统的某些应用可对基带信号不载波调制而直接传输,其中传输线路对码型的要求如下:信码中不宜有直流分量,低频分量应尽可能的少,码型要便于时钟信号提取。根据这些要求,ITU-T(国际电联)在G.703建议中规定,对于2 MHz、8 MHz、32 MHz速率的数字接口均采用HDB3(三阶高密度双极性)码。HDB3码具有无直流分量,低频成分少,连零个数不超过3个等特点,便于时钟信号的提取和恢复,适合在信道中直接传输。这里利用Verilog HDL语言设计用于数字通信系统中的HDB3编解码器。
2 HDB3编码模块设计
要设计一个实用的编码模块,首先要深入研究其编码规则及其特点,然后根据编码规则设计符合电路特性的编码流程。HDB3码的编码规则包括:①将消息代码变换成AMI码,AMI码的编码规则是对码流中的非“0”符号进行正负交替;②检查AMI码中的连零情况,当连零的个数小于4个时,保持AMI的形式不变;当连零的个数达到4个或超过4个时,则将非零码后的第4个“0”替换成V码,其中V码的极性与前一非零码(+1或-1)的极性保持一致,例如,前面的非零码是+1,则将V码记为+V;③完成插V操作后,检查2个相邻V码之间非零码的个数是否为偶数,若为偶数,则再将相邻2个V码中后一个V码的前一非零码后的第一个“0”变为B码,B码的极性与前一非“0”码的极性相反,同时B码后面的非“0”码极性再次进行交替变换,保证极性交替反转特性。
编码规则中出现的V码、B码只是作为标识符,最终的电路实现还是“0”和“1”这两种逻辑电平,因此需要采用二进制编码对“1”、“0”、V、B进行编码,“00”表示“0”、“0l”表示“1”,“10”表示B,“11”表示V。根据编码规则和利用FPGA实现的特点,将编码过程:首先插入V码,然后插入B码,最后是单双极性变换。如果按照编码规则的顺序设汁.应该首先进行单双极性变换,在完成插V和插B后,还需根据编码规则变换当前B码之后的非零码的极性,这需要大量的寄存器来保存当前数据的状态,导致电路非常复杂,占用大量的FPGA内部逻辑单元,实现难度大,且成本高。HDB3编码过程示意图如图l所示。