小柴冲刺软考中级嵌入式系统设计师系列二、嵌入式系统硬件基础知识(5)定时器和计数器

越努力,越幸运!

兄弟们,要搬家到上海滴水湖了

职业生涯又迎来一次比较重要的变动

郑州->上海->上海临港

哈哈哈


flechazo

小柴冲刺软考中级嵌入式系统设计师系列总目录


一、硬件定时器

从硬件角度来看,定时器(Timer)和计数器(Counter)的概念可以互换,但它们在特定应用中的使用情况有所不同。定时器的基本结构及各组件的作用与可编程间隔计时器类似。系统时间由定时器/计数器产生的输出脉冲触发中断而产生,输出脉冲的周期称为“滴答”,表示发生了一次时钟中断。实时操作系统内核提供的硬件定时器管理功能包括:

初始化定时器:

  • 负责设置定时器相关寄存器、滴答间隔时间,以及挂接系统时钟中断处理程序。

维持相对时间和日历时间:

  • 相对时间是系统启动以来的时间,每发生一个滴答,系统的相对时间增加1。内核可以从实时时钟获取启动时刻的日历时间。

任务有限等待的计时:

  • 使用时间等待链组织需要延迟处理的对象(或任务)。例如,使用差分时间链,每产生一个滴答,链首对象的时间值减1;当减至0时,链首对象被激活,并从链中移除。

时间片轮换调度的计时:

  • 在时钟中断服务程序中更新当前运行任务的已执行时间。如果已执行时间等于任务的时间片,表示任务用完了分配的时间配额,需结束运行并转入就绪队列。

二、软件定时器

虽然硬件定时器管理已包括多种功能,实时内核仍需支持软件定时器管理功能,以便应用程序根据需要创建和使用软件定时器。

  • 软件定时器在创建时由用户提供定时值;当定时值减至0时,触发时间服务例程。用户可在此例程中完成所需操作。

  • 在中断服务处理程序中,需要对软件定时器的定时值进行减1操作。

  • 在无硬件看门狗的情况下,软件定时器可用于实现看门狗。在系统正常运行时,确保定时器不会到期;若进入定时器服务例程,则表示系统出现错误。

三、可编程间隔定时器

可编程间隔定时器:(Programmable Interval Timer,PIT)又称计数器,主要功能是事件计数和生成时间中断,以解决系统时间的控制问题。PIT 种类很多,但是它们的基本结构类似。可编程定时、计数器总体上由两部分组成:计数硬件和通信寄存器。

通信寄存器包含:

  • 控制寄存器

  • 状态寄存器

  • 计数初始值寄存器

  • 计数输出寄存器

典型的 PIT 原理如图 2-16 所示。

图片

操作系统通过这些寄存器控制计数硬件的工作方式,并读取当前状态和计数值等信息。

在操作系统内核初始化时,内核向定时计数器写入控制字和计数初值,计数硬件会按照设定方式对输入脉冲进行计数。计数器从初始值开始,每收到一次脉冲信号,计数器减1。当计数器减至0时,输出高电平或低电平(输出脉冲),然后重复计数,产生输出脉冲。

定时器产生的输出脉冲是操作系统时钟的硬件基础,接入中断控制器,定期产生时钟中断信号。操作系统利用时钟中断维护正常工作,每次时钟中断,时间计数变量增加1。

定时器中断速率:每秒产生的中断个数,每个中断称为一个滴答(Tick),表示一个时间单位。例如,定时器速率为1000个滴答/秒,则每个滴答表示1ms。定时器中断速率在控制寄存器中设定,取值范围与输入时钟频率有关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FlechazoCLF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值