你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32经验分享 第2章 嵌入式基础知识

[复制链接]
STMCU小助手 发布时间:2022-8-29 22:12
1.1 嵌入式产品实例分析1 B5 b, N& D9 S) x3 z9 S) U1 x7 P0 t
嵌入式产品都是围绕应用设计软/硬件,应用的需求直接决定嵌入式处理器的选择。比如简单的智能产品,通常选择8位的单片机(MCU);复杂的智能产品,通常选择32位,甚至64位的MPU;更多的时候,常常MCU和MPU搭配,各自发挥各自的作用。
8 G' p, Z5 i0 Z" `. M/ A
: Y: c) E2 j' ~9 ~: \0 o1 L. i1.1.1 实例一:智能台灯
% ^- k+ r% v; f/ x该台灯首发价格为399元,月销上万,可以说是一款月流水千万级的产品。相较于传统台灯,主要增加了亮度、色温调节和手机控制,身价也涨了几倍,该智能台灯如图 2.1.1 所示,功能如下:9 P, I7 j, ^7 O% |+ c
# I5 X& r* d7 s" \3 d( f
1) 可以根据外部光照情况,自动调整台灯亮度、色温;
; |9 z" H5 k: x$ Y
- ~/ }2 H$ c8 x# i  b2) 可以手动调节台灯亮度、色温;, ~! z; ^4 F! Z+ ~! o& @  ^# ^

- l; z$ _( B# n2 t& w3) 一键切换到读写场景模式和阅屏场景模式;. r1 V+ r; K# `( a/ c" m" S* k
1 A+ A9 d9 \7 W/ B3 U  s. }* U
4)  支持番茄时钟,每隔25分钟,灯光提醒用户休息;
4 U; m3 n  D4 f, d; y8 A- ~% i1 ^& n0 J+ i+ m
5)  支持手机连接,通过手机或手机语音控制;' }- `) \$ e7 T) e3 H8 g. B' H5 o3 U
574KQC2Q@2E2SF]VQF8ER.png

& [0 N# ]( E* \3 I8 F$ }
' a8 c0 ^6 ]1 D4 S) n
图 2.1.1 智能台灯实物图

. \2 D( v2 X, p# i. |该智能台灯的底座为控制面板,拆解该底座即可看到内部电路结构,如图 2.1.2 所示。可以看到里面主要有两个芯片,根据芯片上面的丝印标识可知,一个是RTL8710B,一个是SN8F5828FC。
+ T, P8 O/ ^+ |- v5 `6 _
  E$ @$ j4 w5 ^4 s/ d' Y+ }5 X0 z
IU}A70JBHU3SG%[[6@_KPBO.png

5 E) t2 e  t; P
5 a" X7 S% K4 X; l% x4 w  X4 Z
图 2.1.2 智能台灯底座拆解

$ \2 F9 p) _% p/ F- g1 {+ K从互联网搜索“RTL8710B”可知,该模块是一个高集成度低功耗Wi-Fi连接解决方案,里面是一颗瑞昱(Realtek)生产的ARM-Cortex M3架构的32位MCU——RTL8710B。该模块封装好了Wi-Fi协议,用户只需要通过SPI/SDI、I2C或UART与模块连接,即可控制Wi-Fi收发数据。
- _* _1 r5 i: d0 t" V5 w3 v# M0 K- i2 ^+ l2 X
从互联网搜索“SN8F5828”可知,该芯片是松翰(Sonix)生产的一款8051架构的8位MCU,通过下载该MCU的芯片手册可知,该MCU有多达14个PWM通道,可用于控制LED灯的亮度,另外还有UART和I2C,可用于与其它模块通信。
# n! V! o1 n7 d0 J  C4 j8 u4 R5 Q9 T3 E# s* w/ V
根据以上分析,大致猜测该智能台灯的整体设计框图如图 2.1.3 所示。7 k7 w% R$ B. m0 Q
' a" d7 L0 u; B6 f* Y5 z$ r
{)``{T{BL8GYV6WHZGQC[OE.png

; A4 D) d, E4 {" O3 o& d& v
6 K4 R7 L, y; U/ b+ W0 T$ r
图 2.1.3 智能台灯系统整体设计框图
& k  v- S" Z/ ~2 ]; ~: f6 ]
光照传感器会随着外界光照情况变化自身阻值,主控MCU通过ADC获取电压变化,即可得知外部光照变化,控制PWM输出修改占空比,调整亮度和色温;触摸按键按下后,会让主控MCU的GPIO引脚电平产生变化,MCU程序读取GPIO电平获知按键操作,进而控制PWM输出修改占空比,调整亮度和色温;主控MCU先控制Wi-Fi模块连接到互联网,与云端连接,手机APP的按键操作或语音输入转换成对应控制指令发送给云端,云端将指令发送给Wi-Fi模块,再通过UART接口发送给主控MCU,主控MCU解析指令后,控制PWM输出修改占空比,调整亮度和色温;用户通过按键设置为番茄时钟模式,主控MCU则利用自身定时器计算时间,当为25分钟时,控制PWM输出修改占空比,调整亮度和色温。
3 Y* K: Q/ W8 G0 v0 z) p4 U6 x9 [  h. S5 X6 a

5 h0 L. c: t( p( t8 t1 r" T) a1.1.2 实例二:智能手环

' p: h5 F2 d4 f  L3 `/ O该手环首发价格为299元,作为近几年的热门智能产品,销量可观。如今智能手环主打健康检测,功能全面,因此需要的传感器也越来越多。加上功耗和尺寸的限制,手环的主板集成度越来越高,足以媲美手机内部。该智能手环和内部结构如图 2.1.4 所示,主要功能如下:
5 R" j8 f2 `5 A) ]$ A- v# o5 |& T/ Q% B1 s0 V5 T6 D: c" w
1) 彩色IPS触摸屏,显示时间、健康信息、设置闹钟;6 }8 H" V7 r) ^/ [: u

