RS232轉RS485
時間(jian):2018-03-13 來源:RS232轉(zhuan)RS485解(jie)析(xi)
RS232是個(ge)人(ren)計算機(ji)上(shang)的通訊接(jie)口(kou)(kou)之一,由(you)電(dian)子(zi)工業協會(Electronic Industries Association,EIA) 所制定(ding)的異步傳輸標準接(jie)口(kou)(kou)。通常(chang) RS-232 接(jie)口(kou)(kou)以9個(ge)引腳 (DB-9) 或是25個(ge)引腳 (DB-25) 的型態出現,一般個(ge)人(ren)計算機(ji)上(shang)會有兩組 RS-232 接(jie)口(kou)(kou),分別稱為 COM1 和 COM2。
在(zai)串(chuan)行(xing)通(tong)(tong)(tong)訊時(shi),要求通(tong)(tong)(tong)訊雙(shuang)方都采用一(yi)個標(biao)準接(jie)口,使不同的設備可(ke)以方便地連接(jie)起來(lai)進行(xing)通(tong)(tong)(tong)訊。RS-232-C是(shi)美國電(dian)子工業(ye)協會EIA(Electronic Industry Association)制定的一(yi)種串(chuan)行(xing)物(wu)理接(jie)口標(biao)準。RS是(shi)英文“推薦(jian)標(biao)準”的縮(suo)寫,232為標(biao)識(shi)號,C表(biao)示修改次數(shu)。RS-232-C總線標(biao)準設有25條信號線,包括(kuo)一(yi)個主通(tong)(tong)(tong)道和(he)一(yi)個輔助通(tong)(tong)(tong)道。
在多(duo)數(shu)情況下(xia)主要使用(yong)主通(tong)道,對于一(yi)般(ban)雙(shuang)工通(tong)信,僅(jin)需幾條(tiao)信號(hao)線就可實(shi)現,如一(yi)條(tiao)發(fa)送線、一(yi)條(tiao)接收線及一(yi)條(tiao)地線。
RS-232-C標準規定(ding)的數據傳(chuan)輸速率為(wei)50、75、100、150、300、600、1200、2400、4800、9600、19200、38400波(bo)特。
RS-232-C標準規定,驅(qu)動器允許有2500pF的(de)(de)電容負載(zai),通(tong)信(xin)距(ju)(ju)離將受此電容限(xian)制,例如,采用(yong)150pF/m的(de)(de)通(tong)信(xin)電纜時(shi),最大通(tong)信(xin)距(ju)(ju)離為(wei)15m;若每米(mi)電纜的(de)(de)電容量減小,通(tong)信(xin)距(ju)(ju)離可以增加。傳輸(shu)距(ju)(ju)離短的(de)(de)另(ling)一(yi)原因是RS-232屬單(dan)端信(xin)號傳送,存在共地噪聲和(he)不能抑制共模干擾等問題,因此一(yi)般(ban)用(yong)于20m以內(nei)的(de)(de)通(tong)信(xin)。具體通(tong)訊距(ju)(ju)離還與通(tong)信(xin)速(su)率有關(guan),例如,在9600pbs時(shi),普通(tong)雙絞屏蔽線(xian)時(shi),距(ju)(ju)離可達30-35米(mi)。
RS232時序如圖1:

如果要進行較長距離的通信(xin),或者實現聯網(wang)功能,那么(me)要使用到RS485通訊接口。
在工業控制(zhi)場(chang)合(he),RS485總線因其接口簡單,組(zu)網方便,傳輸(shu)距離遠等特點而得到廣泛應用(yong)。
RS485和RS232一樣(yang)都是(shi)(shi)基于串口的(de)(de)(de)(de)(de)通訊(xun)接口,數(shu)據(ju)(ju)(ju)收發(fa)的(de)(de)(de)(de)(de)操作是(shi)(shi)一致的(de)(de)(de)(de)(de),所以使用的(de)(de)(de)(de)(de)是(shi)(shi)同樣(yang)WinCE的(de)(de)(de)(de)(de)底層驅動程序。但是(shi)(shi)它(ta)們在實際應(ying)用中通訊(xun)模(mo)式卻有(you)著很大的(de)(de)(de)(de)(de)區(qu)別,RS485接口為半(ban)雙(shuang)(shuang)工數(shu)據(ju)(ju)(ju)通訊(xun)模(mo)式,而RS232接口為全(quan)雙(shuang)(shuang)工數(shu)據(ju)(ju)(ju)通訊(xun)模(mo)式,數(shu)據(ju)(ju)(ju)的(de)(de)(de)(de)(de)收發(fa)不能同時進行(xing),為了保(bao)證數(shu)據(ju)(ju)(ju)收發(fa)的(de)(de)(de)(de)(de)不沖突(tu),硬件(jian)上是(shi)(shi)通過(guo)方向切換來實現(xian)的(de)(de)(de)(de)(de),相應(ying)也要求軟件(jian)上必須將(jiang)收發(fa)的(de)(de)(de)(de)(de)過(guo)程嚴格(ge)地分開。
RS485接口組成的(de)半雙工網(wang)絡,一般是兩線(xian)制(zhi)(以(yi)前(qian)有四線(xian)制(zhi)接法,只能實(shi)現點對點的(de)通(tong)(tong)(tong)信(xin)方(fang)式(shi),現很少采用(yong)),多(duo)(duo)采用(yong)屏蔽雙絞線(xian)傳輸。這種接線(xian)方(fang)式(shi)為總(zong)線(xian)式(shi)拓撲結(jie)構(gou)在同一總(zong)線(xian)上最多(duo)(duo)可(ke)以(yi)掛接32個(ge)結(jie)點。在RS485通(tong)(tong)(tong)信(xin)網(wang)絡中一般采用(yong)的(de)是主從通(tong)(tong)(tong)信(xin)方(fang)式(shi),即一個(ge)主機帶多(duo)(duo)個(ge)從機。
很多情況下(xia),連(lian)接(jie)(jie)RS-485通信鏈(lian)路時只是簡單地用(yong)(yong)一(yi)對雙絞(jiao)線將各個接(jie)(jie)口的“A”、“B”端連(lian)接(jie)(jie)起來。RS485接(jie)(jie)口連(lian)接(jie)(jie)器采(cai)用(yong)(yong)DB-9的9芯(xin)插頭座(zuo),與(yu)智能終(zhong)端RS485接(jie)(jie)口采(cai)用(yong)(yong)DB-9(孔),與(yu)鍵盤連(lian)接(jie)(jie)的鍵盤接(jie)(jie)口RS485采(cai)用(yong)(yong)DB-9(針)。
RS485時序如圖2:

