嵌入式系統(tǒng)原理與開發(fā)(第三版)課件:嵌入式硬件平臺_第1頁
嵌入式系統(tǒng)原理與開發(fā)(第三版)課件:嵌入式硬件平臺_第2頁
嵌入式系統(tǒng)原理與開發(fā)(第三版)課件:嵌入式硬件平臺_第3頁
嵌入式系統(tǒng)原理與開發(fā)(第三版)課件:嵌入式硬件平臺_第4頁
嵌入式系統(tǒng)原理與開發(fā)(第三版)課件:嵌入式硬件平臺_第5頁
已閱讀5頁,還剩123頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

嵌入式硬件平臺3.1引言

3.2嵌入式硬件平臺概述

3.3總線

3.4存儲設(shè)備

3.5I/O設(shè)備

3.6通信設(shè)備3.7其他

思考與練習(xí)題

3.1引言

嵌入式系統(tǒng)的硬件除了核心部件——嵌入式處理器外,還包括存儲器系統(tǒng)、外圍接口部件以及連接各種設(shè)備的總線系統(tǒng)。其中,存儲器是嵌入式系統(tǒng)存放數(shù)據(jù)和程序的功能部件,而外圍設(shè)備則決定了應(yīng)用于不同領(lǐng)域的嵌入式系統(tǒng)的獨(dú)特功能。

本章在3.2節(jié)簡要介紹嵌入式硬件平臺。3.3節(jié)分析總線系統(tǒng),內(nèi)容包括總線協(xié)議、DMA、總線配置、總線實(shí)例。3.4節(jié)介紹嵌入式系統(tǒng)的存儲設(shè)備,包括嵌入式系統(tǒng)存儲器子系統(tǒng)的結(jié)構(gòu)、RAM、ROM和Flash。在3.5節(jié)中介紹嵌入式系統(tǒng)的I/O設(shè)備,其中具體分析了定時器/計數(shù)器、ADC和DAC、人機(jī)接口設(shè)備(含鍵盤、LCD、觸摸屏)。在3.6節(jié)的通信設(shè)備中,主要介紹通用異步收發(fā)器(UART)、USB設(shè)備和Ethernet設(shè)備。3.7節(jié)講述其他附屬電路的有關(guān)問題,內(nèi)容包括電源、時鐘、復(fù)位和中斷。 3.2嵌入式硬件平臺概述

嵌入式系統(tǒng)的硬件是以嵌入式處理器為中心,由存儲器、I/O單元電路、通信模塊、外部設(shè)備等必要的輔助接口組成的,如圖3-1所示。在實(shí)際應(yīng)用中,嵌入式系統(tǒng)的硬件配置非常精簡,除了微處理器和基本的外圍電路以外,其余的電路可以根據(jù)需要和成本進(jìn)行裁剪、定制。

通常,嵌入式系統(tǒng)還包括人機(jī)交互界面。人機(jī)交互界面常常使用鍵盤、液晶屏、觸摸屏等部件,以方便系統(tǒng)與人的交互操作。

存儲器是構(gòu)成嵌入式系統(tǒng)硬件的重要組成部分。設(shè)計嵌入式系統(tǒng)的存儲器時有許多因素需要考慮。有的嵌入式處理器集成了存儲器,一般不需要擴(kuò)展;有的嵌入式處理器無法擴(kuò)展;有的嵌入式處理器上沒有存儲器,必須擴(kuò)展;有的嵌入式處理器上集成了一定數(shù)量的存儲器,可以滿足一定的需要,但如果軟件比較大,可能還需要擴(kuò)展存儲器。整個存儲器系統(tǒng)由片上和片外兩部分組成。出于成本和體積的限制,嵌入式系統(tǒng)的存儲器通常采用高度集成的存儲器芯片,以節(jié)省電路板的面積,減少設(shè)計的復(fù)雜性,提高系統(tǒng)的可靠性。圖3-1嵌入式系統(tǒng)的硬件組成

3.3總線

3.3.1總線協(xié)議

1.握手協(xié)議

總線協(xié)議中的基本構(gòu)件是四周期握手協(xié)議??偩€握手信號的作用是控制每個總線周期中數(shù)據(jù)傳送的開始和結(jié)束,從而實(shí)現(xiàn)兩個設(shè)備間的協(xié)調(diào)和配合,保證數(shù)據(jù)傳送的可靠性。握手線用兩根連線enq(查詢)和ack(應(yīng)答)來表示。在握手期間,使用專用的握手線來傳輸數(shù)據(jù)。因此,數(shù)據(jù)握手線必須以某種方式由信號的電壓變化來表明整個總線傳輸周期的開始和結(jié)束,以及在整個周期內(nèi)每個子周期的開始和結(jié)束。一般地,四周期握手過程如圖3-2所示。圖3-2四周期握手協(xié)議對握手過程的描述如下:

(1)設(shè)備1升高它的輸出電平來發(fā)出查詢信號,它告訴設(shè)備2應(yīng)準(zhǔn)備好接收數(shù)據(jù)。

(2)當(dāng)設(shè)備2準(zhǔn)備好接收數(shù)據(jù)時,它通過升高它的輸出電平來發(fā)出應(yīng)答信號。這時,設(shè)備1已準(zhǔn)備好發(fā)送數(shù)據(jù),設(shè)備2已準(zhǔn)備好接收數(shù)據(jù)。

(3)一旦數(shù)據(jù)傳送完畢,設(shè)備2降低它的輸出電平表示它已經(jīng)接收完數(shù)據(jù)。

(4)看到設(shè)備2的應(yīng)答信號變低,設(shè)備1降低它的輸出電平。

2.總線讀/寫

微處理器總線在握手基礎(chǔ)上為CPU和系統(tǒng)其他部分建立通信?;镜目偩€操作包括讀和寫。圖3-3說明了一個支持讀和寫的典型總線結(jié)構(gòu)。圖3-3典型的微處理器總線

?Clock提供總線組件各部分的同步。

當(dāng)總線讀時,R/W‘為1;當(dāng)總線寫時,R/W’為0。

?Address是一個a位信號束,為訪問提供地址。

Data是一個n位信號束,它可以從CPU得到數(shù)據(jù)或向CPU傳送數(shù)據(jù)。

當(dāng)數(shù)據(jù)線上的值合法時,Dataready'發(fā)信號??偩€行為經(jīng)常用時序圖來說明,時序圖表示了總線上的信號如何隨時間變化。圖3-4所示為某總線的時序圖,包括讀和寫兩部分。由于讀不改變設(shè)備和存儲器的任何狀態(tài),因此總線通常處于讀狀態(tài)。CPU可以忽略數(shù)據(jù)線直到它要使用讀操作的結(jié)果為止。此外,還要注意在雙向線路上數(shù)據(jù)的傳輸方向并未在時序圖中指定。在讀過程中,外設(shè)或存儲器在數(shù)據(jù)線上發(fā)送數(shù)據(jù);而在寫過程中,CPU控制數(shù)據(jù)線。圖3-4總線時序圖通??梢杂每偩€握手信號來執(zhí)行突發(fā)傳輸,如圖3-5所示。在這個突發(fā)讀事務(wù)中,CPU發(fā)送一個地址信號,但接收的是一個數(shù)據(jù)值序列。我們給總線額外增加一根稱為Burst'?的線路。當(dāng)事務(wù)是突發(fā)事務(wù)時,用它來向設(shè)備發(fā)信號;用釋放Burst'?信號來通知設(shè)備已傳輸了足夠的數(shù)據(jù)。圖3-5總線的突發(fā)讀事務(wù)總線事務(wù)的狀態(tài)圖是對時序圖的有效補(bǔ)充,圖3-6展示了讀操作的CPU和設(shè)備的狀態(tài)圖。當(dāng)CPU決定執(zhí)行一個讀事務(wù)時,它轉(zhuǎn)換到新狀態(tài),并發(fā)出讓設(shè)備正確工作的總線信號;而設(shè)備狀態(tài)轉(zhuǎn)換圖捕獲了它這一端的總線協(xié)議狀態(tài)。圖3-6總線讀事務(wù)的狀態(tài)圖3.3.2DMA

在每個讀/寫事務(wù)中間,標(biāo)準(zhǔn)總線事務(wù)要求CPU解決它與其他設(shè)備的信息交換問題。但是,某些數(shù)據(jù)傳輸不需要CPU介入,如I/O設(shè)備和存儲器之間的數(shù)據(jù)交換。要實(shí)現(xiàn)這類操作,就要求CPU以外的設(shè)備單元能夠控制總線上的操作。

