ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:757.50KB ,
资源ID:497447      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-497447.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(利用FPGA实现HDB3编解码功能.DOC)为本站会员(国***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

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

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码应用的最高频率。目前该编解码模块已成功应用于误码检测仪中,性能稳定可靠。

Copyright © 2018-2021 Wenke99.com All rights reserved

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

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

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