上邊是485通信自動(dòng)收發(fā)電路,不但要把電路送給你,還要把電路原理給你講明白了。實(shí)測(cè)波特率9600不會(huì)有問(wèn)題,但是,波特率115200的話(huà),曾經(jīng)出現(xiàn)過(guò)問(wèn)題。
我們先看看?普通的收發(fā)電路?。
普通的485電路,除了“用RXD連接485芯片的RO引腳、用TXD連接485芯片的DI引腳”,還會(huì)用一個(gè)單片機(jī)的普通IO引腳連接到RE、DE引腳上。
當(dāng)單片機(jī)要發(fā)送數(shù)據(jù)的時(shí)候,控制CTRL為?高電平?,數(shù)據(jù)通過(guò)TXD發(fā)送出去。
當(dāng)單片機(jī)要接收數(shù)據(jù)的時(shí)候,控制CTRL為?低電平?,數(shù)據(jù)通過(guò)RXD接收回來(lái)。
然而,?自動(dòng)收發(fā)?,就是不用單片機(jī)引腳CTRL,當(dāng)數(shù)據(jù)進(jìn)來(lái)的時(shí)候,數(shù)據(jù)會(huì)自動(dòng)通過(guò)RXD到單片機(jī),當(dāng)需要發(fā)送數(shù)據(jù)時(shí),自動(dòng)通過(guò)TXD發(fā)送出去。也就是?只需要連接單片機(jī)的RXD和TXD引腳就可以,無(wú)需用單片機(jī)引腳連接485芯片的DE RE引腳?。
文章中第一張圖,就是實(shí)現(xiàn)自動(dòng)收發(fā)的電路,實(shí)際上,自動(dòng)收發(fā)的電路,還有好幾種連接方法。今天,我們只研究這一種我經(jīng)常用的。
很多人,都會(huì)使用這個(gè)電路,但是不知道其中的原理。(是的,就是在說(shuō)你呢?。?/p>
所以今天我來(lái)給大家解釋一下其中的工作原理,?詳細(xì)到每個(gè)元器件?。
電阻R1的作用:
RXD連接電阻R1到485芯片的RO,這里R1的作用是限流,保護(hù)引腳。R1的大小,可以選擇330歐、470歐、560歐、1K。
電阻R2、R3和三極管Q1:
電阻R2、電阻R3和NPN三極管Q1組成一個(gè)典型的?三極管開(kāi)關(guān)電路?。R3是限流電阻,最好選擇4.7K,也可以選擇10K。R2是上拉電阻,可以選擇4.7K,也可以選擇10K。
R3為什么最好選擇4.7K,主要是你需要了解三極管工作在放大區(qū)、截至區(qū)和飽和區(qū)的特點(diǎn)。
NPN三極管,高電平導(dǎo)通,這個(gè)大家都知道。當(dāng)TXD高電平,三極管導(dǎo)通,RE DE引腳接地,進(jìn)入接收模式。當(dāng)TXD低電平,三極管截止,RE DE引腳接高電平,進(jìn)入發(fā)送模式。
電容C1:
C1是電源旁路電容,作用是給485芯片提供一個(gè)干凈的電源,使它穩(wěn)定的工作。
你在設(shè)計(jì)電路板的時(shí)候,如果芯片沒(méi)有特殊要求,需要把每個(gè)芯片旁邊放上一個(gè)0.1微法電容。在PCB布線(xiàn)的時(shí)候,電容到電源引腳的距離最好在2mm以?xún)?nèi)。
電阻R4和R5:
R4是下拉電阻,接到B上。R5是上拉電阻,接到A上。為什么要這樣做,下面會(huì)講,現(xiàn)在還不是時(shí)候,請(qǐng)繼續(xù)往下看。
雙向穩(wěn)壓二極管D1、D2、D3:
這里使用的雙向穩(wěn)壓二極管型號(hào)是SMAJ6.5CA。他們的作用是把A、B引腳對(duì)地的電壓以及?A和B引腳之間的電壓?,牽制到6.5V以?xún)?nèi),保護(hù)485芯片。
從SP3485芯片手冊(cè)得到,AB的耐壓值是正負(fù)15V以?xún)?nèi)。
有人很好奇,為什么會(huì)看這兩個(gè)參數(shù)?因?yàn)锳B這兩個(gè)引腳就是Drivers output和Receivers input。請(qǐng)看下圖:
接線(xiàn)端子P1:
是用來(lái)連接外面需要通信的A和B電線(xiàn)的。(這個(gè)好像不用說(shuō)?。。?/p>
現(xiàn)在,每個(gè)元器件就介紹完了,接下來(lái)說(shuō)說(shuō)?為什么可以實(shí)現(xiàn)自動(dòng)收發(fā)功能?。
你們最大的疑問(wèn)就是:DI引腳本來(lái)是接TXD的,但是電路中直接接地了,那豈不是發(fā)送的數(shù)據(jù)會(huì)一直都是0?
答案就在下方。
發(fā)送數(shù)據(jù)過(guò)程:
發(fā)送數(shù)據(jù),用的是單片機(jī)的TXD引腳,也就是說(shuō),在TXD引腳上表現(xiàn)數(shù)據(jù)。
例如要發(fā)送數(shù)據(jù)0x55,寫(xiě)成二進(jìn)制就是0x01010101,TXD引腳上就會(huì)依次的用高低電平體現(xiàn)1和0。
當(dāng)TXD發(fā)送0時(shí)?,三極管不導(dǎo)通,DE接高電平,進(jìn)入發(fā)送模式,485芯片會(huì)把DI上的電平反應(yīng)到AB引腳上輸出,因?yàn)镈I已經(jīng)接地,所以?AB引腳會(huì)傳輸0?。你看看,當(dāng)TXD發(fā)送0時(shí),AB引腳發(fā)送0。
當(dāng)TXD發(fā)送1時(shí)?,三極管導(dǎo)通,RE接低電平,進(jìn)入接收模式,485芯片的AB引腳進(jìn)入高阻狀態(tài),因?yàn)镽5把A拉高,R4把B拉低,所以,?AB傳輸?shù)氖??。你看看,當(dāng)TXD發(fā)送1時(shí),AB引腳發(fā)送1。
總結(jié)?,TXD發(fā)1,AB就發(fā)1;TXD發(fā)0,AB就發(fā)0。
接收數(shù)據(jù)過(guò)程:
接收數(shù)據(jù),用的是單片機(jī)引腳RXD,也就是說(shuō),在RXD引腳上表現(xiàn)數(shù)據(jù)。
在接收數(shù)據(jù)的過(guò)程中,?TXD引腳是一直保持高電平的?,當(dāng)TXD是高電平時(shí),RE是低電平,?正好調(diào)理成了接收狀態(tài)?,然后485芯片的RO引腳(也就是接RXD的引腳)就會(huì)反應(yīng)AB傳輸過(guò)來(lái)的數(shù)據(jù)。
知道了這個(gè)電路的接收和發(fā)送數(shù)據(jù)的過(guò)程,那就已經(jīng)完全了解了。你現(xiàn)在如果感覺(jué)到還是迷迷糊糊,自己做一個(gè)電路,實(shí)踐一下,思路立馬會(huì)變得清晰。
作者:瑞生,
來(lái)源:科技老頑童/芯片之家(ID:chiphome-dy)
審核編輯:湯梓紅
?
評(píng)論
查看更多