微型机系统与接口技术复习
第一章 微机结构的发展 一、微机系统整机结构 1、系统组成与基本工作原理 工作原理:存储程序、指令按序执行(有序和中断) 第一章 微机结构的发展 一、微机系统整机结构 1、系统组成与基本工作原理 工作原理:存储程序、指令按序执行(有序和中断) 2、软件、OS和硬件 硬件系统 (调度与控制) 操作系统 编程环境 用户操作 编译 程序 源程序 文件 目标程 序文件 OS定时任务 BOOT程序 BAT文件 OS文件 驱动及应用程序文件 执行请求
3、整机结构 (1)CPU组成与结构 CPU 地址总线(AB) RAM I/O接口 I/O设备 ROM 数据总线(DB) 控制总线(CB) ALU内部总线 EU 控制部件 执行单元EU 总线 控 制逻辑 外部 总线 总线接口单元BIU ALU 通用寄存器组 段寄存器组 指令指针 寄存器 指令队列/ 指令缓冲器 地址生成逻辑 指令译码部件 内部暂存器 回下页
⑴CPU能实现哪些功能?指令系统所有指令功能 ⑵如何实现指令的功能?软件指令→硬件信号转换 ⑶如何实现转换?指令译码、时序控制 ⑷译码的功能?取得相同连接线的不同信号值!! ⑸如何与外部通信?对MEM或I/O接口产生总线操作 ⑹如何实现时序控制?控制与外部通信、功能实现 ⑺如何控制指令执行顺序?修改CS:IP的值 ⑻如何实现指令串功能?指令或OS修改CS:IP控制 ⑼应用程序如何到达CPU?OS控制CS:IP的内容 转上页 转下页 转6页
CPU BIU EU 功能:实现指令系统指令功能 总线控 制逻辑 段寄存 器组 地址加法器 指令指针 寄存器 指令队列 指令顺序控制 软件指令→硬件信号+时序控制 译码器 ↓译码 指令→(操作码,地址码) 控制器 ↓电路 时序控制 功能部件 功能实现 REG地址 通用寄 存器组 MEM、I/O地址 回上页
CPU中指令执行过程: 当前指令(指令队列头指令)译码 操作码 地址码 对应功能 部件工作 产生总线操作(AB、DB、CB有效) 部件操作 对应总线部件工作 数据 读 写 Y N REG数据 下条指令变为当前指令(执行CS:IP) 部件数据 修改CS:IP 说明:非CPU内部操作时,地址码肯定是非CPU内部数据 非CPU内部数据时,CPU功能部件可能会工作(如计算功能的直接寻址方式) 回4页
功能:受总线操作驱动,按地址实现MEM数据存取 硬件:控制器(MEM接口)、存储阵列 数量:系统中只有一个MEM(只用一个MEM地址空间) (3)I/O接口与I/O设备结构 功能:CPU对设备访问通过I/O接口完成, 对I/O接口按地址读写(I/O、配置操作) 数量:系统中可有多种类型(每种多个)接口 接口区分:①所有接口I/O操作共用一个I/O地址空间,各接口地址范围不同;②每个接口的每个功能的配置操作单独使用一个配置地址空间 说明:地址空间均从0开始编址。 不同的地址空间通过总线操作类型区分。
CB:区分接口地址空间类型,及对MEM、I/O接口、中断控制器(中断响应)的操作; (4)总线信号组成及功能 CB:区分接口地址空间类型,及对MEM、I/O接口、中断控制器(中断响应)的操作; 注:I/O接口有I/O操作和配置操作两种 AB:区分不同的接口,接口内部目标数据(或REG)的地址; 注:不同接口地址最低精度不同,使用AB线数量不同 DB:提供与接口通信所需要的数据通道。 注:间接访问时,DB可以为地址传输通道 总线信号由总线控制器(或CPU总线控制逻辑)产生。 总线时序要求各接口均要遵守。
功能:缓冲/锁存数据、处理CPU指令(总线操作)、信号转换(控制外设)、可编程 (6)I/O接口组成与结构 功能:缓冲/锁存数据、处理CPU指令(总线操作)、信号转换(控制外设)、可编程 结构:CPU侧信号、内部结构(内部REG、内部地址译码、控制逻辑)、外设侧信号 约定:不同I/O接口占用I/O地址空间的不同段 连接:按约定段选择与总线地址线的连接方法 识别:对CB、AB译码,确定本接口是否被选中 内部逻辑:含接口选中、通道控制、信号缓冲/锁存、信号转换等 接口≠接口芯片,接口芯片是接口的一部分。 接口连接总线,要遵守总线通信协议。 CPU不对接口操作时,接口照常对外设进行控制。 回下页
接口地址空间:MEM、I/O、配置地址空间 (7)CPU命令、总线操作与接口 接口地址空间:MEM、I/O、配置地址空间 MEM 232-1 I/O 216-1 接口1配置 … 28-1 F0 接口n配置 F7 对应操作:0110/0111 0010/0011 1010/1011 参数: AB+DB AB+DB AB+DB 总 线 选中条件:特定操作 特定操作+ 特定操作+ A15~Ax=约定的实现 A31~A11=约定的实现 功能选择: 无 无 A10~A8 REG选择: 无 Ax-1~A0 A7~A2(A1A0=00) 接 口 思考:接口选中与CS#有效的关系?CS#指芯片,当接口=芯片时,两者等价 谁采用方法,生成不同的总线命令?CPU CPU对应指令: MOV IN/OUT OUT+IN/OUT(间接访问) 采用一定方法,产生不同总线操作 转上页 回下页 回12页
CPU RAM 接口地址空间的实现—连接: CB DB AB 说明:接口分固定地址和可变地址两种,可变地址接口在初始化后地址同样已固定; C/BE# D31~D0 其他控制信号 状态信号 8255 CS RD WR Ax-A0 D7-D0 PA7 … PA0 A31~A0 可选地址接口 固定地址接口 配置使能信号 说明:接口分固定地址和可变地址两种,可变地址接口在初始化后地址同样已固定; 固定地址接口一般只有接口芯片+简单逻辑电路; 接口芯片信号(RD#、WR#)不能与总线连接时,需采用转换方法连接; 可变地址接口的CS#为其内部逻辑的内容。 转上页 回13页 回14页 回22页
组成:CPU中断机构、中断控制器、IVT管理结构 中断请求类型:软件中断、硬件中断 中断向量地址空间(IVT): (8)中断系统组成 中断处理过程:请求、响应、处理、结束 组成:CPU中断机构、中断控制器、IVT管理结构 中断请求类型:软件中断、硬件中断 中断向量地址空间(IVT): 1024B(256个IV),借用MEM空间, 按IV(转换成MEM地址)访问 地址空间 MEM I/O I/O配置 中断向量 CPU指令 MOV IN/OUT MOV① 参数 DB+AB 中断类型号② 主控方 软件 硬件 ①中断响应机构(非软件)执行,时机可为指令间和指令中; ②外部硬件中断需通过INTA#周期取得中断类型号。 转11页
(9)整机结构复习要点 (粗线条范围内彻底理解) ①微机系统的软、硬件组成及功能; ②微机系统实现用户软件功能的过程; (9)整机结构复习要点 (粗线条范围内彻底理解) ①微机系统的软、硬件组成及功能; ②微机系统实现用户软件功能的过程; 提示:启动→OS→用户软件执行→结果输出 ③硬件系统具有的功能(指令、I/O、中断系统); ④硬件系统的组成及各部分主要功能; ⑤各组成部分之间的连接; ⑥各组成部分连接的软、硬件映射; ⑦各组成部分连接的物理实现。 转11页
①用户软件指令如何到达CPU的指令队列? ②CPU实现的主要功能? ③CPU如何将软件指令转化为硬件信号及时序? 整机结构复习思考: ①用户软件指令如何到达CPU的指令队列? ②CPU实现的主要功能? ③CPU如何将软件指令转化为硬件信号及时序? ④指令与外部无关时,总线状态如何? ⑤CPU与外部通信的指令是什么?能实现对接口的哪些操作?总线如何表示这些操作? ⑥各接口如何无冲突地识别对自己的总线操作? ⑦CPU不与接口通信时,接口与外设间工作状态? ⑧接口向CPU主动发送信息的方法? ⑨中断处理过程、中断类型、中断处理时机? 转11页
要点:工作原理、各部件实现功能及相互联系; 各部件存在的原因及结果。 二、微处理器结构 1、8086 CPU结构 ALU数据总线(16位) 运算寄存器 ALU 标志寄存器 EU 控制系统 执行单元EU 1 2 3 4 5 6 总线 控制逻辑 指令队列 8088 8086 Q总线 (8位) 外部 总线 总线接口单元BIU AH AL BH BL CH CL DH DL SP BP DI SI 通 用寄存 器 AX BX CX DX ∑ CS DS SS IP 内部暂存器 数据总线 8088:8位 8086:16位 地址总线 20位 指令指针 段寄存器 要点:工作原理、各部件实现功能及相互联系; 各部件存在的原因及结果。
2、8086 CPU引脚及相关连接 引脚信号:地址、数据、控制/状态、中断信号功能 总线操作:操作命令(课件CH1 P28)与CPU指令、 操作时序图(课件CH1 P29) 最大模式连接:功能,信号定义及转换 3、CPU结构发展 结构发展:多功能部件、流水线、REG扩展、工作模式扩展 工作模式:实模式、保护模式、虚拟8086模式、电源管理模式功能,实模式存储管理
①CPU执行软件指令过程中,各部件状态的变化? ②CPU通过什么控制指令执行顺序? ③能够存放指令操作数的部件有哪些? 微处理器结构复习思考: ①CPU执行软件指令过程中,各部件状态的变化? ②CPU通过什么控制指令执行顺序? ③能够存放指令操作数的部件有哪些? ④REG的类型有哪些?为什么要设置? ⑤8086的主要引脚定义、功能? ⑥总线操作类型,过程与信号时序? ⑦各种工作模式的内涵、相互关系? 1、取指、译码(含取操作数)、执行(按一定时序处理)、写结果
PC/XT、386/486、PII、PIII结构与核心芯片的发展 键盘 鼠标 串行口 并行口 处理器 8XX系列 存储控制中心 中心高速接口 I/O控制中心 固件中心 PCI槽 PCI总线 IDE驱动器 USB端口 AC’97编码 Super I/O LPC I/F AGP图形控制器 主存储器 CPU总线 LAN连接 复习要点:各种接口核心芯片的发展、结构的发展、82801BA与简单芯片间关系。
第二章 I/O与接口技术 一、接口基本概念 功能:缓冲/锁存、处理总线操作、信号转换 组成: ①总线信号--CPU侧信号连接、D/A缓冲; ②内部端口译码→REG R/W控制、REG内容→外设侧引脚; ③外设侧信号←→REG 思考:为什么CPU侧为地址总线信号,而非CS#和Ax~A0信号?接口≠接口芯片 为什么CPU侧为控制总线信号,而非RD#、WR#信号?不同总线控制信号格式不同 接口芯片的信号可通过总线信号组合(或转换)得到 注意: CPU对接口的控制与接口对外设的控制是独立的!
程序控制(有/无条件、中断)、DMA、IOP方式 二、数据传输控制方式 程序控制(有/无条件、中断)、DMA、IOP方式 三、I/O编址与访问 1、端口编址 I/O端口:接口内部REG或缓冲器。 (1)某接口的I/O端口 I/O端口数量:不同的接口数量不同,对应为需要的地址引脚数量不同; I/O端口识别:接口内部按地址引脚值译码来选择; 对I/O端口的访问:总线操作选中该接口时,按接口地址引脚(部分总线地址线)值访问对应的I/O端口。 CPU对接口的访问实际上是对接口中REG的访问。 回下页
(2)所有接口的I/O端口—I/O空间 各接口内部I/O端口地址一般连续— 接口地址引脚连接总线地址线低位; 各接口不同时被选中— 总线地址高位值不同使不同接口片选 引脚为真。 AX-1-A0 AZ-1-AX AY-1-AZ A15-AY 0000H FFFFH I/O空间 … N N+2x-1 某接口选中值=S 某接口端口数量2X 起始地址N= 0…0 S 通过门电路(与预定值相同输出为真)与接口片选引脚相连 与接口地址信号相连 转上页
CPU对I/O端口访问实际上是对接口中REG的访问。 CPU指令: IN/OUT,INSB(W、D)/OUTSB(W、D); CB—IO/M#高、AEN无效、RD#/WR#等, 接口被选中时,应满足IO/M#高、AEN无效等条件 AB—各地址线值与I/O空间中I/O端口地址对应, DB—各信号线值与I/O端口(REG)的数据对应, DB、AB复用时地址期和数据期含义不同。 转11页
3、I/O保护 实模式 I/O指令 允许访问 不允许访问 CPL≤IOPL I/O允许位映像 允许 保护模式 Y N 虚拟8086模式
译码器(高位地址线)+门电路(中间位地址线) 门电路(线高位地址)+比较器(中间位地址线) 四、接口分析与设计方法 1、x86微机接口分析 I/O接口物理位置 系统板上I/O接口 扩展槽中I/O接口 接口地址段在I/O地址空间中分配 低端 高端 接口起始地址 (片选) 实现策略 硬件连线(固定) /跳线开关(可选) OS分配 (可变) 实现方法 译码器(高位地址线)+门电路(中间位地址线) 门电路(线高位地址)+比较器(中间位地址线) 比较器 (全部地址线) 接口内部地址 译码附加硬件 无 配置信息存储机构 2、地址译码方法与电路 固定端口地址译码:门+译码器; 可选端口地址译码:跳线开关+比较器/门+比较器。
固定端口地址译码实现: 先分配(确定地址线Y和Z)、后连接(各接口X不同)。 AX-1-A0 AZ-1-AX AY-1-AZ A15-AY 0000H FFFFH I/O地址空间 … 系统板 扩展槽 译码器 … 划分 段 0 —系统板 非0—扩展槽 A15-A0=0…0 1…1 AY-1 … 划分 片 AZ-1-AX=0…0 AZ-1-AX=1…1 接口内部地址 A15-AY=? 译码输出=? AZ-1-AX=? AX-1-A0 CS 控制信号 RD/WR
可选(跳线开关)端口地址译码实现: AX-1-A0 AY-1-Ax A15-AY 系统板 I/O地址空间 … 扩展槽 0 —系统板 0000H FFFFH I/O地址空间 … 扩展槽 0 —系统板 非0—扩展槽 A15-A0=0…0 1…1 AY-1 比较器 SWY-1 … SWX A15-AY=? AX-1-A0 CS 控制信号 RD/WR 跳线开关
可选(OS分配)端口地址译码实现: 3、接口分析与设计方法 主板相关设计约定 接口硬件设计、接口软件设计 DEVSEL# 已配置的基址REG A31-A0 IDSEL C/BE# DEVSEL# + A15-AX 已配置的基址REG 比较器 支持的PCI操作码 A10-A8 具备功能数REG PCI配置操作码 3、接口分析与设计方法 主板相关设计约定 接口硬件设计、接口软件设计
I/O接口技术复习思考: ①I/O接口的基本功能?如何实现这些功能? ②接口的基本组成部分?内部控制逻辑与CPU侧、外设侧信号间的关系? ③举例说明如何实现无/有条件传送和中断传送。 ④总线地址信号与I/O地址空间之间的映射规律? ⑤CPU对端口的访问指令与总线信号状态关系? ⑥约定的接口的起始地址,有哪些译码实现方法? ⑦接口分析和设计的一般方法?
第三章 总线与接口标准 一、系统总线 总线与接口区别、性能参数、总线标准特性、操作步骤与控制方法、系统总线含义 二、PCI总线 第三章 总线与接口标准 一、系统总线 总线与接口区别、性能参数、总线标准特性、操作步骤与控制方法、系统总线含义 二、PCI总线 突发传输原理、PNP配置(配置访问)过程 知识点: 功能→命令(I/O、MEM、配置等) 空间→I/O、MEM、配置空间 单CPU 启动 寻址 ←信号定义 操作 响应 →协议(时序) 数据 终止 多CPU→总线请求与仲裁
1、信号定义 —功能与含义 信号功能,主设备、从设备不相同的连接信号。 频率 发生器 接口1 PCI总线控制器 主设备1 接口2 主设备2 1、信号定义 —功能与含义 信号功能,主设备、从设备不相同的连接信号。 主设备1 PCI总线控制器 AD[31:0] C/BE#[3:0] 接口1 接口2 FRAME# IRDY# LOCK# AD11 IDSEL DEVSEL# TRDY# STOP# 未连接信号线:REQ#、 GNT#、IDSEL# REQ# GNT# 频率 发生器 CLK AD12 AD31 … AD16 PCI桥 共用信号线 INTA~H# PCI中断控制器 控制/状态 地址/数据 主设备2 软件控制不同时有效 回35页 回36页
思考:PCI总线命令与ISA总线控制信号对应关系? MEM控制器如何对待不同MEM操作命令? 2、总线功能 --总线命令(操作) C/BE#[3:0] 命令类型 0000 中断响应 1000 保留 0001 特殊周期 1001 0010 I/O读(从I/O端口读数据) 1010 配置读 0011 I/O写(向I/O端口写数据) 1011 配置写 0100 1100 存储器多行读 0101 1101 双地址周期 0110 存储器读(从内存读数数据) 1110 存储器行读 0111 存储器写(向内存写数据) 1111 存储器写并无效 思考:PCI总线命令与ISA总线控制信号对应关系? MEM控制器如何对待不同MEM操作命令?
地址空间类型、大小、最小寻址精度,空间区分; 字节对齐、最小精度内地址信号的利用; 3、总线寻址 --总线操作地址空间 地址空间类型、大小、最小寻址精度,空间区分; 字节对齐、最小精度内地址信号的利用; PNP时总线命令与配置地址空间: 设备尚无地址、可有多个功能、厂家不同,总线命令无法选择配置空间,须通过辅助手段定位(总线、设备、功能)配置空间。 功能1 255 … 功能n 功能m 设备1 设备k 思考:如何区分三种地址空间? 为什么每块卡的每个功能一个配置空间?
★协议(启动、响应、传输控制、中止)、仲裁 信号定义与总线协议密切相关!需进行关联复习 4、总线协议 ★协议(启动、响应、传输控制、中止)、仲裁 信号定义与总线协议密切相关!需进行关联复习 CLK FRAME# 1 2 3 4 5 6 7 8 9 AD C/BE# IRDY# TRDY# DEVSEL# ADDRESS DATA1 DATA2 DATA3 BUSCMD BE#s 地址期 数据期 思考:FRAME#何时可恢复?为什么有的信号需要过渡周期? 从设备如何请求停止传输?DEVSEL#无响应怎么办?
基础:PNP过程,物理设备、功能设备及配置空间。 5、PCI总线配置 基础:PNP过程,物理设备、功能设备及配置空间。 HOST-PCI桥的配置访问总线命令地址期信息: C/BE#[3:0]=1010/1011; AD[23:16]=选择的目标总线(目标设备所在的总线); AD[15:11]=选择的目标设备IDSEL(只有一个有效); AD[10:8] =选择的目标设备的功能; AD[7:2] =选择的目标功能的配置空间中REG的索引; AD[1:0] =目标设备在一级总线上时为00, 目标设备在其他总线上时为01。
①PCI设备对是否被选中(目标设备)的检测: 选中条件— 自己的IDSEL引脚信号有效、AD[1:0]=00。 检测原理— (1)配置空间的选择 目标PCI桥(目标总线)、目标设备无对应的配置空间; 目标桥PCI下目标设备的某功能才有对应配置空间。 ①PCI设备对是否被选中(目标设备)的检测: 选中条件— 自己的IDSEL引脚信号有效、AD[1:0]=00。 检测原理— 所连总线为目标总线(AD[1:0]=00); 在目标总线上被选中。 说明:a)从一级总线到目标总线过程中,各级总线上设备可能IDSEL信号有效的条件满足,但AD[1:0]=00条件不满足; b)当前总线上无设备被选中时,无DEVSEL#,中止
选中—指自己为目标桥,或目标桥的中间桥。 ②PCI桥对是否被选中的检测: 选中—指自己为目标桥,或目标桥的中间桥。 选中条件— PCI桥上级总线 AD[23:16]=cdA、AD[1:0] PCI桥下所连总线号=efB 目标桥 B=A、cd=ef ,且AD[1:0]=01 目标桥的中间桥 B=A、cd≠ef ,且AD[1:0]=01 未选中 B≠A,或AD[1:0]=00 被选中时的处理— 目标桥 对上级总线信号,将AD[1:0]改为00后,传至所连总线上 目标桥的中间桥 直接将上级总线信号传至所连总线上 未选中 无任何动作(忽略本次操作) 转30页
PCI设备的IDSEL引脚信号有效、AD[1:0]=00, PCI设备具备的功能数>A[10:8]。 选中条件: PCI设备的IDSEL引脚信号有效、AD[1:0]=00, PCI设备具备的功能数>A[10:8]。 说明:当AD[10:8]≥PCI设备具备的功能数时,PCI设备不发出DEVSEL#信号,当前总线操作中止。 PCI桥用AD[23:16]、AD[1:0] 判断是否为目标桥/中间桥 PCI设备用C/BE#[3:0]、AD[15:11]、AD[1:0]判断是否为目标设备 PCI桥 HOST-PCI桥 CPU I/O命令(IN/OUT指令) 配置命令(C/BE#[3:0]、AD[31:0]) PCI设备用AD[10:8]选择目标功能及有无 PCI桥用AD[1:0]指明对应总线是否为目标总线(设备判断需用) 转30页
②0类配置访问处理:—当前总线上设备的处理 (2)配置空间的访问方法 ①配置访问类型: 0类配置访问—访问当前总线上(AD[1:0]=00)设备; 1类配置访问—访问下级总线上(AD[1:0]=01)设备。 ▲CPU访问一级总线上设备时AD[1:0]=00,否则AD[1:0]=01 ②0类配置访问处理:—当前总线上设备的处理 当前总线上设备和功能设备均被选中时,设备给出DEVSEL#响应信号,完成配置操作访问请求。 ③1类配置访问处理:—PCI桥对配置访问的处理 PCI桥根据自己是否被选中,对总线操作进行相应处理。 目标桥 目标桥的中间桥 未选中 将总线信号的AD[1:0]改为00后,传至所连总上,变成了0类访问 直接将总线信号传至所连总线上,仍为1类访问 忽略本次操作
④配置空间访问的实现: a)总线级访问的实现—直接访问 b)CPU级访问的实现—间接访问 C/BE#[3:0]=配置读/配置写(1010/1011); AD[23:16]=选择的目标总线(目标设备所在的总线); AD[15:11]=选择的目标设备IDSEL(只有一个有效); AD[10:8]=选择的目标设备的功能; AD[7:2]=选择的目标功能的配置空间中REG的索引; AD[1:0]=目标设备在一级总线上时为00, 目标设备在其他总线上时为01。 b)CPU级访问的实现—间接访问 ⑴OUT指令—将总线级访问所需的地址送到配置机构; ⑵IN/OUT指令—与配置机构间传递总线级访问的数据。 回下页
c)配置机构的配置转换实现: 过滤器 HOST-PCI桥中配置机构 OUT DX,EAX I/O地址空间 … 目标功能设备配置空间 FFFFH I/O地址空间 … 00H FFH 目标功能设备配置空间 3FH 头区域 自由 区域 目标物理设备IDSEL DX=0CF8H DX=0CFCH DX在0CF8H-0CFFH之间 Y N 产生I/O总线操作 操作为OUT,EAX最高位为1 配置数据REG←EAX A31-A0 配置地址REG←EAX 配置地 址REG: 配置数 据REG: 产生配置总线操作 命令结束 A31-A16 A15-A11 A10-A8 A7-A0 转上页
(3)配置信息的获得与分配 配置信息(空间请求和基址分配)的保存: 基址REG和扩展ROM基址REG。 请求信息保存—硬件固化,只可读; 分配信息保存—软件可设置,可读和写。 请求的空间大小和分配的起始地址实现: 请求空间 I/O映射 MEM映射 扩展ROM映射 大小范围 4B~256B 16B~2GB 1KB~2GB 请求大小 2的幂次方大小(2n) 类型区分 基址REG的D0=1 基址REG的D0=0 扩展ROM基址REG 大小表示 Dn-1位~D2位为0 Dn-1位~D4位为0 Dn-1位~D10位为0 大小获得 向REG写全“1”后,再读REG,空间大小为2n(Dn位开始为1) 基址分配 系统确定基址(为请求空间大小的倍数)后,将基址写入REG
四、USB串行总线 1、USB系统的组成 硬件组成:主控制器/根Hub、USB Hub、USB设备,树型结构 主控制器连接到PCI总线,占用I/O地址空间 每个设备只有一个USB逻辑地址(非I/O地址) 每个设备最多有16个端点(设备内部REG编码) PCI总线 USB主控制器/根Hub 电话 显示器 集线器 0000H FFFFH I/O地址空间 … 软件组成:主控制器驱动程序、USB驱动程序、USB设备驱动程序,层次结构
2、USB系统的通信 (1)USB系统的通信模型 I/O系统通信→USB系统通信、并行通信→串行通信。 USB设备驱动程序 USB驱动程序 主机系统 USB功能设备 USB设备 USB逻辑设备 USB总线 非USB格式数据 USB格式数据 缓冲区 事务描述符 调度与传递 主控制器 根集线器 帧内处理 USB格式 … USB线 缺省管道 管道 总线层 设备层 功能层 回下页
①USB驱动程序将IRP分解为几个USB事务(描述符); ②USB主控制器驱动程序将这些事务调度到各帧中; ④每个事务的执行通过1~3个包交换完成。 USB主 控制器 ①标志包或特殊包 USB 设备 ②数据包 ③握手包 帧i事 务传输 描述符 事务1 事务2 事务3 缓冲区1 缓冲区2 主存 主控制器 (全速事务) 设备1 设备2 ① ④ ② ③ ⑥ ⑤ (3)USB系统数据流与传输类型 控制传输、批传输、中断传输、等时传输4种。 不同类型的传输,对包交换中包的数量和类型要求不同 转上页
3、USB总线 信号定义、电气特性(供电、电压) 总线状态、状态转换 设备状态与总线枚举 4、NRZI编码—双向不归零编码 重置状态 未连接状态 空闲状态 连接状态 工作状态 4、NRZI编码—双向不归零编码 数据表示、时钟宽度、填充规则 原始数据 空闲 填充数据 填充位 NRZI码 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1
包格式:组成、CRC、发送方、传输类型与包序列 5、USB总线包交换(完成事务)格式 事务与包、帧与事务— IRP请求 事务 标志包 数据包 握手包 帧开始包 标志包 数据包 握手包 标志包 数据包 … 事务1 事务2 包格式:组成、CRC、发送方、传输类型与包序列 思考:如何实现传输速度的自动识别? 事务中如何反映USB设备地址和端点? 如何知道一个包的到来?
总线技术复习思考: ①PCI总线操作如何区分MEM、I/O、配置地址空间? ②PCI总线传输协议中,为何只有I/O空间需要字节对齐? 提示:操作请求从顶级总线→桥→设备→功能的过程 ⑤配置机构如何截取I/O操作、产生配置操作的? ⑥PCI总线如何利用同一REG实现空间请求及基址分配? ⑦用户对USB设备的操作请求,通过什么过程到达USB设备? 提示:USB的树型结构、USB设备地址与HUB端口的多一 ⑧USB总线信号电气特性如何反映总线状态? ⑨USB设备如何识别并处理USB总线事务的? 提示:总线状态、包的SYNC、标志包、端点与操作 ⑩不同USB传输类型,需要什么样的包交换?为什么?
第五章 中断技术 一、中断及中断系统基本概念 中断处理流程:请求、响应、服务、结束 中断系统组成: 第五章 中断技术 一、中断及中断系统基本概念 中断处理流程:请求、响应、服务、结束 中断系统组成: CPU中的中断机构—实现中断请求检测、判优、响应、屏蔽、优先级管理、嵌套功能; 中断结束由IRET指令触发完成,不属于中断机构范围 I/O系统中的中断控制器—实现外部硬件中断请求的检测、排队、判优、屏蔽、请求、响应、结束、优先级管理功能; 3个独立工作段:检测→请求、响应、结束→优先级管理 OS中的中断服务程序管理机构—实现IVT/IDT的管理功能。 提供DOS功能调用:中断类型号→程序入口地址的读/写 回下页
中断系统工作原理: 中断机构、中断控制器的3个工作段并行工作; 外设请求 中断 控制器 中断机构 软件请求 IVT/IDT 软件程序 固定 检→判→响 检→判→响 结 结 优先级 测 优 应 测 优 应 束 束 响 检→排→判→请 响 结→动态 结→动态 应 测 队 优 求 应 束 优先级 束 优先级 中断2 服务 中断机构 中断 控制器 外设请求 请求1~3 检→排→判→请 测 队 优 求 软件请求 软件程序 屏蔽 请求 请求5 请求4 中断1服务 时间 中断1 嵌套 嵌 套 IVT/IDT 中断类型号→中断向量 转上页 回下页
中断系统基本概念复习思考: ①CPU的中断机构与中断控制器的中断请求检测有何区别? ②排队与判优概念有何区别?中断机构与中断控制器的判优有何区别? ③中断响应实现哪些功能?中断机构对不同请求类型的响应有何不同(从响应时机和保存现场方面)? ④中断结束处理时如何回到断点的?如何触发中断结束? ⑤中断机构与中断控制器的屏蔽有何区别? ⑥针对各种类型中断如何得到中断服务程序入口地址? ⑦CPU中断机构如何实现中断请求优先级管理的? ⑧CPU中断机构实现嵌套的方法是什么?如何实现外部硬件中断请求嵌套的允许/禁止? 转上页
实现功能:检测请求、排队与判优、屏蔽、优先级管理、提出中断请求、响应(提供中断类型号)、操作 二、8259A 1、内部结构与工作原理 实现功能:检测请求、排队与判优、屏蔽、优先级管理、提出中断请求、响应(提供中断类型号)、操作 IR0 IR7 … 中断请求寄存器IRR ≥1 & INT 比 B0 较 B1 器 B2 A>B或A≥B A0 A1 A2 中断请求优先编码器 IBR 中断服务优先编码器 中断屏蔽寄存器IMR 正在服务寄存器ISR 特殊屏蔽SMM 回下页
排队用于阻塞低级的未处理请求,判优用于实现嵌套 排队与判优: 排队用于阻塞低级的未处理请求,判优用于实现嵌套 正常屏蔽与特殊屏蔽:屏蔽IRR还是ISR 结束方式:自动结束—按“后产生的请求优先”原则判优 手工结束—按“高优先级请求优先”原则判优 优先级管理:优先级改变规则—IR0→IR7降序+固定/轮转方式 实现时机及方法—ISR变化时改变IBR CPU响应外部硬件中断请求条件: ①当前指令执行完毕;②EFLAG中IF=1;③INTR信号有效。 中断响应过程:--提供中断类型号过程 两个INTA#(中断类型号、IRR复位、ISR置/复位) ★IRR、IMR、ISR、IBR、INT置位和复位的时间及效果 转上页
有请求、屏蔽、嵌套、结束、优先级、级联方式。 2、工作模式设置 有请求、屏蔽、嵌套、结束、优先级、级联方式。 屏蔽方式 特定屏蔽 正常屏蔽 结束方式 自动 手工 不指定 指定 中断请求IRR IR0 IR7 … & INT ≥1 IRR优先编码器 ISR优先编码器 比较器 IBR 正在服务ISR 中断屏蔽IMR D0 D7 特殊屏蔽SMM 优先级管理 固定 轮转 不指定 指定 请求方式 电平触发 边沿触发 嵌套方式 完全嵌套 特殊全嵌套 级联方式 缓冲 非缓冲 INT
初始化、操作编程—静态工作模式与动态控制; ★编程=IN/OUT语句串+辅助语句。 3、软件编程 软件编程与硬件实现—命令关系表; ★命令关系表是所有接口芯片编程的入门!!! 初始化、操作编程—静态工作模式与动态控制; ★编程=IN/OUT语句串+辅助语句。 与芯片实现的工作模式次序对应 AL与控制/状态字格式或特征位对应 DX与芯片端口地址对应 实模式中断编程: 初始化及中断服务程序完整编程过程 注意点—中断类型号与中断向量位置、CLI/STI的作用与应用、单片及级联的中断手工结束
4、现代微机中断系统 三、PCI中断 中断请求:引脚→总线信号→PCI中断控制器,PIRQ-IRQ映射、优先级; SIO LPC47B27X … ①IRQx 82801BA ②SERIRQ CPU ③INTR IRQ14,15 82815EP ⑦中断类型号 ④INTA ⑥两个INTA ⑧中断类型号 ⑤INTA LPC接口 中心高速接口 CPU总线接口 三、PCI中断 中断请求:引脚→总线信号→PCI中断控制器,PIRQ-IRQ映射、优先级; 中断响应:CPU→HOST-PCI桥→PCI总线→ISA总线响应周期; 中断共享:引脚共享→采集实现,优先级→服务程序编程
四、串行中断 --中断请求串行传输 有效中断源、传输方式(CLK+帧)、帧结构及格式、传输模式及转换 82801BA SIO LPC 四、串行中断 --中断请求串行传输 有效中断源、传输方式(CLK+帧)、帧结构及格式、传输模式及转换 82801BA SIO LPC {IRi} SERIRQ PCICLK 信号线定义: 传输格式:空闲 开始帧 数据帧 停止帧 空闲 4/6/8CLK 3CLK×21 2~3CLK 帧结构: 传输模式:连续 静态 模式转换:连续/静态→静态 2CLK 连续/静态→连续 3CLK
8259A、PCI中断、串行中断复习思考: ①8259A产生中断请求过程中,有哪些影响因素?各REG置位/复位关系和时机?CPU怎样才能够接收或响应8259A的请求? ②8259A的结束方式的作用是什么?与优先级管理的关系? ③8259A级联时连接、请求、响应、编程上与单片有何不同? ④8259A初始化编程过程、为什么有ICW2? ⑤实模式中断程序编程过程、各注意点(如手工结束方法)? ⑥中断控制器一般应处在哪级总线上?为什么? ⑦PCI中断请求映射ISA请求、采集、响应方法是什么?优先级如何管理的? ⑧为什么PCI中断请求不能采用边沿触发方式?单个及共享的中断请求优先级如何确定?软件如何实现中断共享? ⑨串行中断帧结构中,如何知道下一帧由谁发出?
第六章 定时/计数技术 一、基本概念 定时/计数原理、T/C基本原理 工作模式: ①--写后立即生效 ②--需要一个CLK生效 第六章 定时/计数技术 一、基本概念 定时/计数原理、T/C基本原理 16位当前计数值锁存器OL 16位减1计数器CE 16位计数初值寄存器CR OUT MSB LSB 锁存后读出当前值 装入/读出初值 ? CLK GATE ③ ② ④ 工作模式: ①--写后立即生效 ②--需要一个CLK生效 ③--GATE控制生效 ④--控制CLK通过 ⑤--控制输出结果 ① WR ⑤
二、Intel 8254 1、基本结构 实现功能、内部结构与引脚 2、软件编程 命令关系表、I/O操作冲突解决方法 回下页
前一锁存命令有效时,读取的是锁存对应的类型值; 操 作 特征位 时序 D7D6 0 1 0 0 0 计数初值写入0#计数器 ** 无 0 1 0 0 1 计数初值写入1#计数器 0 1 0 1 0 计数初值写入2#计数器 0 1 0 1 1 向T/C控制REG写控制字 00~10 锁存计数值/状态命令 11 0 0 1 0 0 读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 * * CS RD WR A1 A0 转上页
8254软件编程: 3、6种工作方式(功能→应用) 初始化—设置工作方式、置初值; 重写初值—与置初值相同; 取当前计数值—硬件/软件锁存+读取计数值; 取状态—软件锁存+读取状态(8253没有) 3、6种工作方式(功能→应用) 一次/重 复计数 WR#/GATE↑ 重新计数 WR#重 新计数 OUT不同 OUT不同 方式0 方式1 方式4 方式5 方式2 方式3 GATE低 /↓计数 暂停 /↓不影 响计数 WR# 重新 计数 GATE↑ GATE低 /↓计数 暂停 /↓不影 响计数 WR# 重新 计数 GATE↑ OUT 不同 OUT不同 回下页
4、应用编程 (1)应用设计步骤(应用→功能) ①需求分析—归纳出符合T/C特性的需求特征 需求特征:T/C数量,T/C控制、OUT信号特征 方式特征:一次/重复、GATE或WR#启动、OUT波形 ③电路连线—根据工作方式特征,修正输出实现应用需求 修正内容:I/O电平和时序要求、不同T/C相关性 ④软件编程—各T/C初始化、启/停控制编程 (2)应用分析 分频器--方波/脉冲、级联、暂停/变频 频率计数器—定时、启/停、溢出控制 转上页
定时/计数技术复习思考: ①计数时不同T/C的作用及关系?如何提高计数的准确性? ②T/C的内部结构与工作原理? ③对8254和8259A,从I/O接口角度比较CPU测信号连接、I/O端口地址与端口(REG)关系、访问冲突处理(特征位/时序)方面的异同;比较两者软件编程(初始化/操作)方法方面的异同。 ④对6种工作方式的异同进行成组比较。 ⑤软件锁存OL有哪两种方式?软件锁存怎样解锁? ⑥T/C应用编程一般采用哪些步骤与方法? ⑦如何实现分频的等长暂停?如何实现两种频率等长交替? ⑧如何延长定时的时长和计数范围? ⑨用8254和8259A实现(电路及编程)电子钟功能(显示略)。 f=0Hz 500ms … f=50Hz 500ms f=100Hz 500ms
第七章 并行接口 一、并行接口概述 1、并行接口与串行接口 两者特征(数据宽度、同步、速度等)、应用场合、结构差别 ★2、传输控制方式 第七章 并行接口 一、并行接口概述 1、并行接口与串行接口 两者特征(数据宽度、同步、速度等)、应用场合、结构差别 ★2、传输控制方式 无条件传输:无握手(0个状态) 条件(查询)传输:异步互锁握手方式 (发送方)DATA+握手→(接收方)处理+握手→(双方)信号还原 中断传输:中断方式握手 (发送方)DATA+握手→(接收方)中断请求+处理+握手→(双方)信号还原
外部引脚—PA7~PA0、PB7~PB0、PC7~PC0; 内部REG—REGA+REGB+REGC+控制REG。 1、功能与结构 (1)功能 组与并行口、工作方式、传输控制方式 方式0(A、B组) 方式1(A、B组) 方式2(A组) 控制方式 无条件传输 查询、中断传输 传输方向 可控单向 双向 A、B组的工作方式、引脚信号间无影响。 (2)结构 外部引脚—PA7~PA0、PB7~PB0、PC7~PC0; 内部REG—REGA+REGB+REGC+控制REG。
★不同工作方式时,REG的使用及与引脚对应关系: 控制口 状态口 数据口 与REG不对应的引脚 方式0 A组 (I或O) 共用的控制REG 无 REGA(I或O)、 REGC的D7~D4(I或O) B组 REGB(I或O)、 REGC的D3~D0(I或O) 方式1 I REGC的D5~D3 REGA(I)、 REGC的D7~D6(I或O) PC4 O REGC的D7~D6和D3 REGA(O)、 REGC的D5~D4(I或O) PC6 I或O REGC的D2~D0 REGB(I或O) PC2 方式2(A组) REGC的D7~D3 REGA(I和O) PC4、PC6 回下页
命令关系表(注意:所有R/W均是对REG而言的) 2、软件编程 命令:初始化—设置工作方式 操 作—A口、B口、C口的读/写 对C口按位置位/复位操作 命令关系表(注意:所有R/W均是对REG而言的) 信息字(REG内容): 类型—控制字、状态字、数据字 操作—整字读/写,或C口按位置/复位 3、0方式—基本I/O方式 仅支持无条件传输方式。 应用分析:发送一个脉冲; 键盘扫描程序。 转上页
4、方式1—单向选通I/O方式 (1)输入 —支持查询和中断传输方式 ★数据口及状态口信息产生过程— (1)输入 —支持查询和中断传输方式 ★数据口及状态口信息产生过程— STBA PA0~PA7 A口REG IBFA 外设给出 8255给出 INTEA INTRA 8255给出 允许=1、禁止=0 软件设置 RD CPU给出 (读A口REG) (读C口REG) 查询方式通信—读C口REG的IBFA或INTRA(当INTEA=1时); 当IBFA=1时,读A口REG。 中断方式通信—置INTEA=1,在中断服务程序中读A口REG。 回下页
(2)输出 —支持查询和中断传输方式 ★数据口及状态口信息产生过程— (2)输出 —支持查询和中断传输方式 ★数据口及状态口信息产生过程— WRA CPU给出 OBFA PA0~PA7 A口REG 8255给出 INTEA INTRA 8255给出 允许=1,禁止=0 软件设置 外设给出 ACKA RD CPU给出 (读C口REG) 查询方式通信—读C口REG的OBFA或INTRA(当INTEA=1时); 当OBFA=0→1时,写A口REG。 中断方式通信—置INTEA=1,在中断服务程序中写A口REG。 转上页
(3)对C口的操作 C口信息字: 对信息字的操作: 取的信息—对C口REG整字节读,如读IBF或I/O; D7 D6 D5 D4 D3 D2 D1 D0 A组状态 B组状态 输入时 I/O I/O IBFA INTEA INTRA INTEB IBFB INTRB 输出时 OBFA INTEA I/O I/O INTRA INTEB OBFB INTRB 对信息字的操作: 取的信息—对C口REG整字节读,如读IBF或I/O; 设置信息—对C口REG按位置/复位,如置位INTE或I/O。
三、8255A 应用 1、打印机接口应用 接口标准,查询/中断方式的打印机应用编程 2、其他应用 键盘扫描(查询/中断)、设备检测、设备控制
⑵用PC/XT或单片机(自己连线)实现每分种提醒(两短声)功能。 3、应用思考(未列出参数自己假设) ⑴利用8255A的方式1实现双机(单片机)间 a)双向8位通信,b)单向16位通信。 ⑵用PC/XT或单片机(自己连线)实现每分种提醒(两短声)功能。 ⑶用摩擦器测试某设备耐磨性时,每摩擦N次(M秒)后暂停M秒,实现每秒钟一次将已摩擦秒数输出到显示器上的功能(显示器输出可省略)。 CLK 循环摩擦机构(触发信号上升沿产生动作) START 摩擦器 供电机构 触发信号 计数机构 NUM(16位的摩擦次数,ACK#有效时有效) ACK#(负脉冲,每秒一次)
并行接口复习思考: ①条件传输中,异步互锁握手方式的原理和时序? ②8255A在不同工作方式时,C口的上/下半部范围是否有变化?若有变化,如何变化的? ③A组方式0输出时,C口能否作为数据口实现输入和输出? ④A组方式1输入和输出时,数据口和状态口信息产生的过程如何?各个信号如何被置位和复位的? ⑤A组方式1输入和输出时,产生中断请求的条件是什么? ⑥实现查询方式通信时,查询的状态是什么? ⑦如何进行外部引脚连接,才能实现查询/中断方式通信? ⑧8259A、8254如何连接,才能为8255A的并行I/O提供定时、中断功能? ⑨分析8259A、8254、8255A的混合连接与应用方法
第八章 串行接口 一、串行通信原理 通信方式:方向、连接、异步/同步; 速度控制:波特率控制、收/发时钟、基准时钟; 第八章 串行接口 一、串行通信原理 MODEM 收 发 控制 音频模拟信号 CPU 串行接口 点点通信时可省略 CPU及串行接口 非远程通信 时可省略 通信方式:方向、连接、异步/同步; 速度控制:波特率控制、收/发时钟、基准时钟; 差错控制:单/双端、信号重复、检错和纠错编码; 长距离传输:信号调制(调频、调幅、调相); 通道共享:时分多路、频分多路; 通信协议:起止式异步协议(字符识别、正确性)、抗干扰; 接口标准:信号定义、逻辑特性、电气特性、机械特性。
二、起止式异步串行通信协议 约定信息—波特率、字符(数据/校验/停止位)格式; 字符识别—空闲/停止位与起始位,字符格式与停止位; 注意:字符的低位先发送、高位后发送 字符正确性—校验码编码技术、检错与纠错; 抗干扰实现—信号重复,起始位采样、数据采样,信号漂移。
标准类型:RS-232C、RS-422A(RS-423)、RS-485 RS-232C接口标准: 三、串行通信接口标准 标准类型:RS-232C、RS-422A(RS-423)、RS-485 RS-232C接口标准: 信号定义:RxD、TxD、SG、DTR/DSR、RTS/CTS、DCD、RI 逻辑特性:握手规则与连接、信号不连接时的状态 电气特性:信号的电平(>±3V)、电平转换 机械特性:连接器(方向/类型)引脚定义、相互间连接 RS-422A与RS-485标准: 信号定义:RxD+、RxD-、TxD+、TxD-;D+、D- 逻辑特性:多点通信,无MODEM,差分发送、差分接收 电气特性:信号的电平(>±200mV)、不需要电平转换 机械特性:无连接器
串行通信原理复习思考: ①点点串行通信的相关环节有哪些?他们如何解决问题的? ②使用起止式异步串行通信协议,需要预先进行哪些约定?如何在信号流中识别一个字符?空闲位与停止位电平相同有什么好处?如何提高信息的抗干扰能力?如何解决信号漂移? ③RS-232C标准中,MODEM使用的信号有哪些?握手规则是什么?两台计算机如何相互连接? ④RS-232C标准中,为什么信号要转换成>±3V? ⑤当右图为RS-232电平转 换前和后的波形时,字符格 式可能是什么? ⑥为什么RS-422A、RS-485 标准中,无MODEM控制信号? t01 t05 t10 t15 t19
四、INS8250 1、功能与结构 (1)实现功能与外部引脚 功能→基本引脚→PC机连接 (2)功能实现与内部结构 串行数据I/O、时钟、MODEM、中断、辅助输出信号 (2)功能实现与内部结构 a)内部结构— (见下页,注意勘误) b)内部寄存器— 数据口—RBR、THR; 控制口—LCR、MCR、IER、DLH、DLL; 状态口—LSR、MSR、IIR; 暂存器—接收移位REG、发送移位REG。 转下页
回上页 回下页
c)数据I/O传输过程与控制— d)中断产生与控制— 中断控制逻辑 说明:波特率除数=基准时钟频率÷(16×波特率) 发送波特率除数 XTAL1 BAUDOUT 起始位 SOUT 校验位 信号重复÷ 欲发数据位 停止/空闲位 ÷ 说明:波特率除数=基准时钟频率÷(16×波特率) RCLK SIN 位计数 起始位 校验位 接收数据位 停止/空闲位 接收波特率除数 XTAL1 ÷ PC机内部 直接连接 d)中断产生与控制— 中断控制逻辑 中断允许寄存器IER 中断识别寄存器IIR RBR满 THR空 接收出错 MSR变化 INTPRT LSR 转上页
(3)寄存器的端口地址分配 A2A1A0 DLAB① RD#有效 WR#有效 000 接收缓冲寄存器RBR 发送保持寄存器THR 1 接收缓冲寄存器RBR 发送保持寄存器THR 1 波特率除数寄存器DLL(低字节) 001 中断允许寄存器IER 波特率除数寄存器DLH(高字节) 010 X 中断识别寄存器IIR FIFO控制器FCR② 011 线路控制寄存器 LCR 100 MODEM控制寄存器MCR 101 线路状态寄存器LSR 110 MODEM状态寄存器MSR 111 Scratch寄存器② 说明:①--DLAB为LCR的D7位;②--8250无此REG 注意:因RBR、THR、IIR需经常使用,平常应使LCR的D7=0
2、PC机异步通信适配器 串行口占用I/O地址空间及中断请求: 串行口电路: (教材P285图) XTAL1、BAUDOUT与RCLK; 串口号 COM1 COM2 COM3 COM4 基地址 3F8 2F8 3E8 2E8 中断号 IRQ4 IRQ3 中断类型号 0CH 0BH 串行口电路: (教材P285图) XTAL1、BAUDOUT与RCLK; INTPRT+OUT2与IRQ3
3、INS8250初始化编程 初始化开始 ①置DLAB=1,写LCR 设置波特率 ②写DLL、DLH 设置通信数据格式 连有MODEM? 用向量中断方式? 设置允许的中断类型 初始化完成 初始化开始 置OUT2引脚有效 N Y 设置MODEM状态 写LCR(同时置DLAB=0) 写MCR 写IER(不用中断方式时 屏蔽各中断类型) 可合为一个写MCR
4、查询方式通信程序设计 读LSR N D4~D1≠0? Y 根据错误原因进行相应处理 读RBR 写THR 读MSR 根据状态变化进行相应处理 程序结束 发送完毕? 处理接收的字符 CPU处理其他事务 结束程序? 有新发送请求? 程序初始化(含INS8250初始化) D0=1? D5=1? D3~D0≠0?
4、中断方式通信程序设计 (1)中断方式通信程序的初始化 初始化8259A 一般情况下,8259A已初始化 保存和修改中断向量 初始化8250 开放8259A中断 初始化结束(CPU处理其他事务) 按使用的COM口接管对应中断向量(0CH或0BH) 程序退出时恢复中断向量 设置波特率、通信协议参数 向量中断—置位MCR的OUT2 查询中断—复位MCR的OUT2 用OCW1开放COM口中断(IR3或IR4) 、设置IER 初始化8259A 一般情况下,8259A已初始化
(2)向量中断服务程序 读IIR D0—有无(0/1)未决中断请求 D2、D1—中断请求类型 Y D0=0? N D2D1=11 读LSR D4~D1位 根据错误原因进行相应处理 读RBR 写THR 读MSR D3~D0位 根据状态变化进行相应处理 中断返回 发送完毕? 处理接收的字符
串行接口INS8250复习思考: ①发送同步控制与接收同步控制有何不同? ②DLH/DLL值、波特率、XTAL1之间关系如何? ③画出SIN接收到字符‘A’的波形(字符其它格式自定)。 ④为什么“RBR满”中断请求优先级比“THR空”高? 提示:考虑有无握手协议及传输数据的遗漏问题 ⑤读取IIR时,IIR值的变化原理是什么?如何不遗漏中断源的请求? ⑥为什么PC机将COM口的中断请求设置为IRQ3,而不是IRQ7? ⑦初始化INS8250时,为何先设置波特率后设置数据格式? ⑧PC机串口中断方式通信时,初始化的步骤有哪些? ⑨PC机串口中断方式通信时,正确的中断服务程序返回条件是什么?用汇编语言编写中断服务程序的框架。