- |8 Z, C6 b, x, U( H2) 闹钟、消息震动提醒;
! S9 n( r1 l! {# [7 v; f; K
8 }" B* ]) ~; K' \1 E3) 记录跑步数据;
( T' U) |8 Z8 {0 I9 a
" G8 T* }7 m2 V- k4) 测量当前心率;8 g9 I1 \' L5 J( c9 w
/ C8 o& c3 E5 D" n( I6 q" {1 J$ I0 J
5) NFC刷公交、地铁;3 z7 G5 ~6 F( y* u; I# a* [
: t! J4 N( }- a7 L/ A/ O
6) 蓝牙连接手机,进行系统升级或接收手机消息;* j$ o1 m: R, o

% {" G/ ]0 P8 M4 Z6 d
%UED6M5ZKH)T7H)@4@(}G.png

# I: a7 u. }. I' s7 u* j4 K9 J6 h/ A- S' f) I
图 2.1.4 智能手环外观和内部电路
( w: R. V! U2 K$ X8 y0 E$ M
可以看到该智能手环内部芯片非常多,根据上面的丝印可知芯片型号,再搜索对应型号可知每个芯片的作用,这里整理如下。
8 z$ v$ V  }: u8 q- Q& r1 B/ _7 L# Z  s
STM32L496VG:STMicroelectronics公司产品,ARM Cortex-M4架构的32位MCU,主频可达80 MHz,这里作为整个系统的主控;! P' @3 z( Z8 G: L; @* |+ F3 @# G

9 c% X# S! K# q+ A; p; u5 qPN80T:NXP和Garmin联合出品,一款面向可穿戴设备的安全便捷的NFC移动支付芯片,接口为SPI或I2C;
9 y4 L# L, e6 o) j! ?. C( ~+ ^- P: L- V7 @( Z+ d
DA14580:Dialog公司产品,一款ARM Cortex-M0架构的32位低功耗的蓝牙芯片,接口为UART、SPI或I2C;
: p! z$ S0 Z4 K* z
# A1 q, n& J  Q9 @" s/ DMAX14745K:Maxim公司产品,一款面向低功耗的可穿戴设备的电池充电管理解决方案芯片,接口为I2C;! l2 C- M1 _6 l4 x: Q! q4 ?
. [% g( u% a( i
AFE4410:TI公司产品,一款用于心率检测的芯片,接口为SPI或I2C;
2 k6 J8 ~6 O& l; P0 K5 g% q
3 U3 F  @2 J1 D0 L0 g. d# pl  IQS620:Azoteq公司产品,一款用于接近感应芯片,可检测手环是否佩戴上,接口为I2C;
: D) }- J3 A3 J  z' N/ z0 Y+ G+ M8 A4 x7 n0 d! T5 |) ^$ p
LIS3DH:STMicroelectronics公司产品,一款超低功耗的高性能三轴线性加速度计,可检测当前手环的运动状态,接口为SPI或I2C;
2 S* g  |! h" b% B) I1 ~4 e. Q: `9 u7 @4 _
GD25LQ64CWIG:GigaDevice司产品,一款64M的SPI接口Flash,可用于存储手环的主题数据包、图片数据等;" u# u9 h, o) T

* H7 V+ L& E+ o! I/ z* @根据以上分析,大致猜测该智能手环的整体设计框图如图 2.1.5 所示。( \- Z; N  l! c. F/ C. ~
6 c" i# k3 H& F" D$ s
NOJE0D0IO7W$R9S(]@`L5%X.png
/ i3 T# p" D; o5 f( X
: m. D  u" ]- ^$ \( t
图 2.1.5 智能手环系统整体设计框图

: c. s8 `2 A% `前面智能台灯,整体框架比较简单,一般MCU运行裸机即可完成任务。智能手环整体框架就比较复杂了,一般都运行有操作系统RTOS。主控STM32L496VG接收来自蓝牙、NFC、三轴加速度计、接近感应传感器、心率传感器和屏幕触摸的数据,通过特地算法整合后,在OLED图形化的展示给用户,与用户之间进行交互。4 t' Q. y/ ]" c: R0 j5 E

+ H5 y3 ^. C7 ?& B1 l; ?: ^0 O* T7 O) H* N3 b
1.1.3 实例三:电视盒子
& m( C+ M9 p1 L( x: q! j# [如今家庭电视也朝智能发展,传统电视加上电视盒子,摇身一变为智能电视。目前市面上的电视盒子种类繁多,但其基本功能还是一致的,基本功能如下:
8 {8 x0 m: y; @4 ]6 }" {5 G, Z5 H! q  E5 p
1) 高性能的处理器、大存储空间,安装应用程序,播放高清视频;! P1 S1 Y( F& u6 J+ J% ]! E, k
: W8 ?1 {% ^0 r& r* m
2) 支持有线或无线连接网络,实现在线播放;& u1 T  d% J% i% a8 _) A1 }* N- m) h

. \  u$ [# u( e2 q3) 支持HDMI或AV输出音视频;
1 T! X- ~3 T0 }; I2 O; K% A" C  e+ w# ~& Q/ T
4) 支持USB接口;5 i9 G. Z* ?0 \) A- D

" T/ h0 z# g. A# C9 U5) 支持红外遥控;
1 A$ _# G& Y( N+ g# C- b
: I) l5 G: @! Y0 u' Z这里拆解某电视盒子,如图 2.1.6 所示内部结构,主要的芯片有四个,整理如下。
; D1 B+ ?* o4 U  ~: \7 h
) U$ F2 m3 i3 ~  f% R7 G- _Hi3798:华为公司产品,ARM Cortex-A53架构的64位4核MPU,主频高达2.0GHz,高性能多核GPU Mali T720,拥有强大的视频、音频编解码,拥有一个HDMI 2.0接口、两个千兆网口接口、一个USB 2.0接口、两个USB 3.0接口,一个IR红外接收接口、两个SDIO 3.0接口、多个I2C接口等,图中被散热器挡住;
: ?# A1 o: W! ^5 ~' [- q! T$ ]
8 D  C  k0 _0 ]# j; ^, p- KD2516ECMDXGJD:Kingston公司产品,为嵌入式设计的低功耗DRAM,单个256MB,这里有两颗,总计512MB;" m  b/ G; K, F  O0 O5 }- h% v

7 t2 l' \8 i+ ~- {; t+ p. ?SDINBDG4-8G:Sandisk公司产品,高可靠耐用的eMMC闪存芯片,容量为8GB;4 B( f% ]# R1 E* a# |/ G0 [

  G7 V% L3 X, `( k2 X& WRTL8822BS:Realtek产品,支持2.4G/5G的双频WiFi&Bluetooth模块,接口为SDIO,图中被屏蔽罩挡住;. r  n/ O" @& [( r, l0 ~- H4 y& z
0 D% H' x/ z3 o( l, `6 C! }! }+ t
_F]SD8K32~@X[Q~DM$J{37P.png
' k6 R! O1 H! x1 ?3 A
/ K: H- P( q' ]. t5 e3 `5 D
图 2.1.6 电视盒子内部结构

- Y4 I, n5 {, R' r% V* ]- Q根据内部结构,猜测该电视盒子的整体设计框图如图 2.1.7 所示。: V; W! @/ M: ?: c3 f2 g

" \2 x2 I" l" g+ W( p
K{1L(PLLB4HBTTUO19`ML8D.png

0 [8 T5 c( L2 x" X! c7 \2 ?6 A6 [: k
图 2.1.7 电视盒子系统整体设计框图

% B6 ?, ?3 Q, m, w% ]2 T# g 电视盒子的整体框图比较简单,但其难度不低,一般运行Linux/Android系统,无论是软件复杂度还是硬件复杂度,都比一般的MCU项目复杂。MPU性能强大,接口繁多,像有线网口、HDMI接口、AV接口、USB接口都直接支持,这些接口MCU一般都没有。除此之外,MPU项目都外接RAM和Flash,根据项目需求选择合适大小,大小也远超MCU项目。6 `9 h' \1 F0 ?

4 m7 }$ V- x( y1 i5 _2 K" C. Q: `" ]8 u9 d$ ^  \  I* {% h+ v
5 [  k2 [# ]$ P  o
【总结】
& q& F, V0 J# `/ {8 f* a8 [  z9 Q9 l; `7 V
以上三个嵌入式产品实例,代表了嵌入式的三个方向。第一个是无操作系统的MCU项目,第二个是运行RTOS的MCU项目,第三个是运行Linux/Android的MPU项目,本手册主要涉及MCU,也就是前两个项目。读者理解了它们的共性,也就理解了什么是嵌入式系统。7 p1 ?0 u9 U1 {' {
2 u  i% g& }7 j( M
1) 以应用为中心,以计算机技术为基础,软件/硬件可裁剪,实现应用需要的功能;$ X" C# A9 A; P6 w8 B
+ L# E! j) e/ f' K2 M
2) 对功能、可靠性、成本、体积、功耗有一定的要求;0 a: m* h% z0 t2 P3 m+ n: Z% @2 _
8 `8 j4 p- x4 @
3) 实现对其它设备进行控制、监视或管理的功能;
$ N2 ?1 A2 R. Y( X$ X
9 e5 v( u, V: {  [4) 简单的说,除了通用计算机(读者使用的电脑)和部分服务器外的一切计算机系统,都是嵌入式系统;
7 o& k/ V7 O9 Z0 m; {- N# \. x" o7 u
8 C' x5 N- M9 M/ Y+ }, G3 G2 I1.2 ARM与STM32的关系3 O0 J7 q4 u! i; U
1.2.1 ARM介绍

: ^8 m( {" g$ e& d) C  U, p1978年,奥地利籍物理学博士Hermann Hauser,和他朋友,一位英国工程师Chris Curry,共同创建了一家名为“Cambridge Processor Unit,CPU”的公司,中文字面意思就是“剑桥处理器单元”,主要从事研发当地电子仪器设备的业务,比如街头游戏机之类的。
: J4 g, K1 j: k! z. S5 r2 W9 x5 j& }3 ~: ]+ p
1979年,在经营逐渐进入正规后,原来的公司名不怎么合适了,那个年代喜欢找个吉祥物作为公司名字,比如APPle公司。这俩就以橡子为吉祥物,取名为“Acorn Computer”,中文字面意思就是“橡果电脑”。
8 h- `4 y- f/ B4 v
7 o. o/ @3 g/ ~# q1981年,也许是改了公司名字,运气就来了,这一年,公司接到一个大单。英国广播公司BBC,计划在整个英国播放一套电脑普及的教育节目,希望Acron公司可以生产一套配套的电脑,之后英国政府还会海量采购电脑,在各个学校普及。
( \6 V% o% }4 y( v) [% G& f) e, k3 [1 X. Z5 I
接下这个大单后,Acron公司就开始研发产品了。当时处理器正从8位向16位过渡,他们就去找了美国国家半导体和摩托罗拉公司生产的16位处理器。评估后发现,这些处理器执行上有点慢,中断的响应时间有点长,还有就是太贵,一台电脑才卖500英镑,处理器成本就要100英镑。于是又把目标转向当时如日中天的Intel,希望对方提供一些16位80286处理器的设计资料和样品,然而Intel根本就不理他们。3 P2 p& S3 D. x

2 j" i6 z% \& T$ I最后,Acorn公司没办法,临时采用了便宜的MOS科技生产的8位6502处理器,勉强研发出符合要求的个人电脑BBC Micro。绝处逢生的Acorn公司发现处理器受制于人,为了后面长久的发展,于是决定自己研发处理器。
1 B8 b8 {7 m: q5 y5 j' r2 \7 W0 e& X
Acorn公司的研发人员从美国加州大学伯克利分校,找到了一个关于新型处理器的研究——简化指令集。在此基础上,历时4年的艰苦奋斗,于1985年完成了微处理器的设计,以后的BBC Micro,都用这颗新处理器。对于这块芯片,Acorn公司给它命名为“Acorn RISC Machine,ARM”,中文字面意思就是“橡果精简指令集机器”,也就是ARM的第一次出现。4 M$ @6 L3 A% ?5 r) ?% u
5 ]: w: _! m# z
这里插讲一下简化指令集(Reduced Instruction Set Computer,RISC),与之相对应的就是复杂指令集(Complex Instruction Set Computer,CISC)。早期的处理器都是CISC架构(比如前面Intel处理器),随著时间推移,有越来越多的指令集加入。但是后来人们发现,整个指令集中,只有约20%的指令常常会被使用到,大约占了整个程序内容的80%,而剩余80%的指令,只占了整个程序内容的20%(典型的二八原则)。于是,1979年美国加州大学伯克利分校的DAVid Patterson教授(前面提到的新型处理器研究的作者),提出了RISC的想法,主张硬件专心加速常用的指令,不常用的指令则利用常用的指令去组合。8 r' B% s4 v  C
% v; w6 c2 h2 c8 T; |* ~
就在同一年,1985年10月,英特尔发布了80386,Acorn公司的ARM芯片被吊打。80386采用CISC技术,所有指令都支持,也就性能更好,但设计成本也高、功耗也大。Acorn公司的ARM芯片采用RISI技术,只支持常用指令,其它指令需要常用指令去组合,性能也就差一些,但成本低、功耗低、研发快。Acorn公司也不傻,性能比不过,就突出成本低,功耗低的优势,总有要求成本低、功耗低,性能要求不高的场景,于是就往我们现在所见的嵌入式方向发展。
+ b- {9 K3 L6 G; r- T+ X
! u4 h7 A/ X, ^+ L) r, [8 g) y1990年,Acorn公司和APPle公司合作,成立新公司“Advanced RISC Machines,ARM”,中文字面意思就是“高级精简指令集机器”,这就是现在大家常说的ARM公司。
4 \; r' W' _/ Q: D6 U8 \% P6 L: H. ?& v% _" R9 u. G  b( j1 Q6 N
成立新公司后的几年,ARM公司业绩平平,危机四起。于是ARM决定改变他们的产品策略,他们不再生产芯片,转而以授权的方式,将芯片设计方案转给其它公司。正是ARM的这种授权模式,极大地降低了自身的研发成本和研发风险。它以风险共担、利益共享的模式,形成了一个以ARM为核心的生态圈,使得低成本创新成为可能。
: m$ ?6 P# H8 g+ d. n3 `
/ E; K! Y. E# y, k- e随后,德州仪器(Texas Instruments,TI)、意法半导体(STMicroelectronics,ST)、恩智浦半导体(NXP Semiconductors,NXP)等半导体芯片厂商,相继购买ARM授权,然后根据自身行业需求,设计不同的外设接口的芯片。; N  H: I: K8 B
8 X- p" t* r9 a3 \3 w; j/ d
{M4AN_E{GF4H[P006TP5${I.png

( [4 H7 e& q. N7 r; A+ x( e) q% {: w5 R9 P( B8 b
图 2.2.1 ARM公司发展史

4 b: U( `& ?) M: ]由上总结,ARM具有以下三种含义:
# k0 Z5 r" o3 s+ `+ h: h& p
4 S6 i( L; Q0 i5 n0 ?1) ARM是一家全球半导体行业技术领先的公司,主要业务是设计RISC嵌入式处理器;4 V) E* w0 y0 h+ N* [
; b( W  Z; H. x" c
2) ARM是一类微处理器芯片或产品的统称,即所有采用ARM公司提供方案开发的RISC处理器;
4 D8 Z8 p6 I- @: f! Y$ H
) e. i- p7 w& U' G  H, S7 p3) ARM是一项技术的名称,即采用RISC的处理器体系结构;7 ^7 \" t* W5 t0 Q: q2 ~- t$ g
1 J( c+ M0 D5 v$ w
5 N  ^$ H" ^* f4 S
从1985年发布第一个ARM处理器开始,ARM公司不断升级迭代,加入新的指令系统、寄存器组、功能特性,发展出不同架构。早期的经典ARM处理器,架构命名规则比较混乱,现在这些处理器基本不常见了,这里就不展开介绍。从ARMv7开始,采用Cortex命名,将整个处理器分为三大类,如图 2.2.2 所示。/ n# c9 c. m( e  ^6 W8 ]
4 ?+ a) D3 g& t0 U/ T
4OA4PM_I1AR[PVOYWB2P)HT.png
5 S9 y: s: Y7 U2 t

: z; B: I% U9 C, M: f. z& y
图 2.2.2 ARM处理器系列
, S- _/ l6 G* r' M# z. [
1)  ARM Cortex-A:应用程序系列。A表示应用处理器(APPlication Processor),该系列有内存管理单元(Memory Management Uint,MMU),实现虚拟内存,让每个用户进程都拥有自己独立的地址空间,这是现代多用户多进程操作系统(比如Linux、VxWorks)所必须的。该系列适用于高端消费电子领域,比如智能手机、平板电脑、智能电视、路由器等;
1 K5 I& ?" h# b1 u; C! U3 u4 d4 n" f4 j) l4 [9 @# N7 G
2)  ARM Cortex-R:实时控制系列。R表示实时控制(Real Time Controller),该系列适用于高性能、高实时性应用,比如硬盘/固态驱动控制器、企业网络设备、消费电子领域的蓝光播放器、汽车领域的安全气囊等;
) J! Y2 F0 U3 L! N* u1 ]% O2 y: ^) }& u: v" K. `- e, L
3)  ARM Cortex-M:微控制器系列。M表示微控制处理器(Microcontroller Processors),该系列适用于低功耗、高性能且对成本敏感的产品,比如家电产品、物联网、无人机等;4 N1 i% L0 `( Q5 |% J4 I$ @
! v' ?% F( ~2 k& _4 S- k! Y0 n' u
针对不同的应用场景和需求,每个系列还会再细分,比如ARM Cortex-M就再分为ARM Cortex-M0、ARM Cortex-M3、ARM Cortex-M4等,区别如表 2.2.1 所示。2 s6 q  q) H1 H/ s

" h) o7 L) S) C  G
UDHS_$Q}C5L7V120329CLUM.png
( }% ^" O) v  Y# ~& X- c8 l0 S
4 p4 r6 T  {% F/ }
表 2.2.1 Cortex-M系列处理器区别

+ [$ X  Y( N; z8 r  U( E! _6 W- ~) x6 U6 ?) R& F; W. W+ e( E

% H0 P' {% P- n( R$ F1.2.2 STM32介绍* v0 }0 m/ h1 Q  T; a) ?
在2004年,ARM公司推出新一代Cortex内核后,ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器,同时提供基于库的开发模式,加快用户研发周期。STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。( I/ v" Z) Q2 d
+ }- J2 K- [) ?5 N% y# U8 L
STM32如今产品系列非常丰富,主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核系列MPU,如图 2.2.3 所示。按应用特性分类,可分为无线WB/WL系列、超低功耗L0/L1/L3/L5系列、主流G0/G4/F0/F1/F3系列、高性能F2/F4/F7/H7系列、全新的MP1系列。
4 Y) d( {( ^" [, j
4 j4 D2 ^# C2 z1 e3 w
W9$RQ3%`)Z3V2]_OP9]]FCE.png
. S+ }* ~# k  }

0 T% U; L$ D) ^9 U" c7 H% b( E
图 2.2.3 STM32系列产品(2020.06)
5 K  v( X0 v7 O' A
STM32的处理器种类众多,通过了解STM32的命令规范,可以了解整个STM32家族产品,也方便以后芯片选型,STM32 MCU系列命名规则如图 2.2.4 所示。2 g/ {8 A: E$ n7 v

6 P5 p% r! T+ z6 D* |
JCPVH[GX_7G[HK~LGL%2(QD.png

9 p5 \2 v) U* ~- I* F  u! Y! l& {( w7 G, \! a7 D
图 2.2.4 STM32芯片命名规则(仅适用于MCU)

- g' o' [2 i% ?& t4 [; f- a
: l6 `& l$ T/ T: A' K
) h6 S$ X8 b+ Y- ^0 p2 L7 n4 B4 P& D以STM32F103C8T6为例,解析STM32芯片命名规范如表 2.2.2 所示。- O3 |0 B8 B* ?
. F1 T, o$ G. u* ~+ n+ D2 B
)7QEJM(34SCSM~SCK[8HZYW.png

% R( o, Y1 x# D; Q: Z
5 q+ Z5 x0 s& Z: x
表 2.2.2 STM32F103C8T6各部分含义
" C9 j6 w' N9 y; S9 M' L

. v- B) e1 A( \+ u" g; D% j# T' w6 `+ b! S
【总结】; J' Y1 n6 }) [# P, U' v: k' ]: h* B, k
- w' {0 G) `/ ?& q, r+ I, T. B. v8 ]
ARM公司售卖Cortex-M系列的授权,意法半导体(STMicroelectronics,ST)购买了该授权,生产了一些列STM32产品,这些使用ARM技术的处理器,都习惯称为ARM处理器,其中STM32F103C8T6就作为了本手册配套开发板的处理器。
% i/ l) C3 z  k% u) f8 P  J: W( p. C8 v8 o; v4 K

% i1 H7 ?+ U  Z( g4 _1.3 常见处理器概念

$ Z( A. u1 C6 ~# c, {8 _8 J前文中多次出现了MCU、MPU、DSP、FPGA等嵌入式处理器概念,很多初学者可能比较迷惑,下面将对这些概念进行简单介绍。
$ ~4 [* S3 x. y  L; i' T& Z
! R& j  o4 ?- z0 [' X! W1.3.1 MCU
5 q! N) W1 X7 o0 z/ a微控制器 (Micro-Controller Unit,MCU),俗称单片机。之所以称之为单片机(Single Chip Microcomputer),是因为不同于其它处理器,它将CPU、RAM(随机存储器)、ROM(只读存储器)、I/O、中断系统、定时器等各种功能外设资源集中到一个芯片上。这个芯片就是一个完整的微型计算机,只需要供电或加上极少的外围电路即可工作。* j- G' q0 A! b5 W" K$ ^

7 {4 x4 A; K, M% r2 B常见的MCU有80C51系列单片机、Atmel公司的AVR系列单片机、Microchip公司的PIC系列单片机、TI公司的MSP430系列单片机、ST公司的STM32系列单片机、NXP公司的LPC1700系列单片机。/ S# _' F. [: _8 b

! q! y1 ?) B8 w3 Z. S) k7 A早期的MCU主要是8位,后面发展出16位,再到现在主流的已经是32位。此外,主频不断提高、ROM不断增大、外设不断增多,单片机的应用领域和场合越来越大。
: u/ r' ]8 k3 [3 j% R8 K2 H" |: ~+ ]7 ~0 m) L6 ^' m' [; s* o
. s  t8 W& k' d$ x1 b
1.3.2 MPU
1 ]% |3 ?: U5 S: ?5 x微处理器(Micro-Processor Unit,MPU)。类似通用计算机的CPU,主要负责处理计算,需要外加RAM、Flash、电源等电路。) E" D  u% q5 `$ j! c& [5 T
, s# w1 B" H$ ~
MCU和MPU的本质区别是因为应用场景的定位不同。MPU注重通过相对强大的运算/处理能力,执行复杂多样的大型程序,因此常需要外挂运行内存(RAM)、存储器(Flash)等。MCU注重功能较为单一、价格敏感的应用场景,不需要相对强大的运算/处理能力,更多的是对设备管理/控制,因此不需要大容量的RAM、Flash来运行大型程序,于是将RAM、Flash全集成在一起,大家也就俗称“单片机”,如图 2.3.1 所示。
6 g: I7 {( `5 t8 e0 z; G% X4 B- W2 g5 P0 P  @9 @3 `. T9 S0 f
ZE8{3_U~2WWZQU(2}8H`Y.png
5 y3 v3 }- d/ t* e+ J

1 E* `( t$ T) T+ w, _
图 2.3.1 MPU和MCU的不同结构

$ Q! O* Q- {: B& M9 j/ p: l8 g如今,随着技术的发展,市场及需求的变化,MPU和MCU的界限日趋模糊。高端的32位MCU主频越来越高,已经反超低端MPU主频,MCU也有外挂RAM和Flash的场景,依靠硬件结构去区分逐渐困难。读者可以简单的认为,嵌入式微处理器MPU,通常运行Linux、Android等非实时操作系统,应用在高端应用市场,比如智能手机、路由器等消费电子市场领域,而嵌入式微控制器MCU,常用运行裸机或实时性操作系统,应用在中、低端应用市场,比如家电控制领域、工业控制领域等。9 k( n, Z: }% N7 f! v) g

* |" b: O4 L% y+ Z3 a9 ]: P( L1 R6 A9 G3 B& {( O
1.3.3 DSP: ~/ w& S0 p( e) l# b
DSP通常有两个含义。
9 X  R6 l: V1 x  j' N
5 G6 \; T+ a* x9 t; z5 X3 W数字信号处理(Digital Signal Processing,DSP),是一门学科技术,使用数值计算的方式对信号进行加工处理的理论和技术。
1 z( M2 N2 k1 ]3 n  {; @0 p8 H% p* G& a: ]7 n
数字信号处理器(Digital Signal Processor,DSP),是一种专门用于数字信号处理领域的微处理器芯片。* b$ s9 B% x+ |. p
4 `( _# i5 L+ L0 c5 `+ j
如图 2.3.2 为TI公司的DSP芯片TMS320VC5509A。
9 S9 u! c2 y, p! @# Y. G
5 K: F+ }9 n- N$ _: A3 `
7`@cDR~N[}}_35L~E)%M8.png
; ?) u/ j$ S2 n  z

  Q: V) T6 H1 U* Y5 g4 Q
图 2.3.2 DSP芯片
+ W6 d- J6 Z$ Y" b0 }, X
. k& Z  Z0 o7 Q' G3 ~$ p( g9 h
( k; V$ ]6 U* t$ H
DSP芯片为了达到快速处理数字信号处理的目的,采用了许多特殊软硬件结构。首先是采用哈佛结构,将程序和数据分开,同时为处理器提供指令和数据。然后采用多级流水线技术,在指令周期内可以执行更多指令。加上专用的硬件乘法器、特殊的DSP指令,使得DSP芯片在计算处理上,远超同主频的MCU或MPU。! L+ S& O  G6 Y# j
1 F8 H9 J5 Q4 {( p  G8 X4 r9 E  d
DSP芯片拥有强大的数据处理能力,在数字信号处理领域,如调制/解调、数据加密/解密、图形处理、数字滤波、音频处理等计算密集型的场景广泛应用。" S' B4 N& v4 Y9 s6 p( C

# ^- E, s( C; n& M, e
5 A+ W, J% n- X. A- x- l2 N1.3.4 FPGA
7 `% Y$ w; \9 U( @$ v# u0 x  [现场可编程门阵列(Field-Programmable Gate Array,FPGA),由可编程互连连接的可配置逻辑块 (CLB) 矩阵构成的半导体器件。通俗地说,FPGA就是一个可以通过编程改变内部硬件结构,实现所需功能的芯片。前面的MCU、DSP等都是硬件资源固定,只能通过修改软件实现所需功能。而FPGA是通过硬件描述语言或其它方式修改硬件,将FPGA变为CPU或专用芯片,来实现控制或算法。因此,MCU、DSP能够实现的功能,FPGA理论上都可以实现,反之则不一定。如图 2.3.3 为Xilinx公司的FPGA芯片XC3S400A。7 p1 N4 q# u) o5 s& E
3 ]' n$ m2 a. `! f1 B
M~MN{8`V1GV57`AG%VKQOWS.png

2 v4 f& t; A* {* ]/ `1 @
7 w( h  W$ o$ Q+ X$ v& w
图 2.3.3 FPGA芯片
' O- g, ^$ a4 b- b8 F
FPGA主要有两大优势:高速和灵活。FPGA使用硬件处理数据,采用并发和流水技术,多个模块之间可以同时并行执行。FPGA可以根据现场情况配置器件功能,能够在技术和需求变化时重新配置,实现系统优化升级。% E! b0 @+ ]- s( x( r' J
3 k2 W$ Q$ q+ p" G% X
在某些通信领域,需要处理高速的通信协议,同时通信协议随时都可能修改,不适合做成专门的芯片,FPGA的高速、灵活就便成了首选。9 s; O3 T& l! e

$ h  Q$ Z! R& x* X; [虽然FPGA功能强大,但实际工程项目中,还需考虑硬件成本、开发难度和市场需求等因素。一些简单的控制场合,尽管FPGA和MCU都能胜任,但MCU价格低廉和研发简单,更划算。
! s9 ~3 G/ a6 L8 `7 d/ H# d- d6 d: V6 A5 t7 m# E7 Y8 u

  u1 l, Z4 a4 {- g9 T【总结】
2 U; S+ m9 w  x2 S; B7 V

2 n. C" ^/ _0 h1 v4 k0 h如今复杂的嵌入式系统往往是复合架构,比如“MPU+FPGA”、“MPU+DSP”、“MCU+FPGA”、“MCU+DSP”,甚至“MCU +MPU+FPGA+DSP”。控制、显示、通信一般选择MCU或MPU,通信和数据处理算法选择DSP,大量的数据处理和特定实现选择FPGA。  ?$ [& b& E! m1 \# ~( r! O
  f" E& K5 x* \  C
MCU开发需要C语言基础,然后学习各类资源、接口,再到RTOS;MPU通常运行Linux,需要Linux基础、操作系统、网络编程等知识;DSP开发需要具备数据信号处理算法的理论知识;FPGA开发需要了解高速接口或音/视处理算法等。
% b/ n, Y6 H$ l1 c  v0 h$ l, I8 n% ~& [- |5 n$ E/ l  a( n
一般来说,MCU相对比较简单,适合作为入门学习,待MCU学习完后,再结合实际情况选择深入学习方向。) R1 n2 j1 L! p
2 I2 m. v! H' [# D$ `

4 O4 {; E6 i5 |! V, C
* r( `) b! b+ O1.4 ARM开发
8 d% p4 i" J+ Y8 {9 A
1.4.1 MCU开发和MPU开发
- ^6 S& c2 u' s. J& zMCU开发就是我们常说的单片机开发,MPU通常运行嵌入式Linux,因此也称为ARM-Linux开发。MCU开发和MPU开发,也就是单片机开发和ARM-Linux开发,两者均可称为嵌入式开发,两者之间既有联系,又有区别。
# U  {& @9 C. E2 G+ Y! y" q3 R" y* ]
" a9 ~: K+ `* k' \MCU开发人员需要具备C语言、数字电子技术、模拟电子技术、微机原理等相关理论基础,还可能需要电路板绘制等专业技能。涉及电子信息工程、自动化、测量控制等相关专业。. ~  s/ Y" ?( {3 V- u5 m( A

6 Z7 G& f& u: e; N9 `1 AMCU开发主要涉及的内容包含:GPIO、UART、I2C、SPI、LCD等外设接口,时钟、中断、定时器、ADC/DAC、看门狗等内部资源,以及RTOS(FreeRTOS、RT-Thread、uCOS、LiteOS等)嵌入式实时操作系统。
6 t- c$ }' D" T0 {! ]" T( s1 E# r" d
MPU开发人员需要具备、数据结构、操作系统、计算机网络等相关理论基础。涉及计算机科学、软件工程、物联网等相关专业。
! Y' Y3 s8 E$ s3 e) r+ o. f4 J* Y% f. E" F; B- l1 K
MPU开发主要涉及的内容包含:Bootload移植、Linux内核移植、Linux设备驱动开发(GPIO、UART、I2C、SPI等)、Linux应用开发(文件I/O、多任务编程、进程间通信、网络编程、Qt界面设计等),甚至包括Android驱动、Android应用编程。3 [6 x( H1 g8 Q
4 a, g. J0 o1 `
下表 2.4.1 列举MCU开发和MPU开发的一些区别。MPU开发通常没有仿真器,也没有集成开发环境IDE工具,但MPU资源丰富,反而下载方式比MCU丰富。MCU可以使用仿真器在线调试,也可以使用串口打印调试,而MPU一般只能使用串口调试打印。MCU的启动过程比较简单,而MPU的复杂很多,就Bootloader部分就相当于一个大型MCU开发工程。两者相互补充,占据了嵌入式设备的大部分份额。; E& w# G3 I/ c, {

. M( v" y: i, d( D2 E# A
}AD46K`52R9CZ)[0HI1BB[P.png
4 a. \( A6 z1 P. t, p

/ j  ^/ |9 P& B4 C* u% D  c
表 2.4.1 MCU开发与MPU开发的区别

8 O1 \- }3 }' p. d1 a! h1 V+ s0 _+ n  @+ [( a0 c4 p

6 @. V% \9 I7 \1.4.2 开源硬件Arduino和Raspberry Pi

0 _. @# n6 Q! _! M7 f* _在开源硬件领域,Arduino和Raspberry Pi(树莓派)都是电子创意设计常用的开发平台和工具。它们使用简单的开发方式,使初学者能快速搭建其创意原型,有效降低了学习难度,缩短了开发周期。如图 2.4.1 所示,为某Arduino开发板(左)和Raspberry Pi 3开发板(右)实物图。* i5 z1 u; q9 o! [$ M  L# ]- S

* y! X/ ]- O( @6 O+ Y! m
MHZEUQONV$ZG%1%B~]M`70E.png
9 b! t, l5 v% y. z* D
* u$ H1 Y" C4 X+ Y
图 2.4.1 某Arduino开发板(左)和Raspberry Pi 3开发板(右)实物图
% e4 u3 Q3 I# x
Arduino是一款基于微控制器(MCU)的开发板,它可以运行一些相对比较简单的应用程序,成本低廉,适合用于与传感器、外围电路进行控制和通信。* V0 `! k* l7 c! i$ E) O
; x; e$ u  p" O. r6 j: A0 J
Raspberry Pi是一款基于微处理器(MPU)的开发板,可以看作是一台小型计算机,板载RAM、HDMI接口、USB接口、音频接口、网络接口等。通常运行发行版Linux操作系统,可以运行功能更丰富的应用程序,适合用于一些需要较多运算和功能的项目,比如游戏虚拟机、网页服务器、机器人、家庭智能控制系统等。3 N- Y% u; b4 m9 K" K

+ Y$ M$ q% _. a/ ^' h  d
: i$ L7 F5 f5 a; n6 q+ b& S
# \0 U$ i- d3 n: J& Q( [7 W【总结】

7 j, r8 j! q7 d* e1 {4 F+ o% y1 |' x8 l  ]" t* h6 B2 a
MCU开发和MPU的开发模式,差异还是比较大,读者在以后的实际开发中,再慢慢感受理解,这里了解即可。7 }" S, z6 K; V" h0 [7 ~  S

$ t5 H9 H1 W5 P2 I2 y1 k8 Y开源硬件面向的群体主要还是电子爱好者,帮助他们无需深入了解相关知识的情况下,快速验证自己的创意想法。对于嵌入式开发人员,Arduino过于简单,Raspberry Pi底层不开源,都不适合深入研究,开发人员应选一款采用常见主控芯片设计的开发板进行学习、研究。
, W0 Q8 e& ^3 F, B; K6 B; ?/ \" q8 X, U
作者:攻城狮子黄 ) p2 f' ?* Q! w* R9 i2 k
6 s' }* S; M& ~1 o& z
0 `  B. [; e+ J8 j* i  ?
赞 收藏 评论0 发布时间:2022-8-29 22:12

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版