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

    文章

    11559

    浏览量

    215439
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6106

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

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

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

    数据采集系统的典型应用

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

    数据采集与控制器是什么

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

    注塑机数据采集介绍

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

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

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

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

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

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

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

    PLC数据采集模块的故障排除技巧

    PLC数据采集模块的故障排除是一个复杂但有序的过程,以下是一些关键的故障排除技巧: 一、初步判断与电源检查 收集故障信息 : 详细记录故障现象、发生时间以及任何相关的操作或环境变化。 了解数据
    的头像 发表于 11-26 13:43 ?1366次阅读

    数控机床CNC数据采集方案

    产品介绍及解决方案 远智控YC-8000CNC-WIFI-01-03数控机床数据采集网关能够实时采集机床的运行状态、加工过程的参数、设备维护信息
    的头像 发表于 11-11 09:51 ?934次阅读
    数控机床CNC<b class='flag-5'>数据采集</b>方案

    数据采集卡VS传统仪表#数据采集卡 #仪器仪表 #电子技术

    数据采集
    西安阿尔泰电子科技发展有限公司
    发布于 :2024年11月05日 09:46:26

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

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