【STM32】知识补充 锁相环原理与应用解析

news2024/11/28 8:27:19

【STM32】知识补充 锁相环原理与应用解析

  • 概述
  • 什么是锁相环 (PPL)
  • 锁相环的基本组成
  • 锁相环的工作原理
  • 锁相环应用
  • STM32 中锁相环的应用
  • STM32 配置锁相环
    • 总结

概述

锁相环 (Phase-Locked Loop) 在现代电子与通信系统中, 扮演着至关重要的角色. 凭借其独特的同步和频率调整能力, 锁相环已成为实现高性能, 高稳定性系统的基石. 那边, 锁相环究竟是什么? 它是如何工作的? 又在哪些领域中发挥着关键作用呢? 小白我来带大家一探究竟.

锁相环原理与应用解析

什么是锁相环 (PPL)

锁相环是一种闭环反馈控制系统. 用于生成与输入信号同步且相位相同的输出信号. 它的核心功能是在输入信号的相位变化时, 自动调整输出信号以保持同步. 这使得锁相环成为了一种理想的频率和相位控制技术.

锁相环原理图

锁相环的基本组成

锁相环主要由以下几个部分组成:

  1. 相位比较器 (Phase Detector): 相位比较器负责比较输入信号和反馈信号的相位差, 并将其转换为电压信号
  2. 低通滤波器 (Low-Pass Filter): 低通滤波器对相位比较器的输出信号进行滤波, 以消除高频噪声和相位抖动
  3. 电压控制振荡器 (Voltage-Controlled Oscillator): 根据低通过滤波器的输出电压调整输出信号的频率和相位
  4. 反馈分频器 (Feedback Divider): 反馈分频器对 VCO 的输出信号进行分频处理, 并将其反馈给相位比较器

锁相环的工作原理

锁相环的工作原理可以分为以下几个步骤:

  1. 当输入信号和反馈信号的相位不同步时, 相位比较器检测到相位差, 并生成一个与相位差成正比的电压信号
  2. 低通过滤波器对电压信号进行滤波出来, 去除噪声和抖动
  3. 电压控制振荡器根据滤波后的电压信号调整输出信号的频率和相位, 使输出信号逐渐接近输入信号的相位
  4. 当输出信号与输入信号的相位达到同步时, 锁相环进入锁定状态, 系统维持稳定度相位同步

锁相环应用

锁相环在各种领域具有广泛的应用, 以下是一些主要的应用:

  1. 频率合成: 锁相环可以用于生成一定倍数的输入频率, 从而实现高精度的频率合成. 在无线电通信, 雷达和导航系统中, 频率合成器是关键组件之一
  2. 时钟恢复: 在数字系统通信中, 锁相环可以从接受到的数据信号中恢复时钟信号, 从而实现时钟同步. 这对于高速数据传输和串行通信协议 (如 USB, PCI Express 和 SATA 等) 至关重要
  3. 频率和相位调制: 锁相环可以用于实现频率调制 (FM) 和相位调制 (PM), 这些都是无线通信中常用的调制方式. 通过控制 VCO 的输入电压, 可以实现信号的调制和解调
  4. 频偏补偿: 锁相环可以用于补偿频率源和飘逸, 从而实现高稳定性的时钟信号. 在卫星通信, 全球定位系统 (GPS) 和高精度测量仪器中, 频偏补偿功能至关重要
  5. 告诉数据转换: 在告诉数据采集和信号处理应用中, 锁相环可以用于生成精确的采样时钟, 从而实现高性能的模块转换 (ADC) 和数模转换 (DAC)
  6. 电源管理: 在开关电源和电压调节器中, 锁相环可以用于控制开关频率, 以实现高效的电源转换和稳定的输出电压

STM32 中锁相环的应用