直接存儲器訪問(DirectMemory-Access,DMA)是允許讀/寫不由CPU控制的總線操作。DMA使用一種稱為DMA控制器的專用硬件來完成外設(shè)與存儲器之間的高速數(shù)據(jù)傳送。DMA控制器從CPU請求總線控制,得到控制權(quán)后,控制器能像CPU那樣提供內(nèi)存的地址和必要的讀/寫控制信號,實(shí)現(xiàn)直接在設(shè)備和存儲器之間的讀/寫操作。圖3-7展示了一個帶有DMA控制器的總線配置。圖3-7帶DMA控制器的總線3.3.3總線配置

一個微處理器系統(tǒng)可能使用多條總線來連接設(shè)備。如圖3-8所示,高速設(shè)備連到高速總線上,而低速設(shè)備連到低速總線上,通過一個被稱為橋的邏輯電路使得總線可以互連。圖3-8多總線系統(tǒng)

使用這樣的總線配置主要出于以下考慮:

(1)高速總線通常提供較寬的數(shù)據(jù)連接。

(2)高速總線通常要使用昂貴的電路和連接器,可以通過使用較慢的、比較便宜的低速總線來降低低速設(shè)備成本。

(3)橋允許總線獨(dú)立操作,因此可以在I/O操作中提供并行性。

在高速總線和低速總線之間的總線橋是高速總線的受控器,是低速總線的主控器。橋從高速總線上獲取指令并將其傳到低速總線,將結(jié)果從低速總線傳到高速總線。3.3.4總線實(shí)例

這里以ARM的一個總線系統(tǒng)為例,簡單分析該系統(tǒng)的組成和特征。

由于ARM微處理器由不同的制造商制造,因此芯片外提供的總線隨芯片的變化而變化。ARM已經(jīng)為單芯片系統(tǒng)創(chuàng)建了一個獨(dú)立的總線規(guī)格說明——AMBA規(guī)范。AMBA總線(ARM99A)支持將多個CPU、存儲器和外圍設(shè)備集成在片上系統(tǒng)中。如圖3-9所示,AMBA規(guī)格說明包括兩條總線:AHB和APB。其中,AMBA高性能總線(AHB)是為高速傳輸而經(jīng)過優(yōu)化的,它直接連到CPU上并支持多種高性能總線的特性,如流水線技術(shù)、突發(fā)傳輸、分離事務(wù)和多總線主控器等。橋用來將AHB連到AMBA外圍設(shè)備總線(APB)上。圖3-9ARMAMBA總線系統(tǒng) 3.4存儲設(shè)備

3.4.1嵌入式系統(tǒng)存儲器子系統(tǒng)的結(jié)構(gòu)

存儲器子系統(tǒng)設(shè)計的首要目標(biāo)是使存儲器在工作速度上很好地與處理器匹配,并滿足各種存取需要。因此,體系結(jié)構(gòu)的特性能夠提高存儲系統(tǒng)的速度和容量。隨著微電子技術(shù)的發(fā)展,微處理器的工作速度有了很大的提高。而微處理器時鐘頻率的提高比內(nèi)存速度的提高要快,以至于內(nèi)存速度遠(yuǎn)遠(yuǎn)落后于CPU速度。如果大量使用高速存儲器,使它們在速度上與處理器相吻合,就能夠簡便地解決問題。但是,這種方法受到經(jīng)濟(jì)上的限制。因?yàn)殡S著存儲器芯片速度的提高,其價格急劇上升,系統(tǒng)成本十分昂貴。在實(shí)際的計算機(jī)系統(tǒng)中,總是采用分級的方法來設(shè)計整個存儲器系統(tǒng)。圖3-10所示為這種分級存儲系統(tǒng)的組織結(jié)構(gòu)示意圖,它把全部存儲系統(tǒng)分為四級,即寄存器組、高速緩存、內(nèi)存和外存。它們在存取速度上依次遞減,而在存儲容量上逐級遞增。圖3-10分級存儲器系統(tǒng)3.4.2RAM

RAM(RandomAccessMemory,隨機(jī)存儲器)能夠隨時在任一地址讀出或?qū)懭雰?nèi)容。RAM的突出優(yōu)點(diǎn)是讀/寫方便、使用靈活;缺點(diǎn)是不能長期保存信息,一旦停電,所存信息就會丟失。RAM在嵌入式系統(tǒng)中主要用于:

(1)存放當(dāng)前正在執(zhí)行的程序和數(shù)據(jù),如用戶的調(diào)試程序、程序的中間運(yùn)算結(jié)構(gòu)以及掉電時無需保存的I/O數(shù)據(jù)和參數(shù)等。

(2)作為I/O數(shù)據(jù)緩沖存儲器,如顯示輸出緩沖存儲器、鍵盤輸入緩沖存儲器等。以顯示輸出緩沖存儲器為例,它實(shí)質(zhì)上就是在主存中開辟的一個存放字符、漢字、圖形、圖像等顯示信息的數(shù)據(jù)緩沖區(qū)。

(3)作為中斷服務(wù)程序中保護(hù)CPU現(xiàn)場信息的堆棧。隨機(jī)存儲器由兩大類組成:靜態(tài)隨機(jī)存儲器(StaticRAM)和動態(tài)隨機(jī)存儲器(DynamicRAM)。下面具體分析這兩種隨機(jī)存儲器的結(jié)構(gòu)特征。

1.靜態(tài)RAM

靜態(tài)RAM(SRAM)的存儲單元電路是以雙穩(wěn)態(tài)電路為基礎(chǔ)的,因此狀態(tài)穩(wěn)定,只要不掉電,信息就不會丟失。靜態(tài)RAM的接口和操作時序如圖3-11所示。

圖3-11靜態(tài)RAM的接口和操作時序

2.動態(tài)RAM

動態(tài)RAM(DRAM)的存儲單元電路是以電容為基礎(chǔ)的,電路簡單,集成度高,功耗小。但是DRAM即使不掉電也會因電容放電而丟失信息,需要定時刷新,因此在工作時必須配合DRAM控制器。DRAM控制器是位于處理器和存儲器芯片之間的一個額外的硬件,如圖3-12所示。它的主要用途是執(zhí)行DRAM的刷新操作,使得DRAM中的數(shù)據(jù)有效。圖3-12DRAM通過DRAM控制器組成存儲器系統(tǒng)動態(tài)RAM的接口和讀/寫時序有其自身的特點(diǎn)?;緞討B(tài)RAM接口和讀時序如圖3-13所示。圖3-13基本動態(tài)RAM接口和讀時序

3.RAM的選擇

在設(shè)計嵌入式系統(tǒng)時,隨機(jī)存儲器的選擇一般有兩種:SRAM和DRAM。選擇時,通??紤]以下因素:

(1)如果系統(tǒng)的隨機(jī)存儲器的容量不是很大,則一般采用SRAM;反之,選擇DRAM。

(2)對于特別高速度的應(yīng)用,應(yīng)使用SRAM。

(3)如果嵌入式系統(tǒng)對功耗敏感,可使用SRAM。因?yàn)镈RAM需要定時刷新,消耗能力相對大,而SRAM在系統(tǒng)進(jìn)入待機(jī)工作方式時,只需要微小的待機(jī)電流就可以維持?jǐn)?shù)據(jù)不丟失。需要注意的是,SRAM的平均功耗低,但是工作時功耗不一定低。

(4)對于嵌入式處理器而言,有的嵌入式處理器芯片集成了DRAM控制器,這時選擇DRAM比較好。一般地,小規(guī)模的嵌入式系統(tǒng)不建議使用分離的DRAM控制器+DRAM的方案,因?yàn)檫@種方案既會增加系統(tǒng)的復(fù)雜性(如電路板的面積、故障率等),又會增加系統(tǒng)的成本。因此如果選用了DRAM,那么應(yīng)盡量使用帶有DRAM控制器的嵌入式處理器,然后配合使用DRAM。

(5)目前,基于32位嵌入式處理器的嵌入式系統(tǒng)一般使用DRAM。

(6)復(fù)雜的嵌入式系統(tǒng)可以采用SRAM和DRAM混合設(shè)計的方案。不同要求的數(shù)據(jù)使用不同的隨機(jī)存儲器,以滿足系統(tǒng)整體的優(yōu)化設(shè)計。

(7)嵌入式系統(tǒng)的設(shè)計,在使用SRAM和DRAM的成本上,需要仔細(xì)地與整個系統(tǒng)的硬件一起進(jìn)行核算,最終做出選擇。在選擇存儲器類型時,一般要考慮存取時間和成本。3.4.3ROM

