英创公司推出了支持多通道同步采样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/,目录中的文件如下图:

其中比较重要的几个文件的说明如下:

表1
设备或目录名称 简介
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可以读取出支持的采样率:

表2
设备名称 支持的采样率(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个通道),数据的具体排列方式如下:

表3
字节偏移量 对应数据
0 通道1
2 通道2
4 通道3
6 通道4
8 通道5
10 通道6
12 通道7
14 通道8
16 通道1
...

关于采集数据的时候负载情况,我们实际测试在100K和200K采样率下,连续采集并将数据写入到磁盘的过程中,系统负载的情况如下:

表4
采样率 负载情况
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)相关推荐

  1. 微信公众号采集方案(基于Windows逆向)

    引言 目前主流的公众号采集方案只有以下几种方法 搜狗微信 无法采集历史了,而且搜索也不按时间排序.获取的数据的价值不高,不过可以通过它来获取公众号的biz. 微信公众平台 微信公众平台虽然可采集历史, ...

  2. 多通道高速采集卡简介

    产品编号:HSDAQ9870 规 格:8bit 1GS/s 高速数据采集卡 及专用高性能磁盘阵列服务器系统 产品类别:高速数据采集卡 Product characteristics 产品特性 1> ...

  3. 网络分流器-网络分流器-高速网络流量采集方案

    网络分流器是网络安全领域监控前端重要的基础装备,对于整个网络安全起到关键作用! 戎腾网络分流器 首先讲一下 流量采集 流量采集,主要就是将网络流量通过物理层.数据链路层的信号解析和解帧,实现对IP原始 ...

  4. 高速信号采集的天线拉远系统方案

    常用的宽带高频信号采集方案,一般系统包括:接收天线.射频LNA/PA.信号采集和处理.如下图: 在实际使用时,信号采集的输入端与天线之间的射频线缆会设计得尽量短,减少线缆带来的损耗和额外因素,提高信号 ...

  5. GNSS导航卫星中频信号高速采集方案

    客户要求实现4通道12位62MSPS(AD板最大支持250MSPS),其中存储时12位数据扩充4个符号位成16位,由此可计算带宽:4 * 16 / 8 * 62e6 = 496000000 B/sec ...

  6. skew算法_一种基于FPGA的多通道高速输入信号自动de‑skew算法的制作方法

    本发明涉及高速数据采集技术,更具体的涉及一种基于FPGA的多通道高速输入信号自动de-skew算法. 背景技术: 随着对精度和速率要求越来越高,目前数据采集系统向着多通道和超高速两个方向发展.多通道高 ...

  7. 计算机多通道存储器工作原理,多通道大容量的采集存储器的设计与实现 - 全文...

    数据采集存储是信号处理过程的一个重要环节, 已经广泛应用于雷达.声纳.瞬态信号测试.无线探伤等领域.在不同的条件下采样速率和采样精度也有所不同, 系统的实现方法也各有差异.通常情况下, 如果采集速率较 ...

  8. 【嵌入式Linux应用开发】设计温湿度采集MCU子系统

    1. 概述 ​ 本篇主要是使用百问网的100ASK_STM32F103_PRO开发板加上ESP8266和DHT11设计一个采集环境温湿度的子系统,将温湿度数据上云,让阿里云服务器转发给订阅了该温湿度数 ...

  9. 2017、2018、2019、2020、2021数控机床数控系统采集方案汇总

    目录 前言 一.各类数控机床采集方案 1.Fanuc发那科数控 2.广数数控 3.西门子数控 4.MAZAK马扎克数控 5.HASS哈斯数控 6.新代数控 7.KND凯恩帝数控 8.Brother兄弟 ...

最新文章

  1. python网页前端和react有什么区别_Vue与React两个框架的粗略区别对比
  2. 【渝粤教育】电大中专电商运营实操 答案作业 题库
  3. python数据去重的函数_python pandas dataframe 去重函数的具体使用
  4. Spark 性能相关参数配置详解-任务调度篇
  5. CSS中的IFC和BFC入门
  6. linux内核 快速分片,linux内核学习笔记------ip报文的分片
  7. iOS:×××送(二)----pem证书的生成
  8. 中国教育与软件企业的共同误区
  9. html 5入门,HTML5入门
  10. 图像处理五:python读取图片的几种方式
  11. java数组使用实验报告_Java课程实验报告实验六——异常处理
  12. 百度快照多久更新一次?
  13. 刘润5分钟商学院读书笔记之:企业能量模型
  14. 计算机显示器性能指标的是,简述显示器的主要性能指标
  15. 红帽linux内核,如何下载centos/redhat的linux内核源代码
  16. 全国一二线城市各大互联网(IT)公司,各位找工作的小伙伴可以参考
  17. 第十二期基金定投-周末更新数据
  18. 更改jupyter lab默认启动路径(亲测有效)
  19. EF Core 执行SQL语句和存储过程
  20. h3c无线认证服务器,H3C无线路由器配置样例之带认证接入

热门文章

  1. 百度智能云怎样建立服务器,百度智能云服务器BCC系统盘扩容如何做
  2. 如何批量修改云服务器BCC实例名称
  3. c语言实现学生档案管理系统
  4. EBS创建会计科目请求报错问题查询
  5. flex横向纵向间距,自适应排列
  6. 新电脑win10系统的一个BUG
  7. WebSSH在线编程 所需工具介绍
  8. .net ImageProcessor组件转换图片格式
  9. SQL Server解决18456错误方案
  10. Linux 系统 网卡RTL8723BE 信号差不稳定的解决办法