hdb3编解码器的设计

上传人:Bod****ee 文档编号:47549342 上传时间:2018-07-02 格式:DOC 页数:16 大小:312.53KB
返回 下载 相关 举报
hdb3编解码器的设计_第1页
第1页 / 共16页
hdb3编解码器的设计_第2页
第2页 / 共16页
hdb3编解码器的设计_第3页
第3页 / 共16页
hdb3编解码器的设计_第4页
第4页 / 共16页
hdb3编解码器的设计_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《hdb3编解码器的设计》由会员分享,可在线阅读,更多相关《hdb3编解码器的设计(16页珍藏版)》请在金锄头文库上搜索。

1、东 北 石 油 大 学课 程 设 计2010 年 12 月 24 日课 程 通信综合课程设计 题 目 HDB3 编码器设计 院 系 电气信息工程学院 专业班级 通信 07-1 班 学生姓名 祁庆男 学生学号 070602140117 指导教师 毕洪波(讲师)王冬梅(讲师)东北石油大学课程设计任务书课程 通信综合课程设计 题目 HDB3 编码器设计 专业 通信工程 姓名 祁庆男 学号 070602140117 主要内容利用 EDA 实现 HDB3 编码器,通过 Quartus 软件模拟实现 HDB3 码的相应功能,系统应具有而且具有软件开发周期短,成本低,执行速度高,实时性强,升级方便等特点。基

2、本要求实现 HDB3 编码器,消除 NRZ 码的直流成分,具有时钟恢复和抗干扰性能,且适合于长距离信道传输。同时,本系统应具有一定的检错能力,当数据序列用 HDB3 码传输时,若传输过程中出现单个误码,其极性交替变化规律将受到破坏,因而在接收端根据 HDB3 码这一独特规律特性,可检出错误并纠正错误,同时 HDB3 码方便提取位定时信息。参考资料1樊昌信,曹丽娜.通信原理M.北京:国防工业出版社,2006.2郑君里,应启珩,杨为理.信号与系统M.北京:高等教育出版社,2001.完成期限 2010、11、12010、12、24 指导教师 专业负责人 2010 年 11 月 1 日目录目录1.设计

3、要求 .12. HDB3 码编码工作原理.12.1 HDB3 码的编码规则.1 2.2 编码设计思想.23. 基于 Quartus II 软件的 HDB3 码编码器的设计 .2 3.1 插“V”模块的实现.3 3.2 插“B”模块.5 3.3 单极性变双极性的实现.74. Quartus 软件介绍 .8 4.1 Quartus 软件的发展 .8 4.2 Quartus 的 VHDL 语言的软件操作流程 .9 4.3 Quartus 的 VHDL 语言的软件操作流程 .95. 双极性变换的硬件电路 .106. 总结 .10参考文献 .111.设计要求利用 EDA 实现 HDB3 编码器,通过 Q

4、uartus 软件模拟实现 HDB3 码的相应功能,系统应具有而且具有软件开发周期短,成本低,执行速度高,实时性强,升级方便等特点。HDB3 码是数字基带通信系统中重要组成部分之一,因其具有无直流成份,检错能力强,具有时钟恢复性能等优点,成为 ITU 推荐使用的基带传输码型之一。首先介绍 HDB3 编码的原理和方法,提出一种基于 EDA 技术实现的 HDB3编码器的方法。HDB3 码编译码器的实现有多种途径,常用的解决方案是应用专用的HDB3 收发芯片,如选用专用 E1 收发芯片 DS2153Q 和单片机实现该码制的转换功能。本文提供一种利用现代 EDA 技术,以 ACEX 系列 FPGA 芯

5、片 EPlK10为硬件平台,以 Quartus II 为软件平台,以 VHDL,为开发工具,适合于 FPGA实现的 HDB3 编码器的设计方案。2. HDB3 码编码工作原理2.1 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 1AMI 码:-1 0 0 0 0 +1 0 0 0 0 -1 +1 0 0 0 0 -1 +1HDB3

6、 码是 AMI 码的改进型,称为三阶高密度双极性码,它克服了 AMI 码的长连 0 串现象。 HDB3 码的编码规则为先检查消息代码(二进制)的连 0 串,若没有 4 个或 4 个以上连 0 串,则按照 AMI 码的编码规则对消息代码进行编码;若出现 4 个或 4 个以上连 0 串,则将每 4 个连 0 小段的第 4 个 0 变换成与前一非 0 符号(+1 或-1)同极性的 V 符号,同时保证相邻 V 符号的极性交替(即+1 记为+V,-1 记为-V);接着检查相邻 V 符号间非 0 符号的个数是否为偶数,若为偶,则将当前的 V 符号的前一非 0 符号后的第 1 个 0 变为+B 或-B 符号

