❶ 看過單片機與MAX485的控制電路,一般收發都要分別控制轉換的,但是一般的RS485都是自行收發的,怎麼弄
「單片機與MAX485的控制電路」,485通信屬於串列通信的一種,通信方式與232串口通信類同專,
不過:
232通信是屬全雙工的
485通信是半雙工的
全雙工與半雙工的區別是什麼呢?網路一下,比比皆是,簡單解釋一下,半雙工由於單行道公路,某一時刻只能一個方向走車!
這樣就要控制485的方向了!怎麼控!
MAX485晶元資料表明,他可以方向控制的,通過單片機IO對485的方向控制,RE/控制,
一般來說,MAX485構成的485通信採用主從方式,也就是你所說的應答方式。
「難道在這個過程中要給出控制方向的命令嗎?」,不是命令,是一個指令,
主485請求,從485回復,也就是說,從的一直處於接受等待狀態,如果收到數據後,即可回復
❷ 485匯流排電路到底怎麼設計
485匯流排最大的特點就是一主多從,顧名思義,也就是一個主機,多個從機,一個匯流排上同時只能有一個主設備發起數據傳輸,同時只能有一個設備回復數據。485匯流排理論上可以同時連接256的設備,但是在實際不能接這么多,具體設備數量還需要設計測試。這個和驅動晶元、線徑、走線方式等等因素有關。理論上設備目前485匯流排廣泛的用於工業儀表等領域。
一條RS485匯流排能並聯多少台設備要看什麼晶元,並且和所使用的電纜的品質相關,節點越多、傳輸距離越遠、電磁環境越惡劣,所選的電纜要求就越高。
支持32個節點數的晶元:SN75176,SN75276,SN75179,SN75180,MAX485,MAX488,MAX490
支持64個節點數的晶元:SN75LBC184
支持128個節點數的晶元:MAX487,MAX1487
支持256個節點數的晶元:,,MAX3080~MAX3089
目前小編做的項目中經常使用的是6LB184,數據首發還是比較的穩定,在傳輸距離、並聯數量上效果都還是不錯的
上邊是小編一直在用的485通信自動收發電路,不但要把電路送給你,還要把電路原理給你講明白了。實測波特率9600不會有問題,但是,波特率115200的話,曾經出現過數據首發不穩定的問題。
我們先看看普通的收發電路。
❸ RS485通信協議詳解
上邊是我一直在用的485通信自動收發電路,不但要把電路送給你,還要把電路原理給你講明白了。實測波特率9600不會有問題,但是,波特率115200的話,曾經出現過問題。
我們先看看普通的收發電路。
普通的485電路,除了「用RXD連接485晶元的RO引腳、用TXD連接485晶元的DI引腳」,還會用一個單片機的普通IO引腳連接到RE、DE引腳上。
當單片機要發送數據的時候,控制CTRL為高電平,數據通過TXD發送出去。
當單片機要接收數據的時候,控制CTRL為低電平,數據通過RXD接收回來。
然而,自動收發電路,就是不用單片機引腳CTRL,當數據進來的時候,數據會自動通過RXD到單片機,當需要發送數據時,自動通過TXD發送出去。也就是只需要連接單片機的RXD和TXD引腳就可以,無需用單片機引腳連接485晶元的DE RE引腳。
文章中第一張圖,就是實現自動收發的電路,實際上,自動收發的電路,還有好幾種連接方法。今天,我們只研究這一種我經常用的。
很多人,都會使用這個電路,但是不知道其中的原理。(是的,就是在說你呢!)
所以今天我來給大家解釋一下其中的工作原理,詳細到每個元器件。
電阻R1的作用:
RXD連接電阻R1到485晶元的RO,這里R1的作用是限流,保護引腳。R1的大小,可以選擇330歐、470歐、560歐、1K。
電阻R2、R3和三極體Q1:
電阻R2、電阻R3和NPN三極體Q1組成一個典型的三極體開關電路。R3是限流電阻,最好選擇4.7K,也可以選擇10K。R2是上拉電阻,可以選擇4.7K,也可以選擇10K。
R3為什麼最好選擇4.7K,我之前寫過一篇文章,詳細的提到過,主要是你需要了解三極體工作在放大區、截至區和飽和區的特點。上瑞生網,搜索「三極體」,有一篇文章的題目叫做《把三極體當開關用 基極限流電阻怎麼選》。
NPN三極體,高電平導通,這個大家都知道。當TXD高電平,三極體導通,RE DE引腳接地,進入接收模式。當TXD低電平,三極體截止,RE DE引腳接高電平,進入發送模式。
電容C1:
C1是電源旁路電容,作用是給485晶元提供一個干凈的電源,使它穩定的工作。
你在設計電路板的時候,如果晶元沒有特殊要求,需要把每個晶元旁邊放上一個0.1微法電容。在PCB布線的時候,電容到電源引腳的距離最好在2mm以內。
電阻R4和R5:
R4是下拉電阻,接到B上。R5是上拉電阻,接到A上。為什麼要這樣做,下面會講,現在還不是時候,請繼續往下看。
雙向穩壓二極體D1、D2、D3:
這里使用的雙向穩壓二極體型號是SMAJ6.5CA。他們的作用是把 A、B引腳對地的電壓 以及 A和B引腳之間的電壓 ,牽制到6.5V以內,保護485晶元。
從SP3485晶元手冊得到,AB的耐壓值是正負15V以內。
有人很好奇,為什麼會看這兩個參數?因為AB這兩個引腳就是Drivers output和Receivers input。請看下圖:
接線端子P1:
是用來連接外面需要通信的A和B電線的。(這個好像不用說啊!)
現在,每個元器件就介紹完了,接下來說說為什麼可以實現自動收發功能。
你們最大的疑問就是:DI引腳本來是接TXD的,但是電路中直接接地了,那豈不是發送的數據會一直都是0?
答案就在下方。
發送數據過程:
發送數據,用的是單片機的TXD引腳,也就是說,在TXD引腳上表現數據。
例如要發送數據0x55,寫成二進制就是0x01010101,TXD引腳上就會依次的用高低電平體現1和0。
當TXD發送0時,三極體不導通,DE接高電平,進入發送模式,485晶元會把DI上的電平反應到AB引腳上輸出,因為DI已經接地,所以AB引腳會傳輸0。你看看,當TXD發送0時,AB引腳發送0。
當TXD發送1時,三極體導通,RE接低電平,進入接收模式,485晶元的AB引腳進入高阻狀態,因為R5把A拉高,R4把B拉低,所以,AB傳輸的是1。你看看,當TXD發送1時,AB引腳發送1。
總結,TXD發1,AB就發1;TXD發0,AB就發0。
接收數據過程:
接收數據,用的是單片機引腳RXD,也就是說,在RXD引腳上表現數據。
在接收數據的過程中,TXD引腳是一直保持高電平的,當TXD是高電平時,RE是低電平,正好調理成了接收狀態,然後485晶元的RO引腳(也就是接RXD的引腳)就會反應AB傳輸過來的數據。
知道了這個電路的接收和發送數據的過程,那就已經完全了解了。你現在如果感覺到還是迷迷糊糊,自己做一個電路,實踐一下,思路立馬會變得清晰。
本人從事單片機工作,算是個渣渣,但是在渣渣也有一顆想學習的心呀!!!!我會不定期的分享一下我覺得對我們這行業有用的文章,這也算是我成長一種記錄吧!
原文鏈接:https://blog.csdn.net/lin_o/article/details/78490718