机器人是怎么计时的(通用定时器 - 时基单元)

news/2024/4/29 2:31:25/文章来源:https://blog.csdn.net/m0_72615170/article/details/136985627

目录

一,引言

二,机器人的“大脑”

三,时基单元介绍

1,定时器框图

2,时基单元

(1)预分频器

(2)CNT计数器

(3)自动重装载寄存器

四,结尾


一,引言

        技术的迅猛发展,赋予了越来越多科技产品“智能化”的标签。如智能洗碗机,智能冰箱,智能电饭煲……这些“机器人”(我们姑且这样称呼它们)都有一个共同的功能——计时。你是否有过好奇——它们是如何精确而稳定地计量时间的呢?让我们一探究竟。

二,机器人的“大脑”

        机器人计时是在它们的“大脑”中进行的。这个“大脑”,学名叫“单片机(Single-Chip Microcomputer)”,又称“微控制器(Microcontroller Unit,MCU)”。

        想象一下,把一台电脑中的主板、CPU、内存、硬盘等各种部件全部浓缩在一枚指甲盖大小的芯片上——这就是单片机。由于普通机器人对于信息的处理并不像电脑那样,承载着巨量的数学计算,而是进行环境信号的采集与对应指令的输出,单片机也就不需要过大的容量与体积。

        而本系列的主要内容,就是介绍单片机中最强大、最复杂的外设——定时器。

        本文讲解定时器的时基单元,也就是“机器人的计时原理”。听起来似乎有些专业?不妨继续往下看,接下来的内容,我会尽我所能,让你对时基单元有一个基本的认识。

三,时基单元介绍

1,定时器框图

        如图1,是通用定时器的整体框图:

图1  定时器框图

        整体可分为四个模块:时钟模块,时基单元,输入捕获与输出比较。本文在介绍时基单元的基础上,会同时介绍一点时钟方面的知识。

2,时基单元

        我们将时基单元单独拆出,如图2:

图2 时基单元

        时钟脉冲(CK_PSC,72MHz)被预分频器接收,经过预分频器分频后,脉冲转变成CK_CNT(CK_CNT和CK_PSC的区别是频率不同,若预分频器设置为2分频,CK_CNT就是36MHz)进入CNT计数器中,时基单元开始计数——其中,计数方式有三种:向上计数、向下计数与中央对其计数,这里只介绍向上计数,顾名思义,就是从0开始,按照1、2、3的方式向数值较大的方向计数——在计数的同时,计数器中的值会与自动重装载寄存器(由我们设置)中的值相比较,若达到了我们期望比较的结果(如计数器的值大于我们设定的值),就会输出相应的指令。文字有点长,结合图2阅读也许会不那么抽象。

        以上,就是时基单元基本的情况。接下来,我们分别讨论时基单元中三个模块的原理。

(1)预分频器

        我们结合预分频器时序图来剖析原理:

图3 预分频器时序图

        可以看到,在图2中,预分频器由“PSC预分频器”与一块阴影组成,其中,“PSC预分频器”名字叫“预分频控制寄存器”,而“阴影”叫预分频缓冲器,也叫影子寄存器,这里我简称其为“缓冲器”。我们修改数值,是在预分频控制寄存器中,修改之后,预分频控制寄存器将设置的值放入缓冲器,由缓冲器控制预分频计数器的数值变化(如图3),也就是说,真正控制预分频器工作的,是缓冲器。但为什么会这样设计呢?在自动重装寄存器中,我会阐述答案。

        上文中,我们理出了预分频器本身的基本运作方式,读者可以在纸上画一下流程图熟悉一下大体框架。

        我们提到了“预分频计数器”,这就是预分频器的重点——预分频器本质也是个计数器,通过图3,我们来梳理它的原理。预分频缓冲器中的设定值,就是预分频计数器计数的最大值,这一点可以对比图3中   上下两幅图的最后一排   预分频计数器前后计数的变化理解。当预分频计数器计数值为0时,CK_INT输出一个高电平,同时,计数器向上计数一次,CK_INT的意思见图2。当计数器到达自动重装载寄存器的值时,就会从0重新计数(向上计数模式)。在每次计数到达设置值时,产生一个更新事件,更新事件就是图2中那个像闪电一样的箭头,上面写着U。而UI是产生定时中断的意思,这两个东西知道就行。

        可能会有些难以理解,但是照着图像一句话一句话地理解,能够梳理出思路。

(2)CNT计数器

        CNT计数器时序图如图4:

