利用FPGA实现HDB3编解码功能.DOC

上传人:国*** 文档编号:497447 上传时间:2018-10-15 格式:DOC 页数:9 大小:757.50KB
下载 相关 举报
利用FPGA实现HDB3编解码功能.DOC_第1页
第1页 / 共9页
利用FPGA实现HDB3编解码功能.DOC_第2页
第2页 / 共9页
利用FPGA实现HDB3编解码功能.DOC_第3页
第3页 / 共9页
利用FPGA实现HDB3编解码功能.DOC_第4页
第4页 / 共9页
利用FPGA实现HDB3编解码功能.DOC_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、利用 FPGA 实现 HDB3编解码功能 摘要: HDB3(三阶高密度双极性 )码具有无直流分量、低频成分少、连零个数不超过 3个、便于提取时钟信号等特点。通过对 HDB3编解码原理进行分析和研究,提出一种基于 FPGA的 HDB3编解码实现方法,给出 Verilog HDL 语言的实现方法和仿真波形,完成硬件电路的设计和测试,采用该方法设计的 HDB3编解码器已应用于相关实验设备中。 广告插播信息 维库最新热卖芯片: TOP224YN TDA1519B DTC144EUA EP2C5T144C8 SN74LV541APWR GL386 CD40193BE EL4422CN ADG511ABR

2、 STRS6307 1 引言 数字通信系统的某些应用可对基带信号不载波调制而直接传输,其中传输线路对码型的要求如下:信码中不宜有直流分量,低频分量应尽可能的少,码型要便于时钟信号提取。根据这些要求, ITU-T(国际电联 )在 G 703建议中规定,对于 2 MHz、 8 MHz、 32 MHz 速率的数字接口均采用 HDB3(三阶高密度双极性 )码。 HDB3码具有无直流分量,低频成分少,连零个数不超过 3个等特点,便于时钟信号的提取和恢复,适合在信道中直接传输。这里利用Verilog HDL 语言设计用于数字通信系统中的 HDB3编解码器。 2 HDB3编码模块设计 要设计一个实用的编码模

3、块,首先要深入研究其编码规则及其特点,然后根据编码规则设计符合电路特性的编码流程。 HDB3码的编码规则包括: 将消息代码变换成 AMI 码,AMI 码的编码规则是对码流中的非 “0”符号进行正负交替; 检查 AMI 码中的连零 情况,当连零的个数小于 4个时,保持 AMI 的形式不变;当连零的个数达到 4个或超过 4个时,则将非零码后的第 4个 “0”替换成 V码,其中 V码的极性与前一非零码 (+1或 -1)的极性保持一致,例如,前面的非零码是 +1,则将 V码记为 +V; 完成插 V操作后,检查 2个相邻 V码之间非零码的个数是否为偶数,若为偶数,则再将相邻 2个 V码中后一个 V码的前

4、一非零码后的第一个 “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后,还需根据编码

5、规则变换当前 B码之后的非零码的极性,这需要大量的寄存器来保存当前数据的状态,导致电路非常复杂,占用大量的 FPGA内部逻辑单元,实现难度大,且成本高 。 HDB3编码过程示意图如图 1所示。 2 1 插入 V码过程 插入 V码过程是对消息代码里的连零串进行检测,一旦出现 4个连零串的时候,就把第4个 “O”替换成破坏符 V,其他情况下消息代码原样输出。输入的代码经插 V 操作后全部转换成双相码,即 “0”变换成 “00”, “1”变换成 “01”, V变换成 “ll”。图 2是插入 V码过程的流程,代码输入到插 V模块后 ,如果输入是 “l”,则输出为 “01”,同时计数器清零;如果输入是

6、“O”则对输入 “O”的个数进行计数,当计数器计数到第 4个 “O”时,输出 “11”作为 V码,同时计数器要清零用于下一轮检测;计数器未满 4个 “0”,则输出 “00”。 2 2 插入 B码过程 当相邻两个 V码之间有偶数个非 “0”码时则把后一个 V码之前的第 1个非 “0”码后面的“0”码变 换成 B码。该模块设计的难点在于插入 B码的过程中涉及一个由现在事件的状态控制过去事件状态的问题,按照实时信号处理的理论,这是无法实现的,这里使用两组 4位移位寄存器。采用 4位移位寄存器是根据 HDB3编码规则的特点确定,经插 V后,连零串中的第 4个 “0”变成 V码,代码中连零个数最多是 3

7、个,而插入 B码操作是把在后一个 V码之前的第 1个非零码之后的 “O”变换成 B码,这个长度不超过 3个 “0”,因此只需 4位寄存器就可通过判断现在的输入状态来决定是否应插入 B码。图 3是判断是否插入 B码的流程 2组 4位移位寄存器在时钟的作用下逐位 将数据移出,在移位的同时还需对寄存器的最低位进行操作,即判断是否需插入 B码。这部分功能的实现需设置一个检测当前 V码状态的标志位 firstv。 2 3 单双极性变换过程 分析 HDB3码的编码规则,发现 V码的极性是正负交替的,余下的 “1”和 B码的极性也是正负交替的,且 V码的极性与 V码之前的非零码极性一致。因此可以将所有的 “

