Linux工控主板的多通道高速并行采集方案(基于libiio)
英创公司推出了支持多通道同步采样ADC的工控主板ESM7080,板载了8路16位同步AD,最高采样率可达200KSPS,关于具体的指标可以参考文章《英创推出多通道同步采样ADC工控主板》中的介绍。
这套方案利用了CPU i.MX7D的异构核心优势,使用Cortex-M4核心来控制8路AD,保证了数据读取的实时性,M4读取到数据后会通知Linux系统,再由Linux系统从缓冲区中将M4存放的数据一次性读出。为了方便客户的使用,英创公司提供了Linux系统上的专用驱动,将这8路AD作为了IIO子系统(Linux Industrial I/O Subsystem)中的设备,这样用户就可以通过标准的IIO接口操作来读取AD数据,而不必关心和Cortex-M4核心相关的交互操作。下面就来介绍在ESM7080主板上采集数据的相关设置。
因为是实现的同步采样,所以Linux系统中,将8路AD作为了一个整体的设备,设备目录为/sys/bus/iio/devices/iio:device0/,目录中的文件如下图:
其中比较重要的几个文件的说明如下:
设备或目录名称 | 简介 |
---|---|
in_voltage_sampling_frequency | 设置或读取当前采样率 |
sampling_frequency_available | 读取in_voltage_sampling_frequency可以设置的有效值,具体见表2 |
in_voltage_scale | 设置或读取当前采样电压范围,有两个范围,0表示-5v~+5v,1表示-10v~+10v |
in_voltage_scale_available | 读取in_voltage_scale可以设置的值,即0和1 |
scan_elements(目录) | 用于使能连续采样通道 |
trigger(目录) | 用于使能连续采样的trigger |
buffer(目录) | 用于开启连续采样 |
sampling_frequency_available可以读取出支持的采样率:
设备名称 | 支持的采样率(Hz) |
---|---|
sampling_frequency_available | 20,40,100,200,400,1000,2000,4000,10000,20000,40000,100000,200000 |
表1中文件的读取和写入都可以通过标准文件的读写操作来实现,也可以通过libiio库提供的函数接口来进行设置。
英创公司建议客户还是通过libiio库来实现连续采样,在之前的文章中我们已经做过详细的介绍《基于Linux IIO接口的波形采集》。因为ESM7080主板的AD也是基于IIO子系统提供的接口,所以程序是完全一致的,这里就不再赘述了。下面说明关于ESM7080的AD在使用的时候需要注意的一些地方。
因为将8个同步采样的AD通道作为了一个整体设备,所以一次读取出的数据是以16字节为单位的(一个通道16位为2个字节,一共8个通道),数据的具体排列方式如下:
字节偏移量 | 对应数据 |
---|---|
0 | 通道1 |
2 | 通道2 |
4 | 通道3 |
6 | 通道4 |
8 | 通道5 |
10 | 通道6 |
12 | 通道7 |
14 | 通道8 |
16 | 通道1 |
... |
关于采集数据的时候负载情况,我们实际测试在100K和200K采样率下,连续采集并将数据写入到磁盘的过程中,系统负载的情况如下:
采样率 | 负载情况 |
---|---|
200K | 30% |
100K | 15% |
根据表4的情况,可以看到在200K采样率的情况下,还留有足够的CPU资源给用户进行处理数据。
下面是在100K采样率下进行的一次波形采集测试。我们在通道1和通道2上分别接入了100Hz的正弦波和三角波,其余通道接入了一个固定电平信号,使用基于libiio实现的例程采样了16000个点(每个通道2000个点),然后利用gnuplot工具将采样值按照通道排列的格式绘制成曲线图,结果如下:
可以看到图中绘制每个通道采集的2000个点中,通道1和通道2刚好是2个周期。100K采样率下,100Hz的波形每个周期应该是采样1000个点,刚好是对应上的。另外6通道接入了固定电平信号,所以是一条直线。
对这套方案感兴趣的客户可以与英创公司的工程师联系,索取相关资料和例程。
Linux工控主板的多通道高速并行采集方案(基于libiio)相关推荐
- 微信公众号采集方案(基于Windows逆向)
引言 目前主流的公众号采集方案只有以下几种方法 搜狗微信 无法采集历史了,而且搜索也不按时间排序.获取的数据的价值不高,不过可以通过它来获取公众号的biz. 微信公众平台 微信公众平台虽然可采集历史, ...
- 多通道高速采集卡简介
产品编号:HSDAQ9870 规 格:8bit 1GS/s 高速数据采集卡 及专用高性能磁盘阵列服务器系统 产品类别:高速数据采集卡 Product characteristics 产品特性 1> ...
- 网络分流器-网络分流器-高速网络流量采集方案
网络分流器是网络安全领域监控前端重要的基础装备,对于整个网络安全起到关键作用! 戎腾网络分流器 首先讲一下 流量采集 流量采集,主要就是将网络流量通过物理层.数据链路层的信号解析和解帧,实现对IP原始 ...
- 高速信号采集的天线拉远系统方案
常用的宽带高频信号采集方案,一般系统包括:接收天线.射频LNA/PA.信号采集和处理.如下图: 在实际使用时,信号采集的输入端与天线之间的射频线缆会设计得尽量短,减少线缆带来的损耗和额外因素,提高信号 ...
- GNSS导航卫星中频信号高速采集方案
客户要求实现4通道12位62MSPS(AD板最大支持250MSPS),其中存储时12位数据扩充4个符号位成16位,由此可计算带宽:4 * 16 / 8 * 62e6 = 496000000 B/sec ...
- skew算法_一种基于FPGA的多通道高速输入信号自动de‑skew算法的制作方法
本发明涉及高速数据采集技术,更具体的涉及一种基于FPGA的多通道高速输入信号自动de-skew算法. 背景技术: 随着对精度和速率要求越来越高,目前数据采集系统向着多通道和超高速两个方向发展.多通道高 ...
- 计算机多通道存储器工作原理,多通道大容量的采集存储器的设计与实现 - 全文...
数据采集存储是信号处理过程的一个重要环节, 已经广泛应用于雷达.声纳.瞬态信号测试.无线探伤等领域.在不同的条件下采样速率和采样精度也有所不同, 系统的实现方法也各有差异.通常情况下, 如果采集速率较 ...
- 【嵌入式Linux应用开发】设计温湿度采集MCU子系统
1. 概述 本篇主要是使用百问网的100ASK_STM32F103_PRO开发板加上ESP8266和DHT11设计一个采集环境温湿度的子系统,将温湿度数据上云,让阿里云服务器转发给订阅了该温湿度数 ...
- 2017、2018、2019、2020、2021数控机床数控系统采集方案汇总
目录 前言 一.各类数控机床采集方案 1.Fanuc发那科数控 2.广数数控 3.西门子数控 4.MAZAK马扎克数控 5.HASS哈斯数控 6.新代数控 7.KND凯恩帝数控 8.Brother兄弟 ...
最新文章
- python网页前端和react有什么区别_Vue与React两个框架的粗略区别对比
- 【渝粤教育】电大中专电商运营实操 答案作业 题库
- python数据去重的函数_python pandas dataframe 去重函数的具体使用
- Spark 性能相关参数配置详解-任务调度篇
- CSS中的IFC和BFC入门
- linux内核 快速分片,linux内核学习笔记------ip报文的分片
- iOS:×××送(二)----pem证书的生成
- 中国教育与软件企业的共同误区
- html 5入门,HTML5入门
- 图像处理五:python读取图片的几种方式
- java数组使用实验报告_Java课程实验报告实验六——异常处理
- 百度快照多久更新一次?
- 刘润5分钟商学院读书笔记之:企业能量模型
- 计算机显示器性能指标的是,简述显示器的主要性能指标
- 红帽linux内核,如何下载centos/redhat的linux内核源代码
- 全国一二线城市各大互联网(IT)公司,各位找工作的小伙伴可以参考
- 第十二期基金定投-周末更新数据
- 更改jupyter lab默认启动路径(亲测有效)
- EF Core 执行SQL语句和存储过程
- h3c无线认证服务器,H3C无线路由器配置样例之带认证接入