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

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

[复制链接]
STMCU小助手 发布时间:2022-8-29 22:12
1.1 嵌入式产品实例分析9 `9 m. ?' c' D8 M
嵌入式产品都是围绕应用设计软/硬件,应用的需求直接决定嵌入式处理器的选择。比如简单的智能产品,通常选择8位的单片机(MCU);复杂的智能产品,通常选择32位,甚至64位的MPU;更多的时候,常常MCU和MPU搭配,各自发挥各自的作用。
8 N- K# T, [8 t- h# q2 S. M" _2 x- `) W8 r( M& b
1.1.1 实例一:智能台灯* V, x1 M0 f' c5 V# c* k
该台灯首发价格为399元,月销上万,可以说是一款月流水千万级的产品。相较于传统台灯,主要增加了亮度、色温调节和手机控制,身价也涨了几倍,该智能台灯如图 2.1.1 所示,功能如下:. e2 b. O6 L, y
  C& {6 |5 O( `
1) 可以根据外部光照情况,自动调整台灯亮度、色温;
) b- R& g1 g7 X; W$ E1 A! f. ]! C1 T/ W4 ^( P
2) 可以手动调节台灯亮度、色温;, Y6 B% n, o2 m" j% p
" p1 m1 X7 s6 b" X% q! O
3) 一键切换到读写场景模式和阅屏场景模式;
8 b) p9 I9 B# u9 }+ m
/ t- w. C; x) H( @7 F. g6 o4)  支持番茄时钟,每隔25分钟,灯光提醒用户休息;2 ?  l* J+ D8 X+ F; W

- O. l6 x) [% F) ~5)  支持手机连接,通过手机或手机语音控制;
" L- u6 R% |; o. i( y8 @$ K! ^
574KQC2Q@2E2SF]VQF8ER.png

  v# ~  S7 V. i; t! C& z. Y( I  b! X+ E- G
图 2.1.1 智能台灯实物图

' _1 W, L* ~: {) C7 s) e/ v, z7 S该智能台灯的底座为控制面板,拆解该底座即可看到内部电路结构,如图 2.1.2 所示。可以看到里面主要有两个芯片,根据芯片上面的丝印标识可知,一个是RTL8710B,一个是SN8F5828FC。  s: _- ?3 P) ]5 Q0 l% `, V
6 f  Z: t; g1 C- ~1 l# {
IU}A70JBHU3SG%[[6@_KPBO.png
: X9 W( H9 L+ p# y4 S

% X" p" X' G3 _/ ]8 \
图 2.1.2 智能台灯底座拆解

0 R( ?+ h7 b# Y& C/ \3 l从互联网搜索“RTL8710B”可知,该模块是一个高集成度低功耗Wi-Fi连接解决方案,里面是一颗瑞昱(Realtek)生产的ARM-Cortex M3架构的32位MCU——RTL8710B。该模块封装好了Wi-Fi协议,用户只需要通过SPI/SDI、I2C或UART与模块连接,即可控制Wi-Fi收发数据。
2 S1 N0 ^4 i! k  `0 T( l7 X9 O7 J6 m# v
从互联网搜索“SN8F5828”可知,该芯片是松翰(Sonix)生产的一款8051架构的8位MCU,通过下载该MCU的芯片手册可知,该MCU有多达14个PWM通道,可用于控制LED灯的亮度,另外还有UART和I2C,可用于与其它模块通信。
! W' L" o1 h9 H* b7 C
* m2 L& J! u+ X' k根据以上分析,大致猜测该智能台灯的整体设计框图如图 2.1.3 所示。  X# i2 @( i( e! O. ^- e2 g
2 Q) V; w0 J9 k+ ?+ {. n- M! \. G) s
{)``{T{BL8GYV6WHZGQC[OE.png
% o/ d" l2 e4 S& q- I. y
, E0 S7 d" \  d& t! N9 Z. p
图 2.1.3 智能台灯系统整体设计框图
( S0 r" p" R" |/ }% G
光照传感器会随着外界光照情况变化自身阻值,主控MCU通过ADC获取电压变化,即可得知外部光照变化,控制PWM输出修改占空比,调整亮度和色温;触摸按键按下后,会让主控MCU的GPIO引脚电平产生变化,MCU程序读取GPIO电平获知按键操作,进而控制PWM输出修改占空比,调整亮度和色温;主控MCU先控制Wi-Fi模块连接到互联网,与云端连接,手机APP的按键操作或语音输入转换成对应控制指令发送给云端,云端将指令发送给Wi-Fi模块,再通过UART接口发送给主控MCU,主控MCU解析指令后,控制PWM输出修改占空比,调整亮度和色温;用户通过按键设置为番茄时钟模式,主控MCU则利用自身定时器计算时间,当为25分钟时,控制PWM输出修改占空比,调整亮度和色温。
# K! {# n$ N' ~. L, Z) ]: n0 B2 g' U& w
0 C8 s1 N  l3 Y  j0 T) o
1.1.2 实例二:智能手环

0 a; ~5 n; U5 ~; K. W. x该手环首发价格为299元,作为近几年的热门智能产品,销量可观。如今智能手环主打健康检测,功能全面,因此需要的传感器也越来越多。加上功耗和尺寸的限制,手环的主板集成度越来越高,足以媲美手机内部。该智能手环和内部结构如图 2.1.4 所示,主要功能如下:
/ v. y% p$ R. J$ s- Z) c; L
# G3 G( V6 ], d/ a# J1) 彩色IPS触摸屏,显示时间、健康信息、设置闹钟;
6 \5 n# k  l$ J) A: P( D6 `
1 g( x* m8 ]% Q! \3 z1 b+ }; ]2) 闹钟、消息震动提醒;& i8 J+ c' R8 Z. P

( r9 [) c' J+ K" c5 ?3) 记录跑步数据;4 Y* E$ _. v: l6 e
0 N/ }; q" g2 x; \
4) 测量当前心率;
/ o" B5 z- Z/ Q) P
+ R  Z+ P) {, ?, [) x5) NFC刷公交、地铁;" X1 m; G9 G  M- `0 f2 R+ O

1 \% W5 G$ l' j2 M+ F8 e3 W8 ~6) 蓝牙连接手机,进行系统升级或接收手机消息;5 N- ~. B( X4 U! Z( h1 x1 w) Y1 A

) E9 d+ @* s7 c4 b& d
%UED6M5ZKH)T7H)@4@(}G.png
( F  q7 o2 x( A8 l7 S% V! a& ^
  l" k4 S' O: h2 G
图 2.1.4 智能手环外观和内部电路
4 S2 t: p) K/ C
可以看到该智能手环内部芯片非常多,根据上面的丝印可知芯片型号,再搜索对应型号可知每个芯片的作用,这里整理如下。8 O) ]" O+ M9 @' V& e( X: ]" |
6 r; e$ H5 E/ a$ H+ P$ O
STM32L496VG:STMicroelectronics公司产品,ARM Cortex-M4架构的32位MCU,主频可达80 MHz,这里作为整个系统的主控;) Q5 @' _' B& i3 k/ ^

6 |$ f8 A- h2 t% B2 w8 t: XPN80T:NXP和Garmin联合出品,一款面向可穿戴设备的安全便捷的NFC移动支付芯片,接口为SPI或I2C;/ S# K4 y% t* p

' n! ~: D2 d1 m) [% b8 H0 hDA14580:Dialog公司产品,一款ARM Cortex-M0架构的32位低功耗的蓝牙芯片,接口为UART、SPI或I2C;
" B8 y' U' e* c, H* {* a
2 }6 T4 C- f) d5 z9 EMAX14745K:Maxim公司产品,一款面向低功耗的可穿戴设备的电池充电管理解决方案芯片,接口为I2C;
) F  z' _$ U# U/ f$ I5 u
+ [& Z, F3 H! @2 G6 f$ eAFE4410:TI公司产品,一款用于心率检测的芯片,接口为SPI或I2C;
) j8 V8 s6 M- @9 H9 `, [0 F# o5 K7 O9 ^: u% C) J8 ]0 a: s9 j
l  IQS620:Azoteq公司产品,一款用于接近感应芯片,可检测手环是否佩戴上,接口为I2C;
2 u8 m7 Q8 `5 w  n: x6 A" Y2 g
1 }: n% U7 |8 G, q  B' r4 OLIS3DH:STMicroelectronics公司产品,一款超低功耗的高性能三轴线性加速度计,可检测当前手环的运动状态,接口为SPI或I2C;
; e0 m* Z" f# E0 I+ z5 S* Z. N- ~7 K" {* Y9 }
GD25LQ64CWIG:GigaDevice司产品,一款64M的SPI接口Flash,可用于存储手环的主题数据包、图片数据等;
- O% |2 M3 c) i: ~! `5 h$ A- m  P2 a; T1 c' t
根据以上分析,大致猜测该智能手环的整体设计框图如图 2.1.5 所示。
( I2 [6 z8 M$ h- o' p1 [+ i9 i+ Q, m- M8 P4 _4 p$ \1 c
NOJE0D0IO7W$R9S(]@`L5%X.png
) U! U7 A. V9 P# |7 G. `

7 o3 v6 H( `% |& J& F4 p5 o5 V
图 2.1.5 智能手环系统整体设计框图

" H) L1 k, U+ p9 g前面智能台灯,整体框架比较简单,一般MCU运行裸机即可完成任务。智能手环整体框架就比较复杂了,一般都运行有操作系统RTOS。主控STM32L496VG接收来自蓝牙、NFC、三轴加速度计、接近感应传感器、心率传感器和屏幕触摸的数据,通过特地算法整合后,在OLED图形化的展示给用户,与用户之间进行交互。
! T" a5 O. I. T+ b2 O3 {" {. v* V( l4 U! U' m

8 j6 e$ ~& R( o6 o/ i; ~( c1.1.3 实例三:电视盒子
5 l, ?% b. N) v( r0 p' S) U! {如今家庭电视也朝智能发展,传统电视加上电视盒子,摇身一变为智能电视。目前市面上的电视盒子种类繁多,但其基本功能还是一致的,基本功能如下:8 r8 c- q% K5 w9 i! n% j+ Z

+ e0 o3 C- O+ s  I: N# f6 ~! j$ E1) 高性能的处理器、大存储空间,安装应用程序,播放高清视频;9 B6 g/ |1 C  m/ A8 N

5 W7 K& B* L" w3 G$ y. t2) 支持有线或无线连接网络,实现在线播放;$ d. ~6 v, [, q3 ]. `4 y& R

) t4 Q! D' q& q, o- ?  w. ]3) 支持HDMI或AV输出音视频;
; F' D( E8 H5 m5 r& D0 h$ m5 E' ^' V3 z& {5 v
4) 支持USB接口;
# r/ K# n* K- q/ `) K# a
5 h5 k8 ^! r8 [9 A) n! U, f; T! w5) 支持红外遥控;4 B) |* g( B% h5 x) C. u
3 P. y- u' P# I- Z
这里拆解某电视盒子,如图 2.1.6 所示内部结构,主要的芯片有四个,整理如下。
, N8 T2 y! @: U& ?" l5 I
! E; ^& y; s" a0 O7 {' G! J+ E+ X& k: jHi3798:华为公司产品,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接口等,图中被散热器挡住;3 i! v$ z5 n, U& G7 D0 [6 g  d. J0 E

/ y! M2 g. ^& W# n3 o7 \, DD2516ECMDXGJD:Kingston公司产品,为嵌入式设计的低功耗DRAM,单个256MB,这里有两颗,总计512MB;* h/ c6 K" Q) D& C$ n
  s0 H7 ?8 F! Q4 Y9 i. E, \
SDINBDG4-8G:Sandisk公司产品,高可靠耐用的eMMC闪存芯片,容量为8GB;1 l" w2 ?- J8 e% r

1 K- ~$ {( b5 oRTL8822BS:Realtek产品,支持2.4G/5G的双频WiFi&Bluetooth模块,接口为SDIO,图中被屏蔽罩挡住;
7 t9 ?' F- y6 V8 v: t  A3 ?. ^) v, v
_F]SD8K32~@X[Q~DM$J{37P.png
& N/ H7 C' {& g

" P+ m  ^6 ]. }& n( o
图 2.1.6 电视盒子内部结构

4 Z; d3 k6 f. `' c根据内部结构,猜测该电视盒子的整体设计框图如图 2.1.7 所示。& D9 w5 R7 Q! c* R' }- @

8 c* T4 K2 j2 k; \5 c# z
K{1L(PLLB4HBTTUO19`ML8D.png
4 J  F0 ]! |- S: {3 ~; F
' b/ M1 X% W, y* e  A3 ^0 _
图 2.1.7 电视盒子系统整体设计框图
/ v0 F& {  |! S2 U6 ^
电视盒子的整体框图比较简单,但其难度不低,一般运行Linux/Android系统,无论是软件复杂度还是硬件复杂度,都比一般的MCU项目复杂。MPU性能强大,接口繁多,像有线网口、HDMI接口、AV接口、USB接口都直接支持,这些接口MCU一般都没有。除此之外,MPU项目都外接RAM和Flash,根据项目需求选择合适大小,大小也远超MCU项目。
, \7 L# t% f" a) _4 Q( b1 z5 d, L
7 Y9 i/ O6 z* F; f" s

& t" p* I% N& \) `【总结】
- B+ @8 o+ b+ k5 ]: |3 P: S; _! O) O; m: e  q) a6 \! \" y" R
以上三个嵌入式产品实例,代表了嵌入式的三个方向。第一个是无操作系统的MCU项目,第二个是运行RTOS的MCU项目,第三个是运行Linux/Android的MPU项目,本手册主要涉及MCU,也就是前两个项目。读者理解了它们的共性,也就理解了什么是嵌入式系统。
7 k. I5 Q! t- F/ g  K% B. Q3 p$ F' u' h) |, Y0 a7 G
1) 以应用为中心,以计算机技术为基础,软件/硬件可裁剪,实现应用需要的功能;" N! W* r" U9 j

, Y3 a! c; e% ?( x- h2) 对功能、可靠性、成本、体积、功耗有一定的要求;' V/ N% D9 P2 H/ U

