版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章嵌入式硬件平臺(tái)3.1引言3.2嵌入式硬件平臺(tái)概述3.3總線3.4存儲(chǔ)設(shè)備3.5I/O設(shè)備
3.6通信設(shè)備3.7其他思考與練習(xí)題
3.1引
言
嵌入式系統(tǒng)的硬件除了核心部件——嵌入式處理器外,還包括存儲(chǔ)器系統(tǒng)、外圍接口部件以及連接各種設(shè)備的總線系統(tǒng)。其中,存儲(chǔ)器是嵌入式系統(tǒng)存放數(shù)據(jù)和程序的功能部件,而外圍設(shè)備決定了應(yīng)用于不同領(lǐng)域的嵌入式系統(tǒng)的獨(dú)特功能。
3.2嵌入式硬件平臺(tái)概述
嵌入式處理器是嵌入式系統(tǒng)中硬件的核心組成部分,但是若沒(méi)有存儲(chǔ)器和I/O設(shè)備,它就無(wú)法具有各種實(shí)用的功能。嵌入式處理器通常集成了大量的I/O模塊單元(如中斷控制器和通信控制器等)和存儲(chǔ)器(Flash和RAM等)。當(dāng)嵌入式處理器上集成的存儲(chǔ)器單元和I/O單元不夠時(shí),可以通過(guò)擴(kuò)充組成強(qiáng)大的嵌入式硬件系統(tǒng)。嵌入式系統(tǒng)的硬件是以嵌入式處理器為中心,由存儲(chǔ)器、I/O單元電路、通信模塊、外部設(shè)備等必要的輔助接口組成的,如圖3-1所示。在實(shí)際應(yīng)用中,嵌入式系統(tǒng)硬件配置非常精簡(jiǎn),除了微處理器和基本的外圍電路以外,其余的電路可以根據(jù)需要和成本進(jìn)行裁剪、定制。
圖3-1嵌入式系統(tǒng)的硬件組成
在嵌入式系統(tǒng)中使用的存儲(chǔ)器可以是內(nèi)部存儲(chǔ)器,也可以是外部存儲(chǔ)器。通常處理器的內(nèi)部存儲(chǔ)器是非常有限的。對(duì)于小型應(yīng)用,如果這些存儲(chǔ)器夠用,就不必使用外部存儲(chǔ)器;否則,就必須進(jìn)行擴(kuò)展,使用外部存儲(chǔ)設(shè)備。與通用計(jì)算機(jī)把應(yīng)用軟件和操作系統(tǒng)放在外存的工作方式不同,嵌入式系統(tǒng)的軟件通常直接存放在內(nèi)存(如Flash)中,上電之后可以立刻運(yùn)行;當(dāng)然,也有的嵌入式系統(tǒng)的軟件從外存啟動(dòng)、裝載并運(yùn)行。無(wú)論如何,需要考慮嵌入式系統(tǒng)的軟件的固化問(wèn)題,而這一問(wèn)題在通用計(jì)算機(jī)(如PC機(jī))上開(kāi)發(fā)軟件是不需要考慮的。此外,考慮存儲(chǔ)器系統(tǒng)時(shí),還需要考慮嵌入式系統(tǒng)軟件的引導(dǎo)問(wèn)題。
嵌入式處理器工作時(shí)必須有附屬電路支持,如時(shí)鐘電路、復(fù)位電路、調(diào)試電路、監(jiān)視定時(shí)器、中斷控制電路等,這些電路并不完成數(shù)據(jù)的輸入/輸出功能,而是為嵌入式處理器的工作提供必要的條件。在設(shè)計(jì)嵌入式系統(tǒng)的硬件電路時(shí),常常將它們與嵌入式處理器設(shè)計(jì)成一個(gè)模塊,形成處理器最小系統(tǒng)。
嵌入式處理器在功能上有別于通用處理器,其區(qū)別在于嵌入式處理器上集成了大量的I/O電路。因此,用戶(hù)在開(kāi)發(fā)嵌入式系統(tǒng)時(shí),可以根據(jù)系統(tǒng)需求選擇合適的嵌入式處理器,而無(wú)需再另外配合I/O電路。隨著半導(dǎo)體技術(shù)的發(fā)展,嵌入式處理器的集成度不斷提高,許多嵌入式處理器上集成的I/O功能完全滿(mǎn)足應(yīng)用的需求,基本無(wú)需擴(kuò)展。嵌入式系統(tǒng)的I/O接口電路主要完成嵌入式處理器與外部設(shè)備之間的交互和數(shù)據(jù)通信。這些電路包括網(wǎng)絡(luò)接口、串行接口、模/數(shù)轉(zhuǎn)換和數(shù)/模轉(zhuǎn)換接口、人機(jī)交互接口等。應(yīng)用于不同行業(yè)的嵌入式系統(tǒng),其接口功能和數(shù)量有很大的差異。在設(shè)計(jì)I/O接口電路時(shí),一般把這部分作為I/O子系統(tǒng)進(jìn)行統(tǒng)一的設(shè)計(jì),這樣既可以綜合考慮優(yōu)化電路,又便于設(shè)計(jì)成果的重復(fù)使用。
3.3總
線
3.3.1總線協(xié)議1.握手協(xié)議總線協(xié)議中的基本構(gòu)件是四周期握手協(xié)議??偩€握手信號(hào)的作用是控制每個(gè)總線周期中數(shù)據(jù)傳送的開(kāi)始和結(jié)束,從而實(shí)現(xiàn)兩個(gè)設(shè)備間的協(xié)調(diào)和配合,保證數(shù)據(jù)傳送的可靠性。握手線用兩根連線enq(查詢(xún))和ack(應(yīng)答)來(lái)表示。在握手期間,使用專(zhuān)用的握手線來(lái)傳輸數(shù)據(jù)。因此,數(shù)據(jù)握手線必須以某種方式用信號(hào)的電壓變化來(lái)表明整個(gè)總線傳輸周期的開(kāi)始和結(jié)束,以及在整個(gè)周期內(nèi)每個(gè)子周期的開(kāi)始和結(jié)束。一般地,四周期握手過(guò)程(如圖3-2所示)描述如下:
圖3-2四周期握手協(xié)議
(1)設(shè)備1升高它的輸出電平來(lái)發(fā)出查詢(xún)信號(hào),它告訴設(shè)備2應(yīng)準(zhǔn)備好接收數(shù)據(jù)。(2)當(dāng)設(shè)備2準(zhǔn)備好接收數(shù)據(jù)時(shí),升高它的輸出電平來(lái)發(fā)出應(yīng)答信號(hào)。這時(shí),設(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)答信號(hào)變低,設(shè)備1降低它的輸出電平。在握手結(jié)束時(shí),兩個(gè)設(shè)備的握手信號(hào)都是低電平,恢復(fù)到開(kāi)始握手前的狀態(tài)。因此,系統(tǒng)回到其初始狀態(tài),為下一次握手方式傳輸數(shù)據(jù)做好準(zhǔn)備。
2.總線讀/寫(xiě)微處理器總線在握手基礎(chǔ)上為CPU和系統(tǒng)其他部分建立通信?;镜目偩€操作包括讀和寫(xiě),圖3-3說(shuō)明了一個(gè)支持讀和寫(xiě)的典型總線結(jié)構(gòu)。
圖3-3典型的微處理器總線
*Clock提供總線組件各部分的同步。*當(dāng)總線讀時(shí),R/W'為1;當(dāng)總線寫(xiě)時(shí),R/W'為0。*Address是一個(gè)a位信號(hào)束,為訪問(wèn)提供地址。*Data是一個(gè)n位信號(hào)束,它可以從CPU得到數(shù)據(jù)或向CPU傳送數(shù)據(jù)。*Dataready'當(dāng)數(shù)據(jù)束上值合法時(shí)發(fā)信號(hào)。
在這個(gè)基本總線上的所有傳輸都由CPU控制,即CPU可以讀/寫(xiě)設(shè)備或存儲(chǔ)器,但設(shè)備或存儲(chǔ)器自己不能啟動(dòng)傳輸。這是因?yàn)镽/W'和地址都是單向信號(hào),只有CPU能夠決定傳輸?shù)刂泛头较颉?偩€行為經(jīng)常用時(shí)序圖來(lái)說(shuō)明,時(shí)序圖表示了總線上的信號(hào)如何隨時(shí)間變化。圖3-4所示為某總線的時(shí)序圖,包括讀和寫(xiě)兩部分。由于讀不改變?cè)O(shè)備和存儲(chǔ)器的任何狀態(tài),因此總線通常處于讀狀態(tài)。CPU可以忽略數(shù)據(jù)線直到它要使用讀操作的結(jié)果為止。此外,還要注意在雙向線路上數(shù)據(jù)的傳輸方向并未在時(shí)序圖中指定。讀過(guò)程中,外設(shè)或存儲(chǔ)器在數(shù)據(jù)線上發(fā)送數(shù)據(jù);而寫(xiě)過(guò)程中,CPU控制數(shù)據(jù)線。
圖3-4總線時(shí)序圖
通??梢杂每偩€握手信號(hào)來(lái)執(zhí)行突發(fā)傳輸,如圖3-5所示。在這個(gè)突發(fā)讀事務(wù)中,CPU發(fā)送一個(gè)地址信號(hào),但接收的是一個(gè)數(shù)據(jù)值序列。我們給總線額外增加一根稱(chēng)為Burst'的線路。當(dāng)事務(wù)是突發(fā)事務(wù)時(shí),用它來(lái)向設(shè)備發(fā)信號(hào);用釋放Burst'信號(hào)來(lái)通知設(shè)備已傳輸了足夠的數(shù)據(jù)。
圖3-5總線的突發(fā)讀事務(wù)
總線事務(wù)的狀態(tài)機(jī)是對(duì)時(shí)序圖的有效補(bǔ)充,圖3-6展示了讀操作的CPU和設(shè)備的狀態(tài)機(jī)。當(dāng)CPU決定執(zhí)行一個(gè)讀事務(wù)時(shí),它轉(zhuǎn)換到新?tīng)顟B(tài),并發(fā)出讓設(shè)備正確工作的總線信號(hào);而設(shè)備狀態(tài)轉(zhuǎn)換圖捕獲了它這一端的總線協(xié)議狀態(tài)。
圖3-6總線讀事務(wù)的狀態(tài)圖
3.3.2DMA標(biāo)準(zhǔn)總線事務(wù)要求CPU在每個(gè)讀/寫(xiě)事務(wù)中間,解決與其他設(shè)備的信息交換問(wèn)題。但是,某些數(shù)據(jù)傳輸不需要CPU介入,如I/O設(shè)備和存儲(chǔ)器之間的數(shù)據(jù)交換。要實(shí)現(xiàn)這類(lèi)操作,就要求CPU以外的設(shè)備單元能夠控制總線上的操作。直接存儲(chǔ)器訪問(wèn)(DirectMemery-Access,DMA)是允許讀/寫(xiě)不由CPU控制的總線操作。DMA使用一種稱(chēng)為DMA控制器的專(zhuān)用硬件來(lái)完成外設(shè)與存儲(chǔ)器之間的高速數(shù)據(jù)傳送。DMA控制器從CPU請(qǐng)求總線控制,得到控制權(quán)后,控制器能像CPU那樣提供內(nèi)存的地址和必要的讀/寫(xiě)控制信號(hào),實(shí)現(xiàn)直接在設(shè)備和存儲(chǔ)器之間執(zhí)行讀/寫(xiě)操作。圖3-7展示了一個(gè)帶有DMA控制器的總線配置。
圖3-7帶DMA控制器的總線
DMA要求CPU提供兩個(gè)附加的總線信號(hào):總線請(qǐng)求和總線授權(quán)??偩€請(qǐng)求是CPU的輸入信號(hào),DMA控制器通過(guò)它來(lái)請(qǐng)求總線所有權(quán);總線授權(quán)信號(hào)表示總線已經(jīng)授權(quán)給DMA控制器。DMA控制器使用這兩個(gè)信號(hào)來(lái)獲得使用標(biāo)準(zhǔn)四周期握手協(xié)議的總線控制權(quán)。當(dāng)要獲取總線控制權(quán)時(shí),DMA控制器發(fā)出總線請(qǐng)求信號(hào);當(dāng)總線準(zhǔn)備好時(shí),CPU發(fā)出總線授權(quán)信號(hào)。CPU在總線控制權(quán)授予DMA控制器之前,將完成所有未完成的總線事務(wù)。一旦DMA控制器獲得了總線的所有權(quán),它將可以使用和CPU驅(qū)動(dòng)的總線事務(wù)一樣的總線協(xié)議來(lái)完成讀和寫(xiě)。在事務(wù)完成之后,DMA控制器通過(guò)釋放總線請(qǐng)求信號(hào)把總線還給CPU,然后CPU釋放總線授予信號(hào)。
3.3.3總線配置一個(gè)微處理器系統(tǒng)可能使用多條總線來(lái)連接設(shè)備。如圖3-8所示,高速設(shè)備可以連到高速總線上,而低速設(shè)備連到低速總線上,通過(guò)一個(gè)被稱(chēng)為橋的邏輯電路使得總線可以互連。
圖3-8多總線系統(tǒng)
使用這樣的總線配置主要考慮到以下幾個(gè)原因:(1)高速總線通常提供較寬的數(shù)據(jù)連接。(2)高速總線通常要更昂貴的電路和連接器,可以通過(guò)使用較慢的、比較便宜的總線來(lái)降低低速設(shè)備成本。(3)橋允許總線獨(dú)立操作,因此可以在I/O操作中提供并行性。在高速總線和低速總線之間的總線橋是高速總線的受控器,是低速總線的主控器。橋從高速總線上獲取指令并將其傳到低速總線,將結(jié)果從低速總線傳到高速總線上。
3.3.4總線實(shí)例這里以ARM的一個(gè)總線系統(tǒng)為例,簡(jiǎn)單分析該系統(tǒng)的組成和特征。由于ARM微處理器由許多不同制造商制造,因此芯片外提供的總線隨芯片變化而變化。ARM已經(jīng)為單芯片系統(tǒng)創(chuàng)建了一個(gè)獨(dú)立的總線規(guī)格說(shuō)明——AMBA規(guī)范。AMBA總線(ARM99A)支持將多個(gè)CPU、存儲(chǔ)器和外圍設(shè)備集成在片上系統(tǒng)中。如圖3-9所示,AMBA規(guī)格說(shuō)明包括兩條總線:AHB和APB。其中,AMBA高性能總線(AHB)是為高速傳輸而經(jīng)過(guò)優(yōu)化的,它直接連到CPU上并支持多種高性能總線的特性:流水線技術(shù)、突發(fā)傳輸、分離事務(wù)和多總線主控器等。橋用來(lái)將AHB連到AMBA外圍設(shè)備總線(APB)上。
圖3-9ARMAMBA總線系統(tǒng)
3.4存
儲(chǔ)
設(shè)
備
3.4.1嵌入式系統(tǒng)存儲(chǔ)器子系統(tǒng)的結(jié)構(gòu)嵌入式系統(tǒng)的存儲(chǔ)器子系統(tǒng)與通用計(jì)算機(jī)的存儲(chǔ)器子系統(tǒng)的功能并無(wú)明顯的區(qū)別,這決定了嵌入式系統(tǒng)的存儲(chǔ)器子系統(tǒng)的設(shè)計(jì)指標(biāo)和方法也可以采用通用計(jì)算機(jī)的方法,尤其是嵌入通用計(jì)算機(jī)的大型嵌入式系統(tǒng)更是如此。
存儲(chǔ)器子系統(tǒng)設(shè)計(jì)的首要目標(biāo)是使存儲(chǔ)器在工作速度上很好地與處理器匹配,并滿(mǎn)足各種存取需要。因此,體系結(jié)構(gòu)的特性能夠提高存儲(chǔ)系統(tǒng)的速度和容量。隨著微電子技術(shù)的發(fā)展,微處理器的工作速度有了很大的提高。而微處理器時(shí)鐘頻率提高比內(nèi)存速度提高要快,以至于內(nèi)存速度遠(yuǎn)遠(yuǎn)落后于CPU速度。如果大量使用高速存儲(chǔ)器,使它們?cè)谒俣壬吓c處理器相吻合,就能夠簡(jiǎn)便地解決問(wèn)題。但是,這種方法受到經(jīng)濟(jì)上的限制。因?yàn)殡S著存儲(chǔ)器芯片速度的提高,其價(jià)格急劇上升,使系統(tǒng)成本十分昂貴。在實(shí)際的計(jì)算機(jī)系統(tǒng)中,總是采用分級(jí)的方法來(lái)設(shè)計(jì)整個(gè)存儲(chǔ)器系統(tǒng)。圖3-10所示為這種分級(jí)存儲(chǔ)系統(tǒng)的組織結(jié)構(gòu)示意圖,它把全部存儲(chǔ)系統(tǒng)分為四級(jí),即寄存器組、高速緩存、內(nèi)存和外存。它們?cè)诖嫒∷俣壬弦来芜f減,而在存儲(chǔ)容量上逐級(jí)遞增。
圖3-10分級(jí)存儲(chǔ)器系統(tǒng)
寄存器組是最高一級(jí)的存儲(chǔ)器。在計(jì)算機(jī)設(shè)備中,寄存器組一般是微處理器內(nèi)含的,如上一章介紹的ARM處理器中有37個(gè)寄存器。有些待使用的數(shù)據(jù)或者運(yùn)算的中間結(jié)果可以暫存在這些寄存器中。微處理器在對(duì)本芯片內(nèi)的寄存器讀/寫(xiě)時(shí),速度很快,一般在一個(gè)時(shí)鐘周期內(nèi)完成。從總體上說(shuō),設(shè)置一系列寄存器是為了盡可能減少微處理器直接從外部取數(shù)的次數(shù)。但是,由于寄存器組是制作在微處理器內(nèi)部的,受芯片面積和集成度的限制,因此寄存器的數(shù)量不可能做得很多。
第二級(jí)存儲(chǔ)器是高速緩沖存儲(chǔ)器(Cache)。高速緩存是一種小型、快速的存儲(chǔ)器,其存取速度足以與微處理器相匹配。高速緩存能夠保存部分內(nèi)存的內(nèi)容的拷貝,如果正確使用,它能夠減少內(nèi)存平均訪問(wèn)時(shí)間。第三級(jí)是內(nèi)存。運(yùn)行的程序和數(shù)據(jù)都放在內(nèi)存中。由于微處理器的尋址大部分在高速緩存上,因此內(nèi)存可以采用速度稍慢的存儲(chǔ)器芯片,對(duì)系統(tǒng)性能的影響不會(huì)太大,同時(shí)又降低了成本。內(nèi)存除主要使用RAM外,還要使用一定量的ROM。這些ROM主要用來(lái)解決系統(tǒng)初始化的一系列操作,如設(shè)備檢測(cè)、接口電路初始化、啟動(dòng)操作系統(tǒng)等。一般情況下,ROM的存取時(shí)間比較長(zhǎng),對(duì)ROM的每次讀/寫(xiě)要增添3~4個(gè)等待周期。但這種少量慢速存儲(chǔ)器只在開(kāi)機(jī)時(shí)運(yùn)行,對(duì)系統(tǒng)性能影響不大。
最低一級(jí)存儲(chǔ)器是大容量的外存。這種外存容量大,但是在存取速度上比內(nèi)存要慢得多。目前嵌入式系統(tǒng)中常用閃存作為大容量硬盤(pán)存儲(chǔ)各種程序和數(shù)據(jù)。上述四級(jí)存儲(chǔ)器系統(tǒng)并不是每個(gè)嵌入式系統(tǒng)所必須具備的,應(yīng)當(dāng)根據(jù)系統(tǒng)的性能要求和處理器的功能來(lái)確定。例如,在8位處理器上,主要考慮內(nèi)存的時(shí)間,而高速緩存極少被采用。對(duì)于16位和32位微處理器組成的系統(tǒng),隨著性能的提高,存儲(chǔ)系統(tǒng)變得更為復(fù)雜,一般都包含了全部四級(jí)存儲(chǔ)器。
3.4.2RAMRAM(RandomAccessMemory,隨機(jī)存儲(chǔ)器)能夠隨時(shí)在任一地址讀出或?qū)懭雰?nèi)容。RAM的突出優(yōu)點(diǎn)是讀/寫(xiě)方便、使用靈活;缺點(diǎn)是不能長(zhǎng)期保存信息,一旦停電,所存信息就會(huì)丟失。所以RAM用于二進(jìn)制信息的臨時(shí)存儲(chǔ)或緩沖存儲(chǔ),在嵌入式系統(tǒng)中主要用于:(1)存放當(dāng)前正在執(zhí)行的程序和數(shù)據(jù),如用戶(hù)的調(diào)試程序、程序的中間運(yùn)算結(jié)構(gòu)以及掉電時(shí)無(wú)需保存的I/O數(shù)據(jù)和參數(shù)等。(2)作為I/O數(shù)據(jù)緩沖存儲(chǔ)器,如顯示輸出緩沖存儲(chǔ)器、鍵盤(pán)輸入緩沖存儲(chǔ)器等。以顯示緩沖存儲(chǔ)器為例,它實(shí)質(zhì)上就是在主存中開(kāi)辟的一個(gè)存放字符、漢字、圖形、圖像等顯示信息的數(shù)據(jù)緩沖區(qū)。(3)作為中斷服務(wù)程序中保護(hù)CPU現(xiàn)場(chǎng)信息的堆棧。
1.靜態(tài)RAM靜態(tài)RAM(SRAM)的存儲(chǔ)單元電路是以雙穩(wěn)態(tài)電路為基礎(chǔ)的,因此狀態(tài)穩(wěn)定,只要不掉電,信息就不會(huì)丟失。靜態(tài)RAM的接口和操作時(shí)序如圖3-11所示。
圖3-11靜態(tài)RAM圖3-11中:CE'是芯片啟用輸入,在低電平工作。當(dāng)CE'=1時(shí),SRAM的Data引腳被禁用;當(dāng)CE'=0時(shí),SRAM的Data引腳被啟用。R/W'控制當(dāng)前操作是讀(R/W'=1)還是寫(xiě)(R/W'=0)。讀/寫(xiě)是相對(duì)于CPU而言的,因此讀意味著從RAM讀,寫(xiě)意味著寫(xiě)至RAM。需要注意的是,有些SRAM的讀/寫(xiě)使用兩個(gè)控制引腳即WR'和RD',WR'=0時(shí)執(zhí)行寫(xiě)操作;RD'=0時(shí)執(zhí)行讀操作。Adrs指出讀或?qū)懙牡刂贰ata是數(shù)據(jù)傳輸雙向信號(hào)束。R/W'=1時(shí),該引腳為輸出;R/W'=0時(shí),該引腳為輸入。SRAM的操作方法有兩種,即讀操作和寫(xiě)操作。
SRAM上讀操作的方法如下:(1)當(dāng)R/W'=1時(shí),讓CE'=0,啟用SDRAM。(2)將地址送到地址線上。(3)一定延遲時(shí)間后,數(shù)據(jù)通過(guò)數(shù)據(jù)線進(jìn)行傳輸。SRAM上寫(xiě)操作的方法如下:(1)讓CE'=0,啟用SDRAM。(2)讓R/W'=0。(3)地址出現(xiàn)在地址線上,數(shù)據(jù)出現(xiàn)在數(shù)據(jù)線上。在使用SRAM時(shí),需要考慮SRAM與處理器的匹配,一般包括工作電壓、工作速度、時(shí)序等的匹配。電路設(shè)計(jì)完成把SRAM接到系統(tǒng)總線上的工作。
2.動(dòng)態(tài)RAM動(dòng)態(tài)RAM(DRAM)的存儲(chǔ)單元電路是以電容為基礎(chǔ)的,電路簡(jiǎn)單,集成度高,功耗小。但是DRAM即使不掉電也會(huì)因電容放電而丟失信息,需要定時(shí)刷新,因此在工作時(shí)必須配合DRAM控制器。DRAM控制器是位于處理器和存儲(chǔ)器芯片之間的一個(gè)額外的硬件,如圖3-12所示。它的主要用途是執(zhí)行DRAM的刷新操作,使得DRAM中數(shù)據(jù)有效。
圖3-12DRAM通過(guò)DRAM控制器組成存儲(chǔ)器系統(tǒng)
圖3-13基本動(dòng)態(tài)RAM接口和讀時(shí)序
DRAM芯片集成度高,存儲(chǔ)容量大,導(dǎo)致引腳數(shù)量不夠,因此地址輸入采用兩路復(fù)用鎖存方式。也就是說(shuō),DRAM將地址信號(hào)分為兩組,共用幾根地址輸入線,分兩次把地址送入芯片內(nèi)部鎖存起來(lái)。這兩組地址信號(hào)的送入,分別用行地址選擇(RAS')和列地址選擇(CAS')控制。讀操作的時(shí)序圖表明地址按以下兩步提供:首先,RAS'置成0,地址的行部分(即地址高位部分)置于地址線;然后,CAS'置成0,地址的列部分(即地址低位部分)置于地址線。
3.RAM的選擇在設(shè)計(jì)嵌入式系統(tǒng)時(shí),隨機(jī)存儲(chǔ)器的選擇一般有兩種:SRAM和DRAM。選擇時(shí),通??紤]以下因素:(1)如果系統(tǒng)的隨機(jī)存儲(chǔ)器的容量不是很大,則一般采用SRAM;反之,選擇DRAM。(2)對(duì)于特別高速度的應(yīng)用,使用SRAM。(3)如果嵌入式系統(tǒng)對(duì)功耗敏感,可使用SRAM。因?yàn)镈RAM需要定時(shí)刷新,消耗能力相對(duì)大,而SRAM在系統(tǒng)進(jìn)入待機(jī)工作方式時(shí),只需要微小的待機(jī)電流就可以維持?jǐn)?shù)據(jù)不丟失。需要注意的是,SRAM的平均功耗低,但是工作時(shí)功耗不一定低。
(4)對(duì)于嵌入式處理器而言,有的嵌入式處理器芯片集成了DRAM控制器,這時(shí)選擇DRAM比較好。一般的,小規(guī)模的嵌入式系統(tǒng)不建議使用分離的DRAM控制器+DRAM的方案,因?yàn)檫@種方案既會(huì)增加系統(tǒng)的復(fù)雜性(如電路板的面積、故障率等),又會(huì)增加系統(tǒng)的成本。因此如果選用了DRAM,那么盡量使用帶有DRAM控制器的嵌入式處理器,然后配合使用DRAM。(5)目前,基于32位嵌入式處理器的嵌入式系統(tǒng)一般使用DRAM。(6)復(fù)雜的嵌入式系統(tǒng)可以采用SRAM和DRAM混合設(shè)計(jì)的方案。不同要求的數(shù)據(jù)使用不同的隨機(jī)存儲(chǔ)器,以滿(mǎn)足系統(tǒng)整體的優(yōu)化設(shè)計(jì)。
(7)嵌入式系統(tǒng)的設(shè)計(jì),在使用SRAM和DRAM的成本上,需要仔細(xì)并與整個(gè)系統(tǒng)的硬件一起進(jìn)行核算,最終做出選擇。在選擇存儲(chǔ)器類(lèi)型時(shí),一般要考慮存取時(shí)間和成本。SRAM提供了極快的存取時(shí)間,一般比DRAM快4倍,但是造價(jià)十分昂貴。通常,SRAM只是用于那些存取速度極端重要的場(chǎng)合。在需要使用大容量的RAM時(shí),一般選擇使用DRAM。很多嵌入式系統(tǒng)混合使用兩種RAM,如關(guān)鍵數(shù)據(jù)通道上的一小塊SRAM(幾百至幾千個(gè)字節(jié))和其他所有地方的一大塊DRAM(以兆計(jì))。
3.4.3ROMROM(Read-OnlyMemory,只讀存儲(chǔ)器)中的內(nèi)容一經(jīng)寫(xiě)入,在工作過(guò)程中就只能讀出不能重寫(xiě),即使掉電,寫(xiě)入的內(nèi)容也不會(huì)丟失。ROM在嵌入式系統(tǒng)中非常有用,常常用來(lái)存放系統(tǒng)軟件(如ROMBIOS)、應(yīng)用程序等不隨時(shí)間改變的代碼或數(shù)據(jù)。ROM可以分為工場(chǎng)可編程ROM和現(xiàn)場(chǎng)可編程ROM兩大類(lèi)。工場(chǎng)可編程ROM(即掩膜可編程ROM,mask-programmedROM)是由廠商按照用戶(hù)要求掩膜制成,封裝后不能改寫(xiě),用戶(hù)只能讀出,不能改寫(xiě)。掩膜ROM一般只用于大批量生產(chǎn)的計(jì)算機(jī)產(chǎn)品中,在產(chǎn)品研制和實(shí)驗(yàn)室小批量生產(chǎn)時(shí),宜選用現(xiàn)場(chǎng)可編程ROM。
有幾種不同類(lèi)型的現(xiàn)場(chǎng)可編程ROM,一些只可編程一次,而另一些可以被重復(fù)編程。(1)可編程ROM(ProgrammedROM):該類(lèi)ROM只可編程一次,即用戶(hù)一次性編程寫(xiě)入后就永久性地修改了芯片。這種類(lèi)型的ROM最便宜,但沒(méi)有可重復(fù)燒制的ROM靈活。(2)紫外線可擦可編程ROM(UVErasableProgrammedROM,UV_EPROM):該類(lèi)ROM可以通過(guò)紫外線擦除后重復(fù)編程。該類(lèi)ROM芯片外殼上有一個(gè)窗口,以便讓紫外線照進(jìn)芯片;紫外線照射約半小時(shí),所有存儲(chǔ)位復(fù)原到“1”。通過(guò)這種方法,用戶(hù)可以多次改寫(xiě)芯片內(nèi)容,有任意位發(fā)生錯(cuò)誤都需要全片擦除、改寫(xiě)。
(3)電可擦可編程ROM(ElectricalProgrammedROM,EEPROM):該類(lèi)ROM允許用戶(hù)以字節(jié)為單位多次用電擦除和改寫(xiě)存儲(chǔ)內(nèi)容,而且可以直接在機(jī)內(nèi)進(jìn)行,不需要專(zhuān)用設(shè)備,方便靈活。因?yàn)槌绦虿恍枰诰€修改,所以EEPROM一般不用作程序存儲(chǔ)器,而用作對(duì)數(shù)據(jù)、參數(shù)等有掉電保護(hù)要求的數(shù)據(jù)存儲(chǔ)器。
3.4.4FlashMemoryFlashMemory(按塊擦除存儲(chǔ)器)是存儲(chǔ)器技術(shù)的最新發(fā)展。FlashMemory綜合了目前為止的所有存儲(chǔ)器器件的優(yōu)點(diǎn),主要特點(diǎn)是在不加電情況下能長(zhǎng)期保存信息,同時(shí)又能在線進(jìn)行快速擦除與重寫(xiě)。從軟件的觀點(diǎn)來(lái)看,F(xiàn)lashMemory和EEPROM的的技術(shù)十分類(lèi)似。但是,EEPROM擦寫(xiě)和編程時(shí)要加高電壓,這意味著重新編程時(shí)必須將芯片從系統(tǒng)中拿出來(lái)。而FlashMemory使用標(biāo)準(zhǔn)電壓擦寫(xiě)和編程,允許芯片在標(biāo)準(zhǔn)系統(tǒng)內(nèi)部編程。這就允許FlashMemory在重新編程的同時(shí)存儲(chǔ)新的內(nèi)容。此外,EEPROM必須被整體擦寫(xiě),F(xiàn)lashMemory可以一塊一塊地擦寫(xiě)。大部分FlashMemory允許某些塊被保護(hù),這一點(diǎn)對(duì)存儲(chǔ)空間有限的嵌入式系統(tǒng)非常有用,即將引導(dǎo)代碼放進(jìn)保護(hù)塊內(nèi)而允許更新設(shè)備上其他的存儲(chǔ)器塊。
理想的存儲(chǔ)器應(yīng)具有密度高、讀/寫(xiě)速度快、價(jià)格低和非易失性的特點(diǎn)。但是,傳統(tǒng)的存儲(chǔ)器卻只能滿(mǎn)足這些要求中的一部分。FlashMemory的推出,恰好同時(shí)實(shí)現(xiàn)了所有這些優(yōu)良的存儲(chǔ)器特性。FlashMemory是一種高密度、低價(jià)格的高性能讀/寫(xiě)存儲(chǔ)器,兼有功耗低、可靠性高等特點(diǎn)。表3-1所示為FlashMemory與傳統(tǒng)存儲(chǔ)器技術(shù)的比較。
表3-1FlashMemory與傳統(tǒng)存儲(chǔ)器技術(shù)的比較
根據(jù)工藝的不同,F(xiàn)lashMemory主要有兩類(lèi):NORFlashMemory和NANDFlashMemory。NORFlashMemory是在EEPROM的基礎(chǔ)上發(fā)展起來(lái)的,它的存儲(chǔ)單元由N-MOS構(gòu)成,連接N-MOS單元的線是獨(dú)立的。NORFlashMemory的特點(diǎn)是可以隨機(jī)讀取任意單元的內(nèi)容,適合于程序代碼的并行讀/寫(xiě)、存儲(chǔ),所以常用于制作計(jì)算機(jī)的BIOS存儲(chǔ)器和微控制器的內(nèi)部存儲(chǔ)器等。NANDFlashMemory是將幾個(gè)N-MOS單元用同一根線連接起來(lái),可以按順序讀取存儲(chǔ)單元的內(nèi)容,適合于數(shù)據(jù)或文件的串行讀/寫(xiě)。
FlashMemory的操作包括寫(xiě)入和讀出。讀操作:從FlashMemory中讀出數(shù)據(jù)與其他存儲(chǔ)器的操作基本相同。處理器只要提供地址、讀操作信號(hào)和片選信號(hào),存儲(chǔ)器就返回在該位置保存的數(shù)據(jù)。大部分的FlashMemory在系統(tǒng)重啟時(shí)自動(dòng)進(jìn)入讀狀態(tài),啟動(dòng)讀狀態(tài)不需要特別的初始化序列。寫(xiě)操作:把程序或數(shù)據(jù)寫(xiě)入FlashMemory的過(guò)程叫做編程。FlashMemory的編程有兩種方式,一種是在線編程,一種是離線編程。FlashMemory的編程操作比較麻煩,主要表現(xiàn)在以下3個(gè)方面:
(1)每一個(gè)存儲(chǔ)位置必須在重寫(xiě)操作之前被擦除。如果舊的數(shù)據(jù)沒(méi)有被擦除,那么寫(xiě)操作的結(jié)果會(huì)是新、舊數(shù)值的某種邏輯組合,存儲(chǔ)的數(shù)據(jù)通常是錯(cuò)誤的。(2)一次只能有一個(gè)扇區(qū)或者塊被擦除,而且不可能只是擦除一個(gè)單個(gè)的字節(jié)。(3)擦除舊數(shù)據(jù)的過(guò)程和寫(xiě)入新數(shù)據(jù)的過(guò)程是隨著制造商的不同而變化的。因此在進(jìn)行FlashMemory寫(xiě)入操作時(shí),提供一個(gè)軟件層來(lái)完成寫(xiě)入和擦除操作比較方便,這個(gè)軟件層叫做FlashMemory的驅(qū)動(dòng)程序。
設(shè)計(jì)FlashMemory驅(qū)動(dòng)程序的目的是為了屏蔽不同制造商提供的器件在寫(xiě)入操作時(shí)的細(xì)節(jié),為上層軟件設(shè)計(jì)提供一個(gè)統(tǒng)一的接口,以便于上層軟件的移植和開(kāi)發(fā)。FlashMemory的驅(qū)動(dòng)程序應(yīng)該有一個(gè)由擦除和寫(xiě)操作組成的簡(jiǎn)單應(yīng)用編程接口。當(dāng)需要修改FlashMemory中的數(shù)據(jù)的部分應(yīng)用軟件時(shí),只要調(diào)用驅(qū)動(dòng)程序來(lái)控制細(xì)節(jié)即可。這樣就允許應(yīng)用程序員做一個(gè)高級(jí)的請(qǐng)求,例如擦除地址D0000H處的塊或于地址D0000H處開(kāi)始寫(xiě)入一塊數(shù)據(jù)。通過(guò)設(shè)計(jì)并使用FlashMemory的設(shè)備驅(qū)動(dòng)程序,當(dāng)使用其他制造商的FlashMemory時(shí),軟件代碼可以很容易地被修改。
FlashMemory不僅可以用作嵌入式系統(tǒng)的程序存儲(chǔ)器,也可以作許多其他的應(yīng)用。(1)FlashMemory文件系統(tǒng):因?yàn)镕lashMemory提供了可被重寫(xiě)的非易失性存儲(chǔ),所以它可以被看作類(lèi)似于任何其他的二級(jí)存儲(chǔ)系統(tǒng),如硬盤(pán)。在作為文件系統(tǒng)的情況下,由驅(qū)動(dòng)程序提供的函數(shù)要更加面向文件,提供諸如open()、close()、read()、write()等標(biāo)準(zhǔn)文件系統(tǒng)函數(shù)。FlashMemory文件系統(tǒng)的組織與普通的外存基本相同。(2)便攜設(shè)備的存儲(chǔ)裝置:隨著數(shù)碼產(chǎn)品的飛速發(fā)展,F(xiàn)lashMemory作為一種最常用的存儲(chǔ)裝置應(yīng)用于數(shù)碼相機(jī)(如CF卡、XD卡、記憶棒等)、MP3等數(shù)碼產(chǎn)品中。
3.5I/O設(shè)
備
3.5.1定時(shí)器/計(jì)數(shù)器所有的嵌入式處理器都集成了定時(shí)器/計(jì)數(shù)器單元。系統(tǒng)中至少有一個(gè)定時(shí)器設(shè)備,用作系統(tǒng)時(shí)鐘。定時(shí)器和計(jì)數(shù)器都是由帶有保存當(dāng)前值的寄存器和向當(dāng)前寄存器值加1的增量輸入的加法器邏輯電路組成的。但是,定時(shí)器和計(jì)數(shù)器的用處不同,主要體現(xiàn)在:定時(shí)器的計(jì)數(shù)裝置是連到周期性時(shí)鐘信號(hào)上的,用來(lái)測(cè)量時(shí)間間隔;而計(jì)數(shù)器的計(jì)數(shù)裝置是連到非周期性信號(hào)上的,用來(lái)計(jì)算外部事件的發(fā)生次數(shù)。因?yàn)橥瑯拥倪壿嬰娐房梢杂羞@兩種使用方式,所以該設(shè)備經(jīng)常被稱(chēng)為“定時(shí)器/計(jì)數(shù)器”。
嵌入式處理器上的定時(shí)器/計(jì)數(shù)器通常具有以下功能:(1)嵌入式操作系統(tǒng)的任務(wù)調(diào)度,特別是具有時(shí)間片輪轉(zhuǎn)調(diào)度功能的嵌入式操作系統(tǒng)的任務(wù)調(diào)度,必須使用定時(shí)器產(chǎn)生時(shí)間片。(2)嵌入式操作系統(tǒng)的軟件時(shí)鐘需要基于硬件定時(shí)器產(chǎn)生定時(shí)信號(hào)。(3)通信電路的波特率發(fā)生器。(4)實(shí)時(shí)時(shí)鐘電路。(5)集成的片上A/D轉(zhuǎn)換和D/A轉(zhuǎn)換電路。(6)具有液晶控制器的嵌入式處理器應(yīng)用液晶屏的刷新。(7)處理器監(jiān)控電路,如看門(mén)狗等。(8)集成的動(dòng)態(tài)存儲(chǔ)器控制器用于動(dòng)態(tài)存儲(chǔ)器的刷新。
圖3-14展示了定時(shí)器/計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)。當(dāng)計(jì)數(shù)信號(hào)被確認(rèn)時(shí),一個(gè)n位的定時(shí)器/計(jì)數(shù)器使用一個(gè)n位的寄存器來(lái)保存當(dāng)前計(jì)數(shù)值并使用半減器陣列減去該計(jì)數(shù)器的值。組合邏輯電路用來(lái)檢查計(jì)數(shù)值是否為0。輸出Done發(fā)出0計(jì)數(shù)信號(hào)。為了對(duì)控制超時(shí)進(jìn)行響應(yīng)而不是確切要求2n次事件發(fā)生,使用一個(gè)復(fù)位寄存器提供給計(jì)數(shù)寄存器裝入的值。定時(shí)器/計(jì)數(shù)器用邏輯電路來(lái)裝載復(fù)位寄存器。此外,大部分計(jì)數(shù)器提供循環(huán)和非循環(huán)的操作模式。在循環(huán)模式中,一旦計(jì)數(shù)器達(dá)到Done狀態(tài),它自動(dòng)重裝并繼續(xù)計(jì)數(shù);在非循環(huán)操作模式,定時(shí)器/計(jì)數(shù)器等待一個(gè)來(lái)自微處理器的明確信號(hào)來(lái)重新計(jì)數(shù)。
圖3-14 定時(shí)器/計(jì)數(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è)備(即模擬信號(hào)源)和嵌入式系統(tǒng)之間聯(lián)系的接口。D/A轉(zhuǎn)換相對(duì)簡(jiǎn)單,轉(zhuǎn)換器接口僅包括數(shù)據(jù)值,輸入值被連續(xù)轉(zhuǎn)換成模擬信號(hào)。
A/D轉(zhuǎn)換器是將連續(xù)變化的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),以便計(jì)算機(jī)和數(shù)字系統(tǒng)進(jìn)行處理、存儲(chǔ)、控制和顯示。A/D轉(zhuǎn)換需要更復(fù)雜的電路,所以也需要更復(fù)雜的接口。A/D轉(zhuǎn)換在將模擬輸入轉(zhuǎn)換為數(shù)字形式前需要對(duì)模擬輸入進(jìn)行采樣??刂菩盘?hào)使得A/D轉(zhuǎn)換器進(jìn)行采樣并將其數(shù)字化。典型的A/D轉(zhuǎn)換器接口除了模擬輸入外還有兩個(gè)主要的數(shù)字輸入,一個(gè)數(shù)據(jù)端口允許A/D寄存器被讀/寫(xiě);另一個(gè)時(shí)鐘輸入信號(hào)通知什么時(shí)候開(kāi)始下一次轉(zhuǎn)換。A/D轉(zhuǎn)換器有若干種不同的類(lèi)型,主要包括:逐位比較型、積分型、計(jì)數(shù)型、并行比較型和電壓-頻率型。選用A/D轉(zhuǎn)換器時(shí),主要應(yīng)根據(jù)使用場(chǎng)合的具體需求,分析轉(zhuǎn)換速度、精度、價(jià)格、功能以及接口條件等因素,最終決定選擇的類(lèi)型。
3.5.3人機(jī)接口設(shè)備
1.鍵盤(pán)鍵盤(pán)是標(biāo)準(zhǔn)的輸入設(shè)備,廣泛用于嵌入式產(chǎn)品,如微波爐、傳真機(jī)、復(fù)印機(jī)、激光打印機(jī)等。依賴(lài)鍵盤(pán)接口實(shí)現(xiàn)用戶(hù)的輸入,使得嵌入式設(shè)備能夠處理用戶(hù)的輸入信息,將嵌入式控制器的功能發(fā)揮得更大。鍵盤(pán)可以用來(lái)輸入數(shù)字型數(shù)據(jù)或者選擇控制設(shè)備的操作模式。鍵盤(pán)主要由一個(gè)開(kāi)關(guān)陣列組成,此外還包括一些邏輯電路來(lái)簡(jiǎn)化它到微處理器的接口。我們首先了解一個(gè)簡(jiǎn)單開(kāi)關(guān)的原理,然后再分析由微處理器控制的鍵盤(pán)。
開(kāi)關(guān)使用機(jī)械接觸實(shí)現(xiàn)斷開(kāi)或接觸電路,如圖3-15所示。當(dāng)開(kāi)關(guān)打開(kāi)時(shí),通過(guò)處理器I/O接口的一個(gè)上拉電阻提供邏輯1;當(dāng)開(kāi)關(guān)閉合時(shí),處理器I/O接口的輸入被拉到邏輯0。機(jī)械開(kāi)關(guān)的主要問(wèn)題是圖3-16所示的顫動(dòng)。當(dāng)通過(guò)按下連接到開(kāi)關(guān)臂上的按鈕將開(kāi)關(guān)壓上時(shí),接觸點(diǎn)可能看起來(lái)穩(wěn)定而且很快閉合,但實(shí)際上壓力導(dǎo)致接觸點(diǎn)顫動(dòng)幾次才停下來(lái)。這種顫動(dòng)顯現(xiàn)為按了幾次開(kāi)關(guān),持續(xù)時(shí)間通常維持在5~30ms之間。為了避免這種顫動(dòng),可以使用一個(gè)單步定時(shí)器形成硬件消顫電路,也可以用軟件來(lái)消除開(kāi)關(guān)輸入顫動(dòng)。
圖3-15簡(jiǎn)單的開(kāi)關(guān)電路
圖3-16開(kāi)關(guān)顫動(dòng)
原始的鍵盤(pán)是開(kāi)關(guān)的簡(jiǎn)單集合,每個(gè)開(kāi)關(guān)有自己的一對(duì)引出線,直接連到處理器的輸入端口上。這種開(kāi)關(guān)的組合方法使得當(dāng)開(kāi)關(guān)的數(shù)目增加時(shí),將很快用完所有的輸入端口,原始鍵盤(pán)會(huì)變得不實(shí)用。更加實(shí)用的鍵盤(pán)通過(guò)排列開(kāi)關(guān)形成如圖3-17所示的開(kāi)關(guān)陣列。一個(gè)瞬時(shí)接觸開(kāi)關(guān)放置在每一行與每一列的交叉點(diǎn)處,使用編碼來(lái)表示被按下的開(kāi)關(guān),形成編碼鍵盤(pán),通過(guò)掃描開(kāi)關(guān)陣列來(lái)確定是否有鍵被按下。與原始鍵盤(pán)不同,掃描鍵盤(pán)陣列每次只讀開(kāi)關(guān)的一行。陣列左邊的多路分路器選擇要讀的行。當(dāng)掃描輸入為1時(shí),該值被送到該行的每一列,如果某個(gè)鍵被按下,那么該列的1被探測(cè)到。由于每列只有一個(gè)鍵被激活,因此該值唯一代表了一個(gè)鍵。行地址和列輸出被用來(lái)編碼,或者用電路來(lái)給出不同的編碼。
圖3-17掃描鍵盤(pán)陣列
鍵盤(pán)編碼可能使得多個(gè)鍵的組合無(wú)法被識(shí)別。例如,在PC鍵盤(pán)中,必須選擇一種編碼使Ctrl+Q之類(lèi)的鍵能被識(shí)別并送進(jìn)PC。另外,鍵盤(pán)編碼還可能導(dǎo)致不允許同時(shí)按鍵。例如,在大部分應(yīng)用中,如果按1,在未釋放之前再按2,那么大多數(shù)應(yīng)用是想要鍵盤(pán)先發(fā)送1再發(fā)送2。這種編碼電路的一種簡(jiǎn)單實(shí)現(xiàn)是在一個(gè)鍵被按下而未釋放之前,丟棄已按下的其他任何字符。鍵盤(pán)的微控制器可以被編程處理多個(gè)鍵被同時(shí)按下(即多鍵滾轉(zhuǎn)),這使得同時(shí)按鍵被識(shí)別、入棧,而在鍵被釋放時(shí),再依次傳輸。
2.LCD顯示器1)直接驅(qū)動(dòng)如圖3-18所示,多個(gè)數(shù)字陣列是直接驅(qū)動(dòng)顯示的簡(jiǎn)單例子。單數(shù)字顯示器通常有七段,每段可以是發(fā)光二極管,也可以是液晶顯示器。這種顯示用數(shù)字輸入來(lái)選擇當(dāng)前要更新的數(shù)字,被選擇的數(shù)字在當(dāng)前數(shù)據(jù)值的基礎(chǔ)上激活它的顯示元件。顯示驅(qū)動(dòng)器復(fù)雜,重復(fù)掃描數(shù)字并將當(dāng)前值送到顯示器上。
圖3-18多個(gè)數(shù)字顯示器
2)幀緩沖區(qū)如圖3-19所示,幀緩沖區(qū)是一個(gè)連到系統(tǒng)總線上的隨機(jī)存取存儲(chǔ)區(qū)。微處理器可以以任意所需次序?qū)⒅祵?xiě)入幀緩沖區(qū)。這種顯示方式主要適用于陰極射線管(Cathode-RayTube,CRT)顯示。當(dāng)CRT被連到幀緩沖區(qū)時(shí),它通常以光柵的順序讀像素,一次顯示一行。
圖3-19幀緩沖顯示系統(tǒng)
3)液晶控制板大平面顯示器通常由LCD構(gòu)成。其中每個(gè)像素都由一個(gè)液晶體構(gòu)成。LCD顯示器到系統(tǒng)的接口獨(dú)具特點(diǎn),這主要因?yàn)長(zhǎng)CD像素陣列能夠被隨機(jī)訪問(wèn)。早期的液晶顯示控制板被稱(chēng)為被動(dòng)矩陣,它依靠一個(gè)二維的電線網(wǎng)絡(luò)來(lái)編址像素?,F(xiàn)代液晶顯示控制板顯示器使用一種主動(dòng)矩陣系統(tǒng),它給每個(gè)像素配置轉(zhuǎn)發(fā)器,以此來(lái)控制、訪問(wèn)LCD顯示器。主動(dòng)矩陣顯示器提供了更高的對(duì)比度和顯示質(zhì)量。
3.觸摸屏觸摸屏是覆蓋在輸出設(shè)備上的輸入設(shè)備,用來(lái)記錄觸摸位置。把觸摸屏覆蓋在顯示器上,使用者可以對(duì)顯示的信息作出反應(yīng)。觸摸屏按其工作原理不同分為表面聲波屏、電容屏、電阻屏和紅外屏等。其中常見(jiàn)的觸摸屏是電阻式觸摸屏。電阻式觸摸屏用二維電壓表來(lái)探測(cè)位置。如圖3-20所示,觸摸屏由兩層被許多細(xì)小的透明隔離球隔開(kāi)的導(dǎo)電薄層組成。當(dāng)手指或筆觸摸屏幕時(shí),平?;ハ嘟^緣的導(dǎo)電層在觸摸點(diǎn)位置有了一個(gè)接觸。在頂層的導(dǎo)電層上加上電壓,它的電阻就在穿過(guò)該層時(shí)產(chǎn)生電勢(shì)差;然后頂層在接觸點(diǎn)對(duì)電壓采樣;最后用模/數(shù)轉(zhuǎn)換器來(lái)測(cè)量電壓,以此得出位置。觸摸屏通過(guò)交替使用水平和垂直電壓梯度來(lái)獲得x和y坐標(biāo)位置。
圖3-20電阻式觸摸屏的結(jié)構(gòu)
3.6通
信
設(shè)
備
3.6.1通用異步收發(fā)器通用異步收發(fā)器(UniversalAsynchronousReceiverandTransmitter,UART)是用于控制計(jì)算機(jī)與串行設(shè)備的接口。我們?cè)诮榻B數(shù)據(jù)通信模式和串行通信標(biāo)準(zhǔn)的基礎(chǔ)上,分析通用異步收發(fā)器的原理和功能。1.?dāng)?shù)據(jù)通信模式數(shù)據(jù)通信是兩臺(tái)數(shù)字設(shè)備之間的數(shù)據(jù)傳輸。從不同的角度劃分,數(shù)據(jù)通信方式大致可以分為雙工通信、串行和并行通信、同步和異步通信。
1)雙工通信雙工通信是對(duì)相互通信的兩臺(tái)通信設(shè)備之間數(shù)據(jù)流向的描述。雙工通信包括單工、半雙工和全雙工三種方式。雙工通信方式的結(jié)構(gòu)如圖3-21所示。
圖3-21雙工通信方式的結(jié)構(gòu)
(1)單工通信方式是指兩臺(tái)通信設(shè)備間數(shù)據(jù)只能在一個(gè)方向上傳送。在單工方式下,兩臺(tái)通信設(shè)備一臺(tái)為發(fā)送設(shè)備,另一臺(tái)為接收設(shè)備,它們之間只有一條通信鏈路。(2)半雙工通信方式是指兩臺(tái)相互通信的設(shè)備均具有收發(fā)數(shù)據(jù)的能力,但在某一時(shí)間內(nèi)它們只能執(zhí)行一種操作(收或發(fā)),不能同時(shí)執(zhí)行收、發(fā)兩種操作;在它們之間的通信線路的兩個(gè)方向上均可傳輸數(shù)據(jù),但在某一時(shí)間內(nèi)只能在一個(gè)方向上傳輸數(shù)據(jù)。為實(shí)現(xiàn)半雙工通信,兩臺(tái)通信設(shè)備間只需一條通信線路,但各通信設(shè)備必須配備收發(fā)切換開(kāi)關(guān)。(3)全雙工通信方式是指相互通信的兩臺(tái)設(shè)備可以同時(shí)發(fā)送和接收數(shù)據(jù),即數(shù)據(jù)在同一時(shí)刻可在兩個(gè)方向上傳輸,因此它們之間至少需要兩條通信線路。
2)串行和并行通信并行通信是構(gòu)成字符的二進(jìn)制代碼在并行信道上同時(shí)傳輸?shù)姆绞?。并行傳輸時(shí),一次傳輸一個(gè)字符,收發(fā)雙方不存在同步問(wèn)題,傳輸速度較快。但是,并行傳輸需要并行信道,所以線路投資大,不適合小型化產(chǎn)品。串行通信是指構(gòu)成字符的二進(jìn)制代碼在一條信道上以位(碼元)為單位,按時(shí)間順序且按位傳輸?shù)姆绞健4袀鬏敃r(shí),發(fā)送端按位發(fā)送,接收端按位接收,同時(shí)還要對(duì)所傳輸?shù)淖址右源_認(rèn),所以收、發(fā)雙方要采取同步措施,否則接收端將不能正確區(qū)分出所傳輸?shù)淖址km然串行通信的速度慢,但是只需要一條傳輸信道,線路投資少,易于實(shí)現(xiàn),因此在數(shù)據(jù)通信吞吐量不是很大的嵌入式系統(tǒng)中顯得更加簡(jiǎn)易、方便、靈活。
3)異步和同步通信串行通信有兩種基本工作方式:異步通信和同步通信。在異步通信方式下,傳輸數(shù)據(jù)以字符為單位。當(dāng)發(fā)送一個(gè)字符代碼時(shí),字符前面要加一個(gè)“起”信號(hào),其長(zhǎng)度為1個(gè)碼元,極性為“0”;字符后面要加一個(gè)“止”信號(hào),其長(zhǎng)度為1、1.5或2個(gè)碼元,極性為“1”。加上起、止信號(hào)后,即可區(qū)分出所傳輸?shù)淖址?。傳送時(shí),字符可以連續(xù)發(fā)送,也可以單獨(dú)發(fā)送,不發(fā)字符時(shí)線路要保持為“1”狀態(tài)。異步傳輸方式適用于1200b/s以下的低速傳輸,實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單。同步通信傳輸不需要加起、止信號(hào),因此傳輸效率高,適用于2400b/s以上的數(shù)據(jù)傳輸,但是實(shí)現(xiàn)起來(lái)比較復(fù)雜。
2.標(biāo)準(zhǔn)串行通信接口標(biāo)準(zhǔn)異步串行通信接口主要有以下幾類(lèi):RS-232C、RS-422和RS-485。RS-232C是美國(guó)電子工業(yè)協(xié)會(huì)(EIA)正式公布的、在異步串行通信中應(yīng)用最廣的標(biāo)準(zhǔn)總線,適合短距離或帶調(diào)制解調(diào)器的通信場(chǎng)合。為了提供數(shù)據(jù)傳輸速率和通信距離,EIA又公布了RS-422和RS-485串行總線接口標(biāo)準(zhǔn)。
1)RS-232CRS-232C是美國(guó)電子工業(yè)協(xié)會(huì)(ElectronicIndustryAssociation,EIA)制定的在數(shù)據(jù)終端設(shè)備(DataTerminalEquipment,DTE)和數(shù)據(jù)通信設(shè)備(DataCommunicationEquipment,DCE)之間進(jìn)行串行二進(jìn)制數(shù)據(jù)交換的接口。RS是英文“推薦標(biāo)準(zhǔn)”的縮寫(xiě),232為標(biāo)識(shí)號(hào),C表示修改次數(shù)。RS-232C標(biāo)準(zhǔn)是一種硬件協(xié)議,規(guī)定了21個(gè)信號(hào)和25個(gè)引腳,用于連接DTE和DCE兩種設(shè)備。
RS-232C標(biāo)準(zhǔn)規(guī)定的數(shù)據(jù)傳輸速率為50、75、100、150、300、600、1200、2400、4800、9600、19200b/s;驅(qū)動(dòng)器允許有不超過(guò)2500pF的電容負(fù)載,通信距離將受此電容限制。例如,當(dāng)信號(hào)傳輸速率為20kb/s時(shí),最大傳輸距離為15m。傳輸距離短的另一個(gè)原因是RS-232C屬于單端信號(hào)傳送,存在共地噪聲和不能抑制共模干擾等問(wèn)題,因此一般用于短距離通信。RS-232C接口的缺點(diǎn)主要表現(xiàn)在兩個(gè)方面:數(shù)據(jù)傳輸速率慢和傳輸距離短。RS-232C規(guī)定的20kb/s的傳輸速率雖然能夠滿(mǎn)足異步通信要求(通常異步通信速率限制在19.2kb/s以下),但對(duì)某些同步系統(tǒng)來(lái)說(shuō)不能滿(mǎn)足傳輸速率要求。此外,RS-232C接口的一般設(shè)備之間電纜長(zhǎng)度為15m,最長(zhǎng)也不會(huì)超過(guò)60m。
2)RS-422RS-422是EIA公布的“平衡電壓數(shù)字接口電路的電氣特性”標(biāo)準(zhǔn),是為改善RS-232C標(biāo)準(zhǔn)的電氣特性、又考慮與RS-232C兼容而制定的。RS-422與RS-232C的關(guān)鍵差別在于把單端輸入改為雙端差分輸入,雙方的信號(hào)地不再共用。RS-422給出了對(duì)電纜、驅(qū)動(dòng)器的要求,規(guī)定了雙端電氣接口形式,并使用雙絞線傳送信號(hào)。與RS-232C相比,RS-422傳輸信號(hào)距離長(zhǎng)、速度快。傳輸率最大為10Mb/s,在此速率下,電纜允許長(zhǎng)度為120m。如果采用較低傳輸速率,如90kb/s,則最大距離可達(dá)1200m。
3)RS-485RS-485是RS-422的變型,RS-422是全雙工的,可以同時(shí)發(fā)送與接收;而RS-485是半雙工的,在某一時(shí)刻,只能一個(gè)發(fā)送另一個(gè)接收。RS-485是一種多發(fā)送器的電路標(biāo)準(zhǔn),它擴(kuò)展了RS-422的性能,允許雙線總線上驅(qū)動(dòng)32個(gè)負(fù)載設(shè)備。負(fù)載設(shè)備可以是被動(dòng)發(fā)送器、接收器或二者組合而成的收發(fā)器。當(dāng)用于多點(diǎn)互連時(shí),可節(jié)省信號(hào)線,便于高速遠(yuǎn)距離傳送。許多智能儀器設(shè)備配有RS-485總線接口,便于將它們進(jìn)行聯(lián)網(wǎng)。
表3-2RS-232C、RS-422A與RS-485性能比較
3.UARTUART提供了RS-232C數(shù)據(jù)終端設(shè)備接口,這樣計(jì)算機(jī)就可以和調(diào)制解調(diào)器或其他使用RS-232C接口的串行設(shè)備進(jìn)行通信。作為接口的一部分,UART還提供了以下功能:將計(jì)算機(jī)外部傳來(lái)的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計(jì)算機(jī)內(nèi)部使用并行數(shù)據(jù)的器件使用;將由計(jì)算機(jī)內(nèi)部傳送過(guò)來(lái)的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù);在輸出的串行數(shù)據(jù)流中加入奇偶校驗(yàn)位,并對(duì)從外部接收的數(shù)據(jù)流進(jìn)行奇偶校驗(yàn);在輸出的數(shù)據(jù)流中加入“起”、“止”標(biāo)記,并從接收數(shù)據(jù)流中刪除“起”、“止”標(biāo)記;處理計(jì)算機(jī)與外部串行設(shè)備的同步管理問(wèn)題;處理由鍵盤(pán)或鼠標(biāo)發(fā)出的中斷信號(hào)(鍵盤(pán)和鼠標(biāo)也是串行設(shè)備)。
相對(duì)于微處理器,一臺(tái)UART是作為一個(gè)甚至多個(gè)存儲(chǔ)點(diǎn)或I/O端口的。UART一般包括一個(gè)或多個(gè)狀態(tài)寄存器,用于驗(yàn)證數(shù)據(jù)傳輸和接收時(shí)的狀態(tài)、進(jìn)程。微處理器能夠判斷何時(shí)已收到一個(gè)字節(jié)、何時(shí)已發(fā)送一個(gè)字節(jié)、是否產(chǎn)生通信錯(cuò)誤等。UART還可以通過(guò)一個(gè)或多個(gè)控制寄存器進(jìn)行配置,配置內(nèi)容包括波特率的設(shè)置、終止位數(shù)量的設(shè)置以及在發(fā)送字節(jié)時(shí)產(chǎn)生中斷等。異步通信在UART上幾乎是透明地運(yùn)行,為了收、發(fā)數(shù)據(jù),只需運(yùn)行程序,簡(jiǎn)單地在UART上執(zhí)行讀/寫(xiě)操作。比較流行的UART有NS16550、AMDZ8530、ACIA、Motorola6850、ZilogZ-80STO等。當(dāng)UART用于嵌入式設(shè)計(jì)時(shí),嵌入式系統(tǒng)就能夠利用通信終端、計(jì)算機(jī)甚至是其他嵌入式微處理器上的數(shù)據(jù)資源。
3.6.2USB設(shè)備1.USB總線概述連接計(jì)算機(jī)外設(shè)的串行數(shù)據(jù)總線,其技術(shù)的發(fā)展一直非常緩慢。1969年EIA推出的RS-232C串行總線至今仍是連接計(jì)算機(jī)外設(shè)的主流串行總線。盡管在20世紀(jì)70年代和80年代陸續(xù)推出了RS-422A、RS-449、RS-485和RS-530等串行總線(其中RS-449的設(shè)計(jì)初衷是想取代RS-232C,而RS-530則是想取代RS-449),但由于種種原因都沒(méi)有改變RS-232C先入為主的主導(dǎo)地位。因此,長(zhǎng)期以來(lái),串行總線只用于連接慢速外設(shè)或用作低速網(wǎng)絡(luò)的總線。
通用串行總線(UniversalSerialBus,USB)是1995年Microsoft、Compaq、IBM等公司聯(lián)合制定的一種新的計(jì)算機(jī)串行通信協(xié)議。USB協(xié)議得到各PC廠商、芯片制造商和PC外設(shè)廠商的廣泛支持。從當(dāng)初的0.7、0.8版本到現(xiàn)在廣泛采用的1.0、1.1版本,甚至到正在逐步推廣的2.0版本,USB本身也在不斷地發(fā)展和完善。通用串行總線是一種將USB外圍設(shè)備連接到主機(jī)的外部總線結(jié)構(gòu),它通過(guò)PCI總線和PC的內(nèi)部系統(tǒng)數(shù)據(jù)線連接,實(shí)現(xiàn)數(shù)據(jù)傳送。USB同時(shí)又是一種通信協(xié)議,它支持主系統(tǒng)和USB外圍設(shè)備之間的數(shù)據(jù)傳送,通過(guò)一個(gè)4針的標(biāo)準(zhǔn)插頭,采用菊花鏈形式把所有的外設(shè)連接起來(lái)。
USB主要具有以下優(yōu)點(diǎn):(1)支持熱插拔(hotplug)和即插即用(Plug-and-Play),即在不關(guān)機(jī)的情況下可以安全地插上或斷開(kāi)USB設(shè)備,動(dòng)態(tài)加載驅(qū)動(dòng)程序。(2)為所有的USB外設(shè)提供單一的、易于操作的標(biāo)準(zhǔn)連接類(lèi)型,排除了外設(shè)對(duì)系統(tǒng)資源的需求,因此減少了硬件的復(fù)雜性和對(duì)端口的占用,整個(gè)USB系統(tǒng)只有一個(gè)端口和一個(gè)中斷,節(jié)省了系統(tǒng)資源。
(3)USB1.1提供全速12Mb/s和低速1.5Mb/s的模式,USB2.0提供高達(dá)480Mb/s的傳輸速率。
(4)為了適應(yīng)各種不同類(lèi)型外設(shè)的要求,USB提供了四種不同的數(shù)據(jù)傳輸類(lèi)型。(5)易于擴(kuò)展,理論上最多可支持127個(gè)設(shè)備。
2.USB總線的硬件結(jié)構(gòu)USB通過(guò)四線電纜傳送信號(hào)和電能,如圖3-22所示。其中兩根是用來(lái)傳送數(shù)據(jù)的串行通道,另兩根為下游(Downstream)設(shè)備提供電能。
圖3-22USB連接線
D+、D-是一對(duì)差模信號(hào)線,它支持兩種數(shù)據(jù)傳輸率。以USB1.1為例,對(duì)于高速外設(shè),USB以全速12Mb/s傳輸數(shù)據(jù),但必須使用屏蔽的雙絞線且長(zhǎng)度不超過(guò)5m;對(duì)于低速外設(shè),USB則以1.5Mb/s的速率傳輸數(shù)據(jù),這種模式下可以使用無(wú)屏蔽的非雙絞線,但長(zhǎng)度不超過(guò)3m。為了保證能夠提供一定電平的信號(hào)并且與終端的負(fù)載匹配,在電纜的每一端都使用不平衡終端負(fù)載。這種終端負(fù)載既能保證檢測(cè)出外設(shè)與端口的連接和分離,又能區(qū)分高速與低速USB總線,可以根據(jù)外設(shè)情況在兩種傳輸模式中自動(dòng)動(dòng)態(tài)切換。VBUS通常為+5V的電源,GND是地線。
USB總線是基于令牌的總線,類(lèi)似于令牌環(huán)網(wǎng)絡(luò)。USB主控制器廣播令牌,總線上的設(shè)備檢測(cè)令牌中的地址是否與自身相符,通過(guò)接收或者發(fā)送數(shù)據(jù)來(lái)響應(yīng)主機(jī)。USB通過(guò)支持懸掛/恢復(fù)操作來(lái)管理USB總線電源。USB系統(tǒng)采用級(jí)聯(lián)星型拓?fù)?,該拓?fù)溆扇齻€(gè)基本部分組成:主機(jī)(Host)、集線器(Hub)和功能設(shè)備,如圖3-23所示。主機(jī)也稱(chēng)為根或RootHub,它做在主板上或作為適配卡安裝在計(jì)算機(jī)上。主機(jī)通過(guò)主機(jī)控制器與USB設(shè)備進(jìn)行交互,控制著USB總線上的數(shù)據(jù),并控制信息的流動(dòng)。每個(gè)USB系統(tǒng)只能有一個(gè)根集線器,它連在主控制器上。集線器是USB結(jié)構(gòu)中的特定成分,它提供用于將設(shè)備連接到USB總線上的端口,同時(shí)檢測(cè)連接在總線上的設(shè)備,并為這些設(shè)備提供電源管理,負(fù)載總線的故障檢測(cè)和恢復(fù)。集線器可為總線提供能源,也可為自身提供能源(從外部得到電能)。圖3-23USB系統(tǒng)級(jí)聯(lián)結(jié)構(gòu)
3.USB總線的軟件結(jié)構(gòu)每個(gè)USB僅有一個(gè)主機(jī),在USB通信過(guò)程中占主導(dǎo)地位。主機(jī)包括USB總線接口、USB設(shè)備層和功能層三層結(jié)構(gòu)。主機(jī)各層具有的功能包括:檢測(cè)連接和移去的USB設(shè)備、管理主機(jī)和USB設(shè)備間的數(shù)據(jù)流、連接USB狀態(tài)和活動(dòng)統(tǒng)計(jì)、控制主控制器和USB設(shè)備間的電氣接口等。(1)USB總線接口。USB總線接口處理電氣層與協(xié)議層的互連,由主控制器實(shí)現(xiàn)。(2)USB系統(tǒng)。USB系統(tǒng)用主控制器管理主機(jī)與USB設(shè)備間的數(shù)據(jù)傳輸。它與主控制器間的接口依賴(lài)于主控制器的硬件定義。同時(shí),USB系統(tǒng)也負(fù)責(zé)管理USB資源,例如帶寬和總線能量,這使得客戶(hù)訪問(wèn)USB成為可能。USB系統(tǒng)包括三個(gè)基本組件:主控制器驅(qū)動(dòng)程序(HCD)、USB驅(qū)動(dòng)程序(USBD)和主機(jī)軟件。①主控制器驅(qū)動(dòng)程序:該程序可以把不同主控制器設(shè)備映射到USB系統(tǒng)中。通用主控制器驅(qū)動(dòng)程序(UHCD)處于軟結(jié)構(gòu)的最低層,實(shí)現(xiàn)了USB主控制器通信和控制USB主控制器,并且對(duì)系統(tǒng)軟件的其他部分是隱蔽的。系統(tǒng)軟件中的對(duì)高層通過(guò)UHCD的軟件接口與主控制器通信。②USB驅(qū)動(dòng)程序:該程序在UHCD驅(qū)動(dòng)器之上,提供驅(qū)動(dòng)器級(jí)的接口,以滿(mǎn)足現(xiàn)有設(shè)備驅(qū)動(dòng)器設(shè)計(jì)的要求。③主機(jī)軟件:這些軟件本來(lái)是用于向設(shè)備驅(qū)動(dòng)程序提供配置信息和裝載結(jié)構(gòu)的,但在某些操作系統(tǒng)中沒(méi)有提供USB系統(tǒng)軟件,設(shè)備驅(qū)動(dòng)程序?qū)?yīng)用操作系統(tǒng)提供的接口而不是直接訪問(wèn)USB驅(qū)動(dòng)程序接口。(3)USB客戶(hù)軟件。USB客戶(hù)軟件是軟件結(jié)構(gòu)的最高層,負(fù)責(zé)處理特定的USB設(shè)備驅(qū)動(dòng)??蛻?hù)程序?qū)用枋鏊兄苯幼饔糜谠O(shè)備的軟件入口。當(dāng)設(shè)備系統(tǒng)被檢測(cè)到后,這些客戶(hù)程序?qū)⒅苯幼饔糜谕鈬布_@種共享特性將USB系統(tǒng)軟件置于客戶(hù)和它的設(shè)備之間,客戶(hù)程序要根據(jù)USB在客戶(hù)端形成的設(shè)備映像對(duì)它進(jìn)行處理。
4.USB總線的數(shù)據(jù)傳輸方式數(shù)據(jù)和控制信號(hào)在主機(jī)和USB設(shè)備之間的交換存在兩種通道:?jiǎn)蜗蛲ǖ篮碗p向通道。USB的數(shù)據(jù)傳送是在主機(jī)和某個(gè)USB設(shè)備的指定端口之間進(jìn)行的。這種主機(jī)和USB設(shè)備的端口間的聯(lián)系稱(chēng)作通道。一般情況下,各個(gè)通道之間的數(shù)據(jù)流動(dòng)是相互獨(dú)立的,且一個(gè)指定的USB設(shè)備可有許多通道。對(duì)任何給定的設(shè)備進(jìn)行設(shè)置時(shí),一個(gè)通道上的數(shù)據(jù)傳輸只能支持下列四種USB數(shù)據(jù)傳輸方式中的一種:同步(isochronous)、控制(control)、中斷(interrupt)和批量(bulk)。(1)同步數(shù)據(jù)傳輸。同步數(shù)據(jù)傳輸提供了確定的帶寬和間隔時(shí)間(latency)。它主要用于時(shí)間要求嚴(yán)格并且具有較強(qiáng)容錯(cuò)性的流數(shù)據(jù)傳輸,或者用于要求恒定數(shù)據(jù)傳輸速率的即時(shí)應(yīng)用中。對(duì)于同步傳輸來(lái)說(shuō),即時(shí)的數(shù)據(jù)傳遞比數(shù)據(jù)的完整性更重要。例如,即時(shí)通話的網(wǎng)絡(luò)電話常常使用同步傳輸模式。(2)控制數(shù)據(jù)傳輸。控制傳輸是雙向傳輸,數(shù)據(jù)量通常較小。USB系統(tǒng)軟件主要用來(lái)進(jìn)行查詢(xún)、配置和給USB設(shè)備發(fā)送通用的命令??刂苽鬏敺绞娇梢詡鬏?、16、32和64字節(jié)的數(shù)據(jù),這依賴(lài)于設(shè)備和傳輸速度。控制傳輸?shù)牡湫蛻?yīng)用是在主機(jī)和USB外設(shè)之間的傳輸。例如,當(dāng)USB設(shè)備初次安裝時(shí),USB系統(tǒng)軟件使用控制數(shù)據(jù)對(duì)設(shè)備進(jìn)行設(shè)置,設(shè)備驅(qū)動(dòng)程序通過(guò)特定方式使用控制數(shù)據(jù)來(lái)傳輸,且數(shù)據(jù)傳送是無(wú)損性的。(3)中斷數(shù)據(jù)傳輸。中斷方式傳輸主要用于定時(shí)查詢(xún)?cè)O(shè)備是否有中斷數(shù)據(jù)傳輸。設(shè)備的端點(diǎn)模式器的結(jié)構(gòu)決定了它的查詢(xún)頻率范圍是1~255ms,這種傳輸方式典型應(yīng)用在少量的、分散的、不可預(yù)測(cè)數(shù)據(jù)的傳輸,如鍵盤(pán)、操縱桿和鼠標(biāo)就屬于這一類(lèi)型。中斷方式傳輸數(shù)據(jù)是單向的,且對(duì)于主機(jī)來(lái)說(shuō)只有輸入的方式。(4)批量數(shù)據(jù)傳輸。批量方式傳輸主要應(yīng)用在大量傳輸和接收數(shù)據(jù),同時(shí)又沒(méi)有帶寬和間隔時(shí)間要求的情況下。批量數(shù)據(jù)由大量的數(shù)據(jù)組成,且批量數(shù)據(jù)是連續(xù)的。這種傳輸方式可以等到所有其他類(lèi)型的數(shù)據(jù)傳輸完成之后再傳輸和接收數(shù)據(jù)。
5.USB總線的數(shù)據(jù)傳輸原理在USB結(jié)構(gòu)中,占主導(dǎo)地位的是主控制器。主控制器要保證所有與其連接的數(shù)量不同、傳輸方式不同的設(shè)備能夠同時(shí)正常工作。為此,USB主控制器使用間隔為1ms的幀來(lái)實(shí)現(xiàn)數(shù)據(jù)傳輸。由于有許多設(shè)備連接到USB總線上,所以每1ms產(chǎn)生的傳輸幀是混合的。在幾種數(shù)據(jù)傳輸方式都存在的情況下,中斷傳輸和同步傳輸對(duì)時(shí)間要求較高,因此占用了約90%的總帶寬;控制傳輸占用了約10%的帶寬;批量傳輸對(duì)時(shí)間要求不高,但數(shù)據(jù)量大,它使用剩下的可用帶寬。各種USB設(shè)備就是通過(guò)這種基本的幀結(jié)構(gòu)實(shí)現(xiàn)共享USB帶寬來(lái)傳輸數(shù)據(jù)的。在主機(jī)端,不同設(shè)備的數(shù)據(jù)傳輸請(qǐng)求被劃分成若干個(gè)塊(Transaction)。為了保證連接到主機(jī)上的設(shè)備可以同時(shí)工作,主機(jī)每次從不同設(shè)備取一個(gè)塊構(gòu)成一個(gè)1ms幀,然后將整個(gè)幀發(fā)送到USB總線上。每一個(gè)塊由三個(gè)包(Packet)組成:標(biāo)志包(TokenPacket)、數(shù)據(jù)包(DataPacket)和握手信號(hào)包(HandshakePacket)。根據(jù)令牌包里定義的設(shè)備地址和端點(diǎn)號(hào),設(shè)備能夠確定屬于自己的相應(yīng)數(shù)據(jù)。一根USB總線每次最多傳輸三個(gè)數(shù)據(jù)包。在每次傳輸開(kāi)始時(shí),主機(jī)控制器發(fā)送一個(gè)描述傳輸種類(lèi)、傳輸方向、USB設(shè)備地址和終端號(hào)的USB數(shù)據(jù)包,該數(shù)據(jù)包就是標(biāo)志包。在數(shù)據(jù)開(kāi)始傳輸時(shí),由標(biāo)志包來(lái)標(biāo)志數(shù)據(jù)的傳輸方向,數(shù)據(jù)傳輸方向不是從主機(jī)到設(shè)備就是從設(shè)備到主機(jī);然后,發(fā)送端開(kāi)始發(fā)送包含信息的數(shù)據(jù)包或表明沒(méi)有數(shù)據(jù)傳輸。接收端要相應(yīng)發(fā)送一個(gè)握手的數(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ī)中時(shí),主機(jī)通過(guò)查詢(xún)?cè)O(shè)備的描述符(Descriptor)來(lái)了解設(shè)備,進(jìn)而建立通信,這個(gè)過(guò)程叫做對(duì)設(shè)備的枚舉。圖3-24是某個(gè)設(shè)備的描述符結(jié)構(gòu)。USB設(shè)備被分成了許多類(lèi)(class),某一特定類(lèi)的設(shè)備又可以劃分成若干子類(lèi)(subclass),劃分子類(lèi)后的軟件就可以搜索總線并選擇所有它支持的設(shè)備了。一個(gè)USB設(shè)備只有一個(gè)設(shè)備描述符(DeviceDescriptor),它指明了設(shè)備所屬的類(lèi)。每個(gè)設(shè)備可以有一個(gè)或多個(gè)配置(Configuration),配置用于定義設(shè)備的功能。如果一個(gè)設(shè)備有幾種不同的功能,則每個(gè)功能都需要一個(gè)配置。配置是接口(Interface)的集合。接口用來(lái)指定設(shè)備中與USB交換數(shù)據(jù)的硬件。每一個(gè)與USB交換數(shù)據(jù)的硬件就叫做一個(gè)端點(diǎn)(Endpoint)。因此,接口是端點(diǎn)的集合。例如,以一個(gè)能播放CD的USB接口的CD-ROM作為一個(gè)設(shè)備。它具有兩種功能:讀取光盤(pán)和播放CD,所以有兩個(gè)配置描述符。一種功能的實(shí)現(xiàn)要涉及許多接口,如當(dāng)CD播放機(jī)使用時(shí),需要音頻接口,同時(shí)還需要控制CD機(jī)的接口,因此具有兩個(gè)接口描述符。而控制命令接口又由許多端點(diǎn)組成,如有的端點(diǎn)負(fù)責(zé)向CD機(jī)發(fā)送命令,有的端點(diǎn)負(fù)責(zé)接收來(lái)自CD機(jī)的反饋,因此又有若干個(gè)端點(diǎn)描述符。圖3-24一個(gè)USB設(shè)備的描述符結(jié)構(gòu)7.USB器件的選擇在進(jìn)行一個(gè)USB設(shè)備開(kāi)發(fā)之前,首先要根據(jù)具體使用要求選擇合適的USB控制器。目前,市場(chǎng)上供應(yīng)的USB控制器主要有兩種:帶USB接口的單片機(jī)(MCU)和純粹的USB接口芯片。帶USB接口的單片機(jī)從應(yīng)用上可以分成兩類(lèi),一類(lèi)是從底層設(shè)計(jì)專(zhuān)用于USB控制的單片機(jī);另一類(lèi)是增加了USB接口的普通單片機(jī),如Cypress公司的EZ-USB(基于8051),選擇這類(lèi)USB控制器的最大好處在于開(kāi)發(fā)者對(duì)系統(tǒng)結(jié)構(gòu)和指令集非常熟悉,開(kāi)發(fā)工具簡(jiǎn)單,但對(duì)于簡(jiǎn)單或低成本系統(tǒng),價(jià)格也是在實(shí)際選擇過(guò)程中需要考慮的因素。純粹的USB接口芯片僅處理USB通信,必須有一個(gè)外部微處理器來(lái)進(jìn)行協(xié)議處理和數(shù)據(jù)交換。典型產(chǎn)品有Philips公司的PDIUSBD11(IIC接口)、PDIUSBD12(并行接口),NS公司的USBN9603/9604(并行接口),NetChip公司的NET2888等。USB接口芯片的主要特點(diǎn)是價(jià)格便宜、接口方便、可靠性高,尤其適合于產(chǎn)品的改型設(shè)計(jì)(硬件上僅需對(duì)并行總線和中斷進(jìn)行改動(dòng),軟件則需要增加微處理器的USB中斷處理和數(shù)據(jù)交換程序、PC機(jī)的USB接口通信程序,無(wú)需對(duì)原有產(chǎn)品系統(tǒng)結(jié)構(gòu)作很大的改動(dòng)。8.USB系統(tǒng)的開(kāi)發(fā)流程(1)系統(tǒng)結(jié)構(gòu)、功能的定義。首先要選擇所要開(kāi)發(fā)的USB系統(tǒng)的結(jié)構(gòu)類(lèi)型,即是作主機(jī)(Host)還是作USB設(shè)備(Device)。其次,要選擇該系統(tǒng)的功能,即是作為數(shù)據(jù)采集器(要求實(shí)時(shí)性)還是作為存儲(chǔ)設(shè)備。最后,要選擇采用的USB標(biāo)準(zhǔn),即是用USB1.1標(biāo)準(zhǔn)還是用USB2.0標(biāo)準(zhǔn)。(2)USB接口方法的選擇。常用的USB接口方法有兩種:一種是采用專(zhuān)用的USB接口芯片,一種是選用內(nèi)部集成USB接口的單片機(jī)。選擇哪一種方法主要由系統(tǒng)的功能、特點(diǎn)、成本等因素決定。(3)與微處理器的接口電路。如果選擇的接口方法是采用USB接口芯片,就要解決該芯片與選定的微處理器的接口問(wèn)題。一般情況下,專(zhuān)用USB接口芯片都會(huì)提供簡(jiǎn)單直觀的接口方式,可以與大部分主流CPU連接,因此按照芯片資料上的典型接法連接就可以了。(4)固件編程。如果將USB系統(tǒng)作為主機(jī),那么固件編程的主要工作是向設(shè)備端發(fā)送各種請(qǐng)求,并要求設(shè)備端提供各種描述符。主機(jī)將記錄描述符的詳細(xì)信息,并為設(shè)備指定地址,然后通過(guò)這些端點(diǎn)與設(shè)備進(jìn)行通信。(5)開(kāi)發(fā)PC端驅(qū)動(dòng)程序與應(yīng)用程序。如果USB設(shè)備與PC機(jī)接口,則需要開(kāi)發(fā)PC機(jī)上的驅(qū)動(dòng)程序和應(yīng)用程序。在PC機(jī)端(這里是Host),除了由主機(jī)控制器(HostController)完成硬件級(jí)的接口外,還需要編寫(xiě)設(shè)備的客戶(hù)端程序(ClientProgram)。例如,一個(gè)通過(guò)下載界面下載MP3的USB設(shè)備,需要編寫(xiě)PC端的那個(gè)下載程序;如果是一個(gè)實(shí)時(shí)的數(shù)據(jù)采集設(shè)備,則需要在PC端編寫(xiě)一個(gè)用戶(hù)界面程序,通過(guò)這個(gè)界面可以看到USB設(shè)備采集的結(jié)果。(6)USB系統(tǒng)調(diào)試。嵌入式USB系統(tǒng)的調(diào)試一般按照“調(diào)試嵌入式中的固件→調(diào)試PC端驅(qū)動(dòng)程序和應(yīng)用程序→系統(tǒng)調(diào)試”的流程進(jìn)行。這種調(diào)試方式能夠?qū)⒄{(diào)試過(guò)程中出現(xiàn)的問(wèn)題最大限度地進(jìn)行定位,而不會(huì)把所有問(wèn)題混在一起。在調(diào)試固件時(shí),可以借助BusHound等工具來(lái)模擬主機(jī)的一些行為。固件調(diào)試完成后,再使用嵌入式設(shè)備作為一個(gè)USBDevice來(lái)調(diào)試PC端的驅(qū)動(dòng)程序和應(yīng)用程序。最后完成系統(tǒng)的測(cè)試和改進(jìn)。3.6.3Ethernet設(shè)備1.以太網(wǎng)的特點(diǎn)以太網(wǎng)是最廣泛應(yīng)用的局域網(wǎng)絡(luò)技術(shù),實(shí)現(xiàn)了在小區(qū)域(如一個(gè)辦公室)范圍內(nèi)連接計(jì)算機(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(載波檢測(cè)多路存取/沖突檢測(cè))。現(xiàn)代的操作系統(tǒng)均能同時(shí)支持這些協(xié)議標(biāo)準(zhǔn),因此對(duì)嵌入式系統(tǒng)的應(yīng)用來(lái)說(shuō),考慮系統(tǒng)精簡(jiǎn)因素,只需要支持這一種就夠了,除非有特殊需要,否則沒(méi)有必要支持太多協(xié)議。
2.以太網(wǎng)的數(shù)據(jù)傳輸以太網(wǎng)傳輸報(bào)文的基本格式如圖3-25所示。它提供了目的地址和源地址,同時(shí)還提供了要傳送的有效數(shù)據(jù)。圖3-25以太網(wǎng)傳輸報(bào)文的基本格式以太網(wǎng)的數(shù)據(jù)傳輸有以下特點(diǎn):(1)所有數(shù)據(jù)位的傳輸由低位開(kāi)始,傳輸?shù)奈涣鞑捎寐鼜厮固鼐幋a。(2)以太網(wǎng)傳輸?shù)臄?shù)據(jù)段長(zhǎng)度最小為60字節(jié),最大為1514字節(jié)。(3)通常以太網(wǎng)卡可以接收來(lái)自三種地址的數(shù)據(jù),即廣播地址、多播地址(在嵌入式系統(tǒng)中很少使用)和它自己的地址。但有時(shí)用于網(wǎng)絡(luò)分析和監(jiān)控,網(wǎng)卡也可以設(shè)置為接收任何數(shù)據(jù)包。(4)任何兩個(gè)網(wǎng)卡的物理地址都是不一樣的。網(wǎng)卡地址由專(zhuān)門(mén)結(jié)構(gòu)分配,不同廠家使用不同地址段,同一廠家的任意兩個(gè)網(wǎng)卡的地址也是唯一的。
3.嵌入式以太網(wǎng)接口的實(shí)現(xiàn)方法在嵌入式系統(tǒng)中實(shí)現(xiàn)以太網(wǎng)接口的方法通常有兩種。方法一是采用嵌入式處理器與網(wǎng)卡芯片的組合。這種方法對(duì)嵌入式處理器沒(méi)有特殊要求,只需要把以太網(wǎng)芯片連接到嵌入式處理器的總線上即可。該方法通用性強(qiáng),不受處理器的限制,但是,處理器和網(wǎng)絡(luò)數(shù)據(jù)交換通過(guò)外部總線(通常是并行總線)實(shí)現(xiàn),速度慢、可靠性不高并且電路板布線復(fù)雜。方法二是直接采用帶有以太網(wǎng)接口的嵌入式處理器。這種方法要求嵌入式處理器有通用的網(wǎng)絡(luò)接口,如MII(MediaIndependentInterface)。通常這種處理器是為面向網(wǎng)絡(luò)應(yīng)用而設(shè)計(jì)的。處理器和網(wǎng)絡(luò)數(shù)據(jù)交換通過(guò)內(nèi)部總線實(shí)現(xiàn),因此速度快,實(shí)現(xiàn)簡(jiǎn)單。3.7其他3.7.1電源大多數(shù)嵌入式系統(tǒng)本身都有電源,且電源的供電方式具有一種特定的電壓范圍。嵌入式系統(tǒng)中各個(gè)單元的電壓范圍有四種:5.0±0.25V、3.3±0.3V、2.0±0.2V和1.5±0.2V。此外,嵌入式系統(tǒng)微控制器中的電可擦可編程只讀存儲(chǔ)器(EEPROM)、RS-232串行接口,均需要提供12±0.2V的電壓。某些系統(tǒng)本身不具有供電子系統(tǒng),它們使用外部電源或者使用充電泵來(lái)供電。例如,網(wǎng)絡(luò)接口卡和圖形加速器都是本身沒(méi)有供電系統(tǒng)而使用PC電源的嵌入式系統(tǒng)。充電泵有一個(gè)串聯(lián)的二極管,后面跟隨一個(gè)充電電容。充電泵從一個(gè)非電源線獲得電能。例如,當(dāng)計(jì)算機(jī)使用鼠標(biāo)時(shí),充電泵消耗電路;當(dāng)鼠標(biāo)處于空閑狀態(tài)時(shí),鼠標(biāo)中的充電泵存儲(chǔ)電荷,從而獲得電能。嵌入式系統(tǒng)必須從加電開(kāi)始連續(xù)執(zhí)行任務(wù)并有可能一直處于加電狀態(tài)。因此,節(jié)電在設(shè)備運(yùn)行過(guò)程中是很重要的。嵌入式處理器必須提供Wait和Stop指令,使系統(tǒng)能夠在低電壓模式下運(yùn)行。通常實(shí)現(xiàn)嵌入式設(shè)備低電壓模式運(yùn)行的方法有兩種:一種是在軟件中集成Wait和Stop指令;另一種是在空閑狀態(tài)下選擇低電壓模式,從而在最低電壓下運(yùn)行系統(tǒng)。此外,還有一種節(jié)電方法,即在特殊的軟件部分運(yùn)行時(shí)(如定時(shí)器和I/O設(shè)備),禁止處理器的某些不必要的結(jié)構(gòu)單元(如高速緩存)運(yùn)行,并將它們處于斷開(kāi)連接狀態(tài)。3.7.2時(shí)鐘在嵌入式系統(tǒng)中,處理器需要有一個(gè)時(shí)鐘振蕩(clockoscillator)電路。時(shí)鐘控制著CPU、系統(tǒng)定時(shí)器和CPU機(jī)器周期的各種時(shí)序需求。機(jī)器周期用于兩個(gè)方面:一方面,從存儲(chǔ)器中取回代碼和數(shù)據(jù),然后在處理器上對(duì)它們進(jìn)行譯碼并運(yùn)行;另一方面,將結(jié)果傳回到存儲(chǔ)器中。時(shí)鐘控制著執(zhí)行一條指令的時(shí)間。通用計(jì)算機(jī)可以使用分離的時(shí)鐘電路,如IBMPC/XT使用專(zhuān)用時(shí)鐘芯片8284產(chǎn)生時(shí)鐘信號(hào)。而嵌入式系統(tǒng)通常為了節(jié)省電路,把時(shí)鐘電路集成在嵌入式處理器上,外面只需要接晶體即可。嵌入式系統(tǒng)的時(shí)鐘電路一般有以下幾種形式:RC時(shí)鐘、石英晶體、石英振蕩器、鎖相倍頻時(shí)鐘和多時(shí)鐘源。(1)RC時(shí)鐘:RC時(shí)鐘一般用于嵌入式微控制器。這種時(shí)鐘源的振蕩頻率的穩(wěn)定性低于時(shí)鐘振蕩器,但是功耗比較低。當(dāng)嵌入式系統(tǒng)對(duì)時(shí)鐘的穩(wěn)定性要求不高時(shí),例如家用電器的控制,可以采用這種電路,且其時(shí)鐘頻率可以動(dòng)態(tài)修改。嵌入式處理器的功耗與時(shí)鐘頻率基本呈線性關(guān)系,因此根據(jù)處理器的負(fù)荷動(dòng)態(tài)改變時(shí)鐘頻率以降低功耗是比較好的方法。(2)石英晶體:基于石英晶體的時(shí)鐘電路,其振蕩電路集成在處理器上,處理器引出兩個(gè)引腳,分別是放大器的輸入和輸出,石英晶體接在這兩個(gè)引腳上,如圖3-26所示。(3)石英振蕩器:與石英晶體不同,石英振蕩器把石英晶體和振蕩電路集成一體,形成石英振蕩器電路,直接輸出時(shí)鐘信號(hào)給處理器。石英振蕩器輸出的時(shí)鐘信號(hào)接在處理器的輸入引腳上,如圖3-27所示。圖3-26由石英晶體構(gòu)成的振蕩器電路結(jié)構(gòu)圖3-27石英振蕩器的振蕩器電路(4)鎖相倍頻時(shí)鐘:通常在高性能的嵌入式處理器上采用鎖相倍頻電路。該時(shí)鐘電路的鎖相環(huán)是一個(gè)倍頻鎖相環(huán),時(shí)鐘電路外接的石英晶體通常采用32768Hz,鎖相環(huán)的倍頻系數(shù)可以通過(guò)編程設(shè)置,倍頻得到的高頻時(shí)鐘經(jīng)過(guò)分頻器進(jìn)行分頻,分別送給處理器的CPU內(nèi)核和各個(gè)I/O接口電路。高性能的嵌入式處理器如32位的處理器,功能強(qiáng)大,芯片上集成了眾多的智能電路,很多的智能電路都需要不同頻率的時(shí)鐘源。此外,出于節(jié)電設(shè)計(jì)的考慮,不同I/O電路的工作狀態(tài)可以由處理器的編程控制。為此,這樣的處理器設(shè)計(jì)了許多時(shí)鐘源,分別為CPU內(nèi)核、實(shí)時(shí)時(shí)鐘電路、不同的I/O電路提供時(shí)鐘信號(hào)。3.7.3復(fù)位1.復(fù)位電路概述嵌入式處理器的復(fù)位電路就是使處理器從起始地址開(kāi)始執(zhí)行指令。這個(gè)起始地址是處理器程序計(jì)數(shù)器(x86系列處理器中是指令指針和代碼段寄存器)加電時(shí)的默認(rèn)設(shè)置。處理器復(fù)位之后,從存儲(chǔ)器的這個(gè)地址開(kāi)始取程序指令。在一些存儲(chǔ)器(如6HC11和HC12)中有兩個(gè)起始地址,一個(gè)用來(lái)作為加電復(fù)位向量,另一個(gè)作為執(zhí)行Reset指令后或者發(fā)生超時(shí)(如來(lái)自看門(mén)狗定時(shí)器的超時(shí))之后的復(fù)位向量。復(fù)位電路激活固定的周期數(shù)后處于無(wú)效狀態(tài)。處理器電路保持復(fù)位管腳處于有效狀態(tài),然后使之處于無(wú)效狀態(tài),使程序從默認(rèn)的起始地址開(kāi)始執(zhí)行。如果復(fù)位管腳或內(nèi)部復(fù)位信號(hào)與系統(tǒng)中其他的單元(例如I/O接口、串行接口)相連接,那么它會(huì)被處理器再一次激活,成為一個(gè)輸出管腳,用于驅(qū)動(dòng)系統(tǒng)中其他單元處于復(fù)位狀態(tài)。在處理器動(dòng)作之后使復(fù)位信號(hào)無(wú)效,程序會(huì)從起始地址開(kāi)始執(zhí)行。通常使用的復(fù)位電路有以下幾種形式:阻容復(fù)位電路、專(zhuān)用復(fù)位電路、手動(dòng)復(fù)位電路、看門(mén)狗定時(shí)器的時(shí)鐘輸出復(fù)位以及軟件復(fù)位。
2.阻容復(fù)位電路阻容復(fù)位電路是最簡(jiǎn)單的復(fù)位電路,電路原理如圖3-28所示。上電瞬
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年己二酸二甲酯項(xiàng)目建議書(shū)
- 全程融資合同范本
- 商鋪轉(zhuǎn)租賃合同
- 超市柜臺(tái)租賃協(xié)議
- 佳木斯市個(gè)人車(chē)位租賃合同
- 2025年海洋潛標(biāo)系統(tǒng)項(xiàng)目合作計(jì)劃書(shū)
- 2025年碳纖維正交三向織物項(xiàng)目合作計(jì)劃書(shū)
- 2025年X射線管項(xiàng)目發(fā)展計(jì)劃
- 2025個(gè)人承包土地合同書(shū)
- 2024年零星建筑工程施工合作合同范本版B版
- 商務(wù)英語(yǔ)口語(yǔ)與實(shí)訓(xùn)學(xué)習(xí)通課后章節(jié)答案期末考試題庫(kù)2023年
- DB3302-T 1015-2022 城市道路清掃保潔作業(yè)規(guī)范
- 手術(shù)室提高患者術(shù)中保溫措施的執(zhí)行率PDCA課件
- 報(bào)刊雜志發(fā)放登記表
- 大學(xué)物理(下)(太原理工大學(xué))知到章節(jié)答案智慧樹(shù)2023年
- 布袋除塵器項(xiàng)目可行性分析報(bào)告
- 2023年安徽省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 我和我的祖國(guó)-電影賞析
- 基本事實(shí)要素表
- 市場(chǎng)監(jiān)督管理局企業(yè)注冊(cè)、經(jīng)營(yíng)范圍登記規(guī)范表述:行業(yè)分類(lèi)及條目代碼
- 2023-2024學(xué)年青海省西寧市小學(xué)數(shù)學(xué)二年級(jí)上冊(cè)期末自測(cè)試題
評(píng)論
0/150
提交評(píng)論