面试常问,ADC,PWM

news2025/1/13 15:50:13

一 PWM介绍

pwm全名(Pulse Width Modulation):脉冲宽度调制

在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域。PWM一定程度上是数字到模拟的桥梁。

1.1基本原理:

面积等效原理:在冲量相同,形状不同的窄带波,加在具有惯性的环节上,出现的效果基本是相同的。

  解释:简单来说,PWM的根本原理图就是对于上面这张图的应用,如果说他们的电压和输出时间相等,我们可以把模拟信号也就是正弦波,等化为相同的方波信号。所以说我们可以通过调节数字信号也就是说方波信号,或者说是离散信号来控制模拟信号设备。本质上这上面划分的面积是大概相等的,所以我们可以调节方波来改变模拟信号的功率输出。

1.2常见概念解释:

1.2.1占空比就是指:在一定周期内,高电平所占整个周期的比例。

1.2.2分辨率 :占空比变化步距。

1.3常见问题:

1.3.1怎么产生pwm信号?

一般来说可以通过软件和硬件来实现。

软件上,首先通过定时器产生一个固定的周期时间,在51我们可以通过设置一个compare比较值来比较控制是否输出高低电平。在32基本定时器或者高级定时器当中我们可以通过配置输出比较通道输出PWM信号。

硬件上,通过在单片机外部连接几个电路、电容等元件来实现对PWM的控制。具体来讲,就是通过与硬件电路连接的比较器和计数器等元件,生成固定的PWM信号,然后再将PWM信号输出到某个器件(比如电机、LED灯)上。与软件实现相比,硬件实现的PWM控制精度更高、可靠性更强,应用领域也更广。

1.3.2怎么消除噪声干扰?

采用滤波器:在PWM信号的输出端或负载的输入端加设LC低通平衡滤波器。这样可以有效地减少尖峰干扰,并改善噪声状况。对于特定应用,可能需要组合使用多种滤波器。

1.3.3PWM的应用?

多应用于电机控制等领域,简单的可以有呼吸灯,电机调速。

二 ADC介绍:

2.1 ADC简介:

模数转换器(Analog-to-Digital Converter):ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。

我们常常把各种传感器的模拟信号电压,通过ADC转化为数字信号量,通过单片机显示处理等等。

2.2.1 工作原理:

采样:采样阶段是将时间上连续变化的模拟信号转化为时间上离散变化的信号。这一过程是通过采样保持电路完成的,该电路在特定的时间间隔内对输入信号进行取样。采样的频率决定了转换后数字信号的分辨率和能够表示的模拟信号的频率范围。

保持:在采样阶段,ADC会将采样得到的结果储存起来,直到下一次采样。这个过程称为保持,它的目的是在量化阶段之前稳定信号,确保每次采样的准确性。

量化:量化是将采样后的模拟信号映射为一组离散的数值,通常使用二进制表示。

编码:编码则是将量化后的数值转换为数字形式的输出。在量化过程中,ADC会比较采样值与一组预定的阈值,每个阈值对应于数字输出的一位。如果采样值高于某个阈值,则相应的位会被设置为1;如果采样值低于阈值,则相应的位会被设置为0。

对于不同的ADC他们的具体实现不同,但本质上原理相同,离不开四个步骤(采样,保持,量化,编码)

2.2.2 ADC常见的类型:

在单片机领域内通常由,由并联比较型号,和逐次逼近型。

并联比较型号:

主要分为:分压部分+比较部分+编码部分

我们通过把模拟电压和参考电压进行输入对比,当对应的输入电压和参考电压相同时,比较器输出1否则输出0,最后编码器进行编码输出二进制数字量。

优点:转换速度快。

缺点:需要很多电阻,以及比较器占据很多硬件资源,对应成本较高,其次分辨率往往很低。

逐次逼近型(单片机常用):

简单简述一下逐次逼近型的工作原理,以上是我从百度搜索的一张简单原理图。

主要分为:控制电路+数码寄存器+D/A转换器+电压比较器;

首先我们需要,把VREF对应也就ADC的参考电压,我们把它保持,通过数码寄存器,不断产生一个

二进制数字量,通过D/A把二进制数字量转化为模拟电压,和输入的模拟电压,不断比较,

