第2章ARMCortex-M3體系結(jié)構(gòu)_第1頁
第2章ARMCortex-M3體系結(jié)構(gòu)_第2頁
第2章ARMCortex-M3體系結(jié)構(gòu)_第3頁
第2章ARMCortex-M3體系結(jié)構(gòu)_第4頁
第2章ARMCortex-M3體系結(jié)構(gòu)_第5頁
已閱讀5頁,還剩156頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

嵌入式系統(tǒng)技術(shù)主講:莫太平mtp@前置課程:單片機原理、C語言等

教材:黃建華-ARMCortex嵌入式系統(tǒng)開發(fā)教程,西安電子科技大學(xué)出版社,2012參考教材:馬維華.嵌入式系統(tǒng)原理及應(yīng)用,北京郵電大學(xué)出版社馬洪連丁男,嵌入式系統(tǒng)設(shè)計教程,電子工業(yè)出版社崔更申,孫安青,ARM嵌入式系統(tǒng)開發(fā)與實踐,中國電力出版馬忠梅等,ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ),北航出版社

教材及參考資料課程目標(biāo)

本課程是電子大類專業(yè)基礎(chǔ)中的一門理論性、實踐性和實用性都很強的課程,其任務(wù)是掌握嵌入式系統(tǒng)概念與原理、嵌入式實時操作系統(tǒng)原理、ARM處理器體系結(jié)構(gòu)、ARM處理器指令系統(tǒng)與簡單程序設(shè)計、ARM處理器結(jié)構(gòu)與硬件原理,通過大量實驗培養(yǎng)學(xué)生綜合運用嵌入式系統(tǒng)解決實際問題的能力及實際動手的能力,讓學(xué)生掌握嵌入式系統(tǒng)軟件與硬件平臺的建立,熟悉嵌入式系統(tǒng)的開發(fā)流程。課程學(xué)習(xí)方法基礎(chǔ)知識的學(xué)習(xí):主要是相關(guān)的基本硬件知識,如嵌入式處理器及接口電路(Flash/SRAM/SDRAM/Cache、UART、Timer、GPIO、Watchdog、USB、IIC、RTC,Ethernet……)等硬件知識,至少掌握一種嵌入式處理器的體系結(jié)構(gòu);至少了解一種操作系統(tǒng)(至少會C語言),對處理器的體系機構(gòu)、組織結(jié)構(gòu)、指令系統(tǒng)、編程模式、對應(yīng)用編程要有一定的了解。在此基礎(chǔ)上必須在實際工程實踐中掌握一定的實際項目開發(fā)技能。嵌入式系統(tǒng)的學(xué)習(xí),必須要有一個較好的嵌入式系統(tǒng)開發(fā)平臺和開發(fā)環(huán)境。功能全面的開發(fā)平臺一方面為學(xué)習(xí)提供了良好的開發(fā)環(huán)境,另一方面開發(fā)平臺本身也是一般的實際系統(tǒng)。在教學(xué)平臺上開發(fā)一些基礎(chǔ)例程和典型實際應(yīng)用例程,對于初學(xué)者和進行實際工程應(yīng)用也是非常必要的。課程學(xué)習(xí)要求嵌入式系統(tǒng)的學(xué)習(xí)必須對基礎(chǔ)內(nèi)容有深入的了解。在處理器指令系統(tǒng)、應(yīng)用編程學(xué)習(xí)的基礎(chǔ)上,重要的是加強外圍功能接口應(yīng)用的學(xué)習(xí),主要是人機接口、通信接口,如UART結(jié)構(gòu)、A/D轉(zhuǎn)換、GPIO、I2C串行數(shù)據(jù)通信接口等知識的掌握。嵌入式操作系統(tǒng)也是嵌入式系統(tǒng)學(xué)習(xí)重要的一部分,在此基礎(chǔ)上才能進行各種設(shè)備驅(qū)動應(yīng)用程序的開發(fā)。課程的知識結(jié)構(gòu)MCS-51ST-7完備的嵌入式系統(tǒng)ARMμc/OS-II操作系統(tǒng)C語言主要教學(xué)內(nèi)容和學(xué)時分配第1章嵌入式系統(tǒng)概述第2章ARMCortex-M3體系結(jié)構(gòu)第3章LPC1700系列處理器第4章LPC1700系列處理器基本接口技術(shù)第5章LPC1700系列處理器通信接口技術(shù)第6章嵌入式實時操作系統(tǒng)Cortex-M3內(nèi)核體系結(jié)構(gòu)Cortex-M3簡介Cortex-M3內(nèi)核結(jié)構(gòu)與優(yōu)勢LuminaryMicro的Stellaris系列Cortex-M3MCU簡介Cortex-M3學(xué)習(xí)中把握什么

ARM公司于2005年推出了Cortex-M3內(nèi)核,就在當(dāng)年ARM公司與其他投資商合伙成立了Luminary(流明諾瑞)公司,由該公司率先設(shè)計、生產(chǎn)與銷售基于Cortex-M3內(nèi)核的ARM芯片——Stellaris(群星)系列ARM。

Cortex-M3內(nèi)核是ARM公司整個Cortex內(nèi)核系列中的微控制器系列(M)內(nèi)核,還是其它兩個系列分別是應(yīng)用處理器系列(A)與實時控制處理系列(R),這三個系列又分別簡稱為A、R、M系列,當(dāng)然這三個系列的內(nèi)核分別有各自不同的應(yīng)用場合。

Cortex-M3簡介

Cortex-M3內(nèi)核主要是應(yīng)用于低成本、小管腳數(shù)和低功耗的場合,并且具有極高的運算能力和極強的中斷響應(yīng)能力。

Cortex-M3處理器采用純Thumb2指令的執(zhí)行方式,使得這個具有32位高性能的ARM內(nèi)核能夠?qū)崿F(xiàn)8位和16位的代碼存儲密度。ARMCortex-M3處理器是使用最少門數(shù)的ARMCPU,核心門數(shù)只有33K,在包含了必要的外設(shè)之后的門數(shù)也只有60K,使得封裝更為小型,成本更加低廉。

Cortex-M3采用了ARMV7哈佛架構(gòu),具有帶分支預(yù)測的3級流水線,中斷延遲最大只有12個時鐘周期,在末尾連鎖的時候只需要6個時鐘周期。同時具有1.25DMIPS/MHZ的性能和0.19mW/MHZ的功耗。 MIPS(Million

Instructions

Per

Second)是CPU處理能力的一個指標(biāo),它的字面意思是每秒種執(zhí)行指令的平均條數(shù)。MIPS/MHz,也就是系統(tǒng)時鐘(CPU的工作時鐘)為1M時,平均能夠執(zhí)行的指令數(shù)。

這里面的D是什么意思?簡單說吧:2個CPU,每個CLK都能執(zhí)行一條指令,這個是相同的,都是“1MIPS/MHz”。但我們讓它門做某個處理運算,一個需要執(zhí)行10條指令完成,而另一個因為指令系統(tǒng)中具備專用的處理這個運算的指令,所以只需要5條指令就行了。故第2個CPU的性能為“2DMIPS/MHz”??梢娛且粋€比值的含義,是相對于某個標(biāo)準(zhǔn)處理器的處理能力比值??梢奃MIPS/MHz是一個相對的、綜合指標(biāo)。

基于ARMv7架構(gòu)的Cortex-M3處理器帶有一個分級結(jié)構(gòu)。它集成了名為CM3Core的中心處理器內(nèi)核和先進的系統(tǒng)外設(shè),實現(xiàn)了內(nèi)置的中斷控制、存儲器保護以及系統(tǒng)的調(diào)試和跟蹤功能。這些外設(shè)可進行高度配置,允許Cortex-M3處理器處理大范圍的應(yīng)用并更貼近系統(tǒng)的需求。目前Cortex-M3內(nèi)核和集成部件(右圖中所示)已進行了專門的設(shè)計,用于實現(xiàn)最小存儲容量、減少管腳數(shù)目和降低功耗。Cortex-M3內(nèi)核結(jié)構(gòu)與優(yōu)勢 Cortex-M3中央內(nèi)核基于哈佛架構(gòu),指令和數(shù)據(jù)各使用一條總線(右圖中所示)。與Cortex-M3不同,ARM7系列處理器使用馮·諾依曼(VonNeumann)架構(gòu),指令和數(shù)據(jù)共用信號總線以及存儲器。由于指令和數(shù)據(jù)可以從存儲器中同時讀取,所以Cortex-M3處理器對多個操作并行執(zhí)行,加快了應(yīng)用程序的執(zhí)行速度。

