ARM處理器概述課件_第1頁
ARM處理器概述課件_第2頁
ARM處理器概述課件_第3頁
ARM處理器概述課件_第4頁
ARM處理器概述課件_第5頁
已閱讀5頁,還剩59頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

ARM處理器概述1.1什么是ARM處理器1.2ARM處理器的發展史1.3ARM處理器的系列產品1.4ARM處理器的架構1.5STM32系列ARM處理器的特點與性能1.6ARM處理器系統的開發要點1.7如何學習ARM處理器課程1.8如何提高ARM處理器的開發技能

1.1什么是ARM處理器

ARM(AdvancedRISCMachines)是微處理器行業的一家知名企業,是專門從事基于RISC(ReducedInstructionSetComputer,精簡指令集計算機),技術芯片設計開發的公司。ARM設計了高性能、廉價、耗能低的RISC處理器的相關技術及軟件。也就是說,ARM是微處理器的設計廠商,主要設計ARM處理器的標準,提出ARM指令集,再將ARM架構授權給世界上許多著名的半導體、軟件和OEM廠商。每個廠商得到的都是一套獨一無二的ARM相關技術及服務。該技術適用于嵌入系統控制、消費、多媒體、DSP和移動式應用等多種領域。ARM與其他廠商的這種合伙關系,使它很快就成為許多全球性RISC標準的締造者。目前,全球共有30家半導體公司與ARM簽訂了硬件技術使用許可協議,其中包括Intel、IBM、LG半導體、NEC、SONY、飛利浦和ST(意法半導體)等大公司。ARM架構是面向市場設計的第一款RISC微處理器,是高級精簡指令集機器。

RISC支持的指令比較簡單,所以功耗小、價格便宜,特別適用于移動設備。早期使用ARM芯片的典型設備就是蘋果公司的牛頓PDA。

20世紀80年代后期,ARM很快開發成Acorn的臺式機產品。1990年11月27日,Acorn公司正式改組為ARM計算機公司。20世紀90年代,ARM32位嵌入式RISC處理器的應用擴展到世界范圍,占據了低功耗、低成本和高性能嵌入式系統應用領域的領先地位。1.2ARM處理器的發展史

1.3ARM處理器的系列產品

隨著智能手機越來越普及,消費者在選購手機的時候,除了關心價格和外觀之外,手機的性能也是人們最關心的因素之一。眾所周知,處理器是影響手機性能的最關鍵的

因素。大家都比較了解德州儀器、高通、英偉達以及三星等主流處理器廠商。但很多人并不知道,其實它們采用的都是同一個架構的ARM處理器,實際上,采用的處理器才

是影響手機性能的關鍵因素。ARM目前已經在移動電話領域占據了全球90%的市場份額。超過100家半導體公司持有不同形式的ARM授權,其中包括Intel、IBM、LG、NEC、SONY、NXP(原PHILIPS)和NS等公司,也包括微軟、升陽和MRI等一系列知名軟件系統公司。

ARM處理器系列產品有:ARM7系列、ARM9系列、ARM9E系列、ARM10系列、SecurCore系列、Intel的StrongARMARM11系列、Intel的Xscale等。其中,ARM7、ARM9、ARM9E和ARM10為4個通用處理器系列,每一個系列提供一套相對獨特的性能來滿足不同應用領域的需求;SecurCore系列專門為安全要求較高的應用而設計。

從1985年發布首款內核ARM1開始,經過三十多年的發展,ARM處理器如今已經發展到運行速度可達2.5GHz的Crotex-A15核心。

在應用選型方面,系統的工作頻率在很大程度上決定了ARM微處理器的處理能力。ARM7系列微處理器的典型處理速度為0.9MIPS/MHz,常見的ARM7芯片系統主時鐘為20~133MHz;ARM9系列微處理器的典型處理速度為1.1MIPS/MHz,常見的ARM9系統主時鐘頻率為100~233MHz;ARM10系列芯片的主時鐘頻率最高可以達到700MHz。不同芯片對時鐘的處理不同,有的芯片只需一個主時鐘頻率,有的芯片內部時鐘控制器可以分別為ARM核和USB、UART、DSP、音頻等功能部件提供不同頻率的時鐘。

片內外圍電路的選擇除ARM微處理器核以外,幾乎所有的ARM芯片均根據各自不同的應用領域,擴展了相關功能模塊,并集成在芯片之上,稱之為片內外圍電路,如USB接口、I2S接口、LCD控制器、鍵盤接口、RTC、ADC和DAC、DSP處理器等。設計者應分析系統的需求,盡可能采用片內外圍電路完成所需的功能,這樣既可簡化系統的設計,又可提高系統的可靠性。

