工作原理
總線其實就是多個器材共同使用同一組線路的技術(shù)。平時在板卡上的樣子就是一根根的印刷線路,也就是導(dǎo)線,以及一些芯片(總線控制器74LS系列里面就有,其實就是一個個三態(tài)門,可控制通斷,負責(zé)把一個器件連上總線或者與總線斷開,保證總線上同時只有一個器件在發(fā)送數(shù)據(jù)。
具體的I2C總線、PCI總線的區(qū)別更多地體現(xiàn)在里面的數(shù)據(jù)結(jié)構(gòu)以及電平規(guī)范(什么電平是1,什么電平是0)上,而不是物理布線等實際的硬件結(jié)構(gòu)。如果不考慮總線控制器,總線的物理結(jié)構(gòu)就像是一些多管腳的器件并聯(lián)在一起。
總線Bus是計算機各種功能部件之間傳送信息的公共通信干線,它是由導(dǎo)線組成的傳輸線束,按照計算機所傳輸?shù)男畔⒎N類,計算機的總線可以劃分為數(shù)據(jù)總線、地址總線和控制總線,分別用來傳輸數(shù)據(jù)、地址總線和控制總線。
總線是一種內(nèi)部結(jié)構(gòu),它是CPU、內(nèi)存、輸入、輸出設(shè)備傳遞信息的公用通道,主機的各個部件通過總線相連接,外部設(shè)備通過相應(yīng)的接口電路再與總線相連接,從而形成了計算機硬件系統(tǒng)。在計算機系統(tǒng)中,各個部件之間傳送信息的公共通路叫總線,微型計算機是以總線結(jié)構(gòu)來連接各個功能部件的。
如果說主板(mother board)是一座城市,那么總線就像是城市里的公共汽車(bus),能按照固定行車路線,傳輸來回不停運作的比特(bit)。這些線路在同一時間都僅能負責(zé)傳輸一個bit。因此,必須同時采用多條線路才能傳送更多數(shù)據(jù),而總線可同時傳輸?shù)臄?shù)據(jù)數(shù)就稱為寬度(width),以bit為單位,總線寬度越大,傳輸性就越好??偩€的帶寬(即單位時間內(nèi)可以傳輸?shù)目倲?shù)據(jù)數(shù))為:總線帶寬=頻率*寬度。
當(dāng)總線空閑(其它器件都以高阻態(tài)形式連接在總線上)且一個器件要與目的器件通信時,發(fā)起通信的器件驅(qū)動總線發(fā)出地址和數(shù)據(jù)。其他以高阻態(tài)形式連接在總線上的器件如果收到(或者能夠收到)與自己相符的地址信息后,即接收總線上的數(shù)據(jù)。發(fā)送器件完成通信,將總線讓出(輸出變?yōu)楦咦钁B(tài))。
總線分類
數(shù)據(jù)總線data bus
在CPU和ram之間來回傳送需要處理或是需要儲存的數(shù)據(jù)。
地址總線 address bus
用來指定在RAM(random access memory)之中存儲的數(shù)據(jù)的地址。
控制總線 control bus
將微處理器控制單元的信號,傳送到周邊設(shè)備,一般常見位USB bus和1394 bus。
擴展總線 expansion bus
可連接擴展槽和電腦。
局部總線local bus
取代更高速數(shù)據(jù)傳輸?shù)臄U展總線。
其中:數(shù)據(jù)總線DB、地址總線AB、控制總線CB,也統(tǒng)稱為系統(tǒng)總線,即通常意義上的總線。
有的數(shù)據(jù)總線DB、地址總線AB是復(fù)用的,即總線在某些時刻出現(xiàn)的信號表示數(shù)據(jù)而另一時刻則表示地址,而有的系統(tǒng)是分開的。51系列單片機的地址總線和數(shù)據(jù)總線是復(fù)用的,而一般的PC的總線則是分開的。
數(shù)據(jù)總線
“數(shù)據(jù)總線DB”用于傳送數(shù)據(jù)信息。數(shù)據(jù)總線是雙向三態(tài)形式的總線,即他既可以把CPU的數(shù)據(jù)傳送到存儲器或I/O接口等其它部件,也可以將其它部件的數(shù)據(jù)傳送到CPU。數(shù)據(jù)總線的位數(shù)是微型計算機的一個重要指標,通常與微處理的字長相一致。例如Intel 8086微處理器字長16位,其數(shù)據(jù)總線寬度也是16位。需要指出的是,數(shù)據(jù)的含義是廣義的,它可以是真正的數(shù)據(jù),也可以是指令代碼或狀態(tài)信息,有時甚至是一個控制信息,因此,在實際工作中,數(shù)據(jù)總線上傳送的并不一定僅僅是真正意義上的數(shù)據(jù)。
常見的數(shù)據(jù)總線為ISA、EISA、VESA、PCI等。
地址總線
“地址總線AB”是專門用來傳送地址的,由于地址只能從CPU傳向外部存儲器或I/O端口,所以地址總線總是單向三態(tài)的,這與數(shù)據(jù)總線不同。地址總線的位數(shù)決定了CPU可直接尋址的內(nèi)存空間大小,比如8位微機的地址總線為16位,則其最大可尋址空間為2^16=64KB,16位微型機(x位處理器指一個時鐘周期內(nèi)微處理器能處理的位數(shù)(1 、0)多少,即字長大小)的地址總線為20位,其可尋址空間為2^20=1MB。一般來說,若地址總線為n位,則可尋址空間為2^n字節(jié)。
控制總線
“控制總線CB”用來傳送控制信號和時序信號??刂菩盘栔?,有的是微處理器送往存儲器和I/O接口電路的,如讀/寫信號,片選信號、中斷響應(yīng)信號等;也有是其它部件反饋給CPU的,比如:中斷申請信號、復(fù)位信號、總線請求信號、設(shè)備就緒信號等。因此,控制總線的傳送方向由具體控制信號而定,(信息)一般是雙向的,控制總線的位數(shù)要根據(jù)系統(tǒng)的實際控制需要而定。實際上控制總線的具體情況主要取決于CPU。
其他分類
按照傳輸數(shù)據(jù)的方式劃分,可以分為串行總線和并行總線。串行總線中,二進制數(shù)據(jù)逐位通過一根數(shù)據(jù)線發(fā)送到目的器件;并行總線的數(shù)據(jù)線通常超過2根。常見的串行總線有SPI、I2C、USB及RS232等。
按照時鐘信號是否獨立,可以分為同步總線和異步總線。同步總線的時鐘信號獨立于數(shù)據(jù),而異步總線的時鐘信號是從數(shù)據(jù)中提取出來的。SPI、I2C是同步串行總線,RS232采用異步串行總線。