ROM(Read-OnlyMemory,只讀存儲器)中的內(nèi)容一經(jīng)寫入,在工作過程中就只能讀出而不能重寫,即使掉電,寫入的內(nèi)容也不會丟失。ROM在嵌入式系統(tǒng)中非常有用,常常用來存放系統(tǒng)軟件(如ROMBIOS)、應(yīng)用程序等不隨時間改變的代碼或數(shù)據(jù)。

ROM可以分為工場可編程ROM和現(xiàn)場可編程ROM兩大類。有以下幾種不同類型的現(xiàn)場可編程ROM:

(1)可編程ROM(ProgrammedROM)。該類ROM只可編程一次,即用戶一次性編程寫入后就永久性地修改了芯片。

(2)紫外線可擦可編程ROM(UVErasableProgrammedROM,UV_EPROM)。該類ROM可以通過紫外線擦除后重復(fù)編程。

(3)電可擦可編程ROM(ElectricalProgrammedROM,EEPROM)。該類ROM允許用戶以字節(jié)為單位多次用電擦除和改寫存儲內(nèi)容,而且可以直接在機(jī)內(nèi)進(jìn)行,不需要專用設(shè)備,方便靈活。3.4.4FlashMemory

FlashMemory(按塊擦除存儲器)是存儲器技術(shù)的最新發(fā)展。FlashMemory綜合了目前為止的所有存儲器件的優(yōu)點(diǎn),主要特點(diǎn)是在不加電情況下能長期保存信息,同時又能在線進(jìn)行快速擦除與重寫。從軟件的觀點(diǎn)來看,F(xiàn)lashMemory和EEPROM的技術(shù)十分類似。但是,EEPROM在擦寫和編程時要加高電壓,這意味著重新編程時必須將芯片從系統(tǒng)中拿出來。而FlashMemory使用標(biāo)準(zhǔn)電壓擦寫和編程,允許芯片在標(biāo)準(zhǔn)系統(tǒng)內(nèi)部編程。這就允許FlashMemory在重新編程的同時存儲新的內(nèi)容。此外,EEPROM必須被整體擦寫,而FlashMemory可以一塊一塊地擦寫。理想的存儲器應(yīng)具有密度高、讀/寫速度快、價格低和非易失性的特點(diǎn)。但是,傳統(tǒng)的存儲器卻只能滿足這些要求中的一部分。FlashMemory的推出,恰好同時實(shí)現(xiàn)了所有這些優(yōu)良的存儲器特性。FlashMemory是一種高密度、低價格的高性能讀/寫存儲器,兼有功耗低、可靠性高等特點(diǎn)。表3-1所示為FlashMemory與傳統(tǒng)存儲器技術(shù)的比較。表3-1FlashMemory與傳統(tǒng)存儲器技術(shù)的比較

FlashMemory的編程操作比較麻煩,主要表現(xiàn)在以下3個方面:

(1)每一個存儲位置都必須在重寫操作之前被擦除。如果舊的數(shù)據(jù)沒有被擦除,那么寫操作的結(jié)果會是新、舊數(shù)值的某種邏輯組合,存儲的數(shù)據(jù)通常是錯誤的。

(2)一次只能有一個扇區(qū)或者塊被擦除,而且不可能只是擦除一個單個的字節(jié)。

(3)擦除舊數(shù)據(jù)的過程和寫入新數(shù)據(jù)的過程是隨著制造商的不同而變化的。因此在進(jìn)行FlashMemory寫入操作時,提供一個軟件層來完成寫入和擦除操作比較方便,這個軟件層叫做FlashMemory的驅(qū)動程序。

FlashMemory不僅可以用作嵌入式系統(tǒng)的程序存儲器,還可以作許多其他的應(yīng)用。

(1)?FlashMemory文件系統(tǒng)。因?yàn)镕lashMemory提供了可被重寫的非易失性存儲,所以它可以被看做類似于任何其他的二級存儲系統(tǒng),如硬盤。在作為文件系統(tǒng)的情況下,由驅(qū)動程序提供的函數(shù)要更加面向文件,可提供諸如open()、close()、read()、write()等標(biāo)準(zhǔn)文件系統(tǒng)函數(shù)。FlashMemory文件系統(tǒng)的組織與普通的外存基本相同。

(2)便攜設(shè)備的存儲裝置。隨著數(shù)碼產(chǎn)品的飛速發(fā)展,F(xiàn)lashMemory作為一種最常用的存儲裝置應(yīng)用于數(shù)碼相機(jī)(如CF卡、XD卡、記憶棒等)、MP3等數(shù)碼產(chǎn)品中。 3.5I/O設(shè)備

3.5.1定時器/計數(shù)器

所有的嵌入式處理器都集成了定時器/計數(shù)器單元,系統(tǒng)中至少有一個定時器設(shè)備用作系統(tǒng)時鐘。定時器和計數(shù)器都是由帶有保存當(dāng)前值的寄存器和可令當(dāng)前寄存器值加1的增量輸入的加法器邏輯電路組成的。但是,定時器和計數(shù)器的用處不同,主要體現(xiàn)在:定時器的計數(shù)裝置是連到周期性時鐘信號上的,用來測量時間間隔;而計數(shù)器的計數(shù)裝置是連到非周期性信號上的,用來計算外部事件的發(fā)生次數(shù)。因?yàn)橥瑯拥倪壿嬰娐房梢杂羞@兩種使用方式,所以該設(shè)備經(jīng)常被稱為“定時器/計數(shù)器”。嵌入式處理器上的定時器/計數(shù)器通常具有以下功能:

(1)嵌入式操作系統(tǒng)的任務(wù)調(diào)度,特別是具有時間片輪轉(zhuǎn)調(diào)度功能的嵌入式操作系統(tǒng)的任務(wù)調(diào)度,必須使用定時器產(chǎn)生時間片。

(2)嵌入式操作系統(tǒng)的軟件時鐘需要基于硬件定時器產(chǎn)生定時信號。

(3)通信電路的波特率發(fā)生器。

(4)實(shí)時時鐘電路。

(5)集成的片上A/D轉(zhuǎn)換和D/A轉(zhuǎn)換電路。

(6)具有液晶控制器的嵌入式處理器,用于液晶屏的刷新。

(7)處理器監(jiān)控電路,如看門狗等。

(8)集成的動態(tài)存儲器控制器,用于動態(tài)存儲器的刷新。

圖3-14展示了定時器/計數(shù)器的內(nèi)部結(jié)構(gòu)。圖3-14 定時器/計數(shù)器的內(nèi)部結(jié)構(gòu)3.5.2模/數(shù)轉(zhuǎn)換器和數(shù)/模轉(zhuǎn)換器

模/數(shù)(A/D)轉(zhuǎn)換器和數(shù)/模(D/A)轉(zhuǎn)換器是非數(shù)字設(shè)備(即模擬信號源)和嵌入式系統(tǒng)之間聯(lián)系的接口。

D/A轉(zhuǎn)換相對簡單,轉(zhuǎn)換器接口僅包括輸入值,輸入值被連續(xù)轉(zhuǎn)換成模擬信號。

A/D轉(zhuǎn)換器是將連續(xù)變化的模擬信號轉(zhuǎn)換為數(shù)字信號,以便計算機(jī)和數(shù)字系統(tǒng)進(jìn)行處理、存儲、控制和顯示。A/D轉(zhuǎn)換需要更復(fù)雜的電路,所以也需要更復(fù)雜的接口。A/D轉(zhuǎn)換在將模擬輸入轉(zhuǎn)換為數(shù)字形式前需要對模擬輸入進(jìn)行采樣??刂菩盘柺沟肁/D轉(zhuǎn)換器進(jìn)行采樣并將其數(shù)字化。典型的A/D轉(zhuǎn)換器接口除了模擬輸入外還有兩個主要的數(shù)字輸入,一個數(shù)據(jù)端口允許A/D寄存器被讀/寫;另一個時鐘輸入信號通知什么時候開始下一次轉(zhuǎn)換。A/D轉(zhuǎn)換器有若干種不同的類型,主要包括逐位比較型、積分型、計數(shù)型、并行比較型和電壓-頻率型。選用A/D轉(zhuǎn)換器時,主要應(yīng)根據(jù)使用場合的具體需求,分析轉(zhuǎn)換速度、精度、價格、功能以及接口條件等因素,最終決定選擇的類型。3.5.3人機(jī)接口設(shè)備

