磕磕碰碰 发表于 2022-3-28 16:54:41

【实验指导手册】AC108_AD9226_RGMII千兆以太网数据采集系统

# [基于FPGA的Ad9226数据采集系统设计与验证]

|工程源码                  ||----设计实例|--------AC108_AD9226_RGMII.zip| 设计文件附在帖子最后
| ---------------------------- | ----------------------------------------------------- |
|相关视频课程            |暂无相关视频课程                                 |
|本实验对各开发板支持情况|
|开发板型号                |AC108|

文档所涉及文件说明

本次实验配套的文件压缩包名为AC108_AD9226_RGMII.zip,解压后可得到配套的工程文件,说明文档和调试工具。

!(data/attachment/forum/202203/28/164008fmisaoju2s7yorsr.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "1.png")

图 1项目文件

1、AC108_AD9226_RGMII.zip:基于AC108开发板(Cyclone 10LP E FPGA)QUARTUS II 17.1平台AD9226数据采集系统源工程

2、ADCdata_to_wave_v2_2.m:基于MATLAB的采样结果数据处理函数

3、sscom5.13.1: 网口调试工具

4、实验简易说明

导读

本节介绍了基于FPGA的AD9226数据采集系统实验步骤。本案例基于芯路恒Cyclone 10LP FPGA,结合两片 ADI 公司的单芯片、12 位、65 MSPS 模数转换器(ADC)AD9226芯片,实现了利用网口对AD9226数据采样转换控制并输出。

## 工程目标

本工程通过利用学习开发板上资源,实现ACM9226模块的网口数据采集功能。

本工程在实验条件下,期望达到如下功能要求:

1、 实验通过数据采集模块实现模数转换,传递给开发板。在这里,我们采用ACM9226双通道数据采集模块作为数据采集卡进行数据采集。为了真实模拟数据采集的实验环境,我们借助信号发生器作为信号源,使用时可以通过设置其不同频率进行采样观察效果。

2、 使用相关的网口通信软件,通过网口下发指令,可以设定需要采集的字节数,选择采集通道号,启动采集。

3、 使用相关的网口通信软件,可以按设定的采集参数,接收采集的数据。数据通过网口发送到网口调试软件(后期可开发对应PC上位机)。将读取到的数据我们进行DAT文件的保存,便于后期分析。

4、 采集到的数据经过matlab波形分析,能够得到和输入波形一致的输出波形,无数据丢失,无杂波。

## 指令设置与管脚绑定

AD9226的控制指令,由8个字节的数据组成,前两个字节D0,D1用55 A5,最后一个字节D7帧尾用F0,标明这是一个接收的指令,第三个字节D2,标明的是控制存储地址,本工程中,我们定义00是发送启动命令,01是采样通道号,02是采样深度。

网口一次发送的数据内容为1个字节,为了实现通过网口修改这些寄存器的值,需要发送多个字节才能实现,为此,设计了简单的数据帧,该帧一帧数据共8个字节,包含帧头、帧尾、地址段(决定任务设定目标)、数据段。帧格式如下表 1所示:

表 1 指令帧格式


| 数据 | D0    | D1    | D2   | D3          | D4          | D5         | D6      | D7   |
| ------ | ------- | ------- | ------ | ------------- | ------------- | ------------ | ----------- | ------ |
| 功能 | 帧头0 | 帧头1 | 地址 | data | data | data | data | 帧尾 |
| 值   | 0x55| 0xA5| xx   | xx          | xx          | xx         | xx      | 0xF0 |

下面讲解一下典型的参数设置方法:

如果采512字节的数据,则设置为:55 A5 02 00 00 01 00 F0

如果采65536字节的数据,则设置为:55 A5 02 00 00 80 00 F0

采样速率如果是5k,整个字节为:55 A5 00 00 00 27 0F F0

采样通道如果是9226的第一通道,则设置为:55 A5 01 00 00 00 01 F0

