首页
/
每日頭條
/
生活
/
嵌入式硬件設計 pdf
嵌入式硬件設計 pdf
更新时间:2024-10-21 08:05:33

做嵌入式系統開發,經常要接觸硬件,需要對數字電路和模拟電路要有一定的了解,這樣才能深入的研究下去。那些剛剛接觸嵌入式,總覺得很難,其實做什麼事情,都要把最基礎的知識掌握牢固,才能最終走上大神的道路。下面我們簡單地介紹一下嵌入式開發中的一些硬件相關的概念。

電平(Level)

在數字電路中,分為高電平和低電平,分别用1和0表示。一個數字電路的管腳,總是存在一個電平的,要麼高要麼低,或者說要麼1要到0(其實,還有另一種狀态,後面會提到)。

總線(Bus)

在嵌入式系統中一定會有一塊處理器芯片,此外,還有其它的芯片作為外部設備(後面簡稱外設),這些芯片與處理器協作實現産品的功能。複雜的産品往往是由大量的芯片組成的。那麼不可避免的是我們需要将所有的外設與處理器進行相連,最為簡單的是将所有的外設都采用獨立(注意是獨立)的信号線連接至處理器。

這樣的好處是容易理解,但問題是:不可行。因為處理器芯片需要引出太多的線了,從芯片的生産和産品的生産角度來看都不實際。加之,處理器(在此我們假設處理器是單核的,而不是多核的)處理事務在微觀上是串行的,也就是說在某一時刻如果要對外設進行讀寫操作,那隻可能是對大量外設中的一個進行,即多個外設不可能在微觀上被處理器同時訪問。需要注意的是,這裡提出了微觀這一概念,這是為了區别于宏觀。

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

既然所有的數據總線是連在一起的,那就可能會有問題。當向外部設備寫數據時,處理器先向地址總線輸送目标外設的地址,地址譯碼器将其轉換成一根信号的片選信号送到了目标外設,目标外設收到這一信号後,将“門”打開。接下來處理器将要傳送到外設的數據往數據總線上一放,由于隻有目标外設芯片打開了“門”,所以數據隻會進入到目标外設,而其它的外設什麼也不會收到。

接下來看一看讀。讀的話,由于數據是從外設輸送到處理器的,盡管我們采用和寫一樣的方法打開目标外設的“門”,但此時,其它的外設也在數據總線上,它們有可能處于1也可能處于0,是不是會影響處理器讀取目标外設的數據呢?結果當然不會,但我們得引入另一個概念:高阻态。

高阻态

很顯然,當處理器從目标外設讀數據時,我們希望其它沒有被選上的芯片的數據總線不會對目标外設所要傳送的數據有影響,那怎麼辦呢?實際上,當芯片沒有被選中時,其數據總線都處于高阻态。所謂的高阻态,我們可以理解成這一管腳在外設芯片内部是斷開的,如此一來,顯然不會對處理器從目标外設讀取數據造成任何的影響了。我們說當一個芯片沒有被選中或是沒有被使能時,其數據總線一定是處于高阻态的。前面用了“門”的開和關來打比方,那“門”是指什麼呢?是指外設的數據總線,片選信号的作用就是控制将外設的數據總線與處理器的數據總線相連或是斷開。

驅動

總線上的數據是誰放上去的我們就說誰是那一時刻的驅動者。也就是說,當處理器向外設寫數據時,它是在驅動數據總線的,而當處理器從目标外設讀取數據時,目标外設是在驅動數據總線的。對于地址總線,因為隻可能從處理器向目标外設寫,所以地址總線永遠是由處理器驅動的。當一個芯片沒有被選中時,我們說它并不驅動數據總線。三态門前面我們說到外設芯片的數據總線在沒有被選中時其處于高阻态,當被選中時,其電平可能是高(1)或是低(0)。如此一來,我們說外設的數據總線其芯片管腳是屬于三态門的,即存在高電平、低電平和高阻态,三個狀态。

電平的有效性

前面我們了解了什麼是片選信号,也講到了三态門,需要指出的是片選信号通常不是三态門,其隻存在兩個狀态,即高電平或是低電平。前面我們也說了,片選信号是用來“開門”的,而片選信号又有高和低電平,那到底是高電平表示“開門”呢?還是低電平?對于這一問題,我們稱如果一個電平對于一個片選信号表示“開門”那麼它就是這一信号的有效電平。比如,對于一個片選信号,如果低電平表示“開門”,那麼我們說這個片選信号是低電平有效的。雖然,在這裡我們用片選信号來解釋電平的有效性,但是很多信号都存在有效性的問題,比如,後面我們将要談的讀信号和寫信号都存在有效性問題。

時序

在前面我們說到當處理器要向外設芯片寫數據時,需要先将所需訪問的外設的地址放在地址總線上,然後,由譯碼器将地址總線上的數據轉換成片選信号,片選信号則使能目标外設芯片,接下來處理器寫數據到數據總線上,從而完成一個寫操作。顯然,在處理器将數據寫到數據總線之前地址線上的數據必須一直保留一段時間,否則的話譯碼器不能長時間的使片選信号有效。

