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

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

3天内不再提示

英创ETA108波形数据采集模块性能及使用

英创信息技术 作者:英创信息技术 2019-10-09 15:05 次阅读

1、综述

ETA108是英创公司推出的一款低成本高性能的AD采集模块,相比英创公司的其他数据采集扩展模块,ETA108的一个主要特点是支持硬件周期脉冲触发AD采集,因此ETA108非常适合应用于要求高精度采样间隔的波形数据采集。ETA108波形数据采集模块可广泛应用于多通道波形记录仪、电力谐波分析、故障录波、振动信号分析、瞬态信号采集、通用数据采集等多种应用领域。现ESM335x Linux已支持ETA108数据采集模块。

英创ETA108波形数据采集模块性能及使用

ETA108性能:

• 8通道单端输入或4通道差分输入

• 输入量程0~4.096V

• 每通道具有独立的高阻抗增益放大器(PGA),可实现各种传感器之间的直接接口连接,并支持用户配置通道增益Gain=1/2/4/8)

• AD转换精度12bit

• AD最高采样速度100ksps

• 可选择多种平均操作模式,使输出AD精度达到14bit。其中有快速平均和精确平均两种模式可以选择。快速平均模式:对4,8或16次采样结果做平均,可增加AD分辨率到14bit,快速平均模式适用于输入到PGA的信号比较稳定的情况。精确平均模式:对4,8或16次采样结果做平均,可得到比快速平均模式更精确的采样结果。此模式在输入信号不太稳定的情况下适用。

使用4次平均模式总采样速率不得高于20ksps,使用8次平均模式总采样速率不得高于10ksps,使用16次平均模式采样速率不得高于5ksps。当用户采用默认设置进行采样时,我们的驱动会根据用户设置的采样速度进行设置,使用能够达到的最高平均模式以提高采样精度。用户也可自行设置。

关于ETA108更详细的参数以及设置方法请参考《ETA108数据采集模块应用手册》(Linux)。

2、应用程序接口

1、驱动程序

在使用ETA108之前,需要在系统中先加载ETA108的驱动程序。我们提供eta108.ko驱动模块,用户使用insmod /(目录)/eta108.ko 命令就可以加载驱动。

为了实现ETA108的高速数据采集,在其驱动程序中,充分利用了ESM335x的高性能DMA技术,从而保证了ETA108与ESM335x主板之间仅靠简单的4线制SPI接口就实现了硬件连接,同时,DMA技术的引入,也将数据采集对系统性能的影响降到最低。考虑到实际应用,ESM335x ETA108驱动程序支持单次采样模式和连续采样模式,两种模式下驱动每采集到512个点的数据(1kB数据大小)或者采样结束就会通知用户程序,建议应用程序中select函数和read函数一起使用尽快读出数据,以避免驱动维护大量的数据缓存。

连续采样处理流程

驱动程序中进行设置的eta108_config结构体。

eta108_config结构体是ETA108的配置数据结构体,包含了采样率,采样长度,采样通道设置,通道寄存器配置等参数。其定义如下:

struct eta108_config

{

unsigned int rate;

unsigned int count;

unsigned int channel;

void *config;

unsigned int config_len;

};

在我们提供的驱动程序中,eta108_config结构体即可用为函数的输入参考,其结构体成员含义说明如下:

ADS_CONFIG结构体定义

成员 定义 / 输入参数
rate 设置总的采样率,每通道采样率= rate/通道数
count 设置每个AD通道的采样次数>0:单次采样=0:连续采样
channel 设置需要采样的通道,对应位置1
config 指向AD通道配置的buffer,此参数用于设置ETA108的寄存器,config =NULL时,系统将使用默认配置
config_len config指向buffer的长度

ETA108单通道采样时采样速度可以达到100ksps,如果多通道采样,由于内部通道转换需要时间,最高只能达到50ksps,rate设置需要满足此限制。channel的低8bit(bit0~bit7)依次对应AD通道0~通道7,如果要采集某个通道的数据,需要将其对应的位置为1。比如要采集通道0、通道1和通道7的数据,则应设置channel=0x83;差分模式下只需设置差分通道中的一个通道的对应位为1,比如通道0、通道1在差分模式下工作,只需将0通道位置1,设置channel=0x1。