Cortex-M3內(nèi)核包含一個適用于傳統(tǒng)Thumb和新型Thumb-2指令的譯碼器、一個支持硬件乘法和硬件除法的先進ALU、控制邏輯和用于連接處理器其他部件的接口。Cortex-M3內(nèi)核:

內(nèi)核流水線分3個階段:取指、譯碼和執(zhí)行。當(dāng)遇到分支指令時,譯碼階段也包含預(yù)測的指令取指,這提高了執(zhí)行的速度。處理器在譯碼階段期間自行對分支目的地指令進行取指。在稍后的執(zhí)行過程中,處理完分支指令后便知道下一條要執(zhí)行的指令。如果分支不跳轉(zhuǎn),那么緊跟著的下一條指令隨時可供使用。如果分支跳轉(zhuǎn),那么在跳轉(zhuǎn)的同時分支指令可供使用,空閑時間限制為一個周期。

Cortex-M3處理器是一個32位處理器,帶有32位寬的數(shù)據(jù)路徑,寄存器庫和存儲器接口。其中有13個通用寄存器,兩個堆棧指針,一個鏈接寄存器,一個程序計數(shù)器和一系列包含編程狀態(tài)寄存器的特殊寄存器。

Cortex-M3處理器支持兩種工作模式(線程(Thread)和處理器(Handler))和兩個等級的訪問形式(有特權(quán)或無特權(quán)),在不犧牲應(yīng)用程序安全的前提下實現(xiàn)了對復(fù)雜的開放式系統(tǒng)的執(zhí)行。Cortex-M3內(nèi)核: Cortex-M3處理器是一個存儲器映射系統(tǒng),為高達4GB的可尋址存儲空間提供簡單和固定的存儲器映射,同時,這些空間為代碼(代碼空間)、SRAM(存儲空間),外部存儲器/器件和內(nèi)部/外部外設(shè)提供預(yù)定義的專用地址。另外,還有一個特殊區(qū)域?qū)iT供廠家使用。 借助bit-banding技術(shù),Cortex-M3處理器可以在簡單系統(tǒng)中直接對數(shù)據(jù)的單個位進行訪問。存儲器映射包含兩個位于SRAM的大小均為1MB的bit-band區(qū)域和映射到32MB別名區(qū)域的外設(shè)空間。在別名區(qū)域中,某個地址上的加載/存儲操作將直接轉(zhuǎn)化為對被該地址別名的位的操作。對別名區(qū)域中的某個地址進行寫操作,如果使其最低有效位置位,那么bit-band位為1,如果使其最低有效位清零,那么bit-band位為零。讀別名后的地址將直接返回適當(dāng)?shù)腷it-band位中的值。除此之外,該操作為原子位操作,其他總線活動不能對其中斷。Cortex-M3存儲器映射:

Cortex-M3中央內(nèi)核基于哈佛架構(gòu),指令和數(shù)據(jù)各使用一條總線(右圖中所示)。與Cortex-M3不同,ARM7系列處理器使用馮·諾依曼(VonNeumann)架構(gòu),指令和數(shù)據(jù)共用信號總線以及存儲器。由于指令和數(shù)據(jù)可以從存儲器中同時讀取,所以Cortex-M3處理器對多個操作并行執(zhí)行,加快了應(yīng)用程序的執(zhí)行速度。Cortex-M3內(nèi)核簡介一:哈佛架構(gòu)Cortex-M3內(nèi)核結(jié)構(gòu)與優(yōu)勢

內(nèi)核流水線分3個階段:取指、譯碼和執(zhí)行。當(dāng)遇到分支指令時,譯碼階段也包含預(yù)測的指令取指,這提高了執(zhí)行的速度。處理器在譯碼階段期間自行對分支目的地指令進行取指。在稍后的執(zhí)行過程中,處理完分支指令后便知道下一條要執(zhí)行的指令。如果分支不跳轉(zhuǎn),那么緊跟著的下一條指令隨時可供使用。如果分支跳轉(zhuǎn),那么在跳轉(zhuǎn)的同時分支指令可供使用,空閑時間限制為一個周期。

Cortex-M3內(nèi)核簡介二:分支預(yù)測的流水線 Cortex-M3處理器是一個存儲器映射系統(tǒng),為高達4GB的可尋址存儲空間提供簡單和固定的存儲器映射,同時,這些空間為代碼(代碼空間)、SRAM(存儲空間),外部存儲器/器件和內(nèi)部/外部外設(shè)提供預(yù)定義的專用地址。另外,還有一個特殊區(qū)域?qū)iT供廠家使用。 借助bit-banding技術(shù),Cortex-M3處理器可以在簡單系統(tǒng)中直接對數(shù)據(jù)的單個位進行訪問。存儲器映射包含兩個位于SRAM的大小均為1MB的bit-band區(qū)域和映射到32MB別名區(qū)域的外設(shè)空間。在別名區(qū)域中,某個地址上的加載/存儲操作將直接轉(zhuǎn)化為對被該地址別名的位的操作。對別名區(qū)域中的某個地址進行寫操作,如果使其最低有效位置位,那么bit-band位為1,如果使其最低有效位清零,那么bit-band位為零。讀別名后的地址將直接返回適當(dāng)?shù)腷it-band位中的值。除此之外,該操作為原子位操作,其他總線活動不能對其中斷。Cortex-M3存儲器映射:bit-band技術(shù)bit-banding的比較:

基于傳統(tǒng)ARM7處理器的系統(tǒng)只支持訪問對齊的數(shù)據(jù),只有沿著對齊的字邊界才可以對數(shù)據(jù)進行訪問和存儲。Cortex-M3處理器采用非對齊數(shù)據(jù)訪問方式,使非對齊數(shù)據(jù)可以在單核訪問中進行傳輸。當(dāng)使用非對齊傳輸時,這些傳輸將轉(zhuǎn)換為多個對齊傳輸,但這一過程不為程序員所見。見下面的表中對比:

“傳統(tǒng)的位處理方法和Cortex-M3bit-banding的比較”

傳統(tǒng)的位處理方法和Cortex-M3嵌套向量中斷控制器(NVIC):

NVIC是Cortex-M3處理器中一個完整的部分,它可以進行高度配置,為處理器提供出色的中斷處理能力。在NVIC的標(biāo)準(zhǔn)執(zhí)行中,它提供了一個非屏蔽中斷(NMI)和32個通用物理中斷,這些中斷帶有8級的搶占優(yōu)先權(quán)。NVIC可以通過綜合選擇配置為1到240個物理中斷中的任何一個,并帶有多達256個優(yōu)先級。

Cortex-M3處理器使用一個可以重復(fù)定位的向量表,表中包含了將要執(zhí)行的函數(shù)的地址,可供具體的中斷處理器使用。中斷被接受之后,處理器通過指令總線接口從向量表中獲取地址。向量表復(fù)位時指向零,編程控制寄存器可以使向量表重新定位。嵌套向量中斷控制器(NVIC):

可以在硬件中處理堆棧操作,Cortex-M3處理器免去了在傳統(tǒng)的C語言中斷服務(wù)程序中為了完成堆棧處理所要編寫的匯編程序包,這使應(yīng)用程序的開發(fā)變得更加簡單。

Cortex-M3處理器使用末尾連鎖(tail-chaining)技術(shù)簡化了激活的和未決的中斷之間的移動。末尾連鎖技術(shù)把需要用時30個時鐘周期才能完成的連續(xù)的堆棧彈出和壓入操作替換為6個周期就能完成的指令取指,實現(xiàn)了延遲的降低。處理器狀態(tài)在進入中斷時自動保存,在中斷退出時自動恢復(fù),比軟件執(zhí)行用時更少,大大提高了頻率為100MHz的子系統(tǒng)的性能。

Cortex-M3處理器的集成調(diào)試功能可以實現(xiàn)快速驗證,而無需使用ICE元件。系統(tǒng)可以通過JTAG端口或者兩腳串行線(SerialWireDebug)端口進行觀察。 此外,支持多種開發(fā)工具: 其中一種解決方案如下:

Cortex-M3另一大優(yōu)勢:

ARM公司在其Cortex-M3內(nèi)核中嵌入新的Thumb-2指令集。新的Thumb-2內(nèi)核技術(shù)保留了緊湊代碼質(zhì)量并與現(xiàn)有ARM方案的代碼兼容性,提供改進的性能和能量效率。

