查看: 1964|回复: 1

【紫光同创国产FPGA教程】【第二十四章】AD9238以太网传输

[复制链接]
  • TA的每日心情
    开心
    2021-1-12 14:00
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2021-4-8 09:11:09 | 显示全部楼层 |阅读模式
    分享到:
    本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处(http://www.alinx.com)。
    适用于板卡型号:
    PGL22G
    1. 实验简介
    本实验练习使用ADC的以太网传输,实验中使用的ADC模块型号为AN9238,最大采样率65Mhz,精度为12位。基于前面讲到的以太网实验,在本实验中把AN9238的采集数据以千兆以太网方式传输到上位机软件,我们可以用更加直观的方式观察波形,是一个数字示波器雏形,并且可以保存ADC数据。
    AN9238双路65M采样12位ADC模块实验预期结果2. 实验原理
    2.1 制定UDP包协议
    为了体现上位机的灵活性,基于UDP传输,制定了以下通讯协议,此协议包含在UDP数据包中。
    一、获取板卡信息
    (1)询问命令(共5字节,由上位机通过以太网发送)
    字节数14
    命令信息Header32’h00000000 或32’h00010001
    (2)应答命令(共27字节,由开发板通过以太网发送)
    字节数命令信息
    1Header|8’h01
    432’h00010001
    6板卡MAC地址
    4板卡IP地址
    1符号位8’h00:无符号数 8’h01有符号数(设置无效,上位机要求为有符号数)
    1ADC有效数据长度,比如AD9226为12位,即8’d12
    1采集一次ADC的字节数(设置无效,上位机要求ADC数据位宽为两个字节)
    1采样通道(此功能上位机未实现)
    4采样率,即采样的频率,程序中设为65M
    4缓存的ADC数据长度,单位为字节
    二、获取数据
    (1)控制命令(由上位机发送数据请求)
    字节数命令信息
    1Header
    432’h00010002
    6板卡MAC地址,确认是本地的MAC地址
    4采样通道(此功能未实现)
    4采样次数(采集数据为16位,采样次数为缓存数据长度的一半)
    (2)应答命令(由开发板发送)
    字节数命令信息
    1Header|8’h01
    432’h00010002
    1024ADC数据
    每个UDP包都包含有Header,在第一个字节,其格式如下:
    比特位值(0)值(1)
    bit 0查询或控制应答
    bit1~bit7随机数据
    注:当应答时,高7位随机数据保持不变,bit0设置为1
    2.2 程序实现
    首先在空闲状态,上位机会通过以太网广播发送询问命令,因此在IP层接收时要加上判断是否是广播UDP数据,如果是,也接收数据,此段代码在ip_rx.v中,如下所示:
    之后在eth_cmd.v文件中判断接收到的数据信息,是否是询问命令或控制命令,从而产生出命令的应答请求信号cmd_reply_req,或请求数据的信号ad_data_req。
    信号名称方向宽度(bit)说明
    clkin1系统时钟
    rst_nin1异步复位,低电平复位
    udp_rec_data_validin1UDP接收数据有效
    udp_rec_ram_rdatain8UDP接收到的数据
    udp_rec_ram_read_addrout11UDP接收数据RAM地址
    udp_rec_data_lengthin16UDP接收数据长度
    udp_rd_enin1UDP发送读使能信号
    reply_dataout8命令应答数据
    local_ip_addrin32本地IP地址
    local_mac_addrin48本地MAC地址
    ch_selout32通道选择(未使用)
    sample_numout32采样长度
    headerout8命令头
    cmd_reply_ackin1命令应答响应
    cmd_reply_reqout1命令应答请求
    cmd_send_lenout16命令应答数据长度
    ad_data_ackin1ADC数据应答信号
    ad_data_reqout1ADC数据请求信号
    mac_ctrl.v文件实现以太网的传输控制,在IDLE状态下等待一定时间,进入CMD_WAIT状态,判断是否有命令请求cmd_reply_req或数据请求ad_data_req,之后进入CHECK_ARP状态,检查对应的IP地址是否在缓存列表中,如果没有,将发送ARP请求,等待应答。之后根据命令请求或数据请求进入相应的数据发送状态,CMD_SEND或AD_SEND状态。
    信号名称方向宽度(bit)说明
    clkin1系统时钟
    rst_nin1异步复位,低电平复位
    udp_send_data_lengthout16UDP发送数据长度
    ip_rec_source_ip_addrin32UDP接收到的广播IP地址
    destination_ip_addrout32目的IP地址
    fifo_datain16从FIFO中读出的ADC数据
    fifo_data_countin11FIFO中可读数据数量
    fifo_rd_enout1FIFO读信号
    udp_rd_enin1UDP发送读请求信号
    headerin8命令头
    sample_numin32采样长度
    sample_lenout32采样长度latch
    reply_datain8命令应答数据
    cmd_reply_ackout1命令应答响应
    cmd_reply_reqin1命令应答请求
    cmd_send_lenin16命令应答数据长度
    ad_data_ackout1ADC数据应答信号
    ad_data_reqin1ADC数据请求信号
    ad_sample_reqout1ADC采集请求信号
    ad_sample_ackin1ADC采集应答信号
    mac_send_endin1MAC发送结束信号
    mac_not_existin1IP对应MAC不存在
    arp_foundin1接收到MAC
    udp_tx_reqout1UDP发送请求
    arp_request_reqout1ARP发送请求
    udp_dataout8UDP发送数据
    read_req_ackin1读FIFO应答
    read_reqout1读FIFO请求
    identify_codeout16IP序列号
    注意:上位机设置的缓存空间为1M字节,请求数据间隔为100ms,因此在设置采样深度时要考虑到这两点。在eth_top.v程序中设置为32'h00080000,即512K字节,采样频率为65MHz,ADC采样端数据为两个字节长度,因此采样长度为采样字节除以2,即32’h00040000,计算得到4ms即可采集完成。ad9226_sample.v中将12位数据扩展16位,便于存储。移除了UDP发送数据的检验和。
    3. 实验现象
    1)首先要确保PC的网卡速度为千兆,否则无法显示。在网络连接中找到本地以太网, 双击出现如下界面,千兆网络默认连接如下图:

    如未出现如上所述界面,先确认是否是千兆网线连接的和网卡是否支持千兆,网卡判别则右键属性
    点击配置,可看到网卡型号查下是否支持千兆。
    在链接速度中,可以看到目前的链接状态是多大速度,可在下拉菜单中查找链接选项,务必确保链接速度为1.0Gbps 全双工,如果没有这个选项,说明网卡不支持千兆以太网。
    2)AN9238模块插入开发板的扩展口J8,注意1脚对齐,不要插错、插偏,不能带电操作,不清楚连接的可参考“AD9238波形显示例程”的教程。
    3)连接AN9238的AD1输入到信号发生器的输出,这里使用的是专用屏蔽线,如果使用其他线可能会有较大干扰。

    AN9238连接信号源示意图
    4)下载程序,调节信号发生器的频率和幅度,AN9238输入范围-5V-5V,因此幅度最大设置为10Vpp,为了便于观察波形数据,建议信号输入频率1Khz到5Mhz。打开示波器.exe即可自动显示波形。此实验不需要设置PC的IP地址,连接PC和开发板即可。
    附:上位机软件说明
    绿色框显示发送板卡的MAC和IP地址。
    红色框中为控制按钮,功能如下:
    复位:点击复位可使波形显示到初始状态,如下图
    自动:没有用处
    垂直:“垂直“与“水平”切换,点击此按钮可进行水平垂直方向缩放的切换,在垂直状态下,滚动鼠标滚轴可进行垂直方向的缩放,水平状态下,进行水平方向的缩放。
    暂停:“暂停“与”继续“切换,点击暂停波形,可再点击“继续”显示波形。
    保存:保存ADC数据为TXT文档,保存路径在“路径”按钮处设置,默认为软件所在路径。
    数值:“数值”与“电压”切换,Y方向坐标单位为原始值,即接收到的原始数据值,点击“电压”则显示电压值。
    路径:选择保存路径
    打开:打开已保存的TXT波形文件

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-15 09:00 , Processed in 0.134810 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.