有考網(wǎng)有考網(wǎng)合作機構(gòu)>朝陽區(qū)培訓(xùn)學(xué)校>北京朝陽豐寶恒大廈達(dá)內(nèi)IT教育培訓(xùn)
北京朝陽豐寶恒大廈達(dá)內(nèi)IT教育培訓(xùn)
全國統(tǒng)一學(xué)習(xí)專線 8:30-21:00
位置:有考網(wǎng) > 計算機類 > 嵌入式 > 嵌入式開發(fā)有哪些重要的硬件知識?  正文

嵌入式開發(fā)有哪些重要的硬件知識?

發(fā)布時間:2021-09-03 16:36:47來源:轉(zhuǎn)載

做嵌入式系統(tǒng)開發(fā),經(jīng)常要接觸硬件。做嵌入式開發(fā)對數(shù)字電路和模擬電路要有一定的了解。這樣才能深入的研究下去。下面我們簡單的介紹嵌入式開發(fā)中的一些硬件相關(guān)的概念。為讀者學(xué)習(xí)嵌入式知識出一份力。

片選(CS或EN)

片選信號對于外設(shè)芯片來講,就是一個(也是一根)通知信號,告訴芯片“嘿,請開門,我要放些東西進(jìn)來,或是拿些東西走”,這里的東西只能是數(shù)據(jù),不可能是玉米棒什么的。那有個問題,這個信號源從哪里來呢?顯然,只能從處理器來。那是不是也是像總線那樣,每一個芯片都共用一根線連在一起呢?

如果這樣,可能處理器“一叫開門”所有的芯片都將“門”打開了。如果是處理器寫數(shù)據(jù),那可能所有的芯片都被寫入同樣的數(shù)據(jù)。而取數(shù)據(jù)時,每個外設(shè)芯片都向外“扔”數(shù)據(jù),這一定會造成數(shù)據(jù)總線沖突,因為有的芯片向總線上“扔”1,有的則“扔”0,這種情況下處理器一定會“發(fā)瘋”的,因為它不知道應(yīng)當(dāng)?shù)玫?還是0。

即然這樣,那顯然不能將所有的片選信號連在一起了,只能是各芯片的片選信號獨立。前面提到了地址總線,我們是采用一根地址線連一個外設(shè)芯片呢?還是采用其它的方法。如果采用一根地址線連一個外設(shè)芯片,那可能較多只能掛接32個芯片了,這顯然不行。

其實,在現(xiàn)實中,是采用32位的數(shù)字來表示一個外設(shè)芯片的地址的,比如1可以表示芯片A,而6534可以表示另外一個芯片B,等等。由此看來,理論上我們可以表示2的32次方(4294967296)個設(shè)備,之所以說理論上,是因為有的設(shè)備要占用大量的地址。即然這樣,那還有一個問題,如果將32位的地址總線轉(zhuǎn)換成芯片的一根片選信號呢?這需要引入譯碼(器)的概念。

譯碼(器)

譯碼器將一個數(shù)據(jù)轉(zhuǎn)換成一根信號線上的信號,比如3/8譯碼器,可以將一個位寬是3位的數(shù)據(jù)轉(zhuǎn)換成8根(2的3次方)完全獨立的信號線,當(dāng)向數(shù)據(jù)側(cè)寫入二進(jìn)制的011時,對應(yīng)的是8根線的第3根,當(dāng)輸入二進(jìn)制的111時,對應(yīng)的是8根線中的較后一根。有了譯碼器,處理器的地址線就簡化了,只要32根地址線加上外面的譯碼器,就可以訪問大量的外設(shè)芯片了。外部設(shè)備的選擇問題,我們已經(jīng)解決了,現(xiàn)在還得回頭看一看數(shù)據(jù)總線。