' ]( b) o) b% S$ ]- L3 j3) 实现对其它设备进行控制、监视或管理的功能;
' `% e- E# X! p1 I9 \# }5 }( q9 K; f+ h# J! H: `
4) 简单的说,除了通用计算机(读者使用的电脑)和部分服务器外的一切计算机系统,都是嵌入式系统;
: c2 v/ I& Y0 R/ q0 b2 \; Q0 f5 Y  K% c
1.2 ARM与STM32的关系
) D: Z: c! Q$ i4 X% w7 n& G1.2.1 ARM介绍

) X4 p# x8 S& u9 [1978年,奥地利籍物理学博士Hermann Hauser,和他朋友,一位英国工程师Chris Curry,共同创建了一家名为“Cambridge Processor Unit,CPU”的公司,中文字面意思就是“剑桥处理器单元”,主要从事研发当地电子仪器设备的业务,比如街头游戏机之类的。
4 o1 ?! `# v8 `* Y
' x. @( R9 p$ E) ^. b: J! m+ P1979年,在经营逐渐进入正规后,原来的公司名不怎么合适了,那个年代喜欢找个吉祥物作为公司名字,比如APPle公司。这俩就以橡子为吉祥物,取名为“Acorn Computer”,中文字面意思就是“橡果电脑”。- f3 S$ H. K. G5 U! S3 W
+ g! U5 T9 J: ?9 Y5 n2 S% `
1981年,也许是改了公司名字,运气就来了,这一年,公司接到一个大单。英国广播公司BBC,计划在整个英国播放一套电脑普及的教育节目,希望Acron公司可以生产一套配套的电脑,之后英国政府还会海量采购电脑,在各个学校普及。
4 L) [2 J6 y# F- N# p
/ k) C/ w1 `4 X+ g% ]4 H4 i接下这个大单后,Acron公司就开始研发产品了。当时处理器正从8位向16位过渡,他们就去找了美国国家半导体和摩托罗拉公司生产的16位处理器。评估后发现,这些处理器执行上有点慢,中断的响应时间有点长,还有就是太贵,一台电脑才卖500英镑,处理器成本就要100英镑。于是又把目标转向当时如日中天的Intel,希望对方提供一些16位80286处理器的设计资料和样品,然而Intel根本就不理他们。
" ?2 O/ v* d5 _; x: o3 O1 F
) b! H7 x% o9 c* ~/ X- d  ]最后,Acorn公司没办法,临时采用了便宜的MOS科技生产的8位6502处理器,勉强研发出符合要求的个人电脑BBC Micro。绝处逢生的Acorn公司发现处理器受制于人,为了后面长久的发展,于是决定自己研发处理器。
. m7 z/ u+ K, s' \  |  Y
- W' `8 n- T$ G% D" W1 L* G) ~* _Acorn公司的研发人员从美国加州大学伯克利分校,找到了一个关于新型处理器的研究——简化指令集。在此基础上,历时4年的艰苦奋斗,于1985年完成了微处理器的设计,以后的BBC Micro,都用这颗新处理器。对于这块芯片,Acorn公司给它命名为“Acorn RISC Machine,ARM”,中文字面意思就是“橡果精简指令集机器”,也就是ARM的第一次出现。! T  q1 q, @: e  X# S

