3280|0

175

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

基于FPGA的HDB3编解码器设计 [复制链接]

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


图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个时钟脉冲周期。但由于时钟频率很高,所以影响不大。

图2  编码器时序仿真波形图

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

图2  编码器时序仿真波形图

图5 伪随机信号和解码信号波形
5 结论
实践表明,运用FPGA来实现NRZ码到HDB3码的转换与采用专用集成电路CD22103相比,不仅给调试带来了方便,而且可以把编码电路和解码电路及其它电路集成在同一块FPGA芯片中,减少了外接元件,提高了集成度。该设计已成功应用于网络化集中照明控制系统中。
此帖出自FPGA/CPLD论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表