我們經常(chang)使用RS232-485轉換器進行RS232和RS485的轉化。
RS232-485轉換(huan)器主要包括(kuo)了電(dian)(dian)(dian)(dian)源(yuan)、232電(dian)(dian)(dian)(dian)平轉換(huan)、485電(dian)(dian)(dian)(dian)路(lu)(lu)三部分(fen)。該電(dian)(dian)(dian)(dian)路(lu)(lu)的232電(dian)(dian)(dian)(dian)平轉換(huan)電(dian)(dian)(dian)(dian)路(lu)(lu)采(cai)用了MAX232集成電(dian)(dian)(dian)(dian)路(lu)(lu),485電(dian)(dian)(dian)(dian)路(lu)(lu)采(cai)用了MAX485集成電(dian)(dian)(dian)(dian)路(lu)(lu)。為了使(shi)用方(fang)便,電(dian)(dian)(dian)(dian)源(yuan)部分(fen)設計成無源(yuan)方(fang)式,整個(ge)電(dian)(dian)(dian)(dian)路(lu)(lu)的供(gong)(gong)電(dian)(dian)(dian)(dian)直接從PC機的RS232接口(kou)(kou)中的DTR(4腳)和RTS(7腳)竊取(qu)。PC串口(kou)(kou)每根線(xian)可(ke)以提供(gong)(gong)大約9mA的電(dian)(dian)(dian)(dian)流(liu),因此兩(liang)根線(xian)提供(gong)(gong)的電(dian)(dian)(dian)(dian)流(liu)足夠(gou)供(gong)(gong)給這(zhe)個(ge)電(dian)(dian)(dian)(dian)路(lu)(lu)使(shi)用了。
MAX485是通(tong)(tong)過(guo)兩個(ge)引腳(jiao)(jiao)RE(2腳(jiao)(jiao))和(he)(he)DE(3腳(jiao)(jiao))來控制數(shu)據(ju)(ju)(ju)的(de)輸(shu)(shu)入(ru)和(he)(he)輸(shu)(shu)出。當RE為低(di)(di)電(dian)平(ping)(ping)時(shi),MAX485數(shu)據(ju)(ju)(ju)輸(shu)(shu)入(ru)有效;當DE為高(gao)電(dian)平(ping)(ping)時(shi),MAX485數(shu)據(ju)(ju)(ju)輸(shu)(shu)出有效。在(zai)(zai)半(ban)雙工使(shi)(shi)(shi)用中,通(tong)(tong)常可(ke)以(yi)將(jiang)這(zhe)兩個(ge)腳(jiao)(jiao)直(zhi)接(jie)(jie)相(xiang)連(lian),然(ran)后由PC或者單(dan)片機輸(shu)(shu)出的(de)高(gao)低(di)(di)電(dian)平(ping)(ping)就可(ke)以(yi)讓MAX485在(zai)(zai)接(jie)(jie)收(shou)和(he)(he)發(fa)送狀(zhuang)(zhuang)態(tai)(tai)之間轉換了。由于(yu)本電(dian)路(lu)(lu)DTR和(he)(he)RTS都用于(yu)了電(dian)路(lu)(lu)供電(dian),因(yin)此使(shi)(shi)(shi)用TX線和(he)(he)MAX232的(de)另外(wai)一個(ge)通(tong)(tong)道及Q1來控制MAX485的(de)狀(zhuang)(zhuang)態(tai)(tai)切(qie)換。平(ping)(ping)時(shi)MAX232的(de)9腳(jiao)(jiao)輸(shu)(shu)出高(gao)電(dian)平(ping)(ping),經Q1倒(dao)相(xiang)后,使(shi)(shi)(shi)MAX485的(de)RE和(he)(he)DE為低(di)(di)電(dian)平(ping)(ping)而(er)處(chu)于(yu)數(shu)據(ju)(ju)(ju)接(jie)(jie)收(shou)狀(zhuang)(zhuang)態(tai)(tai)。當PC機發(fa)送數(shu)據(ju)(ju)(ju)時(shi),MAX232的(de)9腳(jiao)(jiao)輸(shu)(shu)出低(di)(di)電(dian)平(ping)(ping),經Q1倒(dao)相(xiang)后,使(shi)(shi)(shi)MAX485的(de)RE和(he)(he)DE為高(gao)電(dian)平(ping)(ping)而(er)處(chu)于(yu)數(shu)據(ju)(ju)(ju)發(fa)送狀(zhuang)(zhuang)態(tai)(tai)。
過程如圖(tu)3:


