- 嵌入式技術與應用開發項目教程(STM32版)
- 郭志勇
- 4144字
- 2020-01-16 14:07:20
1.3 認識Arm-STM32
1.3.1 嵌入式系統
1. 嵌入式系統定義
嵌入式系統(Embedded system)是一種完全嵌入受控器件內部,為特定應用而設計的專用計算機系統。根據IEEE(國際電氣和電子工程師協會)的定義:嵌入式系統是控制、監視或輔助設備、機器或用于工廠運作的設備。
目前,國內普遍認同的嵌入式系統定義是:以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統。
嵌入式系統與通用計算機系統的本質區別在于系統的應用不同,嵌入式系統是將一個計算機系統嵌入到對象系統中。這個對象可能是龐大的機器,也可能是小巧的手持設備,用戶并不關心這個計算機系統的存在。
在理解嵌入式系統的定義時,讀者不要將嵌入式系統與嵌入式設備相混淆。嵌入式設備是指內部有嵌入式系統的產品、設備。例如,內含嵌入式系統的家用電器、儀器儀表、工控單元、機器人、手機等。
2. 嵌入式系統組成
根據嵌入式系統的定義可知,嵌入式系統是一種專用的計算機系統,作為裝置或設備的一部分,具有嵌入性、專用性與計算機系統3個基本要素。只要滿足這3個要素的計算機系統,都可稱為嵌入式系統。
嵌入式系統一般是由嵌入式處理器、存儲器、輸入輸出和軟件(嵌入式設備的應用軟件和操作系統是緊密結合的)等4部分組成。嵌入式系統與計算機系統的區別如表1-2所示。
表1-2 嵌入式系統與計算機系統的區別

