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

【经验分享】STM32 嵌入式基础知识

[复制链接]
STMCU小助手 发布时间:2022-4-27 10:22
1.1 嵌入式产品实例分析
$ [8 [4 q- S$ R8 y1 E嵌入式产品都是围绕应用设计软/硬件,应用的需求直接决定嵌入式处理器的选择。比如简单的智能产品,通常选择8位的单片机(MCU);复杂的智能产品,通常选择32位,甚至64位的MPU;更多的时候,常常MCU和MPU搭配,各自发挥各自的作用。& K! I5 i$ U3 g
3 _/ W  a( E5 x$ q+ T  I

7 @3 G* U) t. I1.1.1 实例一:智能台灯
6 V; O; W4 h, a8 i1 i该台灯首发价格为399元,月销上万,可以说是一款月流水千万级的产品。相较于传统台灯,主要增加了亮度、色温调节和手机控制,身价也涨了几倍,该智能台灯如图 2.1.1 所示,功能如下:% A8 z2 w1 b. O- ?$ H
, Q7 e$ [" k& o# }' D( Y+ f6 s
1) 可以根据外部光照情况,自动调整台灯亮度、色温;
* R9 L& N0 s0 ~* V0 q: }2 \  a
2) 可以手动调节台灯亮度、色温;
3 h' w* t1 Q, a9 L" e' r: |( D8 ~: r, X/ Y5 S$ U
3) 一键切换到读写场景模式和阅屏场景模式;
: F" f2 r' g6 A  U* Q  {- c2 c5 x. q8 w7 i# S0 X
4)  支持番茄时钟,每隔25分钟,灯光提醒用户休息;
2 n& e# G* l  a! L+ ]6 n! E; s+ o* g- ^9 z# O
5)  支持手机连接,通过手机或手机语音控制;
- d& q, p- o* R# m& q) v* F& j
- W9 [' [. u+ \# l B@RDSB5H20YN1PK}TS5[L6U.png 9 D$ U1 F* m  b  e7 d9 B  ?1 n9 W
4 N0 ~" I) v" L) B& w/ J
图 2.1.1 智能台灯实物图
0 \' f3 {3 d& ?. ~$ V  W0 K该智能台灯的底座为控制面板,拆解该底座即可看到内部电路结构,如图 2.1.2 所示。可以看到里面主要有两个芯片,根据芯片上面的丝印标识可知,一个是RTL8710B,一个是SN8F5828FC。1 P* z5 O* n" ~: i
# C' X0 Z" s  a$ ?" a
E0A}{N]I]X9{O9BGFB]UY~M.png
6 U/ R$ D  J9 }( Q6 Z0 }7 F3 s& M4 t5 I6 D2 L
图 2.1.2 智能台灯底座拆解
4 r5 D9 W2 w9 |* @8 }8 R8 r) a从互联网搜索“RTL8710B”可知,该模块是一个高集成度低功耗Wi-Fi连接解决方案,里面是一颗瑞昱(Realtek)生产的ARM-Cortex M3架构的32位MCU——RTL8710B。该模块封装好了Wi-Fi协议,用户只需要通过SPI/SDI、I2C或UART与模块连接,即可控制Wi-Fi收发数据。
7 K$ z. O+ v- ^9 X, e( r, t* O: ^
0 L, {% `' ]" U2 K6 J+ O( Q9 j从互联网搜索“SN8F5828”可知,该芯片是松翰(Sonix)生产的一款8051架构的8位MCU,通过下载该MCU的芯片手册可知,该MCU有多达14个PWM通道,可用于控制LED灯的亮度,另外还有UART和I2C,可用于与其它模块通信。
( q% b7 t8 o5 \9 I5 v& f2 N% C' ]/ s, k0 I2 k% f* B- T3 D
根据以上分析,大致猜测该智能台灯的整体设计框图如图 2.1.3 所示。
4 O0 S& z! W: ~) l7 \- b+ ~' i$ H7 }# J, y. c1 r5 b
{11G8DDHPZ_]SJ`ELWMNSPY.png
8 c8 F% U" H) J- B6 r# B* p6 Z& r4 @8 T
图 2.1.3 智能台灯系统整体设计框图% q5 X$ D+ N# P7 i
光照传感器会随着外界光照情况变化自身阻值,主控MCU通过ADC获取电压变化,即可得知外部光照变化,控制PWM输出修改占空比,调整亮度和色温;触摸按键按下后,会让主控MCU的GPIO引脚电平产生变化,MCU程序读取GPIO电平获知按键操作,进而控制PWM输出修改占空比,调整亮度和色温;主控MCU先控制Wi-Fi模块连接到互联网,与云端连接,手机APP的按键操作或语音输入转换成对应控制指令发送给云端,云端将指令发送给Wi-Fi模块,再通过UART接口发送给主控MCU,主控MCU解析指令后,控制PWM输出修改占空比,调整亮度和色温;用户通过按键设置为番茄时钟模式,主控MCU则利用自身定时器计算时间,当为25分钟时,控制PWM输出修改占空比,调整亮度和色温。6 ~; S3 b2 v0 N4 X  I: e" I8 G1 T% W
5 ^* W# ?' z  T, f- v! B: C, J

2 w' N4 s6 ]. N* e; c/ L* a1.1.2 实例二:智能手环8 n7 R. u" x9 \- T) {3 F
该手环首发价格为299元,作为近几年的热门智能产品,销量可观。如今智能手环主打健康检测,功能全面,因此需要的传感器也越来越多。加上功耗和尺寸的限制,手环的主板集成度越来越高,足以媲美手机内部。该智能手环和内部结构如图 2.1.4 所示,主要功能如下:
, p( I8 i  H. y9 p4 a" F6 e8 m/ q" @5 o- I
1) 彩色IPS触摸屏,显示时间、健康信息、设置闹钟;! N; O: _# k3 w: }# U
' X. Q' m, n. o- T4 Y
2) 闹钟、消息震动提醒;
% C- A2 z4 N8 W  A9 p1 {
- B4 l8 h, I% b7 L0 H3) 记录跑步数据;9 Z4 s; [- t, n" A6 o. _$ @* G

7 R' [, [+ D! ^4 Z- F! ~5 L# ~) S4) 测量当前心率;
7 I, A; V3 g# f: F: j6 X( V9 `) x$ f7 U  g: h
5) NFC刷公交、地铁;
7 L$ _* R+ b* ]% g! ]  E# ~
1 D: K( e. O- J! i2 H' Y6) 蓝牙连接手机,进行系统升级或接收手机消息;/ i. O, G9 H8 u' Y5 p9 Y2 U% |" h
) u# k6 t3 k; d/ W- C- Y% R9 ^
VN6K}JWTRT_F4{IH9DTB3FC.png
5 h6 c4 _, Q$ u+ b3 v9 f9 `% B1 ]: u$ a
( V2 ?1 D- k) z" M2 y4 v$ _图 2.1.4 智能手环外观和内部电路
+ l) g* M$ [! L可以看到该智能手环内部芯片非常多,根据上面的丝印可知芯片型号,再搜索对应型号可知每个芯片的作用,这里整理如下。2 v, d& g& T/ N- u; e" u6 J. _6 e; P
: P* g3 d; t0 x+ w, L: w, \+ J  T9 J
STM32L496VG:STMicroelectronics公司产品,ARM Cortex-M4架构的32位MCU,主频可达80 MHz,这里作为整个系统的主控;
: l& ]8 x  L. ~) }1 S. m
% \, L. k! j2 I' dPN80T:NXP和Garmin联合出品,一款面向可穿戴设备的安全便捷的NFC移动支付芯片,接口为SPI或I2C;6 }0 }# p: y; k- f
! G  |/ Q1 O5 r* W
DA14580:Dialog公司产品,一款ARM Cortex-M0架构的32位低功耗的蓝牙芯片,接口为UART、SPI或I2C;. l  m+ Q/ d* a/ s1 }, a- e
* B7 D9 q7 }7 D% X- u5 U
MAX14745K:Maxim公司产品,一款面向低功耗的可穿戴设备的电池充电管理解决方案芯片,接口为I2C;
# X9 U, P1 C4 Z4 o4 V8 |2 B; D9 Z; Y9 Q( g/ A
AFE4410:TI公司产品,一款用于心率检测的芯片,接口为SPI或I2C;
+ }8 m+ ]: {" Q2 _+ S- |4 G, T7 z
l  IQS620:Azoteq公司产品,一款用于接近感应芯片,可检测手环是否佩戴上,接口为I2C;
& z* u& I4 H2 m7 t& |$ K, R) m: z, b" P" M* \  F9 [  h
LIS3DH:STMicroelectronics公司产品,一款超低功耗的高性能三轴线性加速度计,可检测当前手环的运动状态,接口为SPI或I2C;
+ _2 k" r4 E, z
3 g/ b" Z6 z' ?2 cGD25LQ64CWIG:GigaDevice司产品,一款64M的SPI接口Flash,可用于存储手环的主题数据包、图片数据等;- _9 }9 F; `# C8 B1 o
( p# b2 ]+ d; |1 Y, a. q
根据以上分析,大致猜测该智能手环的整体设计框图如图 2.1.5 所示。
" k3 E5 P' J8 |) N$ |% `2 c( J9 _6 Q
3 d. w. V, Q& Q: H $$H`1WEZYKDY}W(P`8$~Q7R.png
$ J) D' i; |8 }( j) u8 j# U& _
8 c' t* a! |  V图 2.1.5 智能手环系统整体设计框图
( C- e6 [: [" G# @/ {" P前面智能台灯,整体框架比较简单,一般MCU运行裸机即可完成任务。智能手环整体框架就比较复杂了,一般都运行有操作系统RTOS。主控STM32L496VG接收来自蓝牙、NFC、三轴加速度计、接近感应传感器、心率传感器和屏幕触摸的数据,通过特地算法整合后,在OLED图形化的展示给用户,与用户之间进行交互。
- d. U8 ^0 a0 M
: B7 |+ c5 _: J# _7 ~, |1.1.3 实例三:电视盒子' L- d- F2 G8 {& r/ K/ C) t# j2 s) M
如今家庭电视也朝智能发展,传统电视加上电视盒子,摇身一变为智能电视。目前市面上的电视盒子种类繁多,但其基本功能还是一致的,基本功能如下:
) j( ]3 Z" A7 q* M% r* F% a9 K, _! ]$ V* N
1) 高性能的处理器、大存储空间,安装应用程序,播放高清视频;
& O3 f+ {% G/ ~* c" T6 V' Q. B: g6 l0 {# V- [* N
2) 支持有线或无线连接网络,实现在线播放;* p1 i4 n) U- I+ P9 |8 c/ n
, u6 g$ K  B* `# a; |6 i  t1 Y
3) 支持HDMI或AV输出音视频;
' i0 H7 i' D% y6 ?# y- g' k
( }7 p! r& S* j# a- w, R1 S7 h) h4) 支持USB接口;: D0 c2 n; \* ], @
, e% h! e7 C' s1 O9 X
5) 支持红外遥控;
- N# f% W6 l7 Q5 P+ L) w" L: D. n' [( P3 U# d
这里拆解某电视盒子,如图 2.1.6 所示内部结构,主要的芯片有四个,整理如下。, a% W7 R; d, s: E
3 C6 G/ k2 m' p9 o% B
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接口等,图中被散热器挡住;1 b  {' W+ h: N

) ^  \4 p, z: D+ }: n( R- I$ BD2516ECMDXGJD:Kingston公司产品,为嵌入式设计的低功耗DRAM,单个256MB,这里有两颗,总计512MB;
& j( Z6 n6 q" y; _5 \0 W) K3 c1 I  Z' a& H
SDINBDG4-8G:Sandisk公司产品,高可靠耐用的eMMC闪存芯片,容量为8GB;! a( e. Y# F7 {* ?. b3 T% n

, ~& C1 N0 o# R4 m4 `. JRTL8822BS:Realtek产品,支持2.4G/5G的双频WiFi&Bluetooth模块,接口为SDIO,图中被屏蔽罩挡住;" j  b' \- C4 C+ `% R: Y( D3 V

$ z5 P( w8 V  }3 { B%ZDAIXJ8)6%X$PB$_Q0EAD.png
1 g& a) p, g7 v* n$ I
9 w! w+ E( H- d, u5 J0 x, _9 w图 2.1.6 电视盒子内部结构3 k0 V. D# N) L+ ?$ Y6 k4 L
根据内部结构,猜测该电视盒子的整体设计框图如图 2.1.7 所示。" }; e6 V% V1 B" Y; H
, |7 a( H- V  s: K* _
(MMQK8DW]~PA97P_WZOF79C.png 0 n9 {9 r  L3 {
8 e4 I; m% w. _- k: Y1 |
图 2.1.7 电视盒子系统整体设计框图
% L: l: [  \: y; ^" }) F  W8 k 电视盒子的整体框图比较简单,但其难度不低,一般运行Linux/Android系统,无论是软件复杂度还是硬件复杂度,都比一般的MCU项目复杂。MPU性能强大,接口繁多,像有线网口、HDMI接口、AV接口、USB接口都直接支持,这些接口MCU一般都没有。除此之外,MPU项目都外接RAM和Flash,根据项目需求选择合适大小,大小也远超MCU项目。
# `1 V* n! i+ w5 M/ w+ B% Y; v0 Y2 i" c
【总结】
% N) n$ @/ ]( S( a: l- x* l% S
, K" P! q3 B/ E% e8 {1 z4 W以上三个嵌入式产品实例,代表了嵌入式的三个方向。第一个是无操作系统的MCU项目,第二个是运行RTOS的MCU项目,第三个是运行Linux/Android的MPU项目,本手册主要涉及MCU,也就是前两个项目。读者理解了它们的共性,也就理解了什么是嵌入式系统。
+ Y3 c( ~5 w$ Z) q8 |4 w) R+ t
) g4 z" q& [- R) X% q+ t1) 以应用为中心,以计算机技术为基础,软件/硬件可裁剪,实现应用需要的功能;2 A/ Z* ?- o9 J, j1 o# `1 m

( m9 R4 ~8 [2 N' m4 ~6 y4 g2) 对功能、可靠性、成本、体积、功耗有一定的要求;6 L1 h! {% w2 R0 w3 p. K

& Z, ]/ w6 J" y' r3) 实现对其它设备进行控制、监视或管理的功能;( Y1 d) }9 r7 \3 b. q, h! I

- V& R# F; r1 z6 M$ _3 E4 r- e4) 简单的说,除了通用计算机(读者使用的电脑)和部分服务器外的一切计算机系统,都是嵌入式系统;
+ w5 z+ S+ A* n# A" S! `! O( s9 \, s; o9 ]8 V
1.2 ARM与STM32的关系
- I9 P4 w% [  J# ?1.2.1 ARM介绍
( d' Y* D4 j) D; x; e% Q* _- G1978年,奥地利籍物理学博士Hermann Hauser,和他朋友,一位英国工程师Chris Curry,共同创建了一家名为“Cambridge Processor Unit,CPU”的公司,中文字面意思就是“剑桥处理器单元”,主要从事研发当地电子仪器设备的业务,比如街头游戏机之类的。
( _( h/ v$ m, l
/ o; C7 [4 N/ A' t1979年,在经营逐渐进入正规后,原来的公司名不怎么合适了,那个年代喜欢找个吉祥物作为公司名字,比如APPle公司。这俩就以橡子为吉祥物,取名为“Acorn Computer”,中文字面意思就是“橡果电脑”。) C$ S* b' K1 Q, n" ^& j8 q

0 `7 }% w  L# j$ X- c1981年,也许是改了公司名字,运气就来了,这一年,公司接到一个大单。英国广播公司BBC,计划在整个英国播放一套电脑普及的教育节目,希望Acron公司可以生产一套配套的电脑,之后英国政府还会海量采购电脑,在各个学校普及。
/ ?1 F5 B$ c* X' h" ?  v- T- f+ w' \
接下这个大单后,Acron公司就开始研发产品了。当时处理器正从8位向16位过渡,他们就去找了美国国家半导体和摩托罗拉公司生产的16位处理器。评估后发现,这些处理器执行上有点慢,中断的响应时间有点长,还有就是太贵,一台电脑才卖500英镑,处理器成本就要100英镑。于是又把目标转向当时如日中天的Intel,希望对方提供一些16位80286处理器的设计资料和样品,然而Intel根本就不理他们。" R3 `7 H1 P( u: V2 @7 ~7 B
+ X/ B# h; z7 K& R& ]: o4 W
最后,Acorn公司没办法,临时采用了便宜的MOS科技生产的8位6502处理器,勉强研发出符合要求的个人电脑BBC Micro。绝处逢生的Acorn公司发现处理器受制于人,为了后面长久的发展,于是决定自己研发处理器。
' }+ x% B" H" G* {4 s8 {. x' O% q8 y$ c& S4 A; q" g* u
Acorn公司的研发人员从美国加州大学伯克利分校,找到了一个关于新型处理器的研究——简化指令集。在此基础上,历时4年的艰苦奋斗,于1985年完成了微处理器的设计,以后的BBC Micro,都用这颗新处理器。对于这块芯片,Acorn公司给它命名为“Acorn RISC Machine,ARM”,中文字面意思就是“橡果精简指令集机器”,也就是ARM的第一次出现。) w" G( O& b; V( \* S

! H6 }* @) L+ z. ]+ L这里插讲一下简化指令集(Reduced Instruction Set Computer,RISC),与之相对应的就是复杂指令集(Complex Instruction Set Computer,CISC)。早期的处理器都是CISC架构(比如前面Intel处理器),随著时间推移,有越来越多的指令集加入。但是后来人们发现,整个指令集中,只有约20%的指令常常会被使用到,大约占了整个程序内容的80%,而剩余80%的指令,只占了整个程序内容的20%(典型的二八原则)。于是,1979年美国加州大学伯克利分校的DAVid Patterson教授(前面提到的新型处理器研究的作者),提出了RISC的想法,主张硬件专心加速常用的指令,不常用的指令则利用常用的指令去组合。5 f$ D( G; C6 i* L5 X

& V; k6 c1 b3 c5 M* U# r( K就在同一年,1985年10月,英特尔发布了80386,Acorn公司的ARM芯片被吊打。80386采用CISC技术,所有指令都支持,也就性能更好,但设计成本也高、功耗也大。Acorn公司的ARM芯片采用RISI技术,只支持常用指令,其它指令需要常用指令去组合,性能也就差一些,但成本低、功耗低、研发快。Acorn公司也不傻,性能比不过,就突出成本低,功耗低的优势,总有要求成本低、功耗低,性能要求不高的场景,于是就往我们现在所见的嵌入式方向发展。4 n- Z1 x+ e" _  m4 A2 d4 |
3 N) K4 g5 N5 a6 ?( ]1 n& C2 \' H
1990年,Acorn公司和APPle公司合作,成立新公司“Advanced RISC Machines,ARM”,中文字面意思就是“高级精简指令集机器”,这就是现在大家常说的ARM公司。! G8 b) u. O* `& _
( W: T7 R& Y4 P. l; a* A. N. N7 i% x
成立新公司后的几年,ARM公司业绩平平,危机四起。于是ARM决定改变他们的产品策略,他们不再生产芯片,转而以授权的方式,将芯片设计方案转给其它公司。正是ARM的这种授权模式,极大地降低了自身的研发成本和研发风险。它以风险共担、利益共享的模式,形成了一个以ARM为核心的生态圈,使得低成本创新成为可能。
4 `  i) t* ^) [9 I0 P1 r& J
- ~9 g7 D" }  T. u5 Q随后,德州仪器(Texas Instruments,TI)、意法半导体(STMicroelectronics,ST)、恩智浦半导体(NXP Semiconductors,NXP)等半导体芯片厂商,相继购买ARM授权,然后根据自身行业需求,设计不同的外设接口的芯片。& i* q3 ?! ?& ?1 I2 W/ s

9 V2 _: `$ p! w+ k6 u, \4 f( e 2K97@7~%U9SPOZVUJH[HTFR.png
6 {+ }9 C( m6 h, s5 d9 p3 K( a9 @" e% H8 ~0 `% \+ V
图 2.2.1 ARM公司发展史
" a3 [; F/ R: k+ m/ {0 t$ H* @7 m; \  z6 Y) S; L- h1 ?
由上总结,ARM具有以下三种含义:
9 V7 u$ R, O& ~2 }% ~$ E  L0 t+ j; g+ j: y
1) ARM是一家全球半导体行业技术领先的公司,主要业务是设计RISC嵌入式处理器;
) W7 A  J$ Q7 c( z+ M! x5 o  d/ C& d' m
2) ARM是一类微处理器芯片或产品的统称,即所有采用ARM公司提供方案开发的RISC处理器;- I. Z' S* t' J- e" {; v
! c" B/ w- |% D6 x$ R
3) ARM是一项技术的名称,即采用RISC的处理器体系结构;
) m# Z" n! _9 q# H2 J0 c* s6 Q
8 Q- }, A1 z  }4 @; r从1985年发布第一个ARM处理器开始,ARM公司不断升级迭代,加入新的指令系统、寄存器组、功能特性,发展出不同架构。早期的经典ARM处理器,架构命名规则比较混乱,现在这些处理器基本不常见了,这里就不展开介绍。从ARMv7开始,采用Cortex命名,将整个处理器分为三大类,如图 2.2.2 所示。
2 |1 x; N+ y2 Z9 Z8 p! r* N7 P
& P' Q+ ^7 q$ V
1 ^7 ~* |# L$ G4 G3 B6 l  e6 F
. j/ A6 M" Z8 D) @2 D图 2.2.2 ARM处理器系列* i4 u5 D: A. j, a
1)  ARM Cortex-A:应用程序系列。A表示应用处理器(APPlication Processor),该系列有内存管理单元(Memory Management Uint,MMU),实现虚拟内存,让每个用户进程都拥有自己独立的地址空间,这是现代多用户多进程操作系统(比如Linux、VxWorks)所必须的。该系列适用于高端消费电子领域,比如智能手机、平板电脑、智能电视、路由器等;
, ~7 ?$ b2 a/ Z% B4 V4 J& f4 q( s7 f$ ]2 u8 k# t
2)  ARM Cortex-R:实时控制系列。R表示实时控制(Real Time Controller),该系列适用于高性能、高实时性应用,比如硬盘/固态驱动控制器、企业网络设备、消费电子领域的蓝光播放器、汽车领域的安全气囊等;
; u8 ?* h$ Z: ^3 N1 @
- w/ u& F0 {" Z) x' M6 [3)  ARM Cortex-M:微控制器系列。M表示微控制处理器(Microcontroller Processors),该系列适用于低功耗、高性能且对成本敏感的产品,比如家电产品、物联网、无人机等;
2 p) P) g; Y/ @- r  w0 x0 `0 e- e' j7 B9 h7 C- X: m9 ^1 a3 o

. O4 D! U% u1 r; z, j. l1 K8 d针对不同的应用场景和需求,每个系列还会再细分,比如ARM Cortex-M就再分为ARM Cortex-M0、ARM Cortex-M3、ARM Cortex-M4等,区别如表 2.2.1 所示。
1 T% v" u+ N, F6 {" X
. [7 A6 J2 q7 B( {8 D HNCB@L5{FWHMREL}2@DH}ER.png + \: I; R4 K. q1 G

( v2 {; q1 t9 J1 K9 T2 _% N1 Z表 2.2.1 Cortex-M系列处理器区别$ b+ B# P6 p6 e6 x! |3 w7 F2 j
0 k! y6 J- x9 [; O% R  @: b
1.2.2 STM32介绍* n& R4 W  f- C( {1 {  ?  t
在2004年,ARM公司推出新一代Cortex内核后,ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器,同时提供基于库的开发模式,加快用户研发周期。STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。8 w+ Q- k8 D( Q5 J

8 t% i4 {5 H7 X1 {5 f9 b0 ySTM32如今产品系列非常丰富,主要为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系列。
+ R5 S( |" @* j4 z% @$ U* A+ r9 _3 o6 k, K8 Q
YVTD64]CCB0FU15`@BL82U9.png 6 Y& L2 S  ?3 t$ J. @6 P  y* C- s/ s
1 `6 e+ a6 f8 {$ J8 k0 @3 x
图 2.2.3 STM32系列产品(2020.06), z9 W! Q5 I% C" c
STM32的处理器种类众多,通过了解STM32的命令规范,可以了解整个STM32家族产品,也方便以后芯片选型,STM32 MCU系列命名规则如图 2.2.4 所示。, ~1 M2 c" F5 s( b2 z$ V
4 Q, B- t8 `+ }. v7 Z0 I1 ^
(KJB9459$Q`[D`E9J[XTDEI.png
6 Z) Z4 v7 V6 J* t5 Y1 W6 r8 b" b
图 2.2.4 STM32芯片命名规则(仅适用于MCU)
, E" w7 b. B1 x( W4 j( W
) y, M3 R5 Y6 m" {以STM32F103C8T6为例,解析STM32芯片命名规范如表 2.2.2 所示。
4 D! y- l9 J# N5 K1 T
6 }1 [2 M1 O: w  D' d( |& W KPN)BKR{9RK(R]{]PIGATYX.png
% ~. q4 A" V7 B, I% {5 I
9 R" S4 @( W, Y- t! p表 2.2.2 STM32F103C8T6各部分含义
& l1 f# U% T. ?( [" Z0 U9 k5 D1 A. a
! ]8 C6 Y6 C; |0 S6 [! J- n
# H' B( ]* g2 D【总结】  [+ A' J; b- v7 B1 G0 D

) b# ^1 B" L9 ~+ A8 Y7 eARM公司售卖Cortex-M系列的授权,意法半导体(STMicroelectronics,ST)购买了该授权,生产了一些列STM32产品,这些使用ARM技术的处理器,都习惯称为ARM处理器,其中STM32F103C8T6就作为了本手册配套开发板的处理器。
* U, J8 y4 [( u# K9 S- j
/ X1 a1 v3 d9 S, P1.3 常见处理器概念
/ a. K; X* A- x8 I) ], \前文中多次出现了MCU、MPU、DSP、FPGA等嵌入式处理器概念,很多初学者可能比较迷惑,下面将对这些概念进行简单介绍。$ V4 u! _2 G( C& p% ]! |

