第七章 模拟通道组件及应用
文章目录
学习目标
- 熟悉模拟输入输出系统的组成*
- 了解常用传感器及变送器应用领域
- 掌握常用信号调理电路设计*
- 熟练掌握ADC及其应用设计*
- 熟练掌握常用标度(工程)变换*
- 熟练掌握DAC及其应用设计*
重点内容
- 1、掌握模拟输入输出系统的组成(图)
- 2、了解传感器的种类,会根据实际应用选择相应传感器
- 3、知晓信号调理的主要功能任务
- 4、一阶低通波器设计及RC计算
- 5、掌握片上ADC的编程应用
- 6、掌握标度变换及其应用
- 7、掌握片上DAC的编程应用
模拟输入输出系统
传感器与变送器
**传感器:**把被测的非电量转换为与之有确定关系的电量或其它形式量的装置。传感器是人类感官的延伸,是现代测控系统以及物联网的关键环节。
**变送器:**在传感器的基础上,把感知的信号通过一定形式传送出去的一种装置。由于有些传感器具备了传输功能,因此有时传感器和变送器也不过分区分。现代智能传感器均具有变送器的功能。
信号调理电路设计
在嵌入式系统的输入通道中,传感器感知的信号通常需要通过调整电路进行放大、滤波、变换等相关处理,调理成A/D变换器所能接收的量程范围。因此调整电路的设计在前端处理中占有非常重要的作用,直接影响检测的效果。
信号调理的任务就是将待测信号通过放大、滤波和变换等操作,将传感器输出的信号转换成采集设备能够识别的标 准信号。
- 1、放大与衰减:改变信号幅值
- 2、隔离:电⽓隔离抗干扰
- 3、多路复用:多路模拟输入选择
- 4、滤波:滤除干扰
- 5、激励与变换:非电压信号变换
- 6、冷端补偿:热电偶冷端非零度补偿
信号滤波
滤波是指滤除一定频率范围一定幅度的无用信号。
![image-20220526172612967](https://nuaapeter.oss-cn-nanjing.aliyuncs.com/image-20220526172612967.png)
1、无源滤波
(1)⼀阶RC低通滤波器:截止频率为
f
0
=
1
2
π
R
C
f_0=\frac{1}{2\pi RC}
f0=2πRC1
(2)⼀阶RC高通滤波器:截止频率为
f
0
=
1
2
π
R
C
f_0=\frac{1}{2\pi RC}
f0=2πRC1
(3)RC带通滤波电路:带通频率为
f
1
=
1
2
π
R
1
C
1
f
2
=
1
2
π
R
2
C
2
f_1=\frac{1}{2\pi R_1C_1} \space \space f_2=\frac{1}{2\pi R_2C_2}
f1=2πR1C11 f2=2πR2C21
2、有源滤波
(1)一阶有源低通滤波电路
f
0
=
1
2
π
R
C
f_0=\frac{1}{2\pi RC}
f0=2πRC1
(2)二阶有源低通滤波器
f
0
=
1
2
π
R
1
C
1
R
2
C
2
f_0=\frac{1}{2\pi\sqrt{R_1C_1R_2C_2}}
f0=2πR1C1R2C21
信号放大
1、同相放大
其中
U
i
U_i
Ui表示传感器的输出电压,也就是放大器的输入电压;
U
0
U_0
U0表示放大器输出给ADC的输出电压。
U
0
=
(
1
+
R
f
R
1
)
×
U
i
U_0=(1+\frac{R_f}{R_1})\times U_i
U0=(1+R1Rf)×Ui
放大倍数
A
=
1
+
R
f
R
1
A=1+\frac{R_f}{R_1}
A=1+R1Rf
U
i
=
U
+
=
U
−
=
U
0
∗
R
1
R
1
+
R
f
U_i=U_+=U_-=U_0*\frac{R_1}{R_1+R_f}
Ui=U+=U−=U0∗R1+RfR1
放大倍数A=(1+Rf/R1)=(1+361.1/1/1)=329.27,当传感器输出最大10mV时,放大器放大后输出给ADC的最大值为3.2927V。
2、反相放大
U
0
=
−
R
f
R
1
×
U
i
U_0=-\frac{R_f}{R_1}\times U_i
U0=−R1Rf×Ui
放大倍数
A
=
−
R
f
R
1
A=-\frac{R_f}{R_1}
A=−R1Rf
U
i
=
U
−
=
U
+
=
0
I
i
+
I
o
=
0
U
0
=
−
R
f
R
1
∗
U
i
U_i=U_-=U_+=0 \space \space\space I_i+I_o=0 \space \space\space U_0=-\frac{R_f}{R_1}*U_i
Ui=U−=U+=0 Ii+Io=0 U0=−R1Rf∗Ui
放大倍数A=-Rf/R1=-100/10=-10当传感器输出最大300mV时,放大器放大后输出给ADC的最大值为3.0V。
3、差分放大
激励与变换
有些传感器输出的信号不是电压信号,这时就要把非电压信号变换为电压信号,这即信号变换。通常信号变换是靠激励源完成的,因此有时信号变换也可以认为是信号激励。
1、电阻信号变换为电压信号
2、电流变换为电压
3、电压变换为电流
4、双极变单极
5、电平变换
模数转换器ADC
STM32F10x片上ADC的工作模式
(1)单次转换模式
单次转换模式下,ADC只执行一次转换。该模式有两种启动方式
既可通过设置ADC_CR2寄存器的ADON位(只适用于规则通道)启动
可通过外部触发启动(适用于规则通道或注入通道),这时CONT位为0。然后ADC停止。
(2)连续转换模式
在连续转换模式中,当前面ADC转换⼀结束马上就启动另⼀次转换。此模式可通过外部触发启动或通过设置
ADC_CR2寄存器上的ADON位启动,此时CONT位是1。注意这里,单次转换CONT(continue)位是0,这里是1
(3)自动扫描模式
此模式用来扫描⼀组模拟通道。扫描模式可通过设置ADC_CR1寄存器的SCAN位(进行写1操作)来选择
CR1.SCAN位来决定是单通道还是多通道
CR2.CONT来决定是单次转换还是连续转换。
![image-20220526174911462](https://nuaapeter.oss-cn-nanjing.aliyuncs.com/image-20220526174911462.png)
STM32F10x片上ADC操作步骤
- (1)配置ADC输入引脚
- (2)初始化ADC并启动A/D变换
- (3)查询ADC状态寄存器ADC_SR,判断A/D转换是否结束,如果EOC=1表明转换结束,否则没有结束。
- (4)转换结束时读取转换数据寄存器ADC_DR中值,取低16位结果(多个规则通道只有一个数据寄存器)。
- (5)读出的数字进行标度变换可以得到所求物理量
标度变换
标度变换:指将对应参数值的大小转换成能直接显示有量纲的被测工程量数值,也称为工程转换。对于ADC而言,标度变换的目的就是要将ADC转换得到的数字量如何变换成工程量(实际物理量)。
Y0为被测物理量下限;Ym为被测物理量上限;N0为Y0对应的数字量;Nm为Ym对应的数字量
Y
x
=
Y
0
+
(
Y
m
−
Y
0
)
∗
(
N
x
−
N
0
)
/
(
N
m
−
N
0
)
Yx=Y0+(Ym-Y0)*(Nx-N0)/(Nm-N0)
Yx=Y0+(Ym−Y0)∗(Nx−N0)/(Nm−N0)
数模转换器DAC
数模转换是将数字量转换为模拟量(电流或电压),使输出的模拟电量与输入的数字量成正比。实现这种转换功能的电路叫数模转换器(DAC)。
步骤
一、DAC初始化
(1)初始化用于DAC输出的GPIOA端口时钟及A端口复用 时钟
(2)初始化ADC时钟
(3)将PA4或PA5设置为50MHz复用推挽输出
(4)选择触 发方式 DAC_Trigger
(5)是否使用波形发生、关闭输出缓冲
(6)使能DAC、通道1或2由软件触发
(7)设置通道12位右对齐模式。
二、输出数据到 DAC相应通道,如果有触 发方式,则使能相应触 发方式