什么是嵌入式系統?
嵌入式系統通常指的是專門為某種功能設計的微型計算機系統,比如智能手表、家電控制板、汽車ECU等。
什么是嵌入式系統的IO?
IO(Input/Output,輸入/輸出)就是嵌入式系統與外部世界“交流”的通道,比如按鈕、LED燈、傳感器、蜂鳴器等。
一、IO邏輯
?IO口的基本類型
嵌入式系統的IO口一般分為兩類:
- 輸入口(Input):用來讀取外部信號,比如檢測按鈕是否按下、讀取溫度傳感器的數值等。
- 輸出口(Output):用來控制外部設備,比如點亮LED燈、驅動蜂鳴器等。
IO口的工作原理
每個IO口通常都可以配置為輸入或輸出。
以單片機(如STM32、51單片機)為例:
- 輸入模式:IO口連接到外部信號(如按鈕),單片機通過讀取該IO口的電平(高/低)來判斷外部狀態。
- 輸出模式:單片機通過設置IO口的電平(高/低),來控制外部設備(如LED燈的亮滅)。
IO口的電平
- 高電平(High):通常是接近電源電壓(如3.3V或5V)。
- 低電平(Low):通常是接近地電壓(0V)。
比如,LED燈的一個端接IO口,另一個端接地。當IO口輸出高電平時,LED燈亮;輸出低電平時,LED燈滅(具體電路可能有差異)。
二、計算機組成
計算機的組成一般分為五大部分,稱為“計算機五大部件”,它們共同協作完成計算機的各種功能。
模擬電路的網站:Circuitjs web 在線電路模擬器
1. 運算器(算術邏輯單元,ALU)
????????負責各種算術運算(加減乘除)和邏輯運算(與、或、非等)。
????????是計算機“計算能力”的核心部分。
2. 控制器(Control Unit)
????????負責指揮和協調計算機各部件的工作。
????????解釋和執行指令,控制數據流動和操作順序。
????????控制器和運算器合稱為“中央處理器”(CPU)。
3. 存儲器(Memory)
????????用于存放數據和程序。
????????包括內存(RAM,運行時存儲)和外存(硬盤、U盤等,長期存儲)。
????????沒有存儲器,計算機無法記憶和處理數據。
3.1 只讀存儲器(ROM)
- 掉電不丟失
- 存儲程序,ROM也叫程序存儲器
- 硬盤、U盤
- 讀取速度慢
3.2?隨機存取存儲器(RAM)
- 掉電丟失
- 存儲臨時變量和程序運行產生的數據
- 內存條
- 速度快
3.3 cache存儲器
????????Cache(高速緩存)是計算機中一種速度非常快但容量較小的存儲器,主要用于緩解CPU與內存(RAM)之間的速度差異,提升系統整體運行效率。
4. 輸入設備(Input Devices)
????????用于把外部信息輸入到計算機中。
????????常見的有:鍵盤、鼠標、掃描儀、攝像頭、麥克風等。
5. 輸出設備(Output Devices)
????????用于把計算機處理的結果輸出給用戶或其他設備。
????????常見的有:顯示器、打印機、音響等。
三、三級存儲結構
cache、內存、外存放在一起也被稱作三級存儲結構
1.寄存器:在CPU內部,速度最快,容量最小。
2.高速緩存(Cache):介于CPU和內存之間,速度快,容量小。
3.內存(RAM):速度較快,容量適中。
4.外存(ROM):速度慢,容量大。
四、總線
1.按照功能分為三類:
不是總線分為三類,而是總線有的功能有三種,一般是總線包含三個功能,下面的分類是概念性的東西。
?1.1數據總線(Data Bus)
作用:用來在計算機各部件之間傳輸“數據”本身。
特點:數據總線的“寬度”決定了每次能傳輸的數據位數(比如8位、16位、32位、64位)。數據總線的寬度決定了CPU和外界的數據傳送速度。
舉例:32位數據總線一次能傳輸32位(4字節)數據。
比喻:像一條可以并排行駛多輛車的馬路,車越多(位寬越大),一次能運送的數據就越多。
1.2.地址總線(Address Bus)
作用:用來傳送“地址信息”,告訴CPU要訪問內存或設備的哪個位置。
特點:地址總線的“寬度”決定了能訪問的最大內存空間。
例如:16位地址總線最大尋址64KB,32位最大尋址4GB。
比喻:像快遞單上的地址,告訴快遞員(CPU)要把東西送到哪里。
1.3.控制總線(Control Bus)
作用:用來傳遞各種“控制信號”,協調和管理數據、地址的傳輸。
特點:控制總線寬度決定了CPU對外部期間的控制能力。
常見信號:讀/寫信號、時鐘信號、中斷信號、復位信號等。
比喻:像交通信號燈和指揮員,告訴大家什么時候可以走、什么時候要停、該做什么操作。
2.DMA
定義:是一種讓外部設備可以繞過CPU,直接與內存交換數據的技術。
在沒有DMA的情況下,數據在外設(如硬盤、網卡)和內存之間的傳輸都要經過CPU,CPU需要不斷地參與搬運數據,效率低、CPU負擔重。
有了DMA,數據可以直接在外設和內存之間傳輸,CPU只需發出啟動命令,剩下的傳輸工作由DMA控制器完成,CPU可以去做別的事情,提高了效率。
五、單片機基礎
1.單片機簡介
單片機,全稱單片微型計算機(Microcontroller Unit,簡稱MCU),是一種將CPU、內存(RAM/ROM)、輸入輸出接口(I/O)、定時器/計數器、串口等功能集成在一塊芯片上的微型計算機。
2.單片機型號
一、51單片機
1. 基本介紹
51單片機?
51單片機是指以Intel 8051為核心的單片機系列,屬于8位單片機。(八位的不一定51單片機)誕生較早,結構簡單,指令系統精煉,適合入門學習和基礎控制應用。
51單片機(8051)
????????國產51單片機:STC89C51 宏晶科技 STC
????????外國51單片機:AT89C51 ATMEL
2. 主要特點
(1)8位數據總線,一次只能處理8位數據。
(2)主頻一般較低(常見為12MHz~40MHz)。
(3)片上資源有限(如RAM、ROM、I/O口數量較少)。
(4)指令集簡單,易學易用。
(5)價格低廉,資料豐富,適合初學者和簡單控制場合。
3. 典型應用
簡單的家電控制、電子玩具、計數器、定時器等。
二、32單片機(以STM32為代表)
1. 基本介紹
32單片機
32單片機通常指基于ARM?Cortex-M內核的單片機,如STM32系列。
屬于32位單片機,數據總線和寄存器寬度為32位。
32單片機(通常說的就是ARM)
????????外國32單片機:STM32?意法半導體 ST
????????國產32單片機:GD32 兆易創新 GD
2. 主要特點
(1)32位數據總線,一次能處理32位數據,運算能力強。
(2)主頻高(常見為幾十MHz到幾百MHz)。
(3)片上資源豐富(大容量RAM/Flash、豐富的I/O口、外設接口如ADC、DAC、USB、CAN、以太網等)。
(4)支持多種高級功能(如DMA、定時器、PWM、低功耗等)。
(5)性能高,適合復雜控制和數據處理。
3. 典型應用
智能家居、工業自動化、機器人、物聯網、音視頻處理、醫療設備等高要求場合。
?六、開發板\最小系統板
1.開發板
定義:開發板是為方便學習、開發和調試單片機(或其他芯片)而設計的一塊電路板。
特點:(1)?板上集成了單片機芯片、下載/調試接口、電源電路、復位電路、時鐘電路等最基本的運行環境。
(2) 通常還會帶有豐富的外設接口和模塊,比如按鍵、LED、蜂鳴器、顯示屏、串口、USB、以太網、SD卡、傳感器等。
(3)方便用戶直接進行實驗、開發和測試,無需自己焊接復雜電路。
適用人群:適合初學者、工程師、項目開發者。
2. 最小系統板
定義:最小系統板(也叫最小系統)是指讓單片機能夠正常運行所需的最基本電路,通常只包含:單片機、電源電路、晶振(時鐘電路)、復位按鍵、燒錄引腳組成
時鐘電路(晶振)
復位電路
特點:(1) 只保證單片機能“點亮”并運行程序,不帶其他外設。
(2) 體積小、結構簡單、成本低。
(3) 適合嵌入到最終產品中,或作為開發板的核心部分。
3. 區別與聯系
對比項 | 開發板 | 最小系統板 |
---|---|---|
功能 | 豐富,帶多種外設和接口 | 只包含單片機最基本運行電路 |
體積 | 較大 | 很小 |
適用場景 | 學習、開發、調試、實驗 | 產品嵌入、最基礎的運行環境 |
成本 | 較高 | 很低 |
聯系:開發板通常包含一個最小系統板,最小系統是開發板的“核心”,開發板是在最小系統基礎上擴展了更多功能和外設。
4.顯示屏
用于顯示信息的模塊,可以是液晶屏(LCD)、OLED屏、TFT屏等。顯示文字、圖像、數據等內容,是人機交互的重要部分。
5.資源擴展板
定義:用于擴展開發板的附加電路板。
特點:通常通過排針、排母、排線等方式與主開發板連接,提供更多的外設資源。
作用:讓開發版具有更多功能,便于開發復雜應用。
七、STM32
1.簡介
STM32?是意法半導體(STMicroelectronics)推出的一系列基于?ARM Cortex-M?內核的?32 位單片機(MCU,Microcontroller?Unit)。STM32 因其高性能、低功耗、豐富的片內外設和良好的生態支持,在嵌入式開發領域非常流行。
2.優勢
(1)產品型號豐富,可選擇性強;
(2)運算速度快,功耗低;
(3)處理器外設接口豐富;
(4)庫函數開發體系學習資料多,應用廣泛。
3.STM32的常見系列
(1)STM32F0/F1/F3/F4/F7/H7:主打通用、高性能應用,F1(如STM32F103)是入門和應用最廣的系列。
(2)STM32L0/L1/L4/L5/U5:主打超低功耗應用。
(3)STM32G0/G4:新一代通用和高性能系列。
(4)STM32WB/STM32WL:帶無線功能(如藍牙、LoRa)。
八、單片機命名規則
STM32U575RIT6
STM32:32位意法半導體微控制器
U:超低功耗
575:芯片型號
R:表示引腳數(64)
I:表示閃存容量為2048K=2MB
T:TQFP封裝
6:工作溫度范圍在-40度到85度
ST | 意法半導體 |
M | 微控制器 |
32 | 32位處理器 |
類型 | F 通用/基礎型 foundation G 多用途型 general-purpose L 低功耗 low power H 高性能 High performance S 簡單/標準型 Standard U超低功耗 |
系列 | 0 精簡系列 1/2/3 增強系列 4/7 高性能系列 |
子型號 | 00/01/02/03/05/07 |
引腳數量 | K/6-32腳 C/8-48腳 R-64腳 V-100腳 Z-144腳 A-168腳 I-176腳 B-208腳 N-216腳 |
存儲量 | 6 :32KB 8 : 64KB B :128KB C :256KB D :384KB E : 512KB G :1MB I : 2MB |
封裝 | U - UQFN封裝 T - TQFP封裝 |
工作溫度 | 6 - -40 ~ 85度 |
?九、ARM(CPU)體系結構
1.概念
ARM(CPU)體系結構是指ARM公司設計的一系列基于RISC(精簡指令集)理念的處理器架構。ARM架構以高效、低功耗、易于移植和高度集成著稱,廣泛應用于手機、嵌入式設備、單片機、智能家居、物聯網等領域。
2.ARM是什么
ARM公司是一家芯片知識產權(IP)供應商,它與一般的半導體公司最大的不同就是不制造芯片且不向終端用戶出售芯片,而是通過轉讓設計方案,由合作伙伴生產出各具特色的芯片。
早期經典處理器:ARM7 ARM9 ARM11
后續處理器開始以cortex命名
Cortex-X系列:
超高性能,為AI賦能,為人工智能運行提供效能
Cortex-A系列:
針對開放式操作系統的高性能處理器
應用于智能手機、數字電視、智能平板等高端運用
Cortex-R系列:
提供非常高的性能和吞吐量,同時保持精準的時序屬性和可預測的中斷延時,通常用于時序關鍵的應用中
針對實時系統、滿足實時性的控制需求
應于汽車制動系統、動力系統等
Cortex-M系列:
為單片機驅動的系統提供了低成本優化方案
應用于傳統的微控制器市場、智能傳感器、汽車周邊、物聯網設備等
ARM指令集是指ARM架構處理器所使用的機器指令集合。ARM指令集以精簡、高效、低功耗著稱,是RISC(精簡指令集計算機)理念的典型代表。
3.STM32U575采用ARM Cortex-M33內核架構
ARM Cortex-M33內核的關鍵特性:
- Armv8-M架構(CPU的架構)
- AHB-lite總線接口,哈佛總線架構
4.馮·諾依曼架構和哈佛架構
3.1. 馮·諾依曼結構(Von?Neumann Architecture)
定義:由數學家馮·諾依曼提出,是現代計算機最經典、最常見的結構。
核心特點:
(1)程序存儲器和數據存儲器共用同一存儲空間(即程序和數據都放在同一塊內存里)。
(2)程序和數據共用同一條總線(數據總線、地址總線)。
(3)指令和數據的獲取不能同時進行,需要輪流訪問內存。
優點:結構簡單,硬件實現容易,成本低。
缺點:存在“馮·諾依曼瓶頸”——指令和數據不能同時訪問,速度受限
3.2. 哈佛結構(Harvard Architecture)
定義:最早用于信號處理和嵌入式系統的計算機結構。
核心特點:
(1)程序存儲器和數據存儲器分開,各自有獨立的存儲空間。
(2)程序和數據各自有獨立的總線。
(3)指令和數據可以同時訪問,互不干擾。
優點:速度快,效率高,適合對性能要求高的場合(如DSP、部分單片機)。
缺點:硬件結構復雜,成本較高。
十、指令集(RISC和CISC)
1.概念:
指令集(Instruction Set)是指CPU能夠識別和執行的所有機器指令的集合。
在計算機體系結構中,指令集主要分為兩大類:RISC(精簡指令集)和?CISC(復雜指令集)。
2.分類
2.1?RISC(精簡指令集計算機,Reduced?Instruction?Set?Computer)
特點:
(1)指令種類少,格式統一,執行速度快。
(2)每條指令執行時間短,通常一條指令一個時鐘周期完成。
(3)依賴于軟件(編譯器)來完成復雜操作,硬件實現簡單。
(4)適合流水線和并行處理,能效比高。
代表架構:ARM、MIPS、PowerPC、RISC-V等。
應用領域:嵌入式系統、移動設備、單片機、服務器等。
2.2 CISC(復雜指令集計算機,Complex Instruction Set Computer)
特點:
(1)指令種類多,部分指令功能復雜,可以完成多步操作。
(2)指令長度不統一,執行時間不等。
(3)依賴于硬件來實現復雜操作,硬件實現復雜。
(4)適合早期內存和編譯器資源有限的環境。
代表架構:x86(Intel/AMD PC處理器)、早期的IBM?360等。
應用領域:個人電腦、服務器等。
十一、Cortex-M33的寄存器
1.通用寄存器
通用寄存器 一個寄存器存儲32位
R0-R12:13個通用寄存器。其中 R0-R7為低端寄存器,可作為16位或32 位指令操作數,R8-R12為高端寄存器,只能用作32位操作數
R13:棧指針寄存器 SP(the stack pointer),Cortex-M0 在不同物理位置上存在兩個棧指針,主棧指針 MSP(main ),進程棧指針 PSP。
在處理模式下,只能使用主堆棧,在線程模式下,可以使用主堆棧也可以使用進程堆棧。 系統上電的默認棧指針是MSP。這樣設計的目的是為了在進行模式轉換的時候,減少堆棧的保存工作。同時也可以為不同權限的工作模式設置不同的堆棧。
R14:鏈接寄存器LR(the Link Register),用于存儲子程序或者函數調用的返回地址
R15:程序計數器PC(the Program Counter register)存儲下一條將要執行的指令的地址。
2.特殊寄存器
xPSR:組合程序狀態寄存器,該寄存器由三個程序狀態寄存器組成
應用程序狀態寄存器 (APSR):保存程序計算結果的狀態標志 N負數標志 Z零標志 C進位借位標志 V溢出標志
中斷程序狀態寄存器 (IPSR):包含當前ISR(中斷服務程序)的異常編號
執行程序狀態寄存器 (EPSR):包含Thumb狀態位 ---->運行Thumb指令集