第8章 PCH中的常规接口.

Slides:



Advertisements
Similar presentations
第1章第1章 PC/AT 系統 1 Chapter 1 Chapter 1 PC/AT 系統 001.
Advertisements

微型计算机原理及应用.
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
微型计算机技术 教 学 指 导(七) 太原广播电视大学 郭建勇.
第8章 机床操作 主讲:臧红彬 博士.
第10章 DOS功能调用与BIOS中断调用.
第十二章 DMA控制器 12.1 概述 A DMA控制器 A的应用.
半导体存储器 第四章 半导体存储器.
第一章 计算机基础知识 第一节 计算机概述 一、计算机的基本组成和工作原理 二、有关术语 三、计算机发展简史 四、微型计算机概述
第5章 输入输出与接口技术.
第五章 总线 及其形成 本节课之前,大家学习了:
第七章 单片机存储器的扩展.
输入/输出及接口 输入/输出的传送方式 中断技术 80x86/Pentium中断系统 8259A可编程中断控制器 中断程序设计
第 6 章 I/O 接口和总线 中国科学技术大学 何克东.
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
第7章 常用数字接口电路.
4.1 汇编语言 4.2 顺序结构程序 4.3 分支程序设计 4.4 循环程序设计 4.5 子程序设计
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
3.3.5 程序控制指令 控制转移指令分为: 转移指令 循环控制指令 调用和返回指令 中断指令.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
第7章 中断与异常.
第三章 寻址方式与指令系统 3.1 寻址方式 一条指令通常由两大部分构成: 操作码 操作数
第6章 DMA传输 6.1 DMA传输原理 6.2 DMA控制器8237A A的编程使用 欢迎辞.
第7章 并行接口 7.1 简单并行接口 7.2 可编程并行接口8255A 7.3 键盘接口 7.4 LED显示器接口.
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
第六章 存贮器 6.1 存储器概述 6.2 随机存取存储器(RAM) 6.3 只读存储器(ROM) 6.4 CPU与存储器的连接.
第5章 存储系统.
输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理.
微型机系统与接口技术复习.
第七章 MCS-51系统扩展 一、程序存储器扩展
第5章 输入输出与接口技术.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
实验八 D / A、A / D转换器 一、实验目的 1、了解D / A和A / D转换器的基本工作原理和基本结构。
微机原理及应用 主讲:郑海春.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
微机原理与接口技术 第9章 计时/计数接口.
汇编语言程序设计课程设计 第二次实验 DEBUG基本命令与算术运算指令
单片机原理及应用 ——基于Proteus与Keil C 哈工大出版社
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第7章 微型机接口技术 可编程定时/计数器 可编程并行接口 串行接口与串行通信(概念) DMA控制器接口(不做要求) 模拟量输入/输出接口.
微型机系统与接口技术自学部分 只作扩展知识用 本电子课件包含2011版第3, 6, 7, 8章自学部分 东南大学计算机科学与工程学院.
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
1.3 微型计算机的结构和工作原理.
第 13 章 中断系统.
第二章 模拟量输出通道 本章要点 1.模拟量输出通道的结构组成与模板通用性; 2.8位D/A转换器DAC0832的原理组成及其接口电路
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
第 12 章 8237A DMA控制器及其应用 中国科学技术大学 何克东.
第6章作业 3、 需要128块芯片 片内译码地址线:10条 片选择地址线:至少4条
第7章 I/O接口和总线 7.1 I/O接口 7.2 总线.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第五章:输入输出基本技术 主讲教师:范新民.
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
习题3 1、 分别说明下列指令的原操作数和目的操作数各采用什么寻址方式。 设定如下: ①立即寻址 ② ① ②寄存器寻址
可编程定时计数器.
CPU中的专用寄存器(SFR) 一、累加器Acc 二、通用寄存器B 三、程序计数器PC 四、堆栈指针SP 五、数据指针DPTR
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日.
微型计算机技术 教 学 指 导(五) 太原广播电视大学 郭建勇.
第五章 输入/输出系统 本章讨论: 接口的基本概念 总线的基本概念 中断方式及其接口组成 中断方式及其接口组成 DMA方式及其接口组成
2. MCS-51单片机的组成及结构分析 2.1 MCS-51单片机的内部结构及结构特点
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月06日.
第二章 8086系统结构 /8086的存储器组织 的系统配置及引脚功能 CPU时序
微机原理与接口技术 第5章 汇编语言程序设计 西安邮电大学计算机学院 王 钰.
第三章 半导体存储器及其接口 第一节 概述 第二节 半导体存储器 第三节 半导体存储器与CPU接口 一、存储器的分类
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
第8章 并行接口芯片 并行接口一般具有两个或两个以上的8位I/O接口。各个口的工作方式可由程序分别确定或改变,使用灵活,便于和各种外部设备连接。因此,又称可编程的外部接口(PPI) 目前各主要微处理器厂商都有自己的PPI产品,但它们的功能基本类似.
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
微型计算机系统.
Presentation transcript:

