欢迎光临散文网 会员登陆 & 注册

疑惑大家很久的问题!小家电是如何实现定时的?

2023-04-22 04:28 作者:李皇谛  | 我要投稿

定时器的扩展应用

如果需要实现反复定时的话,就需要在定时器上面添加一个用于保存初始值的寄存器(重装寄存器),在发生溢出中断之后,由用户程序把重装寄存器的内容复制到定时器,再去启动下一轮的倒计时。

但实际应用中,一个单片机只有一个定时器是不够的,MCU微控制器往往会允许多个定时器互联(如STM32系列,有定时器级联输出),甚至用定时器实现基础功能(如STC系列,用定时器给串口模块做时基)。

常见的扩展结构

相比于基础型定时器,其他类型的定时器还具有用于对照的影子寄存器,以STM32为例子,影子寄存器由硬件端口控制,可用于捕获时间戳或比较是否抵达目标时间;一些定时器为了满足工业设计,还集成了诸如“死区控制器”(连接电机H桥)或者“编码器接口”(比如“电子手脉”、“数字电位器”)等逻辑器件。

级联定时器

把上一级定时器在溢出后的电平变化,连接到下一级定时器的时钟信号,就构成了级联定时器。前置分频器就是一个典型的级联定时器。

特殊功能定时器

看门狗定时器(up主之前发过的)的溢出信号直接连接单片机的复位引脚。

系统心跳定时器(SysTick)连接到IP核的专用中断位。

定时器前面的分频器是级联定时器。

相比于普通定时器,计数器是将用户提供的脉冲当做定时器的时基输入。

秒表上的“启动/暂停”按钮是在输入到定时器的时钟线上面加了个开关。

可以双向计数的定时器内部结构不是单一组D触发器,而是共享同一内存的加法器和减法器集合(比如74LS190),这个视频展示的是加法器。

定时器与PWM(脉冲调宽)

脉冲调宽是一种常见的控制协议,通过比较高频数字信号的占空比得出信号指示的比率,替代模拟电压变化追踪实现大小控制。

在把输出端口拉高电平之后启动定时器,由主定时器决定什么时候重新计时,再由影子寄存器决定什么时候拉低端口电平,调整上升沿与下降沿之间的间隔,就实现了调整脉冲的高电平宽度。

定时器与编码器接口

为了如实反映电动机的转轴位置,人们会在电机转轴上添加能准确反馈位置的传感器,为了实现抗干扰设计,就采用了数字编码器。这份笔记重点讲“增量编码器”。

绝对值编码器虽然也能反映转轴位置,但无法在短时间反映经过了多少周。举个例子,你转了360°看起来回到了原点,转了1080°在绝对值编码器看来也是回到了原点,怎么反映到底转了多少周,往哪里转,就需要增量编码器。编码器的高速脉冲信号同样应用于PLC对步进电机、伺服电机的控制身上。

对增量编码器信号的捕获就需要两个步骤,一是把编码器当时基,一是根据编码器信号决定计数方向。单脉冲编码器的实现原理很简单,一个端口接定时器控制计数,一个端口改变定时器计数方向即可。难的是正交编码器,它由两个相位角相差90°的脉冲信号组成,常规逻辑难以解析方向,但正交编码器的优点是信号毛刺不会引致错误计数,这种毛刺尝尝发生在编码器原地不动但是端口连接线松动的场合。

怎么用逻辑电路手搓一套正交编码器解码器

正交编码器的信号转化为时基的逻辑电路很简单,AB两个接口连接到异或门,输出信号就是时基。

如何识别正交编码器的方向才是难点。当A口在高电平时,B口的电平决定正序计数方向(1=↑,0=↓),B口在高电平时,A口的电平决定逆序计数方向(1=↓,0=↑),由于需要同时统计2个端口的脉冲和方向,因此就需要鉴相电路,一般由独立或门、与门和D型触发器构成,最好的办法就是将其中一个端口进行移相,再由同或门检查计数方向是否为正。

疑惑大家很久的问题!小家电是如何实现定时的?的评论 (共 条)

分享到微博请遵守国家法律