51单片机怎么与模拟信号交流呢?

控制/MCU

1877人已加入

描述

单片机怎么与模拟信号“交流”

我们都知道单片机只能识别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转换相反,内部由多个按一定规律设计的阻电阻网络的控制开关,通过比较器逐级比较从而输出与设计值最接近的模拟量。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分