1.LED

發(fā)光二極管(LightEmittingDiode,LED)是由鎵(Ga)、砷(AS)和磷(P)等的化合物制成的二極管,使用不同的化合物可發(fā)出不同顏色的光。發(fā)光二極管的基本結(jié)構(gòu)是一塊電致發(fā)光的半導(dǎo)體材料,置于一個有引線的架子上,然后四周用環(huán)氧樹脂密封,起到保護(hù)內(nèi)部芯線的作用,其外觀如圖3-15所示。發(fā)光二極管的兩根引線中較長的一根為正極,應(yīng)接電源正極。有的發(fā)光二極管的兩根引線一樣長,但管殼上有一凸起的小舌,靠近小舌的引線是正極。發(fā)光二極管在電路及儀器中作為指示燈,或者組成文字或數(shù)字顯示。對于單色發(fā)光二極管,通常是一個引腳接地,另一個引腳連接處理器I/O端口,通過輸出電平的高低來實(shí)現(xiàn)發(fā)光二極管的亮滅,而對于變色發(fā)光二極管,通常使用處理器的兩個I/O口來實(shí)現(xiàn)不同顏色的亮滅。

把發(fā)光二極管的管心做成條狀,用若干條條狀的發(fā)光管組成段式半導(dǎo)體數(shù)碼管,這就是數(shù)碼管模塊,如圖3-16所示。數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,七段數(shù)碼管可以顯示“0”到“9”十個數(shù)字,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元,可顯示一個小數(shù)點(diǎn)。多個數(shù)碼管組合,就能顯示多位數(shù)字。按發(fā)光二極管單元連接方式可將其分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽極數(shù)碼管將所有發(fā)光二極管的陽極接到一起,在應(yīng)用時應(yīng)將公共極接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點(diǎn)亮;當(dāng)某一字段發(fā)光二極管的陰極為高電平時,相應(yīng)字段就不亮。而共陰極數(shù)碼管將所有發(fā)光二極管的陰極接到一起,在應(yīng)用時應(yīng)將公共極接到地線上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時,相應(yīng)字段就點(diǎn)亮;當(dāng)某一字段發(fā)光二極管的陽極為低電平時,相應(yīng)字段就不亮。圖3-15LED外觀圖圖3-16數(shù)碼管外觀示意圖

與發(fā)光二極管相比,數(shù)碼管模塊的控制較為復(fù)雜,一般有以下三種方法:

第一,利用處理器的I/O口直接進(jìn)行控制。這種控制方式下,數(shù)碼管的每個控制引腳都要與處理器的一個I/O口相連。這種控制方式簡單易實(shí)現(xiàn),占用CPU時間很少,可以在較小的電流驅(qū)動下獲得較高的顯示亮度,但因占用大量I/O資源而并不適用。

第二,處理器與串并轉(zhuǎn)換芯片(移位鎖存器)相結(jié)合。在移位脈沖的作用下將串行信號轉(zhuǎn)換為并行信號,當(dāng)全部數(shù)據(jù)都移至移位寄存器后,鎖存信號將移位寄存器中的內(nèi)容鎖存到鎖存器中,并輸出驅(qū)動發(fā)光二極管,在移位過程中鎖存器鎖存內(nèi)容不變,數(shù)碼管顯示上一次輸出數(shù)據(jù)。因此,驅(qū)動控制1個數(shù)碼管模塊,僅需要使用處理器的3個I/O口分別與移位鎖存器的時鐘信號引腳、數(shù)據(jù)輸入引腳和輸出控制引腳相連,節(jié)省了I/O資源。

第三,使用專用數(shù)碼管控制芯片的動態(tài)掃描顯示。目前常用的數(shù)碼管顯示控制芯片主要有TM1620/TM1637/TM1668、ZLG8279、MAX7219、HD7279以及CH451等系列,這些芯片都內(nèi)置RC振蕩電路,具有BCD譯碼、閃爍和移位功能,使用動態(tài)掃描控制方式,可實(shí)現(xiàn)對8個數(shù)碼管的驅(qū)動控制,同時支持對64位鍵盤的掃描。

2.鍵盤

鍵盤是標(biāo)準(zhǔn)的輸入設(shè)備,廣泛用于嵌入式產(chǎn)品,如微波爐、傳真機(jī)、復(fù)印機(jī)、激光打印機(jī)等。依賴鍵盤接口,嵌入式設(shè)備能夠處理用戶的輸入信息,將嵌入式控制器的功能發(fā)揮得更大。鍵盤可以用來輸入數(shù)字型數(shù)據(jù)或者選擇控制設(shè)備的操作模式。

鍵盤主要由一個開關(guān)陣列組成,此外還包括一些邏輯電路來簡化它到微處理器的接口。

開關(guān)使用機(jī)械接觸實(shí)現(xiàn)斷開或接觸電路,如圖3-17所示。圖3-17簡單的開關(guān)電路機(jī)械開關(guān)的主要問題是圖3-18所示的顫動。圖3-18開關(guān)顫動

原始的鍵盤是開關(guān)的簡單集合,每個開關(guān)都有自己的一對引出線,直接連到處理器的輸入端口上。當(dāng)開關(guān)的數(shù)目增加時,這種開關(guān)的組合方法將很快用完所有的輸入端口,原始鍵盤會變得不實(shí)用。更加實(shí)用的鍵盤通過排列開關(guān)形成如圖3-19所示的開關(guān)陣列。一個瞬時接觸開關(guān)放置在每一行與每一列的交叉點(diǎn)處,使用編碼來表示被按下的開關(guān),形成編碼鍵盤,通過掃描開關(guān)陣列來確定是否有鍵被按下。與原始鍵盤不同,掃描鍵盤陣列每次只讀開關(guān)的一行。陣列左邊的多路分路器選擇要讀的行。當(dāng)掃描輸入為1時,該值被送到該行的每一列,如果某個鍵被按下,那么該列的1被探測到。由于每列只有一個鍵被激活,因此該值代表了唯一一個鍵。行地址和列輸出被用來編碼,或者用電路來給出不同的編碼。圖3-19掃描鍵盤陣列3.LCD顯示器

液晶顯示(LiquidCrystalDisplay,LCD)器是一種被動的顯示器,它不能發(fā)光,只能使用周圍環(huán)境的光。液晶顯示器顯示圖案或字符時只需要很小的能量,因此功耗低,已經(jīng)廣泛地應(yīng)用于很多嵌入式產(chǎn)品中,尤其是一些手持設(shè)備。目前市場上的LCD品牌和型號很多,在進(jìn)行設(shè)備選型時,要權(quán)衡好可視面積、分辨率、色彩度、工作溫濕度范圍等參數(shù)。在工程應(yīng)用中,應(yīng)充分考慮設(shè)備的工作環(huán)境,選擇滿足需求的型號。

一個LCD顯示電路,一般由主處理器(CPU)、LCD控制器、LCD顯示緩存和LCD組成,但部分高性能微控制器內(nèi)部也集成了LCD控制器,如圖3-20所示。圖3-20LCD顯示電路結(jié)構(gòu)

CPU可以是單片機(jī)或嵌入式微處理器,LCD的顯示緩存可以采用FIFO、雙口RAM、SRAM或SDRAM等,LCD一般為TFT-LCD(ThinFilmTransistor-LCD,薄膜晶體管LCD)或STN-LCD(SuperTwistedNematicLCD,超扭曲向列LCD)。對LCD進(jìn)行控制的過程如下:

(1)?CPU向顯示緩存中寫數(shù)據(jù)。為了保證LCD的正常顯示,CPU必須先將要顯示的內(nèi)容通過LCD控制器間接存儲到緩存中,顯示數(shù)據(jù)在顯示緩存中存放的格式與LCD顯示格式相關(guān)。

(2)LCD控制器產(chǎn)生控制時序信號,實(shí)際上就是一個自左上角到右下的掃描過程,每掃描一點(diǎn),控制器就會將顯示緩存中的內(nèi)容讀取并輸出到LCD上進(jìn)行顯示,并且當(dāng)掃描點(diǎn)換行或換屏?xí)r,都不進(jìn)行數(shù)據(jù)輸出,成為消隱期。控制時序信號包括像素時鐘信號VCLK、行同步時鐘信號HSYNC,幀同步時鐘信號VSYNC,以及數(shù)據(jù)輸出使能信號VDEN。當(dāng)VDEN有效時,每一個VCLK周期,一個像素點(diǎn)的數(shù)據(jù)信息通過數(shù)據(jù)線VD輸出到LCD上,在一個HSYNC周期內(nèi),完成LCD的一行像素點(diǎn)的顯示,在一個VSYNC內(nèi)完成一整屏像素點(diǎn)的顯示。其控制時序如圖3-21所示。圖3-21LCD掃描控制時序