不断比较,是得我们不断逼近这个输入的模拟电压值,直到大致相同,输出到输出缓冲器,对应也就是一种数据寄存器。我们就可以读取数字寄存器DR,并且根据测量范围,进行一定比例的缩放运算,得到输入的模拟电压。

优点硬件成本较低

缺点:需要不断调节,不断逼近输入的模拟电压值,转换速度较慢

(其次对于时钟和控制,在之前有讲过);

2.3 ADC常见概念理解:

分辨率表示ADC能辨别的最小模拟量,用二进制数字表示。

(这个分辨率通常用二进制位数来表示,它决定了转换器所能分辨的输入模拟信号的最小增量。常见的有8,10,12,16。对于stm32来说是12位ADC)。

采样时间:STM32 ADC的总转换时间为: TCONV = 采样时间 + 12.5个ADC周期,也可以说是转换时间。

转换时间:表示完成一次A/D转换所需要的时间,转换时间越短,采样率越高。

精度:最小刻度基础上叠加各种误差的参数,进度受ADC性能,温度,和气压等影响;

2.4 ADC改进:

2.4.1如何改进精度?

可以采用更加准确的参考电压;

可以通过采用位数更高的ADC;

可以开启ADC后的延时采样与过采样,在开启ADC后,延时一段时间再进行采样可以排除初始阶段的电压波动。而过采样,即采样频率高于信号最高频率的两倍,也可以提高采样精度。通过尽可能快地采样数据并求平均,可以进一步减少噪声和误差

2.4.2如何改变分辨率?

可以通过软件操作数据结果进行一定的移位操作,来改变分辨率,一般可以用于降低。

2.4.3防止噪声干扰?

在硬件方面上,采用滤波器(加电容),过滤噪声干扰。

在软件方面,主要采取的措施包括:过采样:通过提高采样率,多次采样并平均数据,可以提高数据稳定性,减弱噪声,从而提高ADC的精度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1519597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

植物神经功能紊乱患者每天从5片黛力新减少至2片,只因找对了治疗方法!

植物神经功能紊乱是一种常见的心理疾病,其症状包括焦虑、失眠、疲劳、头痛、胃肠不适等,给患者带来很大的困扰。然而,这种疾病是可以治疗的。本文将介绍一位植物神经功能紊乱患者的治疗经历,希望能够帮助更多的人了解和治疗此病。…

【机器学习300问】38、什么是K-means算法?

在实际工作中,我们经常会遇到这样一类问题:给机器输入大量的特征数据,并期望机器通过学习找出数据存在的某种共性特征、结构或关联。这类问题被称为“非监督学习”问题。这篇文章我就来聚焦非监督学习中的其中一个任务——聚类 例如在数字营销…

F-logic DataCube3 任意文件上传漏洞复现(CVE-2024-25832)

0x01 产品简介 F-logic DataCube3是一款用于光伏发电系统的紧凑型终端测量系统。 0x02 漏洞概述 F-logic DataCube3 /admin/setting_photo.php接口处存在任意文件上传漏洞 ,未经身份验证的攻击者可通过该漏洞在服务器端写入后门,获取服务器权限,进而控制整个web服务器。 …

【计算机视觉】二、图像形成:2、几何基元和几何变换:2D变换

文章目录 一、向量和矩阵的基本运算二、几何基元和变换1、几何基元(Geometric Primitives)2、几何变换(Geometric Transformations)1. 各种变换的关系2. 变换公式3. 2D变换的层次4. python实现 一、向量和矩阵的基本运算 【计算机视觉】二、图像形成:1、向量和矩阵…

【研发日记】Matlab/Simulink技能解锁(五)——Simulink布线技巧

前言 见《【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug》 见《【研发日记】Matlab/Simulink技能解锁(二)——在Function编辑窗口Debug》 见《【研发日记】Matlab/Simulink技能解锁(三)——在Stateflow编辑窗口Debug》 见《【研发日记】Matlab/Simulink…

HarmonyOS ArkUI入门—HarmonyOS ArkUI来开发一个健康饮食应用

本文演示如果在DevEco Studio 3里面,用HarmonyOS的ArkUI来开发一个健康饮食应用。体验HarmonyOS 3最新API 9! 获取HarmonyOS应用 HarmonyOS的ArkUI来开发一个健康饮食的ArkUI程序“ArkUIHealthyDiet”,基础代码已经有了[1],个人…

DHCP-SNOOPING-嗅探/窥探

DHCP-SNOOPING 私接设备了,非终端收到了报文 所有接口设置为非信任,然后单独配置其中一个接口为信任

《ARM汇编与逆向工程 蓝狐卷 基础知识》

推荐一本专注于Arm逆向分析技术的好书《ARM汇编与逆向工程 蓝狐卷 基础知识》,3月21日将在点赞者中抽取粉丝进行本书包邮免费赠送。 目录 正文内容简介作者简介译者简介目录了解更多 正文 与传统的CISC(Complex Instruction Set Computer,复…

聚道云连接器助力航信费控与用友U8无缝对接,赋能供应链管理!

客户介绍 某供应链管理有限公司是一家专注于供应链管理和物流服务的领先企业,在行业内享有盛誉。公司业务遍布全球,拥有庞大的客户群和丰富的行业经验。近年来,公司不断加大数字化投入,以提升运营效率和服务水平。 客户痛点 在…

springboot274基于web的电影院购票系统

电影院购票系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装电影院购票系统软件来发挥其高效…

渗透测试实战思路分析

免责声明:文章来源真实渗透测试,已获得授权,且关键信息已经打码处理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人…

单片机设计-基于树莓派的wifi小车的设计与实现

项目介绍 有两个目的:1)实现wifi小车的基本功能:使用树莓派(单片机)以及各种电子元器件,组装完成一个智能小车,通过Python、Java、C控制树莓派(单片机)的GPIO&#xff0…

LoadRunner学习:RuntimeSetting、参数化、关联、(unfinished

LoadRunner RuntimeSetting 运行时设置 在Vuser中设置Run-time Settings RunLogic:运行逻辑,决定了脚本真正执行逻辑, Init和End部分代码只能执行一次。决定脚本真正执行逻辑的意思是,在Run中的代码和Number of Iteration决定了…

【Leetcode每日一题】 递归 - 反转链表(难度⭐)(35)

1. 题目解析 题目链接:206. 反转链表 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 一、递归函数的核心任务 递归函数的主要职责是接受一个链表的头指针,并返回该链表逆序后的新头结点。递归…

Linux从0到1——Linux第一个小程序:进度条

Linux从0到1——Linux第一个小程序&#xff1a;进度条 1. 输出缓冲区2. 回车和换行的本质3. 实现进度条3.1 简单原理版本3.2 实际工程版本 1. 输出缓冲区 1. 小实验&#xff1a; 编写一个test.c文件&#xff0c;&#xff1a; #include <stdio.h> #include <unistd.h…

‘sqlcmd‘不是内部或外部命令,也不是可运行的程序或批处理文件。

目录 一、问题 二、下载&安装sqlcmd 实用工具 三、验证 四、结果 一、问题 今天使用批处理文件执行SQLServer数据库的SQL语法时报错&#xff0c;提示sqlcmd不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。&#xff0c;发生这个问题的原因是当前系统缺少…

【开发工具学习_Xshell介绍与安装】

开发工具学习_Xshell介绍与安装 开发工具学习_Xshell介绍与安装Xshell介绍Xshell安装 开发工具学习_Xshell介绍与安装 Xshell介绍 Xshell [1]是一个强大的安全终端模拟软件&#xff0c;它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主…

107. 如何使用Docker以及Docker Compose部署Go Web应用

文章目录 一、为什么需要Docker&#xff1f;二、Docker部署示例1. 准备代码2. 创建Docker镜像3. 编写Dockerfile4. Dockerfile解析5. 构建镜像6. 通过镜像创建容器运行 三、分阶段构建示例四、附带其他文件的部署示例五、关联其他容器六、Docker Compose模式七、总结 本文将介绍…

Android Studio实现内容丰富的安卓图书管理系统

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 项目编号060 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看图书列表 3.查看图书详情 4.评论图书&#xff0c; 5.…

复习C语言基础中的基础:C语言发展、C89 C99有何区别、C语言特点

参考《C程序设计&#xff08;第五版&#xff09;》&#xff08;谭浩强&#xff09;一书&#xff1a; 1. 发展、C89 C99 2. 特点 记得时不时回顾一下背景特点&#xff0c;加深对C语言的理解。