通信原理课程设计报告HDB3编码器.doc_第1页
通信原理课程设计报告HDB3编码器.doc_第2页
通信原理课程设计报告HDB3编码器.doc_第3页
通信原理课程设计报告HDB3编码器.doc_第4页
通信原理课程设计报告HDB3编码器.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河海大学计算机与信息学院(常州)通信原理课设报告 HDB3编码器设计 专业班级: 学 号: 姓 名: 指导老师: 目 录摘 要2第一章 系统设计4第一节 课题目标及总体方案4第二节 HDB3码简介52.1 数字基带信号52.2 NRZ,AMI,HDB3码之间的对应关系5 2.3 HDB3码的编码规则6第三节 Quartus 简介7 第二章 软件模块设计8 第一节 插“V”模块的实现9 第二节 插“B”模块的实现10 第三节 单双极性变换模块的实现11第三章 实验结果及讨论12心得体会13参考文献14附 录15 一、 Altera CPLD MAXII240 功能框图15 二、 实验源程序及注释15 摘 要 现代通信在技术一般的数字通信系统中首先将消息变为数字基带信号,称为信源编码,经过调制后进行传输,在接收端先进行解调恢复为基带信号,再进行解码转换为消息。在实际的基带传输系统中,并不是所有电波均能在信道中传输,因此有基带信号的选择问题,因此对码型的设计和选择需要符合一定的原则。HDB3(High Density Binary3)码是AMI码的一种改进型。HDB3码保持了AMI码的优点,克服了AMI码在遇到连“0”长时难以提取定时信息的困难,因而获得广泛应用。CCITT已建议把HDB3码作为PCM终端设备一次群到三次群的接口码型。我本次毕业设计的主要内容就是基于Verilog HDL语言的HDB3编码器的设计,它所要达到的要求就是能从软件方面来实现HDB3编码器的基本功能,并能协调整个设计,使之达到预想的要求。设计的核心部分是:在Quartus 的软件平台上,用Verilog HDL语言来完成HDB3编码器的各个模块的设计并将它们合为一个整体的系统。设计中所用到的知识主要是:对HDB3码型基本原理和特性的认识、对Quartus 软件的熟练操作、对Verilog HDL的掌握和应用,这些知识都是进行电子设计的基本知识和能力,只有基础知识和能力扎实了,才能更好的进行更高层次的电子设计,所以这个设计也是对电子设计基本能力的很好的锻练。 Abstract Modern communication technology in general digital communication system in the first message into a digital baseband signal, known as source coding, modulated transmission, the first demodulator to restore the baseband signal at the receiving end, and then decode the conversion messages. Actual baseband transmission system, not all waves can be transmitted in the channel, so the choice of the baseband signal and therefore need to conform to certain principles of pattern design and selection. Of HDB3 (High Density Binary-3) code is an improved AMI code. HDB3 code to maintain the advantages of the AMI code, to overcome the AMI code in the difficulties encountered even 0 long, difficult to extract timing information, and thus is widely available. CCITT has recommended that the HDB3 code as PCM terminal equipment is a group to the interface pattern of the three groups. The graduate design is based on the design of the Verilog HDL language of HDB3 encoder, it is to achieve the requirements of HDB3 encoder from software, and coordination of the entire design, so achieve the desired requirements. The core part of the design are: HDB3 encoder module design and Verilog HDL language in the Quartus II software platform, they are together as a whole system.Used in the design knowledge: understanding the basic principles and characteristics of HDB3 code proficiency in the Quartus II software, the mastery and application of the Verilog HDL, this knowledge is the basic knowledge and ability of the electronic design, only solid basic knowledge and ability in order to better the higher level of electronic design, so this design is the ability of the electronic design a good workout.第一章 系统设计第1节 课题目标及总体方案数字基带信号的传输是数字通信系统的重要组成部分。在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。采用AMI码的信号交替反转,有可能出现四连零现象,这不利于接收端的定时信号提取。而HDB3码因其无直流成份、低频成份少和连0个数最多不超过三个等特点,而对定时信号的恢复十分有利。针对数字基带传输系统中HDB3信号的特点,采用基于CPLDFPGA的Verilog HDL语言,在Quartus的环境中,实现HDB3数字基带信号的编码器设计。总体设计流程图如下:回顾VerilogHDL语言设计分析HDB3码编码器功能确定设计方案仿真不通过应用VHDL进行编程对系统仿真测试、选择合适芯片并定义管脚系统功能的硬件测试调试达到要求、完成设计第2节 HDB3码简介2.1 数字基带信号数字基带信号的传输是数字通信系统的重要组成部分之一。在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。为使基带信号能适合在基带信道中传输,通常要经过基带信号变化,这种变化过程事实上就是编码过程。于是,出现了各种各样常用码型。不同码型有不同的特点和不同的用途。作为传输用的基带信号归纳起来有如下要求:1 希望将原始信息符号编制成适合与传输用的码型;2 对所选码型的电波形,希望它适宜在信道中传输。可进行基带传输的码型较多。1、 AMI码AMI码称为传号交替反转码。其编码规则为代码中的0仍为传输码0,而把代码中1交替地变化为传输码的+1-1+1-1,、。 举例如下。消息代码:0 1 1 1 0 0 1 0 、AMI 码:0 +1 -1 +1 0 0 -1 0 、或 0 -1 +1 -1 0 0 +1 0 、AMI码的特点:(1) 无直流成分且低频成分很小,因而在信道传输中不易造成信号失真。(2) 编码电路简单,便于观察误码状况。(3) 由于它可能出现长的连0串,因而不利于接受端的定时信号的提取。2、 HDB3码 这种码型在数字通信中用得很多,HDB3码是AMI码的改进型,称为三阶高密度双极性码。它克服了AMI码的长连0传现象。2.2 NRZ,AMI,HDB3码之间的对应关系假设信息码为0000 0110 0001 0000,对应的NRZ码、AMI码,HDB3码如下图所示。 2.3 HDB3码的编码规则 HDB3码的编码规则:(1) 将消息代码变换成AMI码;(2) 检查AMI码中的连0情况,当无4个以上的连0传时,则保持AMI的形式不变;若出现4个或4个以上连0时,则将1后的第4个0变为与前一非0符号(+1或-1)同极性的符号,用V表示(+1记为+V,-1记为-V(3) 检查相邻V符号间的非0符号的个数是否为偶数,若为偶数,则再将当前的V符号的前一非0符号后的第1个0变为+B或-B符号,且B的极性与前一非0符号的极性相反,并使后面的非0符号从V符号开始再交替变化。举例如下:代码 1 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 HDB3码 +1 0 -1 0 +1 -1 0 0 0 -1 0 +1 -1 +1 0 0 +1 -1V、B -V +B +VHDB3码的特点如下:(1) 基带信号无直流成分,且只有很小的低频成分;(2) 连0串符号最多只有3个,利于定时信息的提取;(3) 不受信源统计特性的影响。第3节 Quartus 简介 Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。 第2章 软件模块设计HDB3码编码器模型如图所示:HDB3码代码输入输输入 插“V”插“B”单/双极性变换整个HDB3编码器主要包含3个功能部分:插“V”、插“B”和单极性码转变成双极性码。各部分之间采用同步时钟作用,并且带有一个异步的复位(清零)端口。下面将详细介绍各个部分的设计流程。除以上3个编码功能模块外,还有顶层主函数模块(包含分频)及信号产生模块(本程序选用m序列),在此不再赘述,详见附录源程序。第1节 插“V”模块的实现 插“V”模块的功能实际上就是对消息代码里的四连0串的检测即当出现四个连0串的时候,把第四个“0”变换成为符号“V”(“V”可以是逻辑“1”高电平),而在其他情况下,则保持消息代码的原样输出。同时为了减少后面工作的麻烦,在进行插“V”时,用“11”标识它,“1”用“01”标识,“0”用“00”标识。插“V”符号的设计思想很简单:首先判断输入的代码是什么(用一个条件语句判断),如果输入的是“0”码,则接着判断这是第几个“0”码,则把这一位码元变换成为“V”码。在其他条件下,让原代码照常输出。第2节 插“B”模块的实现 插“B”模块的功能是保证附加“V”符号后的序列不破坏“极性交替反转”造成的无直流特性,即当相邻“V”符号之间有偶数个非0符号的时候,把后一小段的第1个“0”变换成一个非破坏符号“B”符号。第3节 单双极性变换模块的实现根据HDB3的编码规则,我们可以知道,“V”的极性是正负交替的,余下的“1”和“B”看成一体且是正负交替的,同时满足“V”的极性与前面的非零码极性一致。由此我们可以将其分别进行极性变换来实现。从前面的程序知道,“V”、“B”、“1”已经分别用双相码“11”、“10”、“01”标识,“0”用“00”标识,所以通过以下的程序可以很容易实现。如下图为实现极性变换功能的流程图。“01”:标识为+1;“11”:标识为-1;“B”符号的极性与前一非零符号相反,“V”极性符号与前一非零符号一致。因此将“V”单独拿出来进行极性变换(由前面已知“V”已经由“11”标识,所以很好与其他的代码区别),余下的“1”和“B”看成一体进行正负交替,这样就完成了HDB3的编码。第3章 实验结果及讨论经过多次的排查和修改,以及总结,使用编译器编译,编译器提示编译文件正确,再下载到EPM240T100C5芯片中进行调试,示波器显示波形与仿真波形一致,达到了本次课设设计的目标。Quartus 软件仿真波形如下: 输出为4位,高2位为符号位(01=+1 11=-1 00=0),低2位为数值位(00=0 01=1 11=v 10=B) 上图中code_out是十进制显示,例如“7”,即“0111”,实则“+V”。心得体会 一,分频的时候分的尽量大一些,我们的是2的8次方分频,导致的结果是仿真的时候需要设定很大的时间,也就导致了仿真时间的加长。二,此次通信原理系统课程设计,让我受益匪浅。课设之初,我们认真查找、学习了关于HDB3编译码和Quartus 软件的资料和文献作为课程设计的知识储备。经过我们的努力,在老师同学的帮助下,我们顺利完成了课程设计,也掌握了通信原理系统设计的基本方法,达到了预期的目的。本次课程设计是为了培养我们的动手能力,学好通信原理,光满足于课本是不够的。正所谓“纸上得来终觉浅,绝知此事要躬行”,实践才能出真知。我体会到成功就是在不断摸索着前进中实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。另外,我还要感谢老师的悉心辅导和同学的帮助,我学到了很多东西,感受颇深。有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,解决不了的问题。除此之外,我也发现了自己的不足,语言表达能力还不够强,编程能力还不足,有些预先的想法都未能实现。我相信通过查阅相关资料,不断开阔眼界,并在以后的实践中不断磨练自己,能力一定会有提高。参考文献l 通信原理.樊昌信,曹丽娜.国防工业出版社,20072 Altera CPLD MAXII240_570学习板使用指南3 段吉海,黄智伟.基于CPLD/FPGA的数字通信系统建模与设计.电子工业出版社,2004 4 肖明波译.通信系统仿真原理与无线应用.机械工业出版社.2005附 录1、 Altera CPLD MAXII240 功能框图2、 实验源程序及注释/V模块程序 输出与输入之间关系 :01=1 11=v 00=0 module insert_v(clk,code_in,code_out);input clk,code_in;output code_out;reg 1:0 code_out;reg 2:0 count=0; /记录0的个数always(posedge clk)begin if(code_in=0) begin count=count+1; if(count=3) /连续出现4个0,输出为V,并清零count begin code_out=b11; count=0; end else code_out=b00; end else if(code_in=1) begin code_out=b01; count=0; end else code_out=b00;endendmodule/B模块程序 输出与输入之间关系 :00=0 01=1 11=v 10=Bmodule insert_B(clk,code_in,code_out);input clk;input 1:0 code_in; /B模块的输入为V模块的输出output 1:0 code_out; /B模块的输出为两位reg 1:0 code_out;reg count=0; /count记录两次000V之间1的个数的奇偶,若为奇数个,不变,否则变为B00Vreg 1:0 s1=0,s2=0,s3=0; /移位寄存器reg firstV=0; /表示是否出现了000Valways(posedge clk )begin s1=code_in; /每次在时钟上升沿的时候以为移位寄存器移一位 s2=s1; s3=s2; if(code_in=b00) /输入为0,输出不变 code_out=s3; else if(code_in=b01) /输入为1,输出不变,奇偶改变 begin count=count+1; code_out=s3; end else if(code_in=b11) /输入为V begin if(firstV=0) /判断之前是否出现了000V begin firstV=1; /没出现,则输出不变,并记录此次V code_out=s3; end else begin /之前出现了000V,判断出现1的奇偶性 if(count=0) code_out=b10; /1的个数为偶数,输出B,否则输出不变 else begin count=0; code_out=s3; end end end else code_out=b00; end endmodule/单双极性变换模块:01=+1 11=-1 00=0module polarity(clk,code_in,code_out);input clk;input 1:0 code_in; /输入为B模块的输出output 3:0 code_out; /输出为4位,高两位表示极性reg 3:0 code_out;reg flag; /判断是否需要极性转换always(posedge clk)begin if(code_in=b00) /输入为0码时,则输出信号为0000 code_out=2b00,code_in; else if(code_in=b11) /输入为V时,flag不变,即极性不变 begin if(flag=1) code_out=2b1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论