RS-485總線的方向控制如何實(shí)現(xiàn)?要注意什么?
A:準(zhǔn)雙工模式的RS-485會(huì)涉及這一問(wèn)題,對(duì)于對(duì)于4線制的RS-485,因?yàn)樾盘?hào)是單向傳輸?shù)?,不存在這樣的問(wèn)題。因?yàn)闇?zhǔn)雙工要在一條總線上傳輸上行和下行的信號(hào)。要解決這個(gè)問(wèn)題,分兩個(gè)方面考慮----我們?cè)诜治鲞@個(gè)問(wèn)題時(shí)將我們認(rèn)識(shí)到的都寫(xiě)進(jìn)去,以便給大家提供一個(gè)電路設(shè)計(jì)時(shí)、考慮和分析處理問(wèn)題的綜合參考,這也許不是很通用的范例,但對(duì)我們來(lái)說(shuō),有這樣的例子已經(jīng)是很滿(mǎn)足的“范例”了。值得提醒的是,部分同學(xué)可能認(rèn)為高手很特別,其實(shí)不然,他們會(huì)的東西你可能早知道大概了,但他們手里的知道與多少存在點(diǎn)生疏的情況相比,他們的知識(shí)比較活而有序,而你的比較散亂而無(wú)序,象一盤(pán)散沙,多與他們交流,你很快就會(huì)發(fā)現(xiàn)自己離高手的差距并不大,只是在應(yīng)用上,時(shí)不時(shí)出現(xiàn)這個(gè)想不到那個(gè)想不到。他們能這樣是靠積累得來(lái)的,靠自己的磨練出來(lái)的。你付出了同樣的勞動(dòng),應(yīng)該不難趕上和超過(guò)他們。
本文引用地址:http://www.ex-cimer.com/article/201612/330159.htm一、注意事項(xiàng)----設(shè)計(jì)電路前要考慮什么問(wèn)題?
存在這樣的問(wèn)題的位置有2處:收發(fā)節(jié)點(diǎn)和線路中繼器。為了防止驅(qū)動(dòng)器沖突,必須考慮方向控制的問(wèn)題。如圖,理論上有接收優(yōu)先和發(fā)送優(yōu)先方法。如圖1中的上和下的兩個(gè)接法,是接收優(yōu)先的方法。所謂接收優(yōu)先,就是如果處于接收狀態(tài),硬件電路自動(dòng)關(guān)閉發(fā)送功能;反之,如果電路處于發(fā)送狀態(tài)下硬件電路自動(dòng)關(guān)閉接收功能,甚至可以關(guān)斷接收器進(jìn)行發(fā)送,那么就是發(fā)送優(yōu)先。
事實(shí)上,發(fā)送優(yōu)先的方法是不可行的,但人們往往最先想到采用這種方法。因?yàn)槿绻娐反嬖诮邮諗?shù)據(jù)的時(shí)候已經(jīng)說(shuō)明其它節(jié)點(diǎn)的驅(qū)動(dòng)器也在工作,如果這時(shí)強(qiáng)行發(fā)送數(shù)據(jù)不但會(huì)自己的數(shù)據(jù)發(fā)送不成還會(huì)破壞其它節(jié)點(diǎn)正在發(fā)送的數(shù)據(jù)。因此,對(duì)于兩線制的RS-485來(lái)說(shuō),只能采取接收優(yōu)先的方法。這是用RS-485做信號(hào)雙向傳輸時(shí)首先要注意的問(wèn)題。
另一個(gè)問(wèn)題是要注意RS-485的定義和數(shù)據(jù)的形式:線路側(cè)和設(shè)備側(cè),有效數(shù)據(jù)都是低電平而不是高電平,這是RS-485的定義所決定的。如圖2,發(fā)送器和接收器兩部分都如此。(如需了解為什么要選擇是低電平有效,請(qǐng)參閱“Q115.數(shù)字電路為什么是低電平有效的多?”)。數(shù)據(jù)形式是不可以控制的,如連續(xù)或間斷地出現(xiàn)0或1,在此期間,接收器不能因?yàn)橐粫r(shí)的電平轉(zhuǎn)換就釋放總線給發(fā)送器,以便讓接收器可以收到連結(jié)的1(通常0沒(méi)有問(wèn)題,因?yàn)槲覀兛紤]問(wèn)題就是從它開(kāi)始的)。
二、如何實(shí)施?
表面上接收優(yōu)先很容易實(shí)現(xiàn),但實(shí)際上要考慮的問(wèn)題并不是那么簡(jiǎn)單的。我們下面把文件寫(xiě)長(zhǎng)一點(diǎn),逐個(gè)將問(wèn)題加以細(xì)剖。
1 目標(biāo)及對(duì)目標(biāo)的理解
如果線路收發(fā)器有單片機(jī),問(wèn)題比較容易解決,方向控制由節(jié)點(diǎn)主機(jī)的I/O實(shí)施控制就是了。不過(guò),這并不是絕對(duì)沒(méi)有問(wèn)題。畢竟它也要處理時(shí)間。我們現(xiàn)在的目標(biāo)是最大限度的避免軟件控制而使用硬件控制,并適合線路中繼器沒(méi)有單片機(jī)支持的要求。
如果節(jié)點(diǎn)類(lèi)似于中繼器性質(zhì),那么就不會(huì)再有單片機(jī)支持。這時(shí),只有依靠硬件實(shí)現(xiàn)。純硬件實(shí)現(xiàn),可以避開(kāi)軟件問(wèn)題,工作可靠性和對(duì)線路數(shù)據(jù)的破壞性要下降。因此,下面我們重點(diǎn)分析討論這個(gè)問(wèn)題。
如圖1,我們已經(jīng)否定了中間一個(gè)圖的發(fā)送優(yōu)先方式----狠狠地給它打一個(gè)叉叉!那么,剩下的雙向轉(zhuǎn)發(fā)電路還是已經(jīng)是否完善了?觀察發(fā)現(xiàn),當(dāng)線路處于空閑狀態(tài)或一旦輸出高電平時(shí),所有接收器都將被鎖定在高電平輸出----所有的接收器都處于被禁止?fàn)顟B(tài)而沒(méi)有一個(gè)可以能被打開(kāi)----無(wú)論此時(shí)線路上A、B端是高電平還是低電平,都不能為接收器所接收。與此同時(shí),此時(shí)的驅(qū)動(dòng)器是全部打開(kāi)的。不論4腳的電平是高或是低,都被直接送出線路A、B上,這樣是無(wú)論哪個(gè)節(jié)點(diǎn)都在“發(fā)送”數(shù)據(jù),因而,也無(wú)論哪個(gè)節(jié)點(diǎn)也發(fā)送不了數(shù)據(jù)!可見(jiàn),圖1的方法過(guò)于簡(jiǎn)單,不能使用,只能作為一種原理性思路。
2 基本思路----了解矛盾的要點(diǎn)
從上述分析可以發(fā)現(xiàn),不論接收器輸出高電平還是低電平,都要關(guān)閉驅(qū)動(dòng)器才能保證接收不被發(fā)送器的輸出干擾與破壞總線上的數(shù)據(jù)。要做到這點(diǎn),似乎很矛盾。但我們也知道,總線上必定要有空閑時(shí)間的,不然就不能正常傳輸數(shù)據(jù)了。如何識(shí)別正在傳輸高電平(數(shù)據(jù)1狀態(tài))和空閑狀態(tài)并利用兩者的差異來(lái)解決所面臨的問(wèn)題,既是我們要解決的矛盾,也是我們現(xiàn)在的設(shè)計(jì)任務(wù)。為了在這種看上去很矛盾的情況下達(dá)到我們的目的,我們先進(jìn)行電路狀態(tài)確認(rèn):
- 發(fā)送器的屏蔽----為了在不發(fā)送數(shù)據(jù)時(shí)不管總線是真正空閑或是連續(xù)處于發(fā)送1的假空閑狀態(tài)、正在接收0的真占用狀態(tài),控制電路仍然使發(fā)送功能處于關(guān)閉狀態(tài)(被屏蔽);
- 發(fā)送器的開(kāi)啟----而只有在確認(rèn)不是正在接收數(shù)據(jù)時(shí)再通過(guò)“發(fā)送控制”信號(hào)來(lái)撒銷(xiāo)對(duì)發(fā)送功能的屏蔽就是電路要實(shí)現(xiàn)的功能----體現(xiàn)了完全的接收優(yōu)先的前提;
- 防止數(shù)據(jù)倒灌----當(dāng)然,發(fā)送時(shí)數(shù)據(jù)不能倒灌回來(lái)(發(fā)送時(shí),接收控制端必須為低電平)。如若不然,自己發(fā)送的低電平信號(hào)反過(guò)來(lái)鎖死發(fā)送器就無(wú)法“發(fā)送”數(shù)據(jù)了。
- 狀態(tài)控制小結(jié)----只有在節(jié)點(diǎn)確認(rèn)數(shù)據(jù)線空閑后再主動(dòng)去開(kāi)啟驅(qū)動(dòng)器并占用總線。具體上可從數(shù)據(jù)的特點(diǎn)下手:總線上是不會(huì)連續(xù)多次發(fā)送全1或全0的數(shù)據(jù)的,因此,如果利用這一特點(diǎn)作為觸發(fā)事件,每次給總線以一定的占用時(shí)間t就可以解決問(wèn)題。硬件上能實(shí)現(xiàn)這個(gè)要求的就是單穩(wěn)態(tài)觸發(fā)器。
3 換向控制
現(xiàn)在讓我們的看看圈圈設(shè)計(jì)的一個(gè)電路(圖3)----這個(gè)電路是他改了幾次后出來(lái)的,電路在工作上有單穩(wěn)態(tài)電路的特點(diǎn),電路圖如圖3所示。詳見(jiàn)通訊技術(shù)的帖子“請(qǐng)教:rs485的方向控制一般怎么實(shí)現(xiàn)”(因本篇跟蹤此帖進(jìn)行修改,故而標(biāo)題就那樣起了)。圈圈的這個(gè)圖,除了參數(shù)需要調(diào)整外,原理是基本上可行的,目前的問(wèn)題是(不管是不是高速傳輸),可能因觸發(fā)開(kāi)通時(shí)間影響導(dǎo)致最早發(fā)送數(shù)據(jù)丟失或損壞(因?yàn)镃1和R3是有時(shí)間常數(shù)的,雖然充電時(shí)是經(jīng)過(guò)Q1進(jìn)行,時(shí)間很短,但不能不考慮數(shù)據(jù)被破壞的可能。稍后詳之。)。原理/邏輯上,如果不考慮接收高電平數(shù)據(jù),Q2和Q4還可以省去。電路中最值得注意的是R2的設(shè)置比較妙,它是一個(gè)“軟”下拉電阻:在C2的維持下,即使存在持續(xù)接收高電平時(shí)有“發(fā)送”信號(hào),也由于Q3的大電流作用而屏蔽了Tx信號(hào)的下拉。這個(gè)電路,開(kāi)始看C2是多余的,但注意到存在連續(xù)高電平的數(shù)據(jù)后就能明白少不了它。只是它的取值比較困難----既要考慮維持連續(xù)接收高電平時(shí)通過(guò)Q2為Q3提供電流,也要考慮時(shí)間常數(shù)的問(wèn)題。另外,僅僅從接收器來(lái)看,C1是多余的,但它同樣存在連續(xù)發(fā)送高電平數(shù)據(jù)的問(wèn)題,因此不能少。好在C1和C2的時(shí)間常數(shù)并不耦合,具有相互獨(dú)立性,因此,調(diào)試還是比較容易些。
從以上分析看出,完善電路的接收控制后,最關(guān)鍵的問(wèn)題是C1和R3處DE(高電平數(shù)據(jù)發(fā)送使能)和/RE(低電平數(shù)據(jù)接收使能)引腳的電平問(wèn)題,即充電時(shí)間受制于Q1的導(dǎo)通電阻,應(yīng)當(dāng)因此而帶來(lái)的一些影響。
總的來(lái)看,真正傳輸數(shù)據(jù)前先打開(kāi)驅(qū)動(dòng)器的條件不應(yīng)改變,只有這樣才能保證數(shù)據(jù)可靠地傳輸(按常規(guī)就是這樣做的)?,F(xiàn)在的問(wèn)題是:打開(kāi)驅(qū)動(dòng)器的時(shí)間總是要占用時(shí)間的,要求還必須是低電平,高電平不起任何作用。同時(shí),直接用數(shù)據(jù)打開(kāi)驅(qū)動(dòng)器是不可取的,這樣做有損壞數(shù)據(jù)的危險(xiǎn)。因此,可以這樣說(shuō),設(shè)計(jì)思路上與使用I/O口先打開(kāi)DE再發(fā)送數(shù)據(jù)的思路是一樣的。為了達(dá)到不需要I/O干預(yù),那么就需要使用專(zhuān)門(mén)的開(kāi)啟代碼機(jī)制解決吧。
通過(guò)線與讓I/O控制先送出開(kāi)啟電平來(lái)開(kāi)啟驅(qū)動(dòng)器比之由數(shù)據(jù)線先送一個(gè)字節(jié)開(kāi)啟代碼相對(duì)簡(jiǎn)單,雖然電路稍為復(fù)雜一些,但不對(duì)接收方識(shí)別提出要求。線與的方法優(yōu)點(diǎn)是之一占用時(shí)間少又類(lèi)似常規(guī)機(jī)制;第二個(gè)優(yōu)點(diǎn)是節(jié)省光耦,即在線路采用光隔離措施時(shí)能與數(shù)據(jù)線共用一個(gè)光耦。但必須在發(fā)送真正的數(shù)據(jù)前及時(shí)退出。為了及時(shí)準(zhǔn)確控制,感覺(jué)用單穩(wěn)態(tài)觸發(fā)器為好。圖3的電路,影響時(shí)間常數(shù)的主要因素是數(shù)據(jù)速率。速率高,時(shí)間常數(shù)要小些,速率低,時(shí)間常數(shù)要大些。調(diào)試相對(duì)難是這個(gè)電路的不一定的不足。不過(guò),要注意這個(gè)電路的兩個(gè)時(shí)間常數(shù)并不相同,原因是C2要經(jīng)過(guò)Q4的發(fā)射結(jié)放電,而C1不存在這樣的問(wèn)題。該電路的不足還有收發(fā)控制電平不是數(shù)字信號(hào)而是模擬信號(hào)。
編輯中……
參見(jiàn)圖2的真值表。只要把SN75LBC184的2、3腳接到1腳就可以實(shí)現(xiàn)自動(dòng)實(shí)現(xiàn)方向控制了。這時(shí),要求控制器能夠自動(dòng)偵測(cè)線路空閑狀態(tài)。只有在到總線空閑一定的時(shí)間后才能實(shí)施自己的數(shù)據(jù)發(fā)送(由波特率決定)。
為了解決這個(gè)問(wèn)題,可以按圖3的方法進(jìn)行,圖1只能作為理解接收優(yōu)先的簡(jiǎn)易電路看待。
圖1 75LBC184雙向傳輸.gif
圖2
圖3 RS-485的雙向傳輸之換向控制.jpg
編輯中
評(píng)論