可编程定时计数器8253/8254 - 8253入门

news2024/11/22 21:14:33

时钟-给设备打拍子

概述

在计算机系统中,为了使所有设备之间的通信井然有序,各通信设备间必须有统一的节奏,不能各干各的,这个节奏就被称为定时或时钟

时钟并不是计算机处理速度的衡量,而是一种使设备间相互配合而避免发生冲突的节拍。时钟只是一种时间的度量,只是一种节奏,其时间长度并不统一,各种设备都有自己的时钟,也就是有自己的工作节拍

  • 比如处理器的时钟和外部设备的时钟肯定不是一个数量级
  • 让处理器这种高速设备以外部设备低速时钟工作,处理器肯定会觉得很闲
  • 而让低速的外部设备以处理器的时钟节拍工作,外部设备也许急得不知所措

时钟信号并不是专指处理器的时钟,也并不特指IRQ0上的时钟,表达的意思仅仅是设备自己的工作节拍、频率

时钟的分类

内部时钟

内部时钟是指处理器中内部元件,如运算器、控制器的工作时序,主要用于控制、同步内部工作过程的步调

内部时钟是由晶体振荡器产生的,简称晶振,它位于主板上,其频率经过分频之后就是主板的外频,处理器和南北桥之间的通信就基于外频

Intel处理器将此外频乘以某个倍数(也称为倍频)之后便称为主频

处理器取指令、执行指令中所消耗的时钟周期,都是基于主频的。内部时钟是由处理器固件结构决定的

外部器内部元件的工作速度是最快的,所有内部时钟的时间单位粒度比较精细,通常都是纳秒(ns)级

外部时钟

外部时钟是指处理器与外部设备或外部设备之间通信采用的一种时序,比如IO接口和处理器之间在A/D转换时的工作时序、两个串口设备之间进行数据传输时也要事先同步时钟等

外部设备的速度对于处理器来说就很慢了,所以其时钟的时间单位粒度较大,一般是毫秒(ms)级或秒(s)级

如何保证运行在不同时钟节拍下的设备能够同步通信?

应以处理器的内部时钟为依据来设计外部设备的时钟,既要符合处理器内部运行时序的规定,又要满足外部设备工作时序的要求

定时计数器就是用来解决时序配合问题的

已知处理器的内部时钟信号有晶振产生,故计时精准稳定。但晶振产生的信号频率过高,因此必须将其送到定时计数器分频,这才能产生所需要的各种定时信号

外部定时

软件实现

int cycle_cnt = 90000;
while (cycle_cnt --> 0)

让处理器执行9万次空循环,通过这种延迟方式达到一定的定时作用

但这种空兜处理器的代价是白白消耗时钟周期,处理器的资源是很宝贵的

硬件实现

这一类硬件称为定时器

计时器的功能就是定时发信号。当到达了所计数的时间,计数器可以自动发一个输出信号,可以用该信号向处理器发出中断,这样处理器可以执行相应的中断处理程序。或者用该信号直接启动某些外部设备

硬件定时器是独立的,可以同处理器并行工作,所以用硬件定时器定时的好处是节省处理器时间

可编程定时计数器

常用可编程定时计数器有 Intel 8253/8254/82C54。8253用的是倒计时的方式

如何修改计数值?

正计时

每一次时钟脉冲发生时,将当前计数值加1,直到与设定的目标终止值相等时,提示时间已到,典型的例子就是闹钟

倒计时

先设定好计数器的值,每一次时钟脉冲发生时将计数值减1,直到为0时提示时间已到,典型的例子就是电风扇的定时

8253入门

在这里插入图片描述

8253结构

在8253内部有3个独立的计数器,图7-45的右侧的3个计数器,分别是计数器0计数器2,它们的端口分别是0x400x42

计数器又称为通道,每个计数器都完全相同,都是16位大小

它们是独立的,也就是这三个计数器的工作是不依赖的,可以同时工作,各干各的。原因是各个计数器都有自己的一套寄存器资源,工作时自己用自己的,互不干涉

寄存器资源包括一个16位的计数初值寄存器、一个计数器执行部件和一个输出锁存器。其中,计数器执行部件是计数器中真正进行计数工作的元器件,其本质是个减法计数器

计数器的三个引角: CLK、GATE、OUT

CLK

CLK 表示时钟输入信号,即计数器自己工作的节拍,也就是计数器自己的时钟频率

每当此引脚收到一个时钟信号,减法计数器就将计数值减1

连接到此引脚的脉冲频率最高位10MHz, 8253为2MHz

GATE

