设为首页 加入收藏

TOP

微机原理与系统设计笔记5 | 总线及其形成(一)
2023-07-23 13:28:51 】 浏览:44
Tags:计笔记

  • 打算整理汇编语言与接口微机这方面的学习记录。本部分介绍8086的总线。

  • 参考资料

    • 西电《微机原理与系统设计》周佳社
    • 西交《微机原理与接口技术》
    • 课本《汇编语言与接口技术》王让定
    • 小甲鱼《汇编语言》

1. 总线定义与分类

讲道理这部分学校老师不强调这个,尤其是引脚(说我们记不住),而视频里老师讲得很多。

总线是计算机系统中传输各类信息的公共通道。按照功能层次,有四类:

  1. 片内总线

    连接集成电路芯片内部各个功能单元的信息通路。

  2. 元件级总线(板内总线)

    连接同一个插板内各个元件的总线,类似于PCB板上的走线。

  3. 内总线/系统总线(版级总线)

    连接各个插件板(微处理之间器、主存储器、I/O接口)之间的通路。PCI、ISA、STD总线就是这一层次。

    本章涉及也是这一层次的总线。

  4. 外总线/通信总线(I/O总线)

    连接微机主体与I/O设备、仪表以及其他微机的总线。

视频里老师就讲到这里。课本上后面又讲解了几个系统总线,我对PCI比较感兴趣,操作系统课程设计也用到了这个总线。不过微机角度的PCI主要是结构、时序方面,对编程要求不大。

  • 上图5.1是一个具备PCI总线的典型结构,里面有3个总线(HOST PCI ISA)以及3个桥设备
  • HOST总线也称存储总线,连接微处理器、Cache、内存
  • PCI总线连接高速I/O接口,因此这些设备也称为PCI设备
  • HOST桥:也叫PCI总线控制器,连接HOST和PCI。
  • PCI-PCI桥:扩展PCI总线。
  • PCI-ISA桥:扩展接入标准,符合ISA的设备也可以接入系统。
  • 桥设备的用处:
    • 地址空间映射
    • 数据缓冲,因为PCI总线基本是突发事件传送,没有缓冲,加上桥设备可以处理时序、流量等更多情况。
    • 实现不同层次总线的协议和电平转换。

2. 几种常用芯片

这块没学过,应该电信方面的数电学过,数字逻辑没有讲过。汇编这门课也没有讲(好像),不整理了。总而总之,这几个芯片是用于总线驱动、管理的封装好的电路。

2.1 74LS244

8位数据单向缓冲器。可用作输入端口的缓冲。

2.2 74LS245

8位数据双向缓冲器。可以用作总线连接的双向缓冲,也能当做74LS244来用(Dir接地,常0)。工程中也更常使用74LS245。

2.3 74LS373/74LS374

8位锁存器。常让OE接地==0。74LS374与之类似,只是G端变为CP时钟,时钟上升沿能够保持数据。

2.4 74LS138

就是一个3-8译码器。

三个使能端,分别接入1-0-0才能正常工作,A0A2是输入端,输出Y1Y7的8根线。使能端1-0-0后,当A2 A1 A0输入110,则输出端的Y6显示低电平。

图1 74LS138

3. 8086引脚功能以及总线形成

为什么又要说引脚呢?引脚就是微处理器级总线,微处理器 通过 微处理器级总线/引脚 与外面的IO电路连接,组成主机板系统,也就形成了系统级总线。