ARM11系列處理器所提供的引擎除用于智能手機領域,還廣泛用于消費類、家庭和嵌入式應用領域。該處理器的功耗非常低,提供的性能范圍為小面積設計中的350MHz到速度優化設計中的1GHz(45nm和65nm)。ARM11處理器軟件可以與以前所有ARM處理器兼容,并引入了用于多媒體處理的32位SIMD、用于提高操作系統上下文切換性能的物理標記高速緩存、強制實施硬件安全性的TrustZone以及針對實時應用的緊密耦合內存。

ARM1136J-S發布于2003年,是針對高性能和高能效的應用而設計的。ARM1136J-S是第一個執行ARMv6架構指令的處理器,它集成了一條具有獨立load-store和算術流水線的8級流水線。ARMv6指令包含了針對媒體處理的單指令多數據流(SIMD)擴展,采用特殊的設計以改善視頻處理性能。ARM1136JF-S適合進行快速浮點運算,它在ARM1136J-S的基礎上增加了向量浮點單元。

德州儀器OMAP2系列處理器采用了ARM1136架構,其中TIOMAP2420能管理130~400萬像素的攝像頭和QVGA(240×320)分辨率的屏幕,支持藍牙、紅外和高速USB傳輸,兼容A-GPS定位功能,可利用WLAN功能無線上網,支持第三方SD、MMC存儲卡擴展,并可使用SDI/O設備,能處理400萬甚至更高像素的靜態圖片,能夠記錄30幀/秒的VGA(640×480)像素動態有聲視頻文件,能提供接近Hi-Fi級的3D環繞音效,支持TV-OUT輸出功能,每秒可以計算200萬個多邊形。該系列處理器的代表產品有諾基亞N82、N93、N95等。

高通驍龍SnapdragonS1是針對當今大眾市場的智能手機所開發的處理器。該處理器最高主頻可達1?GHz,是全球首款達到1?GHz主頻的移動單核產品,采用了65?nm工藝并集成Adreno200圖形處理器(GPU),采用ARM11架構的處理器型號有MSM7627/7227(主頻為600~800?MHz)和MSM7625/7225(主頻為528?MHz)。

TegraAPX2500芯片采用65?nm制程工藝,核心頻率為750?MHz,并集成256?KB的L2緩存。芯片內建GeForce核心,支持OpenGLES2.0和Direct3DMobile標準。APX2500屬于ARM11MPCore架構,其低耗電設計,使移動電話可以長時間播放音樂或高清影片。此外,它支持720p的MPEG-4與H264/MPEG-4AVC的解碼。輸出方面,它支持HDMI1.2和雙顯示輸出。之后推出的TegraAPX2600在APX2500基礎上增強了對NAND閃存的支持。2009年在微軟推出的ZuneHD中使用了TegraAPX2600芯片。

1.3.1ARMCortex-A5系列產品

ARM公司在經典處理器ARM11以后的產品改用Cortex命名,并分成A、R和M三類,旨在為不同的市場提供服務。

Cortex系列屬于ARMv7架構,這是ARM公司最新的指令集架構。ARMv7架構定義了三大分工明確的系列:“A”系列,面向尖端的基于虛擬內存的操作系統和用戶應用;“R”系列,針對實時系統;“M”系列,針對微控制器。由于應用領域不同,基于ARMv7架構的Cortex處理器系列所采用的技術也不相同,基于ARMv7A的稱為Cortex-A系列,基于ARMv7R的稱為Cortex-R系列,基于ARMv7M的稱為Cortex-M系列。

Cortex-A5是Cortex-A家族中最低端的處理器,其特點是功耗較低,單位功耗的效能很高,性能優于ARM9和ARM11,適合應用在千元級的低端產品市場。

Cortex-A5內部核心數目可選(1~4核),同時與Cortex-A8一樣在內部使用了TrustZone安全技術以及NEON多媒體處理引擎,并能與Cortex-A8/A9處理器實現完全的應用兼容。采用四核配置時,SOC芯片內部還可搭配MailGPU或由用戶按需求配用PowerVRMBX/SGXGPU。Cortex-A5處理器和Cortex-A8與Cortex-A9一樣基于ARMv7架構,采用40?nm低功耗制程技術制作,默認工作電壓為1.1?V,單核核心頻率為480?MHz,四核核心頻率可達1?GHz,含緩存的核心面積最小僅1?mm2,一級緩存容量最大64?KB,功耗/頻率比參數為12?mW/MHz。

1.3.2ARMCortex-A8系列產品

ARMCortex-A8處理器的速率可以在600?MHz~1?GHz的范圍內調節,能夠滿足那些需要工作在300?mW以下的功耗優化的移動設備的要求;并能滿足那些需要2000DhrystoneMIPS的性能優化的消費類應用的要求。

