电子产业一站式赋能平台

PCB联盟网

搜索
查看: 3030|回复: 2
收起左侧

01----RS485与RS232通讯协议

[复制链接]

568

主题

922

帖子

4783

积分

四级会员

Rank: 4

积分
4783
发表于 2022-6-16 09:31:18 | 显示全部楼层 |阅读模式
第一:硬件层协议2 i- v6 y& a" X. K8 ^

2 O  T8 i# W$ V4 Y  x
% W! i# z9 g: w) e: V- N
8 w1 y, H- b, m+ B9 q. n通讯协议主要是实现两个设备之间的数据交换功能,通讯协议分硬件层协议和软件层协议。硬件层协议决定数据如何传输问题,比如要在设备1向设备2发送0x63,0x63的二进制数为0110 0011,这8个二进制数从设备1传输到设备2,涉及到1怎么传,0怎么传的问题,这就是硬件层要解决的问题。9 f, Y  e: r) |
硬件层协议目前比较多见的有RS-232、RS-485、SPI、IIC等。RS-232规定,线上的电压为x伏都表示传输的是0,y伏传输的则是1。再者,比如要选择多少条线传输数据,选择什么材质的线传输输入,这些也属于硬件层协议约束的。
& T- K* W4 b  a5 u  @/ a$ Y# k9 K8 S: X6 Y  J3 n1 a
01----RS485与RS232通讯协议-1.jpg 0 k, }+ R! O$ g/ m- f