在 STM32 中, 锁相环主有以下作用:

  1. 系统时钟生成: STM32 通常使用锁相环从外部晶振或内部时钟源生成所需的洗头工时钟. 例如: 通过使用 PLL, 可以将外部 8 MHz 晶振提升到 72 MHz 或更高, 以满足高性能应用的需求
  2. USB 时钟生成: 在具有 USB 功能的 STM32 微控制器中, 锁相环可以用于生成精确的 48 MHz 时钟, 以满足 USB 2.0 全速 (12 Mbps) 或高速 (480 Mbps) 通信的要求
  3. 音频时钟生成: 在音频处理器应用中, STM32 微控制器的锁相环可以用于生成特定的硬盘采样率 (如 44.1 kHz, 48 kHz 等) 以及 I2S 和 SPDIF 接口所需的位时钟和帧时钟
  4. ADC 和 DAC 时钟生成: 在高速数据采集和信号处理应用中, 所喜爱你该换可以用于为 ADC 和 DAC 提供精确的采样时钟, 从而实现高性能的数据转换

锁相环 PLL

STM32 配置锁相环

void SystemClock_Config(void)
{
    RCC_OscInitTypeDef RCC_OscInitStruct = {0};
    RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};

    // 配置外部晶振作为HSE时钟源
    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
    RCC_OscInitStruct.HSEState = RCC_HSE_ON;
    RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
    RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
    // 根据外部晶振频率和所需系统时钟频率设置PLL参数
    // 这里假设外部晶振为8 MHz,目标系统时钟频率为72 MHz
    RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL
}

总结

锁相环在电子和通信领域具有广泛的应用, 它为实现高精度的时钟信号提供了重要支持. 我们简单介绍了锁相环的基本原理, 工作方式和应用, 希望能给大家提供一个全面的了解.

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

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

相关文章

大数据Doris(七):BE扩缩容

文章目录 BE扩缩容 一、BE扩容(创建BE与FE关系) 二、BE缩容 三、BE扩缩容注意问题

【操作系统复习】第5章 存储器管理 2

分页存储管理方式 页号P ◆12-31位:20位 ◆地址空间最多允许有1M(2 20)页 位移量W(页内地址) ◆0-11:12位 ◆每页大小为4KB (2 12) 对某特定机器,地址结构是一…

LangChain 2 ONgDB:大模型+知识图谱实现领域知识问答

LangChain 2 ONgDB:大模型知识图谱实现领域知识问答 LangChain 2 ONgDB:大模型知识图谱实现领域知识问答系统截图LangChain代理流程 Here’s the table of contents: LangChain 2 ONgDB:大模型知识图谱实现领域知识问答 LangChain 是一种 LL…

社区团购小程序怎么做,全流程解析

在当前的电商市场中,社区团购已经成为了一股强劲的力量。社区团购小程序作为社区团购的重要组成部分,已经成为了商家和消费者不可或缺的工具。社区团购小程序以其方便、快捷、实惠的特点,受到越来越多的用户的青睐,成为了电商市场…

只需5分钟,深刻理解本地事务状态表方案|分布式事务系列(四)

之前我们已经讲过了最基础的CAP、BASE理论,然后介绍了强一致性方案XA、2PC和3PC,然后详细讲述了TCC在生产中的应用场景和原理。本文继续讲解最终一致性方案——本地事务状态表方案。 点击上方“后端开发技术”,选择“设为星标” ,…

Go基础篇:类型系统

目录 前言✨一、什么是类型?二、类型特性1、静态类型检查2、类型推断 三、类型别名和自定义类型1、类型别名2、自定义类型3、类型别名和自定义类型的区别 四、类型底层结构1、类型元数据2、其他描述信息3、uncommontype 五、小结 前言✨ 前段时间忙着春招面试&#…

JDK1.8下载、安装和环境配置教程

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🦾🦾​​​​​​​ 目录 window系统安装java 下载JDK 配置环境变量 …

算法记录 | Day45 动态规划

70.爬楼梯 (进阶) 改为:一步一个台阶,两个台阶,三个台阶,…,直到 m个台阶。问有多少种不同的方法可以爬到楼顶呢? 1阶,2阶,… m阶就是物品,楼顶…

文件的使用

文章目录 1.概念1.1定义:1.2分类1.3文件名 2.文件的使用2.1文件指针2.2开闭函数2.3顺序读写2.3.1何为读写2.3.2读写函数1.字符输出fputc(输出到文件 写到文件中)2.字符输入fgetc(输入到程序 读到程序中)3.文本行函数4.…

别争了,Excel和Access都靠边,WPS也退,划时代电子表格早已出现