Thumb-2是一種新型混合指令集,融合了16位和32位指令,用于實現(xiàn)密度和性能的最佳平衡。在不對性能進行折中的情況下,節(jié)省許多高集成度系統(tǒng)級設(shè)計的總體存儲成本。

Cortex-M3支持的Thumb-2指令(見PDF資料)目標(biāo):看到一段匯編的代碼時,會去查處相關(guān)的指令集,讀懂代碼的意圖/作用即可。Cortex-M3支持的Thumb-2指令:

LuminaryMicro(流明諾瑞)公司設(shè)計、經(jīng)銷、出售基于ARMCortex-M3的微控制器(MCU)。作為ARM的Cortex-M3技術(shù)的主要合伙人,LuminaryMicro已經(jīng)向業(yè)界推出了首顆Cortex-M3處理器的芯片,用8/16位的成本獲得了32位的性能。

LuminaryMicro的Stellaris(群星)系列微控制器包含運行在50MHz頻率下的ARMCortex-M3MCU內(nèi)核、嵌入Flash和SRAM、一個低壓降的穩(wěn)壓器、集成的掉電復(fù)位和上電復(fù)位功能、模擬比較器、10位ADC、SSI、GPIO、看門狗和通用定時器、UART、IC、運動控制PWM以及正交編碼器輸入。提供的外設(shè)直接通向管腳,沒有功能復(fù)用,這個豐富的功能集非常適合樓宇和家庭自動化、工廠自動化和控制、工控電源設(shè)備、步進電機、有刷和無刷DC馬達、和AC感應(yīng)電動機等應(yīng)用。LuminaryMicro的Stellaris系列Cortex-M3MCU簡介

單周期Flash存儲,速度高達50MHz!一些競爭對手的ARM7和Cortex-M3有更快的內(nèi)核速度,但他們的Flash并不是單周期存??;一些競爭對手Flash是單周期存取,但是其內(nèi)核的最大速度是有限的。

Stellaris系列優(yōu)勢:免費獲取的應(yīng)用資源:外設(shè)驅(qū)動庫文件;圖表數(shù)據(jù)庫文件;USB庫文件;BootLoader;

IEC60730庫文件。(點擊圖片即可鏈接至網(wǎng)頁)

Stellaris系列優(yōu)勢:

LuminaryMicro的Stellaris系列微控制器如今包含了100多種可以向全球供貨的MCU,包括售價低至1美元的MCU。這個價格一般只有8bitMCU才能達到。但StellarisMCU內(nèi)部擁有一個ARMCortex-M3處理器。一個售價為$1.00而具有32bit的豐富指令集的MCU實在是太合算了——不用懂什么高深的數(shù)學(xué)就能明白。

Stellaris系列現(xiàn)狀:

一個售價$1.00的32bitMCU的確是價廉物美!

LuminaryMicro的產(chǎn)品已經(jīng)得到了業(yè)界的認(rèn)可,豐富的外設(shè)資源和卓越的性價比,使LuminaryMicro的產(chǎn)品在品質(zhì)和功能上都受到了廣大客戶的贊同,為Luminary贏得了廣闊的市場。

Stellaris系列市場的廣泛應(yīng)用和認(rèn)可:

●客戶對Luminary的選擇:(1)國內(nèi)某著名專業(yè)的電視機廠根據(jù)Luminary產(chǎn)品的性價比的優(yōu)勢選擇了LM3S101用作音頻解碼。(2)某燈光音像器材廠發(fā)揮了Luminary單片機在馬達控制中的優(yōu)勢,采用LM3S310的12路PWM控制6路電機。(3)國內(nèi)某知名工業(yè)以太網(wǎng)設(shè)備廠家,采用Luminary單片機進行以太網(wǎng)轉(zhuǎn)CAN、232和485的設(shè)計,性能卓越,電路簡單可靠,單芯片解決方案。

時序把握 (使用時如同單片機對外圍接口電 路編程一樣)

GPIO引腳控制Cortex-M3學(xué)習(xí)中把握什么

實踐(開發(fā)板+PDF文檔+實驗程序)方法 關(guān)注中心問題:學(xué)好I/O

(數(shù)據(jù)必須通過這些引腳傳送出去,讀回來)

編程中使用API(應(yīng)用程序編程接口)函數(shù)

LM3S系列單片機采用的是結(jié)構(gòu)簡單、性能出眾的ARMCortex-M3處理器內(nèi)核。由于Luminary官方免費公開地提供了基于C語言(符合ANSIC標(biāo)準(zhǔn))的驅(qū)動庫軟件包,并且源代碼是公開的,因此用戶完全可以摒棄晦澀難懂的匯編語言,也不需要掌握底層寄存器的操作細(xì)節(jié),就能輕松玩轉(zhuǎn)LM3S系列的單片機。 下面兩個例程完成同樣的功能:

點亮接在PA3管腳的LED指示燈,一個采用寄存器方式,另一個則利用驅(qū)動庫。我們可以看出,利用驅(qū)動庫開發(fā)應(yīng)用程序不僅編寫起來簡單快速,而且代碼簡潔、可讀性性強。對編寫大型程序而言,采用驅(qū)動庫更能夠增強可靠性和安全性,同時顯著降低維護成本。只要懂C語言就會開發(fā)ARM:

選擇ARM處理器,ARM7還是

Cortex-M3相對基準(zhǔn)性能相對基準(zhǔn)代碼大小

那么,你應(yīng)該如何做出何種選擇呢?

如果成本是最主要考慮因素,您應(yīng)該選擇Cortex-M3;如果在低成本的情況下尋求更好的性能和改進功耗,您最好考慮選用Cortex-M3;特別是如果你的應(yīng)用是汽車和無線領(lǐng)域,最好也采用Cortex-M3,這正是Coretex-M3的主要定位市場。由于Cortex-M3內(nèi)核中的多種集成元素以及采Thumb-2指令集,其開發(fā)和調(diào)試比ARM7TDMI要簡單快捷。

LuminaryMicro的Stellaris系列微控制器如今包含了160多種可以向全球供貨的MCU,包括售價低至1美元的MCU。這個價格一般只有8bitMCU才能達到。決策:Cortex-M3產(chǎn)品展示EXP系列StellarisCortex-M3板卡EL-EMCU-I系統(tǒng)EXP系列

StellarisCortex-M3板卡EXP-LM3S615樣板EXP-LM3S615:

支持最大主頻為50MHz的ARMCortex-M3內(nèi)核,32KByteFLASH,8KByteSRAM,LQFP-48封裝。集成正交編碼器、ADC、帶死區(qū)PWM、模擬比較器、UART、SSI、通用定時器,I2C、CCP等外設(shè)。主要用于步進電機的控制。EXP-LM3S2948:

支持最大主頻為50MHz的ARMCortex-M3內(nèi)核,256KByteFLASH,64KByteSRAM,LQFP-100封裝。集成CAN控制器、睡眠模塊、正交編碼器、ADC、模擬比較器、UART、SSI、通用定時器,I2C、CCP等外設(shè)。主要用于CAN總線傳輸。EXP-LM3S2965:

支持最大主頻為50MHz的ARMCortex-M3內(nèi)核,256KByteFLASH,64KByteSRAM,LQFP-100封裝。集成CAN控制器、睡眠模塊、正交編碼器、ADC、帶死區(qū)PWM、模擬比較器、UART、SSI、通用定時器,I2C、CCP等外設(shè)。主要用于CAN總線傳輸。EXP-LM3S3749:

支持最大主頻為50MHz的ARMCortex-M3內(nèi)核,128KByteFLASH,64KByteSRAM,LQFP-100封裝。集成USBHOST/DEVICE/OTG、睡眠模塊、正交編碼器、ADC、帶死區(qū)PWM、模擬比較器、UART、SSI、通用定時器,I2C、CCP、DMA控制器等外設(shè)。芯片內(nèi)部固化驅(qū)動庫。主要用于USB控制。EXP-LM3S6952:

支持最大主頻為50MHz的ARMCortex-M3內(nèi)核,256KByteFLASH,64KByteSRAM,LQFP-100封裝。集成100MHz以太網(wǎng)、睡眠模塊、正交編碼器、ADC、帶死區(qū)PWM、模擬比較器、UART、SSI、通用定時器,I2C、CCP等外設(shè)。主要用于網(wǎng)絡(luò)傳輸。EXP-LM3S9B90:

