總線是計(jì)算機(jī)部件之間的公共線路,從單詞bus就可以看出,它類(lèi)似于城市的公交。公交可以緩解城市的交通壓力,總線可以方便計(jì)算機(jī)的總體設(shè)計(jì)。如果每?jī)蓚€(gè)部件之間都要使用專(zhuān)門(mén)的線路,可以想象計(jì)算機(jī)內(nèi)部將被復(fù)雜的線路所充滿。因此,總線設(shè)計(jì)是必要且有益處的。
按照傳輸數(shù)據(jù)類(lèi)型的不同,總線被分為:數(shù)據(jù)總線(Data Bus),地址總線(Address Bus),控制總線(Control Bus)。分別傳輸數(shù)據(jù)信號(hào),地址信號(hào)和控制線號(hào)。如如同大巴分為旅游大巴,學(xué)校大巴和一般大巴。分別搭載游客、學(xué)生和大眾。有的系統(tǒng)中數(shù)據(jù)總線和地址總線是復(fù)用的,就像有的大巴既可以拉游客,又可以拉學(xué)生。51系列單片機(jī)的地址總線和數(shù)據(jù)總線是復(fù)用的。但一般的計(jì)算機(jī)中的總線是獨(dú)立分開(kāi)的。


總線又可以分為串行總線和并行總線,可以想象一般的單層大巴和多層大巴,串行總線可以按照時(shí)間順序一個(gè)一個(gè)信號(hào)的傳輸,而并行總線可以一次傳輸多個(gè)信號(hào),并行總線的數(shù)據(jù)線通常超過(guò)2根。串行總線包括SPI、I2C、USB、IEEE1394、RS232、CAN等,并行總線包括IEEE1284、ISA、PCI等。

這里簡(jiǎn)單介紹一下計(jì)算機(jī),computer,原指代會(huì)計(jì)算的人,后來(lái)指會(huì)計(jì)算的機(jī)器。要想計(jì)算,首先需要數(shù)據(jù),也就是需要輸入。計(jì)算之后,我們希望看到(或使用)結(jié)果,否則計(jì)算也就沒(méi)有意義了。所以計(jì)算機(jī)由輸入、計(jì)算、輸出組成。對(duì)應(yīng)的硬件就是輸入設(shè)備,運(yùn)算邏輯部件,輸出設(shè)備。又因?yàn)槲覀兂3R玫街虚g結(jié)果,所以存儲(chǔ)是必不可少的,因此計(jì)算機(jī)還需要主存和寄存器。寄存器和運(yùn)算邏輯部件組成了中央處理器CUP(Central Processing Unit)。輸入輸出設(shè)備又被稱(chēng)為I/O設(shè)備,I/O對(duì)應(yīng)input和output。
總線,又可以分為單總線結(jié)構(gòu),多總線結(jié)構(gòu)(多總線結(jié)構(gòu)大多是雙總線結(jié)構(gòu))。單總線是指CPU、主存、I/O設(shè)備都由同一總線相連,彼此之間沒(méi)有其他連線。這樣設(shè)計(jì)的好處是結(jié)構(gòu)簡(jiǎn)單,就好像一條高速路路過(guò)醫(yī)院、路過(guò)大學(xué)、路過(guò)市圖書(shū)館、路過(guò)每一戶人家。但是這里有一個(gè)問(wèn)題,就是大學(xué)里的學(xué)生需要經(jīng)常去市圖書(shū)館查資料,就好像CPU經(jīng)常要調(diào)用主存中的數(shù)據(jù),因此這兩點(diǎn)之間很容易堵塞。不如再單獨(dú)建一條線路,也就是雙總線結(jié)構(gòu)的由來(lái)。這里有一點(diǎn)需要注意,就是總線一旦被占用,其他人就不能用了。所以比喻成道路可能使人產(chǎn)生錯(cuò)覺(jué),以為CPU和主存通信的同時(shí),I/O設(shè)備之間還能交互。也許用電梯比喻能更形象些,要求電梯不能被中間打斷,只能獨(dú)占。還有一點(diǎn)需要注意,單總線并不是指只有一條線,而是多條數(shù)據(jù)總線、地址總線和控制總線組成的總體。


總線評(píng)價(jià)指標(biāo)包括:總線帶寬、總線寬度、總線工作平路。這三者之間的關(guān)系就像公交載客量、公交座位數(shù)和公交速度的關(guān)系。公交座位數(shù)越多,公交速度越快,則載客量越大。總線可同時(shí)傳輸?shù)臄?shù)據(jù)數(shù)就稱(chēng)為寬度(width),以比特為單位,總線寬度愈大,傳輸性能就愈佳??偩€的帶寬(即單位時(shí)間內(nèi)可以傳輸?shù)目倲?shù)據(jù)數(shù))為:總線帶寬 = 頻率 x 寬度(Bytes/sec)。單方面提升總線的工作頻率和總線寬度都只能部分提高總線的帶寬,并容易達(dá)到各自的極限。只有這兩者配合才能使總線的帶寬得到更大的提升。舉例:總線時(shí)鐘周期為10MHz的16位總線,若每?jī)蓚€(gè)時(shí)鐘周期完成一次總線存取操作,則:總線帶寬=16/8*10/2=10MB/s。
總線必須有明確的規(guī)范:總線定時(shí)協(xié)議,即在總線上傳送信息時(shí)必須遵守一定的定時(shí)規(guī)則,例如同步總線定時(shí),異步總線定時(shí),半同步總線定時(shí)等??偩€的物理特性,包括信號(hào)、電源、地址的電氣特性,以及連線、接插件的機(jī)械特性等。
為了便于機(jī)器的擴(kuò)充和新設(shè)備的添加,各個(gè)部件或設(shè)備都采用標(biāo)準(zhǔn)化的形式連接到總線上,并按標(biāo)準(zhǔn)化的方式實(shí)現(xiàn)總線上的信息傳輸。總線的這些標(biāo)準(zhǔn)化的連接形式及操作方式,統(tǒng)稱(chēng)為總線標(biāo)準(zhǔn)。如ISA、PCI、USB總線標(biāo)準(zhǔn)等,相應(yīng)的,采用這些標(biāo)準(zhǔn)的總線為ISA總線、PCI總線、USB總線等。最早的PC總線是IBM公司1981年在PC/XT電腦采用的系統(tǒng)總線,它基于8bit的8088 處理器,被稱(chēng)為PC總線或者PC/XT總線。ISA(工業(yè)標(biāo)準(zhǔn)框架Industrial Standard Architecture),是1984年IBM公司為推出PC/AT機(jī)而建立的系統(tǒng)總線標(biāo)準(zhǔn),也叫AT總線。ISA總線僅能提供5-8MB, 所以產(chǎn)生了PCI。
雜想:
針對(duì)硬件構(gòu)造,設(shè)計(jì)協(xié)議。根據(jù)已有協(xié)議,進(jìn)行相關(guān)設(shè)置
UART, PCI, CAN
RapidIO(高性能,低引腳數(shù),基于數(shù)據(jù)包)為嵌入式互聯(lián)?, PCIe
協(xié)議的細(xì)則是什么?
為什么要學(xué)習(xí)總線協(xié)議?為了知道怎樣配置參數(shù)?,F(xiàn)在很多協(xié)議已經(jīng)很成熟了,只要會(huì)應(yīng)用就可以了。
參考清單: