電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 72|回復(fù): 0
收起左側(cè)

工業(yè)現(xiàn)場(chǎng)經(jīng)常用到的 RS485 通信,原來(lái)它的收發(fā)機(jī)制是這樣的。

[復(fù)制鏈接]

485

主題

485

帖子

1623

積分

三級(jí)會(huì)員

Rank: 3Rank: 3

積分
1623
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-11-25 17:50:00 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我是老溫,一名熱愛(ài)學(xué)習(xí)的嵌入式工程師
) g- O5 `& N5 c. w% Y+ Y關(guān)注我,一起變得更加優(yōu)秀!RS485是工業(yè)控制場(chǎng)景下,應(yīng)用得非常廣泛的通信協(xié)議,RS485的差分物理信號(hào)在電磁環(huán)境復(fù)雜的工業(yè)現(xiàn)場(chǎng),有強(qiáng)大的抗干擾能力。
! f! @5 v- |; |( y; b; s/ A% a
對(duì)于平時(shí)專(zhuān)注于應(yīng)用軟件開(kāi)發(fā)的工程師,使用RS485進(jìn)行數(shù)據(jù)傳輸,只要關(guān)注串口的數(shù)據(jù)收發(fā)器即可,但其實(shí)在硬件層面,RS485通信的數(shù)據(jù)收發(fā),也需要遵循一定的機(jī)制。
4 M& {. b3 }, L, {% y& F$ D. J2 e1 t
RS485通信接口特點(diǎn). N7 }. H1 H% c  n! [0 w- F+ P

0 ]) P( s8 ]8 Q" n作為工業(yè)領(lǐng)域上較常用的通信方式,RS485總線(xiàn)具有以下諸多特點(diǎn):
" i, S/ y% ]' C  B+ i$ N6 K4 g
# L* |$ r1 w2 {# s9 l1、收發(fā)器輸出A、B之間的電平為+2V~+6V,是邏輯“1”;為-6V~-2V,是邏輯“0”。信號(hào)電平比RS232降低了,不易損壞接口芯片。另有“使能”控制信號(hào),可使收發(fā)器處于高阻狀態(tài),切斷與傳輸線(xiàn)的連接。
' E3 `! F" O7 A7 C* {/ i
# a- r2 m2 J* ]. s3 c1 i4 g6 g2、接收器的輸入靈敏度為200mV。即在當(dāng)接收端A、B之間的電平相差200mV時(shí)即可輸出邏輯。
. l2 F# F% o. y3 _9 f; q: r" r
% X/ ~, G) C8 x- s) V3 u- u3、傳輸速率高(10Mbps),傳輸距離達(dá)到1200m)。
0 P" ~$ C0 g5 w! [% ?4 b
$ e# D3 T8 n% c/ }# Z) s2 X4、具有多站點(diǎn)傳輸能力,即總線(xiàn)上允許掛接多達(dá)128個(gè)收發(fā)器,可建立設(shè)備網(wǎng)絡(luò)。  y# T3 ^" k( g" \7 _* T5 C2 O) r
; W) @. |) K; n9 e/ }6 g
5、RS485收發(fā)器共模電壓范圍為-7V~+12V,只有滿(mǎn)足該條件,整個(gè)網(wǎng)絡(luò)才能正常工作。當(dāng)網(wǎng)絡(luò)線(xiàn)路中共模電壓超出此范圍時(shí)就會(huì)影響通信的穩(wěn)定,甚至損壞接口。
( A4 k" B" O$ R; t; h' N# |2 m" F, i0 c- y6 }( m2 E: I( E
RS485收發(fā)控制方法( i, C$ k/ y! M% X

1 v" h6 n- O1 b# XRS485屬于半雙工總線(xiàn),在實(shí)際使用時(shí)一般采用主機(jī)輪詢(xún)或令牌傳遞的方法來(lái)分配總線(xiàn)控制權(quán),RS485設(shè)備需要進(jìn)行發(fā)送和接收的方向轉(zhuǎn)換。
" i0 G. Y& n  k
8 z( G* m: G0 {$ Q比較通用的做法是,每個(gè)RS485設(shè)備在平時(shí)均處于接收狀態(tài),只有在自己有數(shù)據(jù)要發(fā)送時(shí)才轉(zhuǎn)換到發(fā)送狀態(tài),數(shù)據(jù)發(fā)送完畢后再次切換回接收狀態(tài)。6 ^+ x1 i3 J+ S" H5 j
( F1 X4 |9 r' w: X+ X+ f9 n) W
第一種:程序換向控制
+ M# {" ~; {+ m- x, N6 j. B8 h+ X% P2 g
最常用的RS485收發(fā)換向方法是程序換向,即由MCU的一個(gè)I/O端口控制RS485收發(fā)器件的收發(fā)使能引腳,在平時(shí)使RS485收發(fā)器件處于接收狀態(tài)。
$ t( y. @/ k; z( b; h3 y/ p* f4 O% u5 a7 j. @6 M0 s1 T1 U
如下圖,這里485芯片用TI的SN65LBC184,最大速率達(dá)到250Kbps,當(dāng)有數(shù)據(jù)需要發(fā)送時(shí),MCU將RS485收發(fā)器件引腳(網(wǎng)絡(luò)RS485_EN2)置于發(fā)送狀態(tài),完成數(shù)據(jù)發(fā)送后,再把RS485收發(fā)器件切回接收狀態(tài)。
0 s4 _- y! n) m; |
* V; `. Y# Q- x$ Q. V
8 z7 T6 w3 y4 o, p5 p這種方式簡(jiǎn)單易行,不需增加額外成本,這種方法很多人都會(huì)知道并且基本上都用的方法。+ h0 x6 g$ G; i/ Q, |
第二種:自動(dòng)換向( h' M& b7 @0 n1 a
但是,當(dāng)我們采用某種硬件平臺(tái)的工控主板或核心板進(jìn)行二次開(kāi)發(fā)時(shí),由于工控主板或核心板上沒(méi)有預(yù)留出足夠的I/O端口,使得RS485收發(fā)的程序換向方法無(wú)法實(shí)現(xiàn)。
. J5 j/ r& k# D在某些特定的情況下,開(kāi)發(fā)平臺(tái)的底層驅(qū)動(dòng)未對(duì)外開(kāi)放,難以對(duì)底層進(jìn)行二次開(kāi)發(fā),這種情況下即便有足夠的I/O端口也無(wú)法實(shí)現(xiàn)程序換向。& z' L1 y) Q' v0 [6 |6 k; d1 [5 j
為此,我們需要采用另外一種換向技術(shù),即自動(dòng)換向技術(shù)。% A5 w0 P3 g% I5 u7 W5 `, |
自動(dòng)換向其實(shí)就是對(duì)使能引腳不需要單獨(dú)的I/O口來(lái)控制,而是由發(fā)送引腳發(fā)送數(shù)據(jù)時(shí)候順便控制了。% T+ {. R$ L9 a7 c2 @8 r9 ]# I7 g
要實(shí)現(xiàn)這種方法可以使能那里加一個(gè)反相器,如下圖,在空閑狀態(tài)下,串口的發(fā)送信號(hào)TXD2為高電平,經(jīng)過(guò)反相器后輸出低電平,使SN65LBC184處于接收狀態(tài),而RS485總線(xiàn)由于上下拉電阻的作用處于A高B低的狀態(tài)。4 a* v$ o9 O4 ?4 k: O$ y8 `) M; K1 T
當(dāng)發(fā)送數(shù)據(jù)時(shí),TXD2信號(hào)線(xiàn)上的低電平比特位控制SN65LBC184進(jìn)入發(fā)送狀態(tài),將該比特發(fā)送出去。而高電平比特位則使SN65LBC184處于接收狀態(tài),由RS485總線(xiàn)上下拉電阻把總線(xiàn)置于A高B低的狀態(tài),即表示發(fā)送了高電平。" Z/ a; |7 ~# A" {: T8 Z7 a6 n
8 T- b* b: {# N/ u
反相器也可以用三極管代替,如下圖所示,工作原理和加反相器一樣。2 M9 w# }4 X" u0 J# Z
但是這種方法在發(fā)送高電平時(shí)的驅(qū)動(dòng)能力有限,因此會(huì)限制通訊距離,一般適用于距離不遠(yuǎn)場(chǎng)合。
- h9 l5 B* P7 ^/ A/ }/ e
* W; o6 @' i2 V& Z; c/ |! H& [3 ^其實(shí),為了省去控制的麻煩,也可以采用專(zhuān)門(mén)的、帶有AutoDirection功能的485芯片,比如MAX13487E,它省去了常用的485使能信號(hào),從而簡(jiǎn)化了設(shè)計(jì)電路。; M! k# B5 h9 v# x: D- S1 W
' ^' d0 v0 Q- c. w# Y& P
來(lái)源:牛x的工程師網(wǎng)友。* y* e$ F  v: r
/ A" Z( ?8 f$ C1 l

3 h3 t) a7 F5 s# Z

4 o) l4 i7 ^9 e$ ^-END-/ w+ q  B! N' @& O3 _
往期推薦:點(diǎn)擊圖片即可跳轉(zhuǎn)閱讀
- Q) N% n' y6 V- o/ V+ D9 ?                                                       
& B( Z3 G3 K& H% S9 S6 W& N5 x                                                               
8 s  w% o! K8 |) G- b1 t- j                                                                       
: w4 Z) b# y* F: o$ k, w                                                                               
3 p" m! o# J. k + S5 v  D* w* K/ x8 r
                                                                               
) W1 |# v7 p% N+ A$ i* R. _$ F                                                                                        嵌入式應(yīng)用程序開(kāi)發(fā),經(jīng)常使用哪些數(shù)據(jù)結(jié)構(gòu)?
9 G4 G; R* D- O" n8 p                                                        8 v* i# a# O, C2 h
                                                                . E+ ~  `1 ^; I" b5 o8 S& |  r
                                                                       
: s5 N$ X6 m3 b8 e* C' ?  p                                                                                , G! w( s. }8 `. d8 [5 U
: K2 ?7 v$ |0 M9 L$ K0 s
                                                                                " u7 Y* a& N' S$ n# Q; ^9 T, z/ o
                                                                                        嵌入式 C 語(yǔ)言運(yùn)行時(shí)的錯(cuò)誤處理機(jī)制
9 C+ n' F+ Z) Z8 L                                                               
/ m/ Y- J; l2 K                                                                        & U! o: Y5 k2 ]. t/ X; f# M
                                                                                8 D" E  F0 i# O1 A' {

& N: T2 J2 }, ]; q2 N. ?8 F                                                                                3 a7 k# z7 R1 Q: J) M! Z
                                                                                        今年快過(guò)完了,明年準(zhǔn)備進(jìn)廠(chǎng)搞嵌入式工控,提前了解各方行業(yè)信息!
# J( P) b* o, D7 ~2 L; ~                                                                                8 a; h$ \# l# _, m5 ^- o% {
                                                                        2 v" N- J! ~. k" r6 g- C5 S9 S5 S
                                                                8 {5 W5 n/ _8 t, _# W2 C
                                                        我是老溫,一名熱愛(ài)學(xué)習(xí)的嵌入式工程師! K4 o8 T* f- Q9 q  l8 R: ~" ?$ m
關(guān)注我,一起變得更加優(yōu)秀!

發(fā)表回復(fù)

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表