摘要:介绍了HDB3编解码的原理和方法,给出了用CPLD(Complex Programmable Logic Device)实现E1信号HDB3编解码的方法,同时给出了它的实现原理图,最后给出了XILINX的XC9500系列可编程逻辑器件的开发流程。
关键词:复杂可编程逻辑电路;三阶高密度码;极性交替反转码;在系统编程
1 XC9572 器件介绍
XC9572是XILINX公司生产的一款高性能可编程逻辑器件。它内含4个36V18功能块,并具有1600个可用系统门。其系统结构如图1所示。从结构上看,XC9572包含三种单元,即宏单元、可编程I/O单元和可编程内部连线。其主要特点如下:
●所有可编程管脚间的脚对脚延时均为5ns;
●系统的时钟速度可达到125MHz;
●具有72个宏单元和1600个可用系统门;
●可编程次数为10000次;
●可采用5V在线编程和擦除;
●拥有强大的管脚锁定能力;
●每个宏单元都具有可编程低功耗模式;
●未用的管脚有编程接地能力;
●提供有编程保密位,可对设计提供加密保护以防止非法读取;
●外部I/O引脚与3.3V和5V兼容。
2 HDB3的编解码及实现原理
HDB3码(三阶高密度双极性码)是基带电信设备之间进行基带传输的主要码型之一。它的主要特点是易于提取时钟、不受直流特性影响、具有自检能力、连令串小于3个等。
E1信号是我国和欧洲国家电信传输网一次群使用的传输系统。E1信号由32个64kbps的PCM话路经过时分复用形成。CCITT建议G.703标准详细规定了HDB3码用于E1信号的标准。
用XC9572实现E1信号的HDB3编解码电路比较简单,而且无需可调整外围电路。本设计使用了PC44封装形式的XC9572可编程逻辑器件共有30个可编程IO引脚、6个电源引脚和4个JTAG引脚。整个设计使用了XC9572器件80%的容量。图2所示是其实现电路图。
HDB3码是AMI(Alternate Mark Inversion)码的改进型。AMI码是用交替极性的脉冲表示码元“1”,用无脉冲表示码元“0”。为了防止电路长时间出现无脉冲状态,HDB3码的编码规则是:当没有4个或4个连续的“0”码时,就按AMI码规则编码;当出现4个或4个连续的“0”码时,每4个连续“0”的第一个“0”的变化应视它前面相邻的“1”的情况而定,如果它的前一个“1”的极性与前一个破坏点的极性相反而本身就是破坏点,则4个连续的“0”的第一个仍保持“0”;如果它的前一个“1”的极性与前一个破坏点的极性相同而本身就是破坏点,则第一个“0”改为“1”。这一规则保证了相继破坏点具有交替的极性,因而不会引入直流成分。4个连续“0”的第2,3个总是“0”。4个连续的“0“的第4个改为“1”,而极性与它前一个“1”的极性相同(破坏点极性交替规则)。在接收端,如果相继接收到两个极性相同的“1”?它的前面有3个连续的“0”?则将后一个“1”改为“0”?如果它的前面有2个连续的“0”,则将前后两个“1”改为“0”,这样就恢复了原来的数据信号。下面是一个HDB3码的例子:
其中:V代表破坏点,+V表示+1,-V表示-1,+B表示+1,-B表示-1。
图2 HDB3编解码电原理图
在根据上述原理实现HDB3编解码的图2电路中,BNC1插头送来的HDB3信号经变压器T1、U4及外围器件组成的单双变换电路后将转换成两路单极性码并送给可编程逻辑电路?XC9572?U5的43、44脚,然后经过可编程逻辑电路内部解码后,从可编程逻辑电路?XC9572?U5的24、25脚输出数据和时钟。从U5的26、27引脚输入的数据和时钟经其内部编码后,将从其2和8脚输出,而后再经过U3以及外围器件和变压器T1组成的单双变换电路形成HDB3码,并从BNC2插头输出。
3 FOUNDATION ISE 4.2I开发工具
FOUNDATION ISE 4.2I是开发XILINX公司可编程逻辑产品(包括CPLD和FPGA系列)的软件工具包。利用FOUNDATION ISE 4.2I提供的设计环境和设计工具,可以灵活高效地完成各种数字电路设计。在FOUNDATION ISE 4.2I的设计环境下,对CPLD和FPGA进行设计的过程如下:
(1) FOUNDATION ISE 4.2I的设计输入有图形输入和文本输入两种方式。此外,符号编辑器用于编辑用户的模块符号。在本系统中,笔者使用Verilog HDL语言作为文本输入方式。
(2) 设计实现是在FPGA或CPLD器件内物理地实现所需的逻辑。这个过程由FOUNDATION ISE 4.2I中的核心部分编译器完成。它可依据设计输入文件自动生成?主要用于器件编程、波形仿真、延时分析等所需的数据文件。
(3) 设计仿真是由仿真器和时延分析器利用编译器产生的数据文件来自动完成逻辑功能仿真和延时特性仿真(时序仿真)的。通过仿真可以发现设计中的错误与不足,以便对设计进行修改和完善,使其最终达到设计要求。
(4) 仿真结果正确以后,即可进行器件编程。即通过编程器(Programmer)将设计文件下载到FPGA芯片中。以在实际芯片中进行实际信号的时序验证?同时就芯片的实际运行性能进行系统测试。
4 HDB3的CPLD实现及仿真结果
用XC9572实现HDB3编解码设计主要由编码、时钟提取和译码三部分组成。其中编码部分是根据HDB3编码原理把二进制码的时钟和数据信号编码成两路单极性的HDB3码输出。其编码原理框图如图3所示。
时钟提取是译码的关键部分,原理是32.768MHz时钟提取两路HDB3单极性码的上升沿,并形成宽度2倍于32.768MHz时钟周期宽度的脉冲,然后用此脉冲复位32.768MHz时钟的16Bit计数器,最后根据16Bit计数器的结果产生2.048MHz时钟。
译码部分比较简单。它根据HDB3码的特点首先检测出极性破坏点,即找出4连零码中添加V码的位置(破坏点位置),其次去掉添加的V码,最后去掉4连零码中添加的B码以将其还原成单极性不归零码。译码原理框图如图4所示。
HDB3编解码的CPLD设计可采用上面介绍的FOUNDATION ISE 4.2I 开发工具来实现。设计输入采用Verilog HDL语言完成。设计分为三个模块:时钟模块、编码模块、译码模块。限于篇幅,本文未给出时钟模块、编码模块及译码模块的源代码。有需要者,可和作者联系。
5 结束语
本文介绍的用CPLD 实现HDB3编解码电路具有电路简单、可靠、价格便宜等优点。将该电路用于10MHz以太网到E1信号相互转接通信设备中后,经过实际测试,其性能指标完全能够满足CCITT建议G.703标准。另外,通过修改时钟提取部分及更换晶体,该电路还可用于其它速率的HDB3编解码。