数字基带传输系统的FPGA设计与实现
扫描二维码
随时随地手机看文章
摘要:为了提高系统的集成度和可靠性,降低功耗和成本,增强系统的灵活性,提出一种采用非常高速积体电路的硬件描述语言(VHDL语言)来设计数字基带传输系统的方法。详细阐述数字基带传输系统中信号码型的设计原则,数字基带传输系统中信号编码原理和译码原理;采用硬件描述语言来设计数字基带信号编码器和译码器并进行仿真;采用原理图设计方法设计数字基带传输系统并仿真;整个系统的设计在Quar-tusⅡ平台上完成,并在Altera公司的ACEX1K-EP1K30TC144-1芯片上实现。
关键词:数字通信;基带传输系统;VHDL;FPGA
0 引言
现代通信系统中,数字通信系统所占的比例越来越大,系统的数字化、集成化是未来发展的方向。随着超大规模集成电路的诞生,各种数字通信的专用芯片也相继问世,电路的集成化程度越来越高,设备的体积也越来越小,但是这些数字通信的专用芯片在价格上非常昂贵,给通信设备成本带来很大压力。近几年,FPGA(Field Programmable Gate Array)的推出,给数字通信电路的设计带来了更多的方便,摆脱了数字通信专用芯片功能单一、价格昂贵的缺点。目前实际的数字通信系统中,数字基带系统在应用上虽不如数字频带传输系统广泛,但仍有相当多的应用范围。因此,本文设计的方案采用FPGA来实现数字基带传输系统。
1 数字基带信号编、译码原理
数字信号的传输方式有两种:一种是基带传输,另一种是频带传输。在基带传输系统中,因为信道往往存在隔直流电容或耦合变压器,使得基带信号中的低频和直流成分难于通过。因此,并非所有原始基带数字信号都能在信道中传输。为了在传输信道中获得优良的传输特性,一般要将信号变换成适合于信道传输特性的传输码(又叫线路码),即进行适当的码型变换。
通常,在设计数字基带信号码型时应考虑以下原则:
(1)码型中低频、高频分量尽量少;
(2)码型中应包含定时信息,以便定时提取;
(3)码型变换设备要简单可靠;
(4)码型具有一定检错能力,若传输码型有一定的规律性,就可根据这一规律性来检测传输质量,以便做到自动检测;
(5)编码方案对发送消息类型不应有任何限制,适合于所有的二进制信号,这种与信源统计特性无关的特性称为对信源具有透明性;
(6)低误码增殖,误码增殖是指单个数字传输错误在接收端解码时,造成错误码元的平均个数增加,从传输质量要求出发,希望它越小越好;
(7)高的编码效率。
以上几点并不是任何基带传输码型均能完全满足的,常常是根据实际要求满足其中的一部分。
数字基带信号码型种类繁多,其中HDB3码(High Density Bipolar),即三阶高密度双极性码,具有不含直流成分,低频成分少,提取同步时钟方便,有内在检错能力等优点,成为广泛应用于基带传输系统中的码型。ITU-T G.703规定2 Mb/s,8 Mb/s和34 Mb/s的数字接口均采用HDB3码,因此以HDB3码为例进行分析。
HDB3码又称四连“0”取代码,它是AMI(Alternative Mark Inverse,传号交替反转)码的改进型。在AMI码中,如果连续的较长的一段序列为“0”码,则接收端会因为长时间无交替变化波形的控制而失去同步信号,而HDB3码克服了AMI码的上述缺点。此外,HDB3码还具有频谱能量主要集中在基波频率以下,占用频带较窄等特点。
1.1 编码原理
在消息的二进制代码序列中:
(1)当连“0”码的个数不大于3时,编码规则为“1”码变为“+1”、“-1”交替脉冲,“0”码仍为“0”。
(2)当代码序列中出现4个连“0”码或超过4个连“0”码时,把连“0”段按4个“0”分节,即“0000'’,并使第4个“0”码变为“1”码,用V脉冲表示,这样可以消除长连“0”现象。为了便于识别V脉冲,使V脉冲极性与前一个“1”脉冲极性相同,这样就破坏了AMI码极性交替的规律,所以V脉冲为破坏脉冲,把V脉冲和前3个连“0”称为破坏节“000V”。
(3)为了使脉冲序列仍不含直流分量,则必须使相邻的破坏点V脉冲极性交替。
(4)为了保证(2),(3)两个条件的成立,必须使相邻的破坏点之间有奇数个“1”码。如果原序列中破坏点之间的“1”码为偶数个,则必须补为奇数,即将破坏节中的第一个“0”码变为“1”,用B脉冲表示,这时的破坏节变为“B00V”形式。B脉冲极性与前一个“1”脉冲极性相反,而B脉冲极性与V脉冲极性相同。
1.2 译码原理
虽然编码规则比较复杂,但是它的译码原理却比较简单。从上述编码原理看出,每一个破坏符号V总是与前一非0符号同极性(包括B在内)。这就是说,在接收端译码时,由两个相邻的同极性码找到破坏脉冲V,同极性码中后面那个码就是V码。由V码向前的第三个码如果不是0码,表明它是B码,把V码和B码去掉后留下的都是信码,再进行全波整流,将所有的-1变成+1后就得到原消息代码。
2 编、译码模块的设计与仿真
编、译码模块的设计是在QuartusⅡ软件开发平台上,采用VHDL语言来实现的。
2.1 编码模块的设计
编码模块的方框图如图1所示。
四连“0”检测及补“1”电路 根据编码规则,当输入的信号遇到四连“0”码的时候,四连“0”码将由取代节“B00V”或者“000V”取代。因此,首先要检测出哪些是四连“0”码,哪些是非四连“0”码。在检测出四连“0”码后,还要将破坏脉冲V加入在第四个0的位置上。
取代节选择电路 当需要用取代节代替四连“0”码时,应判断采用哪一种取代节,即选择四连“0”码中第一个0码变为B码,还是变为0码。如果传号数为奇数,采用“000V”取代;如果传号数为偶数,则采用“B00V”取代。
破坏点形成电路 将补放的“1”码变成破坏点,使后续的V码与前面相邻的“1”码极性相同,破坏了交替反转的规律,形成了破坏点。
单—双极性变换电路 HDB3码极性形成电路有两个功能:一是正常传号“B”正负交替极性的形成;二是破坏点“V”脉冲的正负交替极性的形成,并输出HDB3码。
2.2 译码模块的设计
译码模块的方框图如图2所示。
破坏点检测电路 即找V码,在s消息的二进制代码中,若找出相邻两个同极性的码元,则可以确定后一个码元必为V码。
取代节去除电路 在V码出现时刻将信码流中的V码及其前面的第三位码置为“0”,即去掉取代节。
双—单极性变换电路 进行全波整流,将“+1”和“-1”还原为1。变换后的码元即为原信息码。
2.3 编码模块的仿真
根据图1所示的编码模块方框图在QuartusⅡ平台上用VHDL语言编程,编译通过后可进行仿真。
当输入信码为全“0”码时,编码结果为0-100-1+100+1-100-1+100+1……的序列,如图3所示。图中clock为时钟信号,data_in为输入信码,data_out为编码后的结果。data_out为00,表示“0”电平;data_out为01(十进制数字为1),表示“+1”电平;data_out为11(十进制数字为3),表示“-1”电平。
当输入信码为11111000001111100000……时,编码结果为-1+1-1+1-1000-10+1-1+1-1+1000+1……的序列,如图4所示。
由图3,图4可知,编码结果完全正确。
2.4 译码模块的仿真
根据图2所示,译码模块方框图在QuartusⅡ平台上用VHDL语言编程,经编译后可进行仿真。为了将译码结果与原始信号进行比较,将图3,图4的编码结果作为译码器的输入信号进行译码,将译码结果与以上的原始信号进行比较。
当输入的HDB3码为0-100-1+100+1-100-1+100+1-100-1+100+1……译码结果为全“0”码,如图5所示。图中clock为时钟信号,data_in为输入HDB3码,data_out为输出的信码。data_in为00,表示“0”电平;data_in为01,表示“+1”电平;data_in为11,表示“-1”电平。
将译码结果与编码前的原始信号做比较,可看出两者是一致的。
让输入信号data_in为31313000301313100010……,译码的结果为11111000001111100000……,如图6所示。
将译码结果与编码前的原始信号做比较,可看出两者仍是一致的。
3 数字基带系统设计与仿真
3.1 数字基带系统的设计
HDB3编译码数字基带系统的设计是在QuartusⅡ平台上,采用原理图的方式来实现的。首先,分别创建HDB3编码模块和译码模块符号文件;然后新建基带系统顶层文件;再在顶层文件中分别调入HDB3编码模块和译码模块符号文件;按要求连线后,即得到HDB3编译码数字基带系统电路。
3.2 数字基带系统的仿真
将以上原理图进行编译后,即可进行仿真。使输入信码为10110001000011000000111000001011,系统传输结果如图7所示。图中,clock为时钟信号,data_in为输入信码,hdb3_code为系统传输用的HDB3码,da_ta_out为输出信码。由图可知,系统的输出与输入完全一致。
3.3 数字基带系统的调试
当整个系统通过程序仿真后,将程序下载到ACEX1K-EP1K30TC144-1芯片,从而完成整个数字基带系统的设计。调试时把发送部分与接收部分连接起来进行系统调试,检测各测试点信号是否正确,在调试中,硬软件要结合起来。由于芯片可以高度集成,问题一般出现在软件上,故在调试中软件参数的更改是最重要的。
4 结语
采用FPGA技术实现数字基带传输系统,包括编码器的设计与仿真、译码器的设计与仿真以及整个数字基带传输系统的设计与仿真。最后,在Altera公司的ACEX1K-EP1K30TC144-1芯片上加以实现。整个系统具有结构简单,性能稳定,有效性好,可靠性高等优点。除此之外,其优点还体现在设计者不受芯片结构的影响,避免了重复设计,缩短了开发周期;设计的模块化,提高了软硬件的组合度,使设计成果可以重复利用;在选择实现系统目标器件的类型、规模、硬件结构等方面,具有更大的自由度;总的设计方案和功能结构被确定后,就可以进行多人多任务的并行工作方式,扩大了设计规模,提高了设计效率。