汇编C及C++对IO的访问_第1页
汇编C及C++对IO的访问_第2页
汇编C及C++对IO的访问_第3页
汇编C及C++对IO的访问_第4页
汇编C及C++对IO的访问_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、汇编C及C+对IO的访问I/OI/O芯片名称芯片名称 地址范围地址范围 DMAC1 DMAC2 DMA页面寄存器 0000-001FH 00C0-00DFH 0080-009FH 中断控制器1 中断控制器2 0020-003FH 00A0-00BFH 定时器 并行接口芯片(键盘接口) RT/CMOS RAM 协处理器 0040-005FH 0060-006FH 0070-007FH 00F0-00FFH 系统板系统板I/OI/O接口芯片端口地址接口芯片端口地址(0000H-00FFH)(0000H-00FFH): PC/AT PC/AT:A A8 8=A=A9 9=0=0端口端口(256(25

2、6个个) )为系统板所用,为系统板所用,其他端口其他端口(768(768个个) )为扩展槽所用。为扩展槽所用。返回29页 扩展槽扩展槽I/OI/O接口卡端口地址接口卡端口地址(0100H-03FFH)(0100H-03FFH):I/OI/O接口名称接口名称 地址范围地址范围 游戏控制卡 0200-020FH 并行口控制卡1 并行口控制卡2 0370-037FH 0270-027FH 串行口控制卡1 串行口控制卡2 03F8-03FFH 02F8-02FFH 原型插件板(用户可用) 0300-031FH 同步通信卡1 同步通信卡2 03A0-03AF 0380-038FH 单显MDA 彩显CGA

3、 彩显EGA/VGA 03B0-03BFH 03D0-03DFH 03C0-03CFH 软驱控制卡 硬驱控制卡 03F0-03FFH 01F0-01FFH PC网卡 0360-036FH 用户用户I/OI/O端口地址选用原则:端口地址选用原则: 系统配置占用的端口地址一律不能用;系统配置占用的端口地址一律不能用; 厂家声明保留的端口地址不要用;厂家声明保留的端口地址不要用; 其余端口地址可用,为避免冲突最好采用其余端口地址可用,为避免冲突最好采用DIPDIP。3.I/O3.I/O端口地址译码方法端口地址译码方法 一个一个I/OI/O接口对应多个连续接口对应多个连续I/OI/O端口。端口。 I/

4、O I/O接口芯片片选(接口芯片片选(CSCS)译码:)译码: IOW/IOR IOW/IOR信号信号( (有效有效) )、AENAEN信号信号( (无效无效) )和和I/OI/O端口地端口地址高位。址高位。 I/O I/O接口芯片内部端口译码:接口芯片内部端口译码: I/O I/O端口地址低位。端口地址低位。 例例1 1:并行接口使用:并行接口使用8255A8255A芯片,地址空间芯片,地址空间60H-63H60H-63H。A1A1A0A0A9-A2A9-A2地址总线地址总线RDRDWRWRRESETRESETIO/MIO/MAENAEN控制总线控制总线CSCSD0-D7D0-D7数据总线数

5、据总线RDRDWRWRRESETRESETA1A1A0A08255A8255APA0-7PA0-7PB0-7PB0-7PC0-7PC0-7 多个接口时,采用单独译码多个接口时,采用单独译码/ /集中译码?集中译码?返回下页数据总线数据总线地址总线地址总线控制总线控制总线CPUD7-D0CSAx-A0WRRD设设备备侧侧信信号号D7-D0CSAx-A0WRRD设设备备侧侧信信号号82598253MEMY0Y7ABCG2BG2AG11514131211109712345674LS138DMA825982538255系统系统空闲空闲00H20H40H60H3FFH1FH3FH5FH7FH: 例例2

6、2:多个接口集中译码。:多个接口集中译码。 如何区分如何区分MEMMEM和和I/OI/O?转上页返回26页4.I/O4.I/O端口访问端口访问 CPU CPU通过通过I/OI/O指令对指令对I/OI/O接口进行访问。接口进行访问。 汇编语言指令:汇编语言指令:ININ、OUTOUT。 C C语言指令:语言指令:inportb(inport)inportb(inport)、outportb(outport)outportb(outport)。 VC+ VC+指令:指令:_inp(_inpw)_inp(_inpw)、_outp(_outpw)_outp(_outpw)。 例:读取例:读取CMOSC

