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

STM32经验分享 第14章 关于通信

[复制链接]
STMCU小助手 发布时间:2022-8-30 18:56
14.1 串行/并行通信
' J/ j7 _/ c' O- i按照数据传输的方式,通信可以分为串行通信和并行通信。串行通信简单的说就是数据依次传输,比如要传输0x11111111,一位一位的发送,需要发送8次。并行通信则是几个数据一起传输,同样是0x11111111,如果8位一起发送,只需要发送1次,如图 14.1.1 所示。
2 Z' ^; c3 {% W; p5 h2 x& V, }  u8 m6 O
% r; P' H+ I! K6 t& {; i
U@`5$_VIVBHL62WIZ9YHEN2.png
9 P( k. Z* G. f9 L$ R& }; O
" a8 _3 |: f0 X! z: J  R
图 14.1.1 串行/并行传输示意图
- ?. V5 L3 T. a" r4 Q8 ]9 [

+ k/ J1 @6 H+ o: s9 r
+ U4 {& R( ^# c由此可见,串行传输占用的通信线更少,成本低,通信速度相对较慢;并行传输占用的通信线多,成本高,通信速度相对更快。但随着对传输速度要求越来越高,并行传输开始出现信号之间的干扰,串行通信受干扰影响较小,之后又发展出差分传输等技术,极大的提高了串行传输速率,使得串行通信速度可能比并行通信速度更快。
0 T2 h: X; s& t% U) ]
- n5 O! K. ~% R1 R- A9 ~' `" T串行通信就像单车道,行驶的车辆需要依次行驶。并行通信就像多车道,同时多辆汽车并排行驶。但当车速很快的时候,多车道上并列行驶的汽车之间会形成“气流”相互干扰,单车道则受影响较小,速度能够进一步提升。+ A$ G8 J5 i# B# a; o
6 G; r3 H; ]3 |4 c. P
. H* P" W* r+ e  E( n
14.2 全双工/半双工/单工传输
* ^# g4 S" j) ?$ H按照数据传输的方向,通信可以分为全双工、半双工和单工。全双工指双方都可以同时收发信息;半双工双方都可以收发信息,但同一时刻只能一方发送信息;单工指只能一方发信息,一方接受信息,通信是单向的。2 F$ A( k7 v8 w9 Z" K+ O

