波特率自適應(yīng)的RS-485中繼器設(shè)計(jì)
RS-4805收發(fā)器采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力;加上接收器具有高靈敏度,能檢測(cè)低達(dá)200 mV的電壓,故傳輸信號(hào)能在千米以外得到恢復(fù)。使用RS-485總線(xiàn),一對(duì)雙絞線(xiàn)就能實(shí)現(xiàn)多站聯(lián)網(wǎng),構(gòu)成分布式系統(tǒng),且設(shè)備簡(jiǎn)單、價(jià)格低廉,能進(jìn)行長(zhǎng)距離通信,因而得到了廣泛的應(yīng)用。由于在雙絞線(xiàn)上的電平損耗,RS-485標(biāo)準(zhǔn)通信的最大傳輸距離是1 200 m,因此更遠(yuǎn)距離的應(yīng)用中必須使用中繼器。網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)與所選芯片驅(qū)動(dòng)能力和接收器的輸入阻抗有關(guān)。RS-485標(biāo)準(zhǔn)規(guī)定了最大總線(xiàn)負(fù)載為32個(gè)單位負(fù)載,若應(yīng)用中總線(xiàn)負(fù)載大于32個(gè)單位負(fù)載則必須使用中繼器。
1 RS-485中繼器原理[12]
RS-485是半雙工方式,兩線(xiàn)雙向傳送差分信號(hào),具有多點(diǎn)、雙向通信能力,即允許多個(gè)發(fā)送器和接收器連接到同一條總線(xiàn)上,傳輸線(xiàn)上信號(hào)的傳輸方向不定。因此,識(shí)別和控制好傳輸線(xiàn)上的信號(hào)傳遞方向是設(shè)計(jì)RS-485中繼器的關(guān)鍵。
RS-485標(biāo)準(zhǔn)規(guī)定:數(shù)據(jù)信號(hào)采用差分傳輸方式(differential driver mode),也稱(chēng)為“平衡傳輸”。它使用一對(duì)雙絞線(xiàn),將其中一根線(xiàn)定義為A,另一根線(xiàn)定義為B,如圖 1所示。
圖1 RS-485發(fā)送器的示意圖
通常情況下,RS485發(fā)送器A、B 之間的正電平在+2~+6 V,是一種邏輯狀態(tài);負(fù)電平在-6~-2 V,是另一種邏輯狀態(tài)。在RS-485發(fā)送器件中,一般有一個(gè)“使能”控制信號(hào),用于控制發(fā)送器與傳輸線(xiàn)的切斷和連接。當(dāng)“使能”端為低電平時(shí),發(fā)送器輸出處于高阻狀態(tài),稱(chēng)作“第三態(tài)”。它是有別于邏輯“1”與“0”的第三種狀態(tài)。
對(duì)于RS-485接收器,也作出與發(fā)送器相對(duì)的規(guī)定,收、發(fā)端通過(guò)平衡雙絞線(xiàn)將AA與BB 對(duì)應(yīng)相連。當(dāng)在接收端A、B 之間有大于+200 mV 的電平時(shí),輸出為正邏輯電平;小于-200 mV 時(shí),輸出為負(fù)邏輯電平。在接收器的接收平衡線(xiàn)上,電平范圍通常為200 mV~6 V,如圖2所示。
圖2 RS-485接收器的示意圖
RS-485 接收器同樣定義邏輯1(正邏輯電平)為B>A 的狀態(tài),邏輯0(負(fù)邏輯電平)為A>B 的狀態(tài),A、B 之間的壓差不小于200 mV。在RS-485 接收器件中,一般也有一個(gè)“使能”控制信號(hào),用于控制接收器與傳輸線(xiàn)的切斷和連接。當(dāng)“使能”端為高電平時(shí),接收器與傳輸線(xiàn)切斷,接收器輸出為高電平;當(dāng) “使能”端為低電平時(shí),接收器輸出電平與總線(xiàn)信號(hào)的邏輯電平一致。
RS-485中繼器原理圖如圖3所示。正常工作時(shí)主要有三個(gè)狀態(tài):空閑狀態(tài),數(shù)據(jù)從RS-485收發(fā)器U1邊的總線(xiàn)往RS-485收發(fā)器U2邊的總線(xiàn)傳送(簡(jiǎn)稱(chēng)“數(shù)據(jù)右傳狀態(tài)”),數(shù)據(jù)從RS-485收發(fā)器U2邊的總線(xiàn)往RS-485收發(fā)器U1邊的總線(xiàn)傳送(簡(jiǎn)稱(chēng)“數(shù)據(jù)左傳狀態(tài)”)。
圖3 RS-485中斷器原理圖
?。?)空閑狀態(tài)
當(dāng)中繼器上電啟動(dòng)運(yùn)行或總線(xiàn)上沒(méi)有數(shù)據(jù)傳送時(shí),中繼器工作在空閑狀態(tài)。RS-485收發(fā)器U1、U2均為接收數(shù)據(jù)狀態(tài),U1、U2的EN1、EN2引腳均為低電平。
?。?)數(shù)據(jù)右傳狀態(tài)
當(dāng)RS-485收發(fā)器U1邊檢測(cè)到連接其A、B引腳總線(xiàn)上的差動(dòng)信號(hào)有數(shù)據(jù)向右邊傳送時(shí),它通過(guò)RS-485收發(fā)器U1的RO引腳以RS-232的方式逐位接收數(shù)據(jù),并通過(guò)RS-485收發(fā)器U2的DI引腳以RS-232的方式逐位輸出數(shù)據(jù)。傳送順序?yàn)橄葌饕粋€(gè)低電平起始位,再傳8位數(shù)據(jù)位,最后傳1位高電平結(jié)束位,為一數(shù)據(jù)幀,此段時(shí)間U2的EN2引腳應(yīng)為高電平。此后U2將一直輸出高電平直到下一幀數(shù)據(jù)到來(lái)之前,U2的EN2引腳也應(yīng)為低電平且處于接收狀態(tài)。
?。?)數(shù)據(jù)左傳狀態(tài)
數(shù)據(jù)左傳狀態(tài)的過(guò)程與數(shù)據(jù)右傳狀態(tài)一致,只是在一數(shù)據(jù)幀時(shí)間段內(nèi)U2的EN2引腳應(yīng)為高電平。
當(dāng)總線(xiàn)上干擾較大時(shí)也有可能發(fā)生總線(xiàn)沖突,數(shù)據(jù)右傳狀態(tài)和數(shù)據(jù)左傳狀態(tài)同時(shí)發(fā)生。此時(shí),總線(xiàn)上的信號(hào)是無(wú)效的,但總線(xiàn)沖突(總線(xiàn)雙方同時(shí)活動(dòng))并不需要中繼器來(lái)處理和解決,而是由通信協(xié)議來(lái)處理和防止的。要求總線(xiàn)沖突(或干擾)結(jié)束后,RS-485中繼器的方向控制器總能自動(dòng)恢復(fù)正常工作。
2 幾種RS-485中繼器[16]
現(xiàn)有的RS-485中繼器通常采用三種方法來(lái)實(shí)現(xiàn):① 采用RC充放電延時(shí)與RS觸發(fā)器的配合來(lái)控制RS-485芯片的數(shù)據(jù)收發(fā)方向;② 采用單片機(jī)的定時(shí)器定時(shí)控制RS-485接口收發(fā)方向;③ 采用單片機(jī)串口監(jiān)視總線(xiàn)上的數(shù)據(jù),通過(guò)查表當(dāng)數(shù)據(jù)送給本中繼器下的終端時(shí)才開(kāi)啟數(shù)據(jù)傳輸通道。
第一種方法的缺點(diǎn)是采用電阻、電容組成延時(shí)電路。由于電阻或電容本身的誤差,運(yùn)行一段時(shí)間后電子器件老化產(chǎn)生的誤差以及溫度的變化,都會(huì)影響延時(shí)的準(zhǔn)確性,而且這種中繼器要求兩個(gè)字節(jié)之間的通信時(shí)間間隔必須大于一個(gè)字節(jié)數(shù)據(jù)的通信時(shí)間才能確保不丟失數(shù)據(jù),因此降低了通信速率。
第二、三種方法的缺點(diǎn)是采用單片機(jī)的中斷來(lái)檢測(cè)數(shù)據(jù)幀的起始位。單片機(jī)的中斷響應(yīng)須要一段時(shí)間,RS-485總線(xiàn)一個(gè)數(shù)據(jù)位的時(shí)間寬度應(yīng)大于單片機(jī)的中斷響應(yīng)時(shí)間,終端處理器才能檢測(cè)每數(shù)據(jù)幀的起始位,所以此兩種方法的通信速率也受到限制。特別是第三種方法中,單片機(jī)要通過(guò)對(duì)總線(xiàn)上通信內(nèi)容的監(jiān)聽(tīng)進(jìn)行相應(yīng)查表來(lái)決定本中繼器后面的總線(xiàn)是否與前面的總線(xiàn)連接。這種方法的缺點(diǎn)是要對(duì)總線(xiàn)的通信內(nèi)容進(jìn)行處理,這不僅降低了通信的實(shí)時(shí)性,而且還增加了系統(tǒng)通信協(xié)議的復(fù)雜性,降低了RS-485總線(xiàn)通信的可靠性。
3 波特率自適應(yīng)RS-485中繼器
在工業(yè)現(xiàn)場(chǎng)應(yīng)用中,RS-485總線(xiàn)的通信速度一般為2 400~115 200 bps,以前設(shè)計(jì)的RS-485中繼器控制RS-485收發(fā)器收發(fā)狀態(tài),以一數(shù)據(jù)幀時(shí)間寬度為單元。不同的波特率,控制RS-485收發(fā)器收發(fā)狀態(tài)的時(shí)間寬度也不同,所以RS-485總線(xiàn)的通信速度不同,需設(shè)置控制RS-485收發(fā)器收發(fā)狀態(tài)的時(shí)間寬度,以適應(yīng)所應(yīng)用RS-485總線(xiàn)的通信速度。
波特率自適應(yīng)RS-485中繼器的設(shè)計(jì)思路是: 控制RS-485收發(fā)器收發(fā)狀態(tài),以一數(shù)據(jù)位時(shí)間寬度為單元。若控制RS-485收發(fā)器收發(fā)狀態(tài)時(shí)間寬度適應(yīng)任意波特率的一數(shù)據(jù)位時(shí)間寬度,則RS- 485中繼器適應(yīng)任意RS-485總線(xiàn)的通信速度。為此設(shè)計(jì)波特率自適應(yīng)RS-485中繼器,如圖4所示。
圖4 波特率自適應(yīng)RS-485中繼器原理圖
U3、U4為由CA555組成的相對(duì)延時(shí)單穩(wěn)觸發(fā)電路,分別控制RS-485中繼器數(shù)據(jù)左、右傳狀態(tài)。相對(duì)延時(shí)單穩(wěn)觸發(fā)電路是在由CA555組成的普通單穩(wěn)觸發(fā)電路的基礎(chǔ)上增加了二極管D1和D2。當(dāng)CA555輸入引腳TRIG為低電平時(shí),CA555內(nèi)部和二極管D1、D2將RC延時(shí)電路放電,輸出Q端輸出高電平;當(dāng)CA555輸入引腳TRIG變?yōu)楦唠娖綍r(shí),CA555內(nèi)部和二極管D1、D2開(kāi)始使RC延時(shí)電路充電,延時(shí)一段時(shí)間(與R
評(píng)論