图4 计数器时序图

        其中,CK_INT和图3中的CK_PSC是一样的。到这里,也许我们会产生疑惑:时钟这么重要,它到底是个什么东西?结合图3和图4,可以看到,我们所设置的信号中,上升沿和时钟都是同时性的,也就是说,时钟就像是一块石头,我们通过去掉与保留石头的各个部分,把石头雕刻成我们想要的部分——时钟也是一样。

(3)自动重装载寄存器

        自动重装载寄存器时序图如图5:

图5 自动重装载寄存器

        自动重装载寄存器,是计数器的“顶点”,计数器到达了我们在自动重装载的值,就会“溢出”,如图5中,比如,我们让计数器达到4的时候进行“溢出”,也就是输出一个高电平,表示计了5次数字(从0开始计数),溢出之后,计数器就又会从0开始进行计数——是不是很像“画正字”呢?

        图5是分为上下两个图的,两个图的区别在于,上面的图没有使用缓冲器(框图中的“影子”),下面使用了缓冲器。可以看见,在没有使用缓冲器时,我们原先设置计数终点是FF,在计数到32时,将FF改成了36,计数器寄存器计数到36时,就重新从0开始计数了;而使用了缓冲器,当我们改变计数终点时,计数器会计数到F5后,才会从0开始重新计数,直到计数到我们新设置的36后,再从0开始重新计数。

        有些绕,但是慢下来,对着图画一下思维导图,就能理解这段文字。

四,结尾

        也许我们会疑惑:一开始不是讲计时吗,怎么讲到计数上了?

        是否有注意,在文中,我们提及了“时钟”的概念,定时器的标准时钟时72赫兹,我们给它一个倒数——便成了周期(单位:秒),一个高电平就对应着1/72秒?

        所以,以上便是机器人计时的方法。感谢你看到这里,让我们为自己的耐心与求知欲干杯!

欢迎交流

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧管道物联网远程监控解决方案

智慧管道物联网远程监控解决方案 智慧管道物联网远程监控解决方案是近年来在智能化城市建设和工业4.0背景下,针对各类管道网络进行高效、安全、精准管理的前沿科技应用。它融合了物联网技术、大数据分析、云计算以及人工智能等多种先进技术手段,实现对管…

【MATLAB源码-第171期】基于matlab的布谷鸟优化算法(COA)无人机三维路径规划,输出做短路径图和适应度曲线

操作环境: MATLAB 2022a 1、算法描述 布谷鸟优化算法(Cuckoo Optimization Algorithm, COA)是一种启发式搜索算法,其设计灵感源自于布谷鸟的独特生活习性,尤其是它们的寄生繁殖行为。该算法通过模拟布谷鸟在自然界中…

Java Spring创建bean流程及自定义构造方法示例

一、spring容器创建bean的简单步骤 1、扫描被Service,Component等注解标识的类。 2、找到类的构造方法 默认使用无参构造方法构建bean,如果类中定义了有参构造方法则会按照有参构造方法构建bean。 3、依赖注入 如果类中存在Autowired或有参的构造方法&am…

如何使用PHP和RabbitMQ实现延迟队列(方式二)?

前言 前几天写了一篇关于PHP和RabbitMQ如何通过插件实现延迟队列的功能。 今天写另外一篇不需要插件的方式,使用RabbitMQ的死信队列(Dead-Letter-Exchanges, DLX)和消息TTL(Time-To-Live)。 这种方法涉及到设置消息…

记一次 .NET某防伪验证系统 崩溃分析

一:背景 1. 讲故事 昨晚给训练营里面的一位朋友分析了一个程序崩溃的故障,因为看小伙子昨天在群里问了一天也没搞定,干脆自己亲自上阵吧,抓取的dump也是我极力推荐的用 procdump 注册 AEDebug 的方式,省去了很多沟通…

[flink] flink macm1pro 快速使用从零到一

文章目录 快速使用 快速使用 打开 https://flink.apache.org/downloads/ 下载 flink 因为书籍介绍的是 1.12版本的,为避免不必要的问题,下载相同版本 解压 tar -xzvf flink-1.11.2-bin-scala_2.11.tgz启动 flink ./bin/start-cluster.sh打开 flink web…

RTOS线程切换的过程和原理

0 前言 RTOS中最重要的一个概念就是线程,线程的按需切换能够满足RTOS的实时性要求,同时能将复杂的需求分解成一个个线程执行减轻我们开发负担。 本文从栈的角度出发,详细介绍RTOS线程切换的过程和原理。 注:本文参考的RTOS是RT-T…

<QT基础(5)>事件监听

事件监听 事件监听(Event Handling)是在程序中监视和响应发生的事件的一种机制。在Qt中,事件监听是一种常见的用于处理用户输入、系统事件以及其他类型事件的方法。通过事件监听,您可以在发生特定事件时捕获事件并执行相应的操作…