7、,且 B 的极性与前一非 0 符号的极性相反,并使后面的非 0 符号从 V 符号开始再交替变化。例: NRZ 码: 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1插 V: 1 0 0 0 V 1 0 0 0 V 1 1 0 0 0 v 1 1插 B: +1 0 0 0 +V-1 0 0 0 V +1 -1 +B 0 0 +V -1 +12.2 编码设计思想由于 CPLD 不能处理负电平,只能面向“1”、“0两种状态,所以要对它的输出进行编码。编码的实现是根据 HDB3 编码原理把二进制码编码成两路单极性的码字输出,之后经过单双变换模块形成 HDB3 码,设计中的大部分工

8、作可采用 VHDL 语言描述实现,仅单双变换模块由于采用模拟器件 CD4052 实现,所以只能以外接电路实现。本文主要涉及用 VHDL 语言描述 HDB3 码编译码器的逻辑功能。在编码过程中,要经过连 0 检测、破坏节判断、破坏节间 “1”的个数判断、调整“1”的符号输出等步骤。由 HDB3 编码规则,当 NRZ 码中出现 4 连 “0”串时,第 4 个“0”用破坏符号“V”来代替,并且连续两个“V”之间如果有偶数个“1”时,要把最后一小段的第一个“0”变为“B”。为了在单双极性变换时便于分辨出“V”标志和“B”标志,所以用“00”来标识“0”,用“10”标识“-1”,用“11”来标识“+1”

9、。如果直接将要进行编码的数据按上述编码原则先转换成 AMI 码,然后进行加 v 码,加 B 码操作,会发现转化成 AMI 码时有一个“+1”“一 1”码极性形成的过程,而在加 B 码操作之后,非零码元相应极性还有可能进行反转,因此有两个信号极性产生的过程。分析 HDB3 的编码结果:V 码的极性是正负交替的,余下的 1 码和 B 码看成为一体也是正负交替的,同时满足 V 码的极性与前面的非零码极性一致。由此产生了利用 FPGA 进行 HDB3 码编码的思路:先进行加 V 码,加 B 码操作,在此过程中,暂不考虑其极性,然后将 V 码,1 码和 B 码分成两组,分别进行极性变换来一次实现。这样可

10、以提高系统的效率,同时减小系统延时。HDB3 编码器的数字电路部分由三个模块组成:V 码产生单元(v Gen),B码产生单元(B Gen),单极性一双极性转换单元(single2double)。3. 基于 Quartus II 软件的 HDB3 码编码器的设计在 HDB3 码的 VHDL 建模思想是在消息代码的基础上,依据 HDB3 编码规则进行插人“V”符号和“B”符号的操作,且用 2 位二进制代码分别表示。最后完成单极性信号变成双极性信号的转换。其编码模型如图 1 所示:消息码HDB3 码插“V”插“B”极性转换图 1 HDB3 编码实现流程3.1 插“V”模块的实现插“V”模块主要是对消

11、息代码里的四连 0 串的检测,即当出现四个连 0 串的时候,把第四个“0”变换成符号“V”,用 “11”标识。 “1”用“01”标识, “0”用“00”标识。程序流程图如 2 所示:开始Count=0Codein=0?Count0=3?Codeouttv=11Count0=0Codeoutv=0count0=countv0+1Codeoutv=01Count0=0end图 2 插“v”流程图程序如下: BEGINadd_v:PROCESS(clk,clr) BEGINIF(RISING_EDGE(clk) THENIF(clr=1) THENcodeoutvcodeoutv IF(count0

12、=3) THEN codeoutvcodeoutv=“00“;count0=count0;END CASE;END IF;END IF;AND PROCESS add_v;经插 v 后仿真波形如下:图 3 插 V 仿真波形从仿真波形可以看出当出现四个连 0 串的时候,把第四个“0”变换成符号“V”,用 “11”标识。 “1”用“01”标识, “0”用“00”。3.2 插“B”模块插“B”模块的建模思路是当相邻“V”符号之间有偶数个非 0 符号时,把后一小段的第 1 个“0”变换成一个“B”符号。可调用 D 触发器来实现延迟,这样经插“V”处理过的码元,可在同步时钟的作用下同时进行是否插“B”的判决,等到码元从移位寄存器里出来的时候,就可以决定是应该变换成“B”符号,还是照原码输出。程序流程图如 4 所示:开始Firstv=0Codeoutv=01Codeoutv=0 0Codeoutv=01Count1=Count01+1Count1=Count01Firstv=0?Count1=0; Firstv=0s1(4)=1; s0(4)=0Count1=0? ?s1(4)=s1(3); s0(4)=s0(3)Count(1)=0s1(4)=s1(0); s0(4)=s0(3)Codeoutb=s1(4)s1(0)=codeoutv(1);ds11:DFF

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

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号