在嵌入式系統(tǒng)中,所有芯片的數(shù)據(jù)總線可以理解成是直接相連的。之所以用了“可以理解”一詞,是因為為了提高總線的負(fù)載能力,其中會加入總線驅(qū)動器。為了理解,我們看一看我們生活中的自來水,比如,在北京理論上可能所有的水管是連在一起的,但中間可能為了提高水壓,存在很多小的水站用來增加供水壓力,而不可能全北京所有的自來水自接來自一個水廠。

即然所有的數(shù)據(jù)總線是連在一起的,那就可能會有問題。當(dāng)向外部設(shè)備寫數(shù)據(jù)時,處理器先向地址總線輸送目標(biāo)外設(shè)的地址,地址譯碼器將其轉(zhuǎn)換成一根信號的片選信號送到了目標(biāo)外設(shè),目標(biāo)外設(shè)收到這一信號后,將“門”打開。接下來處理器將要傳送到外設(shè)的數(shù)據(jù)往數(shù)據(jù)總線上一放,由于只有目標(biāo)外設(shè)芯片打開了“門”,所以數(shù)據(jù)只會進(jìn)入到目標(biāo)外設(shè),而其它的外設(shè)什么也不會收到。很好!處理器向外寫數(shù)據(jù)應(yīng)當(dāng)沒有問題,我們接下來看一看讀。

讀的話,由于數(shù)據(jù)是從外設(shè)輸送到處理器的,盡管我們采用和寫一樣的方法打開目標(biāo)外設(shè)的“門”,但此時,其它的外設(shè)也在數(shù)據(jù)總線上,它們有可能處于1也可能處于0,是不是會影響處理器讀取目標(biāo)外設(shè)的數(shù)據(jù)呢?結(jié)果當(dāng)然不會,但我們得引入另一個概念:高阻態(tài)。

高阻態(tài)

很顯然,當(dāng)處理器從目標(biāo)外設(shè)讀數(shù)據(jù)時,我們希望其它沒有被選上的芯片的數(shù)據(jù)總線不會對目標(biāo)外設(shè)所要傳送的數(shù)據(jù)有影響,那怎么辦呢?實際上,當(dāng)芯片沒有被選中時,其數(shù)據(jù)總線都處于高阻態(tài)。

所謂的高阻態(tài),我們可以理解成這一管腳在外設(shè)芯片內(nèi)部是斷開的,如此一來,顯然不會對處理器從目標(biāo)外設(shè)讀取數(shù)據(jù)造成任何的影響了。我們說當(dāng)一個芯片沒有被選中或是沒有被使能時,其數(shù)據(jù)總線一定是處于高阻態(tài)的。前面用了“門”的開和關(guān)來打比方,那“門”是指什么呢?是指外設(shè)的數(shù)據(jù)總線,片選信號的作用就是控制將外設(shè)的數(shù)據(jù)總線與處理器的數(shù)據(jù)總線相連或是斷開。

驅(qū)動

總線上的數(shù)據(jù)是誰放上去的我們就說誰是那一時刻的驅(qū)動者。也就是說,當(dāng)處理器向外設(shè)寫數(shù)據(jù)時,它是在驅(qū)動數(shù)據(jù)總線的,而當(dāng)處理器從目標(biāo)外設(shè)讀取數(shù)據(jù)時,目標(biāo)外設(shè)是在驅(qū)動數(shù)據(jù)總線的。對于地址總線,因為只可能從處理器向目標(biāo)外設(shè)寫,所以地址總線永遠(yuǎn)是由處理器驅(qū)動的。當(dāng)一個芯片沒有被選中時,我們說它并不驅(qū)動數(shù)據(jù)總線。

更多培訓(xùn)課程: 朝陽區(qū)嵌入式 更多學(xué)校信息: 北京朝陽豐寶恒大廈達(dá)內(nèi)IT教育培訓(xùn) 咨詢電話:

相關(guān)內(nèi)容: 嵌入式系統(tǒng)硬件 嵌入式系統(tǒng)開發(fā) 嵌入式開發(fā)

同類文章
相關(guān)熱詞