工作原理
总线其实就是多个器材共同使用同一组线路的技术。平时在板卡上的样子就是一根根的印刷线路,也就是导线,以及一些芯片(总线控制器74LS系列里面就有,其实就是一个个三态门,可控制通断,负责把一个器件连上总线或者与总线断开,保证总线上同时只有一个器件在发送数据。
具体的I2C总线、PCI总线的区别更多地体现在里面的数据结构以及电平规范(什么电平是1,什么电平是0)上,而不是物理布线等实际的硬件结构。如果不考虑总线控制器,总线的物理结构就像是一些多管脚的器件并联在一起。
总线Bus是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束,按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、地址总线和控制总线。
总线是一种内部结构,它是CPU、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。
如果说主板(mother board)是一座城市,那么总线就像是城市里的公共汽车(bus),能按照固定行车路线,传输来回不停运作的比特(bit)。这些线路在同一时间都仅能负责传输一个bit。因此,必须同时采用多条线路才能传送更多数据,而总线可同时传输的数据数就称为宽度(width),以bit为单位,总线宽度越大,传输性就越好。总线的带宽(即单位时间内可以传输的总数据数)为:总线带宽=频率*宽度。
当总线空闲(其它器件都以高阻态形式连接在总线上)且一个器件要与目的器件通信时,发起通信的器件驱动总线发出地址和数据。其他以高阻态形式连接在总线上的器件如果收到(或者能够收到)与自己相符的地址信息后,即接收总线上的数据。发送器件完成通信,将总线让出(输出变为高阻态)。
总线分类
数据总线data bus
在CPU和ram之间来回传送需要处理或是需要储存的数据。
地址总线 address bus
用来指定在RAM(random access memory)之中存储的数据的地址。
控制总线 control bus
将微处理器控制单元的信号,传送到周边设备,一般常见位USB bus和1394 bus。
扩展总线 expansion bus
可连接扩展槽和电脑。
局部总线local bus
取代更高速数据传输的扩展总线。
其中:数据总线DB、地址总线AB、控制总线CB,也统称为系统总线,即通常意义上的总线。
有的数据总线DB、地址总线AB是复用的,即总线在某些时刻出现的信号表示数据而另一时刻则表示地址,而有的系统是分开的。51系列单片机的地址总线和数据总线是复用的,而一般的PC的总线则是分开的。
数据总线
“数据总线DB”用于传送数据信息。数据总线是双向三态形式的总线,即他既可以把CPU的数据传送到存储器或I/O接口等其它部件,也可以将其它部件的数据传送到CPU。数据总线的位数是微型计算机的一个重要指标,通常与微处理的字长相一致。例如Intel 8086微处理器字长16位,其数据总线宽度也是16位。需要指出的是,数据的含义是广义的,它可以是真正的数据,也可以是指令代码或状态信息,有时甚至是一个控制信息,因此,在实际工作中,数据总线上传送的并不一定仅仅是真正意义上的数据。
常见的数据总线为ISA、EISA、VESA、PCI等。
地址总线
“地址总线AB”是专门用来传送地址的,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线总是单向三态的,这与数据总线不同。地址总线的位数决定了CPU可直接寻址的内存空间大小,比如8位微机的地址总线为16位,则其最大可寻址空间为2^16=64KB,16位微型机(x位处理器指一个时钟周期内微处理器能处理的位数(1 、0)多少,即字长大小)的地址总线为20位,其可寻址空间为2^20=1MB。一般来说,若地址总线为n位,则可寻址空间为2^n字节。
控制总线
“控制总线CB”用来传送控制信号和时序信号。控制信号中,有的是微处理器送往存储器和I/O接口电路的,如读/写信号,片选信号、中断响应信号等;也有是其它部件反馈给CPU的,比如:中断申请信号、复位信号、总线请求信号、设备就绪信号等。因此,控制总线的传送方向由具体控制信号而定,(信息)一般是双向的,控制总线的位数要根据系统的实际控制需要而定。实际上控制总线的具体情况主要取决于CPU。
其他分类
按照传输数据的方式划分,可以分为串行总线和并行总线。串行总线中,二进制数据逐位通过一根数据线发送到目的器件;并行总线的数据线通常超过2根。常见的串行总线有SPI、I2C、USB及RS232等。
按照时钟信号是否独立,可以分为同步总线和异步总线。同步总线的时钟信号独立于数据,而异步总线的时钟信号是从数据中提取出来的。SPI、I2C是同步串行总线,RS232采用异步串行总线。