/ A" x; _  W: ]% V7 E4 s* H1.3.1 MCU
1 y4 U, s4 o5 }+ ^1 R" C微控制器 (Micro-Controller Unit,MCU),俗称单片机。之所以称之为单片机(Single Chip Microcomputer),是因为不同于其它处理器,它将CPU、RAM(随机存储器)、ROM(只读存储器)、I/O、中断系统、定时器等各种功能外设资源集中到一个芯片上。这个芯片就是一个完整的微型计算机,只需要供电或加上极少的外围电路即可工作。# T7 D/ L' V( k# P+ n" r# C
) U3 \6 T" E: }  _3 E- O( r
常见的MCU有80C51系列单片机、Atmel公司的AVR系列单片机、Microchip公司的PIC系列单片机、TI公司的MSP430系列单片机、ST公司的STM32系列单片机、NXP公司的LPC1700系列单片机。
4 N6 D0 w% P5 m' G+ T
- M5 F. k3 z: p1 @& D4 W早期的MCU主要是8位,后面发展出16位,再到现在主流的已经是32位。此外,主频不断提高、ROM不断增大、外设不断增多,单片机的应用领域和场合越来越大。
& v6 c: c1 {; Y9 E0 v3 ~' i1 q
/ F$ g9 |  J1 E# N) y4 s6 c2 d8 P" ?) m" D  ]0 m
1.3.2 MPU

; Y! C# q* A( a3 s8 j' M微处理器(Micro-Processor Unit,MPU)。类似通用计算机的CPU,主要负责处理计算,需要外加RAM、Flash、电源等电路。2 @. B% l4 n; G4 }8 u& N9 T8 `

4 l; `+ m7 n& HMCU和MPU的本质区别是因为应用场景的定位不同。MPU注重通过相对强大的运算/处理能力,执行复杂多样的大型程序,因此常需要外挂运行内存(RAM)、存储器(Flash)等。MCU注重功能较为单一、价格敏感的应用场景,不需要相对强大的运算/处理能力,更多的是对设备管理/控制,因此不需要大容量的RAM、Flash来运行大型程序,于是将RAM、Flash全集成在一起,大家也就俗称“单片机”,如图 2.3.1 所示。8 `1 M2 x7 E7 |" w3 n

2 o& U6 f7 q8 A. L' ] %Q@OT2V7DHQGLL2B{0UTUUC.png
4 C: M2 ~5 ]& [1 q' w- D# _. E
4 {% P- V8 r* K. _图 2.3.1 MPU和MCU的不同结构: R  o/ p1 e* M! X, s; S
4 `) v$ y  L- A7 ^% T) t
如今,随着技术的发展,市场及需求的变化,MPU和MCU的界限日趋模糊。高端的32位MCU主频越来越高,已经反超低端MPU主频,MCU也有外挂RAM和Flash的场景,依靠硬件结构去区分逐渐困难。读者可以简单的认为,嵌入式微处理器MPU,通常运行Linux、Android等非实时操作系统,应用在高端应用市场,比如智能手机、路由器等消费电子市场领域,而嵌入式微控制器MCU,常用运行裸机或实时性操作系统,应用在中、低端应用市场,比如家电控制领域、工业控制领域等。! F6 g6 ~0 z( }- X* o
/ V% s7 t1 c3 @
1.3.3 DSP; ~0 U2 @* q1 v5 q9 r2 b1 f4 Q. o2 ]
DSP通常有两个含义。
6 k5 J9 H1 K9 f+ u4 x2 t8 u  r* X9 i数字信号处理(Digital Signal Processing,DSP),是一门学科技术,使用数值计算的方式对信号进行加工处理的理论和技术。
1 ?, i1 ?6 r3 Y7 x( P( t: a9 v数字信号处理器(Digital Signal Processor,DSP),是一种专门用于数字信号处理领域的微处理器芯片。
/ d# N7 P3 R. l; a. p0 @3 T
! t5 Q. K. f: S# s8 c9 h如图 2.3.2 为TI公司的DSP芯片TMS320VC5509A。
4 u( h9 Y/ L$ s$ Y- @. y+ v
& j7 m9 ^; s  r8 W ~)G~HFR4QTP5Y3[M76V}F@G.png
" g1 F! }' _7 f. ^; h! B. S* a
# t2 D0 X$ U0 D/ b& K图 2.3.2 DSP芯片+ g' `* }  u( w% D6 M: _' ~
8 g. X6 }# H7 o) M- T4 n2 Y" G* }
DSP芯片为了达到快速处理数字信号处理的目的,采用了许多特殊软硬件结构。首先是采用哈佛结构,将程序和数据分开,同时为处理器提供指令和数据。然后采用多级流水线技术,在指令周期内可以执行更多指令。加上专用的硬件乘法器、特殊的DSP指令,使得DSP芯片在计算处理上,远超同主频的MCU或MPU。2 Q! e( i7 Y* Q; x7 J
8 `- ]3 h0 |; I" h$ d- I
DSP芯片拥有强大的数据处理能力,在数字信号处理领域,如调制/解调、数据加密/解密、图形处理、数字滤波、音频处理等计算密集型的场景广泛应用。  x1 Y/ x; D. n! @- p; D

4 b, Y- n+ T% `! A8 n9 ?! |- W3 H+ F1.3.4 FPGA
$ R  K% F7 ?2 y
现场可编程门阵列(Field-Programmable Gate Array,FPGA),由可编程互连连接的可配置逻辑块 (CLB) 矩阵构成的半导体器件。通俗地说,FPGA就是一个可以通过编程改变内部硬件结构,实现所需功能的芯片。前面的MCU、DSP等都是硬件资源固定,只能通过修改软件实现所需功能。而FPGA是通过硬件描述语言或其它方式修改硬件,将FPGA变为CPU或专用芯片,来实现控制或算法。因此,MCU、DSP能够实现的功能,FPGA理论上都可以实现,反之则不一定。如图 2.3.3 为Xilinx公司的FPGA芯片XC3S400A。7 H- B3 j  P/ v
/ f- H/ J8 \5 ~. j
@_LUXFSUFM0G@)]MLQQM{XO.png
9 `" ^, K, R6 Y# B
$ M' |# g) g9 {3 g图 2.3.3 FPGA芯片" r* C3 D- E/ e3 D5 z
FPGA主要有两大优势:高速和灵活。FPGA使用硬件处理数据,采用并发和流水技术,多个模块之间可以同时并行执行。FPGA可以根据现场情况配置器件功能,能够在技术和需求变化时重新配置,实现系统优化升级。
$ {; o7 h6 v+ T( ?; h. U" M+ C
) ?% o. z- P6 ~% s* s  T7 B( g在某些通信领域,需要处理高速的通信协议,同时通信协议随时都可能修改,不适合做成专门的芯片,FPGA的高速、灵活就便成了首选。
3 q9 s1 v. ^  T4 i% O1 A, d$ U9 G& f+ N, M% ~& I
虽然FPGA功能强大,但实际工程项目中,还需考虑硬件成本、开发难度和市场需求等因素。一些简单的控制场合,尽管FPGA和MCU都能胜任,但MCU价格低廉和研发简单,更划算。
, `3 ~5 g* R5 U, i  @' q5 ~+ Q% g! r5 n( S0 \/ e  r- S
【总结】

" T) ?+ a; l9 \+ r7 o
8 s# v% A* R, J- G% u8 T如今复杂的嵌入式系统往往是复合架构,比如“MPU+FPGA”、“MPU+DSP”、“MCU+FPGA”、“MCU+DSP”,甚至“MCU +MPU+FPGA+DSP”。控制、显示、通信一般选择MCU或MPU,通信和数据处理算法选择DSP,大量的数据处理和特定实现选择FPGA。/ v7 B4 ~2 e6 N0 Q

$ q; r5 Q, c6 I# IMCU开发需要C语言基础,然后学习各类资源、接口,再到RTOS;MPU通常运行Linux,需要Linux基础、操作系统、网络编程等知识;DSP开发需要具备数据信号处理算法的理论知识;FPGA开发需要了解高速接口或音/视处理算法等。" {! p' G  ?6 l) G6 F) R3 `. ~3 ?

4 C: n2 D* a+ z" N一般来说,MCU相对比较简单,适合作为入门学习,待MCU学习完后,再结合实际情况选择深入学习方向。8 F8 Q* k! l* X! B. M8 {3 X

: L  p/ F* i" \  N% B" ?" U# {* l( i9 i" l& v5 u
1.4 ARM开发

1 Z. n7 b" E, }5 P0 K1.4.1 MCU开发和MPU开发2 v1 f2 y! Z8 j
MCU开发就是我们常说的单片机开发,MPU通常运行嵌入式Linux,因此也称为ARM-Linux开发。MCU开发和MPU开发,也就是单片机开发和ARM-Linux开发,两者均可称为嵌入式开发,两者之间既有联系,又有区别。# ^  g4 J. u( H8 d% ]: m
* z) c. K4 c1 g6 ~# D: q8 I* E# g
MCU开发人员需要具备C语言、数字电子技术、模拟电子技术、微机原理等相关理论基础,还可能需要电路板绘制等专业技能。涉及电子信息工程、自动化、测量控制等相关专业。
- m8 ?2 P) m9 M% t* Z: A* D
( C2 J( m& H6 }% M" QMCU开发主要涉及的内容包含:GPIO、UART、I2C、SPI、LCD等外设接口,时钟、中断、定时器、ADC/DAC、看门狗等内部资源,以及RTOS(FreeRTOS、RT-Thread、uCOS、LiteOS等)嵌入式实时操作系统。
" g5 d9 d8 N. t, N- ^! R5 c; h2 y/ ?$ E3 h3 u3 B2 O7 s
MPU开发人员需要具备、数据结构、操作系统、计算机网络等相关理论基础。涉及计算机科学、软件工程、物联网等相关专业。
' u4 \( `, }  A; E% }  _* z, Z
! e- v2 P' g) m2 ^& hMPU开发主要涉及的内容包含:Bootload移植、Linux内核移植、Linux设备驱动开发(GPIO、UART、I2C、SPI等)、Linux应用开发(文件I/O、多任务编程、进程间通信、网络编程、Qt界面设计等),甚至包括Android驱动、Android应用编程。: J% f5 d2 C& ~* I9 R$ d
* L" ~$ [  x( v- f0 \
下表 2.4.1 列举MCU开发和MPU开发的一些区别。MPU开发通常没有仿真器,也没有集成开发环境IDE工具,但MPU资源丰富,反而下载方式比MCU丰富。MCU可以使用仿真器在线调试,也可以使用串口打印调试,而MPU一般只能使用串口调试打印。MCU的启动过程比较简单,而MPU的复杂很多,就Bootloader部分就相当于一个大型MCU开发工程。两者相互补充,占据了嵌入式设备的大部分份额。6 q$ [* U6 {/ m! m: a% B

- U+ x! V" `+ `! Q 9}AGG6E3NA15JOUS{)$}C66.png 7 Z$ w: R: L) r8 b+ H9 C2 g& ?

- a9 o8 j$ g( @- |4 J4 N9 i9 E+ R! L表 2.4.1 MCU开发与MPU开发的区别8 U# M6 A. d) v" f6 I8 h

& G- k: Y. }$ V, E' e2 g' d& @* O- i1.4.2 开源硬件Arduino和Raspberry Pi7 q- K: B% ^/ I3 @
在开源硬件领域,Arduino和Raspberry Pi(树莓派)都是电子创意设计常用的开发平台和工具。它们使用简单的开发方式,使初学者能快速搭建其创意原型,有效降低了学习难度,缩短了开发周期。如图 2.4.1 所示,为某Arduino开发板(左)和Raspberry Pi 3开发板(右)实物图。
1 i( E% @6 F, `3 G, H# l
& h2 e; b4 t2 ~" i BYQP1_4ISQH%]2AM@I$_N`1.png 8 E8 c8 F8 v8 _- W2 n6 K4 T. k+ `1 Y4 Z
& H, s6 P+ k) ?5 x0 P8 Y9 |; a
图 2.4.1 某Arduino开发板(左)和Raspberry Pi 3开发板(右)实物图8 J  M: Y- O: ]5 ~
Arduino是一款基于微控制器(MCU)的开发板,它可以运行一些相对比较简单的应用程序,成本低廉,适合用于与传感器、外围电路进行控制和通信。
2 A6 w0 D' k' _
9 n9 d- w5 W! {! D  ^5 jRaspberry Pi是一款基于微处理器(MPU)的开发板,可以看作是一台小型计算机,板载RAM、HDMI接口、USB接口、音频接口、网络接口等。通常运行发行版Linux操作系统,可以运行功能更丰富的应用程序,适合用于一些需要较多运算和功能的项目,比如游戏虚拟机、网页服务器、机器人、家庭智能控制系统等。
% ^6 `+ V; V" I0 V3 l
* h% B6 s! W2 x) v! I6 A  k【总结】
& I* N- V4 ?) ^4 Z  T
) }" t. s2 g3 Q8 s- t2 P# e; \
MCU开发和MPU的开发模式,差异还是比较大,读者在以后的实际开发中,再慢慢感受理解,这里了解即可。; ?+ u$ C" d) v) M1 p6 v

7 d. i! y2 |& @5 g! i- g开源硬件面向的群体主要还是电子爱好者,帮助他们无需深入了解相关知识的情况下,快速验证自己的创意想法。对于嵌入式开发人员,Arduino过于简单,Raspberry Pi底层不开源,都不适合深入研究,开发人员应选一款采用常见主控芯片设计的开发板进行学习、研究。
; @% f* g, q$ s4 c  J* y+ y5 P1 H" V6 v
6 q; t0 c; t+ y  ]% \
; n5 X2 W% i$ ^6 T" y
收藏 评论0 发布时间:2022-4-27 10:22

举报

0个回答

所属标签

相似分享

官网相关资源

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