支持最大主頻為80MHz的ARMCortex-M3內(nèi)核,256KByteFLASH,96KByteSRAM,LQFP-100封裝。集成100MHz以太網(wǎng)、CAN控制器、USBOTG、外部總線EPI、ROM片上StellarisWare軟件、睡眠模塊、正交編碼器、ADC、帶死區(qū)PWM、模擬比較器、UART、SSI、通用定時器、I2S、I2C、CCP、高精度振蕩器、DMA等外設(shè)。EL-EMCU-I系統(tǒng)(平面圖)EXP接口EXP接口ARM?Cortex?-M3特性Cortex-M3為微控制器版本優(yōu)化的單周期flash快速,準(zhǔn)確的中斷控制器:6個時鐘周期,不多于12個時鐘周期單周期硬件乘法器和除法器Thumb2混合16-/32-位指令集—無須模式切換三種睡眠模式降低電源消耗高級調(diào)試功能包括數(shù)據(jù)斷點和軟件斷點自動操作—讀/修改/寫(單周期指令)1.25DMIPS/MHz—比ARM7和ARM9好Cortex?-M3優(yōu)點為MCU市場而設(shè)計能力更勝ARM7:完全不需要匯編比起ARM7的執(zhí)行Cortex-M3只需要近似?的Flash

在MCU控制應(yīng)用程序上面快了2-4倍原始中斷性能:我們快了85%

PID(進程控制)主循環(huán):我們快了217%乘法加強代碼:我們快了294%ARMCortex-M系列處理器開發(fā)滿足用戶需求從頭設(shè)計,以滿足低功耗,高性能的市場需求ARM7TDMI是一個出色的處理器但是已發(fā)展15年,用戶期望繼續(xù)發(fā)展ARM7TDMICortexMClass無標(biāo)準(zhǔn)的中斷控制器IRQ和FIQ中斷太受限制完整的NVIC中斷控制器多達240個中斷32級中斷優(yōu)先級進入中斷服務(wù)程序ISRs時間不確定需要20-50個時鐘周期H/W堆棧確定中斷服務(wù)程序時間LSMs(咬尾中斷)需要特殊的匯編代碼對于所有的中斷和啟動代碼無需匯編代碼硬件操作處理軟件開發(fā)需要互通編譯ARM和Thumb指令集時需要軟件切換Thumb-2簡化開發(fā),無需任何切換應(yīng)用程序可移植性差沒有標(biāo)準(zhǔn)的內(nèi)存映射和中斷控制器已定義有NVIC,SysTick和內(nèi)存映射集成到內(nèi)核當(dāng)中,時代碼重用性好TI微控制器家族

2009年5月,TI收購了LuminaryMicro公司.LuminaryMicro公司是ARM的Cortex-M3的架構(gòu)的主要合作伙伴目前,TI提供的四代的Stellaris的ARMCortex-M3的微控制器Stellaris?系列已經(jīng)有160多個型號混合信號控制器主要應(yīng)用在能源、安全應(yīng)用、通信市場用于運動控制應(yīng)用,實時通訊(Ethernet,ControllerAreaNetwork,USB),智能模擬功能以及電源轉(zhuǎn)換的獨立IP設(shè)計強大的群星硬件工具,文檔,技術(shù)支持和ARM公司第三方支持,讓您體驗快速、高效、標(biāo)準(zhǔn)化的市場領(lǐng)導(dǎo)解決方案Stellaris處理器

FEB2007JUL2006MAY2006MAR2006JUN2007SEP20072619245185DEC2007104APR2008StellarisFuryClassStellarisSandstormClass128MAR2009138StellarisDustDevilClass167OCT2009StellarisTempestClassStellaris世界級的支持Micriμm編譯,仿真工具操作系統(tǒng)協(xié)議棧合作伙伴編程器Micriμm Over160familymembers 20,25,50,80,and100MHz 8Kto256KFlash 2Kto96KSRAM 48-LQFP 64-LQFP 100-LQFP and108-BGAIndustrial&ExtendedTemperature

Stellaris?各個系列特點LM3S1xxx non-CAN,non-EthernetLM3S2xxx CANLM3S3xxx USBLM3S5xxx CAN+USBLM3S6xxx EthernetLM3S8xxx Ethernet+CANLM3S9xxx Ethernet+CAN+USB系列型號

Flash容量 SRAM容量LM3Sx1xx 16KSRAMLM3Sx2xx 32KSRAMLM3Sx3xx 16KSRAMLM3Sx4xx 32KSRAMLM3Sx5xx 64KSRAMLM3Sx6xx 32KSRAMLM3Sx7xx 64KSRAMLM3Sx8xx 32KSRAMLM3Sx9xx 64KSRAMLM3SxBxx 96KSRAMLM3SxDxx 96KSRAM64KFlash96KFlash128KFlash256KFlash512KFlashStellaris器件查詢工具Stellaris微控制器家族二、

