第五部分:F2812模/数转换器(ADC)

Download Report

Transcript 第五部分:F2812模/数转换器(ADC)

第五部分:F2812模/数
转换器(ADC)
ADC and DAC
现实生活中的信号大多为连续信号,而计算机只能处理数字信号。模数转换
(Analog-to-Digital Conversion ADC)和数模转换(Digital-to-Analog
Conversion DAC)技术使得计算机可以处理现实生活中的信号了。数字信息有
两个重要特征:它经过采样(sampled)得到的和它是经过量化(quantized)
的,这两个因素限制了数字信号中包含信息的多少。
3.1 Quantization
sample-and-hold (S/H)
analog-to-digital converter (ADC)
ADC and DAC
ADC and DAC
ADC and DAC
采样就是把自变量(在这个例子里面是时间)由连续的变为离散的。
量化就是把应变量(这个例子里就是电压)由连续的变为离散的。
数字化后的每一个采样点可能有的最大误差是 1 / 2LSB(Least
Significant Bit 最低有效位)
量化误差一个重要特性是它很像随机噪声,在大多数情况下它对信号带
来的影响和随机噪声没有什么区别
量化误差是一种随机误差,所以AD的位数决定了数据的精度,于是我们
可以这样说,如果把8位的AD换成12位的,将会提高测量的精度 。
考虑系统要采用多少位AD的时应注意的问题。
抖动(dithering)
ADC and DAC
ADC and DAC
3.2 Sampling Theorem
只要能从采样点重构出原来的连续信号就可以说前面的采样是正确的。
概述
在自动控制和测量系统中,被控制和被测量的对
象往往是一些连续变化的物理量。如:温度、压力、
流量、速度、电流、电压等。这些随时间连续变化的
物理量,称为模拟量(Analog)。计算机参与测量和控
制时,模拟量不能直接送入计算机,必须先把它们转
换成数字量(Digital)。能够将模拟量转换成数字量的器
件称为模拟数字转换器,简称ADC。
概述

模拟量——连续变化的物理量
DAC
数字/模拟转换器

