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
    +关注

    关注

    87

    文章

    11319

    浏览量

    209832
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35434
收藏 人收藏

    评论

    相关推荐

    注塑机数据采集介绍

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

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

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

    数据采集器的工作原理解析 实时数据采集器的优势是什么

    扫描器等设备,实时捕捉环境中的各种信息。这些信息可以包括环境参数(如温度、湿度、压力等)、机器状态(如运行时间、故障报警等)以及用户行为(如操作记录、输入
    的头像 发表于 11-28 15:54 618次阅读

    数据网关与数据采集器的区别

    在现代信息技术和工业自动化领域,数据的收集、处理和传输是至关重要的。数据网关和数据采集器是实现这些功能的两个关键组件,它们在数据流动和管理中
    的头像 发表于 11-28 15:52 347次阅读

    中科达荣获2024年软件和信息技术服务优秀企业

    及前百家企业”名单。中科达凭借非凡的技术实力与持续的创新能力,成功入选“2024年度软件和信息技术服务竞争力百强企业”以及“2024年软件和信息技术服务优秀企业”。
    的头像 发表于 10-30 11:44 505次阅读

    工控数据采集物联网平台是什么

    工控数据采集物联网平台是一种集成化的软件系统,它主要用于在工业环境中收集、处理、分析和管理来自各种设备和传感器的数据。这种平台结合了物联网(IoT)技术,能够实现对工业设备的远程监控、
    的头像 发表于 07-23 15:29 395次阅读

    水利数据采集远程监控平台是什么

    水利数据采集远程监控平台是一种基于现代信息技术的管理系统,用于对水资源、水环境、水利工程等进行实时的数据采集和远程监控。这个平台通常包括硬件设备和软件系统两部分。 硬件设备主要包括传感
    的头像 发表于 07-22 15:36 380次阅读

    数据采集网关与工业物联网平台一体化解决方案

    随着信息技术的进步,智能制造逐渐从概念走向现实。工业物联网通过连接设备、系统和人员,实现了生产过程的高度自动化和智能化。然而,在实际应用中,如何高效地采集和处理海量的数据成为了亟待解决的问题。这就需要一种可靠且高效的
    的头像 发表于 07-14 10:42 404次阅读
    <b class='flag-5'>数据采集</b>网关与工业物联网平台一体化解决方案

    NI数据采集板卡如何连接使用?

    NI(National Instruments)数据采集板卡是一种常用的工业级数据采集设备,广泛应用于科学研究、工程测试、自动化控制等领域。本文将介绍如何连接产品并使用NI数据采集板卡
    的头像 发表于 07-11 10:05 1020次阅读

    数据采集系统分为几类

    和应用场景. 1. 概述 大数据采集系统是实现数据收集、处理和存储的关键环节。随着大数据技术的快速发展,大数据采集系统也在不断演进和创新。本
    的头像 发表于 07-01 15:44 1609次阅读

    常见的数据采集工具的介绍

    数据采集数据分析和处理的基础,它涉及到从各种数据源中提取、收集和整理数据的过程。数据采集工具的选择对于
    的头像 发表于 07-01 14:51 879次阅读

    工控数据采集平台是什么?

    工控数据采集平台是一种用于工业控制和监测领域的系统,该平台能够收集来自传感器、执行器、机械设备以及其他系统的信息,并对这些数据进行处理、存储和分析。这些数据可以是关于生产过程、设备状态
    的头像 发表于 06-14 15:29 429次阅读

    数据采集网关的功能和应用场景

    随着信息技术的飞速发展,物联网系统在各行业的应用越来越广泛,数据采集网关作为物联网系统中的重要组成部分,发挥着至关重要的作用。本文将详细介绍数据采集网关的功能及应用场景,以便读者更好地
    的头像 发表于 06-13 15:22 832次阅读
    <b class='flag-5'>数据采集</b>网关的功能和应用场景

    数据采集边缘网关解决企业数据采集痛点的关键

    随着信息技术的快速发展,企业对于数据采集和处理的需求日益增长。然而,传统的数据采集方式往往面临着数据量大、传输延迟、安全性不足等问题,给企业的运营和管理带来了诸多挑战。在这样的背景下,
    的头像 发表于 04-07 13:56 398次阅读

    边缘数据采集网关:解决企业转型痛点的关键

    随着信息技术的飞速发展,越来越多的企业开始意识到数据的重要性,并着手进行数字化转型。然而,在转型过程中,许多企业面临着数据采集的难题。特别是在工业制造、能源管理、物流运输等领域,由于设备分布广泛
    的头像 发表于 04-07 13:51 376次阅读