AMI码型变换Word文件下载.docx
《AMI码型变换Word文件下载.docx》由会员分享,可在线阅读,更多相关《AMI码型变换Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
AMI码是通信编码中的一种,为极性交
替翻转码,分别用一个高电平和低电平表
示两个极性。
(1)编码规则。
①消息代码中的0用传输码中的0表示。
②消息代码中的1用传输码中的+1、-1
交替表示。
例如:
消息代码:
1010100010111
AMI码:
+10-10+1000-10+1
-1+1
(2)AMI码的特点。
①AMI码确定的基带信号中正负脉冲
交替出现,而0电位保持不变;
所以由AMI
码确定的基带信号无直流分量(等概情况
下),且只有很小的低频分量。
②不易提取定时信号,由于它可能出
现长的连0串。
(3)AMI编码用c语言实现。
intami(char*r,intf)voidopposite
(char*s)
{chara=‘n’,c;
{if((*s)==‘p’)(*s)=‘n’;
inti=0;
elseif((*s)==‘n’)(*s)=‘p’;
while(f)}
{if(i>
=l){return0;
}说明:
其中p代表
+1,n代表-1,r为接收
c=r;
码,f为接收码的个数。
函数oppo-
site起取
if(c==‘0’){r=‘0’;
}反作用。
elseif(c==‘1’){opposite(&
a);
r=a;
}
elsereturn1;
i++;
(4)解码规则。
从收到的符号序列中将所有的-1变换
成+1后,就可以得到原消息代码。
2、AMI编译码器设计方案
2.1AMI编码器设计
AMI编码规则:
将消息码中的0,变换为传输码0;
将消息
码中的1,交替变换为传输码的+1、-1、+1、-1……。
根据
AMI编码规则和AMI码的特点,以及该系统是在CPLD/FP-
GA下设计,进行建模时,CPLD
/FPGA构成的模块的输入信号
与输出信号均为单极性信号,而AMI码信号为双极性信号,因
此,需要解决将单极性信号转换成为双极性信号的问题。
要实现AMI编码功能,需要对软、硬件都进行设计,将功能
模块分为两部分:
一部分运用VHDL语言编写源程序来实现;
另一部分由单极性/双极性转换电路来实现。
上图中,第一个方框的功能:
将消息码进行交替识别和极性
控制。
依据编码规则,将消息码中的0,变换为传输码0;
而消息
由于+1
和-1为双极性码,不能直接运用FPGA/CPLD来实现,要通过
外围的单极性/双极性转换电路来实现。
首先,须建立识别符号,用单极性码代替双极性码+1、-1
和0(例如:
“10”表示“-1”,“01”表示“+1”,用“00”表示“0”)。
按此方案建模,得到单极性/双极性控制的功能表,如下表所示。
解决了单极性信号转换为双极性信号的问题。
其次,另一个需要解决的问题:
如何将消息码中的“1”交替
地变换成为控制码“10”和“01”,将消息码中的“0”变为控制码
“00”。
具体建模方案:
建立一个功能模块电路(码型控制器),当
输入为0时,数据选择器输出为“00”;
当输入为1时,设置一个
偶数计数器记录1的个数,当计数器计数为偶数,使数据选择器
输出为“10”,若计数器计数为奇数,则使数据选择器输出为
“01”。
通过这种建模方案,来实现交替识别和极性控制的功能。
2.2AMI译码器设计
AMI码的译码是编码的逆过程。
从收到的符号序列中,将
所有的-1变换成+1后,就可以得到原来的消息码。
建立一个功能模块电路,当遇到编码为“01”
或者“10”时,该模块电路输出为“1”;
当遇到编码为“00”时,该模
块电路输出为“0”。
3、AMI编译码器的源程序与仿真波形
3.1AMI编码器的源程序
以下是编码器主要部分的源程序
architecturebehaveofAMICODERis
signalflag:
stdlogic;
begin
process(clk)
ifclk'
eventandclk='
1'
then
ifBDin='
1'
ifflag='
CDout<
="
10"
;
flag<
='
0'
else
01"
=
'
1
endif;
00"
endif
endprocess;
endbehave
3.2AMI编码器的仿真波形
基带传输系统中的一路消息码,经过编码规则交替变换后,
得到的仿真波形。
从图中可以看到,除有200ns的延时外,所设
计的编码器能完成编码功能,得到所需的控制码。
然后,将控制
码,经过单极性/双极性变换电路,得到最终的AMI码。
3.3AMI译码器的源程序
以下是译码器主要部分的源程序
process(clk)
begin
eventandclk='
ifCDin="
10"
orCDatain="
BDout<
BDout<
0'
;
endprocess
3.4AMI译码器的仿真波形
下图是译码器的仿真结果。
从图中可以看到,除有200ns的
延时外,恢复原有的消息码,实现译码器的功能。