欢迎来到天天文库
浏览记录
ID:38298155
大小:328.60 KB
页数:25页
时间:2019-06-08
《页汇编C及C+对IO的访问》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四节接口分析与设计方法一、x86系列微机接口分析1.I/O接口硬件分类系统板上I/O芯片和I/O扩展槽接口卡。2.I/O端口地址分配PC系列I/O地址线有16根,对应64K空间;PC/XT的I/O端口译码只使用了A0-A9,共1024个端口,地址范围为0000H~03FFH。不同的微机系统对I/O端口地址的分配不同。初期:A9=0端口(512个)为系统板所用,其他端口(512个)为扩展槽所用。1I/O芯片名称地址范围DMAC1DMAC2DMA页面寄存器0000-001FH00C0-00DFH0080-009FH中断控制器1中断控制器20020-003FH00A
2、0-00BFH定时器并行接口芯片(键盘接口)RT/CMOSRAM协处理器0040-005FH0060-006FH0070-007FH00F0-00FFH系统板I/O接口芯片端口地址(0000H-00FFH):PC/AT:A8=A9=0端口(256个)为系统板所用,其他端口(768个)为扩展槽所用。返回29页2扩展槽I/O接口卡端口地址(0100H-03FFH):I/O接口名称地址范围游戏控制卡0200-020FH并行口控制卡1并行口控制卡20370-037FH0270-027FH串行口控制卡1串行口控制卡203F8-03FFH02F8-02FFH原型插件板(用户
3、可用)0300-031FH同步通信卡1同步通信卡203A0-03AF0380-038FH单显MDA彩显CGA彩显EGA/VGA03B0-03BFH03D0-03DFH03C0-03CFH软驱控制卡硬驱控制卡03F0-03FFH01F0-01FFHPC网卡0360-036FH3用户I/O端口地址选用原则:系统配置占用的端口地址一律不能用;厂家声明保留的端口地址不要用;其余端口地址可用,为避免冲突最好采用DIP。3.I/O端口地址译码方法一个I/O接口对应多个连续I/O端口。I/O接口芯片片选(CS)译码:IOW/IOR信号(有效)、AEN信号(无效)和I/O端口地
4、址高位。I/O接口芯片内部端口译码:I/O端口地址低位。4例1:并行接口使用8255A芯片,地址空间60H-63H。A1A0A9-A2地址总线RDWRRESETIO/MAEN控制总线CSD0-D7数据总线RDWRRESETA1A08255APA0-7PB0-7PC0-7多个接口时,采用单独译码/集中译码?返回下页5数据总线地址总线控制总线CPUD7-D0CSAx-A0WRRD设备侧信号D7-D0CSAx-A0WRRD设备侧信号82598253MEMY0Y7ABCG2BG2AG11514131211109712345674LS138DMA825982538255系
5、统…空闲00H20H40H60H3FFH1FH3FH5FH7FH::::例2:多个接口集中译码。如何区分MEM和I/O?转上页返回26页64.I/O端口访问CPU通过I/O指令对I/O接口进行访问。汇编语言指令:IN、OUT。C语言指令:inportb(inport)、outportb(outport)。VC++指令:_inp(_inpw)、_outp(_outpw)。例:读取CMOS信息。main(){inti;unsignedcharc_CmosMessage[64];for(i=0;i<=63;i++){outportb(0x70,i);c_CmosMes
6、sage[i]=inportb(0x71);}printf("CMOS信息读取完毕。");};功能:读取CMOS信息;调用:AL=CMOS地址;返回:AL=CMOS内容proc_read_cmosprocclioral,80h;屏蔽NMIout70h,aljmp$+2;延迟inal,71h;读CMOS数据stiretproc_read_cmosendp75.I/O指令与接口实现执行CPU指令:MOVDX,42HOUTDX,8AH控制总线:IOW有效、IOR无效、MEMR/MEMW无效、AEN无效。地址总线:将42H写入A9~A0。译码器:根据DX高位译码,Y
7、2有效,其他Yx无效。接口芯片:8253工作,其他接口芯片不工作。接口电路:8253对应接口电路应答选中信号,8253根据DX低位选择相应的寄存器。8253:接受数据总线(D7~D0)数据(8AH),写入所选寄存器。转24页8二、I/O端口地址译码电路的几种形式1.固定式端口地址译码接口中只有一个端口时可采用门电路构成。接口中有多个端口时一般采用译码器电路构成,常见的译码器有74LS138、74LS154等。74LS138译码器:工作条件:G1=1,G2A=G2B=0。Y0Y7ABCG2BG2AG11514131211109712345674LS138工作原理:
8、将复合的输入信号变为枚举
此文档下载收益归作者所有