milkyway的窝

最初想法的诞生地

 

ISA总线知识

        什么是ISA总线?看了许多网上的帖子和微机接口的书,大概得到如下影象:
        首先它是一种微机总线.微机总线一般有三种:内部总线(各芯片与CPU互连的总线),系统总线(板卡间互连,如ISA,PCI,AGP),外部总线(微机与外设相连的总线,如USB,RS232).依照ISA的定义,属于系统总线.
       现有的ISA总线有两种观点.(1)来自IBM在1984年推出的IBM/AT微机采用的总线标准.所用机型为80286,386,486以及Pentium 2/3. 也称为AT总线. (2)由于IBM没有公开规格,Intel,IEEE,EISA集团开发了类似的ISA总线.
       ISA有8位和16位两种规格.我主要学习了16位的ISA.它共有98个(62+36)引脚,16条数据线,24根地址线,可以直接寻址内存16M,ISA的I/O地址空间为0100H-03FFH.实际上这是对于IBM/AT机来说的,因为只使用了16位I/O中的10位,可寻址范围为000-3FFH,其中系统板使用了000-0FFH,剩余的归ISA设备使用。
      在资料中的地址线定义为PCA0-PCA19(能锁存),LA17-LA23(不锁存),其中LA17-19和PCA17-19重复定义,因此ISA的地址线为24根。ISA具有7个DMA和15个中断.我所理解的ISA总线就是CPU板卡和外围ISA板卡的接口部件,相当于适配器.其工作过程为:CPU通过ISA总线操作外设,利用10位的I/O对外设寻址,从而操作外设.定义中用户可以使用的I/O地址为:100-1F0,1F9-1FF,280-2F7,300-35F.在操作之前要配置好寄存器。
例如在C语言中读写I/O:
写 OUTPORTB(OX3FB,OX80)
读 A=INPORTB(OX3FD)


        现在还没有搞明白操作寄存器和操作I/O端口有什么不同?我的理解是:两者接近于等价,因为一个I/O口可能是一个或者几个寄存器。

posted on 2006-12-29 23:31 milkyway 阅读(4502) 评论(4)  编辑 收藏 引用 所属分类: 基础知识

评论

# re: ISA总线知识 2007-01-02 14:18 相思酸中有甜

看到一种说法:寄存器对应系统的I/O端口的物理地址,或者是几个寄存器共用一个I/O.
我想这是在X86系统下,I/O采取和存储器分别编址的情况下.  回复  更多评论   

# re: ISA总线知识 2007-01-20 18:49 相思酸中有甜

外围部件的工作过程大致为:CPU通过地址总线译码形成外设板卡的I/O片选信号,控制总线工作,启动数据传输,从而对外设进行读写操作。
ISA总线操作包括存储器读写,I/O读写和DMA
北邮出版的<微机原理与接口技术> 王玉良主编这本书不错  回复  更多评论   

# re: ISA总线知识 2007-03-10 11:13 milkyway

在Raj Kamal的<嵌入式系统:体系结构\编程与设计>的P106提到
...ISA外设的保留地址是220-24F,278-27F,2F0-2F7,3C0-3CF,3E0-3F0  回复  更多评论   

# re: ISA总线知识 2007-10-21 16:57 netmuch

I/O占用的是寄存器。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


导航

统计

公告

随笔皆原创,文章乃转载. 欢迎留言!

常用链接

留言簿(37)

随笔分类(104)

随笔档案(101)

文章分类(51)

文章档案(53)

wince牛人

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