




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科生科研训练结题报告本科生科研训练结题报告 数据基带延迟线的设计数据基带延迟线的设计 项目类型 项目类型 校级普通项目校级普通项目 负责人 负责人 10078101201007810120 魏明君魏明君 小组成员 小组成员 10031101081003110108 严蕾严蕾 10161201151016120115 朱梅虹朱梅虹 指导教师 指导教师 芮义斌芮义斌 副教授副教授 20132013年年9 9月月4 4日日 摘要 延迟线在电子工程系统中有着非常广泛的应用 传统的方法是采用模拟延迟 线 用专用的脉冲延迟器件实现延迟控制 其缺点是动态范围小 随着数字技术 的发展 数字延迟技术由于其卓越的抗干扰性能和灵活的控制方法 在许多方面 优于模拟延迟 数字延迟线的基本原理为 将前端输入信号进行采样变成数 字信号以便存储 经存储后恢复输出 其存储时间的长短即为数字延迟线的延 迟时间 改变存储时间也就能改变延迟时间 本文主要是基于 verilog 语言和 FPGA 设计延迟线 用于将接收到的目标信号进行采样 延时 回放 首先 我们查阅资料 了解延迟线国内外研究现状 学习常见的几种设计 方案 通过对这些方法进行比较 论述它们的优缺点 最后综合比较得出 本 文所用的利用 FIFO 存储器的方法是最优的 然后 我们将设计延迟线电路分为 ADC DAC FIFO 三个模块来分别实现 结 合单个模块的功能要求 我们分别选择了芯片 AD9461 AD9777 和 IDT72V36110 并完成了它们的硬件电路连接 最后 我们在理解原理的基础上 对三个模块分别进行软件编程 其中核 心模块 FIFO 的设计比较复杂 我们通过 verilog 语言编程实现对内部工作状态 转换 我们设计了 7 种工作状态 来完成 存储部分 的设计 我们通过 quartus 软件对程序进行编译仿真 得到相应的仿真时序图 利 用仿真结果验证了延迟线设计的准确性 关键词关键词 数字延迟线 数字延迟线 FPGA Quartus VerilogFPGA Quartus Verilog FIFOFIFO 目录目录 一 延迟线原理 1 1 1 课题研究背景 1 1 2 延迟线实现方式 1 1 3 国内外研究现状 1 1 4 常见的延迟线设计方法 2 二 总体电路设计 6 2 1 总体原理 6 2 2 ADC 模块 7 2 3 FIFO 模块 8 2 4 DAC 模块 12 三 软件设计 18 3 1 ADC 模块 18 3 2 DAC 模块 19 3 3 FIFO 模块 25 四 总体电路设计 31 五 结论 32 六 参考文献 32 0 一 延迟线原理 1 1 课题研究背景 延迟线在电子工程系统中有着非常广泛的应用 在许多电子对抗干扰机中 需要对接收到的目标信号进行存储 然后经干扰调制后再发射回目标信号 其 中 延迟线的作用是将电信号延迟一段时间 在雷达系统中诸如 MTI 延迟对消 干扰机距离欺骗信号产生以及相控阵中相位偏移控制等都有应用 但传统的方 法是采用模拟延迟线 例如固定长度传输线 铁酸盐加载电缆 超声波和磁波延迟 线等 最早使用的射频波形存储技术是模拟射频存储 由取样开关 放大器和 延迟线构成环路 但是 随着数字技术的发展 越来越多的系统要求能与之匹配的 数字延迟线 数字延迟技术亦称为数字存储技术 由于其卓越的抗干扰性能和灵 活的控制方法 在许多方面优于模拟设备 本文主要是基于 verilog 语言和 FPGA 设计延迟线 用于将接收到的目标信号进行采样 延时 回放 1 2 延迟线实现方式 延迟线是指用于将电信号延迟一段时间的元件或者器件 延迟线应在 通带内有平坦的幅频特性和一定的相移特性 或延时频率特性 要有适当 的匹配阻抗 衰减要小 延迟线一般有数字和模拟两种实现方式 模拟延迟线采用专用的脉冲 延迟器件实现延迟控制 由于微波器件对频率的选择性 其缺点是动态范围小 数字延迟线的基本原理为 将前端输入信号进行采样变成数字信号以便存储 经存储后恢复输出 其存储时间的长短即为数字延迟线的延迟时间 改变存储 时间也就能改变延迟时间 由于量化误差等因素 其缺点是无法满足高分辨率 的要求 数字延迟技术亦称为数字存储技术 由于其卓越的抗干扰性能和灵活的控制 方法 在许多方面优于模拟设备 本文研究的是数字延迟线的设计 它的输入信 号是经过正交调制的基带信号 1 3 国内外研究现状 目前三种常见的数字延迟单元分别为 基于复杂可编程逻辑器件 1 CPLD 及数控延迟器 AD9501 的精密延迟电路 采用51单片机的延迟系 统 利用CL602六位多功能计数组合电路 基于复杂可编程逻辑器件 CPLD 及数控延迟器 AD9501 的精密 延迟电路 作为 一种用户根据各自需要而自行构造逻辑功能的数字集成电 路 CPLD基本设计方法是借助集成开发软件平台 用原理图 硬件描述语 言等方法 生成相应的目标文件 通过下载电缆 在系统 编程 将代码 传送到目标芯片中 实现设计的数字系统 CPLD可以用梯形图来编辑逻辑 功能 也可以用硬件描述语言来编写 常用的语言有Verilog HDL和 VHDL 采用51单片机设计的延时系统 一般的单片机上都集成有 CPU 程序 存储器 数据存储器 输入 输出接口电路 定时 计数器 中断控制器 模 数转换器 数 模转化器 调制解调器等部件 对于利用单片机设计的延时 系统 可以使用汇编语言或是 C语言设计程序进行延时 采用CL602六位多功能计数组合电路 设计成一种新的可预置延时电路 并研制成 数字化脉冲延时器 简单的 CL602 是由大规模集成电路和 发光数码管等组成的六位数字显示组合电路 它可完成脉冲计数 频率测量 定时和计时等功能 具有使用方便 读数直观 体积小 可靠性高等优点 1 4 常见的延迟线设计方法 模拟方法利用专用的脉冲延迟器件来实现延迟控制 而数字方法采用计数 器法或存储器法实现延迟控制 1 4 1 模拟延迟线的常见设计方法 模拟延迟线的设计原理 采用数控延迟线 可以精确的实现脉冲延迟 以 Analog Device公司的AD9501为例 其内部结构示意图如图1 4 1所示 DAC 图1 4 1 AD9501内部结构示意图 2 该模块主要由触发模块 斜波发生器 数模转换器 DAC 和比较器组成 正常情况下 比较器输出低电平 当输入脉冲上升沿到达时 触发斜波发生器 开始工作 当其输出电压低于DAC的输出电压时 比较器输出翻转为高电平 直到斜波发生器被复位 比较器输出才恢复低电平 由此可见 通过数控输入 改变DAC的输出电压 就可以控制输出脉冲和 输入脉冲的相位关系 从而达到精确延迟的目的 通过复位信号 则可以控制 输出脉冲的宽度 优缺点 数控延迟线法的优点是可以达到很高分辨率 缺点是分辨率和动 态范围无法兼顾 如果要求很高的分辨率 就无法达到很大的动态范围 且需 要用专有芯片 不利于集成化 1 4 2 数字延迟线的常见设计方法 方法一 利用计数法的思想 以目标信号是的上升沿和下降沿为触发 输出一个窄脉冲信号 以此控制延迟信号的高低电平 工作时序图如下 图1 4 2a 方法一的工作原理时序图 如图所示 当目标信号上升沿到来时 上升沿触发脉冲使计数器1开始计时 当计数器计数值counter1等于预置的延迟时间时 延迟输出为高电平 计数器清 零 当目标信号下降沿到来时 下降沿触发信号使计数器1再次开始计时 当计 数器值counter1等于预置的延迟时间时 延迟输出为低电平 计数器清零 并等 待目标上升沿 优缺点 方法一的优点是设计简单 占用资源少 只需要几个触发器和一 个计数器 缺点是方法一只适用于延迟时间小于脉冲宽度 若延迟时间大于脉 3 冲宽度 会出现逻辑错误 所以方法一实现的延迟时间比较小 不能有很大的 延迟 具有一定的局限性 方法二 同样利用计数器的方法 在方法一的基础 除了计数器1对延迟 时间计数外 还增加了2个计数器 计数器2对目标信号的高电平进行计数 当 目标信号的低电平到达时 停止计数并锁存计数器2的值 计数器3从延迟信号 的上升沿开始计数 与计数器2比较 相等时输出低电平 17 工作原理时序图 如下 图1 4 2b 方法二的工作原理时序图 1 图1 4 2c 方法二的工作原理时序图 2 目标数字信号上升沿到来时 输出一个触发信号 使计数器1 和计数器2 同 时开始计数 其中 计时器1的功能不变 对预置的延迟时间计数 而计数器2 4 对目标信号的高电平计数 当目标信号下降沿到来时 停止计数并存储当前计 数值 等待下一个目标数字信号的上升沿到来 当计数器1计数结束时 计数器3 开始计数 并比较计数器3和计数器2的计数值 如果计数器3的计数值小于计数 器2 的计数值 输出置高 且计数器3计数值加一 不断比较 直到计数器3的计 数值和计数器2 的计数值相等时 输出置低 给出异步清零信号 将所有计数器 清零 回到初始状态 等待下一个上升沿信号的到来 当目标信号的下一个上升 沿到来时 重复上面逻辑就可以实现目标信号延时 优缺点 方法二的优点是设计也比较简单 在方法一的基础上 只加了两 个计数器 而且解决了方法一的所说当延迟时间大于脉冲宽度时会出现的逻辑 错误 缺点是 此方法只适用于延迟时间小于目标信号周期 若延迟时间大于 目标信号周期 会丢失数据 会产生错误的延迟输出 方法三 利用存储器法 FIFO 是一种先进先出的数据存储器 他与普通 存储器的区别是没有外部读写地址线 这样使用起来非常简单 但只能顺序 写入数据 顺序的读出数据 其数据地址由内部读写指针自动加 1完成 不 像普通存储器那样可以由地址线决定读取或写入某个指定的地址 FIFO除异步清零信号外 所有的操作都是在时钟信号的上升沿有效 可以 进行读数据 写数据 读写数据这些操作 设计的一大问题是能判断FIFO堆栈 的空 满状态 在读操作时 不能为空 在写操作时 不能为满 判断FIFO的 空 满就成了FIFO设计的核心问题 具体实现过程 当接收到预置的延迟值时 模块给出一个触发信号 使得 FIFO进行写数据操作 同时计数器开始计数 当计数器值等于预置的值时 FIFO同时进行读写数据操作 这样就能完成目标的延迟输出 使用FIFO 进行延迟设计时 为了确保数据的正确延时 必须保证延迟时间 必须小于FIFO 的存储深度 可以利用FIFO 的full 信号作为反馈信号 当full 信号为高时 模块清零 并向上级模块反馈出错信号 优缺点 由于FIFO对目标信号没有特别需求 只是通过读写控制线来控制 FIFO输出 因此它解决了方法一 二所遇到的问题 适用于任何一种情况 相 较之前 方法三为最优的方法 5 二 总体电路设计 2 12 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进行复位 清空 重复 6 存储 2 2 ADC模块 2 2 1 芯片选择 ADC模块对输入的模拟信号进行采样 将其转换为数字信号 要求完成基带 I Q数据的90M采样 所以根据要求 我们选择的芯片必须适合工作在基带 且 能完成90M的采样 AD9461是一款16 bit单芯片模数转换器 内置跟踪保持电路 常用于数据 采集 仪器仪表 核磁共振成像以及雷达接收机 AD9461的采样速率高达130MSPS 适合工作在基带 100 MHz 与中频 且具有出众的基带中频信噪比 SNR 性能 本设要求90M基带采样 故AD9461 可以保证满足采样率的情况下好的性噪比 此外 由于其出众的线性度 提供输出时钟和易于使用等显著特点 AD9461是我们首选的芯片 AD9461采用3 3 V或5 0 V电源供电 根据性能运行的需求 要求低压差分 输入时钟信号 对于大多数应用来说 无需外部基准电压源或驱动器件 数据 输出符合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输出 7 图2 2 2 AD9461硬件电路设计图 2 3 FIFO模块 2 3 1 FIFO模块芯片选择 我们的系统要求 FIFO 能对双路 16 位数据进行输入 存储 延时输出 并 且最大延时能达到 300us 而且延时要是可编程的 最终采用的 FIFO 器件是 IDT72V36110 它有如下几个特点 有 36 In 36 Out 36 In 18Out 36 In 9 Out 18 In 36 Out 9 In 36Out 几种输入输出模式 每一字节带有一位校验位 可以通过 8 BM IM OM 三个引脚设定模式 这样就可以选择 36 In 36 Out 总线模式来实 现双路 16bit 即 32bit 的延时输出 表 2 3 1a 总线配置模式匹配 BMIWOW 写端口宽度读端口宽度 LLL 36 36 HLL 36 18 HLH 36 9 HHL 18 36 HHH 9 36 具有满 FF 半满 HF 和空 EF 三种状态指示 并且具有可编程的信号 指示 PAE PAF 可用来控制特定的延时输出 我们的延迟线主要就是利用 PAE 信 号 可达 100MHZ 操作频率 数据读写周期仅为 10ns 固定的首字传输时延 重传数据零字节时延 具有两种复位功能 满足用户不同需求 具有电源管理 功能 自动减少电源消耗 相互独立的写时钟和读时钟 下表为 IDT72V36110 的工作状态 9 表 2 3 1b FIFO 工作状态 WCLKRCLKIDT72V36100 0011 上升沿 并行向 FIFO 写 数据 0101 上升沿并行写寄存器 并行写入 空 或 满 的偏 移量 从而实 现延时时间 参考门限 nPAE 的设置 0110 上升沿 并行读出写入 寄存器当中的 延时时间 参考 门限 nPAE 111 无操作 10 上升沿 将数据写入 FIFO 1 0 上升沿同时读写数据 10 111 无操作 2 3 2 硬件电路接口连接 图 2 3 2 IDT72V36110 连接电路 特殊的引脚说明如下 D0 D35 36 路输入数据 Q0 Q35 36 路输出数据 输入引脚 引脚 6 IW 引脚 112 BW 引脚 119 OW 全部接地 即将总 线设置为 36 In 36 Out 模式 11 输入引脚 引脚 1 引脚 2 引脚 104 引脚 125 按 FIFO 工作状态图 软件编程设置这些引脚 完成 FIFO 工作状态切换 从而 完成延迟 输出引脚 引脚 110 如果 FIFO 存储器中字数低于设定偏移量 n 可编程几乎空 为 0 如果 FIFO 存储器中字数多于或等于偏移量 n 为 1 在软件实现部分 通过对偏移量 n 的设定 再利用特性 来实现 固定延时输出 2 4 DAC 模块 2 4 1 DAC 模块芯片选择 DAC芯片将延迟的数字信号恢复为模拟信号 由于ADC中的芯片是16bit 所 以DAC中也选择16bit 我们选择的AD9777是双路16bit数模转换器 所以只要一 片AD9777就能实现将I Q路信号恢复为模拟信号 AD9777属于全新的引脚兼容 高速 双通道插值转换器系列 提供16位分 辨率 最大输入数据速率为160 MSPS 无插值 最大DAC更新速率为400 MSPS 8x插值 该系列器件具有可选插值率 2x 4x 8x 以及能够以Fs 2 Fs 4 或Fs 8混频的复合调制器 AD9777 与 FPGA 通信使用串行接口 SPI 它可以支持四根信号线 时钟 信号线 SCLK 使能信号线 CS 串行数据输入 输出端口 SDIO 串行数据输出端 口 SDO 如下图所示 12 图 2 4 1a AD9777 串行接口 AD9777 的一个通信周期由两个阶段组成 第 1 阶段是指令周期 用来在通 信周期的前 8 个 SCLK 的上升沿 把指令字节写入到 AD9777 指令字节定义即 将到达的数据传输是读还是写 数据传输的位数 以及数据传输的第一个字节 存入寄存器的起始地址 通信周期的第 2 阶段 是数据传输周期 在通信周期除了指令周期的全部 SCLK 上升沿写入 可以以 1 4 字节的方式传输 一般选用多字节传输 其他关 于数据传输的方式由指令周期的数据定义 具体见下表 8 位指令字节含义如下 MSB LSB I7I6I5I4I3I2I1I0 读 写 N1N0A4A3A2A1A0 I7 1 表示读操作 0 表示写操作 N1 N0 设定在数据传输周期确定要传送的字节数 A4 A3 A2 A1 A0 设定数据首字节访问寄存器地址 13 AD9777 的 SPI 端口 可支持最高有效位 MSB 或最低有效位 LSB 数据 格式 此功能由寄存器 00h 的第六位控制 见下文 默认是 MSB 优先 下面 是两种模式的串行寄存器接口时序图 图 2 4 1b MSB 优先串行接口时序 图 2 4 1c LSB 优先串行接口时序 通过完整的通信周期 从 SPI 接口向各寄存器写入控制字数据 能提高芯 片的可编程性能 从而增强系统级选项 下表为 SPI 接口的模式控制图 表 2 4 1 模式控制 通过 SPI 接口 地 址 第 7 位 第 6 位 第 5 位第 4 位第 3 位 第 2 位第 1 位第 0 位 00 h SDIO 双向 0 0 输输 入入 1 I O LSB M SB 0 MSB0 MSB 1 LSB 置 1 时 软件重 置 置 1 时 关闭 DAC 输 出电流 置 1 时 关 闭 所 有 数 模 功 能 1R 2R 模 式 DAC 输 出电流由 一个或两 个外部电 阻设置 0 2R0 2R 1 1 R PLL LO CK 指标 01 滤波滤波调制模调制模 0 0 1 1 实混合实混合 0 0 PLL LO0 PLL LO 14 h 器插 值率 1 2 4 8 器插 值率 1 2 4 8 式 NoneNone fS 2 fS 4 fS 8 式 NoneNone fS 2 fS 4 fS 8 无无 零零 插插 值值 滤滤 波波 置 1 时 允 许 零 插 值 模式模式 0 复杂混 合模式 e j t 1 e j t CKCK 1 DATACL K 02 h 0 0 有有 符号符号 输入输入 数据数据 1 无 符号 0 0 两两 端口端口 输出输出 模式模式 1 一 端口 输入 模式 DATACL K 驱动 加强 DATACL K 反转 0 0 无反无反 转转 1 反转 ONEPORTCL K 反转 0 0 无反转无反转 1 反转 IQSEL 反转 0 0 无反无反 转转 1 反转 Q First 0 I0 I FirstFirst 1 Q First 03 h 数据 速率 2时 钟输 出 PLL 分 频器 预分 频器 PLL 分频 器 预分 频器 04 h 0 0 PLLPLL OFFOFF2 1 PLL ON 0 0 自自 动电动电 荷泵荷泵 控制控制 1 可 编程 PLL 充电 泵控制 PLL 充 电泵控 制 PLL 充电 泵控制 05 h IDAC 精细 的增 益调 整 IDAC 精细 的增 益调 整 IDAC 精 细的增 益调整 IDAC 精 细的增 益调整 IDA C 精 细 的 增 益 调 IDAC 精细 的增益调 整 IDAC 精 细的增 益调整 IDAC 精细 的增益调 整 15 整 06 h IDA C 粗 增 益 调 整 IDAC 粗增 益调整 IDAC 粗 增益调 整 IDAC 粗增 益调整 07 h IDAC 偏移 调整 第 9 位 IDAC 偏移 调整 第 8 位 IDAC 偏 移调整 第 7 位 IDAC 偏 移调整 第 6 位 IDA C 偏 移 调 整 第 5 位 IDAC 偏移 调整第 4 位 IDAC 偏 移调整 第 3 位 IDAC 偏移 调整第 2 位 08 h 0 0 I IOFFSE OFFSE T T on on I IOUTA OUTA 1 IOFFSE T on IOUTB IDAC 偏 移调整 第 1 位 IDAC 偏移 调整第 0 位 09 h QDAC 精细 增益 调整 QDAC 精细 增益 调整 QDAC 精 细增益 调整 QDAC 精 细增益 调整 QDA C 精 细 增 益 调 整 QDAC 精细 增益调整 QDAC 精 细增益 调整 QDAC 精细 增益调整 0A h QDA C 粗 增 益 调 整 QDAC 粗增 益调整 QDAC 粗 增益调 整 QDAC 粗增 益调整 0B h QDAC 偏移 调整 第 9 位 QDAC 偏移 调整 第 8 位 QDAC 偏 移调整 第 7 位 QDAC 偏 移调整 第 6 位 QDA C 偏 移 调 整 第 5 位 QDAC 偏移 调整第 4 位 QDAC 偏 移调整 第 3 位 QDAC 偏移 调整第 2 位 0C0 0 QDAC 偏QDAC 偏移 16 hI IOFFSE OFFSE T T on on I IOUTA OUTA 1 IOFFSE T on IOUTB 移调整 第 1 位 调整第 0 位 OD h 寄 存 器 类 型 寄存器类 型 寄存器 类型 寄存器类 型 注 默认值以粗体显示 2 4 2 硬件接口电路连接 17 图2 4 2 AD9777硬件电路设计图 几个特殊的管脚 输入引脚 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信号 18 54 SPI SDIO 串行数据输入 输出 双向数据引脚 寄存器地址 00h 的 第 7 位控制数据方向 可以只作为输入 也可以作为双向输入输出 默认值设 置是 0 即只作为输入 53 SPI SDO 串行数据输出 当SDIO作为输入时 SDO作为输出 当SDIO 作为双向输入输出时 SDO作为高阻状态 此引脚也可以被用来作为数据速率时 钟输出 输入引脚 57 RESET 复位 管脚值为1时复位所有的SPI端口寄存器为其 默认值 包括地址00h 软件复位也可以通过写寄存器00h第五位为逻辑1 不同 的是软件复位对地址00h没有作用 三 软件设计 3 1 ADC 模块 AD9461 使用简单 芯片初始化后 接上时钟信号后 会自动开始模数转换 软件编程只需要将 AD9461 采样以后的信号赋给程序即可 为后面的 FIFO 操作 做准备 AD1 clk 90m AD2 clk 90m AD1 ovr AD2 ovr AD1out 15 0 AD2out 15 0 ADI out 15 0 ADQ out 15 0 AD cfig inst 图 3 1a ADC 模块图 主要信号如下 AD1 clk 90m AD2 clk 90m 两片 ADC 的输出同步时钟 AD1out AD2out 两片 ADC 的输出同步采样信号 AD1 or AD2 or 两片 ADC 的溢出指示信号 高电平说明采样溢出 模块时序通过逻辑分析仪测试得到所示 19 图 3 1b ADC 模块时序图 1 输入的信号频率为 1Mhz 它经过 AD9461 90M 采样后的信号为 AD1out 我们把 ADI out AD1out 所以这两个信号是一样的 图 3 1c ADC 模块时序图 2 由放大的图像看出 采样的后信号已经不是平滑连续的正弦信号 它由一 个一个采样点组成 由于采样率高 我们可看出采样前的波形 3 2 DAC 模块 AD9777 的软件设计主要是通过 SPI 接口对寄存器进行配置 表 3 2 模式控制 通过 SPI 接口 地 址 第 7 位 第 6 位 第 5 位第 4 位第 3 位 第 2 位第 1 位第 0 位 00 h SDIO 双向 0 0 输输 入入 LSB M SB 置 1 时 软件重 置 置 1 时 关闭 DAC 输 出电流 置 1 时 关 闭 1R 2R 模 式 DAC 输 出电流由 一个或两 PLL LO CK 指标 20 1 I O 0 MSB0 MSB 1 LSB 所 有 数 模 功 能 个外部电 阻设置 0 2R0 2R 1 1 R 01 h 滤波 器插 值率 1 2 4 8 滤波 器插 值率 1 2 4 8 调制模 式 NoneNone fS 2 fS 4 fS 8 调制模 式 NoneNone fS 2 fS 4 fS 8 0 0 无无 零零 插插 值值 滤滤 波波 置 1 时 允 许 零 插 值 1 1 实混合实混合 模式模式 0 复杂混 合模式 0 e j t 1 e j t 0 PLL LO0 PLL LO CKCK 1 DATACL K 02 h 0 0 有有 符号符号 输入输入 数据数据 1 无 符号 0 0 两两 端口端口 模式模式 1 一 端口 模式 DATACL K 驱动 加强 DATACL K 反转 0 0 无反无反 转转 1 反转 ONEPORTCL K 反转 0 0 无反转无反转 1 反转 IQSEL 反转 0 0 无反无反 转转 1 反转 Q First 0 I0 I FirstFirst 1 Q First 03 h 数据 速率 2时 钟输 出 PLL 分 频器 预分 频器 PLL 分频 器 预分 频器 04 h 0 0 PLLPLL OFFOFF2 1 PLL ON 0 0 自自 动电动电 荷泵荷泵 控制控制 1 可 编程 PLL 充电 泵控制 PLL 充 电泵控 制 PLL 充电 泵控制 05IDACIDAC IDAC 精IDAC 精 IDA IDAC 精细IDAC 精IDAC 精细 21 h 精细 的增 益调 整 精细 的增 益调 整 细的增 益调整 细的增 益调整 C 精 细 的 增 益 调 整 的增益调 整 细的增 益调整 的增益调 整 06 h IDA C 粗 增 益 调 整 IDAC 粗增 益调整 IDAC 粗 增益调 整 IDAC 粗增 益调整 07 h IDAC 偏移 调整 第 9 位 IDAC 偏移 调整 第 8 位 IDAC 偏 移调整 第 7 位 IDAC 偏 移调整 第 6 位 IDA C 偏 移 调 整 第 5 位 IDAC 偏移 调整第 4 位 IDAC 偏 移调整 第 3 位 IDAC 偏移 调整第 2 位 08 h 0 0 I IOFFSE OFFSE T T on on I IOUTA OUTA 1 IOFFSE T on IOUTB IDAC 偏 移调整 第 1 位 IDAC 偏移 调整第 0 位 09 h QDAC 精细 增益 调整 QDAC 精细 增益 调整 QDAC 精 细增益 调整 QDAC 精 细增益 调整 QDA C 精 细 增 益 调 整 QDAC 精细 增益调整 QDAC 精 细增益 调整 QDAC 精细 增益调整 0A h QDA C 粗 增 益 调 整 QDAC 粗增 益调整 QDAC 粗 增益调 整 QDAC 粗增 益调整 0B h QDAC 偏移 QDAC 偏移 QDAC 偏 移调整 QDAC 偏 移调整 QDA C 偏 QDAC 偏移 调整第 4 QDAC 偏 移调整 QDAC 偏移 调整第 2 22 调整 第 9 位 调整 第 8 位 第 7 位第 6 位移 调 整 第 5 位 位第 3 位位 0C h 0 0 I IOFFSE OFFSE T T on on I IOUTA OUTA 1 IOFFSE T on IOUTB QDAC 偏 移调整 第 1 位 QDAC 偏移 调整第 0 位 OD h 寄 存 器 类 型 寄存器类 型 寄存器 类型 寄存器类 型 注 默认值以粗体显示 对照上表 我们设置寄存器如下 地址 00H 数据 00000000B 都设为默认值 地址 01H 数据 00000101 第 0 位 设为 1 表示 AD9777 的第 8 管脚 DATACLK PLL LOCK 被编程作为 DATACLK 信号 输入数据的同步时钟 其余位设为默认值 地址 02h 00100000B 第 5 位 设为 1 表示增强 DATACLK 的驱动能 力 其余位设为默认值 地址 03h 0Dh 无需特殊设置 都为默认值 具体设置寄存器的值是在一个通信周期内通过 SPI 写入 完整的设置一个 寄存器的值的过程如下 以 01H 为例 需要在传送时给 cs 信号 16 个 SCLK 的低电平 即一个完整的通信周期 前 8 个时钟 SCLK 的上升沿 是指令周期 因为是写 I7 0 因为输入的寄 存器的值是 8bit 所以 I6I5 00 故指令周期串行输入的 8bit 与要写的寄存器 的地址相同即 01H 23 I7I6I5I4I3I2I1I0 读 写 N1N0A4A3A2A1A0 I7 1 表示读操作 0 表示写操作 N1 N0 设定在数据传输周期确定要传送的字节数 后 8 个时钟 SCLK 的上升沿 是指令传输周期 将要写入寄存器的值 00000101 串行由高向低输入 SPI 即完成对 01H 寄存器的初始化 读寄存器的值与上类似 只不过将指令周期的 bit1 都变为 1 即可 程序生成模块如图所示 图 3 2 1a DAC 模块图 clk 6m 用于寄存器进行配置的同步时钟 SCLK 由于通过 SPI 口进行寄存 器配置时的最高时钟为 10M 我们在此处选择的同步时钟速率为 6M 该时钟是 由分频器件送给 FPGA 的 90M 时钟再分频得到的 reset n 复位信号 低电平有效 reset CS 片选信号 低电平有效 SDIO 通过 SPI 口的寄存器值输入信号 SDO 通过 SPI 口的寄存器值输出信号 DAI in DAQ in I Q 路同步输入数字信号 16bit 模块时序通过逻辑分析仪测试得到 24 图 3 2 1b DAC 模块时序图 1 如图是通过 SPI 口对寄存器进行读操作 图中的 SDIO 为 1000 0000 0000 0000 它表示从地址 00H 中读取寄存器的实际值 此时 根据 SDO 图像可以看出 读出的实际值为 0 说明 00H 寄存器配置正确 图 3 2 1c DAC 模块时序图 2 此时 图中的 SDIO 为 1000 0110 0000 0000 它表示 SDO 从地址 06H 中读 取寄存器的实际值 读出的数据为 0000 1101 图 3 2 1d DAC 模块时序图 3 从上图可以看出 DAI in 是 FIFO 传送给 DAC 模块的数字信号 它完成了 FIFO 的存储部分 在输出前 它需要通过 AD9777 对信号进行数模转换 25 3 3 FIFO 模块 3 3 1 基本原理 FIFO 是整个延迟线的核心 FIFO 的意思是先入先出 是一种存储缓冲器 FIFO 具有满 FF 半满 HF 和空 EF 三种状态指示 并且具有可编程的信号指 示 PAE PAF 我们的延迟线主要就是利用 PAE 可编程几乎空 信号 当数据 存储达到设定的偏移量 n 时 就控制读出 从而通过编程 n 来得到特定的延时 输出 另外由于有四个延迟时间 会存在延迟时间切换问题 所以 我们要及 时检查到延迟时间的更新并作相应改变 为了描述 FIFO 的工作流程 我们定义其 7 种工作状态 分别是 0 检测延 时更新状态 1 更新延时状态 2 等待状态 3 写延时状态 4 读延时状 态 5 写数据状态 6 同时读写数据状态 图 3 3 1 FIFO 控制流程图 26 0 状态 检测延时更新状态 检查延时是否更新 若更新 立即清空 FIFO 并转入 1 状态 若没有更新 进入 2 状态 1 状态 更新延时状态 把新的延迟时间赋值 等待特定的时间 保证工 作稳定后 进入 2 状态 2 状态 等待状态 如果延时改变 立即清空 FIFO 并转入 1 状态 3 状态 写延时状态 如果延时改变 立即清空 FIFO 并转入 1 状态 如果 延时没有改变 设置 0 1 0 即并行写寄存器状态 1 SEN 此时 我们把 FIFO in delay 设置参考门限 n 等待特定时间后进入 4 状态 4 状态 读延时状态 如果延时改变 立即清空 FIFO 并转入 1 状态 如果 没有改变 设置 0 1 1 即并行读寄存器状态 此时 0 SEN 我们读寄存器来判断 PAE 是否正确 等待特定时间后进入 5 状态 5 状态 写数据状态 如果延时改变 立即清空 FIFO 并转入 1 状态 如果 没有改变 把数据写入到 FIFO 中 在此处我们设置 1 0 1 FIFO 处于写数据状态 当 FIFO 中的数据写入到 n 值时 由 delay 决定 nPAE 1 进入 6 状态 若 nPAE 0 继续写数据到 FIFO 内 6 状态 同时读写数据状态 如果延时改变 立即清空 FIFO 并转入 1 状态 如果没有改变 当 nPAE 1 时 设置 1 0 0 即 FIFO 同时读写 数据 当 nPAE 0 时 回到 5 状态 在 1 状态 3 状态和 4 状态中 都要等待特定的时间才能进入下一状态 这些等待时间的作用是 为了让工作稳定 进而再进行下一部分的工作 可以 避免引起毛刺 出现冒险 27 3 3 2 与 AD DA 模块的信号传递 AD 采样 两路各 16bit 为了将其都存储并延时输出 根据 FIFO 的几 种总线模式 我们选择 36Inx36out 模式 具体可通过 BW IW OW 三个引脚设 置 采样信号是两片 ADC 组成 每片都为 16bit 一共 32bit DAC 芯片是双路 16 位信号数模转换 一共也为 32 位 所以在向 FIFO 传送数据的时候 我们要 对剩余四 bit 引脚进行置零 在这里 我们将 FIFO 的 5 16 33 34bit 置零 其 余 32bit 传递信号 当 ADC 部分向 FIFO 传输数据时 FIFO in ADI out 15 2 b00 ADI out 14 0 ADQ out 15 2 b00 ADQ out 14 0 当 FIFO 传输数据到 DAC 部分时 DAI FIFO data 35 FIFO data 32 18 DAQ FIFO data 17 FIFO data 14 0 3 3 3 与 ADC DAC 的时钟同步 由于 ADC FPGA 与 DAC 都有自己的同步数据时钟 而且两片 ADC 的同步时 钟也存在一定的相位差 所以 需要将这些异步信号转为同步信号以方便后续 的处理 因为整个系统是在 FPGA 的控制下运作 所以由 FPGA 实现在内部的时 钟同步转换 ADC 与 FPGA 的同步 在 FPGA 内部开辟一个 fifo IP 核 将 ADC 的两路采 样信号输入 fifo 再输出 其写时钟分别为 AD1 clk 90m 与 AD2 clk 90m ADC 模块的输出时钟 而读时钟为 FPGA clk 90m FPGA 内部时钟 使 ADC 的采样 数据与 FPGA 内部的时钟信号同步 FPGA 与 DAC 的同步 同样利用 FPGA 内部的 fifo FPGA 将延时数据通过 fifo 其写时钟为 FPGA clk 90m 而读时钟为 DATACLK DAC 数据输入时钟 使 DAC 的输入数据与 FPGA 内部的时钟信号同步 28 3 3 4 延时与 PAE 的转换 我们的延迟线要求实现 10 s 75 s 150 s 300 s 四种延迟时间 对于 使用的 90M 时钟 在十六进制下 计数器应该分别计数到 384 1A5E 34BC 6978 但由于系统自身的延时 所以我们对延迟时间的计数值要进 行修改 通过延迟测试 对计数器值进行修改调整 模拟仿真 得到正确的延 迟时间 3 3 5 模型封装 用 verilog 语言表述得到模块 输入信号 FPGA clk 90m 给 FPGA 的 90M 内部时钟 由分频器提供 WCLK RCLK FIFO 的写时钟与读时钟 本程序令 WCLK FPGA clk 90m RCLK FPGA clk 90m SYS RESET 系统复位信号 高电平有效 在系统复位完成以后再对 DAC 器件 进行相应的配置 nPRS 部分复位信号 低电平有效 当有延时时间更新时 就会清空供 FIFO 及 PAE 值 但系统设定不变 delay sel 由外部输入的延时选择信号 2bit 其中 00 01 10 11 分别对 应延时为 10us 75us 150us 300us FIFO in FIFO 的数据输入引脚 该管脚是复用管脚 在向 FIFO 的寄存器 当中写值时也是通过该管脚实现的 nMRST nMRST2 前者是送给 FIFO 器件的复位信号 后者为同步状态机当中 用到的复位信号 FIFO 的有些管脚需要固定为高低电平 而有些管脚则需要根据情况进行实时 更新 关于 nLD nWEN nREN nSEN WCLK 与 RCLK 的配合使用根据 FIFO 流程 图编程 29 输出信号 ADI out ADQ out 经过 FPGA 内部 fifo 同步后的两路 ADC 采样信号 delay 写入到 FIFO 寄存器当中的 n 值 FIFO out 用于 FIFO 的并行输出数据 是复用管脚 在从 FIFO 的寄存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年仓储物流管理合同标准
- 汽车维修合同模板2025年规范
- 2025年网络广告投放合同范本标准
- 2025年供用热力合同(GF-199-0503)质量控制协议
- 2025年房地产项目合作合同规范书
- 2025年新能源产业员工培训与发展报告
- 2026国投电力控股股份有限公司校园招聘考试参考题库及答案解析
- 2025年低空经济行业知识产权保护与产业创新驱动报告
- 2025年智能座舱市场洞察报告:内饰智能化趋势解析
- 2025年低空经济「生态银行」运营策略与航空服务创新报告
- 开源节流企业降本增效方案
- 退款协议书-英文
- 女生的青春期教育课件
- 储水式电热水器成品检验报告
- 文献信息检索与科技论文写作
- 5-4、MSSP - SOTAR - 泰康人寿 5-4、MSSP - SOTAR - 泰康人寿
- 小餐饮备案承诺书(样式)
- GB/T 8642-2002热喷涂抗拉结合强度的测定
- GA/T 1393-2017信息安全技术主机安全加固系统安全技术要求
- 7园艺植物的植株管理课件
- 道路交通安全知识培训(经典)-课件
评论
0/150
提交评论