tag 标签: ad采集

相关博文
  • 2024-12-13 16:13
    70 次阅读|
    0 个评论
    一、基本介绍 50多年前,激光技术的发展催生了激光雷达 (LIDAR) 系统,该系统在距离计算方式上取得了突破。激光雷达的原理与雷达所使用的原理非常相似。主要区别在于雷达系统检测物体反射的无线电波,而激光雷达则使用激光信号。这两种技术通常采用相同类型的飞行时间方法来确定物体的距离。然而,由于激光的波长比无线电波短得多,因此激光雷达系统可提供卓越的测量精度。激光雷达系统还可以检查反射光的其他属性,例如频率内容或偏振,以揭示有关物体的其他信息。 激光雷达系统现在的应用范围不断增加。这包括自动驾驶、地质和地理测绘、地震学、气象学、大气物理、监视、测高、林业、导航、车辆跟踪、测量和环境保护。 图1. 带有光谱仪器数字化仪的激光雷达扫描 二、激光雷达配置 为了满足多种不同的应用,激光雷达系统具有多种设计和配置。 每个系统都需要合适的光电传感器和合适的数据采集设备。 光检测系统中信号,要么是不相干的,其中直接能量是通过反射信号的幅度变化来测量的;要么是相干的,其中反射信号频率的变化(例如由多普勒效应引起的频率变化)或其相位被观察到。类似地,光源可以是低功率微脉冲设计,其中传输间歇脉冲序列,也可以是高能量光源。微脉冲系统非常适合需要“人眼安全”操作的应用(例如测量和地面车辆跟踪),而高能系统通常部署在长距离和低水平反射的地方(如大气物理学和气象学研究)。 每个激光雷达系统都需要使用适当的传感器来检测反射的激光信号并将其转换为电信号。最常见的传感器类型是光电倍增管(PMT)和固态光电探测器(例如光电二极管)。一般来说,PMT用于可见光应用,而光电二极管则更常见于红外系统。然而,这两种传感器类型都被广泛使用,并且选择很大程度上取决于需要检测的光特性、所需的性能水平和成本。 最重要的是,传感器产生需要采集和分析的快速电信号。对于大多数LIDAR应用,信号采集卡最流行的外形尺寸是PCIe,因为这使得它们可以直接安装在大多数现代PC内。PCIe是德思特许多数字化仪供应商提供的一种外形规格。这是创建功能强大、易于使用的数据采集系统的简单方法。由于PCIe总线提供非常高的数据吞吐率,因此信号采集、数据传输和分析功能通常比其他更传统的采集系统快得多。德思特还提供数字化仪NETBOX、基于LXI/以太网的紧凑型设备或PXIe等行业标准,对于具有空间限制或振动问题的移动环境(例如机载或移动激光雷达)来说,这是一个不错的选择。 图2. 大气激光雷达扫描 三、激光雷达性能等级 对于LIDAR应用,存在三个独立的性能等级: 1.最快的光脉冲 为了捕获和分析非常快的信号,数字化仪需要高达5 GS/s的采样率和超过1 GHz的高带宽。此类数字化仪的一个示例是TS Spectrum M4i.22xx系列。M4i.22xx系列在PCIe和PXIe平台上每卡提供多达4个通道,在LXI平台上提供多达24个通道。这种组合使这些卡非常适合与产生纳秒甚至亚纳秒范围脉冲的快速传感器一起使用。此外,5 GS/s的快速采样率可实现亚纳秒分辨率的定时测量。它非常适合需要检测和测量小频移(例如由多普勒效应产生的频移)的情况。 2.适用于低电平信号和高灵敏度 当需要宽信号动态范围和非常高的灵敏度时,数字化仪需要能够以几百MS/s的采样率和匹配的带宽采集幅度低至毫伏范围的信号。垂直分辨率需要高,最好是16位。例如,TS Spectrum M4i.44xx系列在500 MS/s下具有14位分辨率,在250 MS/s下具有16位分辨率。这些装置还具有从±200 mV到±10 V的可编程满量程增益范围,使其适合需要观察和测量低电平信号和小幅度变化的应用。 3.具有低成本效益的中档性能 第三组适用于需要高灵敏度但时序要求不高的应用。高达100 MS/s的采样率和16位垂直分辨率(如TS Spectrum M2p.59xx系列)适合该应用领域。这些装置用于需要高信号灵敏度的长距离激光雷达应用,也用于需要高密度、多通道记录的情况。 数字化仪包括多种不同的采集模式,可有效利用数字化仪的板载内存并提供超快触发功能,从而不会错过任何重要事件。这些模式包括多重采集和门控采集,并配有时间戳、FIFO流或基于FPGA的高速块平均。 { window.addoncropExtensions = window.addoncropExtensions || []; window.addoncropExtensions.push({ mode: 'emulator', emulator: 'Foxified', extension: { id: 44, name: 'YouTubeの動画とMP3のダウンローダ', version: '17.3.9', date: 'August 6, 2023', }, flixmateConnected: false, }); })();
  • 热度 7
    2023-9-19 09:33
    743 次阅读|
    0 个评论
    基于Xines广州星嵌OMAPL138 DSP+ARM+FPGA无人机避障系统
    基于 Xines 广州星嵌 OMAPL138DSP+ARM+FPAGA硬件平台、毫米波雷达平台以及大疆的无人机平台,开发了一套将毫米波雷达与单目视觉相融合的无人机自主避障演示系统;并利用该无人机自主避障演示系统做了避障飞行实验,初步验证了融合方案在无人机自主避障飞行中的可行性。 框架解析: 前端由 Xilinx Spartan-6 XC6SLX16/45 FPGA采集AD数据,AD数据通过uPP或者EMIF总线传输至OMAP-L138的DSP。 数据被 DSP处理之后,通过DSPLINK或者SYSLINK双核通信组件被送往ARM,用于应用界面开发、网络转发、SATA硬盘存储等应用。 OMAP-L138的DSP或者ARM根据处理结果,将得到的逻辑控制命令送往FPGA,由FPGA控制板载DA实现逻辑输出。 ( 1) 高速数据采集前端部分由Xilinx Spartan-6 XC6SLX16/45 FPGA同步采集AD模拟输入信号,可实现对AD数据进行预滤波处理,另外一路DAC可输出任意幅值和任意波形的并行DA数据。 ( 2) 高速数据传输部分由uPP、EMIF、SPI和I2C通信总线构成。大规模吞吐量的AD和DA数据,可通过uPP总线在DSP和FPGA之间进行高速稳定传输;DSP可通过EMIF总线对FPGA进行并行逻辑控制和进行中等规模吞吐量的数据交换;ARM可通过SPI和I2C对FPGA端进行初始化设置和参数配置。 ( 3) 高速数据处理部分由DSP核和算法库构成。可实现对AD和DA数据进行时域、频域、幅值等信号参数进行实时变换处理(如FFT变换、FIR滤波等)。 ( 4) DSP+ARM双核通信部分由DSP核、ARM核和DSPLINK/SYSLINK双核通信组件构成。通过内存共享方式,实现DSP和ARM双核之间的数据交换和通信。 ( 5) 数据显示存储拓展部分由ARM核、图形显示、网络和SATA硬盘等部分构成。通过ARM的应用界面可实时显示AD和DA的时域和频域波形;并可实现大数据存储和远程网络通信。 1.1.1 OMAP-L138+FPGA 评估 板资源图 图 4 OMAP-L138+FPGA三核高速数据采集处理资源图 1.1.2 评估板简介 基于 TI OMAP-L138(定点/浮点 DSP C674x+ARM9)+ Xilinx Spartan-6 FPGA处理器; OMAP-L138 FPGA 通过uPP、EMIFA、I2C总线连接,通信速度可高达 228MByte/s; OMAP-L138主频456MHz,高达3648MIPS和2746MFLOPS的运算能力; FPGA标配为Spartan-6系列芯片XC6SL16,可升级至XC6SL45; 开发板引出丰富的外设,包含 SATA、SD、USB OTG、USB HOST、UART、双网络(1个千兆 FPGA端 、 1个百兆 DSP端 )、 ADC、DAC、DSP RS485/422、FPGA RS485、FPGA CAN、DSP RS232、FPGA RS232、RTC、 LCD , 引出了 MCASP、MCBSP、uPP、 SPI、 EMIFA、 I2C等接口,方便用户扩展。 DSP+ARM+FPGA三核核心板,尺寸为 72 mm* 44 mm,采用工业级B2B连接器,保证信号完整性; 支持裸机、 SYS/BIOS 操作系统、Linux 操作系统。 图 1 开发板 正面 图 图 2 开发板侧视图 XQ138F-EVM 是一款基于 广州星嵌 SOM-XQ138F 核心板设计的开发板,采用沉金无铅工艺的 4层板设计,它为用户提供了 SOM-XQ138F 核心板的测试平台,用于快速评估 SOM-XQ138F 核心板的整体性能。 SOM-XQ138F 核心板 采用沉金无铅工艺的 8 层板设计 , 引出 CPU全部资源信号引脚,二次开发极其容易,客户只需要专注上层应用,大大降低了开发难度和时间成本,让产品快速上市,及时抢占市场先机。不仅提供丰富的 Demo 程序,还提供详细的开发教程,全面的技术支持,协助客户进行底板设计、调试以及软件开发。 1.1.3 典型运用领域 数据采集处理显示系统 智能电力系统 图像处理设备 高精度仪器仪表 中高端数控系统 通信设备 音视频数据处理 图 3 典型应用领域 1.1.4 OMAP-L138+FPGA 评估 板简介 广州星嵌 设计的 XQ138F-EVM 是一款 DSP+ARM+FPGA三核高速数据采集处理开发板,适用于电力、通信、工控、医疗和音视频等数据采集处理领域。 此设计采用 OMAP-L138+Spartan-6平台,其中OMAP-L138是德州仪器(TI)低功耗高性能浮点DSP C6748+ARM9双核处理器,而Spartan-6是赛灵思(Xilinx)平台升级灵活、性价比极高的FPGA处理器。此设计通过OMAP-L138的uPP、EMIF等通信接口将两个芯片结合在一起,而OMAP-L138内部的DSP和ARM通过DSPLINK/SYSLINK进行双核通信,实现了需求独特、灵活、功能强大的DSP+ARM+FPGA三核高速数据采集处理系统。 1.1.5 Xilinx Spartan-6 FPGA和TI OMAP-L138通信实现 图 5 FPGA与OMAP-L138通信 框图 图 6 OMAP-L138 +FPGA核心板 高速通信总线 ——uPP uPP(Universal Parallel Port)是OMAP-L138 CPU颇具特色的高速并行数据传输总线,可以单独发送和接受数据,也可以同时接收和发送数据,常用于和FPGA以及其他并口设备数据传输。 OMAP-L138的uPP 共有2个通道(通道A和通道B),共有32位数据线,控制简单,配置灵活,数据吞吐量大。uPP时钟速率可高达处理器时钟速率的一半,对于在456MHz下运行的OMAP-L138处理器,uPP单通道吞吐量理论值可高达228MB/s。 1.1.6 TI OMAP-L138的DSP和ARM双核通信实现 图 6 OMAP-L138 DSP+ARM双核通信原理 基本原理 TI官方的DSPLINK/SYSLINK双核通信组件提供了一套通用的API,从应用层抽象出ARM与DSP的物理连接特性,从而降低用户开发程序的复杂度。其中DSPLINK使用DSP/BIOS操作系统,SYSLINK使用SYS/BIOS操作系统,SYSLINK属于DSPLINK的新版本双核通信组件。 在 ARM和DSP的双核通信开发中,ARM端运行HLOS操作系统(一般是Linux),DSP端运行RTOS实时操作系统(一般是DSP/BIOS或者SYS/BIOS),双核主频456MHz。 优势 ( 1) SOC片上DSP+ARM架构可实现稳定的双核通信,缩短了双核通信开发时间。 ( 2) DSPLINK/SYSLINK双核通信组件突破了双核开发瓶颈,节约了研发成本。 ( 3) SOC上的DSP和ARM架构简化了硬件设计,降低了产品功耗和硬件成本。
  • 热度 4
    2022-5-12 16:53
    1925 次阅读|
    0 个评论
    本文档适用开发环境: Windows开发环境:Windows 7 64bit、Windows 10 64bit Linux Processor SDK:ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05 RTOS Processor SDK:ti-processor-sdk-rtos-am57xx-evm-04.03.00.05 CCS:CCS7.4 本案例主要是通过GPMC接口采集AD7606或ADS8568模块输入的AD信号,由DSP端对AD信号进行FFT处理,并由ARM端对AD信号进行Qt波形绘制、数据保存等,其中使用到的测试板卡为创龙科技的TL570x-EVM工业开发板。 创龙科技TL570x-EVM是一款基于TI Sitara系列AM5708 ARM Cortex-A15 + 浮点DSP C66x处理器设计的异构多核SoC评估板,由核心板和评估底板组成。典型应用在运动控制、工业PC、机器视觉、智能电力、视频监测等领域。 核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。开发板接口资源丰富,引出双路PRU百兆网口、千兆网口、USB 3.0、CAMERA、GPMC、HDMI、 PCIe等接口,方便用户快速进行产品方案评估与技术预研。 接下来给大家分享案例编译和ARM(Host)端、DSP(Slave)端)的关键代码部分, 案例编译 请按照IPC异构多核开发手册搭好建基于Linux的IPC开发环境,并使能环境变量,然后按照如下方法编译案例。 将案例目录拷贝到Ubuntu,并将lib目录下的QWT库文件压缩包libqwt-6.1.3.tar.gz解压到lib目录下。 图 31 进入src目录并打开products.mak文件,根据实际情况配置libqwt-6.1.3的目录路径。 Host# vim products.mak 图 32 图 33 修改完毕后保存退出,执行如下命令加载Linux Processor SDK环境变量,编译程序并安装程序镜像文件。 Host# source /home/tronlong/ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05/linux-devkit/environment-setup Host# make -j 8 && make install 图 34 命令执行完毕后,将在“install/tl-gpmc-ad-fft/debug/”目录下生成ARM端和DSP端可执行文件,分别为 app_host和server_dsp1.xe66。 图 35 关键代码 ARM(Host)端关键代码 图 36 Qt程序框架 解析命令行参数,并显示Qt主窗口。 图 37 host/main.cpp 申请CMEM共享内存空间,并转换为实际物理地址。在共享内存空间中申请两个Buffer空间,分别用于存放AD信号时域数据和经FFT处理的频域数据。申请的两个Buffer空间的内存地址将会发送至DSP端,DSP端将一个通道的AD信号时域数据和经FFT处理的频域数据存放在Buffer空间。 图 38 host/app.c 发送App_CMD_SETUP消息类型至DSP端,该消息携带申请好的Buffer空间物理地址等信息,并等待DSP端返回消息。 图 39 host/app.c 图 40 host/app.c 发送App_CMD_TEST消息类型至DSP端,该消息主要通知DSP端进行AD信号采集。DSP端每次采集512个点,并保存AD信号时域数据和经FFT处理的频域数据。该消息还携带loop_times参数,已设置为8。DSP端每循环8次,即采集并处理8x512=4096个点后返回消息至ARM端。 当运行“./app_host 0x01000000 6 10000 /home/root 7606 ”命令时,程序循环次数设置为10000,则总采样点个数为:4096*10000=40960000。 图 41 host/app.c 发送App_CMD_SHUTDOWN信息类型至DSP端,通知DSP端结束程序的运行,并等待DSP端返回消息。 图 42 host/app.c Qt App线程接收到DSP端的通知后,通过信号槽通知主线程绘制波形。 图 43 host/app_thread.cpp 分别绘制时域波形和频域波形。 图 44 host/plot.cpp 将时域和频域数据写入文件。 图 45 host/file.cpp DSP(Slave)端关键代码 监听slaveQue消息队列,等待ARM端发送消息。 cmd”参数来判断不同的消息类型,从而进入相应的处理函数。处理结束后,返回消息至ARM端。 图 46 dsp1/Server.c 响应ARM端发送的App_CMD_SETUP消息类型,调用ad_init和ad_test_init初始化函数。 图 47 dsp1/Server.c ad_init()主要实现Timer、GPIO、GPMC等和AD芯片硬件相关的程序初始化。 图 48 dsp1/ad_test.c 图 49 dsp1/ad_test.c ad_test_init()主要用于程序运行环境的准备,如信号量、内存申请、EDMA3初始化、FFT初始化等。 图 50 dsp1/ad_test.c 程序通过EDMA GPIO event方式采集AD信号。 定时器创建后,将以固定的时间间隔进入定时器中断服务函数。在中断服务函数中通过CONVST引脚触发AD信号采集来控制采样频率。每次采集转换完成后,AD芯片的Busy引脚将触发GPIO2的下降沿中断,从而触发EDMA传输。 图 51 dsp1/ad_test.c EDMA传输完成后,将进入EDMA中断服务函数。在中断服务函数中统计采样点个数,当采样点个数达到ADC_SAMPLING_FFT_NUM(512)个后,将置位信号量,通知任务进行数据处理。 图 52 dsp1/ad_test.c DSP端响应ARM端发送的App_CMD_SETUP消息类型,调用ad_test()进行数据处理。 使能定时器,使定时器按固定周期触发AD信号采集。 阻塞等待信号量置位,信号量置位后,对数据进行保存、FFT运算等操作。 备注: 测试采集周期为6us,采集满ADC_SAMPLING_FFT_NUM(512)个点后置位信号量,通知任务进行数据处理,所以设置Semaphore_pend超时时间为10ms,若用户设置采集周期过长,如60us,则采集满512个点需60 * 512 = 30.72ms,则需要对应增加下图Semaphore_pend超时时间。 图 53 dsp1/ad_test.c 图 54 dsp1/ad_test.c 补充说明 程序默认使用GPTimer6定时器以固定时间间隔触发AD模块的采集信号,控制AD模块进行采集转换。如需更换为其他定时器,请按照如下方法进行修改。 ① 修改dsp1/ad_test.c文件,唤醒指定定时器的时钟。 图 55 ② 修改dsp1/Dsp1.cfg文件,timerSetting 代表为timer6,可修改为用户指定定时器。8代表绑定定时器中断至CPU Int8,该编号一般无需改动。 图 56 ③ 修改dsp1/ad_test.c文件,下图中的Timer_create()的参数5可修改为用户指定的定时器。 图 57 程序使用DSP端初始化GPMC总线,并设置GPMC时序。可查看dsp1/ad_test.c中的gpmc_init()的GPMC配置方式与时序参数。 图 58 图 59 好了,本期的案例分享就到这里了,想要查看关于TL570x-EVM开发板(异构多核SoC)的规格书,详细参数资料更多内容,欢迎评论区留言。
  • 热度 6
    2022-5-12 16:47
    1591 次阅读|
    0 个评论
    目 录 1 ————案例功能 2 ————操作说明 2.1 ————硬件连接 2.2 ————案例测试 2.3 ————使用CCS查看信号波形 2.3.1 ————加载Symbols信息表 2.3.2 ————查看时域波形 2.3.3 ————查看频域波形 3 ————案例编译 4 ————关键代码 4.1 ————ARM(Host)端关键代码 4.2 ————DSP(Slave)端关键代码 本文档适用开发环境: Windows开发环境:Windows 7 64bit、Windows 10 64bit Linux Processor SDK:ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05 RTOS Processor SDK:ti-processor-sdk-rtos-am57xx-evm-04.03.00.05 CCS:CCS7.4 本案例主要是通过GPMC接口采集AD7606或ADS8568模块输入的AD信号,由DSP端对AD信号进行FFT处理,并由ARM端对AD信号进行Qt波形绘制、数据保存等,其中使用到的测试板卡为创龙科技的TL570x-EVM工业开发板。 创龙科技TL570x-EVM是一款基于TI Sitara系列AM5708 ARM Cortex-A15 + 浮点DSP C66x处理器设计的异构多核SoC评估板,由核心板和评估底板组成。典型应用在运动控制、工业PC、机器视觉、智能电力、视频监测等领域。 核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。开发板接口资源丰富,引出双路PRU百兆网口、千兆网口、USB 3.0、CAMERA、GPMC、HDMI、 PCIe等接口,方便用户快速进行产品方案评估与技术预研。 案例功能 AM570x DSP端使用EDMA通过GPMC接口采集AD7606或ADS8568模块8通道的AD信号,同时由DSP端对其中6通道的AD信号进行FFT处理,最后将8通道时域数据和经FFT处理的6通道频域数据保存到DSP端L2SRAM中,可通过仿真器与CCS软件查看对应通道的时域波形和频域波形。 程序保存通道0的时域数据和经FFT处理的频域数据至CMEM(共享内存)空间,通过IPC组件通知ARM端读取该通道的时域数据和频域数据,使用Qt在LCD显示屏上进行波形绘制,最后将数据保存到文件中。 本案例默认配置AD7606模块采样周期为6us,即采样率约为167KHz;配置ADS8568模块采样周期分别为5us,即采样率为200KHz。程序工作流程图如下所示: 图 1 操作说明 硬件连接 将Tronlong的TL7606I(AD7606)模块或TL8568I(ADS8568)模块插入评估板GPMC扩展接口,并对模块进行独立供电。TL7606I模块使用5V电源供电,J1跳线帽连接到0,使用±5V量程。TL8568I模块使用12V电源供电,软件已配置为±12V量程。 将模块的待测输通道正确连接信号发生器,信号发生器输出频率为4KHz、峰峰值为2Vpp(即幅值为1V)的正弦波信号。待测信号电压请勿超过模块量程,否则可能会导致模块损坏。评估板接入LCD显示屏,并通过仿真器连接到PC机。硬件连接示意图如下: 图 2 TL7606I模块硬件连接示意图 图 3 TL7606I模块硬件连接示意图 图 4 TL8568I模块硬件连接示意图 案例测试 案例位于产品资料“4-软件资料\Demo\rtos-examples\tl-linux-ipc-examples\tl-gpmc-ad-fft\”目录下,案例目录说明如下。 图 5 表 1 bin目录 app_host ARM端可执行文件 load-firmware.sh DSP端可执行文件运行脚本 server_dsp1.xe66 DSP端可执行文件 lib目录 libqwt-6.1.3.tar.gz QWT库压缩包 src目录 dsp1目录 存放DSP端源码和配置文件等 host目录 存放ARM端源码和配置文件等 ludev目录 存放共享内存库源码和镜像文件等 shared目录 存放多核共用代码定义相关文件 makefile 顶层Makefile文件,用于构建整个案例程序 products.mak 顶层配置文件,用于配置编译环境 由于本案例需依赖 QWT库文件,因此请将libqwt-6.1.3.tar.gz压缩包解压,并将解压目录中的lib目录下的libqwt.so、libqwt.so.6、libqwt.so.6.1、libqwt.so.6.1.3此四个QWT库文件拷贝到 文件系统“/usr/lib/”目录下。同时将bin目录下的app_host、server_dsp1.xe66、load-firmware.sh此三个文件拷贝到评估板文件系统同一个目录下。 图 6 Linux内核预留0xa0000000~0xac000000(192MByte)内存作为CMEM共享内存,案例使用0xa0000000~0xa0008000(32KByte)内存进行测试,此32KByte内存划分为2个16KByte (0x4000,16384)池空间,分别用于存放模块通道0的时域数据和频域数据。 进入评估板文件系统执行如下命令。 备注: 由于 CMEM共享内存地址空间已超过512MByte,故如下测试仅支持DDR3不小于1GByte的评估板。 Target# /etc/init.d/matrix-gui-2.0 stop //关闭Matrix界面程序 Target# pkill ti-mctd //禁用ti-mctd服务,避免cmemk驱动卸载失败 Target# rmmod cmemk //卸载cmemk驱动 Target# modprobe cmemk phys_start=0xa0000000 phys_end=0xa0008000 pools=2x16384 //划分2个16KByte池空间 Target# cat /proc/cmem //查看CMEM配置 图 7 图 8 进入 app_host、server_dsp1.xe66、load-firmware.sh文件所在目录并 执行如下命令,运行DSP端程序。 Target# ./load-firmware.sh 图 9 执行如下命令可查看ARM端程序参数说明。 Target# ./app_host -h 图 10 执行如下命令,运行ARM端程序。 Target# ./app_host 0x01000000 6 10000 /home/root/ 7606 命令参数说明: 0x01000000 :指定GPMC片选首地址,使用的GPMC片选为CS0。 6 :指定信号采集周期(单位:us)。TL7606I模块设置为6,TL8568I模块设置为5。 10000 :指定采集循环次数。 /home/root/ :指定模块通道0的时域数据和频域数据的保存路径。时域数据保存文件为ad_raw_data.txt,频域数据保存文件为ad_fft_data.txt。 7606 :指定模块型号。TL7606I模块设置为7606,TL8568I模块设置为8568。 图 11 TL7606I模块运行命令 图 12 TL8568I模块运行命令 程序运行后,即可在LCD显示屏上看到通道0的时域波形和频域波形。 图 13 时域波形 图 14 频域波形 使用CCS查看信号波形 在程序运行过程中可使用CCS软件查看存储在DSP端L2SRAM中的时域和频域波形。 加载Symbols信息表 进入 app_host、server_dsp1.xe66、load-firmware.sh文件所在目录 执行如下命令,运行DSP端程序。 Target# ./load-firmware.sh 驱动默认配置DSP端的电源控制模式为auto-suspend(自动休眠),当DSP端处于休眠状态时,CCS将无法连接DSP端。 请执行如下命令设置电源控制模式为on,禁用auto-suspend模式。 Target# /sys/bus/platform/devices/40800000.dsp/power/control 请执行如下命令禁用错误恢复功能,避免发生错误时系统自动重启DSP端,干扰调试。 Target# /sys/kernel/debug/remoteproc/remoteproc2/recovery 请执行如下命令,运行ARM端程序(以TL7606I模块为例)。 Target# ./app_host 0x01000000 6 10000 /home/root/ 7606 图 15 打开CCS,创建仿真配置文件后进入Debug界面,右键点击“Connect Target”连接DSP端,如下图所示。连接后DSP端程序将会暂停运行,请点击 按键恢复运行。 图 16 Load Symbols...”加载案例bin目录下的server_dsp1.xe66镜像文件导入Symbols信息表。 备注: 请确保加载的server_dsp1.xe66文件与当前DSP端运行的是同一个镜像文件,否则可能导致符号地址不一致以及仿真运行错误。 图 17 图 18 查看时域波形 Memory Browser”,在弹出界面的搜索栏搜索ch_raw_buffer数组,该数组存放时域数据,搜索结果如下图所示。ch_raw_buffer数组包含8个地址,从左到右分别对应存放通道0至7时域数据的起始地址,例如0x00828EA0为存放通道0时域数据的起始地址。 图 19 Single Time”,如下图所示。 图 20 在弹出界面中按照下图内容进行配置,然后点击OK,即可查看AD信号的时域波形。 图 21 表 2 Acquisition Buffer Size 从Start Address开始读取的数据长度 Dsp Data Type 读取的数据类型 Start Address 从Start Addres开始读取数据 Display Data Size 显示的数据长度(即将多少个采样点的数据进行显示,该数值不能大于Acquisition Buffer Size) 图 22 程序已将8通道的时域数据保存到DSP端L2SRAM,如需查看其他通道波形,请按照上述方法打开对应通道地址查看即可。 本次使用TL7606I模块进行测试,在上图中可看到通道0的时域波形,波形的幅值约为6796。从CCS看到的波形值为AD芯片内部寄存器保存的数字量,从AD7606和ADS8568的芯片数据手册得到的换算公式均为:数字量=待测量/量程*32768,则AD信号实际幅值=数字量*量程/32768=6796*5V/32768=1.04V,与信号发生器的1V标称值接近。 查看频域波形 Memory Browser”,在弹出界面的搜索栏搜索ch_fft_buffer数组,该数组存放频域数据,搜索结果如下图所示。ch_fft_buffer数组包含8个地址,从左到右分别对应存放通道0至7频域数据的起始地址,例如0x008292A0为存放通道0频域数据的起始地址。 备注: 由于受处 理器的性能限制,程序默认只对通道0~5进行FFT处理,因此ch_fft_buffer数组未存放通道6和7频域数据。 图 23 Single Time”,如下图所示。 图 24 在弹出界面中按照下图内容进行配置,然后点击OK,即可查看AD信号的频域波形。 图 25 表 3 Acquisition Buffer Size 从Start Address开始读取的数据长度 Dsp Data Type 读取的数据类型 Index Increment 索引增量(即每个采样点数据序号的相差值,由于FFT数据以复数形式存储,只取复数中的实部进行显示,因此设置成2,隔点取值显示) Start Address 从Start Addres开始读取数据 Display Data Size 显示的数据长度(即将多少个采样点的数据进行显示,该数值不能大于Acquisition Buffer Size) 图 26 点击菜单栏放大按钮进行放大查看,点击 打开游标工具,再点击X-Axis可查看到信号存在,如下图所示。 图 27 程序已将6通道的频域数据保存到DSP端L2SRAM,如需查看其他通道波形,请按照上述方法打开对应通道地址查看即可。 本次使用TL7606I模块进行测试,在上图中可看到通道0的频域波形在第12个点存在信号。程序命令已设置每6us触发一次TL7606I模块的CONVST/GPIO5 引脚进行AD信号采集。 图 28 图 29 在程序运行过程中使用示波器通过测量CONVST/GPIO5 引脚,测得信号实际采集周期为5.720us,即信号实际采样率为174.8KHz。 图 30 与设定的6us存在一定误差的原因主要有如下两点: 程序使用的GPTimer6定时器的精度存在误差,并受系统延时影响。 GPIO引脚电平翻转存在约100ns的时延。如选择专用的定时器输出引脚作为触发信号,可降低时延。 =0),参数解析如下表。 表 4 Fn 采样频率 n 存在信号的点 Fs 信号采样率 N 信号采样长度 可得出实际的采样频率Fn=12*(174.8KHz/512)=4.0969KHz,与信号发生器的4KHz标称值接近。 到这里,案例功能和操作的基本说明,包括硬件连接与案例测试、如何使用CCS查看信号波形部分就介绍到这里,想要查看案例编译和ARM(Host)端、DSP(Slave)端的关键代码,请看下篇文章,感谢关注,欢迎点赞或评论区留言!
  • 热度 21
    2012-12-7 23:25
    4942 次阅读|
    4 个评论
            AD7760是一款高速24bitAD采集芯片,采样率为78.125k-2MHz,在78.125k采样率下的动态范围120dB。我用cyclone3 FPGA控制,由于AD7760采用2.5V数字供电,故使用2.5V电源作为该FPGA bank的供电电源。         芯片电源很多,尽量按照期间手册和参考电路板上的要求供电、布线(磁珠,三端电容器尽量按照手册要求),一定要用干净的模拟电源供电,芯片底部有接地焊盘,手工焊的话可以在底部打大点的孔,从底部补上锡就行了。          看器件手册好像时钟抖动要求比较高,之前一直比较怀疑我的电路,后来发现担心是多余的,用40M的有源晶振和一个与门就OK了,时钟质量很好。         AD7760输入为查分信号,所以,一般调理后的单端信号,要通过AD8021进行单端转查分,否则会影响信号质量。而且AD8021周围的元件参数一定要非常精密,0.1%。         ADI官方有相应的Verilog例程,拿过来就可以用,上层的控制逻辑可以根据需要精简一下。实际测了一下采集精度,用signal stap II抓数据看了一下,在78.125k采样率下,基本能保证18位多的采集精度,虽然和器件手册上说的120dB有2bit的差距,但在如此高采样率下已经相对比较理想了。         AD采集模块和Nios II CPU的接口采用FIFO,CPU读取FIFO的数据,做一些校准、波形显示,FFT变换之类的工作。同时AD采集模块的数据经过FIFO送至USB控制模块,将高速数据直接发送至PC机(这一模块块尽量避免使用CPU,否则会大大加重CPU的负担)。CPU仅仅用来配置USB通道和发送很少的校准数据。        AD7760比较好的一个功能就是内部集成了FIR滤波器,用户可以根据需要配置滤波器的参数,比如高通、低通、带通滤波器,这一功能比较高级,目前还没试。我的想法是在下面计算好一些滤波参数,根据不同的需要选择相应的滤波器参数下载进去。这样会取得更好的数据精度。
