無極性RS422/RS485網(wǎng)絡(luò)的接線設(shè)計(jì)
1、問題提出
現(xiàn)在的很多測(cè)控系統(tǒng)是使用RS422或RS485總線互連的。RS422/485總線信號(hào)是由4(2)根有極性的差分信號(hào)來傳輸?shù)模荒軐⑵浞唇?。?dāng)網(wǎng)絡(luò)傳輸距離長(zhǎng)或節(jié)點(diǎn)多時(shí),在線路上的分續(xù)線盒也會(huì)很多,很容易將信號(hào)線在傳輸途中接反,從而造成信號(hào)無法正常傳輸。雖然可以查出故障點(diǎn),但在分線盒很多時(shí),也是一件很費(fèi)時(shí)的事情。為了布線方便,分續(xù)線盒的數(shù)量往往大于總線上的模塊數(shù)。對(duì)于室內(nèi)系統(tǒng),網(wǎng)絡(luò)線路一般外加PVC線槽甚至暗埋于墻體內(nèi);對(duì)于室外系統(tǒng),線路一般架空或地下走線,造成對(duì)線路反接問題的查找和修正很困難。另一方面,為了施工方便,也應(yīng)允許在途中隨意接線,不分極性。為此,需要各模塊既能接收?qǐng)D1(b)所示的正相信號(hào),也能接收?qǐng)D1(c)所示的極性可能反相的RS422、RS485信號(hào)。
圖1 傳輸線反接錯(cuò)誤所引起的接收端信號(hào)波形改變
對(duì)于那些采取未經(jīng)任何編碼調(diào)制的基帶信號(hào)來傳輸數(shù)據(jù)的RS422/485系統(tǒng),圖1中由于接線錯(cuò)誤將造成收信方無法正確接收數(shù)據(jù);但如對(duì)信號(hào)進(jìn)行適當(dāng)?shù)恼{(diào)制后,即使途中出現(xiàn)接線錯(cuò)誤,收方仍然能正確接收到數(shù)據(jù),即在布線施工中可以無極性布線。
下面分別給出使用未調(diào)制信號(hào)和調(diào)制信號(hào)傳輸數(shù)據(jù)2種情況下的無極性接線設(shè)計(jì)方法。先討論使用未編碼調(diào)制信號(hào)的情況。
2 、RS422信號(hào)線的無極性接線設(shè)計(jì)
RS422總線使用收發(fā)分開的信號(hào)線傳輸,各為2根信號(hào)線。為了使RS422接收器能夠接收總線上傳來的2種極性的信號(hào),見圖1(b)和圖1(c),首先要檢測(cè)到接線的錯(cuò)誤,其次才是更正接線錯(cuò)誤。這里希望通過網(wǎng)絡(luò)模塊電路來修正接線錯(cuò)誤,而不是通過更正錯(cuò)誤的傳輸線連接。
(1) 人工修正方法
對(duì)于MCU的UART來說,無信號(hào)傳送時(shí),TX引腳為"1"電平,因此,RS422驅(qū)動(dòng)器的A端會(huì)為高電平,B端為低電平,此時(shí),在接收模塊的A端也應(yīng)為固定高電平。圖2電路中,在一個(gè)接收端和GND之間連接一個(gè)LED,從而可以據(jù)此判斷該端是和發(fā)送端A相連,還是和發(fā)送端B相連,然后通過4位撥碼開關(guān)SW來人工調(diào)整模塊總線和接收模塊中RS422驅(qū)動(dòng)器接收輸入的連接。
圖2 RS422總線傳輸中的無極性接收電路
人工修正方法需要發(fā)送模塊在軟件上進(jìn)行配合。在調(diào)整時(shí),發(fā)送方不能發(fā)送數(shù)據(jù),也就是總線上的差動(dòng)電壓為固定的。這種方法,雖然有些麻煩,但在一些情況下,比起檢查和修正線路來還是要簡(jiǎn)便一些。
(2) 自動(dòng)修正方法
如果在總線輸入端子和RS422驅(qū)動(dòng)器之間用電磁繼電器(或模擬開關(guān))代替拔碼開關(guān)SW,就可以通過軟件來自動(dòng)控制總線A、B端的切換。檢查是否存在錯(cuò)誤接線也可通過軟件進(jìn)行,只要發(fā)送端發(fā)送一個(gè)和收方約定的固定內(nèi)容數(shù)據(jù),如果收方不能正確收到,則表明接線錯(cuò)誤,就控制繼電器切換總線連接;否則,不切換。必須注意的是,使用模擬開關(guān)時(shí),應(yīng)注意對(duì)線路阻抗和傳輸速度的影響。
3、RS485信號(hào)線的無極性接線設(shè)計(jì)
RS485總線中的發(fā)送和接收信號(hào)共用一對(duì)線,使用的驅(qū)動(dòng)器可分為兩類:一類是像SN75176之類的驅(qū)動(dòng)器,在驅(qū)動(dòng)器內(nèi)部已經(jīng)將Rx和Tx信號(hào)接到一起;另一類是使用RS422方式的驅(qū)動(dòng)器,如發(fā)送和接收使用2個(gè)芯片,如SN75177(接收驅(qū)動(dòng)器)加SN75178(發(fā)送驅(qū)動(dòng)器),或者收發(fā)驅(qū)動(dòng)器集成在1個(gè)芯片上,如SNLBC75179、MAX488、MAX490等,這種情況下,在線路板上將收發(fā)的同相端短接。對(duì)于后者(使用收發(fā)引腳獨(dú)立的驅(qū)動(dòng)器),無極性設(shè)計(jì)的方法仍然類同于RS422方式;對(duì)于前者,由于收發(fā)信號(hào)的同相端在驅(qū)動(dòng)器內(nèi)部已經(jīng)短路,無法在接收驅(qū)動(dòng)器增加電路,不能達(dá)到無極性信號(hào)傳輸?shù)哪康摹?/p>
可見,在RS485網(wǎng)絡(luò)中,模塊必須使用獨(dú)立收發(fā)引腳的驅(qū)動(dòng)器時(shí),才能增加無極性設(shè)計(jì)電路。[!--empirenews.page--]
4 、使用限制
以上方法只適合于點(diǎn)對(duì)多點(diǎn)的主從式RS422/485網(wǎng)絡(luò)。對(duì)于RS422網(wǎng)絡(luò)來說,在主模塊中的接收驅(qū)動(dòng)器不能加修正電路,而應(yīng)調(diào)整到發(fā)送模塊的發(fā)送端。因?yàn)樵趶哪K發(fā)送而主模塊接收的情況下,可能部分模塊和主模塊之間的連接正確,部分模塊和主模塊之間的連接錯(cuò)誤。對(duì)于RS485網(wǎng)絡(luò)來說,只要在從模塊的驅(qū)動(dòng)器接收端增加調(diào)整電路就可以了。
對(duì)于各模塊平等通信的RS422/485網(wǎng)絡(luò)來說,一個(gè)模塊可能和其它模塊之間的接線既有正確,又有錯(cuò)誤,因此通過此方法來修正。
5、采取調(diào)制信號(hào)傳輸消除信號(hào)極性
使用以上2種(手動(dòng)設(shè)置或軟件自動(dòng)配置)使模塊可以接收任意極性信號(hào)的方法雖然可行,但仍然有一些麻煩:手動(dòng)設(shè)置仍然會(huì)帶來施工的不便,而自動(dòng)配置會(huì)增加軟件設(shè)計(jì)的復(fù)雜度,降低了可靠性。此外,以上方法也只適用于點(diǎn)對(duì)多點(diǎn)的主從通信網(wǎng)絡(luò),對(duì)于節(jié)點(diǎn)對(duì)等網(wǎng)絡(luò)不能使用。
另外一種消除信號(hào)極性的方法就是在對(duì)信號(hào)編碼調(diào)制后傳送,使調(diào)制后的信號(hào)是無極性要求的。在數(shù)據(jù)傳輸領(lǐng)域,最常用的無極性信號(hào)調(diào)制方法是使用差分曼徹斯特編碼,其波形如圖3所示。
差分曼徹斯特編碼信號(hào)的編碼原則是:
◇ 在信號(hào)位中間總是將信號(hào)反相;
◇ 在信號(hào)位開始時(shí)不改變信號(hào)極性,表示邏輯"1";
◇ 在信號(hào)位開始時(shí)改變信號(hào)極性,表示邏輯"0"。
由此可見,經(jīng)差分曼徹斯特編碼的信號(hào),見圖3(b),經(jīng)過由于接線錯(cuò)誤變成反相的波形后,見圖3(c),仍然符合此定義,從而可以解調(diào)出原始數(shù)據(jù)信號(hào)。
圖3 差分曼徹斯特編碼信號(hào)及其反相
為了在RS422/485網(wǎng)絡(luò)中實(shí)現(xiàn)差分曼徹斯特編碼,需要在UART和RS422/485芯片之間增加編碼電路。差分曼徹斯特編碼屬于自同步編碼,因此需要時(shí)鐘。對(duì)于工作于異步方式的UART來說,可以使用GAL器件完成編碼和解碼,但用于控制UART異步傳輸?shù)牟ㄌ芈蕰r(shí)鐘和編碼電路時(shí)鐘必須使用同一時(shí)鐘源。以下給出圖4所示的實(shí)現(xiàn)框圖,具體實(shí)現(xiàn)電路這里不再詳細(xì)敘述。也可以使用專用芯片完成編碼和解碼,比如采用Echelon公司的FTT-10A收發(fā)器。該收發(fā)器對(duì)信號(hào)進(jìn)行差分曼徹斯特編碼調(diào)制后傳輸(同時(shí)包含一個(gè)隔離變壓器)。
圖4 使用差分曼徹斯特編碼產(chǎn)生無極性信號(hào)
6、直流供電的無極性接線設(shè)計(jì)
在RS422/485網(wǎng)絡(luò)中,常采用集中+5 V、+12 V或+24 V直流對(duì)所有模塊進(jìn)行供電,如線路較長(zhǎng),一般使用+24 V電源,較短時(shí)使用+5 V或+12 V電源。同信號(hào)線一樣,電源線也同樣存在反接問題,基于同樣目的和原因,模塊也應(yīng)能使用正相和反相接線2種情況的輸入電源。和信號(hào)不同,2根電源線雖然可能反接,線間的電位差始終是一個(gè)極性,要么為正,要么為負(fù),因此,可以在模塊電源輸入處增加一個(gè)整流電橋,在電橋的輸出端就始終能得到正極性的+24 V或+12 V、+5 V電壓供自己使用了,如圖5所示。
圖5 集中直流供電網(wǎng)絡(luò)的無極性電源接收電路