(3)由于STN-LCD是被動顯示,每個像素點(diǎn)只有“亮”與“不亮”兩種狀態(tài),為了能在STN-LCD上顯示出更多的中間灰度和色彩,就必須使用抖動算法來實(shí)現(xiàn)。而TFT-LCD每個像素點(diǎn)有RGB三種基色顯示單元,每個基色單元又對應(yīng)若干比特數(shù)據(jù),因此可直接顯示豐富多彩的顏色。

4.觸摸屏

觸摸屏是覆蓋在輸出設(shè)備上的輸入設(shè)備,用來記錄觸摸位置。把觸摸屏覆蓋在顯示器上,使用者可以對顯示的信息作出反應(yīng)。

觸摸屏按其工作原理分為表面聲波屏、電容屏、電阻屏和紅外屏等。其中常見的觸摸屏是電阻式觸摸屏。電阻式觸摸屏用二維電壓表來探測位置。如圖3-22所示,觸摸屏由兩層被許多細(xì)小的透明隔離球隔開的導(dǎo)電薄層組成。在頂層的導(dǎo)電層上加上電壓,當(dāng)手指或筆觸摸屏幕時,平常互相絕緣的導(dǎo)電層在觸摸點(diǎn)位置有了一個接觸,產(chǎn)生電勢差。在頂層接觸點(diǎn)對電壓進(jìn)行采樣,用模/數(shù)轉(zhuǎn)換器來測量電壓,以此確定位置。觸摸屏通過交替使用水平和垂直電壓梯度來獲得x和y坐標(biāo)。圖3-22電阻式觸摸屏的結(jié)構(gòu)

3.6通信設(shè)備

3.6.1通用異步收發(fā)器

通用異步收發(fā)器(UniversalAsynchronousReceiverandTransmitter,UART)是用于控制計算機(jī)與串行設(shè)備的接口。

1.?dāng)?shù)據(jù)通信模式

數(shù)據(jù)通信是兩臺數(shù)字設(shè)備之間的數(shù)據(jù)傳輸。從不同的角度劃分,數(shù)據(jù)通信方式大致可以分為雙工通信、串行和并行通信、同步和異步通信。

1)雙工通信

雙工通信是對相互通信的兩臺通信設(shè)備之間數(shù)據(jù)流向的描述。雙工通信包括單工、半雙工和全雙工三種方式。雙工通信方式的結(jié)構(gòu)如圖3-23所示。圖3-23雙工通信方式的結(jié)構(gòu)

(1)單工通信方式是指兩臺通信設(shè)備間的數(shù)據(jù)只能在一個方向上傳送。在單工方式下,兩臺通信設(shè)備中一臺為發(fā)送設(shè)備,另一臺為接收設(shè)備,它們之間只有一條通信鏈路。

(2)半雙工通信方式是指兩臺相互通信的設(shè)備均具有收發(fā)數(shù)據(jù)的能力,但在某一時間內(nèi)它們只能執(zhí)行一種操作(收或發(fā)),不能同時執(zhí)行收、發(fā)兩種操作;在它們之間的通信線路的兩個方向上均可傳輸數(shù)據(jù),但在某一時間內(nèi)只能在一個方向上傳輸數(shù)據(jù)。實(shí)現(xiàn)半雙工通信時,兩臺通信設(shè)備間只需一條通信線路,但各通信設(shè)備必須配備收發(fā)切換開關(guān)。

(3)全雙工通信方式是指相互通信的兩臺設(shè)備可以同時發(fā)送和接收數(shù)據(jù),即數(shù)據(jù)在同一時刻可在兩個方向上傳輸,因此它們之間至少需要兩條通信線路。

2)串行和并行通信

并行通信是指構(gòu)成字符的二進(jìn)制代碼在并行信道上同時傳輸?shù)姆绞健2⑿袀鬏敃r,一次傳輸一個字符,收發(fā)雙方不存在同步問題,傳輸速度較快。但是,并行傳輸需要并行信道,所以線路投資大,不適合小型化產(chǎn)品。

串行通信是指構(gòu)成字符的二進(jìn)制代碼在一條信道上以位(碼元)為單位,按時間順序逐位傳輸?shù)姆绞?。串行傳輸時,發(fā)送端按位發(fā)送,接收端按位接收,同時還要對所傳輸?shù)淖址右源_認(rèn),所以收、發(fā)雙方要采取同步措施,否則接收端將不能正確區(qū)分出所傳輸?shù)淖址?。雖然串行通信的速度較慢,但是只需要一條傳輸信道,線路投資少,易于實(shí)現(xiàn),因此在數(shù)據(jù)通信吞吐量不是很大的嵌入式系統(tǒng)中顯得更加簡易、方便、靈活。

3)異步和同步通信

串行通信有兩種基本工作方式:異步通信和同步通信。在異步通信方式下,傳輸數(shù)據(jù)以字符為單位。當(dāng)發(fā)送一個字符代碼時,字符前面要加一個“起”信號,其長度為1個碼元,極性為“0”;字符后面要加一個“止”信號,其長度為1、1.5或2個碼元,極性為“1”。加上起、止信號后,即可區(qū)分出所傳輸?shù)淖址?。傳送時,字符可以連續(xù)發(fā)送,也可以單獨(dú)發(fā)送,不發(fā)送字符時線路要保持為“1”狀態(tài)。異步傳輸方式適用于1200b/s以下的低速傳輸,實(shí)現(xiàn)起來比較簡單。

同步通信傳輸不需要加起、止信號,因此傳輸效率高,適用于2400b/s以上的數(shù)據(jù)傳輸,但是實(shí)現(xiàn)起來比較復(fù)雜。

2.標(biāo)準(zhǔn)異步串行通信接口

標(biāo)準(zhǔn)異步串行通信接口主要有以下幾類:RS-232C、RS-422和RS-485。RS-232C是美國電子工業(yè)協(xié)會(EIA)正式公布的、在異步串行通信中應(yīng)用最廣的標(biāo)準(zhǔn)總線,適合短距離或帶調(diào)制解調(diào)器的通信場合。為了提高數(shù)據(jù)傳輸速率和通信距離,EIA又公布了RS-422和RS-485串行總線接口標(biāo)準(zhǔn)。

1)?RS-232C

RS-232C是美國電子工業(yè)協(xié)會(ElectronicIndustryAssociation,EIA)制定的在數(shù)據(jù)終端設(shè)備(DataTerminalEquipment,DTE)和數(shù)據(jù)通信設(shè)備(DataCommunicationEquipment,DCE)之間進(jìn)行串行二進(jìn)制數(shù)據(jù)交換的接口。RS是英文“推薦標(biāo)準(zhǔn)”的縮寫,232為標(biāo)識號,C表示修改次數(shù)。RS-232C標(biāo)準(zhǔn)是一種硬件協(xié)議,規(guī)定了21個信號和25個引腳,用于連接DTE和DCE這兩種設(shè)備。

2)?RS-422

RS-422是EIA公布的“平衡電壓數(shù)字接口電路的電氣特性”標(biāo)準(zhǔn),是為改善RS-232C標(biāo)準(zhǔn)的電氣特性、又考慮與RS-232C兼容而制定的。RS-422與RS-232C的關(guān)鍵差別在于把單端輸入改為雙端差分輸入,雙方的信號地不再共用。

RS-422給出了對電纜、驅(qū)動器的要求,規(guī)定了雙端電氣接口形式,并使用雙絞線傳送信號。與RS-232C相比,RS-422傳輸信號距離長、速度快,最大傳輸速率為10?Mb/s,在此速率下,電纜允許長度為120?m。如果采用較低傳輸速率,如90kb/s,則最大距離可達(dá)1200?m。

3)?RS-485

RS-485是RS-422的變型。RS-422是全雙工的,可以同時發(fā)送與接收;而RS-485是半雙工的,在某一時刻,只能一個發(fā)送、另一個接收。

RS-485是一種多發(fā)送器的電路標(biāo)準(zhǔn),它擴(kuò)展了RS-422的性能,允許雙線總線上驅(qū)動32個負(fù)載設(shè)備。負(fù)載設(shè)備可以是被動發(fā)送器、接收器或二者組合而成的收發(fā)器。當(dāng)RS-485接口用于多點(diǎn)互連時,可節(jié)省信號線,便于高速遠(yuǎn)距離傳送。許多智能儀器設(shè)備配有RS-485總線接口,以便于將它們進(jìn)行聯(lián)網(wǎng)。