Cortex-A8處理器是ARM的第一款超標量處理器,具有提高代碼密度和性能的技術,用于多媒體和信號處理的NEON技術,用于高效地支持預編譯和即時編譯Java及其他字節碼語言的Jazelle®,以及運行時間編譯目標(RCT)技術。Cortex-A8處理器采用65?nm制程工藝制作,核心頻率為650?MHz(65?nmLP工藝)/1.1?GHz(65?nmGP工藝),內建二級緩存,二級緩存最大容量為1?MB,一級緩存最大為64?KB,功耗/頻率比參數為0.59/0.45?mW/MHz。

TIOMAP3系列處理器采用了ARMCortex-A8架構,可提供比基于ARM11的處理器多至3倍的性能增益,同時使得3G手持終端具有可與筆記本電腦媲美的功能以及先進的娛樂功能。作為業界第一個采用65nmCMOS工藝設計的應用處理器,OMAP3430在降低內核電壓和功耗的同時,比以前的OMAP處理器系列具有更高的工作頻率。OMAP3430的代表產品為摩托羅拉里程碑、XT711、三星I8910、諾基亞N900、PalmPre等。可以運行在800?MHz的處理器OMAP3440的代表產品則為摩托羅拉XT720、Archos5等。

三星蜂鳥(hummingbird)核心同樣是在Cortex-A8基礎上進行修改并增強的一款核心,采用這款核心的代表產品便是三星S5PC110/S5PV210和蘋果A4核心。而hummingbird核心也正是三星和蘋果合作研發而來的。其實測性能較其他普通A8核心的CPU有了成倍的增長。

三星S5PC110/S5PV210可以說是世界上最強的Cortex-A8架構方案芯片,它在原Cortex-A8的基礎上進行了大幅度的優化,在性能上也獲得了大幅度的增長,基本上能夠達到同等架構的CPU效能的1倍以上。采用該處理器的機型有三星I9000等。

蘋果iPhone4和蘋果iPad以及iTouch4都采用了和三星S5PC110處理器相近的A4處理器,不過蘋果作了更多的優化,尤其是蘋果A4將負責視頻硬解的VXD370改成了VXD375,CPU和內存的直連也令PowerVR535的實際表現要超越三星S5PC110的PowerVR540處理器。但歸根結底,蘋果A4處理器還是一個基于ARMCortex-A8核心的高性能處理器。1.3.3ARMCortex-A9系列產品

Cortex-A9是性能很高的ARM處理器,可實現受到廣泛支持的ARMv7體系結構的豐富功能。Cortex-A9處理器的設計旨在打造最先進的、高效率的、長度動態可變的、多指令執行超標量體系結構,憑借范圍廣泛的消費類、網絡、企業和移動應用中的前沿產品所需的功能,它可以提供史無前例的高性能和高能效。

Cortex-A9微體系結構既可用于可伸縮的多核處理器(Cortex-A9MPCore多核處理器),也可用于更傳統的處理器(Cortex-A9單核處理器)。可伸縮的多核處理器和單核處理器支持16、32或64?KB4路關聯的L1高速緩存配置,對于可選的L2高速緩存控制器,最多支持8?MB的L2高速緩存配置,它們具有極高的靈活性,均適用于特定應用領域和市場。

2011年推出的OMAP4430是德州儀器公司的首個雙核處理器型號,采用雙核心ARMCortex-A9MP架構,相比Cortex-A8內核整體提升了1.5倍的性能。OMAP4430在同級雙核處理器中被喻為性能最優秀的處理器,擁有Tegra2沒有的NEON模塊,擁有比E4210更小的發熱量,擁有比MSM8260更優秀的構架,所以有“怪獸級”雙核處理器之稱。

OMAP4430的代表產品有LGOptimus3D,摩托羅拉里程碑3、XT883,三星I9100G,黑莓PlayBook等。

Tegra?3雖然名為“四核”,但是實際上內部包含了5個CPU核心,其中一個被稱為“CompanionCPUcore”協核心。NVIDIA將這種架構稱為vSMP(VariableSymmetricMultiprocessing,可變對稱多處理)。Tegra3中的5個CPU核心均為Cortex-A9架構。不過,其中四個主要核心最高可支持1.4?GHz主頻,而最后一個協核心最高頻率僅500MHz。1.3.4ARMCortex-A15系列產品