第8章 PCH中的常规接口

8.1 定时与计数技术 基本概念 1.定时 定义:提供的时间基准。 分类:内部定时、外部定时。 2.计数 定时与计数本质上是一致的。 计数的信号随机,定时的信号具有周期性。 3.应用 分时系统切换任务的时间基准、测速、计数

定时方法 1.软件定时 通过软件指令周期方法定时,如执行循环程序。 增加CPU负担,通用性差,一般用于短延时。 2.不可编程硬件定时 采用中小规模IC构成。 不增加CPU负担,成本低,定时值不可改变。 3.可编程硬件定时 采用可编程计数器完成,软件可改变计数值。 可编程定时/计数器:实质上定时和计数本质上都是脉冲计数器,定时计的是内部基准时钟源产生的脉冲,计数是计外部脉冲。

8.1.1 8254-2基本功能 3个独立的16位定时/计数器(T/C); 每个T/C功能: 可按二、十进制(BCD)计数; 有6种不同的工作方式; 最高频率10MHz;(82801BA中的为14.31818MHz) 有读回状态功能。(8253没有)

8.1.2 8254-2结构与引脚 1.内部逻辑 总线缓冲器[8位R/W]:写工作方式、计数初值、当前计数值

注意:GATE信号的作用与应用,重写CR的效果。 2.计数器内部逻辑 16位当前计数值锁存器OL 16位减1计数器CE 16位计数初值寄存器CR OUT (减1至0时) MSB LSB 锁存后读出当前值 装入/读出初值 & CLK GATE CR:16位 CPU写入[两次]、清零 CE:16位 通过CR写入、计数、输出 OL:16位 先锁存再读出 状态REG:8位 先锁存再读出 注意:GATE信号的作用与应用,重写CR的效果。 计数初值:N=fCLKi/fOUTi,在不同工作方式及定时/计数时的应用不同。

3.外部引脚 (1)译码:CS#与A1A0: (2)读/写:RD#、WR#;

4.CPU操作功能及命令 I/O端口地址:8254提供四个端口(使用A1A0); 命令:初始化—设置工作方式、设置计数器初值 操 作—重写计数器初值、取状态命令 状态:当前计数值、工作方式及当前状态。 I/O端口操作冲突时解决方法: 写工作方式与写读取状态命令采用特征位方法; 读取当前计数值或读取状态采取时序方法。 8254命令关系表:

CS# 时序 RD# WR# A1 A0 操 作 特征位 D7D6 0 1 0 0 0 计数初值写入0#计数器 ** 无 0 1 0 0 1 操 作 特征位 时序 D7D6 0 1 0 0 0 计数初值写入0#计数器 ** 无 0 1 0 0 1 计数初值写入1#计数器 0 1 0 1 0 计数初值写入2#计数器 0 1 0 1 1 向控制字寄存器写控制字 00~10 写“读计数值/状态”命令 11 0 0 1 0 0 读0#计数器当前计数值 前一命令A1A0=11时, D7D6为11且D5为0或D7D6为非11且D5D4为00时,读取的是当前计数值; D7D6为11且D4为0读取的是状态。 读0#计数器状态 0 0 1 0 1 读1#计数器当前计数值 读1#计数器状态 0 0 1 1 0 读2#计数器当前计数值 读2#计数器状态 0 0 1 1 1 无操作 1 * * * * 禁止访问 0 1 1 * * RD# WR# A1 A0