4 m/ Q5 r3 y& e6 {; G这里插讲一下简化指令集(Reduced Instruction Set Computer,RISC),与之相对应的就是复杂指令集(Complex Instruction Set Computer,CISC)。早期的处理器都是CISC架构(比如前面Intel处理器),随著时间推移,有越来越多的指令集加入。但是后来人们发现,整个指令集中,只有约20%的指令常常会被使用到,大约占了整个程序内容的80%,而剩余80%的指令,只占了整个程序内容的20%(典型的二八原则)。于是,1979年美国加州大学伯克利分校的DAVid Patterson教授(前面提到的新型处理器研究的作者),提出了RISC的想法,主张硬件专心加速常用的指令,不常用的指令则利用常用的指令去组合。
/ M' j/ Z- F/ Z( O& z
  F( i2 d9 f7 L( n  r0 a就在同一年,1985年10月,英特尔发布了80386,Acorn公司的ARM芯片被吊打。80386采用CISC技术,所有指令都支持,也就性能更好,但设计成本也高、功耗也大。Acorn公司的ARM芯片采用RISI技术,只支持常用指令,其它指令需要常用指令去组合,性能也就差一些,但成本低、功耗低、研发快。Acorn公司也不傻,性能比不过,就突出成本低,功耗低的优势,总有要求成本低、功耗低,性能要求不高的场景,于是就往我们现在所见的嵌入式方向发展。( W: P% e3 s4 o! C) B5 x

8 U" a4 F7 F  ^1 C0 ]7 a) u1990年,Acorn公司和APPle公司合作,成立新公司“Advanced RISC Machines,ARM”,中文字面意思就是“高级精简指令集机器”,这就是现在大家常说的ARM公司。
% `# I% G: D7 |/ s+ F( [- L; P% ^+ ~
成立新公司后的几年,ARM公司业绩平平,危机四起。于是ARM决定改变他们的产品策略,他们不再生产芯片,转而以授权的方式,将芯片设计方案转给其它公司。正是ARM的这种授权模式,极大地降低了自身的研发成本和研发风险。它以风险共担、利益共享的模式,形成了一个以ARM为核心的生态圈,使得低成本创新成为可能。
; @) o0 Z; N9 F  ^8 A2 P9 Z/ \1 [* E
随后,德州仪器(Texas Instruments,TI)、意法半导体(STMicroelectronics,ST)、恩智浦半导体(NXP Semiconductors,NXP)等半导体芯片厂商,相继购买ARM授权,然后根据自身行业需求,设计不同的外设接口的芯片。
1 g# n; Q9 p$ ~8 Z0 P& u5 x4 _8 g0 |- ]5 m" `) s3 I3 `7 M
{M4AN_E{GF4H[P006TP5${I.png
, o0 {: t  r. B
) E3 s" K1 i6 F7 O) s4 M6 U. d6 Y
图 2.2.1 ARM公司发展史

) i/ k4 t" }% l0 a* R9 C  c# t由上总结,ARM具有以下三种含义:
9 P* s. k& i" [. s6 U5 x! ^5 x6 j; i& D( r8 w4 F
1) ARM是一家全球半导体行业技术领先的公司,主要业务是设计RISC嵌入式处理器;
7 x; z8 e) K# |" o4 Z% ?% p6 g. H9 I
4 W1 F# c" M( e  `; F6 V2) ARM是一类微处理器芯片或产品的统称,即所有采用ARM公司提供方案开发的RISC处理器;
4 [* N0 G1 R5 L9 M  A! `( m& @5 H( ]
3) ARM是一项技术的名称,即采用RISC的处理器体系结构;
' M$ u0 U& f* o2 @: \* x" j8 x) E9 `: S. I2 {, t2 F

% f( n1 c, t/ d  r从1985年发布第一个ARM处理器开始,ARM公司不断升级迭代,加入新的指令系统、寄存器组、功能特性,发展出不同架构。早期的经典ARM处理器,架构命名规则比较混乱,现在这些处理器基本不常见了,这里就不展开介绍。从ARMv7开始,采用Cortex命名,将整个处理器分为三大类,如图 2.2.2 所示。1 I" X8 t. N* p  n9 l) S; R
6 s" H. v2 _" ~6 m
4OA4PM_I1AR[PVOYWB2P)HT.png
/ n6 y; F! }" ]/ x: S2 D* X
8 d+ i8 c5 R: {6 `$ }2 X
图 2.2.2 ARM处理器系列
. m" E1 @/ R8 }% ~8 w/ C# _; L
1)  ARM Cortex-A:应用程序系列。A表示应用处理器(APPlication Processor),该系列有内存管理单元(Memory Management Uint,MMU),实现虚拟内存,让每个用户进程都拥有自己独立的地址空间,这是现代多用户多进程操作系统(比如Linux、VxWorks)所必须的。该系列适用于高端消费电子领域,比如智能手机、平板电脑、智能电视、路由器等;
) j$ @/ B/ M4 B# _& x* V
1 _9 f/ f$ H$ d8 p0 c' ^2)  ARM Cortex-R:实时控制系列。R表示实时控制(Real Time Controller),该系列适用于高性能、高实时性应用,比如硬盘/固态驱动控制器、企业网络设备、消费电子领域的蓝光播放器、汽车领域的安全气囊等;
# a3 T+ I* Z) q3 D7 H" P. A& {  Z/ K1 \
3)  ARM Cortex-M:微控制器系列。M表示微控制处理器(Microcontroller Processors),该系列适用于低功耗、高性能且对成本敏感的产品,比如家电产品、物联网、无人机等;
# z% O' `- W- A6 q9 G1 N3 M! c( N6 V' Z' a2 H5 s3 h
针对不同的应用场景和需求,每个系列还会再细分,比如ARM Cortex-M就再分为ARM Cortex-M0、ARM Cortex-M3、ARM Cortex-M4等,区别如表 2.2.1 所示。
" a7 o" I. N: O# d" I$ n0 [
( `3 I$ T. o$ N+ h, u& S( m
UDHS_$Q}C5L7V120329CLUM.png
& z( \2 ?/ F' h- B7 a4 Q6 m
" `  N& G; T4 F% C; e' J
表 2.2.1 Cortex-M系列处理器区别
3 N7 p  F0 x- V) J0 m  e/ M2 r7 d

# R. ^2 j5 O3 r9 f# B) v, d. B1 ?% W1 M' |1 O; u( e
1.2.2 STM32介绍" G0 e( T, {. {) J, z  M
在2004年,ARM公司推出新一代Cortex内核后,ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器,同时提供基于库的开发模式,加快用户研发周期。STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。
0 `7 K% Y4 J9 n* m: ^* C
5 c1 Q+ |. i, l; z: A' {: \. ?0 HSTM32如今产品系列非常丰富,主要为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系列。
3 m+ A/ Q) t% j6 }' [
( f# a1 k& U  S! L, x0 L8 X8 B
W9$RQ3%`)Z3V2]_OP9]]FCE.png

  I! E' L7 u% E4 u* t$ l! U% F) B5 T5 {! q' E4 m% Z, F
图 2.2.3 STM32系列产品(2020.06)
  X" ]: b& N7 Y  b' [
STM32的处理器种类众多,通过了解STM32的命令规范,可以了解整个STM32家族产品,也方便以后芯片选型,STM32 MCU系列命名规则如图 2.2.4 所示。
' b& [6 Y- o$ O$ A( u' O* |* ]
8 l% }7 P1 Z, N) H5 S0 g
JCPVH[GX_7G[HK~LGL%2(QD.png

, ^6 Q3 C% c* W2 A. H/ i+ b: O* L" v
  c# _) X7 N  d
图 2.2.4 STM32芯片命名规则(仅适用于MCU)
) i* B. C  ^, G; [
$ `4 J; U) S# s6 A4 T1 f$ n
9 F3 Q9 I' ?# B; g5 A
以STM32F103C8T6为例,解析STM32芯片命名规范如表 2.2.2 所示。
5 [) g6 n, L4 E; |2 H8 a+ r: W
6 u2 e" y% m7 A; n# g3 j/ C  h
)7QEJM(34SCSM~SCK[8HZYW.png
+ C- A; C6 M6 V( z# m

, d, u; E+ K9 L  @% ^
表 2.2.2 STM32F103C8T6各部分含义
4 o" K4 k, n( h+ k

+ S$ ]+ G  b6 e1 H3 R
1 f- |+ F- e  D2 `7 C  I1 k【总结】
! t7 F) I1 U# ~& U/ W, W0 d) K8 k. J
* h: @( j: v, F9 VARM公司售卖Cortex-M系列的授权,意法半导体(STMicroelectronics,ST)购买了该授权,生产了一些列STM32产品,这些使用ARM技术的处理器,都习惯称为ARM处理器,其中STM32F103C8T6就作为了本手册配套开发板的处理器。
) g4 b0 _: J( d  `8 p, r3 O' K8 D& G1 w
  Q# W8 F& `* f7 G8 b' s
1.3 常见处理器概念
# r% K2 Z( k% B7 p2 i
前文中多次出现了MCU、MPU、DSP、FPGA等嵌入式处理器概念,很多初学者可能比较迷惑,下面将对这些概念进行简单介绍。5 _  K4 o# ]# V
4 j9 ~, o. V  b
1.3.1 MCU8 P( |5 Y0 O: i0 S# d0 S
微控制器 (Micro-Controller Unit,MCU),俗称单片机。之所以称之为单片机(Single Chip Microcomputer),是因为不同于其它处理器,它将CPU、RAM(随机存储器)、ROM(只读存储器)、I/O、中断系统、定时器等各种功能外设资源集中到一个芯片上。这个芯片就是一个完整的微型计算机,只需要供电或加上极少的外围电路即可工作。
( p! H0 l1 ^0 N, p  @; m! d( m; M! A" y# G1 m# i/ ?1 h
常见的MCU有80C51系列单片机、Atmel公司的AVR系列单片机、Microchip公司的PIC系列单片机、TI公司的MSP430系列单片机、ST公司的STM32系列单片机、NXP公司的LPC1700系列单片机。; b2 ~% H- n; ^7 K
' A) c. ?2 k3 W) T* b8 ~
早期的MCU主要是8位,后面发展出16位,再到现在主流的已经是32位。此外,主频不断提高、ROM不断增大、外设不断增多,单片机的应用领域和场合越来越大。
' b! R* M% j; v6 f+ n' C. `& Q  c' f9 r6 p1 i6 w4 O
) r& S: `- I0 D8 O3 i& H
1.3.2 MPU
7 U# q# D1 C/ G微处理器(Micro-Processor Unit,MPU)。类似通用计算机的CPU,主要负责处理计算,需要外加RAM、Flash、电源等电路。7 d. ]; g. k0 V* Y* ]
3 t" S, U% c% b+ v3 t
MCU和MPU的本质区别是因为应用场景的定位不同。MPU注重通过相对强大的运算/处理能力,执行复杂多样的大型程序,因此常需要外挂运行内存(RAM)、存储器(Flash)等。MCU注重功能较为单一、价格敏感的应用场景,不需要相对强大的运算/处理能力,更多的是对设备管理/控制,因此不需要大容量的RAM、Flash来运行大型程序,于是将RAM、Flash全集成在一起,大家也就俗称“单片机”,如图 2.3.1 所示。1 F) U; y+ t0 a4 C5 Q

+ b* U# f/ ]" N- v
ZE8{3_U~2WWZQU(2}8H`Y.png

3 _* T3 r; X& l  M" R3 j
3 L( w& X% `6 P' t- I5 @
图 2.3.1 MPU和MCU的不同结构
  A1 l; Z8 h4 z% e* W
如今,随着技术的发展,市场及需求的变化,MPU和MCU的界限日趋模糊。高端的32位MCU主频越来越高,已经反超低端MPU主频,MCU也有外挂RAM和Flash的场景,依靠硬件结构去区分逐渐困难。读者可以简单的认为,嵌入式微处理器MPU,通常运行Linux、Android等非实时操作系统,应用在高端应用市场,比如智能手机、路由器等消费电子市场领域,而嵌入式微控制器MCU,常用运行裸机或实时性操作系统,应用在中、低端应用市场,比如家电控制领域、工业控制领域等。
2 j8 J3 u2 F& G+ [6 i* c9 |5 d3 g8 U, |" l- }: t+ E6 l. _: j3 K8 @
( h0 _8 |  B. e4 {- l, `. t
1.3.3 DSP
8 U5 N6 H2 r& H3 n# _- \DSP通常有两个含义。, e1 j" }; E" B
4 y, _. P" K6 k, K  r" s& s
数字信号处理(Digital Signal Processing,DSP),是一门学科技术,使用数值计算的方式对信号进行加工处理的理论和技术。
( r6 g$ H3 J2 R4 c1 P, f( V
9 e( `  J& I; Z; D2 q! N0 Q. |  z数字信号处理器(Digital Signal Processor,DSP),是一种专门用于数字信号处理领域的微处理器芯片。
; k! Z  p# H0 _* u! L+ P, C  L$ k' ^4 Y9 g
如图 2.3.2 为TI公司的DSP芯片TMS320VC5509A。
" l: L- R8 F2 {. I3 H& e6 v5 [( F: v5 a1 k& v" R; p
7`@cDR~N[}}_35L~E)%M8.png

* Z/ [$ s- Z( O& b7 q1 m! g: H! Z: l, n" _+ s: {
图 2.3.2 DSP芯片
7 I6 c' s- h9 n0 x: z

7 e+ L" j0 o. a$ P' e% r7 ?: S
; a1 c. }2 @9 ZDSP芯片为了达到快速处理数字信号处理的目的,采用了许多特殊软硬件结构。首先是采用哈佛结构,将程序和数据分开,同时为处理器提供指令和数据。然后采用多级流水线技术,在指令周期内可以执行更多指令。加上专用的硬件乘法器、特殊的DSP指令,使得DSP芯片在计算处理上,远超同主频的MCU或MPU。
# n! i# q' Y# r7 T- ]% Z+ |$ U# U* N- u3 |4 r9 y+ @1 A' ]5 d, D
DSP芯片拥有强大的数据处理能力,在数字信号处理领域,如调制/解调、数据加密/解密、图形处理、数字滤波、音频处理等计算密集型的场景广泛应用。
- t6 T0 H; U4 {. k+ F# s
9 v7 ]$ c7 [* |. x
+ E6 f7 o8 S4 t1 f" d' d: }9 N4 Y' ?1 C1.3.4 FPGA
: r# Y* k" p1 v6 o# f& E) C  m# j现场可编程门阵列(Field-Programmable Gate Array,FPGA),由可编程互连连接的可配置逻辑块 (CLB) 矩阵构成的半导体器件。通俗地说,FPGA就是一个可以通过编程改变内部硬件结构,实现所需功能的芯片。前面的MCU、DSP等都是硬件资源固定,只能通过修改软件实现所需功能。而FPGA是通过硬件描述语言或其它方式修改硬件,将FPGA变为CPU或专用芯片,来实现控制或算法。因此,MCU、DSP能够实现的功能,FPGA理论上都可以实现,反之则不一定。如图 2.3.3 为Xilinx公司的FPGA芯片XC3S400A。6 c' ~/ F7 p  c

! M% H+ `# M; _
M~MN{8`V1GV57`AG%VKQOWS.png
3 N- ]! y2 ^  x

5 Y& u9 X7 ^( C
图 2.3.3 FPGA芯片

, s' z7 y  z6 e; MFPGA主要有两大优势:高速和灵活。FPGA使用硬件处理数据,采用并发和流水技术,多个模块之间可以同时并行执行。FPGA可以根据现场情况配置器件功能,能够在技术和需求变化时重新配置,实现系统优化升级。
/ V0 G5 o) S& ^- D8 j/ a6 ~/ Y6 Q4 P/ c8 a1 }2 ^0 a6 M
在某些通信领域,需要处理高速的通信协议,同时通信协议随时都可能修改,不适合做成专门的芯片,FPGA的高速、灵活就便成了首选。0 j) c. J6 m* H4 P3 h

& _& `* n# w9 M虽然FPGA功能强大,但实际工程项目中,还需考虑硬件成本、开发难度和市场需求等因素。一些简单的控制场合,尽管FPGA和MCU都能胜任,但MCU价格低廉和研发简单,更划算。
6 v6 U2 @5 A" s+ }6 f. b5 o4 l( X; A
$ y' A; T5 t7 E7 O% @
4 s- {" F5 l6 r- z0 u' \$ V- C5 T【总结】
5 O- M5 _' Q, s( b$ p7 t

0 W9 r6 D! C8 h6 Z如今复杂的嵌入式系统往往是复合架构,比如“MPU+FPGA”、“MPU+DSP”、“MCU+FPGA”、“MCU+DSP”,甚至“MCU +MPU+FPGA+DSP”。控制、显示、通信一般选择MCU或MPU,通信和数据处理算法选择DSP,大量的数据处理和特定实现选择FPGA。* o  R6 }- l. z5 b

$ c$ o( h' @) @MCU开发需要C语言基础,然后学习各类资源、接口,再到RTOS;MPU通常运行Linux,需要Linux基础、操作系统、网络编程等知识;DSP开发需要具备数据信号处理算法的理论知识;FPGA开发需要了解高速接口或音/视处理算法等。% J5 H8 {4 a( T/ \
' c6 ?9 A8 l) w; s1 n  A
一般来说,MCU相对比较简单,适合作为入门学习,待MCU学习完后,再结合实际情况选择深入学习方向。8 q" `) o% T1 P# t! W/ D. H! I

" {: N" ^* x( o% P
! z& f4 G/ c) X3 i2 L" n) \
& y, A8 N& X/ ?6 n8 L, B. A1.4 ARM开发

5 h3 I  q+ S* s( _! v1.4.1 MCU开发和MPU开发
, ?( M/ ?' B8 b3 WMCU开发就是我们常说的单片机开发,MPU通常运行嵌入式Linux,因此也称为ARM-Linux开发。MCU开发和MPU开发,也就是单片机开发和ARM-Linux开发,两者均可称为嵌入式开发,两者之间既有联系,又有区别。
% z$ T. H1 ?* I8 E% D5 f
) Q' H4 |; q9 l& q) gMCU开发人员需要具备C语言、数字电子技术、模拟电子技术、微机原理等相关理论基础,还可能需要电路板绘制等专业技能。涉及电子信息工程、自动化、测量控制等相关专业。
" H$ {, ~/ }; u0 s+ b1 w1 ^# R# p( ^' B" |9 t7 ^
MCU开发主要涉及的内容包含:GPIO、UART、I2C、SPI、LCD等外设接口,时钟、中断、定时器、ADC/DAC、看门狗等内部资源,以及RTOS(FreeRTOS、RT-Thread、uCOS、LiteOS等)嵌入式实时操作系统。4 ]* |$ ~, `, V& u

8 x$ g6 _1 o- p- nMPU开发人员需要具备、数据结构、操作系统、计算机网络等相关理论基础。涉及计算机科学、软件工程、物联网等相关专业。1 D$ Q, D- x( ~

) h0 Q6 e$ T/ \$ VMPU开发主要涉及的内容包含:Bootload移植、Linux内核移植、Linux设备驱动开发(GPIO、UART、I2C、SPI等)、Linux应用开发(文件I/O、多任务编程、进程间通信、网络编程、Qt界面设计等),甚至包括Android驱动、Android应用编程。
' R+ a4 k3 j& R2 J. P; z
" ~7 I6 r; f) I* i2 f/ A下表 2.4.1 列举MCU开发和MPU开发的一些区别。MPU开发通常没有仿真器,也没有集成开发环境IDE工具,但MPU资源丰富,反而下载方式比MCU丰富。MCU可以使用仿真器在线调试,也可以使用串口打印调试,而MPU一般只能使用串口调试打印。MCU的启动过程比较简单,而MPU的复杂很多,就Bootloader部分就相当于一个大型MCU开发工程。两者相互补充,占据了嵌入式设备的大部分份额。+ t! \& N& ?) Y* x! ^* U2 }& g
# ]( R1 X$ h% V
}AD46K`52R9CZ)[0HI1BB[P.png

1 m4 C6 L, x5 R; `& t( x6 f8 S, t7 i3 Z" X
表 2.4.1 MCU开发与MPU开发的区别

9 |8 X7 o( x, F( b9 ~+ `6 }+ w( V$ }

6 o  ?* Z9 {3 \% @: X1.4.2 开源硬件Arduino和Raspberry Pi
$ U$ A& o, P: y/ G2 C
在开源硬件领域,Arduino和Raspberry Pi(树莓派)都是电子创意设计常用的开发平台和工具。它们使用简单的开发方式,使初学者能快速搭建其创意原型,有效降低了学习难度,缩短了开发周期。如图 2.4.1 所示,为某Arduino开发板(左)和Raspberry Pi 3开发板(右)实物图。
" \, p' W8 j/ F! d, }3 R
+ q2 @' b  d* m8 _$ w0 q
MHZEUQONV$ZG%1%B~]M`70E.png

* @8 J2 \7 G# D5 e3 m# k
8 z$ ]2 p4 O" f- S: g
图 2.4.1 某Arduino开发板(左)和Raspberry Pi 3开发板(右)实物图
' W, ~4 b% f+ y3 E& p) [. s
Arduino是一款基于微控制器(MCU)的开发板,它可以运行一些相对比较简单的应用程序,成本低廉,适合用于与传感器、外围电路进行控制和通信。
6 ~/ c& a8 K! f( e6 ?: {. B
/ e( r( a; Y$ X- H& wRaspberry Pi是一款基于微处理器(MPU)的开发板,可以看作是一台小型计算机,板载RAM、HDMI接口、USB接口、音频接口、网络接口等。通常运行发行版Linux操作系统,可以运行功能更丰富的应用程序,适合用于一些需要较多运算和功能的项目,比如游戏虚拟机、网页服务器、机器人、家庭智能控制系统等。
% K4 ?, L9 z0 o$ a' H6 j" j0 Y* |; }6 D# U

, I4 {. G; F2 n/ U1 S3 H. b% D1 x9 G& E/ {
【总结】

4 k- l9 @1 Z# A/ V! ?$ M! N( Y, U  V* f) d2 O' z& d
MCU开发和MPU的开发模式,差异还是比较大,读者在以后的实际开发中,再慢慢感受理解,这里了解即可。
6 O9 {7 Q' Y! Z! B5 ~2 i* n& h7 N' `* s9 I  \9 b
开源硬件面向的群体主要还是电子爱好者,帮助他们无需深入了解相关知识的情况下,快速验证自己的创意想法。对于嵌入式开发人员,Arduino过于简单,Raspberry Pi底层不开源,都不适合深入研究,开发人员应选一款采用常见主控芯片设计的开发板进行学习、研究。
- u9 y0 I4 g9 X7 s; S+ X( N0 S% k5 b0 i$ e4 C# H) z+ \
作者:攻城狮子黄 - N) ]  Y$ c- O0 k; `! d1 x% H
8 C  u! _7 B. H! \" q: N4 O4 v9 J
6 ~, q& |& e) a9 V$ q- v( b
收藏 评论0 发布时间:2022-8-29 22:12

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版