模拟/数字转换器
ADC
数字量——时间和数值上都离散的量
模/数与数/模转换通道的组成
一般模/数转换通道由传感器、信号
处理、多路转换开关、采样保持器以及
A/D转换器组成 。
一、传感器(Transducer)
传感器:能够把非电物理量转换成电量(电流或电
压)的器件,一般传感器由电容、电阻、电感或敏
感材料组成,在外加激励电流或电压的驱动下,不
同类型的传感器会随不同非电物理量的变化,引起
传感器的组成材料发生改变,使得输出连续变化的
电流或电压与非电物理量的变化成正比。
由于传感器组成材料发生改变引起输出电流或
电压的变化十分微弱,容易受外界干扰,因此,在
市场上能买到的各种变送器,已将传感器与放大电
路制作在一起,输出统一标准的0~10mA或4~
20mA电流,或0~5V电压,以便传输或直接送A/D
转换器进行A/D转换,其中,4~20mA标准电流输
出的传感器较为普遍,常说的流量变送器、压力变
送器等一般输出4~20mA标准电流,内部处于恒流
输出结构,显然电流型传感器比电压型传感器抗干
扰能力强,易于远距离传输,因此,电流型传感器
被广泛用于生产过程的检测系统中。
二、信号放大处理
信号放大处理电路,接在A/D转换器与传
感器之间,用于解决以下存在问题:
•
A/D转换器与传感器二者电压不匹配;
• 如果是电流型输出传感器,要进行Ⅰ~Ⅴ变换与
放大处理,将电流信号对应变换成电压信号;
• 传感器工作在现场,可能存在复杂的强电磁波的
干扰,通常采用RC低通滤波器,滤除叠加在传感器
输出信号上的高频干扰信号,也可采用有源滤波技
术,使得滤波特性更好。
三、多路转换开关
(Multiplexer)
•
一个数据采集系统(A/D转换)往往要采集多
路模拟信号;
•
通常只用一片A/D转换芯片,轮流选择输入信
号进行采集,既节省了硬件开销,又不影响对系
统的监测与控制;
•
许多A/D转换芯片内部具备多路转换开关,一
片A/D转换芯片可以轮流采集多路模拟输入信号,
如果A/D转换芯片不具有多路转换功能,则在
A/D转换之前外加模拟多路转换开关。
四、采样保持器(Sample
Holder)
• 在A/D转换器进行采样期间,保持被转换输入信号
不变的电路称为采样保持电路;
• A/D转换器完成一次转换所需要的时间称为转换时
间;
• 不同A/D转换芯片,其转换时间各异,对于连续变
化较快的模拟信号如果不采取采样保持措施,将会
引起转换误差;
• 慢速变化的模拟信号,在A/D转换系统中,完全可
以不必采用采样保持电路,而且并不会影响A/D转
换的精度。
采样/保持示意图
五、A/D转换器(Analog to
Digit)
A/D转换器是模/数转换通道的核
心环节,其功能是将模拟输入电信号
转换成数字量(二进制数或BCD码
等),以便由计算机读取、分析处理,
并依据它发出对生产过程的控制信号。
A/D转换器及接口技术
A/D转换器是将模拟量转换为数字量的器
件,这个模拟量泛指电压、电阻、电流、时间
等参量,但在一般情况下,模拟量是指电压而
言的。在数字系统中,数字量是离散的,一般
用一个称为量子Q的基本单位来度量。
2. A/D
(1) 分辨率。
习惯上以输出的二进制位数或BCD码位数表示分辨率。
如一个输出为8位二进制数的A/D 转换器,称其分辨率为8位。
也可以用对应于1 LSB的输入模拟电压来表示分辨率。分辨
率还可以用百分数来表示,例如8位A/D转换器的分辨率百分
数为 (1/256)×100%=0.39%。
(2) 量化误差。
A/D转换是用数字量对模拟量进行量化。由于存在最小
量化单位,在转换中就会出现误差,仍以上述0~4.99 V 转换
为二进制数000~111的A/D 转换器为例,模拟量1.42 V对应于
数字量010;而(1.42 V- 1/2 LSB)~ (1.42 V+ 1/2 LSB)也都
对应于010, 这样就带来了转换误差。
量化误差
•ADC把模拟量变为数字量,用数字量近似表示模拟量,这个
过程称为量化。量化误差是ADC的有限位数对模拟量进行量
化而引起的误差。实际上,要准确表示模拟量,ADC的位数
需很大甚至无穷大。一个分辨率有限的ADC的阶梯状转换特
性曲线与具有无限分辨率的ADC转换特性曲线(直线)之间
的最大偏差即是量化误差。
007
006
005
004
003
002
001
000
数字输出
模拟电压输入
1LSB
007
006
005
004
003
002
001
000
数字输出
模拟电压输入
1/2LSB
量化特性及量化误差
理想ADC的传输特性和量化误差
这一误差称为量化误差。理想A/D
± 1 / 2 LSB,如下图所示。
(3) 转换精度。
转换精度是指一个实际的A/D转换器与理想的A/D转换器
相比的转换误差。绝对精度一般以LSB为单位给出。相对精
度则是绝对精度与满量程的比值。不同厂家生产的A/D转换
器的转换精度指标的表达方式可能不同。有的给出综合误差
指标,有的给出分项误差指标。通常误差指标有失调误差
(零点误差)、增益误差(满量程误差)、非线性误差和微
分非线性误差。下面分别介绍这些误差。
精度
①绝对精度
绝对精度定义为:对应于产生一个给定的输
出数字码,理想模拟输入电压与实际模拟输入
电压的差值。
绝对精度由增益误差、偏移误差、非线性误
差以及噪声等组成。
②相对精度
相对精度定义为在整个转换范围内,任一数字
输出码所对应的模拟输入实际值与理想值之差
与模拟满量程值之比。
① 失调误差。
失调误差也称为零点误差,这是指当输入模拟量从0逐渐
增长使输出数字量从0……0跳至0……1时,输入模拟量实际数
值与理想的模拟量数值(即 1 LSB的对应值)之差。这反映了
A/D转换器零点的偏差。一定温度下的失调误差可以通过电路
调整来消除。
② 增益误差。
当输出数字量达到满量程时,所对应的输入模拟量与理想
的模拟量数值之差,称为增益误差或满量程误差,计算此项误
差时应将失调误差除去。一定温度下的增益误差也可以通过电
路调整来消除。
③ 非线性误差。
非线性误差是指实际转换特性与理想转换特性之间的最大
偏差,它可能出现在转换曲线的某处。此项误差不包括量化误
差、 失调误差和增益误差。它不能通过电路调整来消除。
④ 微分非线性误差。
在A/D转换曲线上,实际台阶幅度与理想台阶幅度(即理
论上的1 LSB)之差,称为微分非线性误差。如果此误差超过1
LSB, 就会出现丢失某个数字码的现象。
在上述几项误差中,如果失调误差和增益误差能得到完全
补偿,那么只需考虑后两项非线性误差。需要指出的是精度所
对应的误差指标中未包括量化误差,因此实际的总误差还要把
量化误差考虑在内。总误差E总与分项误差Ei之间的关系如下
图3.17 ADC的积分线性度误差
图3.18 ADC的微分线性度误差
与微分线性度误差直接关联的一个ADC的常用
术语是失码(Missing Cord)或跳码(Skipped
Cord),也叫做非单调性。
图3.19 ADC的失码现象
E总=
(4) 转换时间。
转换时间是指A/D转换器完成一次转换所需要的时间。
其倒数为转换速率。
(5) 温度系数。
温度系数表示A/D转换器受环境温度影响的程度。一般用
环境温度变化1℃所产生的相对转换误差来表示,以×10-6/℃
为单位。
⑥温度对误差的影响
环境温度的改变会造成偏移、增益和线
性度误差的变化。
模块主要包括以下特点
• 12位模数转换模块ADC;
•
两个采样和保持(S/H)器;
•
同时或顺序采样模式;
•
模拟输入电压范围:0 V到3 V;
•
快速的转换时间,ADC时钟可以配置为25 MHz,最高采样带宽
12.5 MSPS;
•
16通道模拟输入;
•
自动排序功能支持16通道独立循环“自动转换”,每次转换的通
道可以软件编程选
• 择;
•
排序器可以工作在两个独立的8通道排序器模式,也可以工作在16
通道级联模式;
•
16个结果寄存器存放ADC的转换结果,转换后的数字量表示为:
• 有多个触发源启动ADC转换(SOC)
–
–
–
•
•
•
•
•
•
S/W — 软件立即启动
EVA — 事件管理器A (在EVA中有多个事件源可启动AD转换)
EVB — 事件管理器B (在EVB中有多个事件源可启动AD转换)
外部引脚
灵活的中断控制,允许每个或每隔一个序列转换结束
产生中断请求;
排序器可工作在启动/停止模式,允许“多个排序触发”
同步转换;
EVA和EVB可以独立触发,工作在双触发模式;
采样保持(S/H)采集时间窗口有独立的预定标控制;
只有F2810/F2811/F2812芯片的B版本以后的芯片才有
增强的重叠排序器功能;
• 为获得更高精度的模数转换结果,正确的
PCB板设计是非常重要的。连接到
ADCINxx引脚的模拟量输入信号线要尽可
能地远离数字电路信号线。为减小数字信
号的转换引起的噪声对ADC产生耦合干
扰,需要将ADC模块的电源输入同数字电
源隔离开
• 给出了外部参考电路,该电路采用精准的参考电
压并通过分压保证准确的参考范围,在给处理器
引脚提供参考之前增加缓冲电路,采用该电路主
要有两个优点
– 稳定的ADCREFP 和ADCREFM 对于实现良好的ADC
性能非常重要,然而ADCREFP 和ADCREFM 是静态
的,而ADC 使用参考则是动态的。在每次模数转换过
程中对两个参考电压引脚进行采样,并且要求在特定
的ADC 时钟周期内能够稳定。外部参考电路刚好能够
满足ADC 的动态和稳定性要求;
– 在ADC 操作过程中ADCREFP 和ADCREFM 的电流会
有所波动,如果不采用外部缓冲电路则分压电阻上的
电流会产生变化,从而会改变输入的参考电压值,结
果会使增益误差变大;
ADC功能框图 (级联模式)
模拟 MUX
...
MUX
A
ADCINA7
ADCINB0
ADCINB1
Result MUX
S/H
A
S/H
MUX
...
MUX
B
ADCINB7
S/H
B
RESULT0
RESULT1
12-bit A/D
Converter
SOC
EOC
RESULT2
Result
Select
...
ADCINA0
ADCINA1
RESULT15
Auto sequencer
MAX_CONV1
...
Software
EVA
EVB
Ext Pin (ADCSOC)
CHSEL00 (state 0)
CHSEL01 (state 1)
CHSEL02 (state 2)
CHSEL03 (state 3)
CHSEL15 (state 15)
Start Sequence
Trigger
AdcRegs.ADCCHSELSEQ1.bit.CO
NV00 = 0x3;.
AdcRegs.ADCCHSELSEQ1.bit.C
ONV01 = 0x2;
ADC功能框图 (双序列模式)
Analog MUX
ADCINA7
ADCINB0
ADCINB1
...
ADCINB7
S/H
MUX
MUX
B
S/H
B
Result
Select
Sequencer
Arbiter
SOC1/
EOC1
SEQ1
Auto sequencer
SEQ2
Auto sequencer
MAX_CONV1
MAX_CONV2
CHSEL00 (state 0)
CHSEL01 (state 1)
CHSEL02 (state 2)
CHSEL08 (state 8)
CHSEL09 (state 9)
CHSEL10 (state 10)
CHSEL07 (state 7)
Start Sequence
Trigger
CHSEL15 (state 15)
Start Sequence
Trigger
RESULT7
RESULT8
RESULT9
SOC2/
EOC2
...
(ADCSOC)
12-bit A/D
Converter
...
Software
EVA
Ext Pin
RESULT0
RESULT1
S/H
A
...
...
MUX
A
Result MUX
Result
Select
...
ADCINA0
ADCINA1
RESULT15
Software
EVB
ADC 示例
AdcRegs.ADCTRL3.bit.SMODE_SEL=1;设置并发模式
AdcRegs.ADCMAXCONV.all = 0x0001; 双重序列发生器2*4=8
ADCCHSELSEQ1.bit.CONV00=0x4;设置ADCINA4和ADCINB4的转换
次序(第一)
ADCCHSELSEQ1.bit.CONV01=0x0;设置ADCINA0和ADCINB0的转换
次序(第二)
。。。
ADCCHSELSEQ3.bit.CONV10=0x6;设置ADCINA6和ADCINB6的转换
次序(第11)
ADCCHSELSEQ3.bit.CONV11=0x7;设置ADCINA7和ADCINB7的转换
次序(第11)
Result结果
ADCINA4-》ADCRESULT0
ADCINB4-》ADCRESULT1
。。。。
ADCINA7-》ADCRESULT14
ADCINB7-》ADCRESULT15
F2812
ADC
时钟电路
HISPCP
PLLCR
CLKIN
(30 MHz)
SYSCLKOUT
(150 MHz)
DIV
bits
HSPCLK
(150 MHz)
HSPCLK
bits
To CPU
1010b
000b
PCLKCR.ADCENCLK = 1
ADCTRL3
ADCCLKPS
bits
FCLK
(25 MHz)
0011b
FCLK = HSPCLK/(2*ADCCLKPS)
ADCTRL1
CPS bit
0b
ADCCLK =
FCLK/(CPS+1)
ADCCLKmax=25 MHz!
ADCCLK
(25 MHz)
ADCTRL1
ACQ_PS
bits
To ADC
pipeline
sampling
window
0111b
sampling window = (ACQ_PS + 1)*(1/ADCCLK)
ADC输入通道选择序列控制寄存器
Bits 15-12
0x007103
0x007104
0x007105
0x007106
Bits 11-8
Bits 7-4
Bits 3-0
CONV03 CONV02 CONV01 CONV00
CONV07 CONV06 CONV05 CONV04
CONV11 CONV10 CONV09 CONV08
CONV15 CONV14 CONV13 CONV12
设置转换序列的通道以及先后顺序
ADCCHSELSEQ1
ADCCHSELSEQ2
ADCCHSELSEQ3
ADCCHSELSEQ4
EVA SOC 停止/启动方式
EVA
Timer 1
EVA
PWM
I1 , I 2 , I3
V1, V2, V3
I1 , I 2 , I3
V 1 , V2 , V3
前提:
EVA下溢启动3个ADC I1/I2/I3;
定时器周期SOC3个ADC V1/V2/V3
EVA SOC 停止/启动方式
• MAX_CONV1 =2(bit.3舍弃),转换顺序设置如下:
Bits  15-12 11-8 7-4 3-0
0x007103 V1
I3
I2
I1
0x007104
x
x V3 V2
ADCCHSELSEQ1
ADCCHSELSEQ2
• 复位和初始化之后,等待SOC 触发
• 第一次触发(2: CONV00 (I1), CONV01 (I2), CONV02 (I3)
• SEQ1 等待第二次触发
• 第二次触发执行: CONV03 (V1), CONV04 (V2), CONV05 (V3)
• 第二次触发结束, ADC Results(在连续模式,为了避免数据重写,必须确保
在下一个转换序列开始前,读取寄存器:
RESULT0
RESULT1
RESULT2
I1
I2
I3
RESULT3
RESULT4
RESULT5
 用户可以通过软件复位 SEQ1 到状态 CONV00
• SEQ1 保持当前状态等待另外一次触发
V1
V2
V3
ADC 转换结果寄存器
ADCRESULT0 @ 0x007108 ;ADCRESULT15 @
0x007117
15
14
13
12
11
10
9
8
7
MSB
6
5
4
3
2
1
0
LSB
模拟输入0V~3V:
analog volts
3.0
1.5
0.00073
0
converted value
FFFh
7FFh
1h
0h
RESULTx
1111|1111|1111|0000
0111|1111|1111|0000
0000|0000|0001|0000
0000|0000|0000|0000
ADC转换结果的读取
Integer format
x x x x x x x x x x x x 0 0 0 0 RESULTx
bit shift right
15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x x xx x
0
ACC
0 0 0 0 x x x x x x x x x x x x Data Mem
Example: read RESULT0 register
#include "DSP281x_Device.h"
void main(void)
{
Uint16 value;
// unsigned
value = AdcRegs.ADCRESULT0 >> 4;
}
ADC的低功耗方式
电源级别 ADCRFDN ADCBGND
ADCPWDN
ADC加电 1
1 1
ADC掉电 1
0 0
ADC关闭 0
0 0
保留
1
0 x
保留
0
1
x
1、给ADC模拟电路的其他部分家电前,给参考电路和带隙
电路加电
2、ADC完全加电后,需要等待20s,才能进行第一次转换。
3、ADC掉电,3位被同时清除。通过软件设置。
• 选择外部参考信号源的ADC初始化代码如
下:
ADC 单元寄存器
52
用过采样和求均值提高ADC分辨率
• 很多应用需要使用模/数转换器ADC进行测量这
些应用所需要的分辨率取决于信号的动态范围必
须测量的参数的最小变化和信噪比SNR
• 因此很多系统使用较高分辨率的片外ADC然而也
可以通过使用一些技术来达到较高的分辨率和
SNR
• 这里介绍用过采样和求均值的方法来提高模数转
换的分辨率和SNR过采样和求均值技术可以在不
使用昂贵的片外ADC的情况下提高测量分辨率
关键点
• 可用过采样和求均值技术提高测量分辨率
不必采用昂贵的片外ADC
• 过采样和求均值对SNR和测量分辨率的改
善是以增加CPU时间和降低数据吞吐率为
代价的
• 对于白噪声的情况过采样和求均值可以改
善信噪比
数据转换器噪声源
• ADC转换时可能引入很多种噪声例如:热噪
声,杂色噪声,电源电压变化参考电压变化由
采样时钟抖动引起的相位噪声,以及由量化
误差引起的噪声.
• 由量化误差引起的噪声通常被称为量化噪
声这些噪声源的噪声功率是可以变化的
• 减小噪声
– 精心设计电路板和在参考电压信号线上加旁路
电容
根据要增加的分辨率计算过采样率
过采样和求均值法何时有效
• 噪声必须逼近白噪声在整个有用频带内具
有平均分布的功率谱密度
• 噪声幅度必须足够大能引起输入信号样本
之间的随机变化变化幅度至少为两个相邻
代 码之间的距离即1 LSB
• 输入信号可以用一个在两个相邻ADC代码
之间具有等概率分布的随机变量表示
• 过采样和求均值技术对相关或不能用白噪
声模拟的噪声,例如反馈系统的噪声不起作
用
• 另外如果量化噪声的功率大于自然白噪声,
例如热噪声过采样和求均值技术也不会奏
效,ADC的分辨率较低时就属于这种情况
• 大多数使用12位ADC的应用都可以从过采
样和求均值技术获益