采样通道如果是9226的第二通道,则设置为:55 A5 01 00 00 00 02 F0

这里对采样速率的设置做一个说明,这里是设置一个计数的值27 0F,而如果为0,采样和时钟保持一致50M时钟就是50M,设置计数值后就可以改变采样频率,设置为1就是25M。27 0F换算成十进制是9999,采样速率设置是5k,他们的关系如下:

![](file:///C:/Users/89702/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif)

Fs是期望的采样率,Fclk是系统时钟。

在此再次特别提醒:在引脚绑定的时候,我们要特别注意ACM9226模块的LSB引脚和MSB引脚,AD9226的12位输出数据接口中,bit11为
LSB、bit0为MSB。这与我们FPGA中对于多位宽信号的高低位的处理恰好相反,ACM9226模块对应的LSB是数据位最高位,而对应的MSB是数据位的最低位。如果在绑定引脚芯片的时候没有注意,则有可能会得到没有规律的输出数据。所以使用时,要么在分配引脚时直接调换过来,要么在程序中对所有位的高低位置进行调换,不然采集到的数据将无法进行准确分析。下图 2为AD9226数据接口引脚分配图。

!(data/attachment/forum/202203/28/164505dq321akatutl31vb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "2.png")

图 2AD9226数据接口引脚分配图

表 2引脚分配表


| Signial Name | Pin NO. | Signial Name | Pin NO. |
| -------------- | --------- | -------------- | --------- |
| Clk          | PIN_E15 | eth_gtxc   | PIN_T12 |
| ad_clk1      | PIN_T2| eth_mdc      | PIN_P15 |
| ad_clk2      | PIN_N9| eth_mdio   | PIN_R16 |
| ad_in1   | PIN_M10 | eth_rst_n    | PIN_P16 |
| ad_in1   | PIN_J1| eth_rxc      | PIN_T9|
| ad_in1    | PIN_J2| eth_rxd   | PIN_R12 |
| ad_in1    | PIN_K1| eth_rxd   | PIN_T11 |
| ad_in1    | PIN_K2| eth_rxd   | PIN_R11 |
| ad_in1    | PIN_L1| eth_rxd   | PIN_T10 |
| ad_in1    | PIN_L2| eth_rxdv   | PIN_R10 |
| ad_in1    | PIN_N1| eth_txd   | PIN_T15 |
| ad_in1    | PIN_N2| eth_txd   | PIN_T14 |
| ad_in1    | PIN_P1| eth_txd   | PIN_R14 |
| ad_in1    | PIN_P2| eth_txd   | PIN_T13 |
| ad_in1    | PIN_R1| eth_txen   | PIN_R13 |
| ad_in2   | PIN_M6| led          | PIN_N16 |
| ad_in2   | PIN_N3| reset_n      | PIN_M15 |
| ad_in2    | PIN_N5|            |         |
| ad_in2    | PIN_P3|            |         |
| ad_in2    | PIN_L7|            |         |
| ad_in2    | PIN_N6|            |         |
| ad_in2    | PIN_P6|            |         |
| ad_in2    | PIN_M7|            |         |
| ad_in2    | PIN_M8|            |         |
| ad_in2    | PIN_P8|            |         |
| ad_in2    | PIN_N8|            |         |
| ad_in2    | PIN_L8|            |         |

## 基于PFGA开发板的功能测试

对系统功能设计完成并仿真验证通过之后,准备好硬件设施,连接好硬件,就可以对设计的工程进行板级验证测试实验功能。

### 系统所需硬件

1、 对应实验开发板。

2、 AD9226数据采集模块。

3、 电源线。

4、 程序下载线。

5、 网线。

6、 信号发生器。

### 硬件连接

根据前面的描述准备好硬件,我们可以进行连接:

1、 连接好ACM9226模块到开发板。

2、 信号发生器的输出端连接到ACM9226模块的通道输入端,可根据设置连接不同通道。

3、 连接好FPGA开发板网线。

4、 连接好开发板电源。

5、 连接好开发板下载器。

硬件连接完成后如下图 3 所示。在以上所有模块和线路连接好之后就可以打开开关,开始下载程序。

!(data/attachment/forum/202203/28/164526u16w8zsykhf86ip9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "3.png")

图 3[]()硬件连接图

在信号发生器上设定好采样频率,可使用示波器对信号发生器输入的数据进行观察,确认输入数据是否正常,和采集的数据进行对比验证。

### 数据采集与分析

打开sscom5.13.1网口调试工具,依次设定好UDP端口,端口连接设置,然后打开网口。点击多字符串,点击勾选四个指令栏,填入指令:

采65536字节的数据,则设置为:55 A5 02 00 00 80 00 F0

采样通道为第一通道,则设置为:55 A5 01 00 00 00 01 F0

采样通道为第二通道,则设置为:55 A5 01 00 00 00 02 F0

采集测试用数据,通道则设置为:55 A5 01 00 00 00 00 F0

采样的速率为50M,指令设置为:55 A5 03 00 00 00 00 F0,

采样的速率为5k,指令设置为:55 A5 03 00 00 27 0F F0

采集使能指令帧设置为:55 A5 00 00 00 00 00 F0

清空计数器和接收区后,从上到下依次点击勾选的1,2,3,4条数据串发送按钮,数据设定完成后开始采集,网口调试助手设置界面如图 4 所示。

!(data/attachment/forum/202203/28/164609wssttccz1ttbbtbb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "4.png")

图 4网口调试设置

通过调试窗口可以对采集的数据量和下发的指令是否匹配,对采集的数据做进一步的分析可以验证数据采集是否符合期望,可对采集数据利用MATLAB进行绘图分析。

通过网口调试助手可以判断采集的数据量是否准确,采样得到的数据是否是和信号发生器输出一致,仅凭人工,很难完成这个分析工作。因此我们需要借助matlab的绘制函数图形的功能。

图 6中可以看到,点击网口助手保存数据会产生两个数据文件,第一个是DAT格式的数据文件,第二个是文本格式的数据文件,读者可根据自身需求对不同格式的文件进行调用,本次实验调用的的是DAT格式的数据文件。采集数据文件路径都与安装的调试助手的路径有关,在网口调试窗口中点击数据保存时会有显示,下图显示的是sscom5.13.1网口调试工具安装于桌面的数据保存路径。

!(data/attachment/forum/202203/28/164746qe4z9ky7zzgcl2mn.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "5.png")

图 5保存数据位置信息

文件为二进制格式DAT文件,调用时可复制文件到MATLAB安装路径下,这样修改文件名就可以进行图像绘制。DAT文件如图 6所示。

!(data/attachment/forum/202203/28/164808naj6guwj2zk9zz6w.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "6.png")

图 6DAT文件

打开ADCdata_to_wave_v2_2.m,MATLAB采样结果数据处理函数如图 7所示。

!(data/attachment/forum/202203/28/164823sw3gvv2u9bbgn3tx.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "7.png")

图 7MATLAB数据分析程序

打开matlab代码的工程文件,修改好文件路径,进行保存后点击运行就可以进行图形的绘制。在进行新一次的数据绘制分析前要关闭前一次的图形绘制窗口,否则会导致新数据的图形绘制无法加载。输出得到的波形如图 8,图为绘制采集的20kHz输入信号波形图。

!(data/attachment/forum/202203/28/164837it8eex5e8je59od2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "8.png")

图 8绘制的数据波形图

这样,通过观察绘制的数据图形就可以对上板实验采集数据进行验证。通过分析,绘制数据与信号发生器和在示波器上显示的数据一致,数据采集无误,采集系统功能验证符合设计要求。

修订记录


| V1.0 | 2021/012/16 | 首次发布 |
| ------ | ------------- | ---------- |
|      |             |          |
页: [1]
查看完整版本: 【实验指导手册】AC108_AD9226_RGMII千兆以太网数据采集系统