TIStellarisM3Tempest系列硬件性能講解基本外設(shè)模塊介紹1、電源模塊2、調(diào)試接口3、時鐘模塊4、系統(tǒng)定時器5、工作模式6、休眠模塊7、GPIO模塊8、GPTM模塊9、看門狗模塊10、PWM模塊11、QEI模塊12、UART模塊13、SSI模塊14、ADC模塊15、CAN模塊16、EPI17、Ethernet模塊18、USB模塊Stellaris?電源模塊三路輸入電源VDDC內(nèi)核電壓1.2VVDD數(shù)字電源,3.0-3.6VVDDA模擬電源一路輸出電源LDO內(nèi)部電壓調(diào)整器1.2VStellaris?調(diào)試接口JTAG行業(yè)標(biāo)準(zhǔn)的邊界掃描電路內(nèi)測試在電路Flash編程并行JTAGTAP允許進入到芯片的JTAG邊界掃描Cortex-M3的調(diào)試的JTAG支持SerialWireDebug/SerialWireTrace(SWD/SWT)一種提供調(diào)試訪問和兩個引腳控制,跟蹤信息的引腳的新技術(shù)Stellaris?調(diào)試接口如果需要調(diào)試,或Flash映像文件已損壞,您可以隨時使用的JTAG/SWD接口對Flash下載bin文件。請記住,所有的Stellaris評估工具包可以作為在電路調(diào)試接口(ICDIs),這意味著你可以用它對其他板子進行編程/調(diào)試,例如IDM。Stellaris?時鐘特點具體介紹一下這4個時鐘源:高精度內(nèi)部振蕩器(PIOSC):內(nèi)部振蕩器是片內(nèi)時鐘源。它不需要使用任何外部元件。內(nèi)部振蕩器的頻率是16MHz±1%。不依賴精確時鐘源的應(yīng)用可以使用這個時鐘源來降低系統(tǒng)成本。內(nèi)部振蕩器是器件在POR過程中和POR之后使用的時鐘源如果需要主振蕩器,軟件必須在復(fù)位后使能主振蕩器,并在改變時鐘基準(zhǔn)前使主振蕩器穩(wěn)定下來。主振蕩器OSC:主振蕩器用下面的其中一種方法來提供一個頻率精確的時鐘源:OSC0輸入管腳連接一個外部單端時鐘源或在OSC0輸入和OSC1輸出管腳之間連接一個外部晶體。允許的晶體值取決于主振蕩器是否用作PLL的時鐘參考源。-如果使用PLL,則從3.579545MHz到16.384MHz-如果不使用PLL,則從1MHz到16.384MHzStellaris?時鐘特點內(nèi)部30kHz的振蕩器OSC:內(nèi)部30kHz振蕩器與內(nèi)部振蕩器類似,它提供30kHz±30%的工作頻率。它主要用在深度睡眠的節(jié)電模式中。這個節(jié)電模式從減少的內(nèi)部切換中獲益,它還允許主振蕩器掉電。Hibernation振蕩器:外部實時振蕩器提供一個低頻率、精確的時鐘基準(zhǔn)。它的目的是給系統(tǒng)提供一個實時時鐘源。實時振蕩器是休眠模塊的一部分,它也提供了一個精確的深度睡眠或休眠模式節(jié)電源??梢允褂?.194304MHz晶振或者32.768kHz有源晶振。Stellaris?時鐘模塊框圖Stellaris?系統(tǒng)定時器Cortex-M3包含一個集成的系統(tǒng)定時器SysTick。SysTick提供了一種簡單的、24位寫清零(clear-on-write)、遞減的、到零重裝(wrap-on-zero)的計數(shù)器,該計數(shù)器帶有靈活的控制機制:RTOS節(jié)拍定時器以一個可編程的速率(例如100Hz)運行并調(diào)用SysTick程序。使用系統(tǒng)時鐘的高速報警定時器。速率可變的報警或信號定時器—時間延遲的范圍由使用的參考時鐘和計數(shù)器的動態(tài)范圍決定。簡單的計數(shù)器。軟件可使用該計數(shù)器來測量完成時間和使用時間?;阱e過/滿足持續(xù)時間的內(nèi)部時鐘源控制。控制和狀態(tài)寄存器中的COUNTFLAG位字段可用來確定操作是否作為動態(tài)時鐘管理控制循環(huán)的一部分,在設(shè)定的持續(xù)時間內(nèi)完成。Stellaris?工作模式運行模式。運行模式提供了處理器和RCGCn寄存器當(dāng)前使能的所有外設(shè)的正常操作。系統(tǒng)時鐘可以是包括PLL在內(nèi)的任何可用的時鐘源。睡眠模式。睡眠模式通過Cortex-M3內(nèi)核執(zhí)行一條WFI(等待中斷)指令進入。系統(tǒng)中任何適當(dāng)配置的中斷事件將使處理器回到運行模式。在睡眠模式中,Cortex-M3處理器內(nèi)核和存儲器子系統(tǒng)不使用時鐘。當(dāng)自動時鐘門控使能時(見RCC寄存器),SCGCn寄存器使能的外設(shè)時鐘被使用;而當(dāng)自動時鐘門控禁止時,RCGCn寄存器使能的外設(shè)時鐘被使用。睡眠模式下的系統(tǒng)時鐘,其時鐘源和頻率與運行模式下的相同。Stellaris?工作模式深度睡眠模式。深度睡眠模式通過先寫ARMCortex-M3NVIC系統(tǒng)控制寄存器的深度睡眠使能位、再執(zhí)行一條WFI指令進入。系統(tǒng)中任何適當(dāng)配置的中斷事件將使處理器回到運行模式。Cortex-M3處理器內(nèi)核和存儲器子系統(tǒng)不使用時鐘。當(dāng)自動時鐘門控使能時,DCGCn寄存器使能的外設(shè)時鐘被使用;而當(dāng)自動時鐘門控禁止時,RCGCn寄存器使能的外設(shè)時鐘被使用。系統(tǒng)的時鐘源默認(rèn)是主振蕩器或DSLPCLKCFG寄存器指定的內(nèi)部振蕩器,前提是其中一個時鐘源要使能。當(dāng)使用DSLPCLKCFG寄存器時,內(nèi)部振蕩器上電,如有必要,主振蕩器可以掉電。如果PLL在執(zhí)行WFI指令時運行,則硬件將使PLL掉電,并將有效RCC/RCC2寄存器的SYSDIV域分別替換成/16或/64。當(dāng)出現(xiàn)深度睡眠退出事件時,硬件會把在深度睡眠階段被停止的時鐘使能之前,將系統(tǒng)時鐘恢復(fù)為開始進入深度睡眠模式時采用的時鐘源和頻率。休眠模式。這種模式下,器件主要功能部件的電源關(guān)斷,只有休眠模塊的電路有效。需要一個外部喚醒事件或RTC事件來使器件回到運行模式。Cortex-M3處理器和休眠模塊之外的外設(shè)看見一個正常的“上電”序列,處理器啟動運行代碼。通過檢查休眠模塊寄存器可以確定已經(jīng)從休眠模式重新啟動。Stellaris?休眠模塊特點休眠模塊管理微控制器其它功能模塊電源的解除和恢復(fù),提供一種降低功耗的方法。當(dāng)處理器和外設(shè)空閑時,電源可以完全解除,只維持休眠模塊的供電。電源可以因為一個外部信號而恢復(fù),也可以利用內(nèi)置實時時鐘(RTC),在某個時刻被恢復(fù)。休眠模塊可單獨通過電池或輔助電源提供電源。到個別外部穩(wěn)壓器的電源切換邏輯用作外部信號喚醒的專門管腳低電池檢測、發(fā)出信號和中斷發(fā)生32位實時計數(shù)器(RTC)2個32位的RTC匹配寄存器,用作定時喚醒和中斷產(chǎn)生時鐘源來自一個32.768kHz的外部振蕩器或一個4.194304MHz的晶體RTC預(yù)分頻器調(diào)整,對時鐘速率進行良好地調(diào)節(jié)64個32位字的非易失性存儲器可編程的匹配、外部喚醒和低電池電壓事件的中斷Stellaris?休眠模塊框圖Stellaris?GPIO特點高達33個GPIO(64LQFP),60個GPIO(100LQFP)具體數(shù)目取決于配置輸入/輸出可承受5V每個GPIO均可用于產(chǎn)生中斷,可編程為邊沿觸發(fā)或電平檢測在讀和寫操作中通過地址線進行位屏蔽可啟動ADC采樣序列GPIO端口配置的可編程控制弱上拉或下拉電阻2mA、4mA和8mA端口驅(qū)動8-mA驅(qū)動的斜率控制開漏使能數(shù)字輸入使能高達4個GPIO可以驅(qū)動輸出18mAGPIO配置靈活,基本上每個IO口都有多種功能Stellaris?GPIO框圖Stellaris?GPTM通用定時器3個或4個通用定時器模塊(GPTM),每個模塊都能提供2個16位的定時器/計數(shù)器。每個通用定時器模塊都能夠被配置為獨立運作的定時器或事件計數(shù)器:用作單個32位的定時器或用作一個32位的實時時鐘(RTC)以捕獲事件,或者用作脈寬調(diào)制輸出(PWM),或觸發(fā)模數(shù)轉(zhuǎn)換32位定時器模式可編程的單次觸發(fā)定時器可編程的周期定時器當(dāng)接入32.768-KHz外部時鐘輸入時可作為實時時鐘使用當(dāng)控制器在調(diào)試期間使CPU暫停標(biāo)志有效時,用戶可以在周期和單次觸發(fā)模式中使能中止(stalling)Stellaris?GPTM框圖Stellaris?看門狗特點雙看門狗定時器32位遞減計數(shù)器,可編程重裝載寄存器帶使能位的獨立看門狗時鐘可編程中斷產(chǎn)生邏輯和中斷屏蔽位寄存器鎖保護可設(shè)置是否使能復(fù)位功能可以設(shè)置在調(diào)試程序時,程序暫停時停止計數(shù)Stellaris?看門狗框圖Stellaris?PWM特點3個PWM信號發(fā)生模塊,每個模塊都帶有1個16位計數(shù)器、2個比較器,1個PWM信號發(fā)生器和1個死區(qū)發(fā)生器1個16位的計數(shù)器運行在遞減或遞增/遞減模式輸出頻率由一個16位的裝載值控制可同步更新裝載值當(dāng)計數(shù)器的值到達零或者裝載值時產(chǎn)生輸出信號2個PWM比較器

比較器值的更新可以同步在匹配的時候產(chǎn)生輸出信號PWM信號發(fā)生器根據(jù)計數(shù)器和PWM比較器的輸出信號來產(chǎn)生PWM輸出信號可產(chǎn)生兩個獨立的PWM信號Stellaris?PWM特點PWM比較事件波形減計數(shù)模式先遞增后遞減模式AsymmetricalWaveformSymmetricalWaveformCMPACMPACMPBCMPBStellaris?PWM框圖Stellaris?PWM應(yīng)用StellarisPower,MotorControl,Hall,AnalogStellaris帶多路PWM,可以廣泛用于電機控制、數(shù)字電源等場合。Stellaris?QEI特點兩個正交編碼器接口(QEI)模塊。每個QEI模塊對正交編碼器輪產(chǎn)生的代碼進行解碼,將它們解釋成位置對時間的積分,并確定旋轉(zhuǎn)的方向。另外,它還能夠捕獲編碼器輪運轉(zhuǎn)時的大致速度。每個Stellaris?正交編碼器具有以下特性:使用位置積分器來跟蹤編碼器的位置使用內(nèi)置定時器來捕獲速度QEI在下列事件發(fā)生時將產(chǎn)生中斷: –檢測到索引脈沖 –速度定時器發(fā)生計滿返回事件 –旋轉(zhuǎn)方向發(fā)生改變 –檢測到正交錯誤Stellaris?QEI框圖Stellaris?UART特點3個完全可編程的16C550-typeUART,支持IrDA,支持ISO7816智能卡協(xié)議帶有獨立的16×8發(fā)送(TX)和16×12接收(RX)FIFO,減輕CPU中斷服務(wù)負(fù)載(loading)可編程的波特率發(fā)生器,帶有小數(shù)分頻器可編程設(shè)置FIFO長度,包括1字節(jié)深度的操作,以提供傳統(tǒng)的雙緩沖接口。FIFO觸發(fā)水平可設(shè)為1/8、1/4、1/2、3/4和7/8標(biāo)準(zhǔn)異步通信位:起始位、停止位、奇偶位無效起始位檢測行中斷的發(fā)生和檢測Stellaris?UART框圖Stellaris?SSI特點主機或從機操作可編程控制的時鐘位速率和預(yù)分頻獨立的發(fā)送和接收FIFO,16位寬,8位深可編程的接口,與Freescale的SPI接口,MICROWIRE或者TI(TexasInstruments)器件的同步串行接口相連

