单片机怎么与模拟信号“交流”
我们都知道单片机只能识别0或1两种数字信号,但是现实世界所有的存在都以具体的模拟量为主,比如电压,电流,气压,质量等等,那单片机要怎么才能和这些信号打交道呢? 要是没有“交流”那电子世界不就会乱套了,那可能比哥伦布刚发现印第安人那刻还乱吧。 是不是就必须得有工具来“翻译”这些信息了,这里就不得不利用数模转换功能了,学了电子技术基础的朋友应该都有印象吧。 它们就像单片机与外界信息交流的翻译官。
我们做项目开发时基本都会用到数模转换(A/D、D/A),尤其是A/D单元,几乎是项目必用的。 所以它们的地位还是很重要的,基础版的51单片机内部是没有集成这些单元的,所以课本上介绍这些知识时都会使用外接芯片来讲解,但是现在新出的芯片几乎都是内部集成数模转换功能,只要对着手册在程序中设置一下引脚功能就可以进行操作了。 所以之前的内容中我一直没介绍外接数模转换芯片这一块的知识,现在来介绍这一部分内容也是比较尴尬的事,毕竟介绍再多工作中用到的概率不大。 所以今天就写些一看就懂的内容,书本上有的电路,程序就不举例说明了。
A/D和D/A转换模型分类都比较多,这些细节可以参考相关书籍做了解。 反正说白了,数模转换原理是简单的,普通的模块也是廉价的,不然现在的MCU也不会集成它。 但是高性能的数模转换芯片国内现在是欠缺的,这就影响了国内工业在很多高精行业芯片不得不依靠进口。 长江后浪推前浪,但愿这些可以早日突破吧。
A/D转换基础
A/D变换就是将模拟信号转换为数字信号传入给单片机,通常用于单片机采集各类信号,最终都会以检测电压的形式体现出来,转换过程通常包含采样、量化和编码3个步骤。
A/D转换步骤
采样是将连续的模拟信号变成不连续的模拟信号,就像控制一个快速开关,开关定时开启闭合过程,一个连续的模拟信号就形成一系列的脉冲信号,称为采样信号。
在理想数据采集系统中,只要满足采样定理——采样频率不小于被采集信号最高频率的2倍(即fs ≥2fmax ),则采样输出信号就可以无失真的重现原输入信号,而在实际应用中通常会设置更高的采样频率,当然采样频率越高,计算量就越大,对芯片的处理能力要求就越高。 比如我们测试心率,胎儿到大人每分钟心率从四五十到两百多都有可能。 即每秒最多4次,那我们的采样频率是不是设置8Hz就能测出心率了呢? 当然不是这样的,即使是80hz也不一定能测出准确的数据,实际开发中我们得设置几百Hz甚至上千Hz的采样频率。
量化过程是将模拟信号变成数字信号的过程,输入信号的幅值变化就与实际的数值对应起来,完成了从模拟到数字的变换; 量化过程也会引入误差,增加采样频率和幅值的表示位数可以减少误差。 将量化过程得到的量化值进行二进制编码,对相同范围的模拟量,编码位数越多,量化误差越小。
转换过程
D/A转换基础
与A/D转换相反,D/A转换就是使用单片机输出模拟信号,和A/D一样也是有转换精度的,最常见的应用就是波形发生器,汽车,仪表类行业对这个要求会比较高。
并行D/A转换原理
正如图中所画,D/A转换时恰好和A/D转换相反,内部由多个按一定规律设计的阻电阻网络的控制开关,通过比较器逐级比较从而输出与设计值最接近的模拟量。
全部0条评论
快来发表一下你的评论吧 !