【AI】在本地 Docker 环境中搭建使用 Hugging Face 托管的 Llama 模型

目录 Hugging Face 和 LLMs 简介利用 Docker 进行 ML格式的类型请求 Llama 模型访问创建 Hugging Face 令牌设置 Docker 环境快速演示访问页面入门克隆项目构建镜像运行容器结论推荐超级课程: Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战Hugging Fa…

7、鸿蒙学习-共享包概述

HarmonyOS提供了两种共享包,HAR(Harmony Archive)静态共享包,和HSP(Harmony Shared Package)动态共享包。 HAR与HSR都是为了实现代码和资源的共享,都可以包含代码、C库、资源和配置文件&#xf…

iPhone用GPT替代Siri

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 前一段时间,因为iCloud协议的更新,我的云盘空间无法正常…

RISC-V特权架构 - 中断定义

RISC-V特权架构 - 中断定义 1 中断类型1.1 外部中断1.2 计时器中断1.3 软件中断1.4 调试中断 2 中断屏蔽3 中断等待4 中断优先级与仲裁5 中断嵌套6 异常相关寄存器 本文属于《 RISC-V指令集基础系列教程》之一,欢迎查看其它文章。 1 中断类型 RISC-V 架构定义的中…

helm 部署 Kube-Prometheus + Grafana + 钉钉告警部署 Kube-Prometheus

背景 角色IPK8S 版本容器运行时k8s-master-1172.16.16.108v1.24.1containerd://1.6.8k8s-node-1172.16.16.109v1.24.1containerd://1.6.8k8s-node-2172.16.16.110v1.24.1containerd://1.6.8 安装 kube-prometheus mkdir -p /data/yaml/kube-prometheus/prometheus &&…

CDH集群hive初始化元数据库失败

oracle数据库操作: 报错如下:命令 (Validate Hive Metastore schema (237)) 已失败 截图如下: 后台日志部分摘录: WARNING: Use “yarn jar” to launch YARN applications. SLF4J: Class path contains multiple SLF4J binding…

UE RPC 外网联机(1)

技术&#xff1a;RPC TCP通信 设计&#xff1a;大厅服务<---TCP--->房间服务<---RPC--->客户端&#xff08;Creator / Participator&#xff09; 1. PlayerController 用于RPC通信控制 2.GameMode 用于数据同步 3.类图 4. 注意 &#xff08;1&#xff09;RPC&a…

机器学习之决策树现成的模型使用

目录 须知 DecisionTreeClassifier sklearn.tree.plot_tree cost_complexity_pruning_path(X_train, y_train) CART分类树算法 基尼指数 分类树的构建思想 对于离散的数据 对于连续值 剪枝策略 剪枝是什么 剪枝的分类 预剪枝 后剪枝 后剪枝策略体现之威斯康辛州乳…

GIMP - GNU 图像处理程序 - 工具栏窗口 (Toolbox)

GIMP - GNU 图像处理程序 - 工具栏窗口 [Toolbox] 1. GNU Image Manipulation Program2. Windows -> Recently Closed Docks -> ToolboxReferences 1. GNU Image Manipulation Program 2. Windows -> Recently Closed Docks -> Toolbox References [1] Yongqiang …

软件概要设计说明书word原件(实际项目)

一、 引言 &#xff08;一&#xff09; 编写目的 &#xff08;二&#xff09; 范围 &#xff08;三&#xff09; 文档约定 &#xff08;四&#xff09; 术语 二、 项目概要 &#xff08;一&#xff09; 建设背景 &#xff08;二&#xff09; 建设目标 &#xff08;三&a…

Typora字数过多的时候造成卡顿现象如何解决?

Typora字数过多的时候造成卡顿现象如何解决&#xff1f; 点击 、切换、滚动、打字都有点卡顿&#xff0c;下面介绍三种方法&#xff0c;三种方法都可以尝试&#xff0c;建议先尝试方法一&#xff0c;效果不满意就用方法二&#xff0c;实在不行就最后一个取巧的办法。 方法1&a…

图像处理与视觉感知---期末复习重点(5)

文章目录 一、膨胀与腐蚀1.1 膨胀1.2 腐蚀 二、开操作与闭操作 一、膨胀与腐蚀 1.1 膨胀 1. 集合 A A A 被集合 B B B 膨胀&#xff0c;定义式如下。其中集合 B B B 也称为结构元素&#xff1b; ( B ^ ) z (\hat{B})z (B^)z 表示 B B B 的反射平移 z z z 后得到的新集合。…