在Cortex-A9雙核處理器初見端倪之后,ARM再次給大家帶來驚喜,那就是ARM可能會推出一款四核芯片,處理速度最快能夠達到2.5?GHz。在已上市的智能手機芯片當中,Cortex-A15可能是目前主頻最高的雙核芯片。這款芯片除了將手機CPU運行速度提升至2.5?GHz以外,還可以支持超過4?GB的內存,能力相當驚人,畢竟如此強勁的芯片只有在更加強悍的硬件、軟件的支持下,才能夠正常地發揮作用。

ARMCortex-A15MPCore處理器提供前所未有的處理功能,與低功耗特性相結合,在ARM的各種新市場和現有市場上成就了卓越的產品,這些市場包括移動計算、高端數字家電、服務器和無線基礎結構。

Cortex-A15MPCore處理器是Cortex-A系列處理器的最新成員,它在應用方面與所有其他獲得高度贊譽的Cortex-A處理器完全兼容,這樣,就可以利用成熟的開發平臺和軟件體系,包括Android、AdobeFlashPlayer、JavaPlatformStandardEdition(JavaSE)、JavaFX、Linux、MicrosoftWindowsEmbedded、Symbian和Ubuntu以及700多個ARMConnectedCommunity成員。這些成員提供應用軟件、硬件和軟件開發工具、中間件以及SOC設計服務。

1.4ARM處理器的架構

1.體系結構

在傳統復雜指令集(ComplexInstructionSetComputer,CISC)各種指令中,大約有20%的指令會被反復使用,占整個程序代碼的80%左右。而余下的指令卻不經常使用,在程序設計中只占20%。

而在精簡指令集各種指令中,結構優先選取使用頻率最高的簡單指令,避免復雜指令,將指令長度固定,指令格式和尋址方式種類減少,以控制邏輯為主,不用或少用微碼控制等指令。

2.寄存器結構

ARM處理器共有37個寄存器,被分為若干個組(BANK),這些寄存器包括:

(1)31個通用寄存器,包括程序計數器(PC指針),均為32位的寄存器。

(2)6個狀態寄存器,用以標識CPU的工作狀態及程序的運行狀態,均為32位,只使用了其中的一部分。

3.指令結構

ARM微處理器的較新體系結構中支持兩種指令集:ARM指令集和Thumb指令集。其中,ARM指令為32位長度,Thumb指令為16位長度。Thumb指令集為ARM指令集的功能子集,但與等價的ARM代碼相比較,可節省30%~40%以上的存儲空間,同時具備32位代碼的所有優點。

4.RISC體系結構的特點

(1)采用固定長度的指令格式,指令歸整、簡單,基本尋址方式有2~3種。

(2)使用單周期指令,便于流水線操作執行。

(3)大量使用寄存器,數據處理指令只對寄存器進行操作,只有加載/存儲指令可以訪問存儲器,以提高指令的執行效率。

(4)所有的指令都可根據前面的執行結果決定是否被執行,從而提高指令的執行效率。

(5)可用加載/存儲指令批量傳輸數據,以提高數據的傳輸效率。

(6)可在一條數據處理指令中同時完成邏輯處理和移位處理。

(7)在循環處理中使用地址的自動增減來提高運行效率。

5.ARM微處理器的工作狀態

從編程角度看,ARM微處理器的工作狀態一般有兩種,并可在兩種狀態之間切換。第一種為ARM狀態,此時處理器執行32位的字對齊的ARM指令。在ARM狀態下,當操作數寄存器的狀態位為0時,執行BX指令時可以使微處理器從Thumb狀態切換到ARM狀態。此外,在處理器進行異常處理時,把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執行程序,也可以使處理器切換到ARM狀態。第二種為Thumb狀態,此時處理器執行16位的、半字對齊的Thumb指令。在Thumb狀態下,當操作數寄存器的狀態位(位0)為1時,可以采用執行BX指令的方法,使微處理器從ARM狀態切換到Thumb狀態。此外,當處理器在Thumb狀態下發生異常(如IRQ、FIQ、Undef、Abort、SWI等)時,當進行異常處理返回時自動切換到Thumb狀態。

6.高效的系統總線

在ARM嵌入式系統中,處理器沒有采用DSP(數字信號處理器)架構中的多級流水線機制,而是采用了一組專門針對ARM內核的片上系統(SOC)開發的總線規范,即AMBA(AdvancedMicrocontrollerBusArchitecture)。

該總線規范由ARM公司設計,獨立于ARM微處理器的制程工藝技術。在該總線規范中,定義了以下三種可供用戶組合使用的不同類型的總線:

(1)?AHB(AdvancedHigh-PerformanceBus)。該類型的總線支持多種數據傳輸方式,以及多個總線主設備之間的數據傳輸,適用于高性能和高時鐘頻率的系統模塊,如CPU處理器、片上存儲器、DMA設備、DSP以及其他協同處理器等。