相关资源
  • 所需E币: 5
    时间: 2019-12-25 17:21
    大小: 11.08KB
    上传者: quw431979_163.com
    基于FPGA的多路模拟量、数字量采集与处理系统……
  • 所需E币: 3
    时间: 2020-1-2 01:56
    大小: 226.62KB
    上传者: 2iot
    介绍了一种利用USB2.0的高速传输特性,基于USB和DSP的数据采集系统.详细论述了系统的总体结构、部分硬件设计,并简要叙述了相应固件程序的实现.基于USB和DSP昀数据采集系统帕设计戴小俊1’2,丁铁夫1,郑喜凤-(1.中国科学院长春光学精密机械与物理研究所,长春130033;2.中国科学院研究生院,北京100039)摘要:介绍了一种利用USB2.0的高速传输特性,基于USB和DSP的数据采集系统。详细论述了系统的总体结构、部分硬件设计,并简要叙述了相应固件程序的实现。关键词:USBDSPFPGA高速传输测量仪器一般由数据采集、数据分析和显示三部分入FIFO中;当FIFo数据半满后,产生中断,通知DSP进组成,而数据分析和显示可以由PC机的软件来完成,行数据压缩处理;DSP把压缩好的数据依次写入USB接因此只要额外提供一定的数据采集硬件就可以和PC机口芯片的4个从FIF0中,4个从nFO对应USB的4个组成测量仪器。这种基于PC机的测量仪器被称为虚拟端点,DSP一边写入数据,已写满的从FIFO就一边通过仪器…。而在一些数据量比较大、采集时间比……