2、ETA108驱动输入输出数据格式:

用户可以对ETA108的进行设置以改变ETA108工作模式,eta108_config中config指向的buffer格式为:

bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
data 1 0 A3 A2 A1 A0 0 0 D7 D6 D5 D4 D3 D2 D1 D0

寄存器写

允许的设置及其意义详见《ETA108数据采集模块应用手册》(Linux)。

读取采样数据的格式如下(unsigned short):

bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
data D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 0 0

ETA108转换结果

其中第0、1位总是0,第2、3位为平均模式下增加的2位分辨率,如没有采用平均模式则此两位为0,第3-15位为12bit的AD数据。多通道采样模式下,应用程序从驱动中读得的AD数据是按通道依次存放的,低通道在前,比如应用程序同时连续采集CH1,CH2,CH5三个通道,read()函数读得的AD数据存放为CH1、CH2、CH5、CH1、CH2、CH5、CH1………,每个通道16bit。

ETA108的量程为0~4.096V,则可得D13~D2这12bit的数据对应的转换关系如下表,用户可据此换算数值:

理想情况下的AD转换结果

描述 模拟量输入 数字量输出
满量程范围 4.096V­REF 二进制 十六进制
最小分辨率(LSB) V­REF/4096
满量程 V­REF-1LSB 1111 1111 1111 FFFF
1/2量程 V­REF/2 1000 0000 0000 8000
1/2量程 - 1 LSB V­REF/2-1LSB 0111 1111 1111 7FFF
0V 0000 0000 0000 0000

3、接口函数

1)加载设备驱动:

#:insmod /(目录)/eta108.ko

会自动创建设备文件 /dev/eta108

2)打开设备文件-open:

int fd = open ( "/dev/eta108", O_RDWR, S_IRUSR | S_IWUSR );

3)设置采样参数-write:

struct eta108_config transfer;

memset ( &transfer, 0, sizeof(transfer) );

transfer.rate = 100000; //采样速率

transfer.channel = 0x1; //采样通道

transfer.count = 10000; //每通道采样次数

//自定义设置,此处为0通道设置GPA放大2倍,设置为NULL时采用默认设置

unsigned short cmd[1] = {0x8004};

transfer.config_len = 2; //2字节

transfer.config = cmd;

if(write ( fd, &transfer, sizeof(transfer) )<0)

{

printf ( "WRONG!!!!!!!!!!!!!!!!\n" );

exit ( 1 );

}

4)启动采样:

if(ioctl ( fd, ETA108_START, &transfer )<0)

{

printf ( "START WRONG!!!!!!!!!!!!!!!!\n" );

exit ( 1 );

}

5)停止采样:

if(ioctl ( fd, ETA108_STOP, &transfer )<0)

{

printf ( "STOP WRONG!!!!!!!!!!!!!!!!\n" );

exit ( 1 );

}

6)读取采样数据-read:

驱动内部每采集512个点(1kB)的数据或者采样结束就会通过select函数通知应用程序,建议应用程序中尽快读出数据,进行存储或者计算,read函数返回实际读取的字节数。

int count_in_byte = 0;

int read_count=0;

char read_buf[transfer.count*2*1]; // 1个通道,每个数据2个字节

char *real_read = read_buf;

for ( i=0; count_in_byte

{

FD_ZERO(&fdRead);

FD_SET(fd,&fdRead);

aTime.tv_sec = 2;

aTime.tv_usec = 0;

ret = select ( fd+1, &fdRead, NULL, NULL, &aTime );

if ( ret<0 )

printf( "select, something wrong!\n " );

if ( ret>0 )

{

if ( FD_ISSET(fd, &fdRead) )

{

read_count = read(fd, real_read, 1024);

if ( read_count<0 )

{

printf ( "READ WRONG!!!!!!!!!!!!!!!!\n" );

exit ( 1 );

}

real_read += read_count;

count_in_byte += read_count;

}

}

}

7)关闭设备文件:

close ( fd );

