0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术EM9287 Linux环境的AD数据采集介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-17 08:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

EM9287是英创公司新近推出的,专门针对网络通讯、智能终端等应用的工控主板产品。EM9287可选择预装Linux-3.9.7操作系统。在Linux-3.9.7中,AD数据采集已采用新的工业IO(简称IIO)驱动程序框架,本文主要介绍应用程序如何读取相关的AD数据。此外,英创公司的另一款主流工控主板产品EM9280也升级到Linux-3.9.7,具有与EM9287完全相同的AD通道,因此本文所介绍的AD数据读取方法同样适用于EM9280。

EM9287支持2路单端模拟信号输入AIN1和AIN2,输入量程为 0V – 3.6V,信号管脚在CN1的17#和18#管脚。除了支持2路AD外,应用程序还可读取主板的CPU芯片iMX28的芯片当前温度,以了解设备的运行情况。以下是测试程序:

#include
#include
#include
#include
#include
char iiotype[16][32] = {
''in_voltage0_raw'',
'in_voltage1_raw',
'in_voltage2_raw',
'in_voltage3_raw',
'in_voltage4_raw',
'in_voltage5_raw',
'in_voltage6_raw',
'in_voltage7_raw',
'in_temp8_raw',
'in_temp9_raw',
'in_voltage10_raw',
'in_voltage11_raw',
'in_voltage12_raw',
'in_voltage13_raw',
'in_voltage14_raw',
'in_voltage15_raw' };
// return = 0: voltage value from AIN1, unit: mV
// < 0: failed 
int read_AIN1(float *fvoltage)
{
int value, ret = 0;
char filename[80];
FILE *fp;
char buf[20];
sprintf( filename, '/sys/bus/iio/devices/iio:device0/%s', iiotype[0]);
fp = fopen(filename, 'rt' );
if( fp==NULL )
{
printf('open %s fail! ', filename);
*fvoltage = 0.0;
ret = -1;
return ret;
}
fread( buf, 1, sizeof(buf), fp );
fclose(fp);

// convert to integer
sscanf( buf, '%d', &value );
*fvoltage = 0.9 * value;
return ret;
}
// return = 0: voltage value from AIN2, unit: mV
// < 0: failed 
int read_AIN2(float *fvoltage)
{
int value, ret = 0;
char filename[80];
FILE *fp;
char buf[20];
sprintf( filename, '/sys/bus/iio/devices/iio:device0/%s', iiotype[1]);
fp = fopen(filename, 'rt' );
if( fp==NULL )
{
printf('open %s fail! ', filename);
*fvoltage = 0.0;
ret = -1;
return ret;
}
fread( buf, 1, sizeof(buf), fp );
fclose(fp);
// convert to integer
sscanf( buf, '%d', &value );
*fvoltage = 0.9 * value;
return ret;
}
// return = 0: temperature value from CPU, unit: K (Kalvin)
// < 0: failed 
int read_CPU_temperature(float *ftemp)
{
int v_ch9, v_ch8, ret = 0;
char filename[80];
FILE *fp;
char buf[20];
sprintf( filename, '/sys/bus/iio/devices/iio:device0/%s', iiotype[9]);
fp = fopen(filename, 'rt' );
if( fp==NULL )
{
printf('open %s fail! ', filename);
*ftemp = 0.0;
ret = -1;
return ret;
}
fread( buf, 1, sizeof(buf), fp );
fclose(fp);
// convert to integer
sscanf( buf, '%d', &v_ch9 );
sprintf( filename, '/sys/bus/iio/devices/iio:device0/%s', iiotype[8]);
fp = fopen(filename, 'rt' );
if( fp==NULL )
{
printf('open %s fail! ', filename);
*ftemp = 0.0;
ret = -1;
return ret;
}
fread( buf, 1, sizeof(buf), fp );
fclose(fp);
// convert to integer
sscanf( buf, '%d', &v_ch8 );
*ftemp = ((float)(v_ch9 - v_ch8) * 1012) / 4000;
return ret;
}
int main(int argc, char** argv)
{
int ret = 0;
float fvalue;
printf('EM9280/EM9287 IIO AD test v2.0 ');
// read AIN1
ret = read_AIN1(&fvalue);
if(ret < 0) 
{
return ret;
}
printf('AIN1 = %.2f mV ', fvalue);
// read AIN2
ret = read_AIN2(&fvalue);
if(ret < 0) 
{
return ret;
}
printf('AIN2 = %.2f mV ', fvalue);
// read CPU temperature
ret = read_CPU_temperature(&fvalue);
if(ret < 0) 
{
return ret;
}
printf('CPU Temperature = %.1f K, (%.1f C degree) ', fvalue, (fvalue - 273));
return ret;
}

在控制台(console)窗口,也可通过Linux命令查看IIO驱动的原始通道:

进一步,可用cat命令读取各个通道AD转换的原始数据,EM9280、EM9287内部AD分辨率为12-bit,所以原始数据范围为:0 – 4095。开发人员可通过以下命令来快速了解设备的AD数据状况。

#cat in_voltage0_raw // 读取CH0的原始数据
#cat in_voltage1_raw // 读取CH1的原始数据
#cat in_temp8_raw // 读取CPU温度的原始数据
#cat in_temp9_raw // 读取CPU温度的原始数据

