HDB3编码器的FPGA实现.docx
《HDB3编码器的FPGA实现.docx》由会员分享,可在线阅读,更多相关《HDB3编码器的FPGA实现.docx(62页珍藏版)》请在冰豆网上搜索。
HDB3编码器的FPGA实现
内蒙古科技大学
本科生毕业设计说明书(毕业论文)
题目:
HDB3编码器的FPGA实现
学生姓名:
学号:
**********
专业:
电子信息工程
班级:
信息06-1班
指导教师:
HDB3编码器的FPGA实现
摘要
数字基带信号的要求主要有两点,第一是对各代码的要求,期望将原始信息符号编制成适合于传输用的码型;第二是对所选的码型的波形的要求,期望波形适宜于在信道中传输。
HDB3(三阶高密度双极性码)因其具有无直流分量、较少低频分量和连零位数目最多不超过三个,以及便于提取定时信息和具有检错能力等特点,所以选择了HDB3码。
本文介绍了HDB3码的编解码原理,分析了HDB3码较其它码型所具有的优势,结合可编程逻辑器件集成度高,速度快,功耗低的特点,选用Xilinx公司的Spartan-3系列FPGA(FieldProgrammableGateArray)芯片Spartan-3E进行HDB3编解码电路的实现。
通过仿真,观察到电路各点的仿真输出波形与HDB3码的理论输出值一致。
该方法可满足实际的通信系统传输要求,具有实际应用价值。
关键词:
数字基带信号;HDB3;FPGA;
HDB3EncoderFPGAImplementation
Abstract
DigitalbasebandsignalsTherearetwomainrequirements,thefirstisthecode'srequirements,expectationswillbecompiledfortheoriginalinformationsymbolsusedinthetransmissionpattern;thesecondistheselectedwaveformpatternrequirements,expectationswaveformsuitablefortransmissioninthechannel.HDB3(highdensitybipolarordercode)becauseofitsnon-DCcomponents,thelowfrequencycomponents,andevenfewerthenumberofzerouptomorethanthree,andtofacilitateextractionoftiminginformationanderrordetectioncapabilitywithfeatures,soIchoseHDB3code.ThisarticledescribestheHDB3codedecodingprincipleoftheHDB3codepatternthantheotheradvantagesofcombininghighlyintegratedprogrammablelogicdevices,highspeed,lowpowerconsumption,selectedXilinx'sSpartan-3seriesFPGA(FieldProgrammableGateArray)Spartan-3EchipforHDB3codeccircuitimplementation.Throughsimulation,observationpointsinthesimulationofthecircuitoutputwaveformandthetheoreticaloutputvalueHDB3linecode.Themethodcanmeetthepracticalrequirementsofcommunicationsystemstransmitandhaspracticalvalue.
Keywords:
Digitalbasebandsignal;HDB3;FPGA;
2.3单双极性变换过程………………………………………………………...11
2.4实例分析…………………………………………………………………...12
第一章绪论
一.1可编程逻辑器件的发展【1】【2】
数字集成电路它由早期的电子管、晶体管、小中规模集成电路发展到超大规模集成电路以及许多具有特定功能的专用集成电路。
但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导器厂商来独立承担。
系统设计师们更愿意自己设计专用的ASIC(专用集成电路ApplicationSpecificIntegratedCircuit)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际的应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
随着FPGA芯片技术的发展和系统设计手段的不断进步,用硬件描述语言(HDL)进行数字通信功能模块或整个系统的设计,在仿真测试及电路实现等方面具有传统设计方法不可比拟的优越性。
用FPGA实现的HDB3码编码器电路具有电路简单,性能可靠,开发成分低的优点。
将编码器用于光纤以太网到E1信号相互转接通信设备中,再2048kb/s时钟速率下实际运行,其性能指标完全能够满足CCITT建议G.703标准。
用FPGA实现的HDB3码编码器,可充分利用FPGA片内资源,是数据传输,编码解码及多路复用集中于单一芯片,有利于提高系统的经济性和可靠性,具有一定的应用价值。
现场可编程逻辑门阵列FPGA它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA的使用非常灵活,同一片FPGA通过不同的编程数据可以产生不同的电路功能。
可以由电路设计者根据设计要求,借助于FPGA开发工具对其编程,以实现各种数字电路逻辑功能,确定逻辑功能的逻辑器件利用FPGA内部的逻辑结构,可以实现任何复杂的组合逻辑电路和时序电路,是实现数字电路的理想器件,在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到了广泛应用。
随着功耗和成本的进一步降低,FPGA还将进入更多的应用领域[3]。
下面将具体介绍可编程逻辑器件的发展及其应用。
可编程逻辑器件PLD是一种数字电路,它可以由用户来编程和进行配置,利用它可解决不同的逻辑设计问题。
PLD有基本逻辑门电路、触发器以及内部链接电路构成,利用软件和硬件(编程器)可已对其进行编程,从而实现特定的逻辑功能。
可编程逻辑器件自70年代初期以来经历了从PRO、NPL、APA、LGA、L到CPL和FPGA的发展过程,在结构、工艺、集成度、功能、速度和灵活性方面都有很大的改进和提高,其大致的演变过程主要有以下三个发展阶段:
1.1.1早期的可编程逻辑器件:
70年代初期的PLD主要用于解决各种类型的存储问题,如可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM),由于结构的限制,他们只能完成简单的数字逻辑功能。
1.1.2结构上稍为复杂的可编程芯片:
70年代末到80年代初,AMD公司和Lattjce公司先后推出了可编程逻辑器件PLD,产品主要为PLA(可编程阵列逻辑,ProgrammableArrayLogic)、GAL(通用阵列逻辑,GenericArrayLogic)和PLA(可编程逻辑阵列,ProgrammableLogicArray)。
这一类PLD在设计上具有很强的灵活性,可以实现速度特性较好的逻辑功能,但由于结构简单,它们只能实现规模较小的电路。
1.1.3功能齐全、编程灵活的可编程逻辑器件:
80年代中期,Altera公司和Xilin公司同期推出了CPLD(复杂可编程逻辑器件ComplexProgrammableLogicDvice)和FPGA(现场可编程门阵列FieldProgrammableGatesArray),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点,可以实现见大规模的电路。
进入90年代后,可编程逻辑集成电路技术进入飞速发展的时期,除继续提高器件的集成度和速度等技术指标外,在系统可编程技术ISM(In-SystemProgrammable)和世界扫描测试技术的出现,使得可编程逻辑器件在器件编程技术和期间测试技术方面也获得了化时代的进步。
一.2可编程逻辑器件的应用前景【2-4】
随着电子技术的高速发展,今天的CPLD和FPGA器件在集成度、功能和性能(速度及可靠性)方面已经能够满足大多数场合的使用要求。
用CPLD、FPGA等大规模可编程逻辑器件取代传统的集成电路、接口电路和专用集成电路已成为技术发展的必然趋势。
1.2.1PLD在ASIC上的应用
在ASIC设计方法中,通常采用全定制和半定制电路设计方法,设计完成后,如果不能满足要求,就得重新设计在进行验证。
这样就使得设计开发周期变长,产品上市时间难以保证,大大增加了产品的开发费用。
FPGA/CPLD芯片是特殊的ASIC芯片,它们除具有ASIC的特点之外,还具有自身的优势。
目前,ASIC的容量越来越大,密度已达到平均每平方英寸1百万个门电路。
但随着密度的不断提高,芯片则受到引脚的限制,片上芯片虽然很多,但接入内核的引脚数目却是有限的。
而选用FPGA/CPLD则不存在这样的限制,因为现在可达到金属层数目增强了产品的优势,FPGA/CPLD芯片的规模越来越大,其单片逻辑门数已达到上百万门,实现的功能也越来越强,同时可以实现系统集成。
另外,与ASIC相比,可编程逻辑器件研制周期短,先期开发费用较低,也没有最少订购数量的限制,所有这一切简化了库存管理。
随着每个门电路成本的降低和每个器件中门电路数量的增加,可编程逻辑器件正在大举打入传统的门阵列领域,并已有少量的打入了标准单元ASIC的领域。
1.2.2在电子技术领域中的应用
1、在微机系统中的应用
FPGA/CPLD可以取代现有的全部微机接口芯片,实现微机系统中的地址译码、总线控制、中断及DMA控制、DRAM管理和I/O接口电路等功能。
利用CPLD和FPGA可以把多个微机系统的功能集成在同一块芯片中,即进行所谓的“功能集成”。
2、在通信领域中的应用
现代通信系统的发展方向是功能更强、体积更小、速度更快、功耗更低。
FPGA/CPLD在集成度、功能和速度上的优势正好满足通信系统的这些要求。
所以现在无论是民用的移动电话、程控交换机、集群电台、广播发射机和调制解调器,还是军用的雷达设备、图像处理设计、遥控遥测设备、加密通信机都已广泛地使用大规模可编程逻辑器件。
3、在数字信号处理技术(DSP)领域中的应用
DSP在很多领域内具有广泛的用途,如雷达、图像处理、数据压缩、数字电视和数字通信机等。
随着DSP系统复杂程度和功能要求的提高,用DSP解决方案愈现出其缺陷性:
实时性不强、灵活性太差,不适合在实验室或技术开发等场合使用等。
现在,FPGA/CPLD为DSP提供了解决问题的方案,FPGA/CPLD和DSP的技术结合,能够在集成度、速度(实时性)和系统功能方面满足DSP的需要。
应用FPGA/CPLD设计DSP系统可以减少系统体积,提高系统的工作速度。
例如,用FPGA可以将一块PC机长卡大小的图像处理板缩小到一块FPGA芯片和几片外围电路上。
可编程逻辑器件是逻辑器件家族中发展最快的一类器件,可编程逻辑器件的出现使得其产品开发周期缩短、现场灵活性好、开发风险变小,随着工艺、技术及市场的不断发展,PLD产品的价格将越来越便宜、集成度越来越高、速度越来越快,再加上其设计开发采用符合国际标准的、功能强大的通用性EDA工具,可编程逻辑器件的应用前景将愈来愈广阔,FPGA/CPLD以其不可替代的地位,将越来越受到业内人士的关注。
在数字通信系统中,为了满足无线信道中传输码型无直流分量、较少低频分量,以及便于提取定时信息和具有检错能力等要求,选择了三阶高密度双极性码(HDB3)。
结合可编程器件集成度高,速度快,功耗低的特点,选用ALTERA公司的Cyclone系列FPGA芯片EP1C3T100进行HDB3编码电路实现。
通过仿真,观察到电路各点的仿真输出波形与HDB3码的理论输出一致,该方法可满足实际的通信系统传输要求,具有实际应用价值【5】。
一.3基带传输码【6】
在实际的基带传输系统中,并不是所有的基带波形都适合在信道中传输。
例如,含有丰富直流和低频分量的单极性基带波形就不适宜在低频传输特性差的信道中传输,因为这有可能造成信号严重畸变。
又如,当消息代码中包含长串的“1”或“0”符号时,非归零波形呈现出连续的固定电平,因而无法获得定时信息。
单极性归零码在传送连“0”时,也存在同样的问题。
因此,对传输用的基带信号主要有以下两个方面的要求。
1、对代码的要求:
原始消息代码必须编成适合于传输用的码型;
2、对所选码型的电波形要求:
电波形应适合于基带系统的传输。
1.3.1传输码的码型选择原则
传输码(或称线路码)的结构将取决于实际信道特性和系统工作的条件。
在选择传输码时,一般应考虑以下原则:
1、不含直流,且低频分量尽量少;
2、应含有丰富的定时信息,以便于从接受码流中提取定时信号;
3、功率谱主瓣宽度窄,以节省传输频带;
4、不受信息源统计特性的影响,即能适应于信息源的变化;
5、具有内在的检错能力,即码型应具有一定规律性,以便于用这一规律性进行宏观检测。
6、编译码简单,以降低通信延时和成本。
1.3.2几种常用的传输码型
1、AMI码
AMI码(AlternativeMarkInversion)码的全称是传号交替反转码,其编码规则是将消息码的“1”(传号)交替地变换为“+1”和“-1”,而“0”(空号)保持不变。
AMI码的优点是,没有直流成分,且高、低频分量少,能量集中在频率为1/2码速处;编码电路简单,且可利用传号极性交替这一规律观察误码情况;如果它是AMI-RZ波形,接收后只要全波整流,就可变为单极性RZ波形,从中可以提取定时分量。
鉴于上述优点,AMI码成为较常用的传输码型之一。
AMI码的缺点是,当原信码出现长连“0”串时,信号的电平长时间不跳变,造成提取定是信号的困难。
解决连“0”码问题的有效方法之一是采用HDB3码。
2、HDB3码
HDB3码的全称是三阶高密度双极性码。
它是AMI码的一种改进型,改进目的是为了保持AMI码的优点而克服其缺点,使连“0”个数不超过3个。
HDB3码的编码虽然比较复杂,但译码却比较简单。
除了具有AMI码的优点外,同时还将连“0”码限制在三个以内,使得接收时能保证定时信息的提取。
因此,HDB3码是目前应用最为广泛的码型。
A律PCM四次群以下的接口码型均为HDB3码。
3、双相码
双相码又称曼彻斯特码。
它用一个周期的正负对称方波表示“0”,而用其反相波形表示“1”。
编码规则之一是:
“0”码用“01”两位码表示,“1”码用“10”两位码表示。
双相码波形是一种双极性NRZ波形,只有极性相反的两个电平。
它在每个码元间隔的中心点都存在电平的跳变,所以含有丰富的位定时信息,且没有直流分量,编码过程也简单。
缺点是占有带宽加倍,使频带利用率降低。
双相码适用于数据终端设备近距离上传输,局域网常采用该码作为传输码型。
4、差分双相码
为了解决双相码因极性反转而引起的译码错误,可以采用差分码的概念。
双相码是利用每个码元持续时间中间的电平跳变进行同步和信码表示。
而在差分双相码编码中,每个码元中间的电平跳变用于同步,而每个码元的开始处是否存在额外的跳变用来确定信码。
有跳变则表示二进制“1”,无跳变则表示二进制“0”。
该码在局域网中常被采用。
5、密勒码
密勒码又称延迟调制码,它是双相码的一种变形。
它的编码规则如下:
“1”码用码元中心点出现跃变来表示,即用“10”或“01”表示。
“0”码有两种情况:
单个“0”时,在码元持续时间内不出现电平跃变,且与相邻码元的边界处也不跃变,连“0”时,在两个“0”码的边界处出现电平跃变,“00”与“11”交替。
又因为双相码的下降沿正好对应于密勒码的跃变沿。
因此,用双相码的下降沿去触发双稳电路,即可输出密勒码,密勒码最初用于气象卫星和磁记录,现在也用于低速基带数传机中。
6、CMI码
CMI码是传号反转码的简称,与双相码类似,它也是一种双极性二电平码。
其编码规则是:
“1”码交替用“11”和“00”两位码表示;“0”码固定地用“01”表示。
CMI码易于实现,含有丰富的定时信息。
此外,由于10为禁用码组,不会出现三个以上的连码,这个规律可用来宏观检错。
该码已被ITU-T推荐为PCMCIA四次群的接口码型,有时也用在速率低于8.448Mb/s的光缆传输系统中。
7、块编码
为了提高线路编码性能,需要某种冗余来确保码型的同步和检错能力。
引入块编码可以在某种程度上达到这两个某的。
块编码的形式有nBmB码,nBmT码等。
nBmB码是一类块编码,它把原信息码流的n位二进制码分为一组,并置换成m位二进制码的新码组,其中m>n。
由于m>n,新码组可能有2n种组合,故多出(2n-2m)种组合。
在2n种组合中,以某种方式选择有利码组作为可用码组,其余作为禁用码组,以获得好的编码性能。
在光纤通信系统中,常选择m=n+1,取1B2B码、2B3B码、3B4B码及5B6B码等。
nBmB码提供了良好的同步和检错功能,但是也会为此付出一定的代价,即所需的带宽随之增加[5]。
而在一般的数字通信系统中首先将消息变换为数字基带信号,称为信源编码[6-8],经过调制后进行传输,在接收端解调后恢复出基带信号,在进行解码转换为原始消息。
实际的基带传输系统中,并不是所有波均能在信道中传输。
基带信号频谱中含有丰富的低频分量乃至支流分量,当数字信号进行长距离的增大而增大,电缆中线对之间的电磁辐射也随着频率的增高而加剧,从而限制了信号的传输距离和传输质量。
同时信道中存在的限直流电容和偶合变压器,阻止了直流分量的传输并对低频分量有较大的衰减。
因此,对于一般信道高频和低频部分均是受限制的。
这就出现了基带信号码型的选择问题。
对于传输信道,要求线路传输码型的频谱不含支流分量,并且只有很少的低频分量和高频分量。
其次,一般的传输系统中,为了节省频带是不传输定时信息的。
必须在接受端从相应的基带信息中加以提取,因而传输码型应利于收端定时时钟的提取,满足接受端再生原始信息时的需要。
再次,码型应具有一定的规律性,有一定的误码检测能力。
因此,我们选择了用三阶高密度双极性码HDB3码。
它是AMI码的一种改进型,主要是克服了AMI码中连“0”时所带来的提取定时信息的困难,保持了AMI码的优点,因而获得广泛应用,已成为CCITT推荐使用的码型之一。
此外,常用的NRZ码不适合在高速长距离数据通信的信道中传输,因而选用了HDB3码。
HDB3码是串行数据传输的一种重要编码方式。
和常用的NRZ码相比,HDB3具有很多优点,例如:
消除了NRZ码的直流成分,具有时钟恢复和更好的抗干扰性能,这使得它更适合于长距离信道传输。
E1信号选用HDB3编码方式,速率2.048Mbps可以在特性阻抗120奥姆的RJ45平衡双绞线上传输1.5km,能够满足大多数情况下数据的高速长距离传输。
在数据速率小于2.048Mbps的高速速率时,可以通过插入额外数据比特提高数据速率【9】。
第二章HDB3编码原理
要设计一个实用的编码模块,首先要深入研究其编码规则及其特点,然后根据编码规则设计符合电路特性的编码流程。
HDB3码的编码规则包括【6】.【10-11】:
①将消息代码变换成AMI码,AMI码的编码规则是对码流中的非“0”符号进行正负交替;②检查AMI码中的连零情况,当连零的个数小于4个时,保持AMI的形式不变;当连零的个数达到4个或超过4个时,则将非零码后的第4个“0”替换成V码,其中V码的极性与前一非零码(+1或-1)的极性保持一致,例如,前面的非零码是+1,则将V码记为+V;③完成插V操作后,检查2个相邻V码之间非零码的个数是否为偶数,若为偶数,则再将相邻2个V码中后一个V码的前一个非零码后的第一个“0”变为B码,B码的极性与前一非“0”码的极性相反,同时B码后面的非“0”码极性再次进行交替变换,保证极性交替反转特性。
编码规则中出现的V码、B码只是作为标识符,最终的电路实现还是“0”和“1”这两种逻辑电平,因此需要采用二进制编码对“1”、“0”、V、B进行编码,“00”表示“0”,“01”表示“1”,“10”表示B,“11”表示V。
根据编码规则和利用FPGA实现的特点,编码过程为:
首先插入V码,然后插入B码,最后是单双极性变换。
但是如果按照编码规则的顺序设计.应该首先进行单双极性变换,再完成插V和插B,在此过程中还需根据编码规则变换当前B码之后的非零码的极性,这就需要大量的寄存器来保存当前数据的状态,导致电路非常复杂,占用大量的FPGA内部逻辑单元,实现难度大,且成本高。
因此不用这种设计方法。
HDB3编码过程示意图如图2.1所示。
图2.1HDB3编码过程示意图
2.1插入V码过程
插入V码过程是对消息代码里的连零串进行检测,一旦出现4个连零串的时候,就把第4个“O”替换成破坏符V,其他情况下消息代码原样输出。
输入的代码经插V操作后全部转换成双相码,即“0”变换成“00”,“1”变换成“01”,V变换成“ll”。
图2.2是插入V码过程的流程,代码输入到插V模块后,如果输入是“l”,则输出为“01”,同时计数器清零;如果输入是“O”.则对输入“O”的个数进行计数,当计数器计数到第4个“O”时,输出“11”作为V码,同时计数器要清零用于下一轮检测;计数器未满4个“0”,则输出“00”。
图2.2插入“V”码过程流图
2.2插入B码过程
当相邻两个V码之间有偶数个非“0”码时.则把后一个V码之前的第1个非“0”码后面的“0”码变换成B码。
该模块设计的难点在于插入B码的过程中涉及一个由现在事件的状态控制过去事件状态的问题,按照实时信号处理的理论,这是无法实现的,这里使用两组4位移位寄存器。
采用4位移位寄存器是根据HDB3编码规则的特点确定,经插V后,连零串中的第4个“0”变成V码,代码中连零个数最多是3个,而插入B码操作是把在后一个V码之前的第1个非零码之后的“O”变换成B码,这个长度不超过3个“0”,因此只需4位寄存器就可通过判断现在的输入状态来决定是否应插入B码。
图2.3是判断是否插入B码的流程.2组4位移位寄存器在时钟的作用下逐位将数据移出,在移位的同时还需对寄存器的最低位进行操作,即判断是否需插入B码。
这部分功能的实现需设置一个检测当前V码状态的标志位firstv。
图2.3判决是否插入“B”码流程图
2.3单双极性变换过程
分析HDB3码的编码规则,发现V码的极性是正负交替的,余下的“1”和B码的极性也是正负交替的,且V码的极性与V码之前的非零码极性一致。
因此可以将所有的“1”和B码取出来做正负交替变换,而V码的极性则根据“V码的极性与V码之前的非零码极性一致”这一特点进行正负交替变换。
具体操作是设置一个标志位flag,通过检测判断标志位的状态来确定是否进行单双极性变换,标志位要交替变换以实现“l”和“B”正负交