(2)?ASB(AdvancedSystemBus)。該類型總線同樣也適用于高性能的系統模塊。在不需要使用AHB的場合,用戶也可以選擇ASB作為系統總線。

(3)?APB(AdvancedPeripheralBus)。該類型總線的主要特點是結構簡單、低速、功耗極低。該總線主要適用于低功耗、對實時性要求不高的外部設備,如對汽車門窗鎖的控

制等。

7.ARM的工作模式

(1)用戶模式:ARM處理器正常的程序執行狀態。

(2)快速中斷模式:用于高速數據傳輸或通道處理,當觸發快速中斷時進入此模式。

(3)外部中斷模式:用于通用的中斷處理,當觸發外部中斷時進入此模式。

(4)管理模式:操作系統使用的保護模式,在系統復位或者執行軟件中斷指令時進入此模式。

(5)數據訪問終止模式:當數據或指令預取終止時進入此模式,可用于虛擬存儲及存儲保護。

(6)系統模式:運行具有特權的操作系統任務。

(7)未定義指令中止模式:當未定義的指令執行時進入該模式,可用于支持硬件協處理器的軟件仿真。

1.5STM32系列ARM處理器的特點與性能

1.ST超低功耗ARMCortex-M3內核處理器

STM32L系列產品基于超低功耗的ARMCortex-M3處理器內核,采用意法半導體獨有的兩大節能技術——130?nm專用低泄漏電流制造工藝和優化的節能架構,提供業界領先的節能性能。該系列屬于意法半導體陣容強大的32位STM32微控制器產品家族。該產品家族共有180余款產品,全系列產品共用大部分引腳、軟件和外設,優異的兼容性為開發人員帶來最大的設計靈活性。

STM32L系列新增低功耗運行和低功耗睡眠兩個低功耗模式,通過利用超低功耗的穩壓器和振蕩器,微控制器可大幅度降低低頻下的工作功耗。穩壓器不依賴電源電壓即可滿足電流要求。STM32L還提供動態電壓升降功能,這是一項成功應用多年的節能技術,可進一步降低芯片在中低頻下運行時的內部工作電壓。在正常運行模式下,閃存的電流消耗最低為230?mA/MHz,STM32L的功耗/性能比最低為185?mA/DMIPS。此外,STM32L電路的設計目的是以低電壓實現高性能,有效延長電池供電設備的充電間隔。片上模擬功能的最低工作電源電壓為1.8?V。數字功能的最低工作電源電壓為1.65?V。在電池電壓降低時,可以延長電池供電設備的工作時間。

增強型系列時鐘頻率可達到72?MHz,是同類產品中性能最高的;基本型時鐘頻率為36?MHz,以16位產品的價格得到比16位產品大幅提升的性能,是32位產品用戶的最佳選擇。兩個系列都內置32~128?KB的閃存,不同之處是SRAM的最大容量和外設接口的組合各異。時鐘頻率為72?MHz時,從閃存執行代碼,STM32功耗為36?mA,是32位市場上功耗最低的產品,相當于0.5?mA/MHz。

2.ST超低功耗ARMCortex-M0內核處理器

STM32F0系列產品基于超低功耗的ARMCortex-M0處理器內核,整合增強的技術和功能,瞄準超低成本預算的應用。該系列微控制器縮小了采用8位和16位微控制器的設備與采用32位微控制器的設備之間的性能差距,能夠在經濟型用戶終端產品上實現先進且復雜的功能。

3.STM32系列處理器的性能

(1)存儲器:片上集成32~512?KB的Flash存儲器,6~64?KB的SRAM存儲器。

(2)時鐘、復位和電源管理:2.0~3.6?V的電源供電和I/O接口的驅動電壓;POR、PDR和可編程的電壓探測器(PVD);4~16?MHz的晶振;內嵌出廠前調校的8?MHzRC振蕩電路;內部40?kHz的RC振蕩電路;用于CPU時鐘的PLL;帶校準,用于RTC的32?kHz的晶振。

(3)低功耗:3種低功耗模式為休眠、停止、待機模式,還具有為RTC和備份寄存器供電的VBAT。

(4)調試模式:串行調試(SWD)和JTAG接口。

(5)?DMA:12通道DMA控制器,支持的外設有定時器、ADC、DAC、SPI、IIC和UART。

(6)兩個12位的?ms?級的A/D轉換器(16通道):A/D測量范圍為0~3.6V;具有雙采樣和保持能力;片上集成一個溫度傳感器。

(7)?2通道12位D/A轉換器:為STM32F103xC、STM32F103xD、STM32F103xE獨有。

(8)最多112個快速I/O端口:根據型號的不同,有26、37、51、80和112個I/O端口,所有的端口都可以映射到16個外部中斷向量;除了模擬輸入,所有的I/O端口都可以接受5?V以內的輸入。