说实话这部分虽然打通数电微机和计组,但是,但这个角度比较难理解。从逻辑设计Verilog角度比较好理解时序,时序是人可以设计出来的,只不过到了8086微机中,Intel规定了一切。

  • 整体上看,8086是40根引脚双列直插,部分引脚分时复用,有两种功能。电源电压为+5V±10%

  • RESET,复位信号,高电平有效。这里老师讲了8254时钟发生器,使得RESET和时钟上升沿一起到来(具体实现不关心了)。RESET信号的高电平有效至少要持续4T才能复位。

    复位后,DS、ES、SS、IP、PSW、指令队列寄存器都清0,CS=0FFFFH。所以启动地址cs:ip是FFFF0H,其他通用寄存器值不确定。

    对于FFFF0H,已经在内存的很高地址,所以接下来需要远程跳:jmp far ptr xxxxh,向低地址跳转。51单片机的复位中PC寄存器直接置0就没有这个问题。

  • clk时钟输入引脚,8086的工作时钟<5MHZ。基本的总线周期是4个时钟周期,而非基本总线周期则是3个clk+1个等待周期。

  • MN/MX fei:工作模式选择。加高电平--最小方式;加低电平--最大方式。两种方式不同的是上图中24~31脚。

    • 最小模式下,CPU对外部存储器、IO的读写等控制信号由CPU直接产生。适合构成单处理器系统。

    • 最大模式下,不由CPU直接产生,而由8086CPU外部的总线控制器芯片8288产生。CPU通过26、27、28引脚来控制8288,8288来译码并产生相应控制信号。适合构成多处理器系统。

3.1 最小方式(重点)

  • AD0AD15、A16/S3A19/S6:分时复用,地址线和存储器、IO的数据线;高四位地址线和状态线。

  • ALE 地址锁存:在上图的T1周期内电位变高。变高就知道了上面最重要的T1已经到来。在拿到T1来到的信息后就可以拿到16位地址,可以用74LS373来存储。

    注意,这里已经开始和5.3节总线形成一起讲了。

    用ALE来作74LS373的G引脚,可以将地址信息锁存4周期。3片74LS373(总线形成电路)输出的A0~A19就是系统级的总线了。

    同理,上面介绍的是地址线,数据总线与其他控制信号结合(元件级总线、微处理器级总线),使用74LS245,就能产生数据系统级总线

    还有S3~S6。

    • S6没用

    • S5,状态寄存器的状态位IF置1,S5==1。

    • S4和S3反应CPU目前操作使用的是哪个段寄存器。

  • DT/(R fei):数据传输方向控制信号,CPU向外输出高电平,向内输入低电平。

    它的时序:比如开始执行mov [BX],AX,向外输出,所以T1~T4高电平,之后高或低取决于下一条指令。

  • DEN fei:数据有效信号,数据传送进出CPU时,该信号低电平。

  • M/(IO fei):高电平为操作存储器,低电平选择IO

  • WR fei:数据信号有效后,产生低电平写信号,并在数据信号有效结束之前,完成写操作。

    存储器读是 RD fei

下面画8086数据总线的形成电路:

10

  • READY:输入引脚,上升沿采集,下降沿测试,如果READY为低电平,则CPU就得知设备没有准备好,在正常总线周期的第四个T内进入TW等待周期。实现慢速设备和快速设备之间的同步

    READY的下降沿要和CPU时钟的下降沿同步,设计比较复杂,这个过程会在8284内做,做到同步输出。

  • TEST fei:测试信号,低电平有效。CPU执行WAIT指令,每隔5个周期对TEST端进行测试,若高电平继续等待,低电平进入下一条指令。也能达到快慢设备的同步。

  • BHEfei/S7:高字节允许信号。低电平有效。低电平表示使用高8位数据线,高电平低8位数据线。

    类似于ALE,注意在上图5.14中,ALE、BHE也锁存在74LS373,下图看看:

    补充:8086和8088的区别:

    • 内部,指令队列寄存器8086 6字节,8088 4字节
    • 外部,8086 20根地址线,8088 16根地址线,最小方式下且8086 M/IOfei,8088 IO/Mfei
  • INTAfei(出,CPU回答是否响应可屏蔽中断的信号,会连回两次,第一次回复可响应中断,第二次问内容,此后数据线低八位拿数据),INTR(入)和NMI,不提了。

  • HOLD(输入),其他总线主控设备申请信号,高电平有效。

    HLDA(输出),CPU对总线使用权的应答,

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇《痞子衡嵌入式半月刊》 第 63 期 下一篇AIR32F103(九) CAN总线的通信和ID..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目