可編程的數(shù)據(jù)幀大小,范圍為4到16位內(nèi)部循環(huán)測試模式可用于診斷/調(diào)試測試Stellaris?SSI框圖Stellaris?ADC特點8個、16個模擬輸入通道單端和差分輸入配置內(nèi)部溫度傳感器1,000,000次/秒的采樣率4個可編程的采樣轉(zhuǎn)換序列,入口長度1到8,每個序列均帶有相應(yīng)的轉(zhuǎn)換結(jié)果FIFO靈活的觸發(fā)控制控制器(軟件)定時器模擬比較器PWMGPIO硬件可對多達64個采樣值進行平均計算,以便提高精度Stellaris?ADC框圖Stellaris?CAN特點控制器局域網(wǎng)(CAN)

1、2個CAN控制器 支持CAN協(xié)議版本2.0partA/B

傳輸位速率可達1Mb/s

32個消息對象,每個都帶有獨立的標(biāo)識符屏蔽 可屏蔽的中斷 可禁止TTCAN的自動重發(fā)模式 可編程設(shè)定的循環(huán)模式用于自檢操作Stellaris?CAN框圖Stellaris?CAN典型應(yīng)用LM3S芯片內(nèi)置CAN控制器,然后通過CAN物理芯片連接到CAN網(wǎng)絡(luò)上,進一步與其他設(shè)備通信。Stellaris?EPI特點支持多種設(shè)備SDRAM:支持x16(單數(shù)據(jù)速率)高達50MHz

支持低成本的SDRAM芯片,最大為64MB包括自動更新和訪問所有banks/rows包括睡眠/待機模式主機總線接口:傳統(tǒng)的8/16位微處理器總線接口功能類似器件兼容操作,如:PIC,ATMega,8051,其他訪問SRAM,NORFlash和其他設(shè)備,高達24MB的尋址支持地址數(shù)據(jù)線復(fù)用和非復(fù)用兩種方式訪問多種設(shè)備,支持無地址FIFO的8位接口變量,支持發(fā)送FIFO空和接收FIFO滿標(biāo)志速度控制,讀取和寫入數(shù)據(jù)等待狀態(tài)計數(shù)器手動片選(或使用額外的地址引腳)Stellaris?EPI特點支持多種類型設(shè)備機器到機器:寬并行接口用于快速通信,如CPLDs和FPGAs

數(shù)據(jù)寬度可達32位,數(shù)據(jù)速率可達150MByte每秒

可選地址大小從4位到16位

可選時鐘輸出,讀寫頻率,和時鐘使能輸入其他特性普通并行GPIO,快速控制的FIFO用于普通外設(shè)和數(shù)字控制阻塞和非阻塞讀取寫FIFO和處理器在時間上獨立直接內(nèi)存訪問(DMA)Stellaris?EPI框圖Stellaris?Ethernet特點

10/100以太網(wǎng)控制器

MAC+PHY,集成PHY層省去外加PHY芯片的麻煩 遵循IEEE802.3-2002規(guī)范 遵循IEEE1588-2002精確時間協(xié)議(PTP) 在100Mbps和10Mbps速率運作下支持全雙工和半雙工的操作方式

自動的MDI/MDI-X交叉校驗 可編程MAC地址 節(jié)能和斷電模式例程包中支持Lwip、uip等協(xié)議棧的詳細(xì)例程Stellaris?Ethernet框圖功能描述MII1:1隔離變壓器LM3S數(shù)據(jù)鏈路層(MAC)媒體獨立接口(MII)發(fā)送緩存接收緩存MII管理接口流控制網(wǎng)絡(luò)物理層PHY發(fā)送&接口10Base-T曼徹斯特編碼100Base-TX4B/5B編碼媒體獨立接口(MII)發(fā)送&接口以太網(wǎng)連接典型電路優(yōu)點:集成PHY層,減少PCB走線難度,增加以太網(wǎng)穩(wěn)定性。

什么是IEEE1588?系統(tǒng)?IEEE1588被稱為“網(wǎng)絡(luò)精確時鐘同步協(xié)議及控制系統(tǒng)”-或精確時間協(xié)議-簡稱PTPIEEE1588允許在系統(tǒng)組件的時鐘同步,以高度的準(zhǔn)確性。使用Stellaris很容易實現(xiàn)微秒的精度并且成本低提交小等的特點。如何使用的同步時鐘?在一個IEEE1588系統(tǒng)的時鐘通常用來協(xié)調(diào)系統(tǒng)上執(zhí)行的主要應(yīng)用的活動。如果傳感器的數(shù)據(jù)源時間戳。時間標(biāo)記的數(shù)據(jù)可能聯(lián)系后面的相關(guān)業(yè)務(wù)。時鐘是用來啟動一個或多個組件的行動。執(zhí)行機構(gòu)可以改變它的價值,同時時間T1傳感器測量值在時間T+Δ被標(biāo)記當(dāng)時鐘同步的時候,結(jié)果立即進行協(xié)調(diào)。

可視化的IEEE1588在IEEE1588之前,以太網(wǎng)通信在控制應(yīng)用中沒有確定性:假設(shè)Sender發(fā)送TURN指令到Controller假設(shè)ClockS和ClockC不同步如果Sender告訴Controller收到TURN指令,然而在Controller收到TURN后無返回SenderClockSControllerClockCUh-oh!以太網(wǎng)不確定性TURN(some??timelater)

“Ok!”可視化的IEEE158894SenderClockSControllerClockCUh-oh!AlphaonClockSAlphaonClockC.ControllerClockCYes!AlphaonClockS=AlphaonClockC.即使Sender告訴Controller在一個給定的時間alpha接收TURN,這里仍然有一個時間同步問題

但是如果Sender告訴Controller在一個給定的時間alpha接收TURN,然后時鐘由一個主機來同步時間,之后Controller返回TURN.“TURNatalpha!”“Ok!IwillTURN

atalpha.”“TURNatalpha!”“Ok!IwillTURN

atalpha.”SenderClockS工業(yè)應(yīng)用的PTPPTP和運動控制變頻驅(qū)動器需要10個微妙級軟件產(chǎn)生5uS44%的應(yīng)用需要聯(lián)網(wǎng),63%使用以太網(wǎng)TCP/IPB私服控制系統(tǒng)需要100個納秒需要大量的硬件支持36%的應(yīng)用需要聯(lián)網(wǎng),56%使用以太網(wǎng)TCP/IPCStellaris實施開源的lwIP+PTPd:主時鐘下500nS,誤差+/-500nS應(yīng)用領(lǐng)域需要高精度的同步級別低速傳感器(e.g.壓力,溫度)普通的電機控制(e.g.繼電器,斷路器,電磁閥,閥門)一般自動化(e.g.材料處理,化學(xué)處理)精密運動控制(e.g.高速包裝,印刷,機器人)高速電子設(shè)備(e.g.同步相位測量)電子測距(e.g.故障檢查,三角)毫秒毫秒毫秒幾毫秒毫秒毫秒Stellaris?USB特點完整的控制與物理層協(xié)議(PHY)USB2.0全速(12Mbps)操作可運行于OTG/Host/Device

