工作原理
總線其實就是多個器材共同使用同一組線路的技術。平時在板卡上的樣子就是一根根的印刷線路,也就是導線,以及一些芯片(總線控制器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采用異步串行總線。