7、MOS信息。信息。main() int i; unsigned char c_CmosMessage64; for (i=0;i=63;i+) outportb(0 x70,i); c_CmosMessagei=inportb(0 x71) ; printf(CMOS信息读取完毕。n); ;功能:读取CMOS信息;调用:AL=CMOS地址;返回:AL=CMOS内容 proc_read_cmos proc cli or al,80h ;屏蔽NMI out 70h,al jmp $+2 ;延迟 in al,71h ;读CMOS数据 sti ret proc_read_cmos endp5.I/O5

8、.I/O指令与接口实现指令与接口实现 执行执行CPUCPU指令:指令:MOV DXMOV DX,42H42H OUT DX OUT DX,8AH8AH 控制总线:控制总线:IOWIOW有效、有效、IORIOR无效、无效、MEMR/MEMWMEMR/MEMW无效、无效、 AENAEN无效。无效。 地址总线:将地址总线:将42H42H写入写入A9A9A0A0。 译译 码码 器:根据器:根据DXDX高位译码,高位译码,Y Y2 2有效,其他有效,其他Y Yx x无效。无效。 接口芯片:接口芯片:82538253工作,其他接口芯片不工作。工作,其他接口芯片不工作。 接口电路:接口电路:82538253

9、对应接口电路应答选中信号,对应接口电路应答选中信号,82538253根据根据DXDX低位选择相应的寄存器。低位选择相应的寄存器。 8253 8253: 接受数据总线接受数据总线(D7(D7D0)D0)数据数据(8AH)(8AH),写入,写入所选寄存器。所选寄存器。转24页二、二、I/OI/O端口地址译码电路的几种形式端口地址译码电路的几种形式1.1.固定式端口地址译码固定式端口地址译码 接口中只有一个端口时可采用门电路构成。接口中只有一个端口时可采用门电路构成。 接口中有多个端口时一般采用译码器电路构成,常接口中有多个端口时一般采用译码器电路构成,常见的译码器有见的译码器有74LS13874L

10、S138、74LS15474LS154等。等。 74LS138 74LS138译码器:译码器:工作条件:工作条件: G G1 1=1=1,G G2A2A=G=G2B2B=0=0。Y0Y7ABCG2BG2AG11514131211109712345674LS138工作原理:工作原理: 将复合的输入信号变为枚举的将复合的输入信号变为枚举的输出信号。输出信号。输输 入入输输 出出G1G2AG2BC B AY7 Y6 Y5 Y4 Y3 Y2 Y1 Y01 0 00 0 0 1 1 1 1 1 1 1 01 0 00 0 1 1 1 1 1 1 1 0 11 0 00 1 0 1 1 1 1 1 0 1

11、 11 0 00 1 1 1 1 1 1 0 1 1 11 0 01 0 0 1 1 1 0 1 1 1 11 0 01 0 1 1 1 0 1 1 1 1 11 0 01 1 0 1 0 1 1 1 1 1 11 0 01 1 1 0 1 1 1 1 1 1 10 X XX X X 1 1 1 1 1 1 1 1X 1 XX X X 1 1 1 1 1 1 1 1X X 1X X X 1 1 1 1 1 1 1 1输入输入/ /输出真值表:输出真值表: CBA CBA连续时,连续时,Y Y0 0Y Y7 7亦为连续的。亦为连续的。Y0Y7ABCG2BG2AG11514131211109712

12、345674LS138A5A6A7A8A9AENDMACS(8237)INTRCS(8259)T/C CS(8253)PPICS(8255)WRTDMAPG11WRTNMIREGIOW74LS13874LS138在在PCPC机系统板端口译码的应用:机系统板端口译码的应用:转20页为何中断控制为何中断控制1 1端口地址为端口地址为0020H-003FH0020H-003FH?AEN=AENIO/MAEN=AENIO/M。Y0Y7ABCG2BG2AG11514131211109712345674LS138A3A4A5A8A9AEN?1A6每个出端对应接口的端口数量?每个出端对应接口的端口数量?Y1

