温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
ZYNQ7000_Li
数据
发射
系统
设计
实现
冯祥虎
2023 年 2 月 25 日第 7 卷第 4 期现代信息科技Modern Information Technology Feb.2023 Vol.7 No.472722023.022023.02收稿日期:2022-10-26基于 ZYNQ7000 Linux 的数据发射系统设计和实现冯祥虎,肖世伟,杨美娜,杜军(哈尔滨师范大学 计算机科学与信息工程学院,黑龙江 哈尔滨 150025)摘 要:针对传统平台传输信号频率固定、开发过程复杂的情况,对信号发射系统进行了相关研究,设计一款基于 ZYNQ-7000 和 AD(AD9767)架构的嵌入式信号发射系统。该系统以 ZYNQ-7000 为数字信号发射平台,搭配 AD 转换芯片,在 Linux操作系统下通过 AXI-DMA 的方式实现信号的自定义发射。系统数据传输速率快,发射信号频率可灵活自定义,开发前景良好,且具有集成度高、小型化的特点,为后续更多的功能开发提供了无限的可能。关键词:ZYNQ-7000;Linux 操作系统;AD 转换;AXI DMA 传输中图分类号:TN919.5 文献标识码:A 文章编号:2096-4706(2023)04-0072-03Design and Implementation of Data Transmission System Based on ZYNQ7000 LinuxFENG Xianghu,XIAO Shiwei,YANG Meina,DU Jun(School of Computer Science and Information Engineering,Harbin Normal University,Harbin 150025,China)Abstract:Aiming at the conditions of fixed transmission signal frequency and complex development process of traditional platform,the signal transmission system is studied and an embedded signal transmission system based on ZYNQ-7000 and AD(AD9767)architecture is designed.The system uses ZYNQ-7000 as the digital signal transmission platform,with AD conversion chip,and achieves customized signal transmission through AXI-DMA under Linux operating system.The system has fast data transmission rate,flexible customization of transmission signal frequency,good development prospect,high integration and miniaturization,which provides unlimited possibilities for further function development.Keywords:ZYNQ-7000;Linux operating system;AD conversion;AXI DMA transmission0 引 言随着芯片行业的日渐壮大,芯片资源越来越丰富,能够搭载各种复杂的框架,从而能够灵活便捷地实现多种功能。软件无线电技术是一种基于软件定义的无线电广播通信技术,除了最基本的射频收发器和放大器、混频器以外,利用软件实现各种功能(如工作频段、调制解调类型、通信协议等),并使宽带模数转换器尽可能靠近天线。不同的功能对应着不同的软件模块,使用时只需调用相应的功能模块即可。不仅提高了系统的灵活性,还节约了时间成本。而 Linux 操作系统具有超强的灵活性,用户可以通过剪裁系统满足不同项目的需求。另外,它的开源性决定了它具有丰富的系统资源,硬件资源能够得到更加充分的利用。不仅如此,Linux 操作系统还可在特定的硬件条件下进行安装,安装过程灵活便捷1。本文采用 Digilent 开发的 ZYBO 板作为主控板,搭配由AD9767 芯片构成的 AD 子板,借鉴软件无线电的原理,基于 Linux 操作系统在中频信号波段设计一款信号发射平台,实现能够自定义频率和波形的中频发射信号的功能,为后续的进一步开发奠定基础。1 硬件模块设计方案总体硬件设计图如图 1 所示。DOI:10.19850/ki.2096-4706.2023.04.019ZYNQDDRUARTARMAXI 总线接口可编程逻辑AD9767模拟信号图 1 硬件设计图1.1 ZYNQ-7000 芯片ZYNQ-7000 是 Xilinx 公司率先推出的可扩展处理平台Zynq 系列,它包含一个双核 ARM Cortex-A9,而且它将 PS与 PL 端集成在一起,以充分使用它的资源,发挥其优势。该芯片的设计以 ARM 处理器(PS 端)为核心,以可编程逻辑电路(PL 端)作为扩展。采用由 Digilent 开发的低成本 ZYNQ 开发板 ZYBO 作为核心板卡,该板卡使用的是Xilinx XC7Z010-CLG400 芯片,含有两片 512 M 的 DDR3 内存(1 066 Mps 带宽),具有外部的 EEPROM 和 micro SD卡槽,还有 1G 以太网 PHY 和 5 个 PMOD 接口。ZYBO 板卡支持三种默认编程模式,分别是 JTAG 编程模式、QSPI编程模式和 SD 卡编程模式2。1.2 数模转换芯片 AD9767AD9767 是一个双通道 14 位的 CMOS DAC,芯片内含有两个高品质内核,另外还集成一个基准电压源和一些数字接口电路,采用 48 引脚小型 LQFP 封装。器件提供出色的交流和直流性能,可以实现高达 125 M 的模数转换率,输出73732023.022023.02第 4 期电压的范围为 5 V 到-5 V3。1.3 AXI4 总线介绍AXI 总线用于维系 PS 与 PL 之间的通信,大大提高了ZYNQ-7000 的性能。AXI 是一种面向高性能、高带宽、低延迟的片内总线协议,该协议是 AMBA 3.0 协议中最重要的部分。无需借助复杂的桥接,该协议就可以实现高频率的操作。它有三种总线类型,分别是 AXI4、AXI4-Lite 和 AXI-Stream4,本次用到的总线类型主要是 AXI-Stream 总线。它的核心思想是流式处理数据,由于在传输过程中没有地址接口,这样就不涉及读写数据的概念,只有简单的发送与接收,能够实现无限制的数据突发传输,减少了延时,所以它支持面向高速数据流的传输。AXI-Stream 只能在 PL 中实现,不能直接与 PS 相连,因此必须通过 AXI-Lite 或 AXI4 进行转换,PL 部分也有相应的 AXI 总线接口,这样就能完成 PS 到 PL 的互联。AXI-DMA 由 Xilinx 公司提供,为内存与 AXI4-Stream 外设之间提供高宽带的直接存储访问,scatter/gather 功能可将 CPU 从数据搬移任务中解放出来。1.4 AXI-DMA 介绍AXI DMA 相比于 AXI 内存映射,它提供了更高带宽的直接内存访问通道5。在 PL 端添加 AXI DMA IP 核,ZYNQ 芯片通过 AXI_HP 接口进行高速的数据传输,无需CPU 接入,提高了数据的访问效率。在简单的 DMA 模式下,当需要进行数据的高速传输时,只需配置相应的 DMA控制寄存器即可完成想要的功能。这种模式下,所占用的FPGA 资源较少,节省了不必要的硬件开销。当外设发生请求时,DMA 控制器会向 CPU 发出总线请求,CPU 响应该信号后,释放总线控制权,DMA 控制器接管,进行DMA 操作。数据传输完成后,发出结束信号,释放总线,CPU 恢复对总线的控制。因此,当 PL 的外设与存储器之间需要高速的数据传输并且数据传输量偏大时,就可以选择这种模式。DMA 工作流程图如图 2 所示。外设对 DMA控制器发送请求DMA 向 CPU发送请求CPU 响应 DMA控制器的请求DMA 控制器回应外设DMA 传送结束DMA 传送进行DMA 控制器发出控制信号DMA 控制器发送内存地址图 2 DMA 工作流程1.5 硬件工程模块设计根据硬件设计方案,基于 Vivado 2018.3 搭建工程。在Vivado 工程中主要添加了 Zynq-7000 的 IP 核、AXI-DMA IP核和 AD9767 IP 核。首先配置 ZYNQ 的 PS 端时钟、复位、uart 端口等,使 PS 部分能够搭载 Linux 操作系统正常工作。在 AD9767 的自定义 IP 核中增加一个深度为 1 024 的 FIFO模块,用于 DMA 和 ADC 的时钟对齐。由于 DMA 有传输中断的现象,若 ADC 的发射速度过快,会导致 ADC 无数据可发,从而使得 ADC 输出不连续。因此增加一个 FIFO模块,在 DMA 传输中断时,ADC 能在下一次 DMA 传输之前有剩余的数据可供传输,保证输出模拟信号的连续性。AXI-DMA IP 核负责通过 AXI 接口从主机的 DDR 中获取已经定义好的数字信号,然后将数据流搬运至 AD9767 IP 核的FIFO 当中,这样 AD 模块就能源源不断地进行模数转换,产生连续的模拟信号。其中 dac_data13:0 用于发送 FIFO 中存储的 14 位数字信号。AD9767 IP 核引脚和 RTL 实现如图 3、图 4 所示。ad9767_send_0ad9767_send_v1.0(Pre-Production)S00_AXIs00_axisdac_clkdac_rst_ndac_data13:0wrts00_axis_aresetns00_axis_aclks00_axi_aclks00_axi_aresetn图 3 AD9767 IP 核引脚图ad9767_send_v1_0_S00_AXI_instad9767_send_v1_0_S00_AXIsend_instad9767_senderS_AXIS_CLKS_AXIS_treadyS_AXIS_tvaliddac_clkdac_rst_nsend_startS_AXIS_RSTNS_AXIS_tdata15:0dac_data13:0S_AXIS_tready_iRTL_INVI0Odac_buf_rd_iRTL_ANDI0I1O=dac_buf_rd0_iRTL_EQOI01:0I11:0V=B01dac_data_iRTL_MUXI0S=2b01I1S=defaultOS1:0dac_data_reg13:0RTL_REG_ASYNCCCECLRDQfifo_wr_data_reg15:0RTL_REG_ASYNCCCECLRDQfifo_wr_en_regRTL_REG_ASYNCCCLRDQfifo_wr_en0_iRTL_ANDI0I1Orst0_iRTL_INVI0Osend_start_d0_regRTL_REG_ASYNCCCLRDQsend_start_d1_regRTL_REG_ASYNCCCLRDQsend_start_d2_regRTL_REG_ASYNCCCLRDQstate_iRTL_MUXI01:0V=B01,S=2b00I11:0S=defaultO1:0S1:0state_i_0RTL_MUXI0S=2b00I1S=2b01I2S=defaultOS1:0state_reg1:0RTL_REG_ASYNCCCECLRDQstate0_iRTL_ANDI0I1Ostate1_iR