8.1.3 8254-2命令及编程 1.工作方式控制字(A1A0=11) 特征位:D7D6=00~10、D5D4=01~11; D7D6选择计数器:00-T/C0;01-T/C1;10-T/C2 D5D4选择读/写方式:01-只写低字节;10-只写高字节;11-先写低字节再写高字节(16位) D3D2D1选择工作方式:000~101六种工作方式。 D0选择计数进制:0-二进制方式;1-BCD码方式。 例:MOV AL,01110100B ;T/C1,先低后高字节 OUT 43H,AL ;方式2,二进制方式

(1)不同通道的计数初值写到不同地址中; A1A0 定时/计数器 0 0 T/C0 0 1 T/C1 1 0 T/C2 2.计数初值 (1)不同通道的计数初值写到不同地址中; A1A0 定时/计数器 0 0 T/C0 0 1 T/C1 1 0 T/C2 (2)每次写入一个字节; (3)根据控制字定义,决定高、低字节写入方法。 (4)初始值的范围是: 二进制为65536(0000H)、65535(FFFFH)~1(0001H)。 十进制为10000(0000H)、9999(9999H)~1(0001H)。

(2)计数初值的设置与T/C的CLK密切相关; (3)计数初值的设置方法由控制字决定。 (1)写工作方式控制字 (2)设置计数初值 例: MOV AL, 01110101B; T/C1,先低后高字节,方式2,BCD OUT 43H, AL MOV AX, 2000H ; 计数初值为2000 OUT 41H, AL ; MOV AL, AH OUT 41H,AL ; MOV AL,00010110B; T/C0,只低字节,方式3,二进制 OUT 43H,AL OUT 40H,50H ; 计数初值为50H(80) 注意:(1)每个使用的T/C均要初始化; (2)计数初值的设置与T/C的CLK密切相关; (3)计数初值的设置方法由控制字决定。

4.T/C数据读取 (1)读取当前计数值方法1 工作方式控制字(A1A0=11)D7D6=00~01,D5D4=00 (a)锁存当前计数值或禁止计数 (b)读取当前计数值 例:MOV AL,01000101B; T/C1,锁存 ;先低后高字节,方式2,BCD OUT 43H,AL IN AL,41H MOV AH,AL XCHG AH,AL ;AX为T/C1当前计数值

(2)读取当前计数值方法2—使用读回命令(A1A0=11) 特征位:D7D6=11。(A1A0=11) 功能选择:锁存状态-D5D4=10; 锁存计数值-D5D4=01; 锁存状态与计数值- D5D4=00。(先读状态再读计数值) 计数器选择:D1=1—T/C0,D2=1—T/C1,D3=1—T/C2 特点:控制字同时只能锁存单个通道, 读回命令可同时锁存多个通道。

例: MOV AL,11010100B ; T/C1,锁存计数值 OUT 43H,AL IN AL,41H; MOV AH,AL XCHG AH,AL ;AX为当前计数值 MOV AL,11011010B ; T/C0、T/C2锁存计数值 IN AL,40H; MOV AH,AL IN AL,40H XCHG AH,AL ;AX为T/C0当前计数值 IN AL,42H; IN AL,42H XCHG AH,AL ;AX为T/C2当前计数值

(3)读取计数器当前状态—使用读回命令 读出的状态字格式: 例:MOV AL,11100100B ; T/C1,锁存状态值 OUT 43H,AL IN AL,41H ;若AL=00110101,表示T/C1 ; 为方式2,BCD码,先低后高 ;读/写,当前OUT为低电平 MOV AL,11100010B ;T/C0,锁存状态值 IN AL,40H ;若AL=00010110,表示T/C0 ;为方式3,二进制码,只有低 ;字节,当前OUT为低电平

8.1.4 8254-2工作方式 1.方式0—计数到0时中断 特点:一次计数; GATE高允许、下降暂停、低禁止、上升继续计数; 演示 1.方式0—计数到0时中断 特点:一次计数; GATE高允许、下降暂停、低禁止、上升继续计数; WR#写[重写]后下一脉冲下降沿重新计数; OUT在控制字或计数初值写完时变低、计数值为0时变高(N+1个时钟的低)。

