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

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

3天内不再提示

英创信息技术EM9380多通道AD数据采集介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-16 10:01 次阅读

工业控制应用、特别是要求闭环控制的实时应用中,通常都需要实时采集模拟信号。因此作为一款面向实时控制应用的工控主板EM9380,配置了最多可达8路的AD转换单元。为了实现闭环控制的高效操作,AD转换是由板上独立运行的硬件处理器(Cortex-M3)来直接操作。应用程序通过驱动程序,其设备文件名为“MCU2:”,来操作AD的功能。在标准配置的EM9380中,其AD单元的基本技术特性包括:

• 单端输入采集,可进一步选择单通道、双通道、4通道及8通道模式。
•差分输入采集,可进一步选择单通道、双通道及4通道模式。
• 采集触发模式方面,支持软件触发和阈值触发两种模式。软件触发指一旦应用程序调用相关API函数,即进行数据采集;而阈值触发模式是指当应用程序启动AD采集后,

只有当输入的数据超出所设置的门限阈值时,才开始采集数据,这种模式广泛应用于状态监测及波形捕捉等应用。
• 采集数据方面,支持单点采集和波形采集两种模式。单点采集指每个通道仅采集一个样点;而波形采集则是按设置的采样间隔,采集一定长度的数据序列,这种模式一般

应用于需要分析波形数据的场合,如需要做FFT,获得波形的频谱特征。

本文后续部分将针对EM9380的多通道AD在硬件、软件方面的特性,具体介绍实现数据采集的相关步骤。

AD通道的硬件接口说明

EM9380中与AD关联的管脚是GPIO8 – GPIO15,这8路GPIO在上电时的缺省配置是数字输入模式。只有当应用程序调用AD转换的API时,其相应的管脚才会转换为模拟输入状态。EM9380共支持7种输入模式,每种模式使用固定的通道配置,未使用的管脚则保持在GPIO模式。输入模式与具体管脚的关系列表如下:

单通道单端输入

AD通道号 信号输入管脚 备注
AD_CH0 GPIO8 与公共GND构成信号回路

双通道单端输入

AD通道号 信号输入管脚 备注
AD_CH0 GPIO8 与公共GND构成信号回路
AD_CH1 GPIO9 与公共GND构成信号回路

4通道单端输入

AD通道号 信号输入管脚 备注
AD_CH0 GPIO8 与公共GND构成信号回路
AD_CH1 GPIO9 与公共GND构成信号回路
AD_CH2 GPIO10 与公共GND构成信号回路
AD_CH3 GPIO11 与公共GND构成信号回路

8通道单端输入

AD通道号 信号输入管脚 备注
AD_CH0 GPIO8 与公共GND构成信号回路
AD_CH1 GPIO9 与公共GND构成信号回路
AD_CH2 GPIO10 与公共GND构成信号回路
AD_CH3 GPIO11 与公共GND构成信号回路
AD_CH4 GPIO12 与公共GND构成信号回路
AD_CH5 GPIO13 与公共GND构成信号回路
AD_CH6 GPIO14 与公共GND构成信号回路
AD_CH7 GPIO15 与公共GND构成信号回路

单通道差分输入

AD通道号 输入管脚 输入信号 实际输入信号
AD_CH0 GPIO8 AD_CH0+ AD_CH0+/ AD_CH0-
GPIO9 AD_CH0-

双通道差分输入

AD通道号 输入管脚 输入信号 实际输入信号
AD_CH0 GPIO8 AD_CH0+ AD_CH0+/ AD_CH0-
GPIO9 AD_CH0-
AD_CH2 GPIO10 AD_CH2+ AD_CH2+/ AD_CH2-
GPIO11 AD_CH2-

4通道差分输入

AD通道号 输入管脚 输入信号 实际输入信号
AD_CH0 GPIO8 AD_CH0+ AD_CH0+/ AD_CH0-
GPIO9 AD_CH0-
AD_CH2 GPIO10 AD_CH2+ AD_CH2+/ AD_CH2-
GPIO11 AD_CH2-
AD_CH4 GPIO12 AD_CH4+ AD_CH4+/ AD_CH4-
GPIO13 AD_CH4-
AD_CH6 GPIO14 AD_CH6+ AD_CH6+/ AD_CH6-
GPIO15 AD_CH6-

对于单端输入,其输入满量程为0 – 2.5V,对应的量化数据分别为0 – 4095(12-bit AD分辨率)。差分输入时,数据值与输入电压的关系如下表所示:

AD转换数据(HEX) CH+输入电压 CH-输入电压 备注
4095(0xFFF) 2.5V 0V 正向最大差
2048(0x800) CH+ = CH-
0(0x000) 0 2.5V 反向最大差

在标准配置下,各AD通道的输入阻抗大致为40KΩ。为了保证AD转换的精度,建议前端输入的模拟信号,应根据实际信号的特点,加入适当的信号调理单元。

接口软件说明

为了操作EM9380的AD采集功能,首先需要打开硬件协处理器的驱动程序,其设备文件名为”MCU2:”(注意是MCU2,而不是MCU1):

#include// 数据类型定义
HANDLE hMCU2;
hMCU2 = CreateFile(_T(“MCU2:”), // name of device
GENERIC_READ|GENERIC_WRITE, // desired access
FILE_SHARE_READ|FILE_SHARE_WRITE, // sharing mode
NULL, // security attributes (ignored)
OPEN_EXISTING, // creation disposition
FILE_FLAG_RANDOM_ACCESS, // flags/attributes
NULL); // template file (ignored)

驱动程序MCU2通过DeviceIoControl,支持以下AD采集命令:

MCU_GENERIC_ADC_SE1 // 单端输入,单通道模式
MCU_GENERIC_ADC_SE2 // 单端输入,双通道模式
MCU_GENERIC_ADC_SE4 // 单端输入,4通道模式
MCU_GENERIC_ADC_SE8 // 单端输入,8通道模式
MCU_GENERIC_ADC_DI1 // 差分输入,单通道模式
MCU_GENERIC_ADC_DI2 // 差分输入,双通道模式
MCU_GENERIC_ADC_DI4 // 差分输入,4通道模式

同时以上命令需通过以下的数据结构来设置相关参数

typedef struct
{
BYTE ucSize; // 本数据结构大小 = 24字节
BYTE ucCmd; // AD命令码:MCU_GENERIC_ADC_XXX
DWORD dwPeriod; // 采样间隔,单位为us,= 0:软件触发
WORD wData[8]; // 返回的采集数据
bool bFlashed; // 保存本配置作为启动缺省功能
BYTE ucChkSum; // 校验和
} MCU_ADC_INFO, *PMCU_ADC_INFO; // struct for ADC

参数dwPeriod为采样间隔,设置为0表示软件触发数据采集,不为0,则按设置的采样间隔进行AD转换。最短采样间隔为25us,即最高采样率40Ksps。注意若启动多通道数据采集,则每通道的采样周期为dwPeriod×通道数。

当dwPeriod不为零时,wData[ ]的前三个值将作为输入参数,其中wData[0]表示采集的总样点数,wData[1]表示阈值窗口的上限值(最大值=4095),wData[2]表示阈值窗口的下限值(最小值=0)。通过这些参数的合理逻辑组合,就可实现以下4种数据形式的采集:

dwPeriod wData[0] wData[1] wData[2] 采集数据
= 0 - - - 软件触发,单点采集
> 0 通道数 wData[1] > wData[2] 阈值触发,单点采集
> 0 通道数×N 0 0 软件触发,N点波形采集
> 0 通道数×N wData[1] > wData[2] 阈值触发,N点波形采集

对单点数据采集,MCU2驱动将以MCU_ADC_INFO数据结构的形式回传采集结果,其中采集数据包含在wData[ ]中,分别对应AD的CH0 – CH7。wData的数据格式为:

16-bit AD转换数据
D15 – D12(4-bit) D11 – D0(12-bit)
通道号(0 – 7) ADC实际转换输出的数据值(0 – 4095)

对波形采集,为了提高效率,回传的数据采用以下数据结构的形式:
typedef struct
{
BYTE ucSize; // 本数据结构大小 = 51字节
BYTE ucCmd; // AD命令码:MCU_GENERIC_ADC_XXX
WORD wData[24]; // 返回的采集数据
BYTE ucChkSum; // 校验和
} MCU_ADC_FLOW, *PMCU_ADC_FLOW; // struct for ADC