表3-2對上述三種串行通信標(biāo)準(zhǔn)的性能進(jìn)行了比較。表3-2RS-232C、RS-422A與RS-485性能比較

3.UART

UART提供了RS-232C數(shù)據(jù)終端設(shè)備接口,用于計算機(jī)和調(diào)制解調(diào)器或其他使用RS-232C接口的串行設(shè)備進(jìn)行通信。作為接口的一部分,UART還提供了以下功能:將計算機(jī)外部傳來的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計算機(jī)內(nèi)部使用并行數(shù)據(jù)的器件使用;將由計算機(jī)內(nèi)部傳送過來的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù);在輸出的串行數(shù)據(jù)流中加入奇偶校驗(yàn)位,并對從外部接收的數(shù)據(jù)流進(jìn)行奇偶校驗(yàn);在輸出的數(shù)據(jù)流中加入“起”、“止”標(biāo)記,并從接收數(shù)據(jù)流中刪除“起”、“止”標(biāo)記;處理計算機(jī)與外部串行設(shè)備的同步管理問題;處理由鍵盤或鼠標(biāo)發(fā)出的中斷信號(鍵盤和鼠標(biāo)也是串行設(shè)備)。相對于微處理器,一臺UART可作為一個甚至多個存儲點(diǎn)或I/O端口。UART一般包括一個或多個狀態(tài)寄存器,用于驗(yàn)證數(shù)據(jù)傳輸和接收時的狀態(tài)、進(jìn)程。微處理器通過UART能夠判斷何時已收到一個字節(jié)、何時已發(fā)送一個字節(jié)、是否產(chǎn)生通信錯誤等。UART還可以通過一個或多個控制寄存器進(jìn)行配置,配置內(nèi)容包括波特率的設(shè)置、終止位數(shù)量的設(shè)置以及在發(fā)送字節(jié)時產(chǎn)生中斷等。異步通信在UART上幾乎是透明地運(yùn)行,收、發(fā)數(shù)據(jù)時,只需運(yùn)行程序,簡單地在UART上執(zhí)行讀/寫操作即可。

比較流行的UART有NS16550、AMDZ8530、ACIA、Motorola6850、ZilogZ-80STO等。當(dāng)UART用于嵌入式設(shè)計時,嵌入式系統(tǒng)就能夠利用通信終端、計算機(jī),甚至是其他嵌入式微處理器上的數(shù)據(jù)資源。3.6.2USB設(shè)備

1.USB總線概述

通用串行總線(UniversalSerialBus,USB)是1995年由Microsoft、Compaq、IBM等公司聯(lián)合制定的一種新的計算機(jī)串行通信協(xié)議。USB協(xié)議得到各PC廠商、芯片制造商和PC外設(shè)廠商的廣泛支持。

通用串行總線是一種將USB外圍設(shè)備連接到主機(jī)的外部總線結(jié)構(gòu),它通過PCI總線和PC的內(nèi)部系統(tǒng)數(shù)據(jù)線連接,實(shí)現(xiàn)數(shù)據(jù)傳送。USB同時又是一種通信協(xié)議,它支持主系統(tǒng)和USB外圍設(shè)備之間的數(shù)據(jù)傳送,通過一個4針的標(biāo)準(zhǔn)插頭,采用菊花鏈形式把所有的外設(shè)連接起來。

USB主要具有以下優(yōu)點(diǎn):

(1)支持熱插拔(hotplug)和即插即用(plug-and-play),即在不關(guān)機(jī)的情況下可以安全地插上或斷開USB設(shè)備,動態(tài)加載驅(qū)動程序。

(2)為所有的USB外設(shè)提供單一的、易于操作的標(biāo)準(zhǔn)連接類型,排除了外設(shè)對系統(tǒng)資源的占用,因此減少了硬件的復(fù)雜性,整個USB系統(tǒng)只有一個端口和一個中斷,節(jié)省了系統(tǒng)資源。

(3)?USB1.1提供全速12Mb/s和低速1.5Mb/s的模式,USB2.0提供高達(dá)480Mb/s的傳輸速率。

(4)為了適應(yīng)各種不同類型外設(shè)的要求,USB提供了四種不同的數(shù)據(jù)傳輸類型。

(5)易于擴(kuò)展,理論上最多可支持127個設(shè)備。

2.USB總線的硬件結(jié)構(gòu)

USB通過四線電纜傳送信號和電能,如圖3-22所示。其中兩根是用來傳送數(shù)據(jù)的串行通道,另兩根為下游(downstream)設(shè)備提供電能。圖3-22USB連接線

D+、D-?是一對差模信號線,它支持兩種數(shù)據(jù)傳輸速率。以USB?1.1為例,對于高速外設(shè),USB以全速12?Mb/s傳輸數(shù)據(jù),但必須使用屏蔽的雙絞線且長度不超過5?m;對于低速外設(shè),USB則以1.5Mb/s的速率傳輸數(shù)據(jù),在這種模式下可以使用無屏蔽的非雙絞線,但長度不超過3?m。為了保證能夠提供一定電平的信號并且與終端的負(fù)載匹配,在電纜的每一端都使用不平衡終端負(fù)載。這種終端負(fù)載既能保證檢測出外設(shè)與端口的連接和分離,又能區(qū)分高速與低速USB總線,還可以根據(jù)外設(shè)情況在兩種傳輸模式中自動動態(tài)切換。UBUS通常為?+5?V的電源,GND是地線。

USB系統(tǒng)采用級聯(lián)星形拓?fù)?,該拓?fù)溆扇齻€基本部分組成:主機(jī)(Host)、集線器(Hub)和功能設(shè)備,如圖3-25所示。主機(jī)也稱為根或RootHub,它做在主板上或作為適配卡安裝在計算機(jī)上。主機(jī)通過主機(jī)控制器與USB設(shè)備進(jìn)行交互,控制著USB總線上的數(shù)據(jù)和信息的流動。每個USB系統(tǒng)只能有一個根集線器,它連在主控制器上。集線器是USB結(jié)構(gòu)中的特定成分,它提供用于將設(shè)備連接到USB總線上的端口,同時檢測連接在總線上的設(shè)備,并為這些設(shè)備提供電源管理、負(fù)載總線的故障檢測和恢復(fù)。集線器可為總線提供能源,也可為自身提供能源(從外部得到電能)。圖3-25USB系統(tǒng)級聯(lián)結(jié)構(gòu)

3.USB總線的軟件結(jié)構(gòu)

(1)?USB總線接口。USB總線接口處理電氣層與協(xié)議層的互連,由主控制器實(shí)現(xiàn)。

(2)?USB系統(tǒng)。USB系統(tǒng)用主控制器管理主機(jī)與USB設(shè)備間的數(shù)據(jù)傳輸。它與主控制器間的接口依賴于主控制器的硬件定義。同時,USB系統(tǒng)也負(fù)責(zé)管理USB資源,例如帶寬和總線能量,這使得客戶訪問USB成為可能。USB系統(tǒng)包括三個基本組件:主控制器驅(qū)動程序(HCD)、USB驅(qū)動程序(USBD)和主機(jī)軟件。

①主控制器驅(qū)動程序。該程序可以把不同主控制器設(shè)備映射到USB系統(tǒng)中。通用主控制器驅(qū)動程序(UHCD)處于軟件結(jié)構(gòu)的最低層,用于控制USB主控制器,它對系統(tǒng)軟件的其他部分是隱蔽的。系統(tǒng)軟件中的最高層通過UHCD的軟件接口與主控制器通信。

USB驅(qū)動程序。該程序在UHCD驅(qū)動器之上,提供驅(qū)動器級的接口,以滿足現(xiàn)有設(shè)備驅(qū)動器設(shè)計的要求。

③主機(jī)軟件。這些軟件本來是用于向設(shè)備驅(qū)動程序提供配置信息和裝載結(jié)構(gòu)的,但因某些操作系統(tǒng)中沒有提供USB系統(tǒng)軟件,所以設(shè)備驅(qū)動程序?qū)?yīng)用操作系統(tǒng)提供的接口而不是直接訪問USB驅(qū)動程序接口。