(9)最多11個定時器:4個16位定時器,每個定時器有4個IC/OC/PWM或者脈沖計數器;兩個16位的6通道高級控制定時器,最多6個通道可用于PWM輸出;兩個看門狗定時器(獨立看門狗和窗口看門狗);1個Systick定時器,為24位倒計數器;兩個16位基本定時器,用于驅動DAC。

(10)最多13個通信接口:兩個IIC接口(SMBus/PMBus);5個USART接口(ISO7816接口、LIN、IrDA兼容、調試控制);3個SPI接口(傳輸速率為18?Mb/s),兩個和IIS復用;一個CAN接口(2.0B);一個USB2.0全速接口;一個SDIO接口。

4.STM32系列處理器的內涵

(1)集成嵌入式Flash和SRAM存儲器的ARMCortex-M3內核。與8/16位設備相比,ARMCortex-M332位RISC處理器提供了更高的代碼效率。STM32F103xx微控制器帶有一個嵌入式的ARM核,可以兼容所有的ARM工具和軟件。

(2)嵌入式Flash存儲器和RAM存儲器。內置多達512?KB的嵌入式Flash,可用于存儲程序和數據。多達64?KB的嵌入式RAM可以以CPU的時鐘速度進行讀寫(無等待狀態)。

(3)嵌套矢量中斷控制器(NVIC)。該控制器可以處理43個可屏蔽中斷通道(不包括Cortex-M3的16根中斷線),提供16個中斷優先級。緊密耦合的NVIC實現了更低的中斷處理延遲,直接向內核傳遞中斷入口向量表地址,緊密耦合的NVIC內核接口,允許中斷提前處理,即對后到的更高優先級的中斷進行處理,支持尾鏈,自動保存處理器狀態,中斷入口在中斷退出時自動恢復,不需要指令干預。

(4)外部中斷/事件控制器(EXTI)。外部中斷/事件控制器由用于19條產生中斷/事件請求的邊沿探測器線組成。每條線可以被單獨配置用于選擇觸發事件(上升沿或下降沿,或者兩者都可以),也可以被單獨屏蔽。由一個掛起寄存器來維護中斷請求的狀態。當外部線上出現長度超過內部APB2時鐘周期的脈沖時,EXTI能夠探測到。有多達112個GPIO連接到16個外部中斷線。

(5)時鐘和啟動。在啟動的時候首先要進行系統時鐘的選擇,但在復位的時候只能選用內部8?MHz的晶振為CPU時鐘。復位后可以選擇外部4~16?MHz的時鐘,并且會被CPU判定是否選擇成功。在這期間,控制器被禁止軟件中斷。同時,如果有需要(如碰到被選擇的晶振失敗),內部PLL時鐘也可管理使用。在時鐘管理中,通過多個預比較器來配置AHB頻率,包括高速APB(APB2)和低速APB(APB1)。高速APB最高的頻率為72?MHz,低速APB最高的頻率為36?MHz。

(6)?Boot模式。在啟動的時候,Boot引腳被用來在3種Boot選項中選擇一種:從用戶Flash導入、從系統存儲器導入和從SRAM導入。Boot導入程序位于系統存儲器,用于通過USART1重新對Flash存儲器編程。

(7)電源供電方案。有三種:VDD,電壓范圍為2.0~3.6?V,外部電源通過VDD引腳提供,用于I/O和內部調壓器;VSSA和VDDA,電壓范圍為2.0~3.6?V,外部模擬電壓輸入,用于ADC、復位模塊、RC和PLL,在VDD范圍之內(ADC被限制在2.4?V),VSSA和VDDA必須相應連接到VSS和VDD;VBAT,電壓范圍為1.8~3.6?V,當VDD無效時為RTC,外部32?kHz晶振和備份寄存器供電(通過電源切換實現)。

(8)電源管理。設備有一個完整的上電復位(POR)和掉電復位(PDR)電路。這條電路一直有效,用于確保從2?V啟動或者掉到2?V的時候進行一些必要的操作。當VDD低于一個特定的下限VPOR/PDR時,不需要外部復位電路,設備也可以保持在復位模式。設備特有一個嵌入的可編程電壓探測器(PVD),用于檢測VDD,并且和VPVD限值比較,當VDD低于VPVD或者VDD大于VPVD時會產生一個中斷。中斷服務程序可以產生一個警告信息或者將MCU置為一個安全狀態。PVD由軟件使能。

