[ZYNQ]开发之基于 AN108 模块的ADC 采集以太网传输

一、实验要求

本文基于AN108模块,将ADC采集的数据通过以太网传输到上位机。

二、任务分析

本实验的硬件设计部分及vitis均参照了ALINX FPGA ZYNQ Ultrascale+ MPSOC教程中实验 基于 AN9280模块的 ADC 采集以太网传输,其B站视频链接如下

【62】ALINX Zynq MPSoC XILINX FPGA视频教程 SDK 裸机开发—ADC以太网传输协议_哔哩哔哩_bilibili

首先AD9280模块进行AD转换的模拟信号来源,根据实验二ADDA测试的经验,本实验通过FPGA+DAC产生正弦波,通过同轴电缆自环将正弦波输入到AD9280模块进行AD转换。

 FPGA实验二:ADDA测试_Laid-back guy的博客-优快云博客https://blog.youkuaiyun.com/weixin_45303812/article/details/123762811?spm=1001.2014.3001.5502

然后,我们需要用zynq读取ADC数据,该过程涉及了PL与PS之间的数据交换,对于传输速度要求较高、数据量大、地址连续的场合,如高速AD/DA,可以通过 AXI DMA 来完成。通过在 PL 中添加 AXI DMA IP 核,并利用 AXI_HP 接口完 成高速的数据传输(ZYNQ 提供了两种 DMA,一种是集成在 PS 中的硬核 DMA,另一种是PL中使用的软核AXI DMA IP,关于DMA(Direct Memory Access,直接存储器访问)的具体内容计划另写一篇文章呈现,先挖个坑)

另外,由于ADC采集模块需要将ADC数据发送到DMA,AXI DMA IP 核的接口形式为AXIS接口,因此我们需要创建一个带有 AXI 接口的 IP 核来实现ADC数据的发送。

关于以太网传输方面,采用UDP将ADC采集的数据传输到上位机,因此采用了以下基于UDP传输的通信协议,该协议包含在UDP数据包中:

1、获取板卡信息

①询问命令(共5字节,由上位机通过以太网发送)

字节数

1

4

命令信息

Header

0x00000000或0x00010001

②应答命令(共27字节,由开发板通过以太网发送)

字节数

命令信息

1

Header|0x01

4

0x00010001

6

板卡MAC地址

4

板卡IP地址

1

符号位 0x00:无符号数 0x01 有符号数此功能无效,上位机要求无符号数

1

ADC有效数据长度,如AD9280为8位,即ADC_BITS=8

1

采集一次ADC的字节数,此功能无效,上位机要求数据位宽为两个字节

1

采样通道,此功能上位机未实现,本实验为单通道采样

4

采样率,即采样的频率,程序中设为32MHz

4

缓存的ADC数据长度,单位为字节

2、获取数据

①、控制命令(共19字节,上位机发送数据请求)

字节数

命令信息

1

Header

4

0x00010002

6

板卡MAC地址,确认是本地的MAC地址

4

采样通道(本功能未实现)

4

采样次数(采集数据为8位,采样次数位缓存数据长度的一半)

②、应答命

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值