ADC和DMA原理
1、什么是ADC
ADC(Analog-Digital Converter)模拟-数字转换器;
作用:ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。ADC主要运用在传感器,一般是利用电阻电容等受的外界测量的物理量,导致测量电路电压发生变化,产生模拟信号,而单片机只能读取数字信号,所以就需要我们把模拟信号转变为数字信号。
ADC的类型
1、积分型
将电压转换成时间(脉冲宽度信号)或频率(脉冲频率),然后由定时器/计数器获得数字值。其优点是用简单电路就能获得高分辨率,但缺点是由于转换精度依赖于积分时间,因此转换速率极低。
2、逐次逼近型
逐次比较型AD由一个比较器和DA转换器通过逐次比较逻辑构成,从zz而输出数字值。其电路规模属于中等。其优点是速度较高、功耗低,在低分辩率(12位)时价格很高。
3、并行比较型/串并行比较型
并行比较型AD采用多个比较器,仅作一次比较而实行转换,又称FLash(快速)型。由于转换速率极高,n位的转换需要2n-1个比较器,因此电路规模也极大,价格也高,只适用于视频AD转换器等速度特别高的领域。
下面介绍一个金典的逐次逼近行的ADC过程:首先我们开启时钟CLOCK,START给予一个脉冲信号,让ADC开始转换。我们可能有多路的输入,这时候可以根据,地址所存译码器,选择对应通道,输入电压A,然后SAR给DAC数据,DAC根据SAR的数据输出对应的电压B,比较器比较B和A的大小关系。然后SAR采用二分法的方法输出数据给DAC,使得DAC输出的电压B,不断和A的缩小差距近似相等。当近似相等时候,SAR将数据传递给8位锁存器,并将EOC置0,标志着转换完成,我们就可以根据8位地址锁存器的数据,DAC参考电压,与255~0的对应关系进行转换就可以得到数据
2、什么是DMA
DMA(直接存储器访问),DMA传输是将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
CPU无时不刻的在处理着大量的事务,但有些事情却没有那么重要,比方说数据的复制和存储数据,如果我们把这部分的CPU资源拿出来,让CPU去处理其他的复杂计算事务,能够更好的利用CPU的资源.
因此:转移数据(尤其是转移大量数据)是可以不需要CPU参与。比如希望外设A的数据拷贝到外设B,只要给两种外设提供一条数据通路,直接让数据由A拷贝到B 不经过CPU的处理