[基于FPGA的Ad9226数据采集系统设计与验证]
| 工程源码 | |----设计实例 |--------AC108_AD9226_RGMII.zip | 设计文件附在帖子最后
| ---------------------------- | ----------------------------------------------------- |
| 相关视频课程 | 暂无相关视频课程 |
| 本实验对各开发板支持情况 |
| 开发板型号 | AC108 |
文档所涉及文件说明
本次实验配套的文件压缩包名为AC108_AD9226_RGMII.zip,解压后可得到配套的工程文件,说明文档和调试工具。
图 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[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,他们的关系如下:
Fs是期望的采样率,Fclk是系统时钟。
在此再次特别提醒:在引脚绑定的时候,我们要特别注意ACM9226模块的LSB引脚和MSB引脚,AD9226的12位输出数据接口中,bit11为
LSB、bit0为MSB。这与我们FPGA中对于多位宽信号的高低位的处理恰好相反,ACM9226模块对应的LSB是数据位最高位,而对应的MSB是数据位的最低位。如果在绑定引脚芯片的时候没有注意,则有可能会得到没有规律的输出数据。所以使用时,要么在分配引脚时直接调换过来,要么在程序中对所有位的高低位置进行调换,不然采集到的数据将无法进行准确分析。下图 2为AD9226数据接口引脚分配图。
图 2 AD9226数据接口引脚分配图
表 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[11] |
PIN_M10 |
eth_rst_n |
PIN_P16 |
ad_in1[10] |
PIN_J1 |
eth_rxc |
PIN_T9 |
ad_in1[9] |
PIN_J2 |
eth_rxd[3] |
PIN_R12 |
ad_in1[8] |
PIN_K1 |
eth_rxd[2] |
PIN_T11 |
ad_in1[7] |
PIN_K2 |
eth_rxd[1] |
PIN_R11 |
ad_in1[6] |
PIN_L1 |
eth_rxd[0] |
PIN_T10 |
ad_in1[5] |
PIN_L2 |
eth_rxdv |
PIN_R10 |
ad_in1[4] |
PIN_N1 |
eth_txd[3] |
PIN_T15 |
ad_in1[3] |
PIN_N2 |
eth_txd[2] |
PIN_T14 |
ad_in1[2] |
PIN_P1 |
eth_txd[1] |
PIN_R14 |
ad_in1[1] |
PIN_P2 |
eth_txd[0] |
PIN_T13 |
ad_in1[0] |
PIN_R1 |
eth_txen |
PIN_R13 |
ad_in2[11] |
PIN_M6 |
led |
PIN_N16 |
ad_in2[10] |
PIN_N3 |
reset_n |
PIN_M15 |
ad_in2[9] |
PIN_N5 |
|
|
ad_in2[8] |
PIN_P3 |
|
|
ad_in2[7] |
PIN_L7 |
|
|
ad_in2[6] |
PIN_N6 |
|
|
ad_in2[5] |
PIN_P6 |
|
|
ad_in2[4] |
PIN_M7 |
|
|
ad_in2[3] |
PIN_M8 |
|
|
ad_in2[2] |
PIN_P8 |
|
|
ad_in2[1] |
PIN_N8 |
|
|
ad_in2[0] |
PIN_L8 |
|
|
基于PFGA开发板的功能测试
对系统功能设计完成并仿真验证通过之后,准备好硬件设施,连接好硬件,就可以对设计的工程进行板级验证测试实验功能。
系统所需硬件
1、 对应实验开发板。
2、 AD9226数据采集模块。
3、 电源线。
4、 程序下载线。
5、 网线。
6、 信号发生器。
硬件连接
根据前面的描述准备好硬件,我们可以进行连接:
1、 连接好ACM9226模块到开发板。
2、 信号发生器的输出端连接到ACM9226模块的通道输入端,可根据设置连接不同通道。
3、 连接好FPGA开发板网线。
4、 连接好开发板电源。
5、 连接好开发板下载器。
硬件连接完成后如下图 3 所示。在以上所有模块和线路连接好之后就可以打开开关,开始下载程序。
图 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 网口调试设置
通过调试窗口可以对采集的数据量和下发的指令是否匹配,对采集的数据做进一步的分析可以验证数据采集是否符合期望,可对采集数据利用MATLAB进行绘图分析。
通过网口调试助手可以判断采集的数据量是否准确,采样得到的数据是否是和信号发生器输出一致,仅凭人工,很难完成这个分析工作。因此我们需要借助matlab的绘制函数图形的功能。
图 6中可以看到,点击网口助手保存数据会产生两个数据文件,第一个是DAT格式的数据文件,第二个是文本格式的数据文件,读者可根据自身需求对不同格式的文件进行调用,本次实验调用的的是DAT格式的数据文件。采集数据文件路径都与安装的调试助手的路径有关,在网口调试窗口中点击数据保存时会有显示,下图显示的是sscom5.13.1网口调试工具安装于桌面的数据保存路径。
图 5 保存数据位置信息
文件为二进制格式DAT文件,调用时可复制文件到MATLAB安装路径下,这样修改文件名就可以进行图像绘制。DAT文件如图 6所示。
图 6 DAT文件
打开ADCdata_to_wave_v2_2.m,MATLAB采样结果数据处理函数如图 7所示。
图 7 MATLAB数据分析程序
打开matlab代码的工程文件,修改好文件路径,进行保存后点击运行就可以进行图形的绘制。在进行新一次的数据绘制分析前要关闭前一次的图形绘制窗口,否则会导致新数据的图形绘制无法加载。输出得到的波形如图 8,图为绘制采集的20kHz输入信号波形图。
图 8 绘制的数据波形图
这样,通过观察绘制的数据图形就可以对上板实验采集数据进行验证。通过分析,绘制数据与信号发生器和在示波器上显示的数据一致,数据采集无误,采集系统功能验证符合设计要求。
修订记录