8、1”和 B码取出来做正 负交替变换,而 V码的极性则根据 “V码的极性与 V 码之前的非零码极性一致 ”这一特点进行正负交替变换。具体操作是设置一个标志位 flag,通过检测判断标志位的状态来确定是否进行单双极性变换,标志位要交替变换以实现 “l”和 “B”正负交替, V码的极性也根据标志位变换。图 4是单双极性变换过程的流程, “10”表示输出正电平, “Ol”表示输出负电平, “00”表示输出为零电平。 3 HDB3解码模块设计 根据编码规则, V码是为了解决 4连零现象而插入的,而 B码总是出现在 V码之前,且只相隔 2个 “0”,因此只要在接收到的信号中找到 V码并将其和前面的 3位代

9、码全部复原成 “0”即可完成解码过程。 3 1 HDB3解码模块建模 首先外围电路从 HDB3码中提取出时钟、正整流信号和负整流信号,将这 3路信号送到FPGA中,解码模块所用的时钟是从 HDB3码中提取出来的时钟。从正整流信号和负整流信号中可以检测出 2路包含 V码的信号,将 2路 V码合成一路信号,然后对该路信号进行解码 ,最后将双相码变成单相码,图 5是解码过程的流程。 3 1 1 V码检测过程 V码检测同时进行正 V码检测和负 V码检测,这两个检测模块的设计思想类似,这里对正 V 码检测模块进行详细说明。为了方便描述,假设从正整流电路输入的信号为 +P,从负整流电路输入的信号为 -N。

10、 +V 码检测模块是在 -N 的控制下,对输入的 +P 进行检测。其原理是:当 +P 的上升沿到来 时,对输入的 +P 脉冲进行计数,当计数到 1时,输出一个脉冲作为 +V脉冲,同时计数器清零,在计数期间,一旦检测到 -N 信号脉冲,计数器立即清零,计数器重新从零计数。这是因为在两个 +P 脉冲之间,存在 -N 脉冲,说明第 2个 +P 脉冲不是+V码,只有在连续两个 +P 脉冲之间无 -N 脉冲,才能说明这两个 P 脉冲在 HDB3码中是真正同极性的,才可以判断第 2个 P 脉冲实际上是 +V码,达到检测 +V码的目的。 -V码检测原理与 +V码检测类似,所不同的是, -V码检测电路是在 +

11、P 控制下,对 -N 信号进行计数、检测和判定。 3 1 2 V码和 B码 解码过程 检测 V码后,根据 HDB3编码规则,只需将 V码及之前 3位码全部置零就可同时完成扣V扣 B操作。这又会涉及到一个由现在事件状态决定过去事件状态的情况,仍可采用两组4位移位寄存器解决。根据编码规则, V码是取代连 “0”串中的第 4个 “0”,而 B码总是出现在V 码之前,且只相隔两个 “O”,当输入是 V 码后,只需同时将 4位移位寄存器置零,即可同时完成 V码和 B码的解码过程。扣除 V码和 B码后,还需将双相码变换成单相码,即当输入是 “00”时输出 “0”,输入是 “01”时输出 “l”,至此便完成

12、了 HDB3解码。 3 2 HDB3解码的 Verilog HDL 实现 以下利用硬件描述语言实现解码功能,这里只给出正 V码检测模块和扣 V码扣 B码模块的关键程序。 4 仿真分析 设计的编解码模块是误码检测仪 的组成部分,采用 Cy-clone 系列 FPGA(EPlC3T144C8)实现电路的核心功能,该器件拥有近 3 000个逻辑单元,可满足整个系统设计的要求。 4 1 HDB3编码模块仿真分析 对该 HDB3编码模块进行仿真验证,图 6是仿真波形图,仿真时钟频率为 32 MHz, Codein表示待编码的输入信号,输入的二进制代码为: 101011000001100001; VBco

13、deout 是插入 V码和 B码后的输出,观察波形发现,在 A和 B位置插入 “11”作为 V码,在 C 位置插入 B码:Codeout 是单双极性变换后波形, “10”表示正电平, “01”表示负电平从波形可看出实现了正负交替; Pos_rzhdb3out 和 Neg_rzhdb3out 是最终的归零码输出。该 HDB3编码模块正确实现编码功能。 4 2 HDB3解码模块仿真分析 采用一个伪随机序列发生器产生测试数据,仿真时钟频率为 32 MHz。将 HDB3编码模块和解码模块相连接,观察输入和输出波形。 图 7是仿真波形,其中 msequence9是一个周期为 511的伪随机序列码,在 A时刻产生第 1个高电平;将该码输入到 HDB3编码模块,完成编码后输入到解码模块中进行解码, decodeout是解码后的输出,从 B时刻开始输出解码后的数据,可以发现其波形与输入数据完全相同,因此解码模块实现了 HDB3解码功能。 5 结论 所设计的 HDB3编解码模块 简单实用,利用 FPGA实现 HDB3编解码功能具有很强的灵活性,可以集成到不同的通信系统中,提高系统设计的速度。这里所涉及的仿真均为带有时序信息的仿真,仿真时钟频率设为 32 MHz,该频率是 HDB3码应用的最高频率。目前该编解码模块已成功应用于误码检测仪中,性能稳定可靠。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。