其他的原始通道涉及EM9287的触摸屏、内部供电电源等,已不在本文的介绍范围。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217966
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6107

    浏览量

    36950
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    从0开始使用LabVIEW操作数据采集卡-概述和新建新建项目

    概述 由于LabVIEW强大的可视化和分析功能,其在数据采集卡行业有着广泛的应用,本文以北京中泰联科技有限公司的EM9316BD-16为例来说明如何使用LabVIEW编写一个能够显示16通道模拟
    的头像 发表于 10-10 14:54 299次阅读
    从0开始使用LabVIEW操作<b class='flag-5'>数据采集</b>卡-概述和新建新建项目

    基于GIS的海洋环境数据采集与管理系统

    基于GIS的海洋环境数据采集与管理平台系统
    的头像 发表于 09-19 17:09 341次阅读
    基于GIS的海洋<b class='flag-5'>环境</b><b class='flag-5'>数据采集</b>与管理系统

    实时、高效,解锁气象数据采集新速度——气象数据采集

    了强大动力。 笛远气象数据采集器是一款功能强大的数据采集、计算、管理设备,其应用领域极为广泛,不仅在气象领域发挥着核心作用,还延伸至环境、智慧城市、海洋、新能源等多个领域。这种跨领域的适应性,源于它丰富多样的数
    的头像 发表于 08-22 17:27 641次阅读

    数据采集卡与传感器

    文章介绍数据采集设备的分类,以及如何采集传感器的数据
    的头像 发表于 08-04 15:04 396次阅读
    <b class='flag-5'>数据采集</b>卡与传感器

    科普|信是什么?一文读懂“信息技术应用创新”战略

    什么是信?信,即“信息技术应用创新”,是国家推动IT系统自主可控、安全可控的重要战略工程。它不仅是技术层面的创新,更承载着保障国家网络安全、推动产业升级和实现数字主权的重任。简单来
    的头像 发表于 06-13 10:06 6297次阅读
    科普|信<b class='flag-5'>创</b>是什么?一文读懂“<b class='flag-5'>信息技术</b>应用创新”战略

    数据采集的关键节点设备是什么

    数据采集是从各种数据源中获取所需信息的过程,其关键节点设备根据应用场景、采集对象和技术需求的不同而有所差异。以下是一些常见的
    的头像 发表于 06-13 09:15 755次阅读
    <b class='flag-5'>数据采集</b>的关键节点设备是什么

    高品质存储卡助力精准数据采集

    随着信息技术的飞速发展,数据采集系统(DAQ)已经广泛应用于各行各业,包括工业自动化、科研实验、汽车电子、环境监测等领域。这些系统在各种复杂应用中承载着高精度、高速的数据采集、处理和分
    的头像 发表于 06-10 17:27 443次阅读
    高品质存储卡助力精准<b class='flag-5'>数据采集</b>

    基于GIS的海洋环境数据采集与管理平台软件

    基于GIS的海洋环境数据采集与管理平台软件
    的头像 发表于 04-28 22:15 544次阅读
    基于GIS的海洋<b class='flag-5'>环境</b><b class='flag-5'>数据采集</b>与管理平台软件

    labview进行的数据采集

    请问在labview中进行数据采集,为保证不同设备之间采集数据的同步性,准备利用PPS进行触发开始任务,利用DAQmx设备内部时钟源来设置数据采集的一些参数,但是为了防止pps信号的缺失,准备能够周期性的利用pps对内部晶振进行
    发表于 04-27 10:19

    IO数据采集物联网平台是什么?有什么功能?

    IO数据采集物联网平台是一种专门用于采集、处理、分析和管理来自各种物联网设备的输入输出(IO)数据的软件平台。以下是对其功能、架构、应用的详细介绍: 主要功能
    的头像 发表于 04-10 09:22 667次阅读

    数据采集系统的典型应用

    一、数采系统的介绍 数据采集系统是一种综合运用数据采集技术、计算机技术、传感器技术和信号处理
    的头像 发表于 02-18 16:19 1446次阅读
    <b class='flag-5'>数据采集</b>系统的典型应用

    数据采集与控制器是什么

    在现代信息科学和工业自动化领域,数据采集与控制器扮演着至关重要的角色,是连接物理世界与数字世界的桥梁,更是推动智能化、自动化进程的关键技术。从智能制造到智慧城市,从环境监测到医疗健康,
    的头像 发表于 02-13 15:35 757次阅读

    自动化设备数据采集系统介绍

    在当今数字化浪潮席卷全球的时代,制造业正经历着深刻的变革。自动化设备数据采集系统作为这一变革浪潮中的关键技术,犹如制造业智能化的核心引擎,为企业的高效运营、精准决策以及持续创新提供了强大动力。 一
    的头像 发表于 01-15 14:29 1050次阅读

    注塑机数据采集介绍

    捷米特JM-INMA01-4G/WIFI注塑机数据采集网关是一款专用的注塑机数据采集网关,旨在解决当前注塑机设备数据采集痛点,注塑机品牌繁多,设备无接口,或者协议不统一,有线网络施工难度大的问题,帮助客户快捷迅速
    的头像 发表于 12-25 09:32 1343次阅读
    注塑机<b class='flag-5'>数据采集</b><b class='flag-5'>介绍</b>

    深控信息技术公司:不需要点表的工业网关数据采集方案

    深控信息技术公司的 “不需要点表的工业网关” 数据采集方案,颠覆了传统依赖点表进行数据采集的模式。传统方式往往需要大量的人力和时间去配置点表,且在面对复杂多变的工业环境和设备时,容易出
    的头像 发表于 12-16 15:29 731次阅读
    深控<b class='flag-5'>信息技术</b>公司:不需要点表的工业网关<b class='flag-5'>数据采集</b>方案