1.ADC的定义
ADC(Attack Damage Carry/Core)它是普通攻击连续输出核心的缩写,是游戏中伤害输出的核心之一(主要是普通攻击导致持续伤害输出,避免输出空窗期),主要用于MOBA类游戏(划掉)。
即模拟数字转换器A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将输入电压信号转换为输出数字信号。由于数字信号本身没有实际意义,它只表示一个相对大小。因此,任何模数转换器都需要一个参考模拟量作为转换标准,更常见的参考标准是最大参考标准。与参考信号相比,输出数表示输入信号的大小。
2.ADC的作用
将模拟信号转换为数字信号,通常是电压值。我们需要的信息通常存在于这些电压值中。简单地说,一般来说ADC它起着信息传递的作用。
- 在现实世界中,许多物理量需要通过传感器转化为电压来传递和比较信息。
2.由于模拟量容易受到温度和电压波动的干扰,数字电路不仅可以算术操作,还可以逻辑操作等诸多优点得到广泛应用。
3.单片机、单板机、计算机在实际应用场景中都是基于数字电路工作的。
1.ADC精度
我们通常用位数的概念来衡量ADC的精度。这个位数实际上是指系统中用来表示电压的二进制数的位数。比如一个八位ADC,也就是说,采样电压可以用0-255表示。如果采样电压等于基准电压,则输出编码为255。如果采样电压为0,则采样电压为8个1。V,输出代码0。需要注意的是,部分ADC可检测正电压和负电压,其检测范围为正负参考电压。此时ADC编码电压采用-128-128,由于检测范围的提高,电压精度下降。因而ADC精度不仅与位数相关,也与其工作范围有关。
例如,如果我使用它,STM32F1系列单片机采样,其ADC精度为12位,基准电压为单片机电源电压3.3V负电压无法量化,检测范围为0-3.3V。假设待测的电压为1.8V,我得到的输出应该是1.8/(3.3/(2^12))=2234,用二进制数表示1000101101010。同样,我可以根据我得到的二进制数换算出我想要采样电压的值。
2.操作放大器
什么是操作放大器?我们在这里稍微忽略了它。我们可以等待您在模型课上详细学习。在这里,我们只需要了解其几个特点和经典电路。
1)运算放大器输入阻抗趋于无限大,虚断特性
2)在深度负反馈下具有虚短特征。
3)积分器的基本结构和输出。
u0(t)=1/rcdt=ui/rc,以后我们会用这个公式
4)比较器的基本结构与输出。
当IN1与IN当尺寸发生变化时,比较器输出会翻转,我们可以通过比较器输出获得IN1与IN2的大小信息
3.采样定律
原始信号应从抽样信号中无失真恢复,抽样频率应大于信号最高频率的2倍。 当抽样频率小于2倍频谱的最高频率时,信号频谱混合。 当抽样频率大于2倍频谱的最高频率时,信号频谱不会混合。例如,假设采样频率为50HZ正弦波曲线,采样率必须达到100HZ只有这样才能画出完整的正弦曲线。
- 数模转换的基本过程
A/D转换通常需要四个过程:取样、维护、量化和编码。
1)取样-维护过程
在取样前,ADC低通滤波器电路通常用于在输入端筛选信号。顾名思义,低通滤波器电路是过滤收集到的信号中的高频部分,低频部分像往常一样通过。利用电容交通阻力的特点,高频信号通过电容器和地面导通被地面吸收,低频信号继续向下传输。
低通滤波器后的取样电路本质上是由芯片内的开关控制器控制的开关结构。当开关打开时,内外电压相等,采样完成,开关断开时,由于操作放大器输入端的输入电阻往往是无限的,当然不可能这么大,但大多数操作放大器的输入电阻往往是MΩ级别且开关经断开,电容两端的电压也即后面这个运放输入端电压会保留一段时间,以确保后续量化与编码过程的顺利进行。
取样-保持过程中,原来连续的模拟量由于开关的脉冲特性变为了在时间与电压上都离散的值。
2)量化-编码过程
依据量化-编码过程的不同,ADC可以分为间接型ADC与直接型ADC两大类,直接型ADC又可分为并联比较型ADC、逐次逼近式ADC等。
量化的方式有两种,一种为只舍不入法,即当电压不够一份时,直接舍弃,向下取整。另一种为有舍有入法,当尾数不足一半时舍弃该尾数,尾数超过一半时则进一位。我们可以看到,后者的误差为基准电压均分份数的一半,精确度更高,因而多数ADC采用的是这套取整办法。
2.ADC种类
1)间接型ADC
间接ADC是先将输入模拟电压转换成时间或频率,然后再把这些中间量转换成数字量,常用的有中间量是时间的双积分型ADC。
双积分型ADC核心原理为电荷守恒原理,其基本结构为积分器与比较器串联,积分器一段为单刀双掷电子开关,一端接待测电压,另一端接参考电压,比较器则一段与积分器输出相接,另一端与GND相接。当输入开关闭合后,同时开始计时,积分电路对待测电压进行积分,此积分时间由开关控制信号决定,当开关控制信号降低至低电平时,计时停止,可以得到积分器电压表达式,正向积分结束。接着开关从输入侧向参考电压侧闭合,进行反向积分。参考电压为以确定的电压,接入参考电压后,电容两端电压开始下降,当积分器输出为0即比较器输出翻转时,计时停止。通过积分器电压输出特性,与电荷守恒的原理,我们可以得到待测电压与参考电压之比与两次积分时间相等,进而可以读出待测电压的值,以二进制编码输出。
举个例子,如果某天学校想知道今天有多少人摸鱼没来做核酸,由于我们做的是十混一,十人一管,二十管一盘,学校只需要统计一共有多少盘就知道今天一共有多少人做了核酸,多少人没做。在这个过程中,我们可以把学生来排队做核酸看做积分式ADC的前半部分,学校统计人数看做后半部分。
双积分型ADC精度较高,转换时间较长,因而被广泛应用在高精度低频率的场合,如高精度直流电压表内部大多集成的便是这种ADC。
2)直接型ADC
常用的直接型ADC主要有两种,一为并联比较型ADC,一为逐次逼近型ADC。下面我们分别简单介绍一下这两类ADC的原理。
a.并联比较型
并联比较型ADC电路比较简单粗暴,利用了最基础的电阻分压关系对参考电压进行等分,比较器两引脚分别与等分之后的电压与待测电压相连,根据比较器输出得到待测电压范围。在网上还看到另一种设计,不是利用等分电阻对参考电压进行分压,优化了待测电压较小时ADC的表现。这种ADC原理简单且其速度几乎只被数字转换电路所限制,可以做到很高的频率。但缺点也很明显,随着精确度也就是位数的上升,所需要的电阻、比较器与寄存器等元件随之成比例的增长,如果我想用这个原理搭建一个八位ADC,我需要2^8-1=255组元器件。同时,由于采用电阻对参考电压进行分压,元件的功耗会很大。电阻的阻值不能无限制的增大,我们前面说过,运算放大器的输入电阻为MΩ级别,如果运算放大器的输入电阻不能远大于分压电阻,运算放大器的工作状态势必受到影响。
对此也有改进方法,对待测电压进行分级比较,图中输入模拟信号v1,经取样-保持电路后分两路,一路先经第一级5位并行A/D转换进行粗转换得到输出数字量的高5位,另一路送至法发器,与高5位D/A转换得到的模拟电压相减。由于相减所得到的差值电压小于1VLSB(最小分辨率),为保证第二级A/D转换器的转换精度,将差值放大25=32倍,送第二级5位并行比较A/D转换器,得到低5位输出。这种方法虽然在速度上作了牺牲,却使元件数大为减少,在需要兼顾分辨率和速度的情况下常被采用。
b.逐次逼近型
逐次逼近型ADC由4个主要子电路构成:采样保持放大器(SHA)、 模拟比较器、参考数模转换器(DAC)和逐次逼近型寄存器(SAR)。 由于 SAR 控制着转换器的运行,因此,逐次逼近型转换器一般 称为SAR ADC。
该ADC依靠DAC转换器工作,DAC首先将最高位置1,即输出参考电压的一半与采样到的模拟电压进行对比,如果DAC输出电压高于采样电压,则将最高位置0,反之则反,确定第一位后,继续对其他位进行相同操作直至最后一位。简单来说,就是利用二分法来确定采样电压范围,得出编码。
该ADC工作原理类似于天平,即通过不断改变砝码的数量与质量,观察天平的偏向以更改砝码,最终得到信息。在ADC中,比较器充当了天平的角色,写入DAC的寄存器值则与砝码类似。
3.其他概念
1)误差来源
主要误差来源应当是由于量化过程中因为位数导致的分辨率有限,最多会有1/2LSB的误差。其次是由于高频信号干扰或是器件本身时钟不良震荡导致的干扰
2)过采样
过采样的原理,恕在下才疏学浅,实在是没有看懂(别骂了别骂了)在这里留一个链接,感兴趣的同学可以去看看过采样技术详细介绍_工程师看海的博客-CSDN博客_过采样技术
但是不影响我们利用这个原理得到结论,过采样可以在一定范围内提高分辨率,大概可以提高2到4位,可以将12位ADC转化为16位ADC使用。
1.CUBE配置
我们需要注意的有Clock Prescaler(决定ADC工作频率与挂载总线位置) 、Resolution (ADC分辨率)、Scan Conversion Mode(扫描模式,多通道时自动打开)、Continuous Conversion Mode(连续转换模式,决定ADC各通道采样次数)、Data Alignment (数据对齐方式)Sampling Time (采样时间)这几个选项。
在Clock Prescaler下我们可以选择ADC工作在同步或异步模式下,对应挂载的时钟不同。同时还可以选预分频次数。分辨率前文中已经提到过,在此表去不谈。扫描模式对应多ADC通道时ADC的采样顺序,选择“Forward”模式时ADC自动从编号小的通道向编号大的通道依次采样,“Backward”模式则刚好相反。如不使能连续转换模式则ADC各通道采样一次后便不再继续采样,根据需要我们一般使能该功能。数据对齐方式则是由于单片机中采用8字节储存数据,因而12位无法占满所有位数,因而需要选择左对齐或右对齐。左对齐与右对齐相关知识可以参考这篇博客PIC单片机精通_ADC左对齐与右对齐的数据读取问题_树懒的聪明的博客-CSDN博客_adc左对齐和右对齐在此略去不表。采样时间则与时钟频率相关,多少次循环进行一次采样。
关于DMA配置,需要注意的是最下方的字长度配置,我们选择“Word”模式进行配置。
2.代码部分
在这里我们只介绍DMA模式的写法,关于轮询与中断的写法大家可以上网去找百度或者谷歌,在CSDN、博客园等网站类似的博客有很多,大家可以参考下。
最后,在中断回调函数中对数据进行译码,即可得到电压值。
部分图片与资料来源于网络,侵删