1
微机接口与通信主讲,任国林
2
引 言一、专业相关问题
1、计算机系统对我们来说是什么?
计算机系统是研究目标,非应用工具。
2、如何保持教育的长期有效性?
强化基础:掌握基本的理论、知识、技能与方法;
面向系统:硬件、软件、理论、实践四条线;
兼顾应用:应用 → 设计 → 研究。
3
二、本课程在系统中的位置应用语言级高级语言级汇编语言级操作系统级传统机器级微程序机器级电子线路组成原理模拟与数字逻辑电路系统结构微型机与接口技术信号与系统计算机网络外部设备离散数学、数值分析
C++,Java编译原理汇编语言操作系统软件工程应用系统程序设计基础及语言数据结构数据库原理软件体系结构
4
三、本课程目标
1、课程目标掌握计算机及各种接口的工作原理;
掌握计算机与外设的通信原理;
利用计算机接口进行应用编程;
培养各种接口的分析、设计能力。
2、学习方法建立计算机整机概念,并以此为所有学习基础;
从软件功能 → 硬件实现出发,掌握接口工作原理;
根据 I/O接口工作原理,应用接口实现具体功能;
从接口原理中归纳出接口设计的一般方法;
从应用环境出发,掌握通信原理并进行编程。
5
第一章 微机结构的发展
6
第一节 微机系统整机结构一、微机系统的组成
1、微机系统组成由硬件和软件两部分组成。
硬件系统软件用户软件 用户程序、用户程序库操作系统、系统应用软件运算器、控制器、存储器,I/O设备思考 1,用户软件、系统软件与硬件三者的关系?
思考 2,硬件与软件的接口?
7
2、程序员与微机系统使用不同语言编程的程序员所见微机系统的属性不同。
硬 件 系 统应用语言级系统高级语言级系统汇编语言级系统操作系统级系统应用语言和集成环境高级语言和集成环境汇编语言和集成环境操作系统平台和机器语言指令系统环境机器语言指令系统和相关资源环境
8
3、用户软件功能的实现过程所有功能均基于机器语言指令系统而实现。
机器语言级程序应用语言级程序高级语言级程序汇编语言级程序操作系统平台的功能调用作为软件中断处理





