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