科研训练论文数据基带延迟线设计资料文档格式.docx
《科研训练论文数据基带延迟线设计资料文档格式.docx》由会员分享,可在线阅读,更多相关《科研训练论文数据基带延迟线设计资料文档格式.docx(35页珍藏版)》请在冰豆网上搜索。
数字延迟技术亦称为数字存储技术,由于其卓越的抗干扰性能和灵活的控制方法,在许多方面优于模拟设备。
1.2延迟线实现方式
延迟线是指用于将电信号延迟一段时间的元件或者器件。
延迟线应在通带内有平坦的幅频特性和一定的相移特性(或延时频率特性),要有适当的匹配阻抗,衰减要小。
延迟线一般有数字和模拟两种实现方式。
模拟延迟线采用专用的脉冲延迟器件实现延迟控制,由于微波器件对频率的选择性,其缺点是动态范围小。
由于量化误差等因素,其缺点是无法满足高分辨率的要求。
数字延迟技术亦称为数字存储技术,由于其卓越的抗干扰性能和灵活的控制方法,在许多方面优于模拟设备。
本文研究的是数字延迟线的设计,它的输入信号是经过正交调制的基带信号。
1.3国内外研究现状
目前三种常见的数字延迟单元分别为:
基于复杂可编程逻辑器件(CPLD)及数控延迟器(AD9501)的精密延迟电路,采用51单片机的延迟系统,利用CL602六位多功能计数组合电路。
基于复杂可编程逻辑器件(CPLD)及数控延迟器(AD9501)的精密延迟电路。
作为一种用户根据各自需要而自行构造逻辑功能的数字集成电路,CPLD基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。
CPLD可以用梯形图来编辑逻辑功能,也可以用硬件描述语言来编写,常用的语言有VerilogHDL和VHDL。
采用51单片机设计的延时系统。
一般的单片机上都集成有CPU、程序存储器、数据存储器、输入/输出接口电路、定时/计数器、中断控制器、模/数转换器、数/模转化器、调制解调器等部件。
对于利用单片机设计的延时系统,可以使用汇编语言或是C语言设计程序进行延时。
采用CL602六位多功能计数组合电路,设计成一种新的可预置延时电路,并研制成“数字化脉冲延时器”。
简单的“CL602”是由大规模集成电路和发光数码管等组成的六位数字显示组合电路。
它可完成脉冲计数,频率测量,定时和计时等功能。
具有使用方便,读数直观、体积小、可靠性高等优点。
1.4常见的延迟线设计方法
模拟方法利用专用的脉冲延迟器件来实现延迟控制,而数字方法采用计数器法或存储器法实现延迟控制。
1.4.1模拟延迟线的常见设计方法
模拟延迟线的设计原理:
采用数控延迟线,可以精确的实现脉冲延迟。
以AnalogDevice公司的AD9501为例,其内部结构示意图如图1.4.1所示:
图1.4.1AD9501内部结构示意图
该模块主要由触发模块、斜波发生器、数模转换器(DAC)和比较器组成。
正常情况下,比较器输出低电平。
当输入脉冲上升沿到达时,触发斜波发生器开始工作,当其输出电压低于DAC的输出电压时,比较器输出翻转为高电平,直到斜波发生器被复位,比较器输出才恢复低电平。
由此可见,通过数控输入,改变DAC的输出电压,就可以控制输出脉冲和输入脉冲的相位关系,从而达到精确延迟的目的。
通过复位信号,则可以控制输出脉冲的宽度。
优缺点:
数控延迟线法的优点是可以达到很高分辨率,缺点是分辨率和动态范围无法兼顾。
如果要求很高的分辨率,就无法达到很大的动态范围,且需要用专有芯片,不利于集成化。
1.4.2数字延迟线的常见设计方法
方法一:
利用计数法的思想,以目标信号是的上升沿和下降沿为触发,输出一个窄脉冲信号,以此控制延迟信号的高低电平。
工作时序图如下:
图1.4.2a方法一的工作原理时序图
如图所示,当目标信号上升沿到来时,上升沿触发脉冲使计数器1开始计时,当计数器计数值counter1等于预置的延迟时间时,延迟输出为高电平,计数器清零。
当目标信号下降沿到来时,下降沿触发信号使计数器1再次开始计时,当计数器值counter1等于预置的延迟时间时,延迟输出为低电平,计数器清零,并等待目标上升沿。
优缺点:
方法一的优点是设计简单,占用资源少,只需要几个触发器和一个计数器,缺点是方法一只适用于延迟时间小于脉冲宽度,若延迟时间大于脉冲宽度,会出现逻辑错误。
所以方法一实现的延迟时间比较小,不能有很大的延迟,具有一定的局限性。
方法二:
同样利用计数器的方法,在方法一的基础,除了计数器1对延迟时间计数外,还增加了2个计数器。
计数器2对目标信号的高电平进行计数,当目标信号的低电平到达时,停止计数并锁存计数器2的值。
计数器3从延迟信号的上升沿开始计数,与计数器2比较,相等时输出低电平[17]。
工作原理时序图如下:
图1.4.2b方法二的工作原理时序图
(1)
图1.4.2c方法二的工作原理时序图
(2)
目标数字信号上升沿到来时,输出一个触发信号,使计数器1和计数器2同时开始计数。
其中,计时器1的功能不变,对预置的延迟时间计数,而计数器2对目标信号的高电平计数,当目标信号下降沿到来时,停止计数并存储当前计数值,等待下一个目标数字信号的上升沿到来。
当计数器1计数结束时,计数器3开始计数,并比较计数器3和计数器2的计数值。
如果计数器3的计数值小于计数器2的计数值,输出置高,且计数器3计数值加一,不断比较,直到计数器3的计数值和计数器2的计数值相等时,输出置低,给出异步清零信号,将所有计数器清零,回到初始状态,等待下一个上升沿信号的到来。
当目标信号的下一个上升沿到来时,重复上面逻辑就可以实现目标信号延时。
方法二的优点是设计也比较简单,在方法一的基础上,只加了两个计数器,而且解决了方法一的所说当延迟时间大于脉冲宽度时会出现的逻辑错误。
缺点是,此方法只适用于延迟时间小于目标信号周期,若延迟时间大于目标信号周期,会丢失数据,会产生错误的延迟输出。
方法三:
利用存储器法,FIFO是一种先进先出的数据存储器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不像普通存储器那样可以由地址线决定读取或写入某个指定的地址。
FIFO除异步清零信号外,所有的操作都是在时钟信号的上升沿有效,可以进行读数据、写数据、读写数据这些操作。
设计的一大问题是能判断FIFO堆栈的空、满状态。
在读操作时,不能为空;
在写操作时,不能为满。
判断FIFO的空/满就成了FIFO设计的核心问题。
具体实现过程:
当接收到预置的延迟值时,模块给出一个触发信号,使得FIFO进行写数据操作,同时计数器开始计数,当计数器值等于预置的值时,FIFO同时进行读写数据操作。
这样就能完成目标的延迟输出。
使用FIFO进行延迟设计时,为了确保数据的正确延时,必须保证延迟时间必须小于FIFO的存储深度。
可以利用FIFO的full信号作为反馈信号。
当full信号为高时,模块清零,并向上级模块反馈出错信号。
由于FIFO对目标信号没有特别需求,只是通过读写控制线来控制FIFO输出,因此它解决了方法一、二所遇到的问题,适用于任何一种情况。
相较之前,方法三为最优的方法。
二、总体电路设计
2.1总体原理
由以上分析,方法三为最优的方法。
我们选择FIFO存储器来实现数据基带延迟线。
整个电路主要分为三个部分:
(1)AD模块
对输入的模拟信号进行采样,变成数字信号,由设计要求,要分别完成I/Q路90M采样。
(2)FIFO模块
将I/Q路数字信号送入FIFO,存储并延迟一定时间送出。
(3)DA模块
将延迟的数字信号恢复为模拟信号。
图2.1数字延迟线设计基本框图
整个电路是在FPGA的控制下运行。
数据延迟线的总体工作原理如下。
两片ADC芯片AD9461对信号进行奈奎斯特采样,采样频率为90M,其中一路输出I路基带信号,一路输出Q路基带信号。
I/Q路信号时序送到FPGA中,FPGA将其送至FIFO中存储,当达到延时时间时,FPGA再控制数据由FIFO中读出。
读出的数字信号送入DAC器件AD9777恢复成原来的模拟信号。
而且我们要设计的数据延迟线是可编程的。
可选择四种延迟时间,分别为10μs,75μs,150μs,300μs(FIFO的最大延迟时间为300μs)。
FPGA必须不停对FIFO进行检测,如果有延时时间更新,必须对FIFO进行复位,清空,重复存储。
2.2ADC模块
2.2.1芯片选择
ADC模块对输入的模拟信号进行采样,将其转换为数字信号,要求完成基带I/Q数据的90M采样。
所以根据要求,我们选择的芯片必须适合工作在基带,且能完成90M的采样。
AD9461是一款16-bit单芯片模数转换器,内置跟踪保持电路,常用于数据采集、仪器仪表、核磁共振成像以及雷达接收机。
AD9461的采样速率高达130MSPS,适合工作在基带(<
100MHz)与中频,且具有出众的基带中频信噪比(SNR)性能。
本设要求90M基带采样,故AD9461可以保证满足采样率的情况下好的性噪比。
此外,由于其出众的线性度,提供输出时钟和易于使用等显著特点,AD9461是我们首选的芯片。
AD9461采用3.3V或5.0V电源供电,根据性能运行的需求,要求低压差分输入时钟信号。
对于大多数应用来说,无需外部基准电压源或驱动器件。
数据输出符合CMOS或LVDS标准(符合ANSI-644标准)且包括均值,能降低短跟踪距离所需的全部电流。
2.2.2硬件电路接口连接
硬件电路设计中,需要两片AD9461,完成对I、Q两路基带信号的采样,两片AD9461的硬件电路连接基本相同,如下图所示。
特殊的引脚说明如下:
芯片由40(CLK+),41(CLK—)引脚输入90M差分时钟,由系统分频得到。
模拟信号由22(VIN+),23(VIN-)输入。
采样得到的数字16bit数字信号,由70-74(D0-D4),77-86(D5-D14),89(D15)引脚输出,采用了CMOS输出。
图2.2.2AD9461硬件电路设计图
2.3FIFO模块
2.3.1FIFO模块芯片选择
我们的系统要求FIFO能对双路16位数据进行输入,存储,延时输出。
并且最大延时能达到300us。
而且延时要是可编程的。
最终采用的FIFO器件是IDT72V36110。
它有如下几个特点:
有36In×
36Out,36In×
18Out,36In×
9Out,18In×
36Out,9In×
36Out几种输入输出模式,每一字节带有一位校验位。
可以通过BM,IM,OM三个引脚设定模式。
这样就可以选择36In×
36Out总线模式来实现双路16bit即32bit的延时输出。
表2.3.1a总线配置模式匹配
BM
IW
OW
写端口宽度
读端口宽度
L
×
36
H
18
9
具有满(FF),半满(HF)和空(EF)三种状态指示,并且具有可编程的信号指示(PAE,PAF)可用来控制特定的延时输出。
我们的延迟线主要就是利用PAE信号。
可达100MHZ操作频率,数据读写周期仅为10ns。
固定的首字传输时延,重传数据零字节时延。
具有两种复位功能,满足用户不同需求。
具有电源管理功能,自动减少电源消耗。
相互独立的写时钟和读时钟。
下表为IDT72V36110的工作状态:
表2.3.1bFIFO工作状态
WCLK
RCLK
IDT72V36100
1
上升沿
并行向FIFO写数据
并行写寄存器
并行写入“空”或“满”的偏移量,从而实现延时时间(参考门限nPAE)的设置
并行读出写入寄存器当中的延时时间(参考门限nPAE)
无操作
将数据写入FIFO
同时读写数据
2.3.2硬件电路接口连接
图2.3.2IDT72V36110连接电路
D0-D35,36路输入数据,Q0-Q35,36路输出数据。
输入引脚。
引脚6-IW,引脚112-BW,引脚119-OW,全部接地,即将总线设置为36In×
36Out模式。
引脚1-
,引脚2-
,引脚104-
,引脚125-
。
按FIFO工作状态图,软件编程设置这些引脚,完成FIFO工作状态切换,从而完成延迟。
输出引脚,引脚110-
如果FIFO存储器中字数低于设定偏移量n,
(可编程几乎空)为0,如果FIFO存储器中字数多于或等于偏移量n,
为1。
在软件实现部分,通过对偏移量n的设定,再利用
特性,来实现固定延时输出。
2.4DAC模块
2.4.1DAC模块芯片选择
DAC芯片将延迟的数字信号恢复为模拟信号。
由于ADC中的芯片是16bit,所以DAC中也选择16bit。
我们选择的AD9777是双路16bit数模转换器,所以只要一片AD9777就能实现将I/Q路信号恢复为模拟信号。
AD9777属于全新的引脚兼容、高速、双通道插值转换器系列,提供16位分辨率,最大输入数据速率为160MSPS(无插值),最大DAC更新速率为400MSPS(8x插值)。
该系列器件具有可选插值率(2x/4x/8x)以及能够以Fs/2、Fs/4或Fs/8混频的复合调制器。
AD9777与FPGA通信使用串行接口(SPI)。
它可以支持四根信号线,时钟信号线SCLK,使能信号线CS,串行数据输入/输出端口SDIO,串行数据输出端口SDO。
如下图所示:
图2.4.1aAD9777串行接口
AD9777的一个通信周期由两个阶段组成。
第1阶段是指令周期,用来在通信周期的前8个SCLK的上升沿,把指令字节写入到AD9777。
指令字节定义即将到达的数据传输是读还是写,数据传输的位数,以及数据传输的第一个字节存入寄存器的起始地址。
通信周期的第2阶段,是数据传输周期,在通信周期除了指令周期的全部SCLK上升沿写入。
可以以1-4字节的方式传输,一般选用多字节传输。
其他关于数据传输的方式由指令周期的数据定义,具体见下表。
8位指令字节含义如下:
MSBLSB
I7
I6
I5
I4
I3
I2
I1
I0
读/写
N1
N0
A4
A3
A2
A1
A0
I7:
1表示读操作;
0表示写操作;
N1,N0设定在数据传输周期确定要传送的字节数;
A4,A3,A2,A1,A0设定数据首字节访问寄存器地址;
AD9777的SPI端口,可支持最高有效位(MSB)或最低有效位(LSB)数据格式。
此功能由寄存器00h的第六位控制(见下文)。
默认是MSB优先。
下面是两种模式的串行寄存器接口时序图。
图2.4.1bMSB优先串行接口时序
图2.4.1cLSB优先串行接口时序
通过完整的通信周期,从SPI接口向各寄存器写入控制字数据,能提高芯片的可编程性能,从而增强系统级选项。
下表为SPI接口的模式控制图:
表2.4.1模式控制(通过SPI接口)
地址
第7位
第6位
第5位
第4位
第3位
第2位
第1位
第0位
00h
SDIO双向0=输入1=I/O
LSB,MSB
0=MSB
1=LSB
置1时软件重置
置1时关闭DAC输出电流
置1时关闭所有数模功能
1R/2R模式DAC输出电流由一个或两个外部电阻设置0=2R,1=1R
PLL_LOCK指标
01h
滤波器插值率(1×
2×
4×
8×
)
调制模式(None,fS/2,fS/4,fS/8)
0=无零插值滤波
置1时允许零插值
1=实混合模式
0=复杂混合模式
0=e−jωt
1=e+jωt
0=PLL_LOCK
1=DATACLK
02h
0=有符号输入数据
1=无符号
0=两端口输出模式
1=一端口输入模式
DATACLK驱动加强
DATACLK反转
0=无反转
1=反转
ONEPORTCLK反转
IQSEL反转
QFirst
0=IFirst
1=QFirst
03h
数据速率2时钟输出
PLL分频器(预分频器)
04h
0=PLLOFF2
1=PLLON
0=自动电荷泵控制
1=可编程
PLL充电泵控制
05h
IDAC精细的增益调整
06h
IDAC粗增益调整
07h
IDAC偏移调整第9位
IDAC偏移调整第8位
IDAC偏移调整第7位
IDAC偏移调整第6位
IDAC偏移调整第5位
IDAC偏移调整第4位
IDAC偏移调整第3位
IDAC偏移调整第2位
08h
0=IOFFSETonIOUTA
1=IOFFSETonIOUTB
IDAC偏移调整第1位
IDAC偏移调整第0位
09h
QDAC精细增益调整
0Ah
QDAC粗增益调整
0Bh
QDAC偏移调整第9位
QDAC偏移调整第8位
QDAC偏移调整第7位
QDAC偏移调整第6位
QDAC偏移调整第5位
QDAC偏移调整第4位
QDAC偏移调整第3位
QDAC偏移调整第2位
0Ch
QDAC偏移调整第1位
QDAC偏移调整第0位
ODh
寄存器类型
注:
默认值以粗体显示。
2.4.2硬件接口电路连接
图2.4.2AD9777硬件电路设计图
几个特殊的管脚:
5-CLK+,6-CLK-,输入90M差分时钟。
PIB0-P1B15,P2B0-P2B15,输入I/Q路数字信号。
输出引脚。
两路模拟输出分别是(73、72)和(69、68)。
8-DATACLK/PLL_LOCK。
该引脚指示PLL的状态。
1表示PLL处于锁定状态。
0表示PLL没有锁定。
此引脚也可被编程作为输入或输出(地址01h,第0位)DATACLK信号。
在软件设计中,我们把管脚8作为DATACLK信号。
54-SPI_SDIO。
串行数据输入/输出。
双向数据引脚,寄存器地址00h的第7位控制数据方向。
可以只作为输入,也可以作为双向输入输出。
默认值设置是0,即只作为输入。
53-SPI_SDO。
串行数据输出。
当SDIO作为输入时,SDO作为输出;
当SDIO作为双向输入输出时,SDO作为高阻状态。
此引脚也可以被用来作为数据速率时钟输出。
57-RESET,复位。
管脚值为1时复位所有的SPI端口寄存器为其默认值,包括地址00h。
软件复位也可以通过写寄存器00h第五位为逻辑1。
不同的是软件复位对地址00h没有作用。
三、软件设计
3.1ADC模块
AD9461使用简单,芯片初始化后,接上时钟信号后,会自动开始模数转换。
软件编程只需要将AD9461采样以后的信号赋给程序即可,为后面的FIFO操作做准备。
图3.1aADC模块图
主要信号如下:
AD1_clk_90m,AD2_clk_90m:
两片ADC的输出同步时钟。
AD1out,AD2out:
两片ADC的