5 e1 d$ [1 `1 ?; m/ l全双工就像电话通信,双方任意时刻都可以同时收发信息;半双工就像对讲机通信,双向都可得到信息,但是同一时刻只能是一方发射另一方接收,发射和接收不能同时进行;单工就像收音机,只能由广播站发送给收音机,单向不可逆的,如图 14.2.1 所示。
2 F0 I/ I1 ~$ u  z/ u; W+ b
7 a# G6 O: {0 N9 ^) ~2 {
K@$B@B27FQGMP3V(6CQ}WME.png
) O; R0 V3 G" p1 \4 \( C: |# O
' [% v+ Z/ I( G9 j1 m
图 14.2.1 全双工/半双工/单工示意图

& t3 i' i' D6 t" ~! Y% m
/ d9 ^; Y8 I9 N/ G8 o
5 _! d( h# l9 i3 C8 V14.3 同步/异步通信
% I  ^1 x% @1 z2 l+ m; {/ z按数据同步的方式,通信可以分为同步通信和异步通信。数据在双方之间传输时,需要制定规则保证数据传输的准确。同步通信的做法是加一个时钟信号,发送方和接收方在这个时钟的节拍下传输数据,比如常见的SPI、I2C。而异步通信的做法是对数据进行封装,在数据开头加上起始信号,在数据结尾加上终止信号,双方就按这个规则传输数据,比如UART、1-Wire。
5 S; O: E6 E: p# O( n
' o: ^1 n! a8 [1 I因此,可以通过是否有时钟信号,初步判断是何种数据同步方式。6 X% p: a# h8 j7 b+ y

# t- q+ ~: _* i. {* N; K' X/ @4 u+ ^7 O; W. G5 l

- I* u" H+ `+ n" Q14.4 通信速率( j9 _% r  P! x  n) j% A' D
对于同步通信,通信速率由时钟信号决定,时钟信号越快,传输速度就越快。
0 M, i4 n7 @3 Y
% [2 O6 d. V) B/ \. v% ?对于异步通信,需要收发双方提前统一通信速率,这也就是我们串口调试时,波特率不对显示乱码的原因。- |7 b1 Y6 P7 x0 y& t1 F- j& T

$ H0 L$ R+ o$ \0 J! T时钟对通信的重要性,这里再举个例子:假设发送端时钟频率为1Mhz,对应时钟周期则为1us, 接收端时钟频率为10Mhz,对应时钟周期则为0.1us。现在发送端发送一个数据0x1,就会产生一个持续时间为1us高电平,接收端接收到这个1us的高电平时,会当作是10个0.1us的高电平,认为收到了10个0x1。这时双方数据就乱套了,因此需要一个统一的时钟标准。
* `" l) j* q( \1 L
1 d1 e: z' T, n4 d通常使用比特率来描述通信速率的快慢,与之容易混淆的是波特率。
- u( g, G  {+ D' F
5 f1 b- V/ v' \5 {比特率(Bitrate):系统在单位时间内传输的比特位(二进制0或1)个数,通常用Rb表示,单位是比特/秒(bit/s),缩写为bps;
) l" {# l/ w! ]0 t
2 `1 B# ^9 ^% L& X% S7 e波特率(Baudrate):系统在单位时间内传输的码元个数,通常用RB表示,单位是波特(Bd);
6 R* v4 D. j  j
! f, v9 z& C! u: O100bit/s即是一秒钟传输100个0或1,100Bd即是一秒钟传输100个码元。0 a- ?! u& o# [* {8 _( p2 W5 N
% [6 Y( I4 k. E6 C
码元就是“承载信息量的基本信号单位”,以一条电线上传输的信号为例,码元就是电线上的电平值。
5 e  v2 V6 z1 x' H
$ z3 B9 v4 A+ C2 F如果电线上电平只有0和3.3V两种选择,传输的信号是这2种电平之一,码元的状态只有2种。接收方可以把0V认为是二进制的0,把3.3V认为是二进制1。即:传输1个码元时,能用来表示1位数据。# Z; k+ O* K. g+ n% R

8 R: L8 j/ B: H: o. F4 S如果电线上电平有0V、3.3V、5V、12V四种选择,传输的信号是这4种电平之一,码元的状态有4种。接收方可以把这4个电平认为是二级制的4个值:00、01、10、11。即:传输1个码元时,能用来表示2位数据。
9 y$ h, k8 K, g# u0 V8 _7 F. m. V/ U9 Z! i
因此码元状态为2时,比特率等于波特率,码元状态越多,每次传输的码元能携带的信息越多,自然速率也越高。: Y$ p* q; s& E$ f2 |- s, W
: i( c& G+ E+ v( g& x  H# D
码元有N个状态时,比特率与波特率的关系式:
8 `/ ]- E. G- R3 g- n
. `) \# e. F; t7 Q( p4 g
4C9DNZ6}82UVCN`%HF_J]80.png
3 c4 h# P8 X& b9 \

9 G% ^  ]6 p9 u
$ i! H9 T. q  N" H; B3 z
( R/ V, i: i' s8 B' a& j14.5 常见通信协议

+ s  s) V: W0 k. s在嵌入式中,有众多通信协议,往往从性能、成本、稳定性、易用性等角度考虑选择合适的协议。常见的通信协议如表 14.5.1 所示。
/ g, ^- d' {. c+ y
EU@JU6OM3G64MAZPNI8~4[Y.png
8 T7 Z5 C5 R+ ?" r) C

; J& M: X) O; C" ]+ D$ u
表 14.5.1 常见通信协议列表

; x4 ^* W: p+ b1 W
) d2 g" O' E6 d+ t* a作者:攻城狮子黄
, g3 i5 X- x, N' |
0 e0 u0 E( O+ i2 \& l0 [  H  U4 }/ r3 E* D
收藏 评论0 发布时间:2022-8-30 18:56

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版