ADC(Analogue to Digital Converter)
模数转换器(analog to Digital Converter,简称ADC)是一种数据转换器,它通过将vwin 信号编码为二进制代码,使数字电路能够与现实世界进行接口。
模数转换器(adc)允许微处理器控制电路,Arduinos,树莓派和其他此类数字逻辑电路与现实世界通信。在现实世界中,模拟信号具有不断变化的值,这些值来自各种来源和传感器,可以测量声音,光,温度或运动,许多数字系统通过测量来自这些传感器的模拟信号与环境相互作用。
虽然模拟信号可以连续并提供无限多个不同的电压值,但另一方面,数字电路可以处理只有两个离散状态的二进制信号,即逻辑“1”(HIGH)或逻辑“0”(LOW)。因此,需要一种能够在连续变化的模拟信号和离散数字信号这两个不同域之间进行转换的电子电路,这就是模数转换器(A/D)的作用。
基本上,模数转换器在某一时刻获取模拟电压的快照,并产生表示该模拟电压的数字输出代码。用于表示该模拟电压值的二进制数字或位的数量取决于A/D转换器的分辨率。
例如,4位ADC的分辨率为1 / 15(2^4 - 1),而8位ADC的分辨率为1 / 255(2^8 - 1)。因此,模拟数字转换器接收未知的连续模拟信号并将其转换为2^n位的“n”位二进制数。
但首先让我们提醒自己模拟(或模拟)信号和数字信号之间的区别,如下所示:
模拟和数字信号
在这里我们可以看到,当电位器的雨刷端在0伏和VMAX之间旋转时,它产生一个连续的输出信号(或电压),相对于雨刷位置有无限个输出值。当电位器雨刷器从一个位置调整到下一个位置时,两个电压水平之间没有突然或阶跃变化,从而产生连续可变的输出电压。模拟信号的例子包括温度、压力、液位和光强度。
对于数字电路,电位器刮水器已被单个旋转开关所取代,该开关依次连接到串联电阻链的每个结,形成一个基本的电位分压器网络。当开关从一个位置(或节点)旋转到下一个输出电压时,VOUT以离散和独特的电压阶跃快速变化,每个开关动作或步骤表示1.0伏的倍数,如图所示。
例如,输出电压将是2伏,3伏,5伏等,而不是2.5V, 3.1V或4.6V。通过使用多位置开关和增加电位分压器网络内的电阻元件的数量,从而增加离散开关步骤的数量,可以很容易地产生更精细的输出电压水平。
然后我们可以看到,模拟信号和数字信号之间的主要区别是,“模拟”量是随时间连续变化的,而“数字”量是离散的(一步一步)值。“低”到“高”或“高”到“低”。那么,我们如何将一个具有无限数值的连续变化的信号转换为具有不同数值或阶跃的信号,以供数字电路使用呢?
模数转换器
采用模拟电压信号并将其转换为等效数字信号的过程可以通过许多不同的方式完成,虽然有许多模数转换器芯片,如各种制造商提供的ADC08xx系列,但可以使用分立元件构建简单的ADC。
一种简单易行的方法是使用并行编码,也称为闪变、同步或多个比较器转换器,其中比较器用于检测不同的电压水平,并将其开关状态输出到编码器。
并行的“Flash”A/D转换器使用一系列互连但间隔相等的比较器和电压参考,这些比较器和电压参考由一系列精密电阻网络产生,用于生成特定n位分辨率的等效输出代码。
并联或闪存转换器的优点是它们构造简单,并且不需要任何定时时钟,因为在将模拟电压施加到比较器输入的瞬间,它与参考电压进行比较。考虑下面的比较器电路。
比较器电路
一种模拟比较器,如LM339N,它有两个模拟输入,一个正一个负,可以用来比较两个不同电压水平的幅度。
电压输入(VIN)信号应用于比较器的一个输入,而参考电压(VREF)应用于另一个输入。对比较器输入端的两个电压电平进行比较,以确定比较器的数字逻辑输出状态,即“1”或“0”。
参考电压,VREF与输入电压比较,VIN应用于另一个输入。对于LM339比较器,如果输入电压小于参考电压,(VIN < VREF)输出为“OFF”,如果大于参考电压,(VIN > VREF)输出为“ON”。因此,比较器比较两个电压水平并确定两者中哪一个更高。
在上面的简单示例中,VREF是由R1和R2设置的分压器网络获得的。如果两个电阻相等,即R1 = R2,那么很明显,参考电压电平将等于电源电压的一半,即V/2。因此,对于具有开路集电极输出的比较器,如果VIN小于V/2,则输出为高电平,如果VIN大于V/2,则输出为低电平,作为1位ADC。
但是,通过向分压器网络添加更多的电阻,我们可以有效地将电源电压“除以”由电阻的电阻决定的量。然而,我们在分压器网络中使用的电阻器越多,需要的比较器就越多。
一般来说,转换“n”位二进制输出需要2^n - 1个比较器,其中“n”通常在8到16的范围内。在我们上面的例子中,单比特ADC使用21 - 1(等于“1”)比较器来确定VIN是否大于或小于V/2参考电压。
如果我们现在创建一个2位ADC,那么我们将需要22 - 1,这是“3”比较器,因为我们需要四个不同的电压电平,对应于4到2位编码器电路所需的4个数字值,如图所示。
2位模拟数字转换电路
这将为模拟输入的所有四个可能值提供一个2位输出代码:
式中:“X”为“不关心”,即逻辑“0”或逻辑“1”条件。那么这个模数转换器是如何工作的呢?为了使A/D转换器有用,它必须产生模拟输入信号的有意义的数字表示。在这个简单的2位ADC示例中,为了简单起见,我们假设输入电压VIN在0到4伏之间,因此将VREF和电阻分压器网络设置为在每个电阻上降低1伏。
当VIN介于0和1伏之间时,(<1V)三个比较器的输入将小于参考电压,因此它们的输出将为LOW,编码器将在引脚Q0和Q1上输出二进制零(00)条件。当VIN增加并超过1伏但小于2伏时,(1V
注意,像TTL 74LS148这样的优先级编码器为每个单独的输入分配一个优先级级别。优先级编码器输出对应于具有最高优先级的当前活动输入。因此,当具有较高优先级的输入(D1与D0相比)存在时,所有其他具有较低优先级的输入将被忽略。因此,如果同时在逻辑级别“1”上有两个或两个以上的输入,则D0和D1上的实际输出代码将只对应指定优先级最高的输入。
所以现在当VIN增加到2伏以上时,下一个参考电压水平,比较器U2检测到变化并产生高输出。但由于输入D2比输入D0或D1具有更高的优先级,因此优先编码器输出二进制“2”(10)码,以此类推,当VIN超过3伏时,产生二进制“3”(11)码输出。显然,当VIN在每个参考电压水平之间降低或变化时,每个比较器将输出一个HIGH或LOW条件到编码器,编码器反过来产生一个相对于VIN在00到11之间的2位二进制代码。
这一切都很好,但是优先编码器不能作为4到2位设备使用,如果我们使用商用的编码器,如TTL 74LS148或其CMOS 4532等效的8位设备,则不会使用六个二进制位。但是一个简单的编码器电路可以用数字前或门和信号二极管矩阵制成,如图所示。
使用二极管的2位ADC
这里比较器的输出在被馈送到二极管之前使用异或门进行编码。两个外部下拉电阻用于输出和地(0V),以确保低状态,并在二极管反向偏置时阻止输出浮动。
因此,与前面的电路一样,取决于VIN的值确定哪个比较器产生输出信号HIGH(或LOW)到产生高输出的异或门,如果一个输入或另一个输入是HIGH,但不是两个,(布尔表达式是Q = A.B + A.B)。这些前或门也可以使用组合逻辑与或与非门来构建。
这两种4对2转换器设计的问题是,这个简单的2位A/D转换器的分辨率是1伏,因为正如我们所看到的,VIN处的模拟输入电压必须改变1伏特才能使编码器改变其输出代码。提高输出分辨率的一种方法是使用更多的比较器将其增加到3位a /D转换器。
3位模数转换器
上面的并行ADC将0到3伏范围内的模拟输入电压转换为2位二进制代码。由于3位数字逻辑系统可以产生2^3 = 8个不同的数字输出,因此模拟输入电压可以与8个参考电压电平进行比较,每个电压电平等于参考电压的八分之一(V/8)。因此,我们现在可以测量0.5(4/8)伏的分辨率,并且需要23 - 1比较器来输出在000(0)和111(7)之间的3位二进制代码,如图所示。
3位模拟数字转换电路
这将为模拟输入的所有八个可能值提供一个3位输出代码:
这里“X”是一个“不关心”,这是一个逻辑“0”或逻辑“1”的输入条件。然后我们可以看到,通过增加ADC的分辨率,不仅增加了输出二进制位的数量,而且增加了比较器的数量和所需的电压水平。
因此,4位分辨率需要15个(2^4 - 1)比较器,8位分辨率需要255个(2^8 - 1)比较器,而10位模数转换器需要1023个比较器,等等。因此,对于这种类型的模数转换器电路,输出位数要求越高,电路就越复杂。
然而,这种类型的并行或闪存A/D转换器的优点是它的实时转换率相对较快,如果只需要几个二进制位就可以在数字显示器上产生读出来显示模拟输入信号的电压值,则可以很容易地作为项目的一部分构建。
除了从传感器或换能器获取模拟输入信号并使用模数转换器将其转换为数字二进制代码作为输入接口电路的一部分外,我们还可以使用数模转换器将二进制代码转换为等效的模拟量,用于输出接口以控制电机或执行器,或通常用于音频应用。
评论
查看更多