用户如需使用ETA108数据采集模块,请和我们联系。

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

    关注

    87

    文章

    11292

    浏览量

    209322
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35295
收藏 人收藏

    评论

    相关推荐

    如何动态获取波形数据中最新一段时间内的波形数据

    利用labview生成一个正弦+噪声信号(只要程序运行,信号是一直更新的,不是固定采集点的一段信号),将信号利用“写入测量文件”vi模块进行保存,利用"读测量文件"vi读取的波形数据
    发表于 12-01 20:34

    ESM335x系列工控主板多通道数据采集方案

    1、综述  ETA108公司推出的一款低成本高性能的AD采集模块,相比
    发表于 07-20 14:33

    ESM335x支持ETA108数据采集

      ETA108是一款支持硬件周期脉冲触发的AD采集模块,非常适合应用于要求高精度采样间隔的波形数据采集,可广泛应用于多通道波形记录仪、电力
    发表于 07-21 14:46

    嵌入式主板的无线通讯解决方案

    的2G(GPRS)模块;联通、电信的3G模块;以及移动、联通、电信的4G模块。在WiFi方面,除了支持多种第三方模块外,
    发表于 03-24 14:00

    串口WiFi方案使用说明

    程序代码进行调用管理,尤其是对附近AP点的选择和连接  2、产品后续维护上不便,不好保证第三方模块的稳定性  3、模块不便于集成  因此推出ET
    发表于 04-05 15:52

    ETA104模拟数据采集模块的特点

    ETA104 数据采集模块使用手册
    发表于 03-02 10:51

    整合串口通讯功能的ETA105数据采集模块

    ETA105 数据采集模块使用手册
    发表于 03-02 07:19

    WIFI模块ETA6103和ETA303系列使用说明

    ETA6103是由串口WiFi模块E103(esp8266ex芯片)+ USB转串口芯片CH340T构成的低成本无线模块,其对外接口是miniPCIe接口,可以通过ETA303
    发表于 08-31 17:29 1482次阅读

    信息技术主板EM9160实现波形数据采集

    工控主板EM9160的精简ISA总线的主要扩展应用之一,就是扩展针对应用的各种数据采集单元,即通常所说的AD单元。对低速采样、且不要求样点间有严格时间间隔的应用,公司已推出了已ETA
    的头像 发表于 01-14 11:32 1074次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b>信息技术主板EM9160实现<b class='flag-5'>波形数据采集</b>

    信息技术低成本多通道波形采集显示方案的软件实现方法

    ARM9系列嵌入式主板EM9170加上新近推出的数据采集扩展模块ETA108,可实现低成本的多通道
    的头像 发表于 01-15 14:21 1806次阅读

    信息技术Windows下STM32单片机eclipse编译环境搭建简介

    工控主板应用程序发出来的指令,执行相应的实时任务处理,如实现:电机控制、数据采集、高速D/A输出、状态采集保护等。另外,用户可以基于公司构建好的USB通讯结构,利用KEIL、IAR
    的头像 发表于 02-06 11:08 1531次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b>信息技术Windows下STM32单片机eclipse编译环境搭建简介

    信息技术ETA104数采模块支持多种模拟信号输入方式简介

    ETA104模拟数据采集模块(下文简称:ETA104模块)是基于
    的头像 发表于 02-07 10:45 1734次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b>信息技术<b class='flag-5'>ETA</b>104数采<b class='flag-5'>模块</b>支持多种模拟信号输入方式简介

    信息技术ETA104数采模块实现波形信号采集简介

    ETA104模拟数据采集模块(下文简称:ETA104模块)是基于
    的头像 发表于 02-07 10:47 1712次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b>信息技术<b class='flag-5'>ETA</b>104数采<b class='flag-5'>模块</b>实现<b class='flag-5'>波形</b>信号<b class='flag-5'>采集</b>简介

    信息技术Linux主板多通道视频采集方案简介

    工业应用。进一步,ESM7100的还配置高速PCIe接口,使其可满足工业视频监控对高速数据采集的需求。本文主要介绍基于公司ESM7100的多通道视频采集应用方案。
    的头像 发表于 02-12 11:00 1539次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b>信息技术Linux主板多通道视频<b class='flag-5'>采集</b>方案简介

    信息技术数据采集及开关量I/O简介

    ETA108 数据采集模块 ETA197 数据采集模块 ET
    的头像 发表于 02-14 09:53 1462次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b>信息技术<b class='flag-5'>数据采集</b>及开关量I/O简介