基于CPLD的HDB3编码通信模块设计Word文档格式.docx
- 文档编号:19851548
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:32
- 大小:567.24KB
基于CPLD的HDB3编码通信模块设计Word文档格式.docx
《基于CPLD的HDB3编码通信模块设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于CPLD的HDB3编码通信模块设计Word文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得安阳工学院及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解安阳工学院关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;
学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;
学校可以采用影印、缩印、数字化或其它复制手段保存论文;
在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
4.3Max+PlusⅡ的简介........................................................................................................................16
4.3.1Max+PlusⅡ的设计输入及流程.................................................................................16
摘要:
HDB3码是一种应用广泛的线路传输码,是基带传输系统中经常采用的传输码型。
HDB3码具有低频分量小和无直流分量,提取时钟方便和较好的抗干扰能力等优点。
本文阐述了HDB3码编码电路的基本原理,在MAX+PlusⅡ软件平台上,给出了利用复杂可编程逻辑器件设计的HDB3码编码电路,并进行了编码和波形仿真。
在CPLD开发软件中编写硬件描述语言源程序,再通过语法检查、器件选择(选择MAX7000系列的EPM7128)、管脚分配、逻辑综合等编码过程后,生成编程文件(ATMEL系列是以.pof为文件名后缀)。
接下来,将得到的ATMEL公司的编程文件用转换软(pof2jed.exe)转换成ATMEL公司的编程文件(.jed文件),然后用ATMEL公司的下载软(Atmelisp.exe)通过下载线和JTAG口将编程文件下载到CPLD芯片中。
此处下载线也可以直接使用ATMEL公司的ByteBlaster下载线,当然下载软件中要作相应设定。
综合后下载到复杂可编程逻辑器件EPM7128SLC84-6中,测试结果表明,达到了预期的设计要求。
关键词:
三阶高密度双极性码(HDB3码)编码器复杂可编程逻辑器件(CPLD)
Abstract:
HDB3codeisawidelyusedlinecodeandisbasebandtransmissionsystemusedintransmissioncodetranslation.HDB3codehavingalowfrequencycomponentissmallandnoDCcomponent,theextractedclockconvenientandgoodantijammingcapability.OnthesoftwareplatformofMAX+PlusⅡ,weprovideacircuitofHDB3coderwhichutilizesthedesignofcomplexcodedlogic-units,thentranslateandsimulatethewaveform.AtthedevelopingsoftwareofCPLDthepaperwritesthehardwarethatdescribeprogramoflanguagesource,throughthecheckofgrammar,theselectionofdevice(chooseEPM7128ofMAX7000series),pinassignment,logicsynthesisandsoon.Afterthisprocess,itbecomesaprogrammingfile(thesuffixoffilenameispofinATMELseries).Changingtheprogrammingfile(pofsuffix)ofATMELcompanyintoitsjedfilethroughsoftware(pof2jed.exe).ThendownloadthesoftwareofATMELcompanyintoCPLDchipthroughcableandtheJTAGportofcourse.ThedownloadlinecanalsouseByteBlasterloadlineofATMELcompany,butthesoftwareshouldsetcorresponding.AfterdownloadingintocomplexprogrammablelogicdeviceofEPM7128SLC84-6,wecanfindtheresultspointoutitgetsthedesignrequirementsthatwedesired.
Keywords:
HDB3-code;
coder;
CPLD
引言
在数字通信系统中,数字信源的输出通常是采用单极性不归零码表示的数字基带信号,这种信号不但含有直流分量,而且低频成份也极其丰富。
随着数字通信的发展,HDB3码的出现就克服了这一问题。
科学技术在不断的进步,计算机从先前的采用半导体技术实现的计算器到现在广泛应用的采用高集成度芯片实现的多功能计算器。
计算机电路是计算机的重要组成部分,了解计算机电路的知识是促进计算机的发展的先决条件。
而编码器和译码器是计算机电路中的基本器件,对它们的了解可以为以后的进一步深化研究打下一个良好的基础。
本设计主要介绍的是一个基于超高速硬件描述语言VHDL对计算机电路中编码器和译码器进行编程实现。
在CPLD的开发软件MAX+plusІІ中编写硬件描述语言源程序,用于实现AMI/HDB3编码,编译后生成编程文件,再通过特定的下载软件由下载线和JTAG口将编程软件下载到CPLD芯片中。
本设计的主要目的是用CPLD的开发软件MAX+plusІІ实现HDB3编码的过程。
第一章概述
1.1发展历史及应用领域
20世纪70年代,最早的可编程逻辑器件--PLD诞生了。
其输出结构是可编程的逻辑宏单元,因为它的硬件结构设计可由软件完成(相当于房子盖好后人工设计局部室内结构),因而它的设计比纯硬件的数字电路具有很强的灵活性,但其过于简单的结构也使它们只能实现规模较小的电路。
为弥补PLD只能设计小规模电路这一缺陷,20世纪80年代中期,推出了复杂可编程逻辑器件--CPLD。
目前应用已深入网络、仪器仪表、汽车电子、数控机床、航天测控设备等方面。
家庭成员:
经过几十年的发展,许多公司都开发出了CPLD可编程逻辑器件。
比较典型的就是Altera、Lattice、Xilinx世界三大权威公司的产品,这里给出常用芯片:
AlteraEPM7128S (PLCC84)、LatticeLC4128V (TQFP100)、XilinxXC95108(PLCC84)
1.2研究背景及意义
在数字基带传输系统中,从信源输出的信号一般是用“0”、“1”两种状态表示的单极性(NRZ)码。
在进行数字信号基带传输时,必须考虑到传输信道的特点,将信息比特变换为适合于信道传输的数字信号,即进行线路编码。
传输线路对码型的基本要求为:
从线路码流中容易提取时钟,线路码型中不宜含有直流分量,低频成分应尽量减少,线路码流中高频成分应尽量减少,设备简单、易于实现码型变换和码型反变换的调试。
随着数字通信的迅速发展,人们先后提出了各种适合线路传输的码型,如CMI码、MILLER码、281Q码、AMI码、HDB3码等。
ITu—T(原ccITT)G.703建议中规定:
2M、8M、34M的数字接口码型均采用HDB3码。
在现代数字通信系统中,常常用“0”和“1”表示二进制信号.数字基带信号是数字信息的电脉冲表示.不同形式的基带信号具有不同的频谱结构,合理设计数字基带信号码型,以使数字信息变换为适合于给定信道传输特性的频谱结构,这是基带传输首先要考虑的问题.HDB3(hilghdensitybipolar三阶高密度双极性)码,是在AMI(alternativemarkinverse传号交替反转)码的基础上改进的一种双极性归零码.它除具有AMI码功率谱中无直流分量,可进行差错自检等优点外,还克服了A/VII码当信息中出现连“0”码时定时提取困难的缺点,而且HDB3码频谱能量主要集中在基波频率以下,占用频带较窄,是CCITTG.703推荐的PCM基群、二次群和三次群的数字传输接口码型;
因此,HDB3码的编解码就显得极为重要了.
目前,HDB3编解码主要由专用集成电路及与之相匹配的外围中小规模集成芯片来实现.
采用的传输码型为AMI码和HDB3码,NRZ(non—returll—to—zero不归零)码由移位寄存器和异或门搭建的m序列发生器产生.硬件电路主要基于集成芯片CD22103外加少量外围芯片来实现.该方案电路简单,位同步提取容易,已被成功地应用于实验室研究项目中.
1.3设计的主要内容
在CPLD的开发软件Max+PlusⅡ中编写硬件描述语言源程序,用于实现AMI/HDB3编译码,编译后生成编程文件,再通过特定的下载软件由下载线和JTAG口将编程软件下载到CPLD芯片中。
第二章HDB3码的编码原理
2.1HDB3码编码工作原理
HDB3码是在AMI码基础上改进的一种半占空比的归零码,抑制了长串连“1”和连“0"
现象,具有无直流分量、抗干扰能力强、有利于时钟提取等优点,广泛应用于长距离数字通信的PCM系统中。
HDB3码的编码原理框图参见图3.1.1,NRZ码到HDB3码的变换规则是:
当NRZ码序列中连‘`0,,个数小于4时,按AMI码编码规则处理,即用B+和B_交替表示信息“1"
用0表示信息“0"
;
当NRZ码序列中连“0”个数超过3个时,则以4连“0"
码为一组,第4个“O"
用V符号(称为破坏点)代替,相邻V脉冲的极性要交替变化,若相邻V脉冲间的B脉冲的个数为偶数时,需将4连“0”码中的第一个“0"
用B脉冲代替,其极性与前一个B脉冲相反,同时后面的B脉冲极性交替变化。
即出现4连“0"
码时,其取代码有四种:
000V十、OOOV-,B,OOV十、B-OOV-,具体取代码的选取由上述规则决定。
要了解HDB3码的编码规则,首先要知道AMI码的构成规则,AMI码就是把单极性脉冲序列中相邻的“1”码(即正脉冲)变为极性交替的正、负脉冲。
将“0”码保持不变,把“1”码变为+1、-1交替的脉冲。
如:
NRZ码:
100001000011000011
AMI码:
-10000+10000-1+10000-1+1
HDB3码是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符号,且B的极性与前一非0符号的极性相反,并使后面的非0符号从V符号开始再交替变化。
例:
100001000011000011
插V:
1000V1000V11000v11
插B:
+1000+V-1000-V+1-1+B00+V-1+1
HDB3码有以下特点:
基带信号无直流成分,且只有很小的低频成分;
连0串符号最多只有3个,利于定时信息的提取;
不受信源统计特性的影响。
2.2HDB3码编码设计思想
由于CPLD不能处理负电平,只能面向“1”、“0’’两种状态,所以要对它的输出进行编码。
编码的实现是根据HDB3编码原理把二进制码编码成两路单极性的码字输出,之后经过单双变换模块形成HDB3码,设计中的大部分工作可采用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”。
如果直接将要进行编码的数据按上述编码原则先转换成AMI码,然后进行加v码,加B码操作,会发现转化成AMI码时有一个“+1”“一1”码极性形成的过程,而在加B码操作之后,非零码元相应极性还有可能进行反转,因此有两个信号极性产生的过程。
分析HDB3的编码结果:
V码的极性是正负交替的,余下的1码和B码看成为一体也是正负交替的,同时满足V码的极性与前面的非零码极性一致。
由此产生了利用FPGA进行HDB3码编码的思路:
先进行加V码,加B码操作,在此过程中,暂不考虑其极性,然后将V码,1码和B码分成两组,分别进行极性变换来一次实现。
这样可以提高系统的效率,同时减小系统延时。
HDB3编码器的数字电路部分由三个模块组成:
V码产生单元(vGen),B码产生单元(BGen),单极性一双极性转换单元(single2double)。
2.3HDB3编码的硬件部分介绍
本实验使用数字信源模块和设计实验模块,图3.3.1给出了TX-6B型设备设计实验模块电原理图。
设计实验模块电路中有一个附加的电源开关K11(带有一个LED发光管显示K11状态),使用该模块时先打开总电源开关,然后将开关K11拨到ON。
TX-6B型设备设计实验模块的核心芯片是ATMEL公司的CPLD芯片ATF1508AS,此芯片为84脚PLCC型封装,带有JTAG测试接口电路,可以在系统编程(ISP),该芯片硬件上完全兼容ALTERA公司的EPM7128芯片,不过编程/擦除次数要远多于ALTERA公司CPLD的100次,达到1万次以上。
如图3.3.1所示,8输入3态缓冲器74LS244将来自数字信源模块的晶振信号CLK、位时钟信号BS、帧时钟信号FS、NRZ信号以及来自位同步模块的晶振信号CLK2进行缓冲处理后送给CPLD。
同时74LS244还将CPLD输出的三路信号(OUT1、OUT2、OUT3)进行缓冲处理,其中两路信号送到74HC4052芯片转换产生双极性信号BOUT,另一路直接输出到测试点。
上述输入和输出信号为串行信号。
本模块还提供了并行输入和输出方式:
一个四位手动拨码开关产生四位并行输入信号送给CPLD;
四个LED发光管用来显示CPLD的四位并行输出信号,发光管亮表示高电平,发光管熄表示低电平。
本模块外部信号测试点和输出点以及与CPLD芯片引脚连接说明如下:
OUT1CPLD第10脚的输出信号测试点
OUT2CPLD第9脚的输出信号测试点,此信号同时接到74HC4052的第10脚
OUT3CPLD第8脚的输出信号测试点,此信号同时接到74HC4052的第9脚
BOUT74HC4052输出的双极性信号测试点
FS-D信源NRZ码的帧时钟信号FS测试点,此信号经过74LS244缓冲后接到CPLD的第5脚作为输入信号
CLK28.867238MHz晶振输出信号(来自位同步模块)测试点,此信号经过74LS244缓冲后接到CPLD的第2脚作为输入信号,此信号频率约等于信源模块晶振信号CLK的2倍。
图2.3.1TX-6B型设备设计实验模块电原理图
设计实验模块中CPLD芯片ATF1508AS的引脚资源分配定义如下:
第2脚通用I/O口兼作GCLK2。
实验模块中定义为输入口,已接位同步模块的晶振信号CLK2
第5脚通用I/O口。
实验模块中定义为输入口,已接信源NRZ码的帧时钟信号FS
第8脚通用I/O口,实验模块中定义为输出口,对应本模块外部输出点OUT3
第9脚通用I/O口,实验模块中定义为输出口,对应本模块外部输出点OUT2
第10脚通用I/O口,实验模块中定义为输出口,对应本模块外部输出点OUT1
第11脚通用I/O口,实验模块中定义为输入口,已接信源模块的输出信号NRZ-OUT
第15脚通用I/O口,实验模块中定义为输出口,已接LED发光管OP1,高电平驱动OP1亮
第16脚通用I/O口,实验模块中定义为输出口,已接LED发光管OP2,高电平驱动OP2亮
第17脚通用I/O口,实验模块中定义为输出口,已接LED发光管OP3,高电平驱动OP3亮
第18脚通用I/O口,实验模块中定义为输出口,已接LED发光管OP4,高电平驱动OP4亮
第20脚通用I/O口,实验模块中定义为输入口,已接拨码开关IN4(开关K10的第4位),IN4置ON时该引脚为+5V高电平,IN4置OFF时该引脚为0V低电平
第21脚通用I/O口,实验模块中定义为输入口,已接拨码开关IN3(开关K10的第3位),IN3置ON时该引脚为+5V高电平,IN3置OFF时该引脚为0V低电平
第22脚通用I/O口,实验模块中定义为输入口,已接拨码开关IN2(开关K10的第2位),IN2置ON时该引脚为+5V高电平,IN2置OFF时该引脚为0V低电平
第28脚通用I/O口,实验模块中定义为输入口,已接拨码开关IN1(开关K10的第1位),IN1置ON时(向上拨)该引脚为+5V高电平,IN1置OFF时该引脚为0V低电平
第14脚JTAG口TDIN,实验模块中已接JTAG2口插座对应引脚
第23脚JTAG口TMS,实验模块中已接JTAG2口插座对应引脚
第62脚JTAG口TCK,实验模块中已接JTAG2口插座对应引脚
第71脚JTAG口TDOUT,实验模块中已接JTAG2口插座对应引脚
第81脚通用I/O口兼作GCLK3,实验模块中定义为输入口,已接信源模块NRZ码的位时钟信号BS-OUT
第83脚通用I/O口兼作GCLK1。
实验模块中定义为输入口,已接信源模块晶振信号CLK
第三章HDB3编码器的程序设计
3.1HDB3编码各功能模块的设计方案
AMI/HDB3编码子单元端口如图4.1.1所示,图中的NRZ、ctrl、pout1和pout2分别与图附1.1中的NRZ-IN、HDB3/AMI、+HDB3-OUT及-HDB3-OUT相对应。
当ctrl端口接高电平时模块进行HDB3编码,当ctrl端口接低电平时进行AMI编码。
编码时需输入NRZ码及位时钟信号,它们分别接数字信源模块的NRZ-OUT信号及BS-OUT信号,已在印刷电路板上连好。
子单元输出两路并行信号pout1和pout2,分别与AMI码或HDB3码的正极性信号和负极性信号相对应,这两个信号作为AMI/HDB3编译码模块中的单双极性变换器的输入信号,经极性变换后得到AMI码或HDB3码。
图3.1.1AMI/HDB3编码子单元端口示意图
AMI/HDB3编码子单元对应的程序为code.vhd,程序中共设置6个变量,它们是:
buff1存储AMI码或HDB3码的正极性信号
buff2存储AMI码或HDB3码的负极性信号
bw记录前一个“1”码或“B”码的符号,1代表“+”,0代表“–”
bv记录前一个“V”码的符号,1代表“+”,0代表“–”
i指针,指向当前的输出比特
k指针,指向代表“B”码的比特
编码算法流程如图4.1.2所示。
如果接收到的NRZ码为“1”,则根据符号交替反转的原则确定编码为+1或–1,并更新变量bw的值;
如果接收到的NRZ码为“0”,则将变量buff1和buff2的相应比特置为0。
如果buff1和buff2的数据均为“0000”并且模块进行HDB3编码(ctrl=1),需要用“000V”或“B00V”取代此连0信息码,否则不改变buff1和buff2的值。
在对“0000”信息码进行编码的时候,首先判断变量bw和bv的关系:
如果bv=bw,说明两个相邻“V”码之间有偶数个信息“1”码(包括0个信息“1”码),将“0000”编码为“B00V”,根据符号交替反转的原则,“B”码和“V”码的符号与变量bw代表的符号相反,然后更新变量bw和bv的值;
如果bv≠bw,说明两个相邻“V”码之间有奇数个信息“1”码,将“0000”编码为“000V”,其中“V”码的符号与变量bv代表的符号相反,然后更新变量bv的值。
最后将变量buff1和buff2的数据分别输出至pout1和pout2端口。
图3.1.2AMI/HDB3编码算法流程图
3.2HDB3编码器的程序代码与波形仿真
1.下面为HDB3编码子单元源程序及注释。
//====================================================//
//程序名称:
code.vhd//
//程序功能:
将NRZ码转换为AMI码或HDB3码//
LIBRARYieee;
USEieee.std_logic_1164.all;
ENTITYcodeis
port(
BS_R:
inbit;
//位同步信号//
NRZ:
inbit;
//输入的NRZ信号//
ctrl:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 CPLD HDB3 编码 通信 模块 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)