芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 3941|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2022-5-11 16:38
  • 24

    主题

    25

    帖子

    163

    积分

    初级会员

    Rank: 3Rank: 3

    积分
    163
    发表于 2022-3-28 15:46:50 | 显示全部楼层 |阅读模式

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

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

    实验所涉及文件说明

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

    1.png

    图 1 项目文件

    1、AC620_AD9226_RGMII.zip:基于AC620开发板(Cyclone IV E FPGA)QUARTUS II 13.0平台AD9226数据采集系统源工程

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

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

    4、实验简易说明

    导读

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

    工程目标

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

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

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

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

    3、 使用相关的网口通信软件,可以按设定的采集参数,接收采集的数据。数据通过网口发送到网口调试软件。将读取到的数据我们进行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[31:24] data[23:16] data[15:8] data[7:0] 帧尾
    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,他们的关系如下:

    设置计数值= Fclk/Fs - 1

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

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

    2.png

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

    表 2 引脚分配表

    Signial Name Pin NO. Signial Name Pin NO.
    Clk PIN_E1 eth_gtxc PIN_B14
    ad_clk1 PIN_R1 eth_mdc PIN_E11
    ad_clk2 PIN_K5 eth_mdio PIN_D12
    ad_in1[11] PIN_K6 eth_rst_n PIN_D14
    ad_in1[10] PIN_L3 eth_rxc PIN_M15
    ad_in1[9] PIN_L6 eth_rxd[3] PIN_B13
    ad_in1[8] PIN_J1 eth_rxd[2] PIN_A14
    ad_in1[7] PIN_J2 eth_rxd[1] PIN_A13
    ad_in1[6] PIN_K1 eth_rxd[0] PIN_E10
    ad_in1[5] PIN_K2 eth_rxdv PIN_A15
    ad_in1[4] PIN_L1 eth_txd[3] PIN_B11
    ad_in1[3] PIN_L2 eth_txd[2] PIN_A12
    ad_in1[2] PIN_N1 eth_txd[1] PIN_B12
    ad_in1[1] PIN_N2 eth_txd[0] PIN_C11
    ad_in1[0] PIN_P2 eth_txen PIN_C14
    ad_in2[11] PIN_B1 led PIN_A2
    ad_in2[10] PIN_D3 reset_n PIN_E16
    ad_in2[9] PIN_E5
    ad_in2[8] PIN_D1
    ad_in2[7] PIN_F1
    ad_in2[6] PIN_F5
    ad_in2[5] PIN_F2
    ad_in2[4] PIN_G2
    ad_in2[3] PIN_G1
    ad_in2[2] PIN_F3
    ad_in2[1] PIN_G5
    ad_in2[0] PIN_J6

    基于PFGA开发板的功能测试

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

    系统所需硬件

    1、 对应实验开发板。

    2、 AD9226数据采集模块。

    3、 电源线。

    4、 程序下载线。

    5、 网线。

    6、 信号发生器。

    硬件连接

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

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

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

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

    4、 连接好开发板电源。

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

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

    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 所示。

    4.png

    图 4 网口调试设置

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

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

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

    5.png

    图 5 保存数据位置信息

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

    6.png

    图 6 DAT文件

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

    7.png

    图 7 MATLAB数据分析程序

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

    8.png

    图 8 绘制的数据波形图

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

    修订记录

    V1.0 2021/012/16 首次发布

    AC620_AD9226_RGMI.zip

    2.67 MB, 下载次数: 658

    V1.0实验文件

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

    GMT+8, 2024-4-29 08:52 , Processed in 0.117503 second(s), 35 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

    快速回复 返回顶部 返回列表