首页 > 技术 > 内容

基于VHDL语言和可编程逻辑器件实现HDB3编译码器的设计

时间:2026-01-02  作者:Diven  阅读:0

1 、引言

HDB3(High Density Bipolar三阶高密度双极性)码是在AMI码的基础上改进的双极性归零码,除具有AMI码功率谱中无直流分量,可进行差错自检等优点外,还克服了AMI码当信息中出现连“0”码时定时提取困难的缺点,而且HDB3码频谱能量主要集中在基波频率以下,占用频带较窄,是ITU-TG.703推荐的PCM基群、二次群和三次群的数字传输接口码型,因此HDB3码的编解码就显得极为重要了。目前,HDB3码主要由专用集成电路及相应匹配的外围中小规模集成芯片来实现,但集成程度不高,特别是位同步提取非常复杂,不易实现。随着可编程器件的发展,这一难题得到了很好地解决。

本文利用现代EDA设计方法学和VHDL语言及模块化的设计方法,设计了适合于FPGA实现的HDB3编译码器的硬件实现方案。不但克服了分立硬件电路带来的抗干扰差和不易调整等缺陷,而且具有软件开发周期短,成本低,执行速度高,实时性强,升级方便等特点。

2、 HDB3编解码原理

要了解HDB3码的编码规则,首先要知道AMI码的构成规则,AMI码就是把单极性脉冲序列中相邻的“1”码(即正脉冲)变为极性交替的正、负脉冲。将“0”码保持不变,把“1”码变为+1、-1交替的脉冲。如:

NRZ码:1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1

AMI码:-1 0 0 0 0 +1 0 0 0 0 -1 +1 0 0 0 0 -1 +1

HDB3码是AMI码的改进型,编码原理可简述为,在消息的二进制代码序列中:

(1)当连“0”码的个数不大于3时,HDB3编码规律与AMI码相同,即“1”码变为“+1”、“-1”交替脉冲;

(2)当代码序列中出现4个连“0”码或超过4个连“0”码时,把连“0”段按4个“0”分节,即“0000”,并使第4个“0”码变为“1”码,用V脉冲表示。这样可以消除长连“0”现象。为了便于识别V脉冲,使V脉冲极性与前一个“1”脉冲极性相同。这样就破坏了AMI码极性交替的规律,所以V脉冲为破坏脉冲,把V脉冲和前3个连“0”称为破坏节“000V”;

(3)为了使脉冲序列仍不含直流分量,则必须使相邻的破坏点V脉冲极性交替;

(4)为了保证前面两条件成立,必须使相邻的破坏点之间有奇数个“1”码。如果原序列中破坏点之间的“1”码为偶数,则必须补为奇数,即将破坏节中的第一个“0”码变为“1”,用B脉冲表示。这时破坏节变为“B00V”形式。B脉冲极性与前一“1”脉冲极性相反,而B脉冲极性和V脉冲极性相同。

如:

NRZ码:1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1

AMI码:-1 0 0 0 0 +1 0 0 0 0 -1 +1 0 0 0 0 -1 +1

HDB3码:-1 0 0 0 -V +1 0 0 0 +V -1 +1 –B 0 0 -V +1 -1

虽然HDB3码的编码规则比较复杂,但译码却比较简单。从上述原理看出:每一个破坏符号V总是与前一非0符号同极性(包括B在内)。这就是说,从收到的符号序列中可以容易地找到破坏点V,于是也断定V符号及其前面的3个符号必是连0符号,从而恢复4个连0码,再将所有-1变成+1后便得到原消息代码。

3、 编解码器设计

3.1 编码器设计

由于VHDL不能处理负电平,只能面向“1”、“0”两种状态,所以要对输出进行编码,如表1所示。编码的实现是根据HDB3编码原理把二进制码编码成两路单极性的码字输出,之后经过单双变换模块形成HDB3码。在编码过程中,要经过连0检测、破坏节判断、破坏节间“1”的个数判断、调整“1”的符号输出等步骤,编码部分可分为4个模块,编码流程如图1所示。

在进行HDB3编码器的设计时,需注意以下两个问题:

(1) 考虑将某些“0”改为“1”

用一个四位移位寄存器来对输入的序列进行检测,当检测到4个连“0”时,将其第四个“0”改为“1”。再设置一个T触发器来检测两个相邻的破坏节之间“1”的个数,若T触发器为“0”则说明两个相邻的破坏节之间“1”的个数为偶数,需要将第2个破坏节的第一个“0”置“1”,若T触发器为“1”,则说明两个相邻的破坏节之间“1”的个数为奇数,第2个破坏节的第一个“0”不变。

(2) 正、负号的考虑

除了破坏节的V即“1”的符号与前面最近的“1”的符号相同外,其“1”的符号都是正、负交替的。所以再设置一个T触发器,当检测到“1”时就使DATA1翻转。当然,这样就不可避免地使破坏节的V的符号也出现翻转,为了防止翻转,用一个三位移位寄存器来跟踪V码,以保证V码的符号不变(与前面最近的“1”的符号相同)。

本文在程序的实体中定义了2个输入端口:时钟、伪随机序列,一个两位的输出数据(编码后的输出)。程序的结构体中使用的是进程语句,共采用4个进程,分别完成判断4连“0”位置并插入V、记相邻V码间1个数、跟踪V码位置及编码输出的功能。敏感信号均选用的是时钟信号,对于其任一变化都将同时启动4个进程,并行执行。在程序中共使用了5个信号,代表了电路的寄存器效果,配置到电路中也相当于寄存器。

3.2 解码器设计