/ m2 I4 M3 |/ S' ?. s7 w
1 H8 y' n3 l5 ^' T3 w: g' C4 u- Y' {
第二:RS-485通讯协议
+ |: s3 n, [! G. n( Q9 F& u  T
6 {# h1 h# l( K9 g3 N
7 k6 T$ M& H. c9 \& e# t0 n9 j$ I6 ?) }2 x. A
MCU管脚输出TTL电平,TTL电平的意思是,当MCU管脚输出0电平时,一般情况下电压是0V,当MCU管脚输出1电平时,电压是5V。因TTL电平的是由一条信号线,一条地线产生,信号线上的干扰信号会跟随有效信号传送到接收端,使得有效信号受到干扰,485通讯实际上是把MCU出来的TTL电平通过硬件层的一个转换器芯片进行转换:
- n) q& C; ^: S& k
+ Q: C/ W2 z( v 01----RS485与RS232通讯协议-2.jpg ' v7 S6 Y0 N' W$ B/ W1 N

) x6 ?# h* d* a  U) q9 i6 `9 I3 t! ]: J
01----RS485与RS232通讯协议-3.jpg
2 p. o; j' Q) T% k) }# S& A, J. A+ S) n+ s( e6 |
% I. H( _. R  o9 l% M
! u  Q9 s  G, R7 V) J; ]
把MCU出来的一条的TTL信号经过芯片转换为两根线(线A、线B)上的信号。当MCU给转换器输入低TTL电平时,转换器会使得B的电压比A的电压高,反之,A的电压比B的电压高。
5 E) Z6 a6 N8 t9 U! T/ r: `485协议规约两条电平线上差值为多少表示0或者1,电压是通过仪表可以测量得到的,所以说RS-485是硬件层协议。   r% T5 J1 e6 G: H
485协议的接收端可能是另一个MCU,MCU管脚也只接受TTL电平,转换芯片过来的是两条线的电压,所以需要对此两条线差分电压转换为TTL电平。3 L/ {3 l- i) Y1 ]

6 A+ x% O  h* D- J4 D( ^1 J 01----RS485与RS232通讯协议-4.jpg , z( O! _# }; |  y) \) `3 y- F

: p% g3 T5 J" q: b+ B6 s把TTL转为485,实质是一个集成芯片,其间无任何程序代码,纯粹硬件逻辑。同理,将485电平转为TTL也是如此。现在很多芯片把接收和转换都集成到一块IC,注意,转换器和接收器依旧是没有同时工作的,常见的转换芯片是MAX485。 : ^5 E. W; y; x$ B+ r- p5 r0 E& J* ?
可以这样理解,硬件层协议是公路,路的目的是为了让车辆能够过去。( x$ \6 _5 g& U2 [  R2 u
0 q# w7 T' Z7 D% j3 Q
  m9 _7 J+ C2 C) S3 A# r
第三:RS485半双工通讯
& Z, s6 W* t8 ^) \2 J3 H. M  [' d4 p8 R- O3 _  c( U, u

. V2 v% I- M/ ?0 Y& B
6 T" T: g; [  t& o3 ~% }$ d6 N& a5 ]+ e4 C- h! }+ C8 F
01----RS485与RS232通讯协议-5.jpg
( ~  p, M: L. P# S% _9 F% [
1 \8 ?  x8 D: z: D5 z! Y) Y首先了解什么是单工通讯,单工通讯是指数据只能朝着一个方向传输的通讯方式。而半双工通讯则是指对于通讯两端,不能同时相对方法发送数据,必须错开时间段发送。
* R. g' G: Z6 N; D6 g1 ?# o# lRS-485的通讯线只有2条,且这两条通讯线在一次传输中都需要用到,因此485只可实现半双工通讯。485实现半双工通讯,会遇到一个问题,MCU1向MCU2发数据时,并不知道线上是否正传来MCU2数据,因为没有其他线可用来判断对方的收发状态,那么可能也会导致数据冲突。因此,RS-485要实现半双工通讯,就需要上层的软件协议加以规约,也就是做到”不能你想发数据就发数据”。可以理解,软件层协议就好像交通规则,它能让数据有序传输。
- o+ u. A) n# k6 D* D5 [8 L' \# L6 _5 q

' T  u1 t. q# [- G3 ?  P" }4 d" [3 p" D; P; M; I" h4 J
第四:RS232通讯# g' t# \; ]$ G- Q/ T' e

" L' B) p# c& W2 o& h7 }, R) c) s
       RS-232是美国电子工业联盟制定的串行数据通信接口。现在RS232接口常用于仪器仪表设备,PLC以及嵌入式领域当作调试口来使用。
* V9 h# N7 Q+ X
2 @& t- }/ P+ c5 ?+ X1 z( r
' r2 V  S. K" b/ j3 @( S第五:RS232接口形态   
' q4 h5 x5 M' V7 L  b0 k1 b
) C+ z/ d' R6 Y3 W8 B, J
, L3 h) f$ [. s; l6 Q5 {+ Y按照引脚数量分类有两种:
8 d! R$ j  a- n/ z5 Y; ^1 X25pin–DB25 协议标准推荐的接口类型: N" x1 y0 H- a: A: d
由于接口物理尺寸较大,很少使用,此处不做具体介绍。
& Z; u4 |! F0 G+ w( F9pin—DE9(通常误叫做DB9) 自IBM PC/AT开始改用9针连接器起,目前是主流接口形态。9针RS232接口按照接口类型,又可以分为:
4 L9 H0 C4 x# R- A" U公头(Male):带针脚
6 }4 a7 D4 l3 c% L9 s- z
  @8 `' Z3 C7 j- B+ z0 B+ z 01----RS485与RS232通讯协议-6.jpg ' {8 ?  I$ c$ E- ?9 g  M( V2 N

$ t& n3 d# Z) F) M母座(Female):带孔座
" @9 Z9 V, K$ I6 P- ]  m* s7 d4 t5 B5 Y
01----RS485与RS232通讯协议-7.jpg
: D1 h$ k9 N9 G
) e6 p& l' m! O! s% J3 U5 C8 N0 \+ [' `, T  a

7 m0 i# N; m- q1 c
$ s' @- I$ i4 T; \7 Y- ?1 o 01----RS485与RS232通讯协议-8.jpg ' x; A* N/ }, l2 H
: x9 P0 G1 A# |0 x- _% z2 x7 r

6 U! `# U- y( U6 \# g) I3 U: z4 ?  v- [0 j# @- p
其中DTR/DSR和RTS/CTS用于硬件流控。
9 U  }) ]$ p- v: X  ~      DTR/DSR状态表明DTE和DCE处于可用状态,有时候设备上电这两个信号即有效,表示设备本身可用使用,但要开始进行数据传输通讯,则需要RTS/CTS流控信号。: H2 G8 K- H9 B' H
      RTS即DTE发送数据时,该信号有效(ON),向DCE请求发送数据;CTS是对请求发送RTS信号的响应,当DCE已经准备好接收数据时,该信号有效(ON),通知DTE可用使用TXD发送数据了。2 R* W2 ?; j3 ?4 U
比如A向B发送数据简单如下逻辑:
) \+ K' z+ }# J% [1 DA先设置RTS为1,表示要发数据给B
3 y) x7 p' }6 C& n8 D1 LB检测到RTS为1,先看看自己是否准备好:
/ }& \! G9 e' t# J如果准备好,就设置CTS为1表示A可用发数据给B了
( Z: }! o4 ~& Q; z, f如果没有准备好,继续处理自己的数据。弄完了,再将CTS设置为1,让A发数据' S8 @- @) \6 |. F) G7 k- I
A发现CTS置1了,将数据通过TXD信号线发送出去; V: O" l2 o6 ]2 f" r
A每发送一次数据给B之前,都会继续上面的逻辑
: V' e7 v1 W$ [8 a0 {A发送完数据后,就将RTS置0,表示数据发送完毕/ O- Y  |0 J2 h, A0 k

; d# Z* O; F- K; v
0 g- [* U, A5 H第六:RS232硬件连接方式
4 ^1 W  t" u7 u. K: ^, t/ {
# D2 V! H% a4 A8 B& s+ `) {  i
3 q' [2 `4 t! l4 o9 C
- s4 a; z5 b) ]7 `连接分为3种
. u( b; V( r6 ]& f4 d" I% i+ Y( b* L, V/ a
0 ?# \( W6 \3 y6 t; i9 \, R; ]
第一种:9线方式连接示意图
6 c& `/ ~- L5 }, Q1 R' n% @4 m& W1 U6 J. f0 q5 x
01----RS485与RS232通讯协议-9.jpg " }- \$ [* w+ ~/ f9 i/ ?/ }

