导言
CMI码是传号反转码的简称,它是一种使用于PCM四次群和光纤传输体系中的常用线路码型,具有码改换设备简略、有较多的电平跃变,含有丰厚的守时信息,便于时钟提取,有必定的纠错才能等长处。
在高次脉冲编码调制终端设备中广泛使用作接口码型,在速率低于8 448 Kb/s的光纤数字传输体系中也被主张作为线路传输码型。
本文针对光纤通信传输码型的要求和CMI码的编码原理,介绍了一种以EPM系列7064芯片为硬件渠道,以Max+PlusⅡ为软件渠道,以VHDL为开发工具,适合于CPLD完成的CMI编码器的规划方案。
1 CMI码的编码规矩
CMI编码规矩如表1所示。
在CMI编码中,输入码字0直接输出01码型,较为简略。关于输入为1的码字,其输出CMI码字存在两种成果OO或11码,因而对输入1的状况有必要回忆。一起,编码后的速率增加一倍。
2 CMI编码器的建模与完成
首先在原始时钟MUX_Clk的上升沿进行翻转得到二分频时钟Clk,周期为原始时钟的2倍。
然后发生伪随机序列,由3个D触发器发生7位伪随机序列,序列发生原理如图1所示。
任何一个D触发器的输出都能够作为要发生的m序列,则序列以7为周期循环呈现,在3个D触发器输出都为0时,句子m_buffer(2)=(m_bu-ffer(1)xor m_buffer(O))Or((not m_buffer(2))and(not m_buffer(1))and(not m_buffer(O))),能够使第一个D触发器在Clk上升沿到来时输出为1,然后防止堕入“000的死循环。
最终为“O”码、“1”码的编码:
“O”编码的完成:在原始时钟信号的下降沿对m序列进行检测,当其值为“0”时,将原始信号的二分频后的信号求非赋值给编码输出,即可完成对“O”进行“01”编码。
“1”编码的完成:在原始时钟信号的二分频信号的上升沿对m序列进行检测,假如其值为“1”,用表达式statel=statel X0R m_buff(O)对“1”的奇偶进行记载;在原始时钟的下降沿,将statel的值赋给编码输出即可完成对“1”的“00”,“11”替换编码。
其间:m_test:发生的m序列;
MUX_DT:CMI编码输出;
MUX_CLK:原始时钟。
3 仿真成果
在Max+PlusⅡ渠道下对CMI编码进行编译和仿真,最终得到CMI编码仿真成果。图2是CMI码编码波形图。
在时钟MUX_CLK驱动下作业,m_test是发生的m序列1011100,MUX_的DT为CMI编码输出,能够看到,编码为11010011000101,有必定延时,但编码完全正确。
4 结语
该规划具体介绍了根据CPLD的CMI编码的完成办法。提出使用原始信号的二分频后的信号求非赋值给编码输出,得到“0”的编码,使用缓存对“1”的个数进行记载,而对“1”进行编码的编程思路,使用VHDL进行程序规划完成,在Max+PlusⅡ渠道下对规划成果进行仿真,成果完全正确。
实践标明,运用CPLD完成CMI编码具有软件开发周期短、成本低、履行速度高、实时性强、晋级便利等特色,并且能够把该电路和其他功用电路集成在同一块CPLD/FPGA中,减少了外接元件的数目,提高了集成度,并且有很大的编程灵活性,很强的移植性,因此有很好的使用远景。