干货 | 锁向环到底是什么?是怎么进行倍频的?

2023-10-20 16:21

本文主要是介绍干货 | 锁向环到底是什么?是怎么进行倍频的?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

你们有没有这样一个疑问,就是CPU的主频怎么做到几个GHz呢?

每一秒要给处理器几亿个脉冲,就拿11代I7处理器来说,它的基本频率就可达2.5GHz,但在我们常规的认知中,频率的大小取决于晶振的频率,比如这个晶振的频率是16MHz,那么这个芯片的工作频率就是16MHz。那就电脑CPU来说,虽然它的主频是2.5GHz,也就是2500MHz,但是也没有这么高频率的晶振。

图片

一般常用晶振的频率是4MHz、8MHz、16MHz等等,最高频的晶振也才100到200MHz。那CPU的上千兆的主频又是怎么来?

比如我们的晶振是100MHz,CPU主频却能上千兆,这就需要中间有锁相环,它能把晶振的频率进行加倍,然后再给CPU。

它的应用极其广泛,就拿我们熟知的STM32来说,它采用的晶振虽然是8MHz的,那我们可以把它的时钟设置为72MHz,它就是经过了内部的锁相环电路进行了九倍频,然后我们的时钟就从8MHz变成了72MHz。

在这里插入图片描述

01、锁向环到底是什么?

PLL(锁相环)是一个反馈控制电路,它通过反馈不断调整环路内部振荡信号的频率和相位使其跟随外部输入的参考信号。

当外部输入信号为时钟时,PLL可作为频率综合器用于产生时钟信号,也可以作为相位的滤波器过滤输入信号的相位噪声。

当外部输入信号为数据流时,PLL可作为数据时钟恢复电路用于跟踪恢复数据。

在这里插入图片描述

02、锁相环它是怎么进行倍频的?

首先锁相环需要有一个参考频率,可以是温补晶振,也可以是恒温晶振,更可以是卫星授时的秒脉冲,这都是依据频率准确度来挑选的。另外有一个输出频率。参考频率为f0,输出频率为f1。然后f0与f1同时输入一个叫做鉴相器的装置中,然后将比较相位后得到的低频信号通过低通滤波器后得到一个比较平滑的电压值,作用在压控振荡器上形成输出频率,这个频率就是f1,与f0同步。但此时的f0 = f1。

在这里插入图片描述

如果要倍频怎么办呢?其实很简单,就是对输出的f1做N分频,分频之后的频率为f2,如果将分频器划分到压控振荡器的模块中的话就比较容易理解了,及此时的f2相当于原来的f1,即f2 = f0。那真正的压控振荡器输出的频率是多少呢?即f1 = N * f2 = N * f0,实现了倍频。

其实说到这里,有的人还是没有明白,这怎么就实现了倍频了呢?秘密就在于分频之后的频率f2与参考频率f0之间的相位比较。要锁相环变得稳定,就只要输入的参考频率f0与分频后的频率f2之间的相位差值为一常数,而这个相位常数会使鉴相器输出不同的电压值,经过低通滤波器(即环路滤波器)后作用在压控振荡器,使输出频率发生改变,这样就实现了倍频了。

在这里插入图片描述

03、锁相环升值必备的技能!

由于做锁相环对于系统的更深理解,在职业发展中也更容易晋升为项目领导者。因为学习锁相环会更多并且更容易接受到收发机,进而掌握整个系统架构。

但很多同学在自学锁相环的时候觉得很复杂,其实有时候学了书本理论知识,并没有用到实际的设计电路当中,很容易学完就忘。书本理论知识需要结合实际项目做,才能理解的更深和透彻。

移知邀请来了Kevin老师为大家讲解《1节课带你掌握PLL学习重点》,感兴趣的可以私信获取,干货满满不要错过。

移知教育移知特邀深耕于PLL设计领域,拥有7/14/28nm等多个项目的成功流片经验的Kevin博士,以实际的职场案例为演示切入点,应大家的需求设计了一款新课《PLL设计入门与进阶》。

本课程从PLL基础理论出发,详细讲解模拟PLL及数字PLL的设计技术。通过理论结合上机实操的方式培养满足企业需求的PLL设计工程师。

这篇关于干货 | 锁向环到底是什么?是怎么进行倍频的?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/248262

相关文章

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

Jackson库进行JSON 序列化时遇到了无限递归(Infinite Recursion)的问题及解决方案

《Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursion)的问题及解决方案》使用Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursi... 目录解决方案‌1. 使用 @jsonIgnore 忽略一个方向的引用2. 使用 @JsonManagedR