官术网_书友最值得收藏!

第1章 ARM Cortex-M3處理器編程環(huán)境與嵌入式系統(tǒng)

1.1 單片機(jī)與ARM Cortex-M3處理器

什么是單片機(jī)

一臺能夠工作的計算機(jī)要有這樣幾個部分:CPU(Central Processing Unit,中央處理單元:進(jìn)行運(yùn)算、控制)、RAM(Random Access Memory,隨機(jī)存儲器:數(shù)據(jù)存儲)、ROM(Read Only Memory,只讀存儲器:程序存儲)、輸入/輸出設(shè)備(串行口、并行口等)。在個人計算機(jī)上這些部分被分成若干塊芯片或者插卡,安裝一個稱為主板的印制線路板上。而在單片機(jī)中,這些部分全部被做到一塊集成電路芯片中,所以就稱為單片機(jī)。

單片機(jī)的用途

與經(jīng)常使用的個人計算機(jī)、筆記本電腦相比,單片機(jī)的功能是很小的,那學(xué)它干什么呢?實際生活中并不是任何需要計算機(jī)的場合都要求計算機(jī)有很高的性能,如空調(diào)溫度的控制,冰箱溫度的控制等都不需要很復(fù)雜很高級的計算機(jī)。應(yīng)用的關(guān)鍵是看是否夠用,是否有很好的性能價格比。

單片機(jī)憑借體積小、質(zhì)量小、價格便宜等優(yōu)勢,已經(jīng)滲透到我們生活的各個領(lǐng)域:導(dǎo)彈的導(dǎo)航裝置、飛機(jī)上各種儀表的控制、工業(yè)自動化過程的實時控制和數(shù)據(jù)處理、廣泛使用的各種智能IC卡、小汽車的安全保障系統(tǒng)、錄像機(jī)、攝像機(jī)、全自動洗衣機(jī)、程控玩具、電子寵物等。更不用說自動控制領(lǐng)域的機(jī)器人、智能儀表和醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計算機(jī)應(yīng)用、嵌入式系統(tǒng)設(shè)計與智能化控制的科學(xué)家、工程師,是成為電子與嵌入式系統(tǒng)工程師必須掌握的基本技能。

嵌入式系統(tǒng)

嵌入式系統(tǒng)是指嵌入到工程對象中能夠完成特定功能的計算機(jī)系統(tǒng)。嵌入式系統(tǒng)嵌入到對象系統(tǒng)中,并在對象環(huán)境下運(yùn)行。與對象領(lǐng)域相關(guān)的操作主要是對外界物理參數(shù)進(jìn)行采集、處理,對對象實現(xiàn)控制,并與操作者進(jìn)行人機(jī)交互等。

與通用計算機(jī)系統(tǒng)相比,嵌入式系統(tǒng)有其功能的特殊要求和成本的特殊考慮,從而決定了嵌入式系統(tǒng)在高、中、低端系統(tǒng)三個層次共存的局面。在低端嵌入式系統(tǒng)中,8位單片機(jī)從20世紀(jì)70年代初期誕生至今還一直在工業(yè)生產(chǎn)和日常生活中廣泛使用。近些年,中端的16位單片機(jī)已應(yīng)用于汽車電子、工業(yè)自動化等領(lǐng)域。鑒于嵌入式應(yīng)用對象的響應(yīng)要求、嵌入式系統(tǒng)應(yīng)用的巨大市場,可以預(yù)測,8位單片機(jī)、16位單片機(jī)仍然是嵌入式應(yīng)用中的主流機(jī)型,而高端的32位單片機(jī)正逐漸進(jìn)入工業(yè)生產(chǎn)和日常生活領(lǐng)域。

ARM Cortex-M3系列處理器