电子表格,绝不仅仅只是你看到的样子! 无论是Excel,还是与它抗衡30多年,不分上下的金山WPS,都没能开创出真正划时代意义的电子表格。 揭秘前让我们先简单回顾下电子表格的前世今生,等不及的可直接进度条下拉…

超写实虚拟人制作教程

最近突然吹起一阵虚拟人直播风潮,大概就是找一个虚拟人物,用主播的面部动作来驱动虚拟人来完成头部和表情动作,但我看大部分都是下载的UE5Unreal Eigine 5(Epic公司出品的一款强大的3D创作平台,很多大型3A大作都是用其…

google.common的guava依赖的partition分割产生的浅拷贝问题解决方案

google.common的guava依赖的partition分割产生的浅拷贝问题解决方案 问题背景解决方案Lyric&#xff1a; 说你不爱我 问题背景 使用google.common的guava依赖的partition分割产生的浅拷贝问题&#xff0c;如: 把userList集合分割成每个10000的小集合 List<List> partiti…

vue+gin—— GetcharZp

vuegin—— GetcharZp vuegin—— GetcharZpP1-项目介绍【03:51】P2-项目梳理【29:59】problemusercategorysubmit P3-环境搭建【05:27】P4-整合GIN、GORM【16:20】P5-整合 Swagger【10:01】P6-接口-问题列表【19:34】P7-接口-问题详情【24:06】P8-接口-用户详情【05:36】P9-接…

C++菱形继承(再剖析)

当子类对象给父类对象的时候&#xff0c;怎么找公共的虚基类&#xff08;A&#xff09; 就得通过偏移量来算虚基类的位置 ---------------------------------------------------------------------------------------------------------------------------- 我们来分析一下B…

DBi-Tech Studio Controls 1.6 for .NET Crack

Studio Controls for .NET 为 Windows 开发人员提供了 18 个 .NET 控件&#xff0c;用于 Outlook 风格的调度到管理单元报告、Windows 应用程序导航到现代 UI 设计演示以实现自然的最终用户功能。 Appointment Scheduling、Time Tabling、Day Timer ... 应…

【Unity入门】20.三维向量

【Unity入门】三维向量 大家好&#xff0c;我是Lampard~~ 欢迎来到Unity入门系列博客&#xff0c;所学知识来自B站阿发老师~感谢 &#xff08;一&#xff09;空间向量 &#xff08;1&#xff09;什么是三维向量 为什么会有这么一篇博客呢&#xff1f;主要是三维向量在unity中…

[Redis] 数据结构zset压缩列表实现和跳表实现讲解

&#x1f61a;一个不甘平凡的普通人&#xff0c;致力于为Golang社区和算法学习做出贡献&#xff0c;期待您的关注和认可&#xff0c;陪您一起学习打卡&#xff01;&#xff01;&#xff01;&#x1f618;&#x1f618;&#x1f618; &#x1f917;专栏&#xff1a;算法学习 &am…

多级缓存建设方案

项目背景 xx系统中对容量和耗时有较高要求&#xff0c;以支付优惠立减为例&#xff0c;每个用户咨询可用立减时&#xff0c;都会过一遍全量生效活动。目前日常活动数3000&#xff0c;目标2w&#xff1b;日常秒级咨询量1w&#xff0c;大促22w。所以如何支撑日常和大促的业务非常…

Unity利用UGUI RawImage组件制作转场动画

Unity利用UGUI RawImage组件制作转场动画 最近接到了一个unity全景图的小项目&#xff0c;由于在不同的场景之间转场时直接转会太过生硬&#xff0c;因此要求有个Alpha转场的动画。于是想到两种可行的方案&#xff1a; 一、UGUI方案 用UGUI显示当前屏幕纹理&#xff0c;然后…

python处理图像的各种技术镜像、旋转、遮挡、叠加、条带化

2.6 图像镜面对称 1、将图像水平镜面转换。 2、将图像垂直镜面转换。 import random #导入模块 import numpy as np import matplotlib.pyplot as plt a plt.imread("1.jpg") # 将图像沿着水平方向重复三次。 ba.copy() da.copy() # 将图像水平镜面转换。&…