基于FPGA器件实现AMI编码器和译码器的设计

可编程逻辑

1339人已加入

描述

1、 引 言

现代电子系统设计中,数字系统设计所占的比例越来越大,数字化、集成化是未来系统发展的趋势;CPLD/FPGA作为可编程ASIC器件,将在数字逻辑系统设计中发挥越来越重要的作用。在数字通信领域,软件无线电在数字通信中,特别是第3代移动通信中的应用越来越成为研究的焦点,欧洲的ACIS(先进的通信技术与业务)计划,美国的多频带宽式手机与基站系统设计等都将着眼点放在基于软件无线电的第3代移动通信系统上。同时,软件无线电技术与计算机技术融合,也为第3代移动通信系统提供了良好的平台。在实际的数字通信系统中,数字基带传输在应用上虽不如频带传输广泛,但仍有相当多的应用范围。重要的是,数字基带传输的基本理论不仅适用于基带传输,而且还适用于频带传输。本文针对数字基带通信系统中广为应用的AMI码,采用基于FPGA在Max+plusII平台上进行设计与实现。

2 、AMI编码器VHDL设计

2.1 AMI码的设计

实际的基带传输系统,含有丰富直流和低频成分的基带信号不适宜在信道中传输。而对具有易获取定时信息、无直流成分和只有很小的低频成分、以及具有内在纠错能力的信号才适宜在基带传输系统中传输。AMI码、HDB3码均具有这些特点,因而广泛应用。

AMI码编码规则:代码中的0仍为传输码0,而把代码中的1交替地变为传输码的+1-1+1-1,…。据AMI码的编码规则和特点,在对它进行建模时,由于系统是基于CPLD/FPGA构成的模块,其输入、输出信号为TTL电平,即为单极性信号,而AMI码信号为双极性归零信号,而HDB3编码输出类似,因而须将输入的单极性信号转换成输出的双极性信号。为实现AMI编码功能,需将软、硬件混合设计,其功能模块分为两大部分,一部分通过VHDL语言建模和编程实现;另一部分通过由单/双极性变换电路来实现。AMI编码器组成框图如图1。

FPGA

图1的第一个方框的功能表示传号(即信码“1”)交替代码识别与极性控制,根据编码规则,代码中的0认为传输码0,而把代码中的1交替地交换为+1和-1(或-1和+1)。考虑到+1和-1不能直接通过FPGA/CPLD来实现,而是通过外围的单/双极性变换电路来实现,因此,首先建立识别符号来代替+1、-1和0。按此建模思想,可得到单/双极性控制的功能如表1。

FPGA

在编码过程中要考虑的问题是,如何把消息码中的0变为控制码“00” ;把消息码中的1交替的变为控制码“01”和“10” 。具体设计思路:建立一个功能模块电路,当输入为0时,数据选择器输出为“00”,当输入为1时,设置一个偶数计数器记录1的个数,当计数器记数为偶数,使数据选择器输出为“10”(或“01”),若计数器记数为奇数,则使数据选择器输出为“01”(或“10”)。

2.2 AMI编码器的实现流程图

FPGA

FPGA

根据“+1” 、“-1”的极性判断并通过给外围的单/双极性变换电路S2(4) 、S1(4) 、S0(4)的赋值来输出0、-1、+1。

在程序输入完毕并编译通过的情况下,选择图形编辑并在编辑区输入程序实体名,就可以出现程序实体框图如图4,此图看起来就像一个黑箱子,在外观上只有简单的输入、输出端口。双击此图形,便可以出现最开始输入的程序。这个图形实现的功能和程序实现的一样,它可以下载到CPLD的实验箱的硬件设备上,从硬件效果上可看到实验效果。

FPGA

2.3 AMI编码器的仿真结果与分析

FPGA

仿真波形最后的输出结果“codeout”并不是“0”、“+1”、或“-1”的多电平变化的波形,它实际上是一组地址控制码,在极性转换电路中选中不同的通道,即可实现单极性到双极性的转换。图5是一路信码经过(原码输入codein:100001000011000011000010)正、负交替编码变换后最终的输出波形仿真。根据AMI编码原则主要是将信号输入码流中的非零码转换成交替的“+1”和“-1”码,而其中的0码不变。

由图5可知:codeout0表示“-1” 码波形,codeout0由codeoutv1.Q和codeoutv2.Q的波形叠加而成。当codeoutv1.Q和codeoutv2.Q同为高电平时,codeout0输出为“ –1” 码,显示为高电平,否则输出为0,显示为低电平; codeout1表示“+1”码波形,codeout1由codeoutb1.Q和codeoutb2.Q的波形叠加而成。当codeoutb1.Q和codeoutb2.Q同为高电平时,codeout1输出为“+1” 码,显示为高电平,否则输出为0,显示为低电平;codeout用三位二进制码表示AMI码的编码结果(“0”表示原信号的“0” 码,其中1码表示“-1” ,其中2码表示“+1”)。但在编码过程中,由于基带传输系统都是从接收到的基带信号中提取位同步信号,而位同步信号却又依赖于代码的码型,如果代码出现长时间的连 “0” 符号,则基带信号中长时间出现 0 电位,从而使位同步恢复系统难以保证位同步信号的准确性,产生的结果是编码器输出结果最后促使正、负变换过程中触发沿改变,使“-1” 、“+1”的极性错误地改变。

3、 AMI译码器的VHDL设计

3.1 AMI译码器设计原则

AMI码译码原理:把输入的消息码流中的非零码转换成交替出现的+1和-1码,而0码不变。在译码过程中要考虑的问题是,如何把消息码中的“00”变为控制码0;把消息码中的交替的“01”和“10”变为控制码1。具体建模思路:建立一个功能模块电路,当检测到“00”时,数据选择器输出为0,当输入为“10”或“01” 时,使数据选择器均输出为1。输出结果中1码没有正、负性的区分。

3.2 AMI译码器的仿真结果与分析

FPGA

图6中zb是含有“+1”的输入码流: +1000000000+100000+100000;fb是含有“-1”的输入码流----00000-100000-100000-100000;clk是表示时钟输入;V2、V3表示时钟信号的提取;decode表示译码输出:1000010000110000110000。Zb和fb在orl功能器件(即加法器)的作用下叠加而成decode。功能元件zv和fv检测到非“+1” 、“-1”的正信号就输入为0。

整个系统程序编译成功后,可以创建顶层文件,生成下载编程文件,进行程序下载到可编程器件中。

4 、结 论

现代通信系统的发展随着VHDL的设计性语言的出现和ASIC的应用进入了一个新的阶段,特别是,对数字通信系统的ASIC芯片的研究为现代通信系统的设计有着重要的实践性意义。本文作者创新点在于针对数字基带传输系统中AMI码的特点,采用基于CPLD/FPGA的VHDL语言,仿真实现了AMI的编码器和译码器。仿真结果表明,采用基于FPGA的AMI码的设计实用、方便、简单易行。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分