光纤通信中的线路编码毕业论文.doc_第1页
光纤通信中的线路编码毕业论文.doc_第2页
光纤通信中的线路编码毕业论文.doc_第3页
光纤通信中的线路编码毕业论文.doc_第4页
光纤通信中的线路编码毕业论文.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

光纤通信线路编/译码器的设计光纤通信中的线路编码毕业论文 线路编码概述数字通信系统对路码的一般要求 线路码型有多种,在选择线路码时不仅要考虑光纤的传输特性,还要考虑光电器件的特性。一般来说,由于光电器件都有一定的非线性,因此采用脉冲的“有” “无”来表示“1”和“0”要方便的多。但是简单的二进制信号有三种实际问题要解决,否则也不能达到良好的效果。第一,不能有长连“0”或长连“1”出现。因为长连“0”,“1”会使定时信息消失,从而使再生中继器和终端接收机的定时提取产生困难。第二,简单的二进制码中还有直流成分,而由于“0”,“1”码出现个数的随机变化,使得直流成分的大小随机的发生变化。光接收机中采用的是交流耦合,直流成分的变化会引起信号基线浮动,这会给判决再生带来困难。第三,简单的二进制信号在业务状态下不能接收监测线路误码率。为此,在光纤传输之前,需将简单的二进制信号变换成适合光纤传输系统的光线路码型。 光纤通信系统中所采用的线路码种类很多。常用的有两大类,一类是mBnB码,即分组码;另一类是插入比特码。 mBnB码mBnB码是一种提高信号传输速率的编码方法。它将m个二进制输入码变换为n个二进制的线路码,使码率提高n/m倍,输入信号以m个码字为一个字,而线路码则以m个码为一个字,mBnB码有两种类型:非均等mBnB码(nm),其码组内“0”和“1”码的个数不一定相等;均等mBnB(n=m+2)其码组内的“0”和“1”个数相等。由于这些码型是按字长进行编译码的,所以不同字长的码型将有不同的特点。也就是说,这种线路码型存在许多种形式,例如,1B2B码,2B3B码,3B4B码和5B6B码等等。插入码插入比特码是把插入的原码流以m比特为一组,在它的末位之后插入一个比特组成的线路码。根据插入码的用途可以分为以下三种1。1) mB1P码 末位之后插入P码,P码称为奇偶校正码,它把m位奇数原码校正为偶数码。当m位码内“1”的个数为奇数时,插入P码“1”,反之插入“0”,以保持m+1位码内“1”的个数为偶数。当然也可以采取保持m+1位码内“1”的个数为奇数的方式。保持m+1位码内“1”的个数为偶数的典型例子如8B1P码: 。1 1 0 1 1 0 0 1 1(P) | 0 0 0 1 0 0 1 0 0(P) | 1 1 1 1 0 1 1 0 0(P) | 。2) mB1C码 末位之后插入C码,C码称为反极性码或称为补码。即当m位码为“1”则补码为“0”,反之则为“1”。例如8B1C码: 。1 1 0 1 1 0 0 1 0(C) | 0 0 0 1 0 0 1 0 1(C) | 1 1 1 1 0 1 1 0 1(C) | 。 3) mB1H码 末位之后插入H码,H码称混合码。H码具有多种功能,它实际上是P码,C码和用以作监控,公务,区间通信的插入码混合组成。其典型例子如8B1H码: 。1 1 0 1 1 0 0 1(H ) | 0 0 0 1 0 0 1 0(H) | 1 1 1 1 0 1 1 0(H) | 。究竟采用那种码型,应根据码型的特点,根据设计要求以及对所需设备结构的复杂程度以及对接收机灵敏度的影响情况综合考虑,本次设计选用的是3B4B码。 3B4B码编译码原理 3B4B码是在本次毕业设计中需要重点了解和掌握的一种线路码型,并且根据3B4B的编码特点和编码原理,设计出符合毕业设计中各项指标要求的编译码器。 在3B4B的线路码型中,输入的原始码流3B码,共有8个码字,变换为4B码时,共有16个码字,见表2.1。为保证信息的完整传输,必须从4B码的 16个码字中挑选8个码字来代替3B码。设计者应该根据最佳线路码特性的原则来选择码表。例如:在3B码中有2个“0”,变为4B码时补1个“1”;在3B码中有2个“1”,变为4B码时补一个“0”。而000用0001和1110交替使用;111用0111和1000交替使用。同时,规定一些禁止使用的码字,称为禁字,例如0000和1111。表 2. 1 3B和4B的码字3B4B0000000 10000010001 10010100010 10100110011 10111000100 11001010101 11011100110 11101110111 1111作为普遍规则,引入“码字数字和”(WDS)来描述码字的均匀性,并以WDS的最佳选择来保证线路码的传输特性。所谓“码字数字和”,是在nB码的码字中,用“1”代表“0”码,用“1”代表“1”码,整个码字的代数和即为WDS。如果整个码字“1”码的数目多于“0”码,则WDS为正;如果“0”码的数目多于“1”码,则WDS为负;如果“0”码和“1”码的数目相等,则WDS为0。例如:对于0111,WDS=2;对于0001,WDS2;对于0011,WDS0。 nB码的选择原则是:尽可能选择|WDS|最小的码字,禁止使用|WDS|最大的码字。在3B4B码中,应选择WDS=0和WDS=/2的码字,禁止使用WDS=+/4的码字。表2.2示出根据这个规则编制的一种3B4B码表,表中正组和负组交替使用。表 2. 2 一种3B4B码表信号码(3B)线路码(4B)模式1(正组)模式2(负组)码字WDS码字WDS0000101120100210011100011000201001010010103011011000110041001001010010510110100101006110001100011071111101200102编译码器硬件设计本次设计的主要内容是设计3B4B编/译码器,硬件主要由外围集成电路和PIC单片机两部分组成。外围电路包括主振荡器,电源电路,数字分频电路以及串/并和并/串转换电路;而单片机是作为转换运算和电路控制的中心。内部单片机设计则需要掌握其接口电路和程序的编写,这章先介绍它的接口电路。 总体设计现阶段的编译码电路一般有两种:一种是组合逻辑电路,就是把整个编译码器都集中在一块芯片上,设计成一个大规模专用集成块,国外设备大多采用这种方法;另一种是把设计好的码表全部存贮到一块只读存储器(PROM)内,由单片机执行程序而完成编译码。国内设备一般采用这种方法。 3B4B编码器原理及框图如图4.1所示,图中的串并变换和并串变换是移位寄存器。首先将设计好的码表存入编码逻辑(PROM)内,待变换的信号码输入串并变换器后,在信号码时钟Cp1的作用下,数字信号在串并变换内移位,变为3比特一组的码,b1,b2,b3,并行输出作为编码逻辑(PROM)的地址码,从而完成将原始码流每3比特分成一组的分组过程。编码逻辑(PROM)是集成元件构成的逻辑网,根据需要及功能,在本次毕业设计中,采用的是PIC系列的单片机。它的功能是跟据码表里的逻辑关系把信号码组变换成线路码组。在地址码的作用下,编码逻辑(PROM)根据存储的码表输出与地址对应的并行4B码,进入并串变换器,在线路码时钟Cp2的作用下,移位而输出已变换的4B码流,完成编码过程。 信号码时钟串并变换信号输入3B码流b 1CP1b 2b 1单片机编码逻辑B 4B 3B 2B 1并串变换信号输出4B码流CP2线路码时钟图 4.1 3B4B码编码器框图4.1.1 3B4B译码器原理及框图如图4.2所示,译码过程和编码过程相反,译码器与编码器基本相同。译码时,把送来的已变换4B信号码流,每4比特并联为一组,作为译码逻辑(PROM)地址,然后读出3B码,再经过并串变换还原为原来的信号码流。并串变换信号输出3B码流B 1CP1B 2B 1单片机译码逻辑b 4b 3b 2b 1串并变换信号输入4B码流CP2信号码时钟线路码时钟图 4.2 3B4B码译码器框图4.2 振荡分频电路4.2.1 主振荡器本次毕业设计的主要目的是设计出能够长时间稳定工作的编译码器,而主振荡器的作用则是为串并输入和并串输出提供了最基本的时钟。为了达到长时间稳定工作的目的,这个时钟不但要求稳定而且要求十分精确,否则会造成串并输入与并串输出之间的频率不同步,这样就会出现码流的阻塞从而导致大量的误码。 因此为了减少误码,提高系统长时间工作的稳定性,我们选用频率稳定度极高的石英晶体振荡器作为本次毕业设计中的主振荡器。按照本次毕业设计的要求的需要,以及分频电路的特点和简易性,所选用的石英晶体振荡器的频率为1.920MHz。 具体设计电路图如图4.3所示:图 4.3 主振荡器电路图此晶体振荡电路由非门7404和晶体组成。电路中没有使用电容。电阻R3,R4,R5,R6将两个非门偏置在线性范围内,并由晶体提供正反馈回路。其中,R1=220,R2=560,R3=220,R4=1.8K。4.2.2 分频电路一 分频思想分频电路是此次毕业设计中的外围电路的一部分,也是很主要的部分。由石英晶体振荡器所产生的时钟脉冲经分频器分频后,分别进入串并变换电路和并串变换电路。由于是3B4B编译码器,而且设计指标要求是:输入码速9.6Kb/s,输出码速12.8Kb/s,因此可以确定3B码和4B码两个部分的频率之比为3:4,且具体数值为:3B码部分为9.6KHz,4B码部分为12.8KHz。这两个频率都是由主振荡器的时钟1920KHz分频而来,且分频系数分别为200和150。 考虑到系统的稳定性和精确性,如果用数字电路一次性对原始脉冲进行分频系数为200和150的分频,在如此大的分频系数之下,对元件及电路的精度要求非常高,而且容易受环境变换的影响,并不利于此设计的长期稳定的运行。因此采用二段式分频电路的思想,即先对1920KHz的原始时钟10分频,然后再分别对已得的192KHz时钟进行20分频和15分频,从而也可以得到我们所需要的9.6KHz和12.8KHz的频率。这样就可以减少误差,并在保持结果相同的情况下,相对的降低元件和环境的要求。 二 分频器件选型 根据设计的需要及要求,决定选用74161作为分频器件。其引脚图如图4.4所示:图 4.4 74161引脚图74161是4位二进制同步加计数器,其各引脚具体功能见表4.1所示:表 4.1 74161各引脚功能引脚符号引脚号名称LOAD9预置数控制端(低电平)A B C D3 4 5 6并行数据输入端ENP7“并行计数允许”输入端ENT10“串行计数允许”输入端CLK2时钟(高电平跳变有效)RCO15进位输出端QA QB QC QD14 13 12 11并行输出端CLR1异步清零端GND8接地端VCC16电源输入端表4.2是74161的功能表,由表可知74161具有以下功能:1. 异步清零 当CLR=0时,不管其他输入端的状态如何(包括时钟CLK),计数器输出将被直接置零,称为异步清零。2. 同步并行预置数 在CLR=1的条件下,当LOAD=0,且有时钟脉冲CP的上升沿作用时,A,B,C,D输入端的数据将分别被QA,QB,QC,QD所接收。由于这个置数操作要与CP上升沿同步,且A,B,C,D的数据同时置入计数器,所以称为同步并行预置。3. 保持 在CLR=CLK=1的条件下,当ENPENT=0,即两个计数使能端中有0时,不管有无CP脉冲作用,计数器都将保持原有状态不变(停止计数)。需要说明的是,当ENP=0,ENT=1,进位输出RCO也保持不变;而当ENT=0时,不管ENP状态如何,进位输出RCO=0。4. 计数 当CLR=CLK=ENT=ENP=1时,74161处于计数状态。表 4.2 74161功能表清零CLR预置LOAD使能ENP ENT时钟CLK预置数据输入A B C D输出QA QB QC QDL L L L LHL 上升沿A B C DA B C DHHL 保 持HH L 保 持HHH H上升沿 计 数三 分频电路设计1. 10分频器设计在了解了74161的工作原理后,用74161来设计一个10分频器是很容易的,74161实际上是个一个集成计数器,我们正是利用其计数功能来进行分频。即对输入脉冲计数10次后,再由74161将脉冲输出,此时由74161输出的脉冲频率即为原来的十分之一,从而达到了我们希望对输入脉冲进行10分频的目的。将原晶体振荡电路产生的原始脉冲进行10分频后,就可以得到第一段的时钟脉冲,其频率为我们所需要的192KHz。具体电路图如图4.5所示。图 4.5 10分频电路在分频电路中我们采用的是反馈置数法,ABCD四个预置端均接低电平,从而使得A=B=C=D=0,此时的预置数为 0000。当计数器计满10个脉冲后,计数器的并行输出端的数值为 1001,从而使QA=QD=1,此时与门打开,经过非门后低电平触发预置数控制端LOAD,在预置数控制端触发后,就会将预置数重新置入使计数器,使计数器由0000重新开始计数,也就是计数器在经过10个状态后重新装载初始状态,从而达到10分频的目的。图4.6是74161的主循环状态图。1001000000010010001101000101011010000111 4.6 10分频主循环状态图2. 15分频器设计由于74161是拥有四个并行数据输入端和四个数据输出端,是一个四位的二进制计数器,按照上述的分频思想,单块的74161可以进行016间的任意分频,因此除了上述的10分频器外,15分频器也可由一块74161来完成。只是将并行输出端进行重新选择,以适合我们所需的15分频。根据输出端的数量不同,二输入与门也相应的换成三输入与门。经过第二段的分频电路,我们将第一段得到的192KHz的频率再次分频,从而得到4B码流转换所需要的脉冲频率,即12.8KHz。其具体电路如图4.7所示。图 4.7 15分频电路此15分频器的设计仍然采用的是反馈置数法来使74161完成15分频的工作。ABCD四个置数端仍然接低电平,即置数值为0000,由于要求15分频,因此QAQBQCQD的输出端应为1110才能出现15个状态。一旦输出端达到状态1110,经过三输入与门7411产生高电平经非门7404后,低电平触发预置数控制端LOAD,74161重新装载初状态0000,开始新的一轮计数,而15分频后的脉冲则由与门输出,从而达到了15分频的目的。图4.8为74161的主循环图。 11101101011111001000011000000101 图 4.8 15分频主循环状态图3. 20分频器设计由于74161只是一个4位的二进制计数器,因此其计数的最大值为1111,也即是最多记录16个状态即00001111,如果计数值的范围超过了16,就需要多块74161串连计数来满足要求。为了得到3B码流转换时需要的9.6KHz的频率,我们必须将第一段分频后得到的192KHz再次20分频。这就超过了单块74161的计数范围,因此我们选用2块74161串连来构成一个20分频的计数式分频器。其具体电路图如图4.97所示。图 4.9 20分频电路鉴于74161的最大计数值为16,因此采用两块74161串连,并且采用的是并行进位的方式,即两块74161用的是同一个CP脉冲,但由低位块的输出端来控制高位块的计数使能端的方式。也就是说两块74161同时接收CP脉冲,但由于高位块的74161的计数使能端ENP和ENT由低位块的输出端所决定,因此高位块只能在地位块的控制下计数。采用这种方法,可将低位块作为个位计数器,而将高位块作为十位计数器。将个位计数器设定为十进制的计数器,其数值表现为00001001,当个位计数器计满10个脉冲的时候,其输出端的数值表现为1001,即QA=QD=1,经与门后高电平使十位计数器计数使能端打开,十位计数器可以计入一个脉冲。同时经非门后低电平触发个位计数器的预置数控制端,将0000重新载入个位计数器,使其重新开始计数。再次计入10个脉冲后,十位计数器才可以再计入一个脉冲,此时十位计数器的输出端的数值表现为0010,即QB=1,经非门后同时进入两块74161的清零端,低电平触发使两块74161同时清零,至此完成了一次20个脉冲的计数。此后循环进行。在计数过程中,同时采用了反馈置数法和反馈清零法,来使74161复位。低位块计数满10后,采用的是反馈置位法使其清零;高位块计数满2后(即整个计数满20),采用的反馈清零法同时使两块74161清零。相应于计数20次后,从十位计数器的QB端输出的脉冲就是经过了20分频的脉冲,从而得到了我们所需要的9.6KHz的频率。4.3 电源电路电源电路的作用是将220V的交流电,变为可以供PIC单片机及其外围电路中各元器件所需要的5V电源。电源电路主要由变压器,整流桥,稳压器和滤波电路组成,各部分的具体作用为:变压器:将220V的工频交流电转变为6.3V的低电压;整流桥:将低频交流电通过桥式整流电路转变为直流电;稳压器:通过采用7805,输出稳定的5V直流电;滤波器:简单的带通滤波电路,进一步稳定电压。电源电路为整个系统提供了电力,使系统可以长时间稳定运行,其具体电路如图4.10所示:图 4.10 电源电路4.4 编码器设计4.4.1 编码器码流输入一 码流输入过程在本设计中,编码器的输入码流是3B码,码速要求是9.6KHz,因此我们必须针对3B码的特点和设计指标的要求设计出相应的编码器输入部分的电路。所谓输入部分电路,实际上就是一个串并转换电路,码流的输入过程也就是一个串行数据转换为并行数据的过程。而PIC单片机所处理的则是3位的并行数据,因此必须设计出一个能够长时间稳定工作的串并变换电路。二 串并变换电路器件选型根据设计的需要,决定选用74194作为串并变换电路的核心器件。其引脚图如图4.11所示:图 4.11 74194引脚图74194是高速通用4位双向移位寄存器。作为一种多功能高速时序建立装置,它可用于串行至串行,左移位,右移位,串行至并行,并行至串行,并行至并行等形式的数据寄存和转换。这里我们用其进行串行至并行的变换。其各引脚具体功能见表4.3所示表 4.3 74194各引脚功能引脚符号引脚号名 称SR2右移串行数据输入端SL7左移串行数据输入端A B C D3 4 5 6并行数据输入端CLK11时钟信号输入端(上升沿有效)CLR1异步清除端(低电平有效)S0 S19 10工作方式控制端QA QB QC QD15 14 13 12并行数据输出端74194有两个工作方式控制端S0,S1,由它们不同的状态组合可以完成4种控制功能:其中清零是指在异步清零端CLR上施加低电平,不论脉冲状态如何,清零后输出端QA,QB,QC,QD将全部被清零;保持是指当异步清零端CLR接高电平后,寄存器处于原来的状态;左移和右移两项是指串行输入,其不同在于串行数据分别从左移输入端SL和右移输入端SR送入寄存器;置数实际上就是指并行数据的输入,即将输入端ABCD所接收的并行数据分别送往输出端QAQBQCQD。具体组合方式见表4.4所示:表4.4 74194简化功能表CLRCLKS1S0功能0清零100保持上升沿01右移上升沿10左移上升沿11置数三 串并变换电路设计1. 电路设计在此次的电路设计中,采用一片74194,3个二输入与门和一个反相器就可以构成一个3位的串行码/并行码变换电路。其中二输入与门在具体电路设计种采用的是四2输入与门,器件型号为7408,使用时取其中三对端口即可;而反相器在具体电路设计中则采用的是六反相器,器件型号为7404,使用时取其中的一对端口即可。 需要变换的原始串入数据来自于B3端口,而给74194提供工作时钟的则是在上一节设计中所产生的9.6KHz的脉冲。电路如图4.12所示 图 4.12 3B码串并转换电路2. 工作过程开始转换前,先通过清零脉冲将74194清零,此时由于QD=0,经反相器后使得S1=0,而S0一直接高电平,即S1S0=11,因此下一个CP脉冲来到时,74194将进行置数操作。脉冲到来时,根据预置数的内容,将011置入QB QC QD中,而将串行输入的第一个数据D0置入QA中。此时QD=1,从而故使得S1S0=01,74194工作于右移工作状态。接下来的2个CP脉冲将串行输入的第2,3个数据D1,D2移入74194,由于采用的右移工作方式,此时的QA QB QC依次为D2 D1 D0,而置入QB的0则移到QD,使得S1S0=11,同时打开与门将QA QB QC中的数据并行输出。另一方面,下一个CP脉冲到来,又将发生前面所述的并行置数操作,开始新的一轮串/并变换。详细工作过程见表4.5所示。表4.5 3位串行码/并行码变换电路工作过程CLRS1S0功能CPDRQAQBQCQDS1 S0Q0Q1Q20清零000011000111置数1D0D00110100001右移2D1D1D0010100001右移3D2D2D1D0011D2D1D011置数1D0D001101000循环4.4.2 编码器码流输出一 码流输出过程在本设计中,除了设计能使串行码流变换为并行码流的串并变换电路外,还必须设计出码流输出部分的电路,也就是能够将PIC单片机所输出的4位并行数据转换为串行数据的并串变换电路,由串并变换电路输入PIC单片机的3B码并行数据,经单片机处理后得到相应的4B码,并以并行方式输出,并串变换电路的作用就是将此4位并行码流转变为串行码流,使其能够由B3端口接收,从而完成译码的过程。并串变换电路还必须符合设计要求中的12.8KHz的频率,这样才能保证码流输入与输出之间的同步,降低误码率。二 并串变换电路器件选型在此次电路设计中,采用一片74194,一个上升沿触发的D触发器,一个三输入与门及一个二输入与门,就可以构成一个符合设计要求的并串转换电路。其中二输入与门在具体电路设计时仍采用的是四2输入与门,器件型号为7408,在使用时只需取其一对端口即可;三输入与门则采用的是三3输入与门,器件型号为7411,使用时也仅需其中一对端口;D触发器则采用有预置,清零端的双上升沿D触发器,器件型号为7474,具体使用时采用其中一组作为D触发器。三 并串变换电路设计1. 电路设计 由于高速通用4位双向移位寄存器74194既可以用于串并变换,也可以用于并串变换,因此在此部分的电路设计中仍然选用74194作为4位并串变换电路的核心器件。但由于74194只有4位,在进行4位码的变换时,4个输入引脚全部用来接收并行数据,故不能像3位码的变换一样,将其中一个引脚设置一个循环标志位(如上一节中的QD),为了使74194能够循环长时间工作,还必须用一个D触发器来作为循环标志位。74194的ABCD用于并行数据输入,而这个D触发器的输出端将被连接到74194的右移输入端SR上,通过串入不同码字来控制S1S0的状态,从而达到在置数,右移不同状态间切换的目的,使其能长时间循环工作。电路如图4.13所示 图 4.13 4B码并串转换电路2. 工作过程此4B码的并串转换电路的过程较3B码的串并变换电路复杂,其工作过程可分为两个阶段,即清零预置阶段和并串转换阶段。特别需要注意的是工作过程中的各元件的次序,简述如下(记触发器为D,三输入与门的输出端为X,二输入与门的输出端为Y)。根据电路结构易知:X=QAQBQ ,Y=XCP,即在清零过程结束后有Y=QAQBQ;Y端直接与D端和S1相接,故有D=S1=Y且由于S0一直保持高电平即S1=1,所以74194的工作方式由Y端来控制;右移串行输入端SR则与Q端相接,故有SR=Q。根据D触发器的特性方程Q(n+1)=D知:现态的D端状态决定了次态的Q和Q端的状态,而根据电路结构有D=Y,故现态的Y端决定了次态的Q,即Q(n+1)=Y(除了清零脉冲时,Q被直接置1)。综上所述,此设计中最重要的两个控制端口Q和Y实际是互为因果的关系,他们之间相互影响相互作用,使整个系统循环运行。 阶段一:清零预置 在这个阶段中,首先清零脉冲来到,使74194和触发器D同时清零。此时QAQBQCQD0,由QAQB=0故Y=0,使得S1S001,74194工作于右移串入状态;而由于D也同时被清零使得Q0,Q=1,故SR=1,在下一CP脉冲来到时SR被置数使QA1。因此,2个脉冲后SR连续两次右移使QA=QB=1故有Y=1,使得S1S0=11,清零预置过程完成,74194进入置数工作状态,下一个CP脉冲来到时,就可以并行输入D0 D1 D2 D3四位数据。阶段二:并串转换 在清零预置过程结束以后S1S0=11使得74194进入置数工作状态。当这个阶段的第一个CP脉冲来到时,D3 D2 D1 D0同步置入QA QB QC QD,由于将QD作为输出端,故此时输出第一个串行码D3;由于上态的Y=1D,故使现态的Q=0,尽管D0 D1可能全为1,仍使现态的Y=0,由此决定了S1S001从而使74194工作于右移状态,并且SR=Q=0;连续3个CP脉冲以后,QD依次串行输出D2 D1 D0,达到了并串变换的目的,由于连续的右移,此时QAQBQC=110,使Y=1,故有S1S0=11,这样就使74194再一次进入置数工作状态,在下一个CP脉冲来到时将再次进行4位同步置数,D0 D1 D2 D3被置入QA QB QC QD,开始新一轮的并串变换。详细工作过程见表4.6所示。表 4.6 4位并行码/串行码变换电路工作过程CLRS1S0功 能CPQAQBQCQDYDQSRS1S00清零000000110110101右移右移1211010000010111110111111010101置数右移右移右移1234D0011D1D001D2D1D00D3D2D1D000010001011101110101011111循环置数1D0D1D2D30000014.5 译码器设计4.5.1 译码器码流输入一 码流输入过程本次毕业设计除了要求设计3B4B编码器外,还要求设计一个译码器,所谓译码器就是要将已经编码的4B码重新解码为3B码。这是一个编码的逆过程,输入的码流是4B码,码速是12.8Kb/s,相应的时钟脉冲为12.8KHz;输出的则是3B码,码速是9.6Kb/s,相应的时钟脉冲为9.6KHz。4B码的输入过程与3B码的输入相仿,仍是一个串并变换的过程,只不过是要将串行码流变换成4位的并行输出码流。因此其输入电路仍是采用一个串并变换电路来完成。二 串并变换电路器件选型 在此次电路设计中,采用一片74194,一个上升沿触发的D触发器,四个二输入与门及一个反相器,就可以构成一个符合设计要求的串并转换电路。其中二输入与门在具体电路设计时仍采用的是四2输入与门,器件型号为7408,在使用时正好将其4对端口全部用上;反相器则仍是采用六反相器,器件型号7404,具体使用时取其中一个端口即可;D触发器则还是采用有预置,清零端的双上升沿D触发器,器件型号为7474,具体使用时采用其中一组作为D触发器。三 串并变换电路设计1. 电路设计尽管是完成4位的串并转换,一片74194仍然足够完成此转换过程。由于需要并行输出4位的数据,如果74194的并行输出端全部用来输出数据,就会缺少S1S0的状态转换控制端,使之不能在置数和右移两种状态之间切换,也就无法达到长时间循环运行的要求。因此,我们还必须选用一块D触发器,使其能够作为并行输出端之一,而将QD留作工作状态控制位,从而达到循环控制的目的。电路如图4.14所示: 图 4.14 4B码串并转换电路 2. 工作过程此电路设计再次用到了D触发器,因此各端口之间的因果关系变得十分重要,简述如下:根据电路结构:QD经反相器输出后直接与S1相接,即S1=QD|反|,而S0一直接高电平,故74194的工作方式由QD控制;同时QD经反相器后还直接与4个与门相接,并行数据的同步输出也有QD控制。SR与D触发器的输出端Q直接相连,即SR=Q,故74194右移串入的数据来自Q。根据D触发器的特点:Q端置入的是D端在上一个CP脉冲过去后所储存的数据,如:清零脉冲过去后,D端即接收到串入数据D=D0,但此时触发器并没有触发,故Q端输出仍然为0;当下一个CP脉冲来到时,Q端载入D端所储存的数据D0,而D端则读入新的数据D1。电路具体工作时,首先清零脉冲来到,使74194与D触发器同时清零,此时74194的输出端QA=QB=QC=QC0,触发器的输出端Q=0;四个与门均关闭,但QD经反相器后输入S1,使S1S0=11故74194进入置数工作状态,下一个CP脉冲到来时即可将0111置入QAQBQCQD,同时SR=Q=0。清零之后的第一个CP脉冲来到时,即将输入端0111置数,使得QA=0,QB=QC=QD=1,而QD经反相器后使S1S001故74194进入右移工作状态并且使4个与门继续关闭;同时,触发器D的输出端Q=D0,使得SRD0。连续3个CP脉冲之后,触发器的输出Q=D3,使得SR=D3,SR在这个过程中连续的右移,使QA=D2,QBD1,QC=D0,这样Q0Q1Q2Q3中的数据全部置位完毕。而QD=0,经反相器后打开4个与门将4位并行数据同步输出,达到串并转换的目的;同时QD也使工作方式选择端S1S011,这样74194再次进入置数工作状态,在下一个CP脉冲到来时将重新载入0111,开始新一轮的串并转换。详细工作过程见表4.7所示:表4.7 4位串行码/并行码变换电路工作过程CLRS1S0功能CPDRQQAQBQCQDS1S0SR0清零00000110111010101置数右移右移右移1234D0D1D2D3D0D1D2D30D0D1D210D0D1110D0111001010111D0D1D2D311循环置数1D0D0011101D04.5.2 译码器码流输出一 码流输出过程译码器码流的输出过程与编码器的输出过程相仿,二者最终输出的都是串行码流,只不过编码器输出的码速为12.8Kb/s,而译码器输出的码速则为9.6Kb/s。要完成译码器串行码流的输出,就必须设计合适的并串转换电路将PIC单片机输出的3位并行码流转换为串行码流。因此码流的输出过程就是并行码/串行码转换的过程。二 并串变换电路器件选型在此次并串电路的设计中,由于只要完成3B码的转换,因此结构比较简单,只需采用一片74194,一个二输入与门即可构成一个符合设计要求的并串转换电路。其中二输入与门在具体电路设计时仍采用的是四2输入与门,器件型号为7408,在使用时只需取其一对端口即可。 三 并串变换电路设计1. 电路设计利用74194对3位并行码进行转换,只需用到四个并行输入端口A B C D中的三个,这里我们选用B C D三个端口来输入并行数据,而将A端口接低电平。将S0持续接高电平,利用SR的右移串行输入和A端口的低电平置数来控制74194的S1,从而达到控制74194工作方式的目的。这样就可以在置数和右移两种工作方式间切换,使系统长时间循环工作,对码流进行持续转换。电路如图4.15所示图 4.15 3B码并串转换电路2. 工作过程此3B码的并串转换电路相较于4B码的并串变换简单,所用到的元件比较少,而且各端口间的因果关系也比较少,仅有S1=Y=QAQB(记二输入与门7408的输出端为Y)。其工作过程仍可视作两个阶段,预置清零阶段和并串变换阶段。阶段一: 预置清零 清零脉冲使74194的输出端口QA=QB=QC=QD0,根据电路结构Y=QAQB=0,使得S1S0=01,74194进入右移串行输入工作状态,且SR持续接高电平即SR=1,在下一个CP脉冲来到时将SR载入QA。连续2个CP脉冲之后,SR连续右移两次,使QA=QB=1,从而打开与门使得S1S0=11,74194进入置数工作状态,预置清零过程结束。阶段二: 并串变换 经过预置清零阶段后S1S011,74194工作于置数工作状态。第一个CP脉冲来到后,D0 D1 D2被载入,使QB=D0 QC=D1 QD=D2,而A端口持续接低电平,故QA0,此时QD作为串行数据输出端口将输出第一位串行码D2。由于Y=QAQB=0使S1S0=01,故74194进入右移工作状态。2个CP脉冲之后,SR连续的右移使D1 D0依次从QD输出,同时使QA=QB=1,从而打开与门使S1S0=01,74194再次进入置数工作方式。在下一个CP脉冲来到时,74194将重新载入新的一组3B码,开始新的一轮并串变换。详细工作过程见表 4.8所示。表 4.8 3位并行码/串行码变换电路工作过程CLKS1S0功能CPQAQBQCQDYS1S0SR0清零0000001110101右移右移1211010000010111111110101置数右移右移123011D001D1D00D2D1D000101011111111循环置数10D0D1D20011编译码器软件设计根据设计要求,我们需要单片机对经过串并变换的3B码流进行4B编码。或将4B码流进行3B编码,可在单片机内部建立一个3B码于4B码的对照码表,经过查表就可以得到相应的编码,完成转换。本章将对此进行具体介绍。编码程序设计程序设计思想在设计中,针对3B4B码编码器,我们需要利用PIC单片机对经过串并变换的3位并行码流进行4B编码。最简单的方法是在PIC单片机内部建立一个3B码转换为4B码的对照码表,输入的3B码经过查表后就可以得到相应的4B码,再将其输出即可完成由3B码到4B码的转换。而单片机内部所用的码表则可以通过利用形如表2.2加以完成,根据此码表可以为任意一个3B码找到其对应的4B码,没有重复,而且正负码组交替使用,进一步减少了长连“0”和长连“1”的出现,达到了提高码速,减少误码的目的。在PIC单片机读入3B码流后,进行查表的过程中之前,我们必须对此3B码作出判断看它是否为 000 001 111 110中的一个,如果是此四个3B码中的某一个,则需要2组4B码交替使用,因为尽量使用|WDS|=2的码字可以通过以WDS的最佳选择来保证线路码的传输特性,可以进一步提高线路码传输的效率,降低误码。 鉴于此四个3B码的选择性,在编程的时候必须设计出相应的条件判断程序,以便判断是否是这四个码中的一个。同时还必须设置相应的标志位,用来标明哪一个码组已经使用过,这样就不会连续重复使用同一个码组,达到正负码组交替使用的目的。 由于在3B码的串行/并行转换电路以及4B码的并行/串行转换电路中,这两个外围电路都有其自己的时钟脉冲,而是其来自同一个脉冲源的分频电路,这就保证了3B并行码流输入时和4B并行码流读出时的时效性。在外围电路能够正常工作的情况下,我们在程序设计的过程中,就必须保证PIC单片机能够准确按时的读取3B码流以及输出4B码流,这样才不会造成码流的阻塞以及误码。而单片机内部的时钟频率远远高于外围电路的脉冲频率,单片机有充分的时间来执行码表处理程序,一但读入3B码就可以立刻输出4B码,一般不会对4B并串转换电路造成影响。因此关键问题是如何准时读取3B码流。 针对以上问题,解决问题的关键在于如何“提醒”单片机按时去读取3B码流。对此,我们提出了两种解决方法:一种是采用计时的方法,时间到了就让单片机去读取;另一种是中断的方法,何时有新的3B码流送到,就让单片机去读取。以下是两种具体的程序设计方案。程序设计方案一此方案是利用外部时钟脉冲频率CP与PIC内部时钟频率的差别,进行延时计数,每隔一段特定的时间就使PIC单片机去读取一次3B码流,从而达到按时提取3B码的目的。此方案中,必须注意到延时计数必须把单片机执行此程序需要耗费的时间计算在内。而单片机执行此程序耗费的时间可由程序中所包含的指令数与指令周期的乘积计算出来。PIC不同于MCS系列单片机,其大部分指令都是单周期指令,仅有少数多周期指令,如跳转指令。因此可以大致计算出执行此程序所需的指令周期数,而PIC单片机的指令周期则是根据单片机所选用的晶体振荡器的频率而定的,晶体振荡器经四分频后即可得到单片机内部频率,取其倒数即可得出其指令周期。具体数据如下:CP: 3B串并变换电路时钟频率为 9.6KHz ,T=1/f=104sPIC:若采用4 MHz的晶振,则四分频后为1MHz,T=1/f= 1s若采用8 MHz的晶振,则四分频后为2MHz,T=1/f=0.5s若采用20MHz的晶振,则四分频后为5MHz,T=1/f=0.2sPIC单片机与外围的串并变换电路和并串转换电路相连时,只需用到PORTB端口,其中PORTB.1PORTB.3用于串并变换后的并行3B码流的输入,而PORTB.4PORTB.7则用于并串变换中的并行4B码流的输出。此方案的程序流程图如下:取RB13中的数据初始化测试位清0测试位清0测试位置1根据RB13的值查表1根据RB13的值查表2送入RB47等待测试位置1时间到否?测试位=0?为7否?测试位=0?为0否?YYYYYNNNNN图 5.1 编码器程序方案一流程图程序设计方案二此方案是利用PIC单片机中的外部中断功能来设计程序。利用中断的思想可以方便的控制单片机去读取3B码流,一旦有中断信号来到,就说明有新的3B码流转换完毕,单片机就去读取这些码字;而当没有中断信号的时候,单片机则处于等待状态。采用这种中断思想设计的程序可以保证单片机准时读取3B码流。而PIC单片机的PORTB.0引脚则是单片机内置的3个外部中断源之一,因此我们可以方便的通过PORTB.0引脚向单片机提交中断请求信号。采用中断方式来控制单片机读取3B码流,关键是要找到适当的中断信号。在外部的串并转换电路中,为了使3B码流同步并行输入,这就需要一个控制信号使其同步输入,按照4.3.1节的设计,74194的输出端中的QD的作用就是负责当3位码全部置位好以后,经反相后打开三个与门使3位码字同步输出。因此采用QD经反相器后的输出信号作为中断源,完全可以满足我们的要求。按照这种编程设计思想,PIC单片机与外围串并转换电路相连接时,只需将PORTB.0引脚与串并转换电路中的六反相器7404的输出端相接,就可以利用PIC单片机的中断请求来准时读取3B并行码流;而PORTB.13仍

温馨提示

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

评论

0/150

提交评论