ARM即Advanced RISC Machines的縮寫,既可以認(rèn)為是一個公司的名字,也可以認(rèn)為是對一類微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。1985年4月26日,第一個ARM原型在英國劍橋的Acorn計算機(jī)有限公司誕生,由美國加州San Jose VLSI技術(shù)公司制造。20世紀(jì)80年代后期,ARM很快開發(fā)成Acorn的臺式機(jī)產(chǎn)品。20世紀(jì)90年代初,ARM公司成立于英國劍橋,設(shè)計了大量高性能、廉價、耗能低的RISC(Reduced lnstruction Set Computer)處理器、相關(guān)技術(shù)及軟件。ARM公司既不生產(chǎn)芯片也不銷售芯片,它只出售芯片技術(shù)授權(quán),因此叫做Chipless公司。

世界各大半導(dǎo)體生產(chǎn)商從ARM公司購買其設(shè)計的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐罚瑥亩纬勺约旱腁RM微處理器芯片進(jìn)入市場。利用這種合伙關(guān)系,ARM很快成為許多全球性RISC標(biāo)準(zhǔn)的締造者。目前,采用ARM技術(shù)知識產(chǎn)權(quán)(Intellectual Property,IP)核的微處理器,已遍及工業(yè)控制、消費類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、DSP、無線移動應(yīng)用等各類產(chǎn)品市場,在低功耗、低成本和高性能的嵌入式系統(tǒng)應(yīng)用領(lǐng)域中處于領(lǐng)先地位。

ARMCortex系列處理器是基于ARMv7架構(gòu)的,分為Cortex-A、Cortex-R和Cortex-M三類。在命名方式上,基于ARMv7架構(gòu)的ARM處理器已經(jīng)不再延用過去的數(shù)字命名方式,如ARM7、ARM9、ARM11,而是冠以Cortex的代號。基于v7A的稱為“Cortex-A系列”,基于v7R的稱為“Cortex-R系列”,基于v7M的稱為“Cortex-M系列”。

其中,ARM Cortex-A系列主要用于高性能(Advance)場合,是針對日益增長的,運(yùn)行包括Linux、Windows CE和Symbian操作系統(tǒng)在內(nèi)的消費者娛樂和無線產(chǎn)品設(shè)計與實現(xiàn)的;ARM Cortex-R系列主要用于實時性(Real time)要求高的場合,針對的是需要運(yùn)行實時操作系統(tǒng)來進(jìn)行控制應(yīng)用的系統(tǒng),包括汽車電子、網(wǎng)絡(luò)和影像系統(tǒng);ARM Cortex-M系列則主要用于微控制器單片機(jī)(MCU)領(lǐng)域,是為那些對功耗和成本非常敏感,同時對性能要求不斷增加的嵌入式應(yīng)用(如微控制器系統(tǒng)、汽車電子與車身控制系統(tǒng)、各種家電、工業(yè)控制、醫(yī)療器械、玩具和無線網(wǎng)絡(luò)等)所設(shè)計與實現(xiàn)的。隨著在各種不同領(lǐng)域應(yīng)用需求的增加,微處理器市場也在趨于多樣化。為了適應(yīng)市場的發(fā)展變化,基于ARMv7架構(gòu)的ARM處理器系列將不斷拓展自己的應(yīng)用領(lǐng)域。

Cortex-M3是一個32位的單片機(jī)核,在傳統(tǒng)的單片機(jī)領(lǐng)域中,有一些不同于通用32位CPU應(yīng)用的要求。例如,在工控領(lǐng)域,用戶要求具有更快的中斷速度,Cortex-M3采用了搶占(Pre-emption)、尾鏈(Tail-chaining)、遲到(Late-arriving)中斷技術(shù),對中斷事件的響應(yīng)更迅速。比如,尾鏈技術(shù)完全基于硬件進(jìn)行中斷處理,最多可減少12 個時鐘周期數(shù),背對背中斷之間的延時時間、從低功耗模式喚醒時間只有個6 個時鐘周期。特別適用于汽車電子和無線通信領(lǐng)域。

ARM Cortex-M3處理器結(jié)合了多種創(chuàng)新性突破技術(shù),使得芯片供應(yīng)商可以提供超低費用的芯片。僅有33000門的M3內(nèi)核,其性能可達(dá)1.25DMIPS/MHz,如主頻為72MHz的M3處理器性能可達(dá)90DMIPS。M3處理器還集成了許多緊耦合系統(tǒng)外設(shè),合理利用了芯片空間,使系統(tǒng)能滿足下一代產(chǎn)品的控制需求。Cortex的優(yōu)勢在于低功耗、低成本、高性能的結(jié)合。

處理器性能

DMIPS(Dhrystone Million Instructions executed Per Second)主要用于測整數(shù)計算能力。其中,MIPS(Million Instructions executed Per Second),每秒百萬條指令,用來計算同一秒內(nèi)系統(tǒng)的處理能力,即每秒執(zhí)行了多少百萬條指令。D是Dhrystone的縮寫,Dhrystone是測量處理器運(yùn)算能力的最常見基準(zhǔn)程序之一,常用于處理器的整形運(yùn)算性能的測量,程序是用C語言編寫的。

Dhrystone的計量單位為每秒計算多少次Dhrystone,后來把在VAX-11/780機(jī)器上的測試結(jié)果1757 Dhrystones/s定義為1 Dhrystone MIPS(百萬條指令每秒)。DMIPS表示了在Dhrystone這樣一種測試方法下的MIPS。例如,一個處理器達(dá)到200DMIPS的性能,是指這個處理器測整數(shù)計算能力為(200×100萬)條指令/秒。

Cortex-M3處理器包括處理器內(nèi)核、嵌套向量中斷控制器(Nested Vectored Interrupt Controller,NVIC)、存儲器保護(hù)單元、總線接口單元和跟蹤調(diào)試單元等,為微控制器應(yīng)用而開發(fā)的ARM Cortex-M3擁有以下性能:

● Cortex-M3內(nèi)核使用3級流水線哈佛架構(gòu),運(yùn)用分支預(yù)測、單周期乘法和硬件除法功能實現(xiàn)了1.25DMIPS/MHz出色的運(yùn)算效率(與0.9DMIPS/MHz的ARM7和1.1DMIPS/MHz的ARM9相比),而功耗僅0.19mW/MHZ。

● 采用專門面向C語言設(shè)計的Thumb-2指令集,最大限度地降低了匯編語言的使用。而且Thumb-2指令集允許用戶在C代碼層面維護(hù)和修改應(yīng)用程序,C代碼部分非常易于重用。可以這么說,沒有必要使用任何匯編語言,這樣新產(chǎn)品的開發(fā)將更易于實現(xiàn),上市時間也大為縮短。

● Thumb-2指令集免去了Thumb和ARM代碼的互相切換,性能得到了提高。結(jié)合非對齊數(shù)據(jù)存儲和原子位處理等特性,可在一個單一指令中實現(xiàn)讀取/修改/編寫,輕易以8位、16位器件所需的存儲空間就實現(xiàn)了32位性能。

● 單周期乘法和乘法累加指令、硬件除法。

● 準(zhǔn)確快速地進(jìn)行中斷處理,不超過12周期,最快僅6周期。內(nèi)置的NVIC通過末尾連鎖,即尾鏈(Tail-chaining)技術(shù)提供了確定的、低延遲的中斷處理,并可以設(shè)置帶有多達(dá)240 個中斷,可為中斷較為集中的汽車應(yīng)用領(lǐng)域?qū)崿F(xiàn)可靠的操作。

● 對于工業(yè)控制應(yīng)用,存儲器保護(hù)單元(Memory Protection Unit,MPU)通過使用特權(quán)訪問模式可以實現(xiàn)安全操作。

● Flash修補(bǔ)和斷點(Flash Patch and Breakpoint-unit)單元、數(shù)據(jù)觀察點和跟蹤(Data Watchpoint and Trace-DWT)單元、儀器測量跟蹤宏單元(Instrumentation Trace Macrocell-ITM)和嵌入式跟蹤宏單元(Embedded Trace Macrocell- ETM)為嵌入式器件提供了廉價的調(diào)試和跟蹤技術(shù)。

● 擴(kuò)展時鐘門控技術(shù)和內(nèi)置睡眠模式適用于低功耗的無線設(shè)計領(lǐng)域,具有低功耗時鐘門控(Clock Gating)3種睡眠模式。

因此,ARM Cortex-M3處理器是專門為那些對成本和功耗非常敏感但同時對性能要求又相當(dāng)高的應(yīng)用而設(shè)計的。憑借縮小的內(nèi)核尺寸、出色的中斷延遲、集成的系統(tǒng)部件、靈活的硬件配置、快速的系統(tǒng)調(diào)試和簡易的軟件編程,Cortex-M3處理器將成為廣大嵌入式系統(tǒng)(從復(fù)雜的片上系統(tǒng)到低端微控制器)的理想解決方案,基于Cortex-M3處理器的系統(tǒng)設(shè)計可以更快地投入市場。

STM32F103系列微控制器

STM32系列微控制器是由ST意法半導(dǎo)體公司以ARM Cortex-M3為內(nèi)核開發(fā)生產(chǎn)的32位微控制器(單片機(jī)),專為高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計。分成幾個不同系列:STM32F100為“超值型”,STM32F101為“基本型”,STM32F102為“USB基本型”,STM32F103為“增強(qiáng)型”,STM32F105或107為“互聯(lián)型”,STM32L為“超低功耗型”。例如,基本型時鐘頻率為36MHz,以16位產(chǎn)品的價格得到比16位產(chǎn)品更好的性能,是16位產(chǎn)品用戶的最佳選擇;增強(qiáng)型系列時鐘頻率達(dá)到72MHz,是同類產(chǎn)品中性能最高的。這些系列都內(nèi)置16K到512K的閃存,不同的是SRAM的最大容量和外設(shè)接口的組合。STM32系列微控制器具有很高的集成度,除豐富的接口外,還內(nèi)置復(fù)位電路、低電壓檢測、調(diào)壓器、精確的RC振蕩器等。STM32系列微控制器時鐘頻率為72MHz時,從閃存執(zhí)行代碼,功耗為36mA(所有外設(shè)處于工作狀態(tài)),是32位市場上功耗最低的,相當(dāng)于0.5mA/MHz。而待機(jī)時,功耗下降到2μA。

STM32F103xx增強(qiáng)型系列使用高性能的ARM Cortex-M3 32位的RISC內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲器(最高可達(dá)512K字節(jié)的閃存和64K字節(jié)的SRAM),具有豐富的增強(qiáng)型I/O端口和連接到兩條高性能外設(shè)總線(Advanced Peripheral Bus,APB)的外設(shè)。STM32F103Vx系列都至少包含2個12位的ADC、1個高級定時器、3個通用16位定時器(具有PWM輸出功能),還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:2個I2C(SMBus/PMBus)、2個SPI同步串行接口(18兆位/秒)、3個USART異步串行接口(4.5兆位/秒的)、1個USB全速接口和一個CAN(2.0B)接口。I/O翻轉(zhuǎn)速度可達(dá)18MHz。

圖1.1是基于ARM Cortex-M3內(nèi)核的STM32F10x系列微控制器的外觀(LQFP100封裝)。表1.1是STM32F103xx增強(qiáng)型微控制器(Flash不超過128K的中小容量)各系列的外設(shè)資源。大容量的STM32F10x系列單片機(jī)外設(shè)資源和芯片編號詳細(xì)說明見附錄。

圖1.1 基于ARM Cortex-M3內(nèi)核的STM32F10x系列微控制器的外觀

表1.1 STM32F103xx增強(qiáng)型微控制器各系列的外設(shè)資源

主站蜘蛛池模板: 遵义市| 靖西县| 迁西县| 龙里县| 东宁县| 华容县| 托克逊县| 邹城市| 辽宁省| 蒙自县| 青海省| 桐乡市| 西华县| 都昌县| 长顺县| 亚东县| 陈巴尔虎旗| 达州市| 绥江县| 古蔺县| 洛阳市| 剑河县| 遂宁市| 宜州市| 祁阳县| 会宁县| 西畴县| 肇庆市| 鹤庆县| 禹城市| 江门市| 宜黄县| 霸州市| 洛隆县| 江津市| 大丰市| 左贡县| 德惠市| 九龙县| 阿拉善左旗| 札达县|