GATE上升重新、高与下降和低不影响计数; WR#写[重写]在下次GATE从0到1的跳变时有效; 2.方式1—硬件可重触发单稳 演示 特点:一次计数; GATE上升重新、高与下降和低不影响计数; WR#写[重写]在下次GATE从0到1的跳变时有效; OUT在写入控制字后变高,开始计数时变低、计数值为0时变高(N个时钟周期的低)。

GATE上升重新、高允许、下降停止、低禁止计数; WR#写[重写]在下次计数时有效; 3.方式2—频率发生器 演示 特点:多次计数; GATE上升重新、高允许、下降停止、低禁止计数; WR#写[重写]在下次计数时有效; OUT在计数值为1时输出宽度为1个CLK的负脉冲(周期为N个时钟周期,频率为1/N的时钟频率,实际上是对CLK的N分频)。

4.方式3—方波发生器 演示 特点:多次计数; GATE上升重新、高允许、下降停止、低禁止计数; WR#写[重写]在下次计数时有效; OUT在写入控制字后变高,计数开始后,采用每脉冲计数减2: 当计数初值为偶数N时,计数到0时反向。脉冲宽度T×N/2,方波周期为T×N 。 当计数初值为奇数N时,OUT变高的第一CLK减1后装入 CE,其余每个脉冲计数减2。OUT正脉冲时,计数到0的下一个CLK时OUT反向OUT正脉冲宽度为T×(N+1)/2 ;OUT负脉冲时在计数到0时反向。负脉冲宽度为T×(N-1)/2,方波周期仍然是T×N。

GATE上升重新、高允许、下降停止、低禁止计数; WR#写[重写]会立即重新计数(软件触发); 5.方式4—软件触发选通 演示 特点:一次计数; GATE上升重新、高允许、下降停止、低禁止计数; WR#写[重写]会立即重新计数(软件触发); OUT在写入控制字及计数当中为高电平,计数值为0时输出1个CLK的负脉冲。

GATE上升重新、高与下降和低不影响计数; WR#写[重写]在下次GATE从0到1的跳变时有效; 6.方式5—硬件触发选通 演示 特点:一次计数; GATE上升重新、高与下降和低不影响计数; WR#写[重写]在下次GATE从0到1的跳变时有效; OUT在计数值为0时输出1个CLK的负脉冲。

  方式0 方式1 方式2 方式3 方式4 方式5 OUT输出状态 写入控制字后变0,计数结束变1,并维持至重写控制字或计数初值 写入控制字后变1,GATE上升沿触发变0,开始计数,计数结束变1 写入控制字后变1,计数到1变0,维持一个Tclk变1 写入控制字后变1,装入初值且GATE=1则OUT变1,计数到变0,重装初值继续计数,计数到则反向 写入控制字后变1,计数结束变0,维持一个Tclk变1 写入控制字后变1,GATE上升沿触发开始计数,计数结束输出一个CLK的负脉冲 初值自动重装 无 计数到0重装 根据初值奇偶分别重装; 计数过程中改变初值 立即有效 GATE触发后有效 计数到1或GATE触发后有效 计数结束或GATE触发后有效 GATE 禁止计数 无影响 下降沿 暂停计数 停止计数 上升沿 继续计数 从初值开始重新计数 1 允许计数

8.1.5 8254-2应用举例 1.分频器设计 用8254(地址40H~43H)将5MHz的脉冲变为1Hz的脉冲。 初值=fCLK/fOUT=5×106>65536,怎么办? 需要2个T/C级联,T/C0采用方式3产生连续分频方波,做T/C1的CLK,T/C1 采用方式2产生1Hz脉冲。两个T/C的GATE统一控制。 MOV AL,00110111B;T/C0 OUT 43H,AL MOV AX, 5000H OUT 40H,AL MOV AL, AH MOV AL,01110101B;T/C1 MOV AX, 1000H OUT 41H,AL CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2 D0~D7 A1 A0 RD# WR# CS# 5MHz 1Hz