GATE表示门控输入信号,在某些工作方式下用于控制计数器是否可以开始计数,在不同工作方式下GATE的作用不同,到时候同工作方式一同介绍

OUT

OUT表示计数器输出信号。当定时工作结束,也就是计数值为0时,根据计数器的工作方式,会在OUT引脚上输出相应的信号

此信号用来通知处理器或某个设备:定时完成

这样处理器或外部设备便可以执行相应的行为动作

计数流程

计数开始之前的计数初值保存在计数初值寄存器中,计数器执行部件(减去计数器)将此初值载入后,计数器的CLK引脚每收到一个脉冲信号,计数器执行部件(减法计数器)便将计数值减1,同时将当前计数值保存在输出锁存器

当计数值减到0时,表示定时工作结束,此时将通过OUT引脚发出信号,此信号可以用来向处理器发出中断请求,也可以直接启动某个设备工作

计数器内部各个结构的功能

计数初值寄存器、计数器执行部件和输出锁存器都是16位宽度的寄存器,所有高8位和低8位都可以单独访问

计数初值寄存器

计数初值寄存器用来保存计数器的初始值,它是16位宽度,对8253初始化时写入的计数初始值就保存在计数计数初值寄存器

它的作用是为计数器执行部件准备初始计数值,之后的计数过程与它无关。当计数器选择了某种重复计数的工作方式后,比如工作方式2和工作方式3,还需要将此计数初值重新装载到计数器执行部件中

计数器执行部件是计数器中真正“计数”的部件,计数的工作是由计数器执行部件完成的,所以它才是真正实际的计数器

减法计数器

8283是个倒计时计数器,原因是计数器执行部件是个16位的减法计数器,它从初值寄存器中拿到起始值,载入到自己的寄存器后便开始递减计数(注意:计数过程中不断变化的值称为当前计数值,它保存在执行部件自己的寄存器中,初值寄存器中的值不受影响)

输出锁存器

输出锁存器也称为当前计数值锁存器,用于把当前减去计数器中的计数值保存下来,其目的就是为了让外界可以随时获取当前计数器

计数器中的计数值是不断变化的,处理器无法直接从计数器中获取当前计数值

原因是这样的

  • 计数器的使命就是通过计数的方式实现定时功能,必须要求精准,所有绝不能为了获取计数值而停止计数

为了获取任意时刻的计数值,8253只有将它送到输出寄存器,此锁存器起到暂存寄存器的作用。这样处理器便能从输出锁存器中获取瞬时计数值

8253 计数器

在这里插入图片描述

计数器0的作用是产生时钟信号,这个时钟是指连接到主片IRQ0引脚上的那个时钟,也就是计数器0决定时钟中断信号的发生频率

参考资料

  • 可编程定时计数器8253/8254
  • 8253(8254)计时/计数器简介

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从需求是如何最终抽象成最基本的传参入参

第一层:出参和入参 用通俗的话讲,就是给客户提供服务的一种方式,需要包含入参和出参 。入口参数就是程序执行时会调用的参数,出口参数就是程序执行完会返回的参数。入参的值是被调函数需要, 出参的值是主调函数需要的…

Suno: AI音乐创作的新时代

名人说:一点浩然气,千里快哉风。 ——苏轼 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、什么是Suno?1、Suno2、应用场景 二、如何使用Suno制作音乐?步骤1:注册…

二级建造师(建筑工程专业)考试题库,高效备考!!!

16.在施工合同履行期间发生的变更事项中,属于工程变更的是()。 A.质量要求变更 B.分包单位变更 C.合同价款变更 D.相关法规变更 答案:A 解析:工程变更一般是指在工程施工过程中,根据合同约定对施工的…

HarmonyOS Next开发学习手册——单选框 (Radio)

Radio是单选框组件,通常用于提供相应的用户交互选择项,同一组的Radio中只有一个可以被选中。具体用法请参考 Radio 。 创建单选框 Radio通过调用接口来创建,接口调用形式如下: Radio(options: {value: string, group: string})…

Python | 计算位涡平流项

写在前面 最近忙着复习、考试…都没怎么空敲代码,还得再准备一周考试。。。等考完试再慢慢更新了,今天先来浅更一个简单但是使用的python code 在做动力机制分析时,我们常常需要借助收支方程来诊断不同过程的贡献,其中最常见的一…

下属无执行力,领导无能为力?用好这3大法则,打造一流行动力

下属无执行力,领导无能为力?用好这3大法则,打造一流行动力 第一个:漏斗法则 在沟通这个领域,有一个漏斗法则,意思就是指:如果你脑袋里面想表达的是100%,那你说出口的会只有80%&…

