嵌入式開發(fā)硬件相關(guān)的概念知識分享
發(fā)布者:網(wǎng)上發(fā)布
??做嵌入式系統(tǒng)開發(fā),經(jīng)常要接觸硬件。做嵌入式開發(fā)對數(shù)字電路和模擬電路要有一定的了解。這樣才能深入的研究下去。下面我們簡單的介紹嵌入式開發(fā)中的一些硬件相關(guān)的概念。
??總線(Bus)
??在嵌入式系統(tǒng)中一定會有一塊處理器芯片,此外,還有其它的芯片作為外部設(shè)備(后面簡稱外設(shè)),這些芯片與處理器協(xié)作實現(xiàn)產(chǎn)品的功能。復(fù)雜的產(chǎn)品往往是由大量的芯片組成的。那么不可避免的是我們需要將所有的外設(shè)與處理器進行相連,*為簡單的是將所有的外設(shè)都采用獨立(注意是獨立)的信號線連接至處理器,這樣的好處是容易理解,但問題是:不可行。
??因為處理器芯片需要引出太多的線了,從芯片的生產(chǎn)和產(chǎn)品的生產(chǎn)角度來看都不實際。加之,處理器(在此我們假設(shè)處理器是單核的,而不是多核的)處理事務(wù)在微觀上是串行的,也就是說在某一時刻如果要對外設(shè)進行讀寫操作,那只可能是對大量外設(shè)中的一個進行,即多個外設(shè)不可能在微觀上被處理器同時訪問。
??需要注意的是,這里提出了微觀這一概念,這是為了區(qū)別于宏觀。從宏觀上來講,一個處理器中可以有多個任務(wù)同時運行,但這些任務(wù)在微觀上卻是一個一個運行的(后面會用串行來描述這里所說的“一個一個”),多任務(wù)的串行運行實現(xiàn)是由操作系統(tǒng)扮演著重要的角色來實現(xiàn)的。
??回到我們的話題,即然將每個外設(shè)采用獨立的信號線連到處理器不可行,且處理器在單一時間內(nèi)只會對一個外設(shè)進行訪問,那我們能不能采用共享的信號線將所有的芯片連在一起呢?這就是總線概念的由來。通俗的說,如果我們周圍有十個家庭,為了讓這十個家庭每兩個之間都能往來,我們并不需要為每兩個家庭修一條單獨(注意是單獨)的路(如果這樣,要修45條路),而是可以修一條大路,然后,每個家都與大路相連。
??對于總線,我們往往說總線是處理器的,而其它的外設(shè)是掛在總線上的。那有一個問題,我們每一時間只能訪問掛在總線上的一個外設(shè),那如何區(qū)分這些外設(shè)呢?和我們的路一樣,我們需要用地址來區(qū)分每一個家庭,在總線上,也是采用地址來進行區(qū)分的。
??這樣,總線就根據(jù)其功能分為兩類了。一類是地址總線,這一總線上的數(shù)據(jù)只會是從處理器向外設(shè)“流”,是單向的。另一類則是數(shù)據(jù)總線,用來將數(shù)據(jù)從處理器傳送到外設(shè)(從處理器的角度來說是寫操作)或者是將數(shù)據(jù)從外設(shè)傳送到處理器(從處理器的角度來說是讀操作),顯然,數(shù)據(jù)總線是雙向的。也就是說,在我們的嵌入式系統(tǒng)中同時存在地址總線和數(shù)據(jù)總線將所有需要與處理器進行通訊的芯片連在一起的。
??總線是有寬度的,正如我們的路分為“三車道”或是“四車道”,我們說32位處理器,是指其數(shù)據(jù)總線寬度是32位,也就是“有32輛車能同時跑”,顯然,寬度越是寬我們的處理器速度就越是快,因為我們從外設(shè)芯片存取數(shù)據(jù)的速度會更快,這就是為什么我們的計算機向64位發(fā)展的原因。同樣的,地址總線也是有寬度的,對于32位處理器其*大寬度也就是32位。