STM32-(28):ADC模数转换(理论分析)

上一篇:STM32-(27):RTC实时时钟 下一篇:STM32-(29):ADC模数转换(实验)

ADC,Analog-to-Digital Converter的缩写,指模/数转换器或者模数转换器

嵌入式实时闭环控制系统

在这里插入图片描述

将模拟量转换为数字量的过程称为模数( A / D )转换,完成这一转换的器件称为模数转换器(简称 ADC ) ; 将数字量转换为模拟量的过程称为数模( D / A )转换,完成这一转换的器件称为数模转换器(简称 DAC )。
模拟量主要有:电流、电压、温度、湿度、速度、湿度、亮度、压力等等。

A/D转换器至关重要,如果没有,也就没有了外界输入,控制系统相当于没有眼睛,没有耳朵

A/D转换器

模拟信号的采集与处理
数据采集系统由模拟信号采集、A/D转换、数字信号处理三大部分组成。

在这里插入图片描述
A/D转换器是模拟信号转变成数字信号的桥梁。

传感器

现场信号在进行A/D转换之前首先要经过传感器转换为电信号,即将现场的非电信号转换为电模拟信号。

传感器就是这种能够将非电信号转换成电模拟信号的敏感元件,通常所指的信息采集主要依靠各类传感器。传感器所获取的信息通常有物理量、化学量和生物量等,而经传感器转换后的信息多数为电阻、电容、电感、电压、电流及频率与相位的变化等电学量。
在这里插入图片描述
在这里插入图片描述

A/D(模/数)转换的原理

A/D转换中通常要完成采样保持和量化编码两个内容。所以AD转换是需要转换时间的。一般AD转换的时间在uS级别。
在这里插入图片描述
简析:f(t)是输入信号,s(t)是采样信号(按照一定的时间间隔给出一个脉冲,脉冲高电平的时间跟量化编码的时间有关,在高电平器件,采样器的开关闭合,fs(t)就会得到一些离散的采样值)
将采样后得到的样点幅值转换为数字量即为量化、编码的过程。量化编码过程是模/数转换的核心。所谓量化编码,就是以一定的量化单位,把数值上连续的模拟量而时间上离散的模拟信号通过量化装罝转变为数值上离散的阶跃量的过程。常见的量化编码技术有:计数式转换、双积分式转换、逐次逼近式转换、并联式转换等。

A/D转换器的主要参数

1.分辨率
分辨率是指A/D转换器输出数字量的最低位变化一个数码时,对应输入模拟量的变化量 。显 然 A/D转换器的位数越多,分辨最小模拟电压的值软越小。如一个最大输入电压为5V的8位A/D转换器,所能分辨的嚴小输入电压变化量为5V / 2 8 = 19.53mv,而同样输入电压的10位A/D转换器,分辨率为5V / 2 10 = 4.88mV〃
因此一个n位的A/D转换器,其分辨率也可说是n位,它是一个设计参数,不是测量参数•

2.相对精度
相对精度是指A/D转换器实际输出数字t与理论输出数字童之间的最大差值。通常用最低有效位LSB的倍数来表示 。

3.转换速度
转换速度是指A/D转换器完成一次转换所需要的时间,即从转换开始到输出端出现稳定
的数字信号所需要的时间。

STM的ADC

STM 32拥有1〜3个 ADC ,这些 ADC 可以独立使用,也可以使用双重模式(提高采样率)。 STM 32 F 103系列最少都拥有2个 ADC ,我们选择的 STM 32 F 103 RBT 6也包含有2个 ADC 。

STM 32的 ADC 是12位逐次逼近型的模拟数字转换器。它有18个通道,可测量16个外部和2个内部信号源。各通道的 A / D 转换可以单次、连续、扫描或间断模式执行。

ADC 的结果可以左对齐或右对齐方式存储在16位数据寄存器中。(因为在这里ADC是12位的,还有四位没有用到,所以存在左/右对齐的方式)
模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。

STM 32的 ADC 最大的转换速率为1 Mhz ,也就是转换时间为1 us (在ADCCLK =14 M ,采样周期为1.5个 ADC 时钟下得到),不要让 ADC 的时钟超过14 M ,否则将导致结果准确度下降。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

简析:

