并行總線(xiàn)與串行總線(xiàn)
雖然隨著(zhù)技術(shù)的發(fā)展,現代的數字芯片已經(jīng)集成了越來(lái)越多的功能,但是對于稍微復雜一點(diǎn)的系統來(lái)說(shuō),很多時(shí)候單獨一個(gè)芯片很難完成所有的工作,這就需要和其它芯片配合起來(lái)工作。比如我們現在的CPU的處理能力越來(lái)越強,很多CPU內部甚至集成了顯示處理的功能,但是仍然需要配合外部的內存芯片來(lái)存儲臨時(shí)的數據、需要配合橋接芯片擴展硬盤(pán)、USB等外圍接口;現代的FPGA內部也可以集成CPU、DSP、RAM、高速收發(fā)器等,但有些場(chǎng)合可能還需要配合專(zhuān)用的DSP來(lái)進(jìn)一步提高浮點(diǎn)處理效率、配合額外的內存芯片來(lái)擴展存儲空間、配合專(zhuān)用的物理層芯片來(lái)擴展網(wǎng)口、USB等,或者需要多片FPGA互連來(lái)提高處理能力。所以的這一切,都需要用到相應的總線(xiàn)來(lái)實(shí)現多個(gè)數字芯片間的互連。如果我們把各個(gè)功能芯片想象成人體的各個(gè)功能器官的話(huà),總線(xiàn)就是血脈和經(jīng)絡(luò ),通過(guò)這些路徑,各個(gè)功能模塊間才能進(jìn)行有效的數據交換和協(xié)同工作。
本文引用地址:http://dyxdggzs.com/article/201807/383770.htm我們經(jīng)常使用到的總線(xiàn)根據數據傳輸方式的不同,可以分為并行總線(xiàn)和串行總線(xiàn)。
并行總線(xiàn):
并行總線(xiàn)是數字電路里最早也是最普遍采用的總線(xiàn)結構。在這種總線(xiàn)上,要傳輸的數據線(xiàn)、地址線(xiàn)、控制線(xiàn)等都是并行傳輸,比如要傳輸8位的數據寬度,就需要8根數據信號線(xiàn)同時(shí)傳輸,如果要傳輸32位的數據寬度就需要32根數據信號線(xiàn)同時(shí)傳輸。除了數據線(xiàn)以外,如果要尋址比較大的地址空間,還需要很多根地址線(xiàn)的組合來(lái)代表不同的地址空間。下圖是一個(gè)典型的微處理器的并行總線(xiàn)的工作時(shí)序,其中包含了1根時(shí)鐘線(xiàn)、16根數據線(xiàn)、16根地址線(xiàn)以及一些讀寫(xiě)控制信號。

很多經(jīng)典的處理器都采用了并行的總線(xiàn)架構。比如大家熟知的51單片機就采用了8根并行數據線(xiàn)和16根地址線(xiàn);CPU的鼻祖,Intel 公司的8086微處理器最初推出時(shí)具有16根并行數據線(xiàn)和16根地址線(xiàn);現在很多嵌入式系統中廣泛使用的ARM處理器則大部分使用32根數據線(xiàn)以及若干根地址線(xiàn)。
并行總線(xiàn)的最大好處是總線(xiàn)的邏輯時(shí)序比較簡(jiǎn)單,電路實(shí)現起來(lái)比較容易,但是缺點(diǎn)也是非常明顯的。比如并行總線(xiàn)的信號線(xiàn)數量非常多,會(huì )占用大量的管腳和布線(xiàn)空間,因此芯片和PCB板的尺寸很難實(shí)現小型化,特別是如果要用電纜進(jìn)行遠距離傳輸時(shí),由于信號線(xiàn)的數量非常多,使得電纜變得非常昂貴和笨重。
采用并行總線(xiàn)的另外一個(gè)問(wèn)題在于總線(xiàn)的吞吐量很難持續提升。對于并行總線(xiàn)來(lái)說(shuō),其總線(xiàn)吞吐量=數據線(xiàn)位數×數據速率。我們可以通過(guò)提升數據線(xiàn)的位數來(lái)提高總線(xiàn)吞吐量,也可以通過(guò)提升數據速率來(lái)提高總線(xiàn)吞吐量。以個(gè)人計算機里曾經(jīng)非常流行的PCI總線(xiàn)為例,其最早推出時(shí)總線(xiàn)是32位的數據線(xiàn),工作時(shí)鐘頻率是33MHz,其總線(xiàn)吞吐量=32bit×33MHz;后來(lái)為了提升其總線(xiàn)吞吐量推出的PCI-X總線(xiàn),把總線(xiàn)寬度擴展到64位,工作時(shí)鐘頻率最高提升到133MHz,其總線(xiàn)吞吐量=64bit×133MHz。下圖是PCI插槽和PCI-X插槽的一個(gè)對比,可以看到PCI-X由于使用了更多的數據線(xiàn),其插槽更長(cháng)(來(lái)源:網(wǎng)絡(luò )圖片)。

