光纤通信系统5B6B码译码的设计与仿真Word.docx
《光纤通信系统5B6B码译码的设计与仿真Word.docx》由会员分享,可在线阅读,更多相关《光纤通信系统5B6B码译码的设计与仿真Word.docx(22页珍藏版)》请在冰豆网上搜索。
![光纤通信系统5B6B码译码的设计与仿真Word.docx](https://file1.bdocx.com/fileroot1/2023-1/21/37f35440-e41d-4b04-af99-c5ee0ae107f9/37f35440-e41d-4b04-af99-c5ee0ae107f91.gif)
光纤通信系统5B6B码译码的设计与仿真Word
光纤通信系统5B6B码译码的设计与仿真
中文摘要
在电力系统通信中,数字光纤通信由于其本身的优点得到越来越广泛的应用。
在数字光纤通信系统中,从电端机传输过来的电信号均要结合数字光纤通信传输的特点经过线路码型的转换。
通过线路码型的转变平衡数字码流中的“0”和“1”码字,从而避免码流中出现长“0”或者长“1”的现象。
在数字光纤通信系统中比较常用的线路码型就是mBnB码型,mBnB线路码型的最大优点是最大相同码元连码数少、定时信息丰富、且有简单成熟的误码监测与码组同步的方法。
5B6B码编码是将自己编写的数据按照一定的规律,编成6B码流后输出;而译码则是将传输到接收机的6B码流,翻译成5B码流后输出。
5B6B码译码的过程是编码的逆过程,本文主要涉及到的是译码的过程,译码部分由序列产生模块、缓冲模块以及译码模块构成。
这篇论文重要介绍了光纤通信系统的优缺点,组成以及发展趋势;常见的线路码型;Quartus2软件的介绍;5B6B码的译码原理和设计,最后对程序以及电路译码的仿真,最终得到正确的结果。
关键词:
5B6B码译码;FPGA;VHDL语言;Quartus2软件;波形仿真
5B6BCodeDecodingofOpticalFiberCommunicationSystemDesignandSimulation
ABSTRACT
Inpowersystemcommunication,digitalopticalfibercommunicationbecauseofitsadvantagestogetitselfmoreandmorewidelyused.Inthedigitalopticalfibercommunicationsystem,fromtheelectricmachinetransmissiontocomeovertotheelectricalsignalstocombinethecharacteristicsofthedigitalopticalfibercommunicationtransmissionviathelinetypeconversion.Throughbalancethedigitalstreamlinetype"0"and"1"inthecodeword,thusavoidingstreamin"0"or"1"long.ArefrequentlyusedinthedigitalopticalfibercommunicationsysteminthelinetypeismBnBtype,thebiggestadvantageofthistypeisthesamebiggestmBnBlineelementevenlessyards,timing,abundantinformation,simpleandmaturemethodoferrormonitoringandsynchronizationcodegroup.
5B6Bcodecodingistowriteyourowndata,accordingtocertainrulesintoafter6Bstreamoutput;Thedecodingis6Bstreamwillbetransmittedtothereceiver,aftertranslatedinto5Bstreamoutput.5B6Bcodedecodingistheprocessoftheinverseprocessofcoding,thispapermainlyinvolvesistheprocessofdecoding,decodingpartproducedbysequencemoduleandbuffermoduleanddecodingmodule.Thispapertheadvantagesanddisadvantagesofimportantopticalfibercommunicationsystemareintroduced,thecompositionanddevelopmenttrend;Commonlinetype;TheintroductionofQuartus2software;5
B6Bcodedecodingprincipleanddesign,finally,thedecodingprocessandcircuitsimulation,finallygetthecorrectresult.
KEYWORD:
5B6Bdecoding;FPGA;VHDLlanguage;Quartus2software;Waveformsimulation
第一章光纤通信系统
高锟博士在1966年提出了光纤通信,此后光纤通信的迅速发展远远超出了人们的想象,并且以其独特的优点掀起了通信领域的革命性改革。
无论人们是在玩电脑,打电话还是在购物,我们无时无刻都在使用着光纤通信技术,即我们每次通过电子设备进行的远距离通信,就是在使用光纤通信技术。
从光纤通信系统的链路上来看,光纤是指光发射机与光接收机之间的强大链路,并且它有着强大的运载信息能力,在目前看来,我们对带宽日益增长的需求,除了光纤通信系统以外,再也没有其他的途径可以满足我们这一需求了[1]。
1.1光纤通信的优点与缺点
没有好的光源以及理想的传输煤质这两大因素曾严重地阻碍了光纤通信向实用化的方向发展,在目前看来,这些因素都得到了非常圆满的解决。
1982年后光纤通信的迅速发展促进了光纤产业化应用,因此光纤的需求量呈现了指数规律的增长趋势。
光纤在世界各国的各个领域都得到广泛应用,它也成为了高质量的信息传输的重要手段。
在光纤通信系统中,载波的光波频率要比电波频率高,但是对于传输介质的光纤又比同轴电缆或者波导管的损要低,所以相对于电缆通信来说,光纤通信有以下优点:
Ø抗电磁干扰性能很好
Ø泄漏小,保密性能很好
Ø重量比较轻,体积也很小
Ø频带很宽,传输的容量比较大
Ø节约材料,有利于资源合理利用
Ø损耗小,误码率小,中继距离长,
事情都是有利有弊的,光纤通信有很多的优点,但是也存在着一些弊端,如下:
Ø抗拉强度比较低。
在抗拉强度方面,光纤的抗拉强度要远大于钢的。
光纤在的生产过程的中,表面会多多少少存在一些微型的裂痕,为了保护光纤可以增加涂覆层,或者增加一些特殊的抗拉元件。
Ø光纤连接比较困难。
在光纤的连接上,必须使两根光纤的纤芯特别细,并且要加上石英,因为石英的熔点很高,这样才能使得光纤的连接损耗小,所以总体来说,光纤的连接还是很困难的
[2]。
1.2光纤通信系统的组成
光纤通信系统的组成有光发射机、光纤和光接收机,每个部分如下图所示。
图1光纤通信系统的组成
光发射机主要由光源、光耦合器以及光调制器组成。
光发射机主要负责将电信号转换为光载波并且还要通过光耦合器注入到光纤信道中。
光源采用与光纤通信信道兼容的发光管或者是激光器。
光调制器主要用来完成由光载波到光信号的调制。
光耦合器利用微透镜,以它最大的效率将光信号注入到光纤信道中。
光纤起着光信号通道的作用。
光纤将光信号没有变化的从光发射机传送到光接收机中去。
光纤的衰减系数决定了长途光纤通信系统的中继器或者放大器的间距。
光纤通信系统的传输距离和传输速率主要受光纤的色散系数来限制。
光接收机主要由光解调器、光检测器以及光耦合器组成。
光接收机主要负责将光纤输出端接受到的光信号变换成原来的电信号。
光解调器主要是利用直接光强度调制技术,通过判决电路来辨别光检测器所产生的电信号幅值是比特“0”或者是“1”,来完成对光的解调。
光检测器主要是用来实现光电转换的。
光耦合器则是将接收到的光信号集合至光检测器[3]。
1.3光纤通信的发展趋势
随着现代科技技术的进步,电信的改革及电信市场对外的全方面开放,再一次地呈现了光纤通信蓬勃发展的新新局面,以下介绍的就是光纤通信领域中的几个主要的发展趋势:
1、向超高速系统的方向发展
网络容量的需求以及提高传输速率一直以来都是在过去20多年的电信发展史上的一对非常主要的矛盾。
每当传输速率提高时,传输每比特的成本就会下降,所以说高比特率的经济效益会按照一定的指数规律来增长。
2、向超大容量WDM系统的演进
波分复用的好处是:
Ø光纤的带宽资源,可以扩大传输的容量;
Ø长距离传输时可以通过节约光纤来降低成本;
Ø引进宽带新业务,与电调制方式以及信号速率无关;
3、实现了光联网
波分复用系统的基础是点到点的通信,所以在一定程度上来说,其灵活性以及它的可靠性还不够完善。
光联网的好处有:
Ø实现了网络的透明性;
Ø实现了网络快速恢复;
Ø实现了网络的扩展性;
Ø实现了超大容量的光网络;
Ø实现了网络的可重塑性,以提高灵活性;
4、新型光纤随着IP业务量的增长而增长
传统的G.652单模光纤不能够适应长距离超高速传送网络的发展需要了,因此需要开发出新型的光纤。
而在此时电信网正向下一代可持续发展的方向努力发展着,新一代的非零色散光纤的设计思路是在1550窗口工作波长区具有合适的较低色散,可以不需要色散的补偿来支持长距离的传输[4]。
第二章光纤通信中的线路编码
光纤通信系统中,从输出端输出来的都是双极性码。
然而光源是不可以发射出负的光脉冲的,所以码型的变换在这种情况下是非常重要的。
在光纤通信系统中,“无光脉冲”表示“0”码,“有光脉冲”表示“1”码,它采用的都是二电平码,这种码也存在着以下问题:
Ø在随机的码流中,极易出现长串连码,即长连“0”码和长连“1”码,这样会带来位同步信息的丢失,会造成定时误差。
Ø不能进行在线的误码检测,而且也适合于长距离通信。
因此在光纤通信系统中线路码型的传输透明性很重要的,具体的要求如下:
Ø为了减小随机波动,必须限制信号的带宽,减小高低频分量,以此来提高灵敏度。
Ø给光接收机足够的定时信息,保证定时信息足够丰富。
Ø合理地减小冗余度。
线路编码是数字光发射机中的重要组成部分,其主要是将电端机输出的代码按照光纤通信系统的基本要求来进行码型的相关变换。
在光纤通信系统中,常用的线路码型有:
扰码,mBnB码以及插入码[5]。
2.1线路扰码
线路扰码就是对输入的二进制序列进行转换,这样这个二进制序列就会接近随机的序列。
然后再接收端再将扰码解扰还原,因此保证了信息传输的透明度。
在系统光发射机的调制器前面可以增加一个扰码器,这样做的目的是保证传输的透明性,以此来将原始的二进制码序列进行一些简单的变换,让其基本上接近于随机序列。
如:
扰码前序列:
1100000011000
扰码后序列:
1101110110011
m序列可以用来实现扰码器,在发射端产生m序列,然后将m序列与信息序列做模二加的运算,这样输出来的就是经过加扰的随机序列了。
解扰器在使用相同的扰码序列与接收到的序列做模二加运算,用来恢复原始的信息。
扰码也有它的一些缺点:
不能控制连续码的出现;不能在线误码检测;不能够解决随机波动。
2.2mBnB码
该码型又称为块码、分组码以及字母平衡型码等等。
在一般情况下都是n>m。
将输入的二进制码每mB分成一组作为一个码字,将输入的码字在相同的时间间隔内,根据一定的编码规则,将其变换成nB一组的新码字,最后以不归零或归零格式传输这些新码流,此新码就是mBmB码。
m,n都为正整数,且多数用n=m+1这种形式,经过一些变换,线路码速率就会相比原二进制码率提高了n/m倍。
常见的有1B2B,2B3B,3B4B,4B5B,5B6B码,8B9B等,其中5B6B码在高次群光纤通信系统中用得比较频繁。
mBnB码的编码原理以最简单的1B2B码(曼彻斯特码)即将原码中的“0”码变换为“01”码,将“1”码变成“10”码[6]。
2.3插入码
插入码是将原始输入的二进制码按照每m比特一组进行分组操作,然后在每组码的后面插入一个码字,组成一组新的线路码型长度为m+1,插入码根据其插入码字的规律不同可以分为以下几种码型:
mB1C码、mB1H码以及mB1P码[7]。
第三章Quartus2软件的简单介绍
Quartus2是美国Altera公司研制的第四代有关PLD的开发软件,这款软件是适合单芯片可编程系统(SOPC)的最全面的设计环境。
Quartus2软件所支持的器件有很多,如max3000A、max7000B、max7000S、max7000AE、max2、mercury、cyclone、cyclone2、stratix2、stratixGX、stratix、flex6000、flex10K、flex10KA以及flex0KE等。
Quartus2软件包的编程器可以提供功能强大的设计处理,因为它是整个系统的主要部分,设计者可以通过增加一定的约束条件来提高芯片的利用率。
Quautus2软件有它自带的仿真器与综合器,这些可以用来完成从设计输入到硬件配置的整个设计过程。
它可以支持altera的ip核,并且含有一些宏功能模块库[8]。
Quartus2软件的项目设计过程可以划分为下面几个步骤:
设计流程如下图所示
输入电路
创建新工程
项目编译
项目仿真
编程下载
图2项目设计过程的步骤
3.1创建工程文件
在Quartus2软件上创建一个新的工程。
所谓工程就是你的设计的描述、设置、数据以及输出的整个集合,此软件会将这些存储在不同类型文件集中放在同一个文件夹下,所以要创建一个工程。
创建一个新的工程步骤如下:
Ø打开Quartus2软件,点击“File”,选择“NewProjectWizard”;
Ø在新弹出的窗口中分别键入新工程的工作路径、项目名称以及实体名称,且项目名称和实体名称要一致;
Ø然后用鼠标点击下方的“finish”按钮即可完成对新工程的创建。
3.2设计输入
在设计输入之前还有重要的一步是电路的设计部分,在整个系统的设计之前首先必须进行的是方案的论证、系统的设计以及FPGA芯片的选择等等。
一般来说采用的设计方案都是自顶向下的,即将整个系统划分为若干个小模块,然后再每个模块划分为下一个层次的小模块,直到直接可以调用元件库里的元件。
设计输入是将所设计的电路按照开发系统要求的形式表达出来的过程
[9]。
设计输入有如下三种方式:
Ø原理图输入方式。
这种方式非常适合于对各部分电路都很熟悉的设计。
Ø硬件描述语言输入方式。
硬件描述语言就是用文本方式描述出来的设计,硬件描述语言有ABEL、AHDL、VHDL、verilog等。
Ø波形输入方式。
一般常用的设计输入方式是和,我的本次设计采用的是原理图输入的方式。
3.3设计项目编译
打开“Processing”菜单,点击“StartCompilation”即可执行项目的编译功能,编译器将运行预先指定的各个模块的功能。
编译成功后,编译器将会产生相应的输出文件。
如果有错误出现,编译器将停止编译,并会相应的给出错误的信息栏,用鼠标点击“error”的信息条,一般下可以指出错误的地方,以便修改,直至所有的错误均消除后,系统就会弹出编译成功的窗口[10]。
3.4项目的仿真
仿真检查综合结果是否与原先要设计的项目功能是否一致。
项目的编译成功,需要做的就是对每个模块的功能进行仿真测试,来查看设计的结果是否满足原先设计的基本要求。
仿真分为功能仿真、时序仿真以及波形仿真。
功能仿真仅仅测试设计的逻辑功能;而时序仿真首先要测试逻辑的功能,而且还要测试有关设计的一些目标器件;波形仿真是在波形编辑器中将设计的逻辑功能用波形图的形式显示,通过查看波形图来检查设计的逻辑功能是否符合设计的要求。
波形仿真的步骤包括新建波形文件、设置波形仿真器、插入仿真节点、编辑输入波形、运行仿真器、检查输出波形是否符合设计要求等。
3.5编程下载
编程下载之前必须把下载线将计算机与硬件连接好,然后打开电源:
Ø打开编程窗口和配置文件。
选择Tool→Promgrammer,弹出编程窗口。
注意核对一下下载路径与文件名,如果此文件没有出现或者出错,需要手动来选择配置文件。
最后单击Start按钮,进入下载操作。
Ø设置编程器。
器件编程就是编译和波形仿真正确后,Quartus2将生成的如.pof和.sof等编程数据文件通过下载电缆载到预先选择的FPGA芯片中。
下载成功后,该FPGA芯片就会执行设计文件描述的功能。
器件编程的步骤可以分为:
编程硬件连接、编程文件的产生、运行编程操作。
器件编程操作成功后,查看FPGA功能与设计文件描述的功能是否一致即可。
第四章5B6B码译码
4.15B6B码译码原理
5B6B码译码是编码过程的逆过程,也就是将发送端送来的已变换的6B信号码流,按照每6比特分为一组,然后读出5B码流。
5B6B码译码简单的讲就是将6B的数据怎样变成是5B的数据。
5B6B码译码的实现的方法主要有两种:
一种是用集成电路来实现,另一种是用码表类实现。
我用的是第二种方法实现的。
5B6B码线路码型编码是将二进制数据流每5bit划分为—个字组,然后在相同时间段内按一个确定的规律编码为6bit码组代替原5bit码组输出。
原5bit二进制码组有25共32种不同组合,而6bit二进制码组有26共64种不同组合。
所以不可能是一一对应的映射。
为了使“0”码“1”码出现的机会相同,为了减小直流漂移和避免出现长连“0”和长连“1”的码组,必须要进行码组的变换。
为解决这个问题,必须要进行6B的码表设计。
而其它的码组作为不允许使用的码组和禁用码组,如6B码流“011000000110”、“111111”、“000000”前者是由于使用了不允许使用的码组而造成的;后者是由于使用了禁止码组。
有了码表,就可以按照码表进行设计了。
6bit码组的64种组合中码组数字和WDS值分布情况是:
WDS=0的码组有C63=20个WDS=±2的码组有C62+C64=30个
WDS=±4的码组有C61+C65=12个WDS=±6的码组有C60+C66=2个
选择6bit码组的原则是使线路码型的功率谱密度中无直流分量,最大相同码元连码和小,定时信息丰富,编码器、译码器和判决电路简单且造价低廉等等。
因为根据线路传输要求,应尽量选择游程差值小的码组[11]。
据此原则选择6bit码组的方法为:
d=±4、d=±6的6bit码组舍去(共14种),作为禁止码组(或称“禁字”)处理。
d=0、d=±2的六位码组都有取舍,并且取两种编码模式:
一种模式是d=0、+2,称模式
;另一种模式是d=0、-2,称模式
。
当采用模式
编码时,遇到d=+2的码组后,后面编码就自动转换到模式
,在模式
编码中遇到d=-2的码组时编码又自动转到模式I。
码表见附表。
码表设计是有一定的原则的:
Ø“0”码和“1”码出现的机会相同;
Ø减少相同符号连续数的数量;
Ø选取D值较小的码组。
mB码字变换到nB码字都是按照预先设定的码表进行的,码表的不同将会产生不同的线路码。
它的线路码速只比原始码速增加百分之二十,但是变换以及逆变换电路并不复杂。
5B6B码线路码型也有一定的缺点,主要是:
有误码扩散,即当传输线路码中发生一个误码后,在译码变换为原信源码时会产生几个误码,使平均误码劣化,其可视为对接收灵敏度造成一定的功率损失[12]。
4.25B6B码译码的设计
5B6B码译码就是5B6B编码过程的逆过程,它包含了序列产生模块、缓存电路和译码电路模块,与编码相似。
根据FPGA系统开发的设计步骤,把5B6B码的译码电路分成若干模块。
由FPGA的主要设计方法。
自顶向下的设计原则,可以将5B6B码的译码电路的功能行为用原理框图表示出来。
进而可以设计出各功能模块。
6B码组
5B码组
译码的输出
译码的输入
译码原理图如下所示:
缓存电路
译码电路
序列产生模块
本地时钟输入
时钟变频器
图3译码原理图
译码器的工作原理:
同本地脉冲的驱动下,通过时钟变频器产生5B码和6B码所需要的时钟脉冲,输入的码流通过序列产生模块和缓存电路模块产生6B码组,再通过译码电路,译码成相应的5B码组,这样就可以完成了5B6B码码组的还原,输出即可[13]。
该模块的功能是将序列产生模块产生的序列进行译码。
译码的方法是通过调用码表来实现的。
即把码表当成是一种映射条件,输入几位得就调用几次。
如输入24位的就需要调用4次。
4.3译码电路的电路模块划分
由上面的提到的译码电路的原理框图,在设计时,结合实际和VHDL语言的描述特性,可把译码电路划分为以下模块。
它们分别是:
序列产生模块、缓冲模块、译码模块和顶层模块。
以下是这四个模块的设计思路以及相关的编写程序。
4.3.1序列产生模块
序列产生模块是由按键cout控制的,当cout为0时清零,cout为2时输出序列一个24位的序列,因为在设计时采用的是循环技术,它可以避免信号的重叠和覆盖,所以可以产生所需要的目标序列:
6B序列。
cout按键的值可以控制输出的序列值,数据经过编码过后将变成是六位的序列。
在Quartus2软件下5B6B码译码将采用由顶到下的设计方法,译码是比较复杂,模式的转换容易出错,所以我们一定要注意模式的转换,然后还有禁码的简单处理。
禁码的处理可以见后面一节。
4.3.2译码模块
译码模块的作用主要是负责输入的并行码组的译码。
依然采用本地时钟作为其工作时钟。
这个译码模块是整个5B6B码译码设计的核心部分。
在整个译码过程中,当然还要解决很多的问题,主要要解决的问题有:
监视和禁码处理问题,时序同步问题等[14]。
在6B码中,在本设计中我选择的是其中的46个码组,在码表的每种模式下都有一些禁码,所谓禁码就是出现而没有采用的码组。
根据光纤通信实际情况来看,本设计用“重传”的方法来解决这一问题或者根据禁字还原表来确定其信源码。
译码过程可以采用CASE语句来表达。
在线路传输时,注入一定数量的冗余码,冗余码是按照一定的规律计算出来的。
在接收端,在对6B数据进行计算,比较二次计算得来的冗余码,看是否相同。
如果相同,则传输无错误;不同则传输有错误。
译码过程用VHDL语言描述:
如
caseAis
when"011000"=>Q<="00001";
when"010111"=>Q<="00000";
when"100111"=>Q<="00001";
4.45B6B码译码的VHDL程序设计
之前提到的模块划分,是为了进一步了解5B6B码译码模块设计的过程。
在具体的实际设计时,一个大模块中可以在划分为若干小模块。
为了使代码变得简单点,把串并转换和并串转换可以合并为一个模块,可根据实际需要再设计模块。
4.4.1序列产生模块的设计与仿真
该模块的主要功能是产生一个24位的序列。
当按键cout=0时,make_6b模块清零,输出是24位的全零;当cout=1、2、3、4、5、6、9、10时,分别输出一份是24位的序列;当cout=7时输出高阻态值;当cout=8时,输出禁码“111111*********111111111”。
编译成功,经过封装后