解码设计是根据HDB3码的特点首先检测出极性破坏点,即找出4连零码中添加V码的位置(破坏点位置),其次去掉添加的V码,最后去掉4连零码中添加的B码以将其还原成单极性不归零码。

由HDB3码的编码规则可知,“0000”都被“000+1”或“000-1”或“+100+1”或“-100-1”取代,所以,只要能检测出“+1000+1”、“-1000-1”、 “+100+1”、“-100-1”、将分别改为“10000” 、“10000”、“0000”、“0000”就可以了。

当然“+1”、“-1”、“0”还是由Data1,Data0来表示,那么就需要有两个5位移位寄存器(C和D),Data0通过D,Data1通过C。通过D,C来检测,如果测到两个移位寄存器分别为“10001”、“0xxx0”或“10001”、“1xxx1”或“1001x”、“1xx1x”或“1001x”、“0xx0x”,数据输出是将D里面的数据流输出。所以只要将D中所测到的以上数据分别改为“10000”、“10000”、“0000x”、“0000x”,这样就可以得到HDB3码的解码了。

4、 仿真和实验结果分析

译码器在QuartusII上仿真的波形分别如图2和图3所示。图2中fen_clk为分频后时钟信号,load 为使能信号,Q为伪随机序列,data为编码输出。由于输入的数据流经过了5个寄存器,所以输出延迟了4个时钟脉冲周期。但由于时钟频率很高,所以影响不大。

把上述设计下载到Altera EP1C3T144C8芯片上,并通过硬件调试、测试,在示波器上得到伪随机信号波形、编码波形和解码波形分别如图4和5所示。其中,CH1为伪随机信号,CH2分别为编码和解码信号。测试结果和时序仿真结果无失真。随机信号输入相对编码信号输出延迟了5个单位时钟。解码信号延时了11个单位时钟。

5、

实践表明,运用FPGA来实现NRZ码到HDB3码的转换与采用专用集成电路CD22103相比,不仅给调试带来了方便,而且可以把编码电路和解码电路及其电路集成在同一块FPGA芯片中,减少了外接元件,提高了集成度。该设计已成功应用于网络化集中照明控制系统中。然而在实际无中继长线传输中,会出现信宿端信号严重失真的现象,对长线传输系统中HDB3编码的失真信号进行矫正的算法见文献。

本文作者的创新点:本方案设计模块可以作为IP(Intellectual Property)核,与嵌入式处理器及其功能模块或IP芯核相结合在一片FPGA上构成片上可编程系统SOPC,使得所设计的系统在其规模、可靠性、体积、功耗、性能等方面实现最优化。

作者简介:

吴海涛(1975-),男(汉族),山东青州市人,广东肇庆学院电子信息工程系讲师,硕士,主要从事通信、EDA技术应用研究。

陈英俊(1962-),男(汉族),广东潮州人,广东肇庆学院电子信息工程系副教授,主要从事计算机通信及视频处理技术研究。

梁迎春(1975-),女(汉族),广西玉林市人,广东肇庆学院电子信息工程系讲师,硕士,主要从事EDA/SOPC技术研究。

猜您喜欢


电子工程和电路设计中,精密电阻作为重要的电子元件,其阻值的准确性直接影响电路的性能和稳定性。为了方便工程师和技术人员快速查找和选用所需的阻值,精密电阻阻值对照表...
2025-11-06 21:00:04
电容是电子元件,应用于各种电路。很多人问,电容接哪里呢?本文将为您解答电容的接法与注意事项。电容基本知识电容是储存电能的组件。有两个引脚,通常标有正负极。电容的...
2025-03-27 12:31:07
200kΩ贴片电阻的标注方式主要有三种:数字标注、字母数字混合标注和三位数字标注。1. 数字标注: 对于阻值较大的电阻,例如200kΩ,通常直接印上200K或2...
2024-11-29 10:26:04
行车记录仪已经成为提升道路安全的重要工具。它能够持续记录从日常通勤到高速事故的各种情况,让驾驶员对自己的行为负责,并促使更多危险驾驶行为得到定罪,从而帮助提升了...
2024-12-27 16:30:00
随着数字化、智能化装备的爆发式发展,具备更高可靠性、更高集成性的FPGA产品,依靠自身的自定义编程设计、可重复性修订等特性,成功取代了传统堆叠化电子元器件设计方...
2024-03-06 11:39:00
热敏NTC(负温度系数)电阻是一种温度升高而阻值降低的电子元件,应用于温度测量、温度补偿、过温保护等领域。了解热敏NTC电阻的阻值与温度之间的关系,对于设计温度...
2025-03-17 00:31:10
贴片电阻上的「01B」标记并非直接表示阻值大小,而是采用EIA-96标准的代码表示法。01B对应的是100Ω的阻值。EIA-96代码由三位字符组成,前两位数字表...
2024-11-26 11:29:52
电路板设计中,符号是很重要的。电容的符号,常常让人困惑。本文将介绍电容电路板符号怎么打。我们会分几个部分来讲解。电容的基本符号电容的基本符号是“C”。代表电容器...
2025-03-21 14:00:01
ACDC开关电源,也称为开关型电源,是一种高效的电源转换设备,将交流电(AC)转换为直流电(DC)。与传统的线性电源相比,开关电源具有体积小、重量轻、效率高、功...
2024-08-31 00:00:00
贴片电阻是电子电路中常见的元件,1%和5%代表其精度,也就是阻值与标称值之间的最大偏差。选择哪种精度取决于电路的需求。5%精度的电阻,意味着其实际阻值可能在标称...
2024-11-29 10:26:16