(9)電壓調節。調壓器有3種運行模式:主(MR)、低功耗(LPR)和掉電。MR用在傳統意義上的調節模式(運行模式),LPR用在停止模式,掉電用在待機模式。調壓器輸出為高阻時,核心電路掉電,包括零消耗(寄存器和SRAM的內容不會丟失)。

(10)低功耗模式。STM32F103xx支持3種低功耗模式,從而在低功耗、短啟動時間和可用喚醒源之間達到一個最好的平衡點。這三種模式是:

休眠模式,只有CPU停止工作,所有外設繼續運行,在中斷/事件發生時喚醒CPU。

停止模式,允許以最小的功耗來保持SRAM和寄存器的內容。1.8?V區域的時鐘都停止,PLL、HSI和HSERC振蕩器被禁能,調壓器也被置為正常或者低功耗模式。設備可以通過外部中斷線從停止模式被喚醒。外部中斷源可以是16個外部中斷線之一、PVD輸出或者TRC警告。

待機模式,追求最少的功耗,內部調壓器被關閉,這樣1.8?V區域斷電。PLL、HSI和HSERC振蕩器也被關閉。在進入待機模式之后,除了備份寄存器和待機電路外,SRAM和寄存器的內容也會丟失。當外部復位(NRST引腳)、IWDG復位、WKUP引腳出現上升沿或者TRC警告發生時,設備退出待機模式。進入停止模式或者待機模式時,TRC、IWDG和相關的時鐘源不會停止。

5.STM32互連型處理器的特點

STM32互連型系列產品分為兩個型號:STM32F105和STM32F107。STM32F105具有USB和CAN2.0接口。

STM32F107在USB和CAN2.0接口基礎上增加了以太網10/100MAC模塊。片上集成的以太網MAC支持MII和RMII,因此,實現一個完整的以太網收發器只需一個外部PHY芯片。只使用一個25?MHz晶振即可給整個微控制器提供時鐘頻率,包括以太網和USB外設接口。微控制器還能產生一個25?MHz或50?MHz的時鐘輸出,驅動外部以太網PHY層芯片,從而為客戶節省一個附加晶振。

音頻功能方面,新系列微控制器提供兩個I2S音頻接口,支持主機和從機兩種模式,既可用作輸入又可用作輸出,分辨率為16?bit或32?bit。音頻采樣頻率從8?kHz到96?kHz。利用新系列微控制器強大的處理性能,開發人員可以用軟件實現音頻編解碼器,從而消除對外部組件的需求。把U盤插入微控制器的USB接口,可以現場升級軟件;也可以通過以太網下載代碼進行軟件升級。這個功能可簡化大型系統網絡(如遠程控制器或銷售終端設備)的管理和維護工作。

6.較短的開發周期

ARM嵌入式系統的開發周期完全是由ARM的商業模式決定的。ARM公司將成熟的ARM技術直接授權給其他合作芯片設計廠商,在很大程度上縮短了ARM嵌入式產品的開發周期,而這對于芯片設計廠商而言也是一個巨大的優勢。

1.6ARM處理器系統的開發要點

通常,ARM處理器系統是將硬件和軟件合理地結合起來,構成一個完整的系統裝置,從而完成特定功能或任務。該系統工作在與外界發生數據交換或無人干預的情況下,用以進行實時的測控。其中,軟件是用以實現有關功能的“思想或靈魂”;硬件是保證這種工作進程的“平臺或介質”。

ARM處理器系統的設計與硬件提供的支持(包括開發工具、手段、環境)和軟件技術的發展緊密相關。應用選擇先進的硬件技術和好的硬件開發平臺,不但可以獲得所需的性能,而且還能縮短開發周期、降低成本、提高可靠性。軟件的設計也離不開硬件的支持(特別是處理器的性能)。多功能的硬件可以提高軟件開發效率,保證軟件的質量。而軟件設計技術和開發手段,也可以充分發揮硬件的作用,提高系統的整體性能。在保證系統性能的前提下,ARM處理器系統的設計要綜合考慮硬件和軟件的任務分工(包括考慮用硬件代替軟件,或用軟件置換硬件)。因此,硬件和軟件的協同設計,在嵌入式應用開發中占有重要地位。

與傳統的51、AVR、430等單片機相比,ARM處理器的整體性能和數據處理能力有了大幅提升。與之相應地,ARM嵌入式系統設計的復雜度和難度也有所提升,與傳統的單片機設計方法也有著很大不同。

ARM嵌入式系統的開發可以分為“基于ARM內核的芯片設計”和“基于ARMSOC的開發應用”。本教材主要討論有關“STM32ARM芯片的開發應用”,不涉及ARM芯片的設計。

1.熟悉ARM處理器系統開發過程

ARM處理器程序的開發,不同于通用計算機平臺上應用軟件的開發,在ARM處理器系統程序的開發過程中具有很多特點和硬件問題,其中最重要的一點就是嵌入式軟件代碼和系統硬件的獨立性。

由于嵌入式系統的層次結構和自身的靈活性、多樣性,各個層次之間缺乏統一的接口標準,甚至每個嵌入式系統都不一樣。這樣就給上層的嵌入式軟件設計人員在嵌入式軟件代碼設計的過程中帶來比較大的困難。軟件設計人員必須建立在對底層硬件設計充分了解的基礎上,才能設計出符合ARM處理器系統要求的應用層軟件代碼。

為了簡化開發流程,提高開發效率,用戶可以在應用與驅動(API)接口上設計一些相對統一的接口函數,這樣就可以在一定程度上規范應用層嵌入式軟件設計的標準,同時方便應用程序跨平臺復用和移植。

2.熟悉開發工具環境中的庫函數

對于ARM開發工具環境里所提供的庫函數,用戶需要對其功能、參數、結構、調用函數等有比較清楚的了解,其中最重要的三方面問題是:

(1)考慮硬件對庫函數的支持。

(2)符合目標系統上的存儲器資源分布。

(3)應用程序運行環境的初始化。

3.結構化程序設計

結構化程序設計不僅在許多高級語言中應用,而且其基本結構同樣適用于ARM處理器的程序設計。結構化程序設計的目的是使程序易讀、易查、易調試,并提高編制程序的效率。在結構化程序設計中不用嚴格限制使用轉移語句。結構化程序設計的一條基本原則是每個程序模塊只能有一個入口、一個出口。這樣一來,各個程序模塊可以單獨設計,然后用最小的接口組合起來,控制明確地從一個程序模塊轉移到下一個模塊,使程序的調試、修改或維護都要容易得多。大的復雜程序可由這些具有一個入口和一個出口的簡單結構組成。

實踐證明:結構化程序設計具有許多優點,但也有缺點。如利用結構化程序設計的程序,其速度較慢,占用的存儲器較多,使某些任務難于處理等。

4.熟悉ARM處理器的調試操作

ARM處理器系統不可避免地會涉及對輸入/輸出設備的操作,在嵌入式調試環境下,所有的標準C庫函數都是有效且有其默認行為的。一般情況下,部分目標系統硬件所不能支持的操作,用戶可以通過相應的調試工具來完成。

但是最終嵌入式系統的運行是需要完全脫離調試工具獨立運行的,所以在程序移植的過程中,用戶需要對這些庫函數的運行機制有比較清楚的了解。特別是在系統出現故障甚至邏輯錯誤的時候,需要用戶能夠以最短的時間來排査、解決問題。

1.7如何學習ARM處理器課程

學習ARM處理器(或單片機)課程不能用傳統的方法,因為ARM處理器課程是一項非常重視動手實踐的課程。從傳統的處理器課程學習方法來看,教材和教學均是以處理器的結構原理為主線,從ARM處理器的硬件結構到指令,再到軟件編程,然后介紹處理器系統的擴展和各種外圍器件的應用,最后再講一些實例。按照這種方法,學習的都是一些枯燥的理論知識,沒有開發平臺,沒有動手實踐,學生和廣大ARM處理器的初學者普遍感到抽象、神秘和難學。特別是對沒有模擬和數字電路知識的初學者來說,要理解ARM處理器(或單片機)的內部結構,理解那么多細節和術語,實在不易。

那么,怎樣學習ARM處理器課程呢?作者根據多年的教學經驗,提出了一套全新的學習方法。該方法以實踐為基礎,并以ARM處理器學習實踐板為一個學習開發平臺,打破原有界限,不管硬件結構、指令、編程的先后順序,而是將各部分內容分解成一個個知識點,融合在各實例程序之中并加以組合,用C語言(或C++)編程方法提供參考的源程序,讓初學者在領略到高級語言編程風格的同時還會結合ARM處理器實踐板(平臺)一步步學習ARM硬件系統。當完成第一次實踐操作以后,初學者就能對“神秘”的ARM處理器(或單片機)有一個清楚的認識;當完成第二、三次實踐操作以后,就能自己動手(模仿性地)編出自己的程序,對ARM處理器有很高的學習興趣(這一步很重要)。接下來配合教學,通過實踐把所有實驗全部完成,初學者就能初步掌握ARM處理器(或單片機)的原理和應用方法了。即便只完成部分實驗,初學者也能掌握ARM處理器(或單片機)的開發過程,即已經入門了。可以說,這種方法是學習ARM處理器(或單片機)課程的一條捷徑,ARM處理器學習實踐板就是打開處理器世界的金鑰匙。

對于自學

溫馨提示

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

評論

0/150

提交評論