但是隨著(zhù)人們對于總線(xiàn)吞吐量的要求的不斷提高,這種提升總線(xiàn)帶寬的方式遇到了瓶頸。首先由于芯片尺寸和布線(xiàn)空間的限制,64位數據寬度已經(jīng)幾乎是極限了。另外一方面,這64根數據線(xiàn)是共用一個(gè)采樣時(shí)鐘,為了保證所有的信號都滿(mǎn)足其建立保持時(shí)間的要求,在PCB上布線(xiàn)、換層、拐彎時(shí)需要保證精確等長(cháng)。而總線(xiàn)工作速率越高,對于各條線(xiàn)的等長(cháng)要求就越高,對于這么多根信號要實(shí)現等長(cháng)的布線(xiàn)是很難做到的。
下圖是用邏輯分析儀采集到的一個(gè)實(shí)際的8位總線(xiàn)的工作時(shí)序,我們可以看到在數據從0x00跳變到0xFF狀態(tài)過(guò)程中,這8根線(xiàn)實(shí)際并不是精確一起跳變的。

對于并行總線(xiàn)來(lái)說(shuō),更致命的是這種總線(xiàn)上通常掛有多個(gè)設備,且讀寫(xiě)共用,各種信號分叉造成的反射問(wèn)題使得信號質(zhì)量進(jìn)一步惡化。
串行總線(xiàn):
為了解決并行總線(xiàn)占用尺寸過(guò)大且對布線(xiàn)等長(cháng)要求過(guò)于苛刻的問(wèn)題,隨著(zhù)芯片技術(shù)的發(fā)展和速度的提升,越來(lái)越多的數字接口開(kāi)始采用串行總線(xiàn)。所謂串行總線(xiàn),就是并行的數據在總線(xiàn)上不再是并行地傳輸,而是時(shí)分復用在一根或幾根線(xiàn)上傳輸。比如在并行總線(xiàn)上傳輸1個(gè)Byte的數據寬度需要8根線(xiàn),而如果把這8根線(xiàn)上的信號時(shí)分復用在一根線(xiàn)上就可以大大減少需要的走線(xiàn)數量,同時(shí)也不需要再考慮8根線(xiàn)之間的等長(cháng)關(guān)系。
采用串行總線(xiàn)以后,就單根線(xiàn)來(lái)說(shuō),由于上面要傳輸原來(lái)多根線(xiàn)傳輸的數據,所以其工作速率一般要比相應的并行總線(xiàn)高很多。比如以前計算機上的擴展槽上廣泛使用的PCI總線(xiàn)采用并行32位的數據線(xiàn),每根數據線(xiàn)上的數據傳輸速率是33Mbit/s,演變到PCI-E(PCI-Express)的串行版本后每根線(xiàn)上的數據速率至少是2.5Gbit/s(PCI-E 1代標準),現在PCI-E的數據速率已經(jīng)達到了5Gbit/s(PCI-E 2代標準)或8Gbit/s(PCI-E 3代標準)。采用串行總線(xiàn)的另一個(gè)好處是在提高數據傳輸速率的同時(shí)節省了布線(xiàn)空間,同時(shí)芯片的功耗也降低了,所以在現代的電子設備中,當需要進(jìn)行高速數據傳輸時(shí),使用串行總線(xiàn)的越來(lái)越多。
數據速率提高以后,對于阻抗匹配、線(xiàn)路損耗和抖動(dòng)的要求就更高,稍不注意就很容易產(chǎn)生信號質(zhì)量的問(wèn)題。下圖是一個(gè)典型的1Gbps的信號從發(fā)送端經(jīng)過(guò)芯片封裝、PCB板、連接器、背板傳輸到接收端的信號路徑,從中我們可以看到在發(fā)送端的接近理想的0、1跳變的數字信號到達接收端后由于高頻損耗、反射等的影響信號波形已經(jīng)變得非常惡劣,所以串行總線(xiàn)的設計對于數字電路的工程師來(lái)說(shuō)是個(gè)很大挑戰。

使用串行總線(xiàn)的設備的體積、功耗和數據傳輸速度都比使用并行接口的設備更有優(yōu)勢,因此得到了廣泛的應用。比如以前在計算機上廣泛使用的連接打印機的DB25的并口已經(jīng)被USB和網(wǎng)口取代,以前連接硬盤(pán)的40pin的PATA接口已經(jīng)被串行的SATA接口取代,以前計算機上的PCI擴展槽已經(jīng)被PCI-Express取代。但是如前所述,采用串行總線(xiàn)以后信號的數據速率一般都會(huì )有幾倍甚至幾百倍的提升,對于電路的設計和測試都提出了很高的要求,因此需要設計和測試工程師掌握大量的高速設計的相關(guān)知識和技能。
評論