ADCx区域中有两个组,Injected Channels(注入组)、Regular Channels(规则组),举个例子:比如一个养殖场所,需要测量室内室外的温度,分别在室内室外放几个温度探头,我们长期需要对室内温度进行采集,我把室内这一组定义为“规则组”,把室外的定义为“注入组”,满足现实中的需求,一个作为常规使用,一个作为特殊使用。ADCx左侧是输入,GPIO Ports是外部的GPIO输入(使用时应将GPIO设置为模拟输入),下方是内部输入(温度、电池等),输入经过一个选择开关进入。进入ADCx之后进行数据转换(自动转换),转换完的数据存储在右侧寄存器中,下方是一些状态量,如果事先设定的话,当这些状态量发生变化,就会触发对应的中断。上方是ADC的时钟,是一个单独的时钟ADCCLK,左下方两排是触发模块,有外部触发(Ext_IT_),比如外部按键,也有内部触发(比如定时器等等);右下方是一个看门狗模块,可以对输入电压进行检测,可以设定一个域值(最大最小值),当超过这个范围,就会给NVIC一个中断。看门狗应用举例:当使用内部电池,当电池被拔掉了,看门狗检测到电压发生变化,立即产生中断,响应到内核中,马上把核心的数据保存起来等等操作。ADCx 还有一路可以输出到 DMA (DMA Request)

通道选择

有16个多路通道。 STM 32将 ADC 的转换分为2个通道组:规则通道组和注入通道组。规则通道相当于你运行的程序,而注入通道呢,就相当于中断。在你程序正常执行的时候,中断是可以打断你的执行的。同这个类似,注入通道的转换可以打断规则通道的转换,在注入通道被转换完成之后,规则通道才得以继续转换。

在工业应用领域中有很多检测和监视探头需要较快地处理,这样对 AD 转换的分组将简化事件处理的程序并提高事件处理的速度。

STM 32 ADC 的规则通道组最多包含16个转换,而注入通道组最多包含4个通道。

在这里插入图片描述
Trigger 一般是由上面简析中提到的触发模块部分产生的。

在这里插入图片描述
简析:用规则组举例解释这张表的作用。规则组最多有16次转换,保存转换指令的寄存器的优先级分别为 ADC_SQR 1/2/3,保存转换之后数据的寄存器为ADC_DR,开始装换的几种方式有软件触发(软件写寄存器)、外部事件(定时器、按键等等),触发源可以选择触发方式。

转换模式

在这里插入图片描述
举例:如何使用规则通道的单词转换模式
单次转换模式里, ADC 只执行一次转换。这个模式既可通过设罝 ADC_CR2寄存器的 ADON 位(只适用于规则通道)启动也可通过外部触发启动(适用于规则通道或注入通道),这时 CONT 位为0

一旦选择通道的转换完成:
如果一个规则通道被转换:

  • 转换数据被存储在16位 ADC_DR 寄存器中
  • EOC (转换结束)标志被设置
  • 如果设置了 EOCIE .则产生中断
    如果一个注入通道被转换:
  • 转换数据被储存在16位的 ADC _ DRJ 1寄存器中
  • JEOC (注入转换结束)标志被设置
  • 如果设置了JEOCIE 位,则产生中断。
    然后 ADC 停止。

在这里插入图片描述

单通道单次转换
■对一个通逬进行一次转换,然后ADC停止
■应用举例:启动系统功能之前测电压
多通道单次转换
■对多个通道进行逐个的独立转换,然后ADC停止
■可对多达 16 个通逍的转换配置不同采样时间和顺序
无需中途停ihADC来配置下一个通道的采样时间
节省CPU负载
应用举例:启动系统之前测量多个参数
■电压、温度、压力等
■机器人操作臂的坐标
■物体所受扭力和形变的方N以及受力

在这里插入图片描述
单通道连续转换
■对一个规则通逬进行连续转换
■通常可用于后台,无需 CPU 干涉的连续转换;配合 DMA 的循环模式,进一步减少 CPU 负载
■应用举例:监测电池电压,测量并调节炉温等
多通道连续转换
■对多个通逬进行连续的独立转换
■可对多达 16 个通逬的转换配置不同采样时间和顺序
■应用举例:多电池充电器中监测多个电压和温度的信息

上一篇:STM32-(27):RTC实时时钟 下一篇:STM32-(29):ADC模数转换(实验)
  • 17
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值