① ① ① ①
说明:
① --源程序
② --编译过程
③ --执行程序编程集成环境,便于编程系统硬件执行机器语言程序操作系统控制与调度③
思考,用户程序如何才能由系统硬件执行?
9
二、微机硬件结构
1、硬件结构
CPU
地址总线 (AB)
RAM I/O接口 I/O设备ROM
数据总线 (DB)
控制总线 (CB)
用户软件功能的实现途径 — CPU
CPU与外部通信途径 — 总线思考 1,为什么要采用 总线结构?
总线与 I/O设备通信途径 — I/O接口思考 2,为什么需要 I/O接口连接 I/O设备?
返回 13页 返回 14页 返回 16页 返回 17页
10
2,CPU实现软件功能
ALU内部总线
EU 控制部件执行单元 EU
总线 控制逻辑外部总线总线接口单元 BIU
ALU 通用寄存器组段寄存器组指令指针寄存器指令队列 /
指令缓冲器地址生成逻辑指令译码部件内部暂存器
( 1)机器语言程序如何执行?
用户启动程序执行 --通过 I/O设备要求 OS执行程序;
OS启动程序执行 — 将程序调入 CPU指令队列;
CPU执行程序 — 执行指令队列中的指令。
返回下页 返回 12页
11
( 2) CPU能够实现的主要功能?
运算,算术运算、逻辑运算、字符串等;
程序控制,JMP/Jcc,SKIP,CALL/RET,LOOP等;
数据传送,REG,MEM,I/O、堆栈等部件间传送;
系统控制,STI/CTI,INTn、系统管理等。
( 3) CPU如何实现控制指令执行顺序的功能?
控制器根据指令结果改变指令指针 REG值;
下条执行指令总为指令指针 REG值对应处指令。
转上页 返回 18页
( 4) 存放指令的操作数的部件有哪些?
( 5)指令中如何区分这些部件?
通过操作码、寻址方式中的一种。
12
( 6)指令中如何表示这些部件的地址空间?
统一编址或独立编址。
( 7) CPU如何执行软件指令?
将软件指令变成硬件指令(信号组合)并执行。
( 8) CPU如何实现软件指令到硬件实现的转换?
指令译码 — 指令译码器实现软件信息(操作码、
地址码、寻址方式)到硬件信号的转换;
信号控制 — 控制器实现各硬件信号的协调控制。
( 9) CPU哪些指令需要使用总线?如何在总线上表示?
与 MEM,I/O设备交互的指令;
三种类型总线( A,D,C)信号及其时序。
转 10页
13
3,CPU与外部通信 — 通过总线实现主动方式 --CPU数据传送指令 (针对 MEM和 I/O设备 );
被动方式 --I/O设备产生中断,CPU响应中断。
( 1)指令如何能够区分 MEM和 I/O设备?
MEM
I/O设备
N
X
X-1
0
MOV指令
MEM I/O设备
X-1
0
MOV指令 IN/OUT指令
N-X
0
为保持可扩展性,部件一般采用独立编址方式。
思考,需要什么样的结构区分存储器和 I/O接口?
转 9页
14
( 2)指令中地址如何能够区分不同 I/O设备?
约定 不同 I/O设备 (接口 )具有不同的地址。
( 3)指令如何能够对同一 I/O设备实现不同功能?
不同指令 (IN/OUT)实现一部分功能 (方向 );
给同一 I/O设备分配多个地址实现一部分功能;
约定同一地址的数据中的部分位实现一部分功能。
( 4) CPU如何被动控制某 I/O设备?
I/O接口电路产生并保持中断请求;
CPU等待当前指令执行完成;
CPU取得并区分是何 I/O设备的何种控制请求;
CPU调用具体的中断服务程序进行处理。
转 9页
15
4,I/O接口与总线的通信
I/O接口有接收 CPU控制和控制外设两种功能。
( 1) I/O接口如何知道自己被选中?
每个 I/O接口均有片选引脚 CS#,有效时被选中,
被选中时才可执行总线上的命令 (参与总线通信 )。
( 2)如何保证对某命令只有一个 I/O接口被选中?
通过实现各接口的地址不重叠的约定来保证。
( 3) I/O接口与外设通信时,它与 CPU关系?
I/O接口根据 CPU的设定 独立地 与外设通信,与此时的接口 CS#状态无关;
CPU更新设定 (发送命令到总线 )时,命令使某接口 CS#有效,接口接收各种控制 (设定 )。
16
5,I/O接口电路与外设间的通信
( 1) I/O接口电路与外设速度不同,如何同步?
通过异步握手协议实现 (两端不停地采样握手信号来决定自己如何动作 )。
( 2)外设的接口电气特性为非 TTL电平时,I/O接口如何控制?
I/O接口将从 CPU处接收的命令,转化成与外设接口匹配的信号,对外设进行控制。
( 3)外设如何主动与 I/O接口通信?
外设向 I/O接口发请求信号,I/O接口接收并处理外设的请求,有需要时 I/O接口向 CPU发出中断请求。
转 9页
17
三、本课程内容组织第一章 --CPU如何与总线通信,CPU的信号与工作模式第二章 --CPU如何与 MEM或 I/O设备通信,I/O接口与译码第三章 --总线如何工作:总线标准第五章 --I/O接口如何主动与 CPU通信:中断 8259和 DMA
第六章 --定时与计数接口,8254
第七章 --并行通信接口,8255与打印机接口标准第八章 --串行通信接口:串行通信协议与 8250
第十章 — PC机高级编程,PⅡ 内存管理,DWM驱动程序编写转 9页
18
第二节 微处理器结构一,8086/8088微处理器转 11页 返回下页
1、内部结构
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位指令指针段寄存器返回 20页
19
结构及组成:
EU(ALU及 RF、控制器、译码器 ),
BIU(IQ及 IP,MEM管理 RF和部件、总线控制逻辑 )。
实现功能,— 实现机器语言指令系统的功能运算、程序控制、数据传送、系统控制等。
思考 1,为什么设置通用 REG?
思考 2,如何实现程序控制功能?
思考 3,设置指令队列的目的是什么?
转上页
20
存储系统管理机构:
思考 4,如何实现逻辑存储空间> 2REG长度?
思考 5,如何区分从存储器取回的是什么信息?
思考 6,如何解决物理空间<逻辑空间问题?
用段式或页式方式管理存储空间;
用地址映像及变换机构实现逻辑地址 → 物理地址。
思考 7,如何解决程序动态定位问题?
增加基址寻址方式,配置地址加法器。
转 18页
21
2,8086/8088引脚信号
A/D信号:
AD0-AD7、
A8-A15,A16-A19
C/S信号:
RD#,WR#,IO/M#、
S3-S6,DEN#,DT/R#等中断信号:
NMI、
INTR,INTA#
其它信号:
CLK,RESET、
READY,TEST#、
MN/MX#
转下页 返回 23页 返回 26页
22
S4,S3,表示正在使用的寄存器
S4 S3 当前正在使用的寄存器
0 0 ES
0 1 SS
1 0 CS或未使用任何段寄存器
1 1 DS
S5,=1,CPU可响应可屏蔽中断请求;
=0,CPU禁止一切可屏蔽中断请求。
S6,恒等于零。
返回上页思考 1,为什么要区分不可屏蔽中断和可屏蔽中断?
为什么中断请求有 /无只用一根信号线?
思考 2,为什么 8088没有 CS#引脚信号?
23
3,8086/8088的最小工作模式转 21页 返回下页 返回 25页
8286
数据收发器
8283
地址锁存器
MEM或 I/O设备
24
8088最小模式总线操作对应信号:
IO/M DT/R SSO 操作
1 0 0 发中断响应信号
1 0 1 读 I/O端口
1 1 0 写 I/O端口
1 1 1 暂停
0 0 0 取指令
0 0 1 读内存
0 1 0 写内存
0 1 1 无操作转上页
25
8088最小模式总线操作信号时序图:
转 23页
CLK
T1 T2 T3 T4
A19~A16/S6~S3 地址输出 状态输出地址输出地址输出 数据
A15~A8
AD7~AD0
IO/M 低 — MEM,高 — I/O
WR或 RD
ALE
DEN
DT/R 低 — 接收,高 — 发送
26
4,8086/8088的最大工作模式转 21页返回下页 返回 29页
8283
地址锁存器
8286
数据收发器
MEM或 I/O设备
27
8088最大模式总线操作对应信号:
S2S1S0 操作 8288产生的控制信号 指令举例
000 发中断响应信号 INTA 无
001 读 I/O端口 IORC IN AL,DX
010 写 I/O端口 IOWC和 AIOWC OUT DX,AL
011 暂停 无 NOP
100 取指令 MRDC 无
101 读内存 MRDC MOV AX,[1234H]
110 写内存 MWTC和 AMWTC MOV [BX],AX
111 无操作 无 无转上页 返回下页
28
8288引脚信号:
1
2
3
4
5
6
7
8
9
10
20
19
18
17
16
15
14
13
12
11
IOB
CLK
S1
DT/R
ALE
AEN
MRDC
AMWTC
MWTC
GND
VCC
S0
S2
MCE/PDEN
DEN
CEN
INTA
IORC
AIOWC
IOWC
转上页 返回下页
29
8288在 PC/XT机中的连接:
ALE
DT/R
DEN
AIOWC
AMWTC
IORC
MWTC
MRDC
INTA
S0
S1
S2
AEN
CEN
CLK
IOB
S0
CPU S1
S2
AEN
AEN
CLK
STB( 8283地址锁存信号)
T( 8286数据传输方向)
OE( 8286数据总线允许)
IOW(写 I/O)
MEMW(写存储器)
IOR(读 I/O)
MWTC(写存储器)
MEMR(读存储器)
INTA(中断响应)
转上页 转 26页
30
5,8086/8088的存储器管理只支持实模式方式,与常规段式管理不同。
物理地址,20位 (1MB空间 )
16位段地址 16位段内偏移:逻辑地址:
地址变换,16位段地址
16位段内偏移
(左移四位)
+
20位物理地址=
注意,不同逻辑地址可对应同一物理地址。
实现,采用内存分段的办法,内存分为若干段,
段的大小根据需要决定,最大为 64KB 。
31
二,Pentium微处理器分支目标缓冲器代码
Cache 8KB
TLB
指令指针预取缓冲存储器指令译码部件
256位总线接口部件分页部件
64位数据总线预取地址
32位地址总线控制控 制 部 件地址生成
( U流水线)
地址生成
( V流水线)
控制
ROM
ALU
( U流水线)
ALU
( V流水线)
整数寄存器组桶形移位器数据 Cache
8KBTLB
浮点部件控制寄存器组加法器除法器乘法器
80位
80
位分支检测和目标地址
64位数据总线 32位地址总线
32位
32位
32位
32位
32位
32位
32
1,Pentium的寄存器
a.通用寄存器 16位通用寄存器高 16位扩展
32位通用寄存器
EAX,EBX,ECX,EDX,ESI,EDI,EBP和 ESP
b.段寄存器
CS,DS,SS,ES,FS和 GS
c.指令指针寄存器 16位的 IP高 16位扩展
32位指令指针寄存器 EIP
33
d.标志寄存器虚拟中断挂起位嵌套标志
I/O特权位恢复标志虚拟 8086模式对齐检查虚拟中断位标识位这部分同 8088
OF
31…… 2221 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DF IF TF SF ZF AF CFPFIOPLNTRFVMACVIFVIPID保 留
34
e,系统地址寄存器
GDTR,LDTR,IDTR,TR
f,控制寄存器
31 7 6 5 4 3 2 1 0
MC
E
0 PSE DE TSD VM
E
PVI保留,缺省为全 0 CR4
31 12 11 4 3 0
PWTPCD页目录基地址寄存器 CR3
页故障线性地址寄存器 CR2
31 0
保 留 CR1
WP
31 30 29 18 17 16 5 4 3 2 1 0
NE ET PEMPN
W
CDPG CR0
31 0
EMTSAM
35
2,Pentium的工作模式
实地址模式
1MB空间,分段管理,全在 0级
保护模式存储器可采用虚拟 /线性 /物理地址空间方式描述,
虚拟地址空间 64TB,4级管理,可以使用分页技术
虚拟 8086模式实地址模式 虚拟 8086模式内存管理 分段管理 既分段又分页存储空间 1MB 每个 8086程序任务寻址 1MB,总寻址空间 4GB
多任务 不支持 支持,利益是 Pentium保护模式中多任务的一个任务
系统管理模式
36
三,Pentium II 微处理器
L2 Cache
后端总线主 存前端总线总线接口单元 BIU L1数据 Cache 16KB
L1指令 Cache
16KB
指令预取单元 IFU
分支目标缓冲器 BTB
存储器排序缓冲器 MOB
x86指令译码器译码器 0
译码器 1
译码器 2
寄存器别名表 RAT
指令重排缓冲器 ROB
保留站RS
端口 4
微指令序列器 MIS
存储数据单元端口 3 存储地址单元端口 2 加载地址单元端口 1 MMX移位器MMX ALU
简单整数单元转移执行单元端口 0 MMX ALU
MMX乘法器复杂整数单元复杂浮点单元简单浮点单元结果总线
37
Pentium Pro核心 +MMX
1、特点
双独立总线结构
- 后端总线连接到 L2 Cache上
- 前端总线 FBS主要负责主存储器的信息传送操作
采用了最新的 Slot1接口标准
借鉴了 RISC技术来实现传统的 x86指令系统
- 每一条 x86操作都转换成简单的微操作
采用动态执行技术和寄存器重命名技术
2、控制寄存器
38
四,Pentium III 微处理器
增加了 70条 SSE指令
- 8条内存连续数据流优先处理指令
- 50条单指令多数据流浮点运算指令
- 12条新的多媒体指令
增加了 8个 128位单精度浮点数寄存器
首次内置序列号
加快了前端总线
39
第三节 PC系列微机结构发展一,PC/XT
结构,支持芯片功能、连接方式、地址空间微处理器 8088 协处理器 8087
ROM BIOS DRAM控制器 主板上的 RAM
8253
定时 /计数器
8259
中断控制器
8250
串行通信控制器
8255
并行接口
8237
DMA控制器
DMA
页面寄存器扩展总线缓冲
8个 8位 62引脚扩展插槽
PC总线
40
二,386/486
微处理器
80386/80486
总线控制器
Cache控制器 Cache 主存80387( 386
微机才有)
集成外围控制器 扩展总线 控制器实时时钟 /日历
CMOS RAM
ISA总线
CPU局部总线
41
三,南北桥结构的 Pentium II
Pentium II
处理器
Pentium II
处理器
CPU总线
82443BX
(北桥) 主存支持 SDRAM
66/100MHz2× AGP
总线图形设备
82371EB
( PIIX4E)
(南桥) ISA插槽
2个 IDE接口
2个 USB接口
I/O
APIC
PCI总线
PCI插槽系统 BIOS
ISA总线
42
四、中心结构的 Pentium III
键盘鼠标串行口并行口处理器
8XX系列存储控制中心中心高速接口
I/O控制中心固件中心
PCI槽
PCI总线
IDE驱动器
USB端口
AC’97编码 Super I/OLPC I/F
AGP图形控制器 主存储器处理器
CPU总线
LAN连接
43
五、现代微机发展的特点
微处理器性能不断增强
微处理器支持芯片被高度集成
主板总线结构发生改变
保持向上兼容性
微机主板结构发生很大变化
44
第四节 Intel 815EP芯片组
45
一,82815EP MCH芯片具有 32位系统总线,66/100/133MHz系统总线频率集成 SDRAM控制器支持包含 4× AGP数据传送的 AGP 2.0
支持智能集中仲裁的总线请求模式符合 ACPI电源管理规范具有 APIC缓冲管理支持 82801AA( ICH)和 82801BA( ICH2)两种芯片的桥电路
46
47
二,82801BA( ICH2)芯片
支持 PCI2.2规范
集成了 LAN(局域网)控制器
集成了 IDE控制器,支持 Ultra ATA/100/66/33
集成了 USB控制器,符合 USB1.1规范
为音频和电话编码解码器设置的 AC’97链接
集成了中断控制器
基于 82C54的时钟
拥有 256字节电池供电的 CMOS SRAM,硬件实现世纪变换
有两个级联的 8237DMA控制器,支持 PC/PCI和 LPC DMA
允许连接像 Super I/O那样的传统的 ISA和 X总线设备
通过可选的外接 PCI-ISA桥来支持 ISA总线
48
49
三,SIO LPC47B27X
芯片