24个采集数据将根据AD采集命令所使用的通道数,顺序循环排列。而每个数据的格式与单点采集数据的格式是一样的。

以下代码实现单端输入8通道,软件触发单点采集:
MCU_ADC_INFO Info; //定义结构对象
memset(&Info, 0, sizeof(MCU_ADC_INFO));//清零
//填写所需的参数
Info.ucSize = sizeof(MCU_ADC_INFO);
Info.ucCmd = MCU_GENERIC_ADC_SE8; //单端8通道输入
Info.dwPeriod = 0; //软件触发,单点采集
// 生成chksum字节
Info.ucChkSum = ChkSum(&Info, sizeof(MCU_ADC_INFO)-1);
// 调用DeviceIoControl
if (!DeviceIoControl(hMCU2, // File handle to the driver
MCU_IOCTL_ACCESS, // I/O control code
&Info, // input buffer
sizeof(MCU_ADC_INFO), // in buffer size
&Info, // out buffer
sizeof(MCU_ADC_INFO), // out buffer size
NULL, // pointer to number of bytes returned
NULL)) // ignored (=NULL)
{
// 出错处理......
return FALSE;
}
// 对采集的数据Info.wData[]进行处理......

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

    关注

    7

    文章

    6066

    浏览量

    34659
收藏 人收藏

    评论

    相关推荐

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

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

    数据采集设备测试有哪些注意事项 通道振弦、温度信号采集记录仪

    数据采集记录仪
    稳控自动化
    发布于 :2023年12月14日 10:13:33

    数据采集设备一般都是怎么输出数据 振弦、温度传感信号采集通道无线采发仪

    数据采集传感信号
    稳控自动化
    发布于 :2023年12月05日 10:16:52

    16位8通道同步采样数据采集系统AD7606应用介绍

    电子发烧友网站提供《16位8通道同步采样数据采集系统AD7606应用介绍.pdf》资料免费下载
    发表于 11-29 11:30 3次下载
    16位8<b class='flag-5'>通道</b>同步采样<b class='flag-5'>数据采集</b>系统AD7606应用<b class='flag-5'>介绍</b>

    工程监测数据采集需要哪些技术

    、变形等物理现象。 通信技术:监测数据需要通过通信技术传输到数据中心或者云端服务器,以便进行数据的存储、管理和分析。
    的头像 发表于 11-24 10:43 313次阅读
    工程监测<b class='flag-5'>数据采集</b>需要哪些<b class='flag-5'>技术</b>

    通道数据采集(DAQ)系统的性能优化

    电子发烧友网站提供《多通道数据采集(DAQ)系统的性能优化.pdf》资料免费下载
    发表于 11-23 16:37 2次下载
    多<b class='flag-5'>通道</b><b class='flag-5'>数据采集</b>(DAQ)系统的性能优化

    设备数据采集网关介绍-天拓四方分享

    监控设备状态、优化生产流程、提高工作效率的重要手段。本文将详细介绍设备数据采集网关的结构、原理、功能以及在实践中的应用效果和优缺点。 一、设备数据采集网关的结构与原理 设备数据采集网关
    的头像 发表于 11-16 16:40 462次阅读

    数据采集仪的主要功能 通道无线采集仪全自动采集存储和无线发送

    数据采集
    稳控自动化
    发布于 :2023年11月03日 09:45:31

    采集仪如何对比选择 通道数据采集 振弦传感器频率温度采集

    数据采集振弦传感器
    稳控自动化
    发布于 :2023年10月24日 09:55:06

    信息技术是干什么?

    广播电子技术信息技术
    橙群微电子
    发布于 :2023年09月22日 09:17:48

    通道高性能视频采集与加速系统|2023集赛紫光同创杯优秀作品

    移植的PCI-Express框架为系统提供了高达12个独立通道供用户使用,可根据需求灵活地选择并接入,实现通道PCI-Express数据传输,以满足其特定的视频
    发表于 09-21 17:34

    LabVIEW高级编程—通道数据采集

    LabVIEW高级编程——通道数据采集
    发表于 09-20 06:12

    数采仪如何选择注意事项 工程监测通道数据采集

    数据采集
    稳控自动化
    发布于 :2023年08月31日 09:28:52

    什么是数据采集仪它有什么作用

    数据采集
    稳控自动化
    发布于 :2023年08月14日 09:28:12