2.占空比4:9的方波发生器 8254的CLK0的时钟频率是8KHz,问 1)T/C0最大定时时间是多少? 2)要求8254端口地址为90H、92H、94H和96H,请使用74LS138译码器加简单门电路完成地址连线。 3)现在要求使用该8254产生周期为9秒,占空比为4:9的方波,请在上面的电路图中完成电路,并编写初始化程序。 答: 1)TCLK0=1/fCLK0=1/8000=0.125ms 最大定时时间=65536×0.25ms=8.192秒 或:fCLK0/fOUT=65536=>Tmax=1/fOUT=65536/ fclk0 =65536/8000=8.192秒

2) 3) D7~D0 IOW IOR Y2# A1 A2 A7 A5 A4 A3 ≥1 A8 A9 A6 A0 CLK1 GATE1 WR# RD# 8254 CS# C B A 74LS138 G1 G2A# G2B# CLK0 GATE0 OUT0 OUT1 8KHz 1Hz 5V 占空比4:9,周期9秒的方波 3)

MOV AL,00110111B;T/C0 OUT 96H,AL MOV AX, 8000H OUT 90H,AL MOV AL, AH MOV AL,01110111B;T/C1 MOV AX, 9H OUT 92H,AL

3.包装流水线控制 某产品的包装流水线中,一个包装箱能装24罐饮料。装箱时希望流水线上每通过24罐饮料,流水线要停4秒以等待包装箱封口,然后继续通过下一箱的24罐。流水线就是这样周而复始的运作。试利用一片8254来完成流水线控制中的定时和计数功能。假设8254的端口地址为8CH~8FH,采用的时钟频率是2KHz。

思路:用8254的计数通道1作为计数器,用于24个罐的计数;计数通道2作为定时器,定时为4S。当计数通道1的OUT脚出现0到1的跳变的时候,将启动计数通道2开始定时,而计数通道2定时阶段将控制计数通道1停止计数,只有其定时结束并停止定时阶段才可再次启动计数通道1开始计数。 计数通道1工作在方式2,计数初值24 计数通道2工作在方式1,计数初值8000 CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2 D0~D7 A1 A0 RD WR CS 流水线信号 fCLK 控制流水线停和运行的信号

;初始化程序 ;计数通道1初始化 MOV AL, 01010100B OUT 8FH, AL MOV AL, 24 OUT 8DH, AL ;初始化计数通道2 MOV AL, 10110010B OUT 8F, AL MOV AX, 8000 OUT 8EH, AL MOV AL, AH

8.1.6 PCH中的8254模块 来自主板上74LS138的Y2,地址范围是40H~5FH,加上A1A0两根地址线,组成8254的端口地址是40H、41H、42H、43H。 PC系列机定时系统结构框图 返回1 返回2

1. 计数器0—系统定时器 工作方式:3方式,计数初值:65536。 1) 系统定时器 OUT0连接到8259A的IRQ0(中断类型号为8)上。 fOUT0=1.1931816MHz/65536=18.2Hz, 即:每秒产生18.2次中断用于日时钟计时。 应用:系统BIOS的INT 8H用作日时钟计时; INT 8H调用INT 1CH作为用户定时中断接口。 2) 软盘驱动器马达自动延迟控制

2. 计数器1—动态存储器定时刷新控制 工作方式:2方式,计数初值:18。 连接到8237的DREQ0上,定时产生负脉冲。 脉冲宽度=1/ 1.1931816MHz=838ns, 脉冲周期=18/1.1931816MHz=15.08μs, 即:每隔15.08μs产生一个脉冲用于刷新。

工作方式:3方式,计数初值:由调用程序控制。 3. 计数器2—扬声器音频发生器 工作方式:3方式,计数初值:由调用程序控制。 与8255的PB口D1信号“与”后连接到扬声器上,控制扬声器发声频率及时长。 8255控制发声:8254的OUT2=1,CPU控制8255的PB口的D1位的电平实现; 8254控制发声:8255的PB口的D1位为高电平,控制8254的T/C2的OUT2实现。 通过改变OUT2的方波信号频率,就可以改变扬声器发声的音调。 CR预置值=CLK2脉冲频率/发声的频率 转图

