基带码型变换设计CMI码码型变换.docx
《基带码型变换设计CMI码码型变换.docx》由会员分享,可在线阅读,更多相关《基带码型变换设计CMI码码型变换.docx(29页珍藏版)》请在冰豆网上搜索。
基带码型变换设计CMI码码型变换
基带码型变换设计—CMI码码型变换
1技术指标
(1)设计CMI码的编译码电路;
(2)输入信号为24位的周期NRZ码;
(3)编译码延时小于3个码元宽度。
2大体原理
CMI码编码原理
CMI码(CodedMarkInversion)即传号反转码,是一种二电平非归零码,是PCM四次群的线路传输码型,也确实是数字群数字光纤通信设备与四次群PCM设备之间的接口码型。
CMI码的特点
1),CMI码编译电路简单,便于设计与调试;
2),CMI码的最大连“0”和连“1”个数都是3个;
3),具有误码监测能力,当其编码规那么被破坏,就表示有误码产生,便于线路传输中的误码监测;
4),CMI码功率谱中的直流分量恒定,低频分量小,fr(变换前的码速度)频率处有限谱,频带较宽,便于按时提取;
5),CMI码的速度是编码前信号速度的两倍。
CMI码的编码规那么
编码的整体思想是对输入的基带信号进行采样判定,若是‘0’那么转化为“01”,若是为“1”那么交替转化为“00”或“11”。
“0”的转化结果只有一种能够直接转化为“01”,而“1”的转化结果有两种“00”和“11”,因此需要一个信号作为判定,当前面一个“1”码编码转换的是“00”时,判定编码转化为“11”,当前一个“1”码编码转换的是“11”时,那么判定编码转化为“00”。
依照此规那么输出CMI码元的速度应为输入基带信号的两倍。
例如:
NRZ码:
0
1
1
0
1
0
0
1
CMI码:
01
00
11
01
00
01
01
11
其对应的波形比较如图1所示。
图1编码前与编码后波形图
CMI码译码原理
CMI译码原理与编码相反,当输入为“11”或“00”时,译码输出为“1”;当输入为“01”时,译码输出为“0”。
在对CMI译码时,存在两种状态,因此需进行同步。
同步进程的设计可依照码字的状态进行:
因为在输入码字中不存在“10”码型,若是显现“10”码,那么必需调整同步状态。
例如:
CMI码:
01
01
00
11
00
01
11
01
译码输出:
0
0
1
1
1
0
1
0
其对应的波形比较如图2所示。
图2CMI码与其解码波形图
3设计方案及其比较
设计方案一
设计思想及框图
依照上边所述CMI码编译码原理,可设计CMI码编译码器,其要紧由原始时钟源、编码时钟、CMI编码电路、CMI译码电路四部份组成。
其中CMI码编码电路由时序操纵、序列发生器、“0”编码电路、“l”编码电路及输出选择电路等部份组成。
同时CMI码译码电路由时序操纵、CMI码高低位分离电路及译码运算电路等部份组成。
而这确实是咱们进行CMI码型变换利用电路进行设计时所必需遵循的总的设计思想,因此以下方案利用电路设计此编译码器时都是依照此设计思想而加以设计的。
其设计整体框图如图3所示:
图3CMI码编译器总设计框图
设计方案原理图及工作原理
依照上述总的设计框图,咱们在MAX+plusII上能够设计出其编译码的总的电路图如图4所示。
图4CMI码编译器设计方案一电路图
电路原理图说明:
图中上半部份电路为CMI编码电路部份,下半部份为CMI译码电路部份。
具体原理请看下面分析。
1)、CMI编码电路部份。
由CMI编码原理可知,输入码为“1”码时,编码输出交替显现“00”和“11”码。
因此,在电路中必需设置一个状态来经历上一次的关于“1”码的编码输出,在此电路中这一功能利用JK触发器来加以实现。
输入为“0”码时,编码输出为“01”码。
而在这之前咱们必需对NRZ输入码流进行各自分离,然后再别离各行其是“0”和“1”的编码。
第一咱们来分析“0”码的编码原理。
“0”编码器由一个与门和一个非门组成。
其中NRZ码流通过非门后接与门一端,与门另一端接入反向的时钟信号。
当NRZ码流流出“1”时,通过与门后为“0”,接入与门后不管另一端输入的高低电平,与门输出总为“0”。
重点为当NRZ码流中流出为“0”时,通过非门后为“1”,现在与门的输出决定于下端时钟信号的输入。
那个地址作一个说明,NRZ码的码元宽度为现在钟信号BS的一个周期。
那么流出“0”时刻断内,与门输出端别离为反向BS时钟信号的前后一半周期内的电平值即“0”、“1”。
也确实是说与反向BS前半周期相与得“0”,再与其后半周期相与得“1”。
在这段时刻内,上端“1”编码电路始终输出“0”,那么经过最后的或门后“0”编码输出“01”。
那个地址先简单介绍下主从JK触发器的相关原理。
它的特点方程为
,及功能表表如表1所示。
表1主从JK触发器功能表
J
K
Qn
Qn+1
功能说明
0
0
0
0
保持原状态
0
0
1
1
0
1
0
0
输出状态与J状态相同
0
1
1
0
1
0
0
1
输出状态与K状态相同
1
0
1
1
1
1
0
1
每输入一个脉冲输出状态改变一次
1
1
1
0
从上表中能够看出当J、K输入端同为0时,输出维持;当J、K输入端同为1时,输出翻转。
这在下面对NRZ码“1”编码时将有直接应用,能够说JK触发器在对“1”编码时起核心作用。
第二咱们讨论“1”码的编码原理。
“1”编码器由一个JK触发器和一个与门组成。
如上所述,JK触发器是用来经历上次关于“1”码的编码输出的(将J、K两头相连实现,具体关于JK触发器原理在本段以后介绍)。
同时,JK触发器输出端Q也作为输入“l”码时的编码输出,实现“1”编码时“00”、“11”的交替显现。
当NRZ码流流出“1”时,下端“0”编码电路始终输出“0”,那么或门输出直接决定于上端“1”编码电路的输出。
现在JK两头输入为“1”,实现输出翻转。
不妨以为第一次输出为“1”。
那么再与输入码“1”相与后输出为“1”。
在时钟信号BS下个下降沿到来时始终输出为“1”,即编码输出“11”。
从中看出“1”编码现在已有延时,且那个地址延时半个BS周期。
那么通过最后的或门后“1”编码输出“11”、“00”交替显现。
最后说下关于输出选择器的原理。
输出选择器为一或门,其两头别离接“1”码编码器编码输出OUT2和“0”码编码器编码输出OUT8。
当输入NRZ码为“1”时,OUT8为“0”,CMI的编码输出OUT3为“1”码编码器编码输出OUT2;当输入NRZ码为“0”时,OUT2为“0”,CMI的编码输出OUT3为“0”码编码器编码输出OUT8,从而完成编码的选择输出。
与此同时,为了提高电路的靠得住性,可在最后一级加入上升沿D触发器,再用一时钟信号2BS(其信号周期为BS周期的一半)在数据稳固后进行数据读取,躲开发生冒险的时刻,从而使电路工作稳固。
2)、CMI译码电路部份。
CMI译码电路由CMI高低位码分离器、译码运算电路组成。
译码的大体原理是将输入的CMI码进行高低位分离,在进行同或运算。
先看CMI码高低位码分离电路。
由CMI码编码原理可知,编码后,每一名NRZ码用两位CMI码元表示。
因此在CMI译码时,必需由高低位CMI码同时决定译码输出。
那个地址采纳74LS74芯片,它是两个上升沿D触发器独立组成,大体原理同D触发器,那个地址再也不论述。
码位分离电路即为图中7474部份。
BS是译码器时钟信号,其周期等于一个CMI码码元宽度的两倍,下降沿时刻对应第一名CMI码中点时刻。
OUTPUT(CMI)是其CMI码流输入端。
其工作原理如下:
当BS的下降沿抵达时,通过非门反向成为上升沿,现在第二个D触发器Q端输出第一名CMI的值,并处维持状态,再通过一个CMI码元宽度时刻,BS的上升沿抵达,第一个D触发器的输出端输出第二位CMI码的值,与此同时第一个D触发器输出端仍为第一名CMI码的值,从而在OUT7与OUT8处实现第一、二位CMI码的分离。
译码运算电路确实是一个同或门,OUT7和OUT8别离接在其两头,OUT9即为译码输出。
由CMI译码原理可明白,只要将CMI码的高低位进行同或运算,就得其对应的NRZ码,因此那个地址将CMI第一、二位通过同或门运算,即得译码输出。
CMI各测试点仿真波形及相关分析
在MAX+plusⅡ中对原理电路图绘制编译成功后,绘制仿真波形图,并对其输出进行仿真,得各测试点波形图如以下图5所示。
图5设计方案一各测试点仿真波形
从上图能够看出CMI编码与译码输出在必然延时的许诺下都是正确的,设计方案能够成功进行CMI码型变换。
下面就电路中每一个逻辑门电路的输出对设计方案进行实例具体分析。
1)、OUT1输出端。
这是JK触发器的输出端Q。
它在NRZ输出为“1”时翻转,输出为“0”时维持,实现对“1”的经历与编码,对如实例仿真波形完全正确,实际输出符合理论分析;
2)、OUT2输出端。
这是“1”编码器输出端。
它在NRZ输出为“1”时输出“1”的编码输出,而在NRZ输出为“0”时始终输出为“0”。
从仿真图中发觉有一地址存在毛刺现象,其他大部份波形输出均符合理论分析;
3)、OUT3输出端。
这是输出选择操纵器输出端,也即编码输出端,类同于CMI输出端;如前所述在没有通过D触发器进行输出时存在冒险现象,波形输出存在不稳固时刻,但整体仍是符合理论分析的;
4)、OUT4输出端。
此处输出即为NRZ码流输入的反相信号,实际输出与理论相符;
5)、OUT5输出端。
此处输出为BS时钟信号的反向信号,实际输出与理论相符;
6)、OUT6输出端。
此处为“0”编码器输出端。
据前面分析,它在NRZ输出为“0”时输出“0”的编码输出“01”,而在NRZ输出为“1”时始终输出为“0”。
实际仿真波形均符合理论分析;
7)、OUT7输出端。
这是CMI码第二位输出端,其有效信号仅在BS信号上升沿到来时输出,其他时刻均维持上升沿到来后输出的值,通过对照波形BS、CMI和OUT7发觉输出正确;
8)、OUT8输出端。
这是CMI码第一名输出端,其有效信号仅在反相BS信号上升沿到来时输出,其他时刻均维持上升沿到来后输出的值,通过对照波形OUT五、CMI和OUT8发觉输出符合理论分析;
9)、OUT9输出端。
这是CMI译码输出端,类同于OCMI输出,但通过观看OUT9与OCMI波形,发觉有专门大部份不同,这确实是前面所说的冒险与竞争现象的专门好的诠释与表现,从而加倍证明了利用D触发器进行稳固输出的合理性与必要性。
通过以上对各输出测试点的具体实例分析与认知观看,能够说设计方案一专门好地知足了CMI码型变换的技术要求。
但同时应该注意到电路中存在必然的延时现象,但仍在要求范围之内,因此总的说来设计方案一能够作为实现方案进行更一步的具体实验验证。
下面尝试运用更好的方式与设计来更好地知足技术要求。
设计方案二
设计思想
CMI码编译器的总的设计思想仍依照设计方案一所论述的,而设计方案二中只是对电路中相关逻辑器件进行了替换,设计了新的设计电路原理图。
其中编码电路有专门大变更,设计具体思路有转变,而译码电路大同小异,相较设计方案一增加了一个D触发器,增强了信号的同步性与设计的合理性。
其他输出选择操纵器与译码运算电路大体不变。
设计方案原理图及工作原理
依照设计思想,在MAX+plusII上设计出设计方案二编译码总的电路图如以下图图6所示。
图6CMI码编译器设计方案二电路图
电路原理图说明:
图中上半部份电路为CMI编码电路部份,下半部份为CMI译码电路部份。
具体原理请看下面分析。
1)、CMI编码电路部份。
在此电路中利用T′触发器来实现对上一次输入“1”码的编码状态。
那个地址咱们利用一个D触发器来达到T′触发器的功能。
第一咱们来讨论“1”码编码器的工作原理。
从图6中能够看出,“1”码编码器由一个与非门和一个D触发器组成。
能够发觉D触发器的输入端与其反向输出端连接在一路从而组成了一个T′触发器,正是通过此触发器来达到NRZ码流中“1”编码输出交替显现“00”和“11”码的目的。
不妨假想D触发器初始为0,当输人NRZ码流中显现“1”码时,在BS的前半周期与后半周期,现在在D与非门输出端会别离输出反相时钟信号和正相时钟信号,与此同时D触发器输出状态将会显现一个“0”到“1”的跳变,进行一次状态翻转,从而完成从“0”到“1”的转变,D触发器输出端Q也作为输入“1”码时的编码输出,在这一个周期内实现输出“00”。
当NRZ码中下一次显现“1”时,除D触发器中的输入端已经置为“1”外,其他的和前一周期的输出流程是一样的。
于是就实现了“1”码的编码输出。
第二咱们来讨论一下“0”编码器的编码原理。
“0”编码器是由一个非门和一个与非门组成。
其中NRZ码流通过非门后接与非门一端,与非门另一端接入反向的时钟信号。
当NRZ码流流出“1”时,通过非门后为“0”,接入与非门后不管另一端输入的高低电平,与非门输出总为“1”。
重点为当NRZ码流中流出为“0”时,通过非门后为“1”,现在与非门的输出决定于下端时钟信号BS的输入,也能够说现在与非门相当于非门。
同设计方案一,NRZ码的码元宽度为现在钟信号BS的一个周期。
那么流出“0”时刻断内,与非门输出端别离为BS信号的前后各半周期的电平值即“0”、“1”。
从而在这一周期内实现输出“01”。
当NRZ码中下一次显现“0”时,编码输出流程式样的。
这确实是“0”编码器的编码原理。
最后说下关于输出选择器的原理。
咱们通过一个与非门和一个D触发器一起组成一个输出选择操纵器来操纵CMI码流的同步输出,具体说明与分析同设计方案一,那个地址再也不赘述。
2)、CMI译码电路部份。
CMI译码电路由CMI高低位码分离器、译码运算电路组成。
译码的大体原理是将输入的CMI码进行高低位分离,再进行同或运算。
完全同于设计方案一。
编码后,每一名NRZ码由两位CMI码表示。
输入CMI码在BS信号作用下被各个D触发器锁存。
当BS下降沿到来时,通过非门反相成为上升沿,此刻D触发器输出第一名CMI码的值,并处于保留状态,实现对第一名CMI码值的锁存通过一个CMI码元宽度时刻,BS的上升沿抵达,D触发器输出第二位的CMI码值,与此同时,第一名被锁存的CMI码进入第二个D触发器,从而实现了两个CMI码的分离。
译码运算电路中,由一个同或门和另外一个D触发器组成。
其中同或门别离接码位分离电路的第一、二位CMI码输出,OCMI为译码输出。
由CMI译码原理可知,只要将CMI码的第一、二位进行同或运算,就得其对应的NRZ码,因此此处将CMI第一、二位先通过同或门运算,即得译码输出。
CMI各测试点仿真波形及相关分析
在MAX+plusⅡ中对原理电路图绘制编译成功后,绘制仿真波形图,并对其输出进行仿真,得各测试点波形图如以下图7所示。
图7设计方案二各测试点仿真波形
下面就电路中每一个逻辑门电路的输出端输出信号对设计方案进行实例具体分析。
1)、OUT1输出端。
这是“1”编码器的与非门输出端。
其输出取决于NRZ输出信号与反向BS时钟信号即图中OUT4输出信号,通过观看NRZ和OUT4输出端波形,进行与非,对照OUT1输出端波形以为正确无误,与理论相符;
2)、OUT2输出端。
此处为D触发器输出端,它在NRZ输出为“1”时输出“1”的编码输出,而在NRZ输出为“0”时始终输出为“0”,在BS上升沿到时发生跳变。
仿真波形输出符合理论分析;
3)、OUT3输出端。
此处为“1”编码器的编码输出端,事实上它确实是OUT2输出端信号取反,对照仿真图形发觉确实如此,但伴有轻微的延时;
4)、OUT4输出端。
此处输出为BS时钟信号的反向信号,实际输出与理论相符;
5)、OUT5输出端。
此处为“0”编码器输出端。
据前面分析,它在NRZ输出为“0”时输出“0”的编码输出“01”,而在NRZ输出为“1”时始终输出为“1”。
实际仿真波形均符合理论分析;
6)、OUT6输出端。
此处为输出选择操纵电路的与非门输出端,类同于CMI输出端。
通过对照发觉两波形大体相符,存在少量延时;
7)、OUT7输出端。
此处为CMI第一名码输出锁存维持同位端,当反向BS信号的上升沿到来时动身锁存信号,通过度析对照OUT4与CMI信号波形均与理论分析相符;
8)、OUT8输出端。
此处为CMI第一名码输出端。
当BS信号上升沿到来触发输出OUT7端信号,实际波形也说明了这一点;
9)、OUT9输出端。
此处为CMI第二位码输出端。
当BS信号上升沿到来触发输出CMI码得第二位,通过观看比较发觉相符;
10)、OUT10输出端。
这是CMI译码输出端,类同于OCMI输出。
对照两波形,发觉出前面延时不同外,后面NRZ码型输出大致相同。
通过以上对各输出测试点的具体实例分析与认知观看,能够说设计方案二专门好地知足了CMI码型变换的技术要求。
但同时应该注意到电路中也存在必然的延时现象,但仍在要求范围之内,因此总的说来设计方案一能够作为实现方案进行更一步的具体实验验证,因为这也只是停留在模拟仿真的基础上而实现的,实际情形的延时与其他不利因素会比理想情形下的加倍严峻。
下面尝试运用VHDL语言来编写程序以实现CMI的编译码。
设计方案三
设计思想及流程图
现在采用VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage,超高速集成电路硬件描述语言)语言来进行CMI基带码型变换设计。
VHDL语言要紧用于描述数字系统的结构、行为、功能和接口,能够实现硬件系统的设计。
CMI编码的方案设计:
依照CCITT建议,程控数字互换机中CMI码一样作为PCM四次群数字中继接口的码型。
CMI码的编码规那么如下:
当输入“0”码时,编码输出“01”;当输入“1”码时,编码输出那么“00”、“11”交替显现。
依照此规那么输出CMI码元的速度应为输入基带信号的两倍。
假设CMI码元的输出速度为2R1,那么对基带信号的采样率为R1。
编码的整体思想是对输入的基带信号进行采样判定,若是“0”那么转化为“01”,若是为“1”那么交替转化为“11”或“00”。
“0”的转化结果只有一种能够直接转化,而“1”的转化结果有两种“11”和“00”,因此需要一个信号作为判定,判定是转化为“11”仍是转化为“00”,在程序语言中咱们能够概念一个变量Flag来加以监控,关于CMI编码的VHDL设计思想能够从流程图图8看出。
图8CMI编码流程图
在CMI编码中必需注意的是:
编码输入信号是一倍的码率,编码终止后的码流为2倍码率,因此编码时必需预备两个时钟参考信号。
假设编码时钟信号的频率为1MHz,那么编码后的输出码流的参考时钟信号频率为2MHz。
而CMI译码设计时只需同步译码CMI输出,假设为“00”和“11”那么译为“1”进行输出,假设为“01”或“10“时译为“0”。
程序语言及相关说明
CMI编码模块的接口设计:
entityarsis
port(clk:
instd_logic;--系统时钟输入
BDataIn:
instd_logic;--基带NRZ信号输入
BDataOut:
outstd_logic;--CMI码元输出
CDataOut:
outstd_logic);--CMI译码输出
endars;
实体接口说明:
clk为系统时钟,现在钟为CMI的输出时钟,不是基带信号的采样时钟。
BDataIn为基带信号,为了能正确采样到基带信号,系统时钟就与基带信号有必然的相位关系。
BDataOut为CMI码元输出。
对输入的基带信号进行CMI编码后的CMI码元输出。
CDataOut为CMI译码输出。
将CMI作为输入进行译码后的码元输出。
通过以下程序进程生成基带信号的采样时钟clk2。
process(clk)
begin
ifclk'eventandclk='1'then
clk2<=notclk2;
endif;
endprocess;
CMI码元转化进程:
process(clk2)
begin
if(clk2'eventandclk2='1')then
CASEBDataInis
when'0'=>
databuf<="01;
when'1'=>
ifflagcon='1'then
databuf<="11";
flagcon<='0';
else
databuf<="00";
flagcon<='1';
endif;
whenothers=>
databuf<="01";
endCASE;
endif;
endprocess;
CMI码元转化进程说明:
本设计为同步设计,即进程中的所有语句都是在时钟的节拍下工作。
当基带信号为“0”时置databuf为“01”;当基带信号为“1”且信号flagcon为“1”时,置databuf为“11”,同时置flagcon为“0”;当基带信号为“1”且信号flagcon为“0”时,置databuf为“00”,同时置flagcon为“1”。
CMI码元输出进程:
process(clk)
begin
if(clk'eventandclk='1')then
ifflagcnt='1'then
BDataOut<=databuf
(1);
flagcnt<='0';
elseBDataOut<=databuf(0);
flagcnt<='1';
endif;
endif;
endprocess;
CMI码元输出进程说明:
在时钟的节拍下,把databuf的数据按高到低位输出。
CMI码译码输出进程:
process(clk)
begin
ifclk'eventandclk='0'then
ifdatabuf="00"ordatabuf="11"then
CDataOut<='1';
Elsifdatabuf="01"ordatabuf="10"then
CDataOut<='0';
endif;
endif;
endprocess;
CMI码译码输出进程说明:
在时钟的节拍下,将CMI码元输出进行及时的译码输出。
CMI编译码仿真波形及分析
对上述程序语言进行编译成功后,绘制波形仿真图,画出相应的输入信号波形,进行波形仿真,取得仿真波形如图9所示。
图9CMI编译码波形仿真图
CMI编译码仿真图分析:
1)、基带信号取得正确的CMI编码与解码。
2)、CMI编码输出相关于基带信号输入有少量延时,CMI译码的基带信号输出相关于CMI编码的基带信号输入有快要两个时钟周期的延时。
至此,CMI编解在MAX+plusII顶用VHDL语言取得了仿真验证。
设计方案比较
此刻咱们来讨论以上三种方案的优缺点,以产生最后最好的方案去进行更进一步的硬件电路调试。
先讨论利用电路实现与用VHDL实现的不同。
利用VHDL进行编写程序实现码型变换,需要在明白得编译码原理的基础上,加以缜密的逻辑思维,并遵循语言语法规那么,对学而不专者而言是个专门大的挑战,只是一旦程序编写成功,并能够正确地仿真,那么语言的稳固性毋庸置疑,相较于电路设计具有超级好的稳固性,优势专门大,是个不错的选择,这也是VHDL语言今年来普遍应用的表现。
但是电路设计也并非无优势可言。
电路设计能