13、Y1、Y4Y4对应端口地址?对应端口地址?8 8个个08H(88H)08H(88H)、20H(A0H)20H(A0H)7.2 7.2 微机系统与与输入微机系统与与输入/ /输出设备信息交换输出设备信息交换7.2.1 7.2.1 无条件传送方式无条件传送方式 特点:特点:I I时假设外设已准备好,时假设外设已准备好,O O时假设外设空闲。时假设外设空闲。 要求:接口要求:接口I I时加缓冲器,时加缓冲器,O O时加锁存器。时加锁存器。 应用:对简单外设的操作。应用:对简单外设的操作。7.2.2 7.2.2 查询方式查询方式 工作原理:工作原理:CPUCPU查询外设已准备好后,才传送数据。查询外设

14、已准备好后,才传送数据。 特点:特点:CPUCPU与外设间自然同步。与外设间自然同步。 要求:不需要增加额外的硬件电路。要求:不需要增加额外的硬件电路。 应用:适用在应用:适用在CPUCPU不太忙且传送速度要求不高时。不太忙且传送速度要求不高时。7.2.3 7.2.3 中断传送方式中断传送方式 特点:特点:CPUCPU与外设可同时工作。与外设可同时工作。 要求:接口中需要中断控制逻辑支持。要求:接口中需要中断控制逻辑支持。 应用:适用于非高速度大量数据传送时。应用:适用于非高速度大量数据传送时。7.2.4 7.2.4 直接存储器存取直接存储器存取(DMA)(DMA)方式方式 特点:数据的传送不

15、经过特点:数据的传送不经过CPUCPU,I/OI/O设备管理由设备管理由CPUCPU控控制,简化制,简化CPUCPU对对I/OI/O的控制。的控制。 要求:需要要求:需要DMADMA控制器及相关逻辑支持。控制器及相关逻辑支持。 应用:适用与高速度大量数据传送时。应用:适用与高速度大量数据传送时。7.2.5 I/O7.2.5 I/O处理机(处理机(IOPIOP)方式)方式 特点:特点: I/OI/O处理机接管了处理机接管了CPUCPU的各种的各种I/OI/O操作及操作及I/OI/O控制功能,控制功能,CPUCPU能与能与IOPIOP并行工作。并行工作。 要求:需要要求:需要IOPIOP支持。支持

16、。 应用:高速应用:高速I/OI/O归归IOPIOP管理,低速管理,低速I/OI/O设备归设备归CPUCPU管理。管理。8253的组成与功能 13个独立的16位计数器 3个计数器分别为计数器个计数器分别为计数器0、计数器、计数器1、计数器计数器2,每个计数器的内部逻辑结构如图,每个计数器的内部逻辑结构如图所示。所示。 如图、图所示为如图、图所示为8253/82548253/8254的内部结构的内部结构及引脚图。及引脚图。7.3 可编程计数/定时器 8254图图4.6 8253/8254的内部结构示意图的内部结构示意图图图4.7 8253引脚图引脚图图图4.8 8253/8254计数器内部逻辑图

17、计数器内部逻辑图 2控制命令寄存器 此寄存器用来保存来自此寄存器用来保存来自CPU送入的控制字。送入的控制字。每个计数器都有一个控制命令寄存器,用于保每个计数器都有一个控制命令寄存器,用于保存该计数器的控制信息。控制字将决定计数器存该计数器的控制信息。控制字将决定计数器的工作方式、计数形式及输出方式,也能决定的工作方式、计数形式及输出方式,也能决定应如何装入计数器初值。应如何装入计数器初值。8253的的3个控制寄存器个控制寄存器只占用一个地址号,而靠控制字中最高二位来只占用一个地址号,而靠控制字中最高二位来指定当前的控制字是发给哪一个计数器的。控指定当前的控制字是发给哪一个计数器的。控制寄存器

18、只能写入,不能读取。制寄存器只能写入,不能读取。 3读/写逻辑 读读/写逻辑的任务是接收来自写逻辑的任务是接收来自CPU的控的控制信号,完成对制信号,完成对8253各计数寄存器的读各计数寄存器的读/写写操作。这些控制信号包括读信号操作。这些控制信号包括读信号RD、写信、写信号号WR、片选信号、片选信号CS和片内寄存器对址信和片内寄存器对址信号号A0、A1。 4数据总线缓冲器 这是一个双向、三态这是一个双向、三态8位缓冲器。它用于位缓冲器。它用于8253和系统数据总线连接。和系统数据总线连接。CPU通过数据总线通过数据总线缓冲器将控制命令字和计数值写入缓冲器将控制命令字和计数值写入8253计数器,计数器,或者从或者从8253计数器读取当前计数值。计数器读取当前计数值。 8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论