或者是Host/Device傳輸:控制傳輸,中斷傳輸,塊傳輸以及同步傳輸32個端點 —1對端點用于控制傳輸,分別為IN/OUT端點 —15對端點可以配置成IN/OUT端點4KB專用端點緩沖區(qū)—DMA—一個端點能夠被定義成1023字節(jié)大小的雙緩沖Stellaris?USB傳輸模式1、控制(Control)方式傳輸:控制傳輸是雙向傳輸,數(shù)據(jù)量通常較小。USB系統(tǒng)軟件用來主要進行查詢、配置和給USB設(shè)備發(fā)送通用的命令??刂苽鬏敺绞娇梢园?、16、32和64字節(jié)的數(shù)據(jù),這依賴于設(shè)備和傳輸速度??刂苽鬏?shù)湫偷赜迷谥饔嬎銠C和USB外之間的端點(Endpoint)0之間的傳輸,但是指定供應(yīng)商的控制傳輸可能用到其它的端點。2、同步(isochronous)方式傳輸:同步傳輸提供了確定的帶寬和間隔時間latency)。它被用于時間嚴(yán)格并具有較強容錯性的流數(shù)據(jù)傳輸,或者用于要求恒定的數(shù)據(jù)傳輸率的即時應(yīng)用中例如執(zhí)行即時通話的網(wǎng)絡(luò)電話應(yīng)用時,使用同步傳輸模式是很好的選擇同步數(shù)據(jù)要求確定的帶寬值和確定的最大傳輸次數(shù)。對于同步傳輸來,說即時的數(shù)據(jù)傳遞比完美的精度和數(shù)據(jù)的完整性更重要一些。Stellaris?USB傳輸模式3、中斷(interrupt)方式傳輸:中斷方式傳輸主要用于定時查詢設(shè)備是否有中斷數(shù)據(jù)要傳輸。設(shè)備的端點模式器的結(jié)構(gòu)決定了它的查詢頻率,從1到255ms之間。這種傳輸方式典型的應(yīng)用在少量的分散的、不可預(yù)測數(shù)據(jù)的傳輸。鍵盤、操縱桿和鼠標(biāo)就屬于這一類型。中斷方式傳輸是單向的并且對于host來說只有輸入的方式。4、大量(bulk)傳輸主要應(yīng)用在數(shù)據(jù)大量傳輸傳輸和接受數(shù)據(jù)上同時又沒有帶寬和間隔時間要求的情況下,要求保證傳輸。打印機和掃描儀屬于這種類型。這種類型的設(shè)備適合于傳輸非常慢和大量被延遲的傳輸,可以等到所有其它類型的數(shù)據(jù)的傳輸完成之后再傳輸和接收數(shù)據(jù)。Stellaris?USB引腳介紹USB0DM數(shù)據(jù)差分線D-。USB0DP數(shù)據(jù)差分線D+。USB0IDOTG模式下用于指示處于主機還是從機模式下。USB0VBUS供USBPHY層檢測VBUS電壓USB0PFLT輸入,作為主機時,指示外部電源錯誤。USB0EPEN輸出,作為主機時,控制外部電源輸出Stellaris?USBOTG連接圖USB作為主機時電源保護芯片,可根據(jù)需要添加:

Stellaris?USB框圖休息一下(15分鐘)三、StellarisWare軟件架構(gòu)介紹串行Flash編程圖形用戶界面

LMFlashProgrammingGUI簡單的圖形用戶界面支持所有評估板主要功能包括:編程校驗擦除讀取BIN文件Flash編程GUI支持:對評估板

(EVM)直接編程

對通過硬件間接連接的評估板(EVM)編程USBUSB注意:目標(biāo)板必須先供電評估板可以作為JTAG接口Driverlib驅(qū)動庫使用介紹driverlib為一個軟件包,幫助我們快速開發(fā)LM3S器件。該軟件包全部使用C語言編寫,可以說我們只需要懂C語言,就能進行嵌入式的開發(fā)。ASMC/C++外設(shè)驅(qū)動庫(DriverLib)高級API接口快速完成外設(shè)配置免費的許可證和不需要版權(quán)費用簡化和加速應(yīng)用的開發(fā)可以作為目標(biāo)程序庫和源文件支持編譯器包括ARM/Keil,IAR,CodeRed,和GNU工具包括Stellaris圖形庫和StellarisUSB庫在有些StellarisMCUs外設(shè)驅(qū)動庫函數(shù)被預(yù)置到ROM中外設(shè)驅(qū)動庫組織結(jié)構(gòu)“.\StellarisWare”包含硬件相關(guān)的頭文件(默認(rèn))

包含外設(shè)相關(guān)定義

必要的類型定義

宏定義“.\StellarisWare\driverlib”包含:

‘c’源文件和頭文件包含外設(shè)特有的功能

為了編譯驅(qū)動所需的編譯器特有工程文件編譯器特有的輸出目錄和文件,即實際每個編譯器所需的庫文件

C:\StellarisWare\driverlib\ewarm

-IAR

C:\StellarisWare\driverlib\gcc -CodeRed

C:\StellarisWare\driverlib\rvmdk -Keil

C:\StellarisWare\driverlib\sourcerygxx -CodeSourcery

C:\StellarisWare\driverlib\ccs-CodeComposerStudioStellaris圖形庫特點Stellaris圖形庫是一套免專利費的基本圖元和小控件集,能夠在基于Stellaris微處理器且?guī)в袌D形顯示器的電路板上創(chuàng)建圖形用戶界面,圖形庫由三個功能構(gòu)建層組成:一、顯示驅(qū)動層,針對使用的顯示屏驅(qū)動程序。二、基本圖元層,可在能實現(xiàn)無抖動工作的活動顯示緩沖或屏外緩沖中繪制點、線、矩形、圓形、字體、位圖影像以及文本等。三、控件層,支持復(fù)選框、按鈕、單選按鈕、滑塊、列表框以及一種或多種基本圖元的通用包絡(luò),可在顯示屏上繪制用戶界面元素,并能根據(jù)用戶與小控件元素的互動提供應(yīng)用定義的響應(yīng)。圖形庫使用Stellaris微控制器來設(shè)置基本圖形元素和部件三層功能函數(shù):顯示驅(qū)動層基本圖形層控件層DisplayDriverLayerGraphicsPrimitivesLayerWidgetLayer應(yīng)用接口選擇–并行顯示控制器芯片通常支持的并行接口為8/16位6800或8080兼容接口。優(yōu)點:由于是并行傳輸,速度快

缺點:資源消耗大,需要較多引腳例子:EK-LM3S3748,DK-LM3S9B96,所有的RDK-IDM板子StellarisMCUGPIOEPIDisplayControllerICCase1:Displayw/integratedcontrollerCase2:Discretecontroller+displayOR圖形庫–顯示驅(qū)動層該圖形庫可在任何位置顯示,任意大小(當(dāng)然在合理范圍內(nèi))。唯一的限制是顏色深度,最多24位色的RGB。使用的基本圖形結(jié)構(gòu)描述顯示,以找出如何對它說話。此結(jié)構(gòu)包含:如寬度顯示的基本信息/高度,決定顯示方向。如單個像素繪制,多個像素繪制(基本任務(wù)函數(shù)繪制水平,垂直線),矩形填充顏色,顏色翻譯從24位RGB(以顯示特定的顏色),并刷新緩存。如果一個顯示控制器不支持的圖形庫,建立一個具有上述功能的驅(qū)動程序,將使其能夠與圖形庫使用。圖形庫–基本圖形層基本圖形:點,線,矩形,圓,字體,圖像,文本,緩沖區(qū)可用現(xiàn)代計算機的134種預(yù)定義的字體高達24位色彩(GraphicsLib提供150種常見的顏色方便引用)該控件庫使用基本圖形構(gòu)造部件例如,一個復(fù)選框使用長方形,字體和行原語-矩形繪制的容器,繪制的“X”為40,30行,并填入對應(yīng)的字體和文本這可能使調(diào)用基本圖形層(例如,制訂靜態(tài)文本或圖像),但如果應(yīng)用程序部件為基礎(chǔ),因此沒有必要的。圖形庫–控件層內(nèi)置圖形控件層,包括:畫布,復(fù)選框,容器,按鈕,單選按鈕,畫框,列表框該按鈕和滑塊控件的外觀,可定制任何圖像。該框架還允許小部件,為你定制需要原本不存在的部件.一種實用工具(pnmtoc)在StellarisWare提供幫助的PNM格式轉(zhuǎn)換圖像到C的數(shù)組,可以鏈接到應(yīng)用程序。用戶申請定期服務(wù)的隊列調(diào)用WidgetMessageQueueProcess()的部件信息。未經(jīng)處理的隊列,變化不會顯示在屏幕上。應(yīng)用程序代碼(部件處理程序,中斷服務(wù)等),可以通過調(diào)用WidgetAdd(...)或WidgetRemove(...)來添加和刪除控件,也可以通過使用WidgetMessageQueueAdd(...)來處理郵件。以太網(wǎng)幀結(jié)構(gòu)前導(dǎo)碼(7)SFD(1)目標(biāo)地址(6)源地址(6)長度/類型(2)數(shù)據(jù)(46-1500)FSC(4)幀時序同步指示幀開始1010.1011目標(biāo)地址LSB-單個地址0

