TA的每日心情 | 开心 2023-5-17 15:19 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
串口通讯是电子工程师面对的最基本的一个通讯方式,虽然看似简单,但很多人并不清楚UART、RS-232、RS-422、RS-485这四者的细微差别。希望这篇工程笔记能够帮助大家梳理它们之间的关系。
# W5 b1 z) |7 I3 }" u' z& { 4 b; ~1 K4 d' {
+ e. i: c! m4 x7 B( L7 U& H2 b
6 o" C! j! G; f* E! S! P通讯问题,和交通问题一样,也有高速、低速、拥堵、中断等等各种情况。如果把串口通讯比做交通,UART比作车站,那么一帧的数据就好比汽车。汽车跑在路上,要遵守交通规则。如果是市内,一般限速30、40,而高速公路则可以到120。而汽车走什么路,限速多少,就要看协议怎么规定了。常见的串口协议有RS-232、RS-422、RS-485等,他们之间有何细微差别?下面我们就一起来探讨一下。& u3 \% @! i' C( w8 w/ L, K3 h6 B) @6 @$ G" g5 T
) f6 w# a" h8 r" d2 s/ e
% S2 l* k, l# Q: z/ d0 y5 `1 o P( W8 p# K0 d, s+ @* X8 ]0 Z( o' m5 }4 h
+ h. Y5 t& ]9 _7 Z# E( q& b
% h9 g$ o8 I; z/ `6 Z一、UART是什么
% u; L" v( l! C+ Y9 I' U% S; O. B/ n$ g1 p& o+ h% O
/ v( a* y9 K1 i. I3 L" _! N
8 `1 [% b4 [2 ]4 cUART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是设备间进行异步通信的关键模块。UART负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式;通信双方只要采用相同的帧格式和波特率,就能在未共享时钟信号的情况下,仅用两根信号线(Rx 和Tx)就可以完成通信过程,因此也称为异步串行通信。; D7 x9 i, | b) H
% H% ?$ T3 ^- c8 p7 r h
, @6 v' e$ `: {/ k( g4 C
4 r7 E/ s# c+ b0 k1 y若加入一个合适的电平转换器,如SP3232E、SP3485,UART 还能用于RS-232、RS-485 通信,或与计算机的端口连接。UART 应用非常广泛,手机、工业控制、PC 等应用中都要用到UART。# l0 [8 E& R9 z; C3 K( z* M( Z' }# I; q+ p* _# G; u
& }4 X$ X9 M, F) g& ~% [" z& d5 ~
, z y' J# Q. P. {4 ~- M$ [2 Z% b3 T' p! ^4 l' Q/ `( x
( {( i2 l7 p8 X8 g! S& A0 s二、RS-232标准
( t9 Y0 A% J0 m& b6 {& o# S# m) ` `& ~2 c8 ]5 E5 T6 E+ L4 ~( K+ _4 @
* |+ k8 J1 U1 P2 K, TRS-232是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号。RS-232是对电气特性以及物理特性的规定,只作用于数据的传输通路上,它并不内含对数据的处理方式。需要说明一下,很多人经常把RS-232、RS-422、RS-485 误称为通讯协议,这是很不应该的,其实它们仅是关于UART通讯的一个机械和电气接口标准(顶多是网络协议中的物理层面)。7 X: C# Y$ {# {, Z; Q! l2 g+ t% @6 o3 u, k! o! [9 F% e' z" A( ]
3 ~3 R. q1 |9 v) m- u8 `/ s4 m+ N4 F* l( n/ m
6 ]- Z$ Q+ U ^4 \该标准规定采用一个25 个脚的DB-25 连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。后来IBM的PC 机将RS-232 简化成了DB-9 连接器,从而成为今天的事实标准。而工业控制的RS-232 口一般只使用RXD(2)、TXD(3)、GND(5) 三条线。+ m; e+ C, N: o7 \& u9 F* L
' y& I& t) m0 ] @( I
: y8 [# F* @: r4 P8 R, M& l! W* w9 Z( `$ ~
0 A* ?* y7 F2 i5 ~) r. _9 r7 `
8 l- j3 \, U0 ^3 W 3 Q) N) y' F' V" e. K6 T2 J9 [$ ^! X+ a) i
三、RS-485/ RS-422标准( F3 T/ F, d- s! R& J" M* v: G4 d8 v* K
* m4 v+ V, d: |( N- D! c8 @/ o [. i( l$ v$ K/ u. Y: [" H) u( t! \ w# @6 c2 K. M0 y
RS-232接口可以实现点对点的通信方式,但这种方式不能实现联网功能。于是,为了解决这个问题,一个新的标准RS-485产生了。RS-485的数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。 % R; {6 O- T, F& C2 t$ ~
* ^' o) ]. ^4 W8 r6 \1 o+ w& N* q! K4 @# g; P( c5 b' N
3 u& q! i" o: ]& r7 c: r9 r4 h; I- ~) z1 H' w2 {
) s Y; ]' y* j' ]! {2 w通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。- s9 ]8 `9 H3 K0 ?0 M# [; I S" T, j& X
( T$ ^" Y4 X3 o$ G% o
0 H7 H+ q% J& g( P n: l3 Z1 L5 |# t8 ?8 L+ ], j2 Y
RS-422 的电气性能与RS-485完全一样。主要的区别在于:RS-422 有4 根信号线:两根发送、两根接收。由于RS-422 的收与发是分开的所以可以同时收和发(全双工),也正因为全双工要求收发要有单独的信道,所以RS-422适用于两个站之间通信,星型网、环网,不可用于总线网;RS-485 只有2 根信号线,所以只能工作在半双工模式,常用于总线网。5 u' E/ S" Z1 P/ M% Z" K# ]9 k* n( G. m, X9 z' e1 ?
4 m; K, }. h( `4 w4 u
2 ^" k& ]. e( c ~' a8 F - M5 ^1 F: d/ W* ]* c
, v& t9 V6 \8 m
+ U6 X2 J0 ^1 Z: _
四、RS-232与RS-485性能对比0 G) q& U* c o9 p) a* y N0 m7 ]# t; A- e2 o# Z7 J$ x
; I) S) T' V7 l) l( U7 T
0 Z s4 t: e2 m1 y1 I1、抗干扰性:RS485 接口是采用平衡驱动器和差分接收器的组合,抗噪声干扰性好。RS232 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰。0 ?# C/ W3 x {* S2 f5 h5 I( v X# |8 h1 L
; y) b) x5 L( ^& c
# a: G1 g4 K( I l, j; [
' `, ]% d7 p+ s9 s( X5 O2、传输距离:RS485 接口的最大传输距离标准值为 1200 米(9600bps 时),实际上可达 3000 米。RS232 传输距离有限,最大传输距离标准值为 50 米,实际上也只能用在 15 米左右。1 a: u8 b4 C% t) |# z. X% E
6 f" G. l4 \/ P. V) d( y* [
0 a' y1 `5 g: x. w6 f. u8 m, h( T8 |3 P$ G0 b1 v4 a
3、通信能力:RS-485 接口在总线上是允许连接多达128个收发器,用户可以利用单一的 RS-485 接口方便地建立起设备网络。RS-232只允许一对一通信。) ~, L2 m9 s: N, Y6 F
) V8 t% r z2 V
. H6 x! @7 }, e! J5 _4、传输速率:RS-232传输速率较低,在异步传输时,波特率为 20Kbps。RS-485 的数据最高传输速率为 10Mbps 。 ~- N: U# S6 t" C+ X9 r0 Y
; P* |6 k- E- X9 ]: \
1 C m- Q0 s6 T" J1 f0 ^ G" q; ~/ I$ h0 [% U0 j9 w0 w7 y( V
5、信号线:RS485 接口组成的半双工网络,一般只需二根信号线。RS-232 口一般只使用 RXD、TXD、GND 三条线 。
' `: R B6 | M1 t: O0 f3 N4 d, y8 H y! @1 j" }
( Z& i; I* K( N" w& c# V
, K4 r2 o, h7 M# F) @6、电气电平值:RS-485的逻辑"1"以两线间的电压差为+(2-6) V 表示;逻辑"0"以两线间的电压差为-(2-6)V 表 示 。在 RS-232-C 中任何一条信号线的电压均为负逻辑关系。即:逻辑"1",-5- -15V;逻辑"0 " +5- +15V 。# Q2 T$ W D+ ~9 N" ]% `
, l5 j" N. @, M2 x2 E$ r. `
- O; R3 a( C% m- N* T% M* I1 G& X, ~
4 S r/ Q" K Y* W总结:! m" p- Z# h2 @$ |0 }/ |: [7 v6 o
8 f$ Q0 \3 s! j4 s. j* {8 J- ]$ {+ F L& a2 J. _9 Q3 Y' c9 [6 k; K
串口是一种非常通用的设备接口,是仪器仪表设备常用的通信接口,常用于远程采集设备数据或者实现远程控制。串口的开发也比较简单,是很多工程师最喜欢的接口之一。ZDS2024Plus示波器免费标配了UART协议解码功能(共标配25种常用协议解码),可以直接以字符方式显示报文内容,在涉及UART协议调试,效率将会大大提高。; k8 W. V) F# ^3 I! ]$ @2 p9 B: S7 k8 K6 \& }
) j# J8 f# J. B8 ]+ |+ X9 _& F( T4 f
# R+ _! W h( W1 `7 [8 c. }; c
! ~$ l% {% u" @, W6 q8 G/ }4 r8 m2 B$ T6 S# }
$ p7 I2 e4 y+ f; H/ r |
|