(3)?USB客戶軟件。USB客戶軟件是軟件結(jié)構(gòu)的最高層,負(fù)責(zé)處理特定的USB設(shè)備驅(qū)動??蛻舫绦?qū)用枋鏊兄苯幼饔糜谠O(shè)備的軟件入口。當(dāng)設(shè)備系統(tǒng)被檢測到后,這些客戶程序?qū)⒅苯幼饔糜谕鈬布_@種共享特性將USB系統(tǒng)軟件置于客戶和它的設(shè)備之間,客戶程序要根據(jù)USB在客戶端形成的設(shè)備映像對它進(jìn)行處理。

4.USB總線的數(shù)據(jù)傳輸方式

數(shù)據(jù)和控制信號在主機(jī)和USB設(shè)備之間的交換存在兩種通道:單向通道和雙向通道。USB的數(shù)據(jù)傳送是在主機(jī)和某個USB設(shè)備的指定端口之間進(jìn)行的。這種主機(jī)和USB設(shè)備的端口間的聯(lián)系稱做通道。一般情況下,各個通道之間的數(shù)據(jù)流動是相互獨(dú)立的,且一個指定的USB設(shè)備可有許多通道。對任何給定的設(shè)備進(jìn)行設(shè)置時,一個通道上的數(shù)據(jù)傳輸只能支持下列四種USB數(shù)據(jù)傳輸方式中的一種:同步(isochronous)、控制(control)、中斷(interrupt)和批量(bulk)。

(1)同步數(shù)據(jù)傳輸。同步數(shù)據(jù)傳輸提供了確定的帶寬和間隔時間(latency)。它主要用于時間要求嚴(yán)格并且具有較強(qiáng)容錯性的流數(shù)據(jù)傳輸,或者用于要求恒定數(shù)據(jù)傳輸速率的即時應(yīng)用中。對于同步傳輸來說,即時的數(shù)據(jù)傳遞比數(shù)據(jù)的完整性更重要。

(2)控制數(shù)據(jù)傳輸??刂苽鬏斒请p向傳輸,數(shù)據(jù)量通常較小。USB系統(tǒng)軟件主要用來進(jìn)行查詢、配置和給USB設(shè)備發(fā)送通用的命令。控制傳輸方式可以傳輸8、16、32和64字節(jié)的數(shù)據(jù),這依賴于設(shè)備和傳輸速度??刂苽鬏?shù)牡湫蛻?yīng)用是在主機(jī)和USB外設(shè)之間的傳輸。

(3)中斷數(shù)據(jù)傳輸。中斷方式傳輸主要用于定時查詢設(shè)備是否有中斷數(shù)據(jù)傳輸。設(shè)備的端點(diǎn)模式器的結(jié)構(gòu)決定了它的查詢頻率范圍是1~255?ms,這種傳輸方式主要用于少量的、分散的、不可預(yù)測數(shù)據(jù)的傳輸,如鍵盤、操縱桿和鼠標(biāo)等就使用這一類型。中斷方式傳輸數(shù)據(jù)是單向的,且對于主機(jī)來說只有輸入的方式。

(4)批量數(shù)據(jù)傳輸。批量方式傳輸主要應(yīng)用在大量傳輸和接收數(shù)據(jù),同時又沒有帶寬和間隔時間要求的情況下。批量數(shù)據(jù)由大量的數(shù)據(jù)組成,且是連續(xù)的。這種傳輸方式可以等到所有其他類型的數(shù)據(jù)傳輸完成之后再使用。

5.USB總線的數(shù)據(jù)傳輸原理

在USB結(jié)構(gòu)中,占主導(dǎo)地位的是主控制器。主控制器要保證所有與其連接的數(shù)量不同、傳輸方式不同的設(shè)備能夠同時正常工作。為此,USB主控制器使用間隔為1ms的幀來實(shí)現(xiàn)數(shù)據(jù)傳輸。由于有許多設(shè)備連接到USB總線上,因此每1ms產(chǎn)生的傳輸幀是混合的。在幾種數(shù)據(jù)傳輸方式都存在的情況下,中斷傳輸和同步傳輸對時間要求較高,因此占用了約90%的總帶寬;控制傳輸占用了約10%的帶寬;批量傳輸對時間要求不高,但數(shù)據(jù)量大,它使用剩下的可用帶寬。?各種USB設(shè)備就是通過這種基本的幀結(jié)構(gòu)實(shí)現(xiàn)共享USB帶寬來傳輸數(shù)據(jù)的。在主機(jī)端,不同設(shè)備的數(shù)據(jù)傳輸請求被劃分成若干個塊(Transaction)。為了保證連接到主機(jī)上的設(shè)備可以同時工作,主機(jī)每次從不同設(shè)備取一個塊構(gòu)成一個1ms幀,然后將整個幀發(fā)送到USB總線上。每一個塊由三個包(Packet)組成:標(biāo)志包(TokenPacket)、數(shù)據(jù)包(DataPacket)和握手信號包(HandshakePacket)。根據(jù)令牌包里定義的設(shè)備地址和端點(diǎn)號,設(shè)備能夠確定屬于自己的相應(yīng)數(shù)據(jù)。一根USB總線每次最多傳輸三個數(shù)據(jù)包。在每次傳輸開始時,主機(jī)控制器發(fā)送一個描述傳輸種類、傳輸方向、USB設(shè)備地址和終端號的USB數(shù)據(jù)包,該數(shù)據(jù)包就是標(biāo)志包。在數(shù)據(jù)開始傳輸時,由標(biāo)志包來標(biāo)志數(shù)據(jù)的傳輸方向,即是從主機(jī)到設(shè)備或是從設(shè)備到主機(jī);然后,發(fā)送端開始發(fā)送包含信息的數(shù)據(jù)包或表明沒有數(shù)據(jù)傳輸。接收端要相應(yīng)發(fā)送一個握手的數(shù)據(jù)包,以表明數(shù)據(jù)是否傳輸成功。USB設(shè)備從解碼后的數(shù)據(jù)包的適當(dāng)位置取出屬于自己的數(shù)據(jù)。

6.USB設(shè)備即插即用的實(shí)現(xiàn)

USB設(shè)備可以實(shí)現(xiàn)熱插拔。當(dāng)USB設(shè)備插入到主機(jī)中時,主機(jī)通過查詢設(shè)備的描述符(Descriptor)來了解設(shè)備,進(jìn)而建立通信,這個過程叫做對設(shè)備的枚舉。

圖3-26是某個設(shè)備的描述符結(jié)構(gòu)。圖3-26一個USB設(shè)備的描述符結(jié)構(gòu)

7.USB器件的選擇

在開發(fā)一個USB設(shè)備之前,首先要根據(jù)具體使用要求選擇合適的USB控制器。目前,市場上供應(yīng)的USB控制器主要有兩種:帶USB接口的單片機(jī)(MCU)和純粹的USB接口芯片。

帶USB接口的單片機(jī)從應(yīng)用上可以分成兩類,一類是從底層設(shè)計,專用于USB控制的單片機(jī);另一類是增加了USB接口的普通單片機(jī),如Cypress公司的EZ-USB(基于8051),選擇這類USB控制器的最大好處在于開發(fā)者對系統(tǒng)結(jié)構(gòu)和指令集非常熟悉,開發(fā)工具簡單,但對于簡單或低成本系統(tǒng),價格也是在實(shí)際選擇過程中需要考慮的因素。純粹的USB接口芯片僅處理USB通信,?必須有一個外部微處理器來進(jìn)行協(xié)議處理和數(shù)據(jù)交換。典型產(chǎn)品有Philips公司的PDIUSBD11(IIC接口)、PDIUSBD12(并行接口),NS公司的USBN9603/9604(并行接口),NetChip公司的NET2888等。USB接口芯片的主要特點(diǎn)是價格便宜、接口方便、可靠性高,尤其適合于產(chǎn)品的改型設(shè)計(硬件上僅需對并行總線和中斷進(jìn)行改動,軟件則需要增加微處理器的USB中斷處理和數(shù)據(jù)交換程序、PC機(jī)的USB接口通信程序,無需對原有產(chǎn)品的系統(tǒng)結(jié)構(gòu)作很大的改動)。

8.USB系統(tǒng)的開發(fā)流程

一個典型的USB系統(tǒng)的開發(fā)主要由以下流程組成:

(1)系統(tǒng)結(jié)構(gòu)、功能的定義。

(2)?USB接口方法的選擇。

(3)選擇與微處理器的接口電路。

(4)固件編程。

(5)開發(fā)PC端驅(qū)動程序與應(yīng)用程序。

(6)?USB系統(tǒng)調(diào)試。3.6.3Ethernet設(shè)備

