通信原理课程设计报告HDB3编码器.docx
- 文档编号:12003004
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:19
- 大小:908.32KB
通信原理课程设计报告HDB3编码器.docx
《通信原理课程设计报告HDB3编码器.docx》由会员分享,可在线阅读,更多相关《通信原理课程设计报告HDB3编码器.docx(19页珍藏版)》请在冰点文库上搜索。
通信原理课程设计报告HDB3编码器
河海大学计算机与信息学院(常州)
通信原理课设报告
——HDB3编码器设计
专业班级:
学号:
姓名:
指导老师:
2.3HDB3码的编码规则……………………………………………………………6
第二章软件模块设计……………………………………………………………………8
第一节插“V”模块的实现………………………………………………………………9
第二节插“B”模块的实现………………………………………………………………10
第三节单双极性变换模块的实现…………………………………………………………11
一、AlteraCPLDMAXII240功能框图………………………………………15
摘要
现代通信在技术一般的数字通信系统中首先将消息变为数字基带信号,称为信源编码,经过调制后进行传输,在接收端先进行解调恢复为基带信号,再进行解码转换为消息。
在实际的基带传输系统中,并不是所有电波均能在信道中传输,因此有基带信号的选择问题,因此对码型的设计和选择需要符合一定的原则。
HDB3(HighDensityBinary-3)码是AMI码的一种改进型。
HDB3码保持了AMI码的优点,克服了AMI码在遇到连“0”长时难以提取定时信息的困难,因而获得广泛应用。
CCITT已建议把HDB3码作为PCM终端设备一次群到三次群的接口码型。
我本次毕业设计的主要内容就是基于VerilogHDL语言的HDB3编码器的设计,它所要达到的要求就是能从软件方面来实现HDB3编码器的基本功能,并能协调整个设计,使之达到预想的要求。
设计的核心部分是:
在QuartusⅡ的软件平台上,用VerilogHDL语言来完成HDB3编码器的各个模块的设计并将它们合为一个整体的系统。
设计中所用到的知识主要是:
对HDB3码型基本原理和特性的认识、对QuartusⅡ软件的熟练操作、对VerilogHDL的掌握和应用,这些知识都是进行电子设计的基本知识和能力,只有基础知识和能力扎实了,才能更好的进行更高层次的电子设计,所以这个设计也是对电子设计基本能力的很好的锻练。
Abstract
Moderncommunicationtechnologyingeneraldigitalcommunicationsysteminthefirstmessageintoadigitalbasebandsignal,knownassourcecoding,modulatedtransmission,thefirstdemodulatortorestorethebasebandsignalatthereceivingend,andthendecodetheconversionmessages.Actualbasebandtransmissionsystem,notallwavescanbetransmittedinthechannel,sothechoiceofthebasebandsignalandthereforeneedtoconformtocertainprinciplesofpatterndesignandselection.
OfHDB3(HighDensityBinary-3)codeisanimprovedAMIcode.HDB3codetomaintaintheadvantagesoftheAMIcode,toovercometheAMIcodeinthedifficultiesencounteredeven"0"long,difficulttoextracttiminginformation,andthusiswidelyavailable.CCITThasrecommendedthattheHDB3codeasPCMterminalequipmentisagrouptotheinterfacepatternofthethreegroups.ThegraduatedesignisbasedonthedesignoftheVerilogHDLlanguageofHDB3encoder,itistoachievetherequirementsofHDB3encoderfromsoftware,andcoordinationoftheentiredesign,soachievethedesiredrequirements.
Thecorepartofthedesignare:
HDB3encodermoduledesignandVerilogHDLlanguageintheQuartusIIsoftwareplatform,theyaretogetherasawholesystem.Usedinthedesignknowledge:
understandingthebasicprinciplesandcharacteristicsofHDB3codeproficiencyintheQuartusIIsoftware,themasteryandapplicationoftheVerilogHDL,thisknowledgeisthebasicknowledgeandabilityoftheelectronicdesign,onlysolidbasicknowledgeandabilityinordertobetterthehigherlevelofelectronicdesign,sothisdesignistheabilityoftheelectronicdesignagoodworkout.
第一章系统设计
第1节课题目标及总体方案
数字基带信号的传输是数字通信系统的重要组成部分。
在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。
采用AMI码的信号交替反转,有可能出现四连零现象,这不利于接收端的定时信号提取。
而HDB3码因其无直流成份、低频成份少和连0个数最多不超过三个等特点,而对定时信号的恢复十分有利。
针对数字基带传输系统中HDB3信号的特点,采用基于CPLD/FPGA的VerilogHDL语言,在QuartusⅡ的环境中,实现HDB3数字基带信号的编码器设计。
总体设计流程图如下:
回顾VerilogHDL语言设计
分析HDB3码编码器功能
确定设计方案
应用VHDL进行编程
对系统仿真测试、选择合适芯片并定义管脚
仿真不通过
系统功能的硬件测试
调试达到要求、完成设计
第2节HDB3码简介
2.1数字基带信号
数字基带信号的传输是数字通信系统的重要组成部分之一。
在数字通信中,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。
为使基带信号能适合在基带信道中传输,通常要经过基带信号变化,这种变化过程事实上就是编码过程。
于是,出现了各种各样常用码型。
不同码型有不同的特点和不同的用途。
作为传输用的基带信号归纳起来有如下要求:
1希望将原始信息符号编制成适合与传输用的码型;2对所选码型的电波形,希望它适宜在信道中传输。
可进行基带传输的码型较多。
1、AMI码
AMI码称为传号交替反转码。
其编码规则为代码中的0仍为传输码0,而把代码中1交替地变化为传输码的+1-1+1-1,、、、。
举例如下。
消息代码:
01110010、、、
AMI码:
0+1-1+100-10、、、或
0-1+1-100+10、、、
AMI码的特点:
(1)无直流成分且低频成分很小,因而在信道传输中不易造成信号失真。
(2)编码电路简单,便于观察误码状况。
(3)由于它可能出现长的连0串,因而不利于接受端的定时信号的提取。
2、HDB3码
这种码型在数字通信中用得很多,HDB3码是AMI码的改进型,称为三阶高密度双极性码。
它克服了AMI码的长连0传现象。
2.2NRZ,AMI,HDB3码之间的对应关系
假设信息码为0000011000010000,对应的NRZ码、AMI码,HDB3码如下图所示。
2.3HDB3码的编码规则
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符号开始再交替变化。
举例如下:
代码101011000001100001
HDB3码+10-10+1-1000-10+1-1+100+1-1
V、B-V+B+V
HDB3码的特点如下:
(1)基带信号无直流成分,且只有很小的低频成分;
(2)连0串符号最多只有3个,利于定时信息的提取;
(3)不受信源统计特性的影响。
第3节QuartusⅡ简介
QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。
目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。
Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。
AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
第2章软件模块设计
HDB3码编码器模型如图所示:
整个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=+111=-100=0),低2位为数值位(00=001=111=v10=B)
上图中code_out是十进制显示,例如“7”,即“0111”,实则“+V”。
心得体会
一,分频的时候分的尽量大一些,我们的是2的8次方分频,导致的结果是仿真的时候需要设定很大的时间,也就导致了仿真时间的加长。
二,此次通信原理系统课程设计,让我受益匪浅。
课设之初,我们认真查找、学习了关于HDB3编译码和QuartusⅡ软件的资料和文献作为课程设计的知识储备。
经过我们的努力,在老师同学的帮助下,我们顺利完成了课程设计,也掌握了通信原理系统设计的基本方法,达到了预期的目的。
本次课程设计是为了培养我们的动手能力,学好通信原理,光满足于课本是不够的。
正所谓“纸上得来终觉浅,绝知此事要躬行”,实践才能出真知。
我体会到成功就是在不断摸索着前进中实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。
另外,我还要感谢老师的悉心辅导和同学的帮助,我学到了很多东西,感受颇深。
有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,解决不了的问题。
除此之外,我也发现了自己的不足,语言表达能力还不够强,编程能力还不足,有些预先的想法都未能实现。
我相信通过查阅相关资料,不断开阔眼界,并在以后的实践中不断磨练自己,能力一定会有提高。
参考文献
[l]通信原理.樊昌信,曹丽娜.国防工业出版社,2007
[2]AlteraCPLDMAXII240_570学习板使用指南
[3]段吉海,黄智伟.基于CPLD/FPGA的数字通信系统建模与设计.电子工业出版社,2004
[4]肖明波译.通信系统仿真原理与无线应用.机械工业出版社.2005
附录
1、AlteraCPLDMAXII240功能框图
2、实验源程序及注释
//V模块程序输出与输入之间关系:
01=111=v00=0
moduleinsert_v(clk,code_in,code_out);
inputclk,code_in;
outputcode_out;
reg[1:
0]code_out;
reg[2:
0]count=0;//记录0的个数
always@(posedgeclk)
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
elseif(code_in==1)
begin
code_out<='b01;
count<=0;
end
elsecode_out<='b00;
end
endmodule
//B模块程序输出与输入之间关系:
00=001=111=v10=B
moduleinsert_B(clk,code_in,code_out);
inputclk;
input[1:
0]code_in;//B模块的输入为V模块的输出
output[1:
0]code_out;//B模块的输出为两位
reg[1:
0]code_out;
regcount=0;//count记录两次000V之间1的个数的奇偶,若为奇数个,不变,否则变为B00V
reg[1:
0]s1=0,s2=0,s3=0;//移位寄存器
regfirstV=0;//表示是否出现了000V
always@(posedgeclk)
begin
s1<=code_in;//每次在时钟上升沿的时候以为移位寄存器移一位
s2<=s1;
s3<=s2;
if(code_in=='b00)//输入为0,输出不变
code_out<=s3;
elseif(code_in=='b01)//输入为1,输出不变,奇偶改变
begin
count<=count+1;
code_out<=s3;
end
elseif(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
elsecode_out<='b00;
end
endmodule
//单双极性变换模块:
01=+111=-100=0
modulepolarity(clk,code_in,code_out);
inputclk;
input[1:
0]code_in;//输入为B模块的输出
output[3:
0]code_out;//输出为4位,高两位表示极性
reg[3:
0]code_out;
regflag;//判断是否需要极性转换
always@(posedgeclk)
begin
if(code_in=='b00)//输入为0码时,则输出信号为0000
code_out<={2'b00,code_in};
elseif(code_in=='b11)//输入为V时,flag不变,即极性不变
begin
if(flag==1)
code_out<={2'b11,code_in};
else
code_out<={2'b01,code_in};
end
elseif(code_in=='b01||code_in=='b10)//输入为1或B码时,flag3取反,即极性改变
begin
if(flag==1)
begin
code_out<={2'b01,code_in};
flag<=0;
end
else
begin
code_out<={2'b11,code_in};
flag<=1;
end
end
elsecode_out<='b0000;
end
endmodule
//伪随机序列发生模块
modulerandom(clk,code_r_out);
inputclk;
outputcode_r_out;
regcode_r_out;
reg[5:
0]m;
initial
begin
m<=6'b100000;
end
always@(posedgeclk)
begin
m[4:
0]<=m[5:
1];
m[5]<=m[1]^m[0];
code_r_out<=m[0];
end
endmodule
//主模块
moduletop(clk,code_out);
inputclk;
regclk128;
reg[7:
0]temp;
always@(posedgeclk)
begin
temp<=temp+1;
clk128<=temp[7];
end
output[3:
0]code_out;
wirecode_r_out;
wire[1:
0]code_v_out,code_B_out;
randomr(.clk(clk128),.code_r_out(code_r_out));
insert_vv(.clk(clk128),.code_in(code_r_out),.code_out(code_v_out));
insert_BB(.clk(clk128),.code_in(code_v_out),.code_out(code_B_out));
polarityp(.clk(clk128),.code_in(code_B_out),.code_out(code_out));
endmodule
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通信 原理 课程设计 报告 HDB3 编码器