上邊是我一直在用的485通信自動收發(fā)電路空骚,不但要把電路送給你纺讲,還要把電路原理給你講明白了。實測波特率9600不會有問題囤屹,但是熬甚,波特率115200的話,曾經(jīng)出現(xiàn)過問題肋坚。
我們先看看普通的收發(fā)電路乡括。
普通的485電路,除了“用RXD連接485芯片的RO引腳智厌、用TXD連接485芯片的DI引腳”诲泌,還會用一個單片機的普通IO引腳連接到RE、DE引腳上峦剔。
當(dāng)單片機要發(fā)送數(shù)據(jù)的時候档礁,控制CTRL為高電平,數(shù)據(jù)通過TXD發(fā)送出去吝沫。
當(dāng)單片機要接收數(shù)據(jù)的時候呻澜,控制CTRL為低電平,數(shù)據(jù)通過RXD接收回來惨险。
然而羹幸,自動收發(fā)電路,就是不用單片機引腳CTRL辫愉,當(dāng)數(shù)據(jù)進來的時候栅受,數(shù)據(jù)會自動通過RXD到單片機,當(dāng)需要發(fā)送數(shù)據(jù)時恭朗,自動通過TXD發(fā)送出去屏镊。也就是只需要連接單片機的RXD和TXD引腳就可以,無需用單片機引腳連接485芯片的DE RE引腳痰腮。
文章中第一張圖而芥,就是實現(xiàn)自動收發(fā)的電路,實際上膀值,自動收發(fā)的電路棍丐,還有好幾種連接方法。今天沧踏,我們只研究這一種我經(jīng)常用的歌逢。
很多人,都會使用這個電路翘狱,但是不知道其中的原理秘案。(是的,就是在說你呢!)
所以今天我來給大家解釋一下其中的工作原理踏烙,詳細到每個元器件师骗。
電阻R1的作用:
RXD連接電阻R1到485芯片的RO,這里R1的作用是限流讨惩,保護引腳。R1的大小寒屯,可以選擇330歐荐捻、470歐、560歐寡夹、1K处面。
電阻R2、R3和三極管Q1:
? ??電阻R2菩掏、電阻R3和NPN三極管Q1組成一個典型的三極管開關(guān)電路魂角。R3是限流電阻,最好選擇4.7K智绸,也可以選擇10K野揪。R2是上拉電阻,可以選擇4.7K瞧栗,也可以選擇10K斯稳。
R3為什么最好選擇4.7K,我之前寫過一篇文章迹恐,詳細的提到過挣惰,主要是你需要了解三極管工作在放大區(qū)、截至區(qū)和飽和區(qū)的特點殴边。上瑞生網(wǎng)憎茂,搜索“三極管”,有一篇文章的題目叫做《把三極管當(dāng)開關(guān)用 基極限流電阻怎么選》锤岸。
NPN三極管竖幔,高電平導(dǎo)通,這個大家都知道能耻。當(dāng)TXD高電平赏枚,三極管導(dǎo)通,RE DE引腳接地晓猛,進入接收模式饿幅。當(dāng)TXD低電平,三極管截止戒职,RE DE引腳接高電平栗恩,進入發(fā)送模式。
電容C1:
C1是電源旁路電容洪燥,作用是給485芯片提供一個干凈的電源磕秤,使它穩(wěn)定的工作乳乌。
你在設(shè)計電路板的時候,如果芯片沒有特殊要求市咆,需要把每個芯片旁邊放上一個0.1微法電容汉操。在PCB布線的時候,電容到電源引腳的距離最好在2mm以內(nèi)蒙兰。
電阻R4和R5:
R4是下拉電阻磷瘤,接到B上。R5是上拉電阻搜变,接到A上采缚。為什么要這樣做,下面會講挠他,現(xiàn)在還不是時候塞椎,請繼續(xù)往下看傲宜。
雙向穩(wěn)壓二極管D1、D2、D3:
這里使用的雙向穩(wěn)壓二極管型號是SMAJ6.5CA灿椅。他們的作用是把A屈糊、B引腳對地的電壓以及A和B引腳之間的電壓蔬蕊,牽制到6.5V以內(nèi)块饺,保護485芯片。
從SP3485芯片手冊得到朴沿,AB的耐壓值是正負(fù)15V以內(nèi)猜谚。
有人很好奇,為什么會看這兩個參數(shù)赌渣?因為AB這兩個引腳就是Drivers output和Receivers input魏铅。請看下圖:
接線端子P1:
是用來連接外面需要通信的A和B電線的。(這個好像不用說凹嵛摺@婪肌)
現(xiàn)在,每個元器件就介紹完了鸿竖,接下來說說為什么可以實現(xiàn)自動收發(fā)功能沧竟。
你們最大的疑問就是:DI引腳本來是接TXD的,但是電路中直接接地了缚忧,那豈不是發(fā)送的數(shù)據(jù)會一直都是0悟泵?
答案就在下方。
發(fā)送數(shù)據(jù)過程:
發(fā)送數(shù)據(jù)闪水,用的是單片機的TXD引腳糕非,也就是說,在TXD引腳上表現(xiàn)數(shù)據(jù)。
例如要發(fā)送數(shù)據(jù)0x55朽肥,寫成二進制就是0x01010101禁筏,TXD引腳上就會依次的用高低電平體現(xiàn)1和0。
當(dāng)TXD發(fā)送0時衡招,三極管不導(dǎo)通篱昔,DE接高電平,進入發(fā)送模式始腾,485芯片會把DI上的電平反應(yīng)到AB引腳上輸出旱爆,因為DI已經(jīng)接地,所以AB引腳會傳輸0窘茁。你看看,當(dāng)TXD發(fā)送0時脆烟,AB引腳發(fā)送0山林。
當(dāng)TXD發(fā)送1時,三極管導(dǎo)通邢羔,RE接低電平驼抹,進入接收模式,485芯片的AB引腳進入高阻狀態(tài)拜鹤,因為R5把A拉高框冀,R4把B拉低,所以敏簿,AB傳輸?shù)氖?明也。你看看,當(dāng)TXD發(fā)送1時惯裕,AB引腳發(fā)送1温数。
總結(jié),TXD發(fā)1蜻势,AB就發(fā)1撑刺;TXD發(fā)0,AB就發(fā)0握玛。
接收數(shù)據(jù)過程:
接收數(shù)據(jù)够傍,用的是單片機引腳RXD,也就是說挠铲,在RXD引腳上表現(xiàn)數(shù)據(jù)冕屯。
在接收數(shù)據(jù)的過程中,TXD引腳是一直保持高電平的市殷,當(dāng)TXD是高電平時愕撰,RE是低電平,正好調(diào)理成了接收狀態(tài),然后485芯片的RO引腳(也就是接RXD的引腳)就會反應(yīng)AB傳輸過來的數(shù)據(jù)搞挣。
知道了這個電路的接收和發(fā)送數(shù)據(jù)的過程带迟,那就已經(jīng)完全了解了。你現(xiàn)在如果感覺到還是迷迷糊糊囱桨,自己做一個電路仓犬,實踐一下,思路立馬會變得清晰舍肠。
本人從事單片機工作搀继,算是個渣渣,但是在渣渣也有一顆想學(xué)習(xí)的心呀4溆铩_辞!肌括!我會不定期的分享一下我覺得對我們這行業(yè)有用的文章点骑,這也算是我成長一種記錄吧!
原文鏈接:https://blog.csdn.net/lin_duo/article/details/78490718