;功能:按照指定的时间间隔发896Hz声音 ;调用:CX=指定时间 ;返回:无 BEEP PROC FAR IN AL,61H; 读8255PB口的当前值 MOV AH,AL PUSH AX MOV AL,10110110B OUT 43H,AL MOV AX,0533H;=1.1931816MHz/896Hz OUT 42H,AL MOV AL,AH POP AX

OR AL,03H ;置61H端口D0、D1均为1, ;打开扬声器 OUT 61H,AL NOP L1:LOOP L1 ;延迟 AND AL,0FDH ;置61H端口D1为0, ;封锁OUT2输出 MOV AL,AH RET BEEP ENDP 转图

8.2 DMA操作 8.2.1 DMA技术概述 1. 数据传送的控制 1)数据的来源; 2)数据的去处; ◆ 数据传送涉及的3个问题 1)数据的来源; 2)数据的去处; 3)数据本身以及如何控制数据的传送。

◆ DMA方式控制的数据传送

 硬盘和软盘I/O;  快速通信通道I/O;  多处理机和多程序数据块传送;  在图像处理中,对CRT屏幕送数据; ◆ DMA传送方式通常用来高速传送大批量的数据块。如:  硬盘和软盘I/O;  快速通信通道I/O;  多处理机和多程序数据块传送;  在图像处理中,对CRT屏幕送数据;  快速数据采集;  DRAM的刷新操作。

(1)存储单元传送:存储器→存储器。 (2)DMA读传送:存储器→I/O设备。 (3)DMA写传送:I/O设备→存储器。

2. DMA传送的工作过程 1)I/O设备向DMAC发出DMA请求; 2) DMAC向CPU发出总线请求; 3)CPU在执行完当前指令的当前的总线周期后,向DMAC发出总线响应信号; 4)CPU脱离对系统总线的控制,由DMAC接管对系统总线的控制;

5)DMAC向I/O设备发出的DMA应答信号; 7)完成设定的字节数据传送,CPU恢复对系统总线的控制。

3. DMA传送的方式 1) DMA操作类型 数据传送。数据传送是把源地址的数据传送到目的地址中去。 数据检验。当数据传送完毕之后,可以进行校验操作。校验操作并不进行数据传送,只进行数据校验。但操作过程仍然要通过DMAC向CPU提出申请,进入DMA周期。 数据检索。数据检索操作并不进行数据传送,只是对在指定的内存区内查找某个关键字节或某几个关键数据位是否存在,如果查找到了,就停止检索操作。

2) DMA操作方式 单字节操作方式。每次进行DMA操作只操作一个字节 。 连续操作方式。只要DMA操作开始,DMAC始终占用总线,直到DMA操作完成,才把总线控制权交还CPU。 请求操作方式。如果有DMA请求,则DMAC就占用总线;当DMA请求无效,或DMA操作完成,或由外部传来过程结束信号(EOP)时,DMAC都会释放总线。 级联传送方式。

4. DMA控制器在系统中的两种工作状态 1)主动态 在DMAC获得总线控制权之后,DMAC取代CPU而成为系统的主控者,接管和控制系统总线(数据总线、地址总线和控制总线)。通过总线向存储器或I/O设备发出地址、读/写信号,以控制在两个实体之间的传送。 2)被动态 在DMAC获得总线控制权之前,DMAC受CPU控制(。此时,CPU可对DMAC进行初始化编程,也可从DMAC中读出状态。当DMAC上电或复位时,DMAC自动处于被动态。

8.2.2 82C37A 的内部结构和引脚功能说明 1. 82C37A的特点 ① 具有4个独立的DMA通道,每个通道都可独立地进行初始化。 ④ 每个通道进行一次传送的最大字节数为64K。 ⑤ 提供4种传送方式:单字节传送方式、数据块传送方式、请求传送方式和级联传送方式。 ⑥ 时钟频率从DC到5MHz的全静态设计。 ⑦ 在5MHz的时钟频率下传送速率高达1.6MB/s。

2.82C37A 的内部结构 ① DMA通道 ② 读/写控制 ③ 控制逻辑

82C37A内部逻辑框图

2.82C37A 的引脚功能

8.2.3 82C37A 的内部寄存器

1.控制寄存器

2.工作方式寄存器

3.状态寄存器

4.请求寄存器

5.屏蔽寄存器

82C37A DMA控制器端口地址

8.2.4 软命令 1)清先/后触发器软命令 MOV AL, 0XXH ;0XXH为AL中任意值 OUT 0CH, AL ; 先/后触发器被清“0” 2)总清除软命令 MOV AL, 0XXH ;0XXH为AL中任意值 OUT 0DH, AL ;写入总清端口,执行总清除命令 3)清屏蔽寄存器软命令。 MOV AL, 0XXH ;0XXH为AL中任意值 OUT 0EH, AL ;写入清屏蔽寄存器端口

