|
8254 结构图:
![]()
8254 可编程定时器被 PC 用来:(1) 产生定时器滴答(timer-tick)。在 DOS 环境下,每隔 54.9ms (每秒 18.2 次) 在 IRQ0 上发出定时中断,该中断的处理程序用双子变量记录时间值,每次中断 (54.9ms) 将该双子变量加 1,该变量可记录一天的时间,故称 ”日时钟“ 。
(2) DRAM 定时刷新( 每隔 15ms 读一次内存,1 号计数器负责),但在新近的 PC 中有专门的硬件负责 DRAM 刷新,所以 1 号计数器这功能不存在了。
(3) 定时信号驱动 PC 上的喇叭(PC Speaker)。
输入/输出 频率:
输入到每个定时器频道(timer-channel)的输入脉冲是一个长期支持的 PC 标准,由内部晶体振荡器产生,固定频率为:1,193,182 Hz 。
输出频率要根据对每个定时器频道(timer-channel) 的编程(向定时器中写入锁存值(LATCH)) 。
3 个定时器/计数器 频道如下图所示:
![]()
8254 工作时钟的来历最初在对个人电脑设计时,出于成本考虑,主板上采用了当时广泛应用于电视机且价格最便宜的一个 14.31818MHz 振荡器,该振荡器的频率远高于系统其他器件所需要的频率。所以设计师采用 3 分频后得到 4.77MHz 驱动中央处理器 8088 ;采用 4 分频后得到 3.58MHz 用于驱动彩色图形适配器;最后将系统各种频率的基频 1.1931816 MHz (各种频率的最大公约数,即 12 分频) 作为系统可编程定时器芯片的输入时钟。为了保持兼容性,可编程定时器 8254 就一直采用这个频率的时钟作为输入。 |
|