多播地址1源地址字段的值大于1500為類型CRC-32算法14字節(jié)TCP/IP分層結(jié)構(gòu)鏈路層網(wǎng)絡(luò)層運輸層應(yīng)用層物理層數(shù)據(jù)鏈路層網(wǎng)絡(luò)層運輸層會話層表示層應(yīng)用層Iso7層結(jié)構(gòu)TCP/IP5層結(jié)構(gòu)各種協(xié)議所在的層應(yīng)用層:DHCP,DNS,FTP,HTTP,IMAP4,IRC,NNTP,XMPP,POP3,RTP,SIP,SMTP,SNMP,SSH,TELNET,RPC,RTCP,RTSP,TLS(andSSL),SDP,SOAP,GTP,STUN,NTP,etc...傳輸層:TCP,UDP,DCCP,SCTP,RSVP,ECN,etc...網(wǎng)絡(luò)層:IP(IPv4,IPv6),OSPF,IS-IS,BGP,IPsec,ARP,RARP,RIP,ICMP,ICMPv6,IGMP,etc...數(shù)據(jù)鏈路層:Ethernet,802.11(WLAN),802.16,Wi-Fi,WiMAX,ATM,DTM,Tokenring,FDDI,FrameRelay,GPRS,EVDO,HSPA,HDLC,PPP,PPTP,L2TP,ISDN,ARCnet,LLTD,etc...物理層:Ethernetphysicallayer,Twistedpair,Modems,PLC,SONET/SDH,G.709,Opticalfiber,Coaxialcable,etc...各種協(xié)議所在的層應(yīng)用層FTPTELNETRLOGINSMTPDNSHTTPTFTP…傳輸層TCPUDP…網(wǎng)絡(luò)層IPICMPIGMP…數(shù)據(jù)鏈路層Ethernet/ATM/WirelessARP…物理層TwistedpairOpticalfiber…LwIP&uIP協(xié)議棧由AdamDunkels開發(fā)LwIP比uIP完整uIP比LwIP更精小TI提供以上的兩個開源協(xié)議棧的移植范例。Eth應(yīng)用例程Quick-Start使用lwIPTCP/IP協(xié)議棧作為DHCP客戶端,即動態(tài)獲取IP地址基本web服務(wù)器網(wǎng)頁Web服務(wù)器游戲使用Java技術(shù)展示簡單的web控制Eth應(yīng)用例程ENET_IOWeb服務(wù)器基本IO控制使用lwIPTCP/IP協(xié)議棧作為DHCP客戶端展示兩種web控制技術(shù)HTTP請求CGI/SSIHTTPDEth應(yīng)用例程ENET_lwIP使用lwIPTCP/IP協(xié)議棧作為DHCP客戶端服務(wù)器網(wǎng)頁有兩種來源SD卡檢查SD卡是否存在從SD卡中讀取服務(wù)器網(wǎng)頁片內(nèi)flash中片內(nèi)flash中存在web服務(wù)器網(wǎng)頁Eth應(yīng)用例程ENET_uIP使用uIPTCP/IP協(xié)議棧DHCP獲取IP地址靜態(tài)網(wǎng)頁USB標(biāo)準(zhǔn)標(biāo)準(zhǔn)USB1.1

定義為主機(host)或者從機(device)

速度可達12Mbits/sec最大輸出電流500mA(啟動最大100mA)USB2.0速度高達480Mbits/sec

增加OTG模式USB3.0速度高達4.8Gbits/sec

新型的連接器

獨立收發(fā)線USB協(xié)議的層次物理層: USB總線接口,發(fā)送和接收數(shù)據(jù)包。中間層

是底層數(shù)據(jù)接口和USB設(shè)備端點之間的路由。負(fù)責(zé)傳輸數(shù)據(jù)到USB端點上。應(yīng)用層

提供USB設(shè)備類,比如鼠標(biāo)、大容量存儲器等。USB協(xié)議物理層連接類型USB比特率USB高速比特率為480Mb/sUSB全速比特率為12Mb/sUSB低速比特率為1.5Mb/s四線+ID線USB2.0USB信號USB協(xié)議中間層USB模式:USBDevice大部分的USB產(chǎn)品是從機。USBHost通過用于PC機,嵌入式處理器也可以做。USBOTGOn-The-Go單個端口可以用作主機或從機,根據(jù)ID線的狀態(tài)區(qū)分(就是說根據(jù)連接線區(qū)分)。USB端點:

IN,OUT控制、同步、批量、中斷USB類每種類對應(yīng)于某一種產(chǎn)品。比如鼠標(biāo)等。USB描述符EndPoints(EP)HostcontrollerUSB設(shè)備邏輯通道RxTxRxUSB設(shè)備描述符

給出了設(shè)備的版本信息、PID、VID等。一個USB設(shè)備可以有一個或者多個配置描述符。每個配置描述符可以有一個或多個接口,每個接口可以有多個端點。設(shè)備描述符

廠商ID、產(chǎn)品ID支持的設(shè)備類

配置描述符最大功耗接口數(shù)接口描述符端點數(shù)USB類代碼端點描述符(傳輸模式、速度)端點地址傳輸類型最大數(shù)據(jù)包大小USB協(xié)議中間層—數(shù)據(jù)流枚舉過程:

在設(shè)備上電的時候,主機輪詢每個設(shè)備,并獲取設(shè)備的信息(描述符),包括以下:

設(shè)備描述符(廠商ID、產(chǎn)品ID,用于幫助主機查找驅(qū)動)

配置描述符(功耗和接口描述符)

端點描述符(傳輸類型和速度)握手、數(shù)據(jù)USB協(xié)議中間層—數(shù)據(jù)包USB協(xié)議頂層端點EP邏輯通道RxTxRx物理層USBVID授權(quán)VID:定義一個USB設(shè)備生產(chǎn)廠商。PID:給定VID下不同的產(chǎn)品。每個USB設(shè)備都需要VID每個VID代表一個公司。可以使用TI的VID,并向TI申請一個指定的PID。Stellaris解決方案設(shè)備API函數(shù)

(鼠標(biāo),鍵盤,文件系統(tǒng))USB設(shè)備類驅(qū)動API函數(shù)(HID、大容量存儲器)USB主機控制器API函數(shù)USB硬件驅(qū)動庫USB驅(qū)動庫綜合子集的USB功能簡化嵌入式USB控制提供給客戶免費的應(yīng)用軟件,使用StellarisMCUs來快速開發(fā)USB.可獲得的例程:從機例子:HID鍵盤HID鼠標(biāo)CDC虛擬串口大容量存儲器(如U盤)普通批傳輸(bulk)音頻設(shè)備設(shè)備固件更新示波器主機例子:大容量存儲器HID鍵盤HID鼠標(biāo)OTG例子:SRP(檢測請求協(xié)議)HNP(主機協(xié)商協(xié)議)USB-IF認(rèn)證StellarisMCUs已經(jīng)通過USB從機和嵌入式主機認(rèn)證測試TI許可StellarisVID&PIDs給客戶使用WindowsINF支持類Windowsdrivers基礎(chǔ)驅(qū)動程序設(shè)定配置字符串設(shè)定PID/VID預(yù)編譯的DLL縮短開發(fā)時間USBLib提供設(shè)備程序框架USBDevice例程Audio將開發(fā)板作為一個USB音頻類設(shè)備16為立體聲、48KHz采樣速率、耳機音量控制使用的是同步傳輸模式HIDKeyboard將開發(fā)板作為一個鍵盤可以輸出字符、支持USB遠(yuǎn)程喚醒使用的HID,人機接口類HIDMouse將開發(fā)板作為一個鼠標(biāo)可以發(fā)送x、y坐標(biāo)值,按鈕狀態(tài)展示HID人機接口類MSD展示了大容量存儲器類,將開發(fā)板作為一個U盤顯示當(dāng)前可以進行的操作

讀、寫、空閑、無媒體、斷開連接使用SD卡作為媒體介質(zhì)支持FAT文件系統(tǒng)Serial展示了CDC類,將開發(fā)板作為一個虛擬串口需要Windows‘.inf’fileUSBHost例程Mouse展示支持USB鼠標(biāo)顯示鼠標(biāo)數(shù)據(jù):連接狀態(tài)按鍵狀態(tài)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論