【动态规划】139. 单词拆分

139. 单词拆分 难度:中等 力扣地址:https://leetcode.cn/problems/word-break/description/ 问题描述 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意:不要求字…

App托管服务分发平台 index-uplog.php 文件上传致RCE漏洞复现

0x01 产品简介 App托管服务分发平台是一个为开发者提供全面、高效、安全的应用程序托管、分发和推广服务的平台。开发者可以将自己开发的应用程序上传到平台上,平台会对上传的应用程序进行审核,确保应用的质量和安全性。平台会根据开发者的要求,将应用分发到不同的应用市场…

【鸿蒙学习笔记】位置设置

官方文档:位置设置 目录标题 align:子元素的对齐方式direction:官方文档没懂,看图理解吧 align:子元素的对齐方式 Stack() {Text(TopStart)}.width(90%).height(50).backgroundColor(0xFFE4C4).align(Alignment.TopS…

C++学习全教程(Day2)

一、数组 在程序中为了处理方便,常常需要把具有相同类型的数据对象按有序的形式排列起来,形成“一组”数据,这就是“数组”(array) 数组中的数据,在内存中是连续存放的,每个元素占据相同大小的空间,就像排…

matrixone集群搭建、启停、高可用扩缩容和连接数据库

1. 部署 Kubernetes 集群 由于 MatrixOne 的分布式部署依赖于 Kubernetes 集群,因此我们需要一个 Kubernetes 集群。本篇文章将指导你通过使用 Kuboard-Spray 的方式搭建一个 Kubernetes 集群。 准备集群环境 对于集群环境,需要做如下准备&#xff1a…

25 防火墙基础操作

1 防火墙进入WEB页面操作 华三防火墙的默认用户:admin/密码:admin 将IP地址改在同一网段的信息 在防火墙的管理地址 GE/0/0/1:192.168.0.1 主机的地址是:192.168.0.101 思考一下为什么Ping不通 security-zone name Management import interface GigabitEthernet1/…

Git安装与使用及整合IDEA使用的详细教程

1. 版本控制软件介绍 版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理…

2 z变换与离散时间傅里叶变换

目录 序列的z变换 z变换的定义 常用典型序列的z变换 序列类型与z变换的收敛域 序列的分类 X(z)的极点与收敛域 单边序列 双边序列 z变换的性质 线性 序列移位 单边序列 双边序列 z域尺度变换 序列乘以n 复共轭序列的z变换 初值定理 终值定理 时域卷积定理 …

Suno体验记录

五月初的时候初体验了一下Suno v3,当时整体觉得还不错,操作简单,生成快,歌曲也算好听。当时就截止到这里了。最近发现有了一些新的更新,觉得可以整理记录一下。 1. 简单介绍 免费用户一天50积分(不累计&a…

python 压缩数据

requests 是 Python 中一个非常流行的 HTTP 库,用于发送各种 HTTP 请求。下面是一个使用 requests 库发送简单 GET 请求和 POST 请求的示例: 首先,确保你已经安装了 requests 库。如果还没有安装,可以使用 pip 进行安装&#xff…

在线教育项目(一):如何防止一个账号多个地方登陆

使用jwt做验证,使用账号作为redis中的key,登录的时候生成token放到redis中,每次申请资源的时候去看token 有没有变,因为token每次登录都会去覆盖,只要第二次登录token就不一样了

【接口自动化测试】第四节.实现项目核心业务的单接口自动化测试

文章目录 前言一、登录单接口自动化测试 1.1 登录单接口文档信息 1.2 登录成功 1.3 登录失败(用户名为空)二、数据驱动的实现 2.1 json文件实现数据驱动总结 前言 一、登录单接口自动化测试 1.1 登录单接口文档信息 需求&#xff1…

实验6 形态学图像处理

1. 实验目的 ①掌握数字图像处理中,形态学方法的基本思想; ②掌握膨胀、腐蚀、开运算、闭运算等形态学基本运算方法; ③能够利用形态学基本运算方法,编程实现图像去噪,边界提取等功能。 2. 实验内容 ①调用Matlab /…

数据资产铸就市场竞争优势:运用先进的数据分析技术,精准把握市场脉搏,构建独特的竞争优势,助力企业实现市场领先地位,赢得持续成功

目录 一、引言 二、数据资产的重要性 三、先进数据分析技术的应用 1、大数据分析技术 2、人工智能与机器学习 3、数据可视化技术 四、精准把握市场脉搏 1、深入了解客户需求 2、预测市场趋势 3、优化资源配置 五、构建独特的竞争优势 1、定制化产品和服务 2、精准营…