计算机基础知识--标准16位I/O设备的ISA总线周期

来源:互联网 发布:淘宝卖宠物用品赚钱吗 编辑:程序博客网 时间:2024/06/11 01:39

计算机基础知识--标准16位I/O设备的ISA总线周期

 

写在前面的话:英语水平也有限,错误在所难免,请各位大牛不吝赐教,完善翻译。便于大家受益,在此谢过!(翻译选自《ISA System Architecture》)

 

 图 1

 

图1阐述了当微处理器和16I/O设备通信时的ISA总线时序。时序图和下面的步骤试图说明16ISA总线在数据交换时,总线上发生的一系列事件。下面写的这些步骤分别与图上的标号相对应。

 

 1.如果系统板是基于80286、80386、奔腾处理器且地址流水线使能了,那么在总线周期开始前,LA部分的地址将优先出现在地址总线上。LA地址线上的数据对一个I/O设备的总线周期操作不会产生影响。因为在I/O总线上产生各种操作时,LA地址线上的数据总是zeros的。

 

2.BALE信号是在地址线上出现数据时段中产生,该信号使得系统板上的地址锁存器和总线控制逻辑单元工作,从而锁存SA地址线上的地址。

 

3.如果是一个写周期,微处理器会在地址线出现数据后将数据放到数据总线上。数据一直到该下个总线周期开始前的半个时钟周期间都会存在于数据总线上。

 

4.当数据总线上刚产生数据时,BALE的下降沿会是的系统板上的地址锁存器和总线逻辑控制器会锁住地址线的低20位数据。因此,在剩下的总线周期中,SA上的数据是不变的。译码器在BALE的下降沿后,可以安全的完成地址译码的工作。

 

5.控制线(IORC#和IOWC#)也是数据总线上产生数据的时段产生。这两根控制线在该总线周期结束前都保持有效。

 

6.在第一个数据时段的中间,系统板上的就绪时钟将忽略NOWS#和CHRDY两根控制线...唯一可以有零等待时间的是16位内存设备。

 

7.根据地址流水线,微控制器可以在本次总线期间输出下个总线周期地址数据。只有地址流水线的高位(LA部分)会出现地址线上。因为这部分地址是被人为的保存缓存器而未被系统的锁存器锁存。而SA部分的地址在下个总线周期的地址产生时段的中期才会出现在SA总线上。

 

8.IO16#线是在第二个数据时段产生,该信号是用来表明该I/O设备时8位还是16位的设备。

 

9.CHRDY信号是出现在第二个数据时段,用于判断设备已经准备好完成本次总线周期。如果设备不能在第二个时钟周期前完成总线周期的各操作,CHRDY将有效,设备在完成总线周期后释放该信号。

 

10.当CHRDY信号在整个总线周期有效时,一个 ISA 16位I/O总线周期为3个时钟周期(一个等待状态)。总线周期不会在NOWS#信号之前结束。这意味着获取16位I/O设备时,ISA总线周期中有一个等待状态,时间长度由CHRDY定。然后READY#信号会生效去通知微处理器,通知其从数据总线上读取数据,以及使总线控制逻辑开始工作。当一个I/O写总线周期结束是,IOWC#命令控制线失效,但是数据仍在数据总线上直至下个总线周期的地址出现时段(first half of address time)。这是对设备写数据的维持时间的调节,这些数据不会传入到出现的下个周期的地址所指向的端口上,因为下个总线周期的控制信号还没产生。

 

附:

 /*****************************************************************************************************

以下为,用C语言编写的ISA总线数据输入输出程序的测试波形。

由于示波器只有四个通道,所以只是选择性的选取了四路信号进行测量,大家也可以猜测图示的波形为什么信号。

*****************************************************************************************************/

 

 

 

原创粉丝点击