1.以太網(wǎng)的特點(diǎn)

以太網(wǎng)是最廣泛應(yīng)用的局域網(wǎng)絡(luò)技術(shù),實(shí)現(xiàn)了在小區(qū)域(如一個辦公室)范圍內(nèi)連接計算機(jī)的功能。以太網(wǎng)的數(shù)據(jù)速率為10Mb/s,而快速以太網(wǎng)(FastEthernet)的數(shù)據(jù)速率為

100Mb/s。最常用的以太網(wǎng)協(xié)議是IEEE802.3標(biāo)準(zhǔn),媒體的存取規(guī)則采用CSMA/CD(載波檢測多路存取/沖突檢測)?,F(xiàn)代的操作系統(tǒng)均能同時支持這些協(xié)議標(biāo)準(zhǔn),因此對嵌入式系統(tǒng)的應(yīng)用來說,考慮系統(tǒng)精簡因素,只需要支持這一種就夠了,除非有特殊需要,否則沒有必要支持太多協(xié)議。

2.以太網(wǎng)的數(shù)據(jù)傳輸

以太網(wǎng)傳輸報文的基本格式如圖3-27所示。它提供了目的地址和源地址,同時還提供了要傳送的有效數(shù)據(jù)。圖3-27以太網(wǎng)傳輸報文的基本格式以太網(wǎng)的數(shù)據(jù)傳輸有以下特點(diǎn):

(1)所有數(shù)據(jù)位的傳輸由低位開始,傳輸?shù)奈涣鞑捎寐鼜厮固鼐幋a。

(2)以太網(wǎng)傳輸?shù)臄?shù)據(jù)段長度最小為60字節(jié),最大為1514字節(jié)。

(3)通常以太網(wǎng)卡可以接收來自三種地址的數(shù)據(jù),即廣播地址、多播地址(在嵌入式系統(tǒng)中很少使用)和它自己的地址。但當(dāng)用于網(wǎng)絡(luò)分析和監(jiān)控時,網(wǎng)卡也可以設(shè)置為接收任何數(shù)據(jù)包。

(4)任何兩個網(wǎng)卡的物理地址都是不一樣的。網(wǎng)卡地址由專門結(jié)構(gòu)分配,不同廠家使用不同地址段,同一廠家的任意兩個網(wǎng)卡的地址也是唯一的。3.6.4Wi-Fi

Wi-Fi(WirelessFidelity)屬于無線局域網(wǎng)的一種,通常是指IEEE8025.11b產(chǎn)品,是利用無線接入手段的新型局域網(wǎng)解決方案。IEEE802.11b工作頻段為2.4GHz的自由頻段,采用直接序列擴(kuò)頻(DSSS)技術(shù),理論上可達(dá)11Mb/s;有效距離長,與已有的各種802.11設(shè)備兼容;可靠性高、建網(wǎng)迅速、可移動性好、組網(wǎng)靈活、價格低廉等,因此具有很好的發(fā)展前景。Wi-Fi主要用于無線數(shù)據(jù)通信,是一種通用的網(wǎng)絡(luò)接口。

在嵌入式系統(tǒng)中,實(shí)現(xiàn)Wi-Fi功能主要使用內(nèi)置Wi-Fi模塊的微處理器作為系統(tǒng)的主處理器或協(xié)處理器,如臺灣亞信電子的AX22011,ATHEROS公司的AR9331芯片。這種微處理器內(nèi)置802.11無線網(wǎng)MAC(基帶)模塊,采用雙CPU架構(gòu),即主處理器(MCPU)和Wi-Fi處理器(WCPU),分別用于應(yīng)用程序及TCP/IP協(xié)議的運(yùn)行,同時可提供用于代碼存儲的共享閃存,用于主處理器(MCPU)的數(shù)據(jù)存儲器及用于Wi-Fi處理器數(shù)據(jù)存儲器,而內(nèi)置的TCP/IP加速器兼容802.11a/b/g的無線網(wǎng)MAC(基帶),快速以太網(wǎng)MAC及豐富的通信外設(shè),支持基于AP的網(wǎng)絡(luò)或?qū)Φ染W(wǎng)絡(luò)。這里處理器既可作為核心芯片搭建應(yīng)用系統(tǒng),也能通過芯片上運(yùn)行的TCP/IP協(xié)議以及各種并行/串行接口(如LocalBus、高速UART及高速SPI、SDIO接口),作為網(wǎng)絡(luò)協(xié)處理器來搭配其他嵌入式微處理器(系統(tǒng)的主處理器),以減輕其處理TCP/IP及WLAN協(xié)議的負(fù)荷。

3.7其他

3.7.1電源

大多數(shù)嵌入式系統(tǒng)本身都有電源,且電源的供電方式具有一種特定的電壓范圍。嵌入式系統(tǒng)中各個單元的電壓范圍有四種:5.0?±?0.25V、3.3?±?0.3V、2.0?±?0.2V和1.5?±?0.2?V。此外,嵌入式系統(tǒng)微控制器中的電可擦可編程只讀存儲器(EEPROM)、RS-232串行接口,均需要提供12?±?0.2V的電壓。3.7.2時鐘

在嵌入式系統(tǒng)中,處理器需要有一個時鐘振蕩(clockoscillator)電路。時鐘控制著CPU、系統(tǒng)定時器和CPU機(jī)器周期的各種時序需求。機(jī)器周期用于兩個方面:一方面,從存儲器中取回代碼和數(shù)據(jù),然后在處理器中對它們進(jìn)行譯碼并運(yùn)行;另一方面,將結(jié)果傳回存儲器中。時鐘控制著執(zhí)行一條指令的時間。

通用計算機(jī)可以使用分離的時鐘電路,如IBMPC/XT使用專用時鐘芯片8284產(chǎn)生時鐘信號。而嵌入式系統(tǒng)通常為了節(jié)省電路,把時鐘電路集成在嵌入式處理器上,外面只需要接晶體即可。嵌入式系統(tǒng)的時鐘電路一般有以下幾種形式:RC時鐘、石英晶體、石英振蕩器、鎖相倍頻時鐘和多時鐘源。

(1)?RC時鐘。RC時鐘一般用于嵌入式微控制器。這種時鐘源的振蕩頻率的穩(wěn)定性低于時鐘振蕩器,但是功耗比較低。當(dāng)嵌入式系統(tǒng)對時鐘的穩(wěn)定性要求不高時,例如家用電器的控制,可以采用這種電路,且其時鐘頻率可以動態(tài)修改。嵌入式處理器的功耗與時鐘頻率基本呈線性關(guān)系,因此根據(jù)處理器的負(fù)荷動態(tài)改變時鐘頻率以降低功耗是比較好的方法。

(2)石英晶體?;谑⒕w的時鐘電路,其振蕩電路集成在處理器上,處理器引出兩個引腳,分別是放大器的輸入和輸出,石英晶體接在這兩個引腳上,如圖3-28所示。圖3-28由石英晶體構(gòu)成的振蕩器電路結(jié)構(gòu)

(3)石英振蕩器。與石英晶體不同,石英振蕩器把石英晶體和振蕩電路集成一體,形成石英振蕩器電路,直接輸出時鐘信號給處理器。石英振蕩器輸出的時鐘信號接在處理器的輸入引腳上,如圖3-29所示。圖3-29石英振蕩器的振蕩器電路

(4)鎖相倍頻時鐘。通常在高性能的嵌入式處理器上采用鎖相倍頻電路。該時鐘電路的鎖相環(huán)是一個倍頻鎖相環(huán),時鐘電路外接的石英晶體通常采用32768Hz,鎖相環(huán)的倍頻系數(shù)可以通過編程設(shè)置,倍頻得到的高頻時鐘經(jīng)過分頻器進(jìn)行分頻,分別送給處理器的CPU內(nèi)核和各個I/O接口電路。

(5)多時鐘源。高性能的嵌入式處理器如32位的處理器,功能強(qiáng)大,芯片上集成了眾多的智能電路,很多的智能電路都需要不同頻率的時鐘源。此外,出于節(jié)電設(shè)計的考慮,不同I/O電路的工作狀態(tài)可以由處理器的編程控制。為此,這樣的處理器設(shè)計了許多時鐘源,分別為CPU內(nèi)核、實(shí)時時鐘電路、不同的I/O電路提供時鐘信號。3.7.3復(fù)位

1.復(fù)位電路概述

嵌入式處理器的復(fù)位電路就是使處理器從起始地址開始執(zhí)行指令。這

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論