8.2.5 DMA控制器的工作时序  DMA空闲周期SI  过渡状态S0 DMA  有效周期(S1、S2、S3、S4)  82C37A内部状态变化流程

8.2.6 82C37A的初始化编程 ①命令字写入控制寄存器 ②屏蔽字写入屏蔽寄存器 ③方式字写入方式寄存器 ④清“0” 先/后触发器 ◆ 初始化编程的步骤: ①命令字写入控制寄存器 ②屏蔽字写入屏蔽寄存器 ③方式字写入方式寄存器 ④清“0” 先/后触发器 ⑤写入地址寄存器字节寄存器 ⑥解除屏蔽 ⑦写入请求寄存器

8.2.7 PCH中的DMA控制器 1.82C37A DMAC的级联

2.如何扩展82C37A DMAC的寻址空间

3.应用举例 现假设在级联的82C37的主片通道1,将内存其始地址为80000H的280H字节的内容直接输出到外部设备。 MOV AL, 4 ;命令字, 禁止82C37工作 OUT 08, AL ;写命令寄存器 MOV AL, 0 OUT 0CH, AL ;清除先/后触发器 OUT 02, AL ;写低位地址 OUT 02, AL ;写高位地址

MOV AL, 8 ;页面地址为8 OUT 83H, AL ;写页面寄存器 MOV AX, 280H ;传输字节数 DEC AX OUT 03, AL ;写字节数低位 MOV AL, AH OUT 03, AL ;写字节数高位 MOV AL, 49H ;模式字: 单字节读, 地址加1 OUT 0BH, AL

MOV AL, 40H ;命令字: DACK和DREQ低有效 OUT 08H, AL ;正常时序, 固定优先权 MOV AL, 01 ;清除通道1屏蔽 OUT 0AH, AL WAITF: IN AL, 08 ;读通道1状态 AND AL, 02 ;传输完成否 JZ WAITF ;没完成则等待 MOV AL, 05 ;完成后屏蔽通道1 OUT 0A, AL ……

8.3 实时钟电路及其应用 8.3.1 MC146818特性及工作原理 MC146818外部引脚图

MC146818在系统中连接框图

实时钟工作原理示意图

COMS RAM实时钟信息存放位置表 偏移地址 信息内容 秒 7 日 1 报警秒 8 月 2 分 9 年 3 报警分 0A 状态寄存器A 4 时 0B 状态寄存器B 5 报警时 0C 状态寄存器C 6 星期几 0D 状态寄存器D 32H 日 期 世 纪 可以用INT 1A功能读取或设置这些值。

8.3.2 RT/CMOS RAM操作 815EP芯片组82801BA的RTC电路包含128字节标准CMOS RAM 区和128字节扩展CMOS RAM区。 访问RT/CMOS RAM的端口地址范围从70H~77H。其中,70H和71H用来访问标准CMOS RAM 区,72H, 73H用来访问扩展CMOS RAM 区。 MOV AL,6H ;6H是存放"星期几"的单元偏移地址 OUT 70H,AL ;送地址端口 JMP $+2 ;芯片I/O延时要求 IN AL,71H ;读数据端口 MOV AH, AL ;AH中存放的是当前“星期几”的信息 ;0表示星期日

8.3.3 CMOS 密码的破解 基本原理是破坏CMOS中的设置,使得开机后必须重新设置CMOS,从而破解密码。 mov AL, 2EH out 70H, AL mov AL, 00H out 71H, AL mov AL, 2FH out 71H, AL CMOS中偏移为2EH和2FH的位置放的是标准校验和