单片机学习!
前言
之前文章讲述了STM32中AD模拟数字转换器的内容,文中AD原理中涉及DA原理的内容。本文就介绍了DA数字模拟转换的基础内容。
一、AD与DA
- AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号。
- DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转换为模拟信号。
- AD/DA转换打开了计算机与模拟信号的大门,极大的提高了计算机系统的应用范围,也为模拟信号数字化处理提供了可能。
二、AD与DA硬件电路模型
- AD转换通常有多个输入通道,用多路选择开关连接至AD转换器,以实现AD多路复用的目的,提高硬件利用率。
- AD/DA与单片机数据传送可使用并口(速度快、原理简单),也可使用串口(接线少、使用方便)。
- 可将AD/DA模块直接集成在单片机内,这样直接写入/读出寄存器就可进行AD/DA转换,单片机的IO口可直接复用为AD/DA的通道。
一般传感器的电阻阻值会随着传感器的参量变化而变化。AD是对电压进行转换,AD只能读取电压。想要把传感器电阻的变化转化为电压的变化就需要在可变电阻上再串一个电阻,如上图所示,两个电阻两边一头接正极,一头接负极。可变电阻的变化就会引起两电阻中间电压的变化,电压变化的模拟量通过AD转换后就可以得到数字量。读取数字量之后就可以知道电压了。
模拟量和数字量的转化0V对应0,4V对应255,中间都是一一对应的线性正比关系。
DA就是AD的反过程,单片机输出一个数字量,数字量通过DA转换后就可以得到一个对应的模拟量输出电压。
图中所示的是一个8位的AD\DA转换,当然也有更高位的转换,如12位、16位等。位数越高转换越精确。
为了增加AD的复用性,AD转换通常会有多个输入通道。多个AD输入会由选择开关来选择需要转换的一路进行AD转换。这样一个AD转换的硬件资源就可以转换多个通道的输入。
而DA转换只有一个输入通道。因为模拟量是连续的,数字量是离散的。AD转换是输出离散的数字信号,可以取模拟信号的某一点输出为数字信号;而DA转换中需要输出模拟信号是连续的,不能间断交替通道输出。
AD/DA与单片机数据传送可使用并口,图中所示就为并口转换。AD/DA与单片机数据传送也可使用串口,串口传送就是一位一位数据进行传送,如使用I2C、SPI等一位一位的进行传送,
- 并口传送优点:速度快、原理简单。
- 串口传送优点:接线少、使用方便。
三、运算放大器
因为DA转换里面经常会有运算放大器的知识,所以先来了解一下运算放大器。
运算放大器本身是个集成电路,并不是像电阻电容这样单独的元件。运放内部集成了较为复杂电路。因为运放经常会使用到,内部形式比较固定,所以就将运放内部的复杂电路集成起来封装在一起。
运算放大器在电路中使用横三角符号表示。在三角形上有三个接头,两个用于输入,一个用于输出。输入端有正(+)和负(-)的符号,+的为同相输入端,-的为反相输入端。输出端是同相输入端减去反相输入端之后得到的信号。
- 运算放大器(简称“运放”)是具有很高放大倍数的放大电路单元。内部集成了差分放大器、电压放大器、功率放大器三级放大电路,是一个性能完备、功能强大的通用放大电路单元,由于其应用十分广泛,现已作为基本的电路元件出现在电路图中。
- 运算放大器可构成的电路有:电压比较器、反相放大器、同相放大器、电压跟随器、加法器、积分器、微分器等。
- 运算放大器电路的分析方法:虚短、虚断(负反馈条件下)。
运放特性:
- 运算放大器输入阻抗特别大,输入端几乎是不流进电路也不流出电流,以避免运算放大器对前极电路的影响。
- 运算放大器内部有功率输出这一极,它的输出端是有驱动能力的。
- 运算放大器为了可以调节它的放大倍数,就将它的放大倍数也就是放大增益设置为无穷大。
放大倍数的调节需要加一个负反馈,运算放大器的放大倍数不由它内部的放大倍数决定,而是由它外部的放大系数决定。
虚短: 集成运算放大器的开环放大倍数很大,一般通用型的运算放大器的开环电压放大倍数都在80dB以上,但是运放的输出电压是有限制的,一般在10V~14V,然而运放的差模输入电压不足1 mV,因此可以输入两端可以近似等电位,就相当于短路。 开环电压放大倍数越大,两输入端的电位越接近相等,这种特性称之为虚短。
虚断: 集成运算放大器具有输入高阻抗的特性,一般同向输入端和反向输入端的输入电阻都在1MΩ以上,所以输入端流入运放的电流往往小于1uA,远小于输入端外电路的电流。所以这里通常可把运放的两输入端视为开路,并且运放的输入电阻越大,同向和反向输入两端越接近开路。在运放处于线性状态时,根据这个特性可以把两输入端视为等效开路,简称虚断。
四、运放电路
4.1 电压比较器
电压比较器:将运算放大器的正输入端(同相输入端)和负输入端(反相输入端)的两个电压大小进行比较。
- 若IN+的电压大于IN-的电压,则OUT输出高电平;
- 若IN+的电压小于IN-的电压,则OUT输出低电平;
- 若IN+的电压等于IN-的电压,则OUT输出的电平高低不定,出现震荡。
4.2 反相放大器
反相放大器如下图所示,是由一个运算放大器和两个电阻构成。同时,+同相输入端与GND连接起来。
反向放大器:输入和输出的信号相位相反,放大倍数由R1和R2共同决定。
反相放大器是一个放大倍数可调的放大器,反相放大器在负反馈情况下的应用,由上述公式可以看出,控制电阻R2和R1就可以控制放大倍数。
例如在方向放大器输入端电压信号只有0V到0.1V很微弱的变化,
- 此时如果R1接1k电阻,R2接2k电阻,那么电压信号就可以进行2倍放大;
- 此时如果R1接1k电阻,R2接20k电阻,那么电压信号就可以进行20倍放大。
反相放大器的放大倍数可以通过R1和R2很灵活的调节,反相放大器内部实现的原理首先看运算放大器,运算放大器最基本的作用还是做电压比较器:如果同相输入端+大于反相输入端-就输出高电平;如果反相输入端-大于同相输入端+就输出低电平。
在运算放大器上加上负反馈电路构成反相放大器之后,整个电路的输入输出电压就会不一样。
假设输入一个0.1v的电压,那在初始状态下A点电压也是0.1V,那在初始状态下反相输入端-的输入电压就是0.1V,同相输入端+接GND,所以是0V。反相输入端-的0.1V大于同相输入端+的0V,就会输出一个负的最大电压,负的最大电压又会通过R2电阻反馈,反馈回到A点,相当于一个下拉,就会抑制0.1V,所以0.1V电压就会下降。输入端IN到A点的电路相当于对电压上拉;B点到A点的电路相当于对电压下拉。当电压下降到0V以下的时候,同相输入端+的0V就会大于反相输入端-的电压,那输出就会输出正的最大电压,正的最大电压又会通过R2电阻反馈,反馈回到A点,这时B点到A点的电路就相当于一个上拉,就会拉高A点电压,电压又会上升,升到大于0V时,又会被抑制下拉,下降到0V以下又会被上拉,电压上升,... ...,直到达到稳态。这个稳态的状态下反相输入端-的电压和同相输入端+的电压相等时,这里也就是都等于0V时,输出才停止。这时形成的状态就叫做虚短。
虚短就是电路负反馈状态下,反相输入端-和同相输入端+的电压是相等的。
虚断就是电路的输入阻抗比较大,电流既不流入也不流出。
4.3 同相放大器
在运算放大器中,将信号照原样在相同方向放大输出的电路被称为同相放大器。同相放大器的电路如下图所示,在+同相输入端输入信号,-反相输入端连接两个电阻,一个电阻接地,一个电阻接输出端。
同向放大器:输入和输出的信号相位相同,放大倍数由R1和R2共同决定。
同相放大器的特征是放大倍数在一倍以上。
- 此时如果R1接1k电阻,R2接1k电阻,那么电压信号就可以进行2倍放大;
- 此时如果R1接1k电阻,R2接2k电阻,那么电压信号就可以进行3倍放大;
- 此时如果R1接100k电阻,R2接1k电阻,那么电压信号就可以进行1.01倍放大;
在同相放大器中,可以把信号变大不能把信号变小。
4.4 电压跟随器
电压跟随器是放大倍数为1倍的放大器,运算放大器的输出可以得到大电流,所以主要用于随负载而变化的电路中。
电压跟随器效果:输出电压等于输入电压,就是输入电压波形怎么变,输出电压的波形就跟着怎么变。
电压跟随器作用:在电路中使用电压跟随器可以提高信号的驱动能力。因为运算放大器内部有功率放大器,运算放大器加一个电阻R2构成电压跟随器后,可以把没有驱动能力的信号变成一个有驱动能力而且和原来一模一样的信号。
五、DA原理
图中D7、D6、D5、D4、D3、D2、D1、D0是8位的输入数字量,输入数字量这里给的是高低电平,可以控制上方模拟开关,模拟开关可以接0或1。电路最终的输出是运算放大器的输出。
在第二个公式中,VREF是参考电压,如果VREF接5V电压的话,就会对5V进行256等分,取多少份就是由D7~D0数字量控制。如果数字量组合出来的数字是128,根据公式128/256也就是1/2,那输出的电压就是5V的1/2,2.5V。
AD转换就是按数字量的比例来从参考电压中等分出模拟电压。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了DA数字模拟转换的原理和DA原理所涉及的一些电路知识。