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

这篇具有很好参考价值的文章主要介绍了机器人是怎么计时的(通用定时器 - 时基单元)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一,引言

二,机器人的“大脑”

三,时基单元介绍

1,定时器框图

2,时基单元

(1)预分频器

(2)CNT计数器

(3)自动重装载寄存器

四,结尾


一,引言

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

二,机器人的“大脑”

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

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

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

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

三,时基单元介绍

1,定时器框图

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

机器人是怎么计时的(通用定时器 - 时基单元),STM32-定时器,机器人,stm32,单片机,学习方法,c语言,arm开发,fpga开发

图1  定时器框图

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

2,时基单元

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

机器人是怎么计时的(通用定时器 - 时基单元),STM32-定时器,机器人,stm32,单片机,学习方法,c语言,arm开发,fpga开发

图2 时基单元

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

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

(1)预分频器

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

机器人是怎么计时的(通用定时器 - 时基单元),STM32-定时器,机器人,stm32,单片机,学习方法,c语言,arm开发,fpga开发

图3 预分频器时序图

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

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

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

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

(2)CNT计数器

        CNT计数器时序图如图4:

机器人是怎么计时的(通用定时器 - 时基单元),STM32-定时器,机器人,stm32,单片机,学习方法,c语言,arm开发,fpga开发

图4 计数器时序图

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

(3)自动重装载寄存器

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

机器人是怎么计时的(通用定时器 - 时基单元),STM32-定时器,机器人,stm32,单片机,学习方法,c语言,arm开发,fpga开发

机器人是怎么计时的(通用定时器 - 时基单元),STM32-定时器,机器人,stm32,单片机,学习方法,c语言,arm开发,fpga开发

图5 自动重装载寄存器

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

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

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

四,结尾

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

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

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

欢迎交流文章来源地址https://www.toymoban.com/news/detail-851255.html

到了这里,关于机器人是怎么计时的(通用定时器 - 时基单元)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SanctuaryAI推出Phoenix: 专为工作而设计的人形通用机器人

    唯一入选《时代》杂志 2023 年最佳发明的通用机器人。 称机器人自主做家务的速度和 灵活度 已达到了和人类相当的水平。 官网链接:https://sanctuary.ai/ Sanctuary AI 由其开创性的 人工智能控制系统 Carbon™ 提供支持,在宣布其技术首次商业部署后不到两个月,Sanctuary AI 公布了其

    2024年03月09日
    浏览(30)
  • 钉钉自定义机器人定时发送消息(超详细)

            因为工作需要,需要在钉钉群里添加一个可以每天定时发送消息的机器人,我找了很多网页查看,发现资料并不是很全,现在做出来了,就想发表出来,看看能不能帮到大家。接下来就进入正题。         详细步骤可以参考:钉钉群设置创建一个机器人-CSDN博客  

    2024年03月11日
    浏览(75)
  • 如何使用企业微信群机器人定时发送消息

    每天早上8点钟通过企业微信群机器人发消息提醒大家打卡。在Aboter中该如何实现呢? 首先创建一个IPaaS流程,触发条件组件编辑区选择【定时触发】类型。编辑区进行如下设置: 拖动左侧【应用连接器 即时通讯 企业微信群机器人】组件到执行流程块中,并配置好相关参数。

    2024年02月06日
    浏览(122)
  • 如何实现企微群机器人定时发送消息提醒?

    一、首先添加群机器人 二、创建完成的机器人是这样的,会有一个唯一标识:Webhook地址 三、设置 机器人发消息文本 以下是用curl工具往群组推送文本消息的示例(注意要将url替换成你的机器人webhook地址,content必须是utf8编码): 具体可以详见 机器人配置说明 机器人搞定了

    2024年02月09日
    浏览(34)
  • 通用操作接口UMI:如何快速简单地给机器人提供更多学习数据?

    论文标题: Universal Manipulation Interface: In-The-Wild Robot Teaching Without In-The-Wild Robots 论文作者: Cheng Chi , Zhenjia Xu , Chuer Pan, Eric Cousineau, Benjamin Burchfiel, Siyuan Feng, Russ Tedrake, Shuran Song 项目地址: https://umi-gripper.github.io/ 导读: 斯坦福团队提出通用操纵接口(UMI)通用框架,可以直接

    2024年04月12日
    浏览(27)
  • qt学习:QTimer定时器+重复计时+单次计时

    在指定的间隔时间会发送出一个timeout信号,关联对应的槽函数 #includeQTimer

    2024年01月19日
    浏览(50)
  • 企业微信群:机器人定时提醒功能数据库配置化

    目录 企微群机器人使用 APScheduler概要使用说明 cron方式设置 场景设置案例  表结构 代码 场景:对于周期性重复需要做的事情,每次都需要人工去提醒,容易忘记,而企业微信群可以添加群机器人,群机器人提供接口能力,按照接口格式说明把消息内容发到群里以及@相关人,

    2024年02月15日
    浏览(28)
  • 工作随记-Java利用企业微信群机器人定时发送消息

    hi,大家好,我是恰恰 阅读本文需要2分钟~ 最近利用企业微信群机器人做的需求主要有 1.返奖率通知与告警: 抽奖箱能抽出垃圾也能抽出大货,每隔5分钟查询一下这个返奖率,如果用户频繁抽出大货,这个抽奖箱的返奖率已经高出了阈值,那么我们就将其下架。 2.自动发送导

    2024年02月09日
    浏览(38)
  • Python实现飞书机器人定时发送文本、图片等群消息

    工作中会经常遇到监控告警相关问题,监控和告警的目的是要在事中及时发现问题并定位系统问题,那么当系统或平台出现问题了,如何及时暴露这些问题给对应的项目开发人员呢? 本文记录了在Python项目中利用飞书的自定义机器人webhook向飞书群推送文本及图片消息~ 飞书群

    2024年01月25日
    浏览(34)
  • 14、计时器、定时器设计与应用

    掌握同步四位二进制计数器 74LS161 的工作原理和设计方法 掌握时钟/定时器的工作原理与设计方法 任务 1:采用行为描述设计同步四位二进制计数器 74LS161 任务 2:基于 74LS161 设计时钟应用 1.创建工程并创建 Verilog 文件 建立 HDL 类型的工程 My74LS161,创建 Verilog 文件 My74LS161,

    2024年02月03日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包