當完成了數據的寫操作後,處理器就不需要保證地址總線上的地址有效了。我們可以看出,這一系列的操作都有一定嚴格的時間順序的,這稱之為時序。時序描述了處理器與外部設備的交互信号 “規程”,大家隻有按照這一“規程”來操作,才能保證處理器與外部設備之間能正常的通訊。這好比,我們的道路上的紅綠燈,如果我們行人和車輛不按照其指示來通行的話,就會出現事故。通常,采用時序圖來描述芯片之間通訊的信号“規程”。

嵌入式硬件設計 pdf(嵌入式硬件設計基礎知識大全)1

嵌入式硬件設計 pdf(嵌入式硬件設計基礎知識大全)2

從圖中我們可以看出ADDRESS是表示地址總線的,DQ是表示數據總線的,CE是片選信号,且是低電平有效,其寬度要保證在進行讀操作時總是有效的。學會看時序圖對于做嵌入式系統開發非常有幫助,因為我們不可避免的要與芯片打交道。在時序圖中,通常會标識很多的時間需求信息。

在寫啟動代碼時需要初始化各地址空間的片選地址寄存器和讀寫時序,時序的配置依據就是來自于外設芯片的時間需求,這是芯片手冊很重要的一部分内容。當一個地址空間中存在多個外設芯片時,我們需要考慮到其中最慢的外設芯片的時間需求,否則的話有的芯片就不能正常工作。

讀/寫信号

當處理器需要從外設芯片讀取信号時,除了需要産生片選信号外,還需要告訴外設芯片這是一個讀操作,是通過讀信号來實現的;或者這個信号用于告訴外設芯片,這是一個向外設芯片寫數據的操作。

I/O端口

前面提到了外設(芯片)),現在是對外設進行分類的時候了。大體上外設分為兩類,一類是存儲器外設,而另一類是非存儲器外設,後者常被稱之為I/O設備,這裡的I/O是Input/Output的簡寫,即輸入、輸出。可見,I/O外設是一個非常寬泛的概念。對于存儲器外設,其特點是,它所占用的空間是連續的一片。

比如,SDRAM内存就是屬于存儲器外設,如果其容量是8M字節,那麼其占用的地址空間也會是8M的。與存儲器外設所不同的是,I/O外設所點用的地址一般都很少。比如一個I/O外設可能存在多個控制寄存器,這些控制寄存器從處理器來看就是多個I/O端口(地址),向這個地址寫數據就是向外設所對應的寄存器寫數據,反之,也可以是讀。

比如,一個串口芯片可能存在多個寄存器,一個用來查詢芯片的狀态,一個用來設置芯片的功能,另一個用來讀取芯片從串口線所收到的數據,最後,還有一個用來向芯片寫數據以向串口線上發送數據。對于這一串口芯片的寄存器,從處理器的角度來看,都是獨立的I/O端口。

I/O端口存在讀、寫性問題,有的端口是隻讀的,有的端口是隻寫的,還有的端口是即可讀也可寫,其讀寫性是由外設芯片的寄存器所決定的,在芯片的數據手冊中能找到。需要指出的是,有些存儲器外設也存在I/O端口,以對其進行一定的控制。從I/O端口這一名字來看,對于處理器來說,就是對從外面讀入數據或是向外面輸出數據的一個接口總稱。

中斷

中斷從硬件的角度來看就是一個能産生高、低電平的一根信号線,但理解它需要從處理器的角度出發。我們說過了,處理器從微觀上看,所做的工作是按順序進行的,其對程序的處理隻能是一條指令一條指令的執行。如果存在需要對外設芯片進行訪問,而有可能從處理器發出讀、寫命令後,由于外設通常比處理器慢很多,所以外設芯片需要一些時間來準備好所需的數據。在這種情況下,如果處理器一直等外設芯片的返回數據再執行後續的指令的話,将耗費寶貴的時間,這些時間完全可以用來做其它的工作。

别忘了,從宏觀上看來處理器常常是多任務的,任務是指操作系統所提供的調度單位。當一個任務因為等待外設芯片的數據而阻塞時,我們可以切換到另外的任務,從而提高處理效率。這就有一個問題,當處理器去處理另一個任務時,如果外設芯片的數據好了的話,如果告訴處理器呢?對了!就是通過中斷信号。中斷信号的高、低電平可以用來表示是否有中斷需要處理器注意以處理特定的事件(比如,外設數據準備好了的事件)。

由此看來,中斷的引入能大大的提高處理器的運用效率。為了使用處理器上的中斷,一開始我們需要初始化好處理器的中斷控制器,比如安裝好所需的中斷服務程序或稱之為ISR(Interrupt Service Routine),然後,打開中斷屏蔽位。中斷服務程序中需要做如下的操作:

從外設讀入或向外設寫數據。讀還是寫通常需要讀取外設的中斷狀态寄存器來決定。