! O- E6 ?& Z/ Z4 l" t' A3 f1 P3 o

0 [8 @/ o- i4 p5 |2 Z
" f3 ]) ?" L: m* ~% K3 H3 \7 y5 f5 ?- `
第二种:5线方式连接示意图
! L" u/ I8 n; I3 r' @4 D4 X0 `. D- r" u$ a, i1 G
& g. j8 M# {+ s# r/ i- Z

- w/ S4 T% k5 K5 q0 W* p2 O2 [$ G
3 a" Y+ ]1 |9 o, Z' B& V 01----RS485与RS232通讯协议-10.jpg 1 w: E& E/ F: d& P) F3 a
* |- H% c% J$ X* O3 ]

* K9 Y, L# ]& M1 Z' B6 ?
9 h1 X0 f' ~- g& q1 Z$ l3 }9 V第三种:3线式连接示意图
9 K. _* }  U( f7 j" v: L4 v; Q$ k! L6 s
01----RS485与RS232通讯协议-11.jpg
, _7 ~- a, p' s- V; j4 P0 C2 H
) p  P1 J  P! W, b注:3线连接中,DTE使用TXD和RXD两条数据线,无法实现硬件流控功能,在做大量数据传输应用时,建议使用5线或9线连接方式。
& c8 `7 |$ g9 k2 s  d7 |
. Z. L, s3 Y* ]$ T2 ?* L
' W+ q0 l0 |3 s1 z* [8 k4 b+ i第七:电平及时序; d& s, t: }. y% {5 S* z

: H* B, s9 H, k* b
0 y; K! z5 j) s" x% ?' b4 g9 |0 ~# D4 W! M+ x
01----RS485与RS232通讯协议-12.jpg ) @+ \8 b# m( m0 `- A+ U
; L6 ?; L/ G  n) x/ Z+ k
3 H; x7 U9 z- E: J$ C, o# K0 w

0 Q$ r1 i4 D8 I9 I! U. ?. q下图是使用RS232接口按照UART串口协议进行传输,UART协议具体请参考 UART详解。图中传输的数据为0100 1011b 即0x4B,按照1bit开始位,8bit数据位,1bit停止位格式传输。
0 `. q' k8 W0 N3 M* g; q3 Z3 C! P9 L2 O  I7 h" m" n
01----RS485与RS232通讯协议-13.jpg - }* ?% g  O$ R" G0 b# ~! }

9 N; U" z8 v1 ^) b9 j  c" _2 V' z" O: R$ a

1 }: z  u; L; D/ A" b% l/ |第八:最大通讯距离及速率) b3 C% o  h+ V( o

, R8 N/ j6 j2 H8 ~8 @* @; S, _协议最初规定设备最大速率为20kbps。
& L# y" J$ C2 `( W; e0 H% C# X+ q4 g( Y: }9 e6 G
01----RS485与RS232通讯协议-14.jpg
) s, b( \; T' j% P% b3 ~  m4 y8 F" L9 i& H( ~) p

: Y7 M; i# [' ?2 f+ ?: _0 M1 ~1 S! G4 v  \% C; W
注:协议规定最大速率为20kbps,现在看来这个速率已经很低了。一些芯片制造商已经做出了高速率的芯片驱动,具体速率上限请查看器件手册。
回复

使用道具 举报

0

主题

237

帖子

737

积分

二级会员

Rank: 2

积分
737
发表于 2023-5-10 22:30:36 | 显示全部楼层
888888888888888888888888
回复 支持 反对

使用道具 举报

0

主题

237

帖子

737

积分

二级会员

Rank: 2

积分
737
发表于 2023-5-15 09:23:45 | 显示全部楼层
111111111111111
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表