3. 嵌入式系統特點
嵌入式系統是面向用戶、面向產品、面向應用的,與應用緊密結合,具有很強的專用性,必須結合實際系統需求進行合理的裁減。與通用計算機系統相比,嵌入式系統具有如下幾個顯著特點。
(1)嵌入式系統面向特定應用
嵌入式系統中的CPU是專門為特定應用設計的,具有低功耗、體積小、集成度高等特點,能夠把通用CPU中許多由板卡完成的任務集成在芯片內部,從而有利于整個系統趨于小型化。
(2)軟件要求固態化存儲
固態化存儲是為了提高運行速度和系統可靠性,嵌入式系統中的軟件一般都固化在存儲器芯片中。
(3)嵌入式系統的硬件和軟件都必須具備高度可定制性
嵌入式系統必須根據應用需求對軟硬件進行裁剪以滿足應用系統的功能、可靠性、成本、體積等要求。
(4)嵌入式系統的生命周期較長
嵌入式系統和具體應用是有機結合在一起的,它的升級換代也是和具體產品同步進行的。因此,嵌入式系統產品一旦進入市場,就具有較長的生命周期。
(5)嵌入式系統開發需要開發工具和環境
嵌入式系統本身并不具備在其上進行進一步開發的能力。在設計完成以后,用戶通常也不能對其中的程序、功能進行修改,必須借助一套專用的開發工具和環境,才能進行開發。開發時往往有主機和目標機的概念,主機用于程序的開發,目標機作為最后的執行機,開發時需要交替結合進行。
1.3.2 Arm Cortex-M3處理器
嵌入式系統的核心部件是各種類型的嵌入式處理器,目前全世界的嵌入式處理器已經有超過1000多種,體系結構有30多個系列。沒有一種嵌入式處理器可以主導市場,嵌入式處理器的選擇是根據具體的應用決定的。
1. Arm是什么
Arm(Advanced RISC Machines)可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術的名字。
20世紀90年代初,Advanced RISC Machines Limited公司(簡稱Arm公司)成立于英國劍橋。Arm公司是設計公司,是專門從事基于精簡指令集計算機(Reduced lnstruction Set Computer,RISC)芯片技術開發的公司,該公司設計了大量高性能、廉價、耗能低的RISC處理器,以及配套的相關技術和軟件。Arm公司既不生產芯片也不銷售芯片,主要出售芯片設計技術的授權,是知識產權(IP)供應商。
世界各大半導體生產商從Arm公司購買其設計的Arm處理器核,然后根據各自不同的應用領域,加入適當的外圍電路,從而形成自己的Arm微處理器芯片并進入市場。目前,全世界幾十家大的半導體公司都在使用Arm公司的授權,使得Arm技術獲得了更多的第三方工具、制造、軟件的支持,又使其整個系統成本降低,產品更容易進入市場,更具有競爭力。
目前,采用Arm技術知識產權核(IP核,Intellectual Property Core)的處理器,即通常所說的Arm處理器,已遍及工業控制、消費類電子產品、通信系統、網絡系統、DSP、無線移動應用等各類產品市場,在低功耗、低成本和高性能的嵌入式系統應用領域中處于領先地位。
2. Arm Cortex系列處理器
Arm Cortex系列處理器是基于Armv7架構的,分為Cortex-A、Cortex-R和Cortex-M 3類。在命名方式上,基于Armv7架構的Arm處理器已經不再沿用過去的數字命名方式,如Arm 7,Arm 9,Arm 11,而是冠以Cortex的代號。
(1)基于Armv7-A的稱為“Cortex-A系列”,主要用于高性能(Advance)場合,是針對日益增長的運行Linux、Windows CE和Symbian操作系統的消費者娛樂和無線產品所設計與實現的。
(2)基于Armv7-R的稱為“Cortex-R系列”,主要用于實時性(Real time)要求高的場合,針對需要運行實時操作系統來控制應用的系統,包括汽車電子、網絡和影像系統。
(3)基于Armv7-M的稱為“Cortex-M系列”,主要用于微控制器單片機(MCU)領域,是為那些對功耗和成本非常敏感,同時性能要求不斷增加的嵌入式應用(如微控制器系統、汽車電子與車身控制系統、各種家電、工業控制、醫療器械、玩具和無線網絡等)所設計與實現的。
3. Arm Cortex-M3處理器
Arm Cortex-M3處理器包括處理器內核、嵌套向量中斷控制器(NVIC)、存儲器保護單元、總線接口單元和跟蹤調試單元等,具有的性能如下所述。
(1)Arm Cortex-M3核使用3級流水線哈佛架構,運用分支預測、單周期乘法和硬件除法等功能,實現了1.25 DMIPS/MHz的出色運算效率。
與0.9 DMIPS/MHz的Arm 7和1.1 DMIPS/MHz的Arm 9相比,功耗僅為0.19 mW/MHz。DMIPS(Dhrystone Million Instructions executed Per Second)主要用于測算整數計算能力。
其中,MIPS(Million Instructions executed Per Second)表示每秒百萬條指令,用來計算一秒內系統的處理能力,即每秒執行了多少百萬條指令。
(2)采用專門面向C語言設計的Thumb-2指令集,最大限度地降低了匯編語言的使用。而且Thumb-2指令集允許用戶在C語言代碼層面維護和修改應用程序,使得C語言代碼部分非常易于重用。可以這么說,無須使用任何匯編語言,使得新產品的開發更易于實現,上市時間也大為縮短。
Thumb-2指令集免去了Thumb和Arm代碼的互相切換,性能得到了提高。結合非對齊數據存儲和位處理等特性,可在一個單一指令中實現讀取/修改/編寫功能,輕易以8位、16位器件所需的存儲空間實現32位的性能。
(3)單周期乘法和乘法累加指令、硬件除法。
(4)準確快速的中斷處理,永不超過12周期,最快僅6周期。內置的NVIC通過末尾連鎖,即尾鏈(Tail-chaining)技術提供了確定的、低延遲的中斷處理,并可以設置多達240個中斷,可為中斷較為集中的汽車應用領域實現可靠的操作。對于工業控制應用,存儲器保護單元(Memory Protection Unit,MPU)通過使用特權訪問模式可以實現安全操作。
(5)Flash修補和斷點單元、數據觀察點和跟蹤單元、儀器測量跟蹤宏單元和嵌入式跟蹤宏單元,為嵌入式器件提供了廉價的調試和跟蹤技術。
(6)擴展時鐘門控(Clock Gating)技術和內置3種睡眠模式,適用于低功耗的無線設計領域。
因此,Arm Cortex-M3處理器是專門為那些對成本和功耗非常敏感,但同時對性能要求又相當高的應用而設計的。憑借縮小的內核尺寸、出色的中斷延遲、集成的系統部件、靈活的硬件配置、快速的系統調試和簡易的軟件編程,Arm Cortex-M3處理器將成為廣大嵌入式系統(從復雜的片上系統到低端微控制器)的理想解決方案,基于Arm Cortex-M3處理器的系統設計可以更快地投入市場。
1.3.3 STM32系列處理器
STM32系列處理器是由ST公司以Arm Cortex-M3為內核開發生產的32位處理器,專為高性能、低成本、低功耗的嵌入式應用而設計。目前,STM32系列處理器有以下幾個不同系列。
1. STM32F101xx基本型系列
STM32F101xx基本型系列處理器使用高性能的32位Arm Cortex-M3的RISC內核,工作頻率為36 MHz,內置高速存儲器(高達128 KB的閃存和16 KB的SRAM),提供豐富的增強型外設和I/O端口(連接到兩條APB總線)。
所有型號的器件都包含1個12位的ADC和3個通用16位定時器,還包含標準的通信接口:2個I2C、2個SPI和3個USART。
2. STM32F102xx USB基本型系列
STM32F102xx USB基本型系列處理器使用高性能的32位Arm Cortex-M3 RISC內核的USB接入MCU,工作頻率為48 MHz,內置高速存儲器(高達128 KB的閃存和16KB的SRAM),提供各種外設和連接兩條APB總線的I/O端口。
所有型號的器件都包含1個12位的ADC和3個通用16位定時器,還包含標準的通信接口:2個I2C、2個SPI、1個USB和3個USART。
3. STM32F103xx增強型系列
STM32F103xx增強型系列處理器使用高性能的32位Arm Cortex-M3的RISC內核,工作頻率為72 MHz,內置高速存儲器(最高可達512 KB的閃存、64 KB的SRAM),具有豐富的增強型I/O端口和連接到兩條高性能外設總線(APB)的外設。
所有型號的器件都包含2個12位的ADC、1個高級定時器、3個通用16位定時器和1個PWM定時器,還包含標準和先進的通信接口:2個I2C(SMBus/PMBus)、2個SPI同步串行接口(18 Mbit/s)、3個USART異步串行接口(4.5 Mbit/s)、1個USB(2.0標準接口)和1個CAN。
該系列芯片按片內內存的大小可分為三大類:小容量(16 KB和32 KB)、中容量(64 KB和128 KB)、大容量(256 KB、384 KB和512 KB)。
4. STM32F105/107xx互聯型系列
STM32F105/107xx互聯型系列處理器使用高性能的32位Arm Cortex-M3的RISC內核,工作頻率為72 MHz,內置高速存儲器(最高可達256 KB的閃存、64 KB的SRAM),具有豐富的增強型I/O端口和連接到兩條高性能外設總線(APB)的外設。
所有型號的器件都包含2個12位的ADC、4個通用16位定時器,還包含標準和先進的通信接口:2個I2C(SMBus/PMBus)、3個SPI同步串行接口(18 Mbit/s)、5個USART接口、1個USB OTG全速接口和2個CAN接口。STM32F107xx系列還包括以太網接口。
STM32系列處理器具有豐富的外設配置、為低功耗應用設計的一組完整的節電模式,適用于多種應用場合。
(1)電力電子系統方面的應用;
(2)電機驅動、應用控制;
(3)醫療、手持設備;
(4)PC游戲外設、GPS平臺;
(5)編程控制器(PLC)、變頻器等工業應用;
(6)掃描儀、打印機;
(7)警報系統、視頻對講;
(8)暖氣通風、空調系統、LED條屏控制。
5. STM32F103系列產品命名規則
STM32F103系列產品是按照“STM32F103XXYY”格式來命名的,具體含義如下。
(1)產品系列:STM32是基于Arm Cortex-M3核設計的32位微控制器。
(2)產品類型:F代表通用類型。
(3)產品子系列:101是基本型、102是USB基本型(USB全速設備)、103是增強型、105或107是互聯型。
(4)引腳數目(第一個X):T是36腳、C是48腳、R是64腳、V是100腳、Z是144腳。
(5)閃存容量(第二個X):4是16 KB、6是32 KB、8是64 KB、B是128 KB、C是256 KB、D是384 KB、E是512 KB。
(6)封裝(第一個Y):H是BGA、T是LQFP、U是VFQFPN、Y是WLCSP64。
(7)溫度范圍(第二個Y):6是工業級溫度范圍-40℃~85℃、7是工業級溫度范圍-40℃~105℃。
例如:STM32F103VCT6是基于Arm Cortex-M3核設計的32位微控制器系列、通用類型、增強型子系列、100個引腳、256 KB閃存容量,采用的是LQFP封裝、溫度范圍是-40℃~85℃。