清除外設的中斷信号。我們知道,中斷信号是由外設芯片驅動的,為了告訴外設芯片,處理器已經處理完了所需做的工作,那麼處理器需要通過一定的方式通知外設芯片。這種方式就是向外設芯片的寄存器中的某一位寫入一個數據,比如,可能是寫入1表示清中斷,也可能是寫入0表示清中斷,這通常在外設的數據手冊中能查到。當外設收到了處理器的清中斷請求後,其就會驅動中斷線使其無效。比如,一個外設的中斷線是當其為低電平表示有中斷,将其從低電平變為高電平就是驅動為無效。

清除處理器的中斷信号标識。處理器中往往也會保存外部中斷信号是否發生過,當我們處理完了外設芯片的中斷時,我們也需要清除處理器上的标識,從而為下一次中斷做準備。需要注意的是,清外設的中斷必須發生在請處理器中斷标識之前!

中斷還存在一個觸發方式問題。有兩種觸發方式 ,一種是電平觸發,另一種是沿觸發。電平觸發是指電平的高低表示外設是否有中斷,而沿觸發則是能過中斷線上的電平的升或降來表示的,顯然,存在兩種沿觸發方式。一種是中斷線從低電平變為高電平,我們稱之為上升沿觸發,另一處是中斷線從高電平轉換為低電平,我們稱之為下降沿觸發。總的來說中斷的觸發方式有電平觸發、上升沿觸發和下降沿觸發。電平觸發方式中處理中中斷設置很重要的一個步驟。

萬用表

萬用表通常是用來查看電平的高低、電阻的大小等的,是常用且必不可少的工具之一。在嵌入式系統開發中,我們常用的是數字萬用表。

示波器

在嵌入式系統開發中,我們不可避免的要與外設芯片打交道。調試驅動程序時,除了需要完全看明白芯片的數據手冊,且在軟件高度的過程中,還需要看我們所期望的信号電平是否發生在芯片上。比如,我們在寫驅動程序時,需要通過寫I/O端口來對外設芯片進行操作,當寫相應的I/O端口時,我們知道所對應芯片的片選信号應當有效,有時,我們需要驗證是否按預期發生了,這就需要用到示波器。一般的示波器是能同時觀測兩個信号線的信号狀态的。

示波器都提供一定的功能,比如設置信号撲捉的方式等等。示波器很重要的一個參數據是其采集頻率,根據Nyquist采集定理,如果我們想用示波器查看頻率是100M赫茲的信号,那麼其采樣頻率必須至少是其兩倍,即200M赫茲。有人可能會問:為什麼不用萬用表來看呢?因為萬用表的采集頻率很底,無法采集到很快的信号變化。

邏輯分析儀

簡單的說邏輯分析器就是具有很多信号通道的示波器。通過邏輯分析儀,我們可以看到地址總線和數據總線上的數據。邏輯分析儀都提供一定的編程能力,用于編程什麼時候開始對總線上的數據進行采集。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
農村大客廳如何做隔斷
農村大客廳如何做隔斷
農村大客廳如何做隔斷?如果客廳比較大,我們可以用玻璃作為隔斷,而且可以用玻璃做成一個推拉門,這樣子使得整個客廳的空間隔成兩個部分,形成了兩個獨立的空間,還能夠保護好房間的隐私而且通過玻璃推拉門做隔斷,還能夠解決光線的照射問題,讓整個空間不至...
2024-10-21
所有者權益變動表怎麼填
所有者權益變動表怎麼填
所有者權益變動表怎麼填?所有者權益變動表“上年金額”欄内各項數字,應根據上年度所有者權益變動表“本年金額”欄内所列數字填列,我來為大家科普一下關于所有者權益變動表怎麼填?下面希望有你要的答案,我們一起來看看吧!所有者權益變動表怎麼填所有者權...
2024-10-21
我的世界迦米礦在第幾層
我的世界迦米礦在第幾層
我的世界迦米礦在第幾層?煤礦石出現高度:所有層數,開采工具:木鎬及以上,今天小編就來說說關于我的世界迦米礦在第幾層?下面更多詳細答案一起來看看吧!我的世界迦米礦在第幾層煤礦石出現高度:所有層數,開采工具:木鎬及以上。鐵礦石出現高度:64層以...
2024-10-21
香妃茶花可以放室内嗎
香妃茶花可以放室内嗎
香妃茶花可以放室内嗎?香妃茶花适合養在室内這種花朵屬于大型的,而且花的顔色比較豐富,養在室内完全沒有問題,隻是要注意放在陽光較好的地方,這樣花朵在綻放的時候不會受到影響,下面我們就來說一說關于香妃茶花可以放室内嗎?我們一起去了解并探讨一下這...
2024-10-21
度蜜月什麼意思
度蜜月什麼意思
度蜜月什麼意思?度蜜月,是指新婚夫婦在婚禮後馬上和愛人一起去旅遊度假,作為夫妻恩愛、白頭偕老的開始人們把新婚後的第一個月稱為“蜜月”“蜜月”一詞産生于公元前500年的英國,當時的英格蘭還處于較原始的荒蠻社會,我來為大家講解一下關于度蜜月什麼...
2024-10-21
Copyright 2023-2024 - www.tftnews.com All Rights Reserved