當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > RS232轉(zhuǎn)RS485
RS232是個(gè)人計(jì)算機(jī)上的通訊接口之一,由電子工業(yè)協(xié)會(huì)(Electronic Industries Association,EIA) 所制定的異步傳輸標(biāo)準(zhǔn)接口。通常 RS-232 接口以9個(gè)引腳 (DB-9) 或是25個(gè)引腳 (DB-25) 的型態(tài)出現(xiàn),一般個(gè)人計(jì)算機(jī)上會(huì)有兩組 RS-232 接口,分別稱為 COM1 和 COM2。
在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來進(jìn)行通訊。RS-232-C是美國(guó)電子工業(yè)協(xié)會(huì)EIA(Electronic Industry Association)制定的一種串行物理接口標(biāo)準(zhǔn)。RS是英文“推薦標(biāo)準(zhǔn)”的縮寫,232為標(biāo)識(shí)號(hào),C表示修改次數(shù)。RS-232-C總線標(biāo)準(zhǔn)設(shè)有25條信號(hào)線,包括一個(gè)主通道和一個(gè)輔助通道。
在多數(shù)情況下主要使用主通道,對(duì)于一般雙工通信,僅需幾條信號(hào)線就可實(shí)現(xiàn),如一條發(fā)送線、一條接收線及一條地線。
RS-232-C標(biāo)準(zhǔn)規(guī)定的數(shù)據(jù)傳輸速率為50、75、100、150、300、600、1200、2400、4800、9600、19200、38400波特。
RS-232-C標(biāo)準(zhǔn)規(guī)定,驅(qū)動(dòng)器允許有2500pF的電容負(fù)載,通信距離將受此電容限制,例如,采用150pF/m的通信電纜時(shí),最大通信距離為15m;若每米電纜的電容量減小,通信距離可以增加。傳輸距離短的另一原因是RS-232屬單端信號(hào)傳送,存在共地噪聲和不能抑制共模干擾等問題,因此一般用于20m以內(nèi)的通信。具體通訊距離還與通信速率有關(guān),例如,在9600pbs時(shí),普通雙絞屏蔽線時(shí),距離可達(dá)30-35米。
RS232時(shí)序如圖1:
如果要進(jìn)行較長(zhǎng)距離的通信,或者實(shí)現(xiàn)聯(lián)網(wǎng)功能,那么要使用到RS485通訊接口。
在工業(yè)控制場(chǎng)合,RS485總線因其接口簡(jiǎn)單,組網(wǎng)方便,傳輸距離遠(yuǎn)等特點(diǎn)而得到廣泛應(yīng)用。
RS485和RS232一樣都是基于串口的通訊接口,數(shù)據(jù)收發(fā)的操作是一致的,所以使用的是同樣WinCE的底層驅(qū)動(dòng)程序。但是它們?cè)趯?shí)際應(yīng)用中通訊模式卻有著很大的區(qū)別,RS485接口為半雙工數(shù)據(jù)通訊模式,而RS232接口為全雙工數(shù)據(jù)通訊模式,數(shù)據(jù)的收發(fā)不能同時(shí)進(jìn)行,為了保證數(shù)據(jù)收發(fā)的不沖突,硬件上是通過方向切換來實(shí)現(xiàn)的,相應(yīng)也要求軟件上必須將收發(fā)的過程嚴(yán)格地分開。
RS485接口組成的半雙工網(wǎng)絡(luò),一般是兩線制(以前有四線制接法,只能實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的通信方式,現(xiàn)很少采用),多采用屏蔽雙絞線傳輸。這種接線方式為總線式拓?fù)浣Y(jié)構(gòu)在同一總線上最多可以掛接32個(gè)結(jié)點(diǎn)。在RS485通信網(wǎng)絡(luò)中一般采用的是主從通信方式,即一個(gè)主機(jī)帶多個(gè)從機(jī)。
很多情況下,連接RS-485通信鏈路時(shí)只是簡(jiǎn)單地用一對(duì)雙絞線將各個(gè)接口的“A”、“B”端連接起來。RS485接口連接器采用DB-9的9芯插頭座,與智能終端RS485接口采用DB-9(孔),與鍵盤連接的鍵盤接口RS485采用DB-9(針)。
RS485時(shí)序如圖2:
我們經(jīng)常使用RS232-485轉(zhuǎn)換器進(jìn)行RS232和RS485的轉(zhuǎn)化。
RS232-485轉(zhuǎn)換器主要包括了電源、232電平轉(zhuǎn)換、485電路三部分。該電路的232電平轉(zhuǎn)換電路采用了MAX232集成電路,485電路采用了MAX485集成電路。為了使用方便,電源部分設(shè)計(jì)成無源方式,整個(gè)電路的供電直接從PC機(jī)的RS232接口中的DTR(4腳)和RTS(7腳)竊取。PC串口每根線可以提供大約9mA的電流,因此兩根線提供的電流足夠供給這個(gè)電路使用了。
MAX485是通過兩個(gè)引腳RE(2腳)和DE(3腳)來控制數(shù)據(jù)的輸入和輸出。當(dāng)RE為低電平時(shí),MAX485數(shù)據(jù)輸入有效;當(dāng)DE為高電平時(shí),MAX485數(shù)據(jù)輸出有效。在半雙工使用中,通?梢詫⑦@兩個(gè)腳直接相連,然后由PC或者單片機(jī)輸出的高低電平就可以讓MAX485在接收和發(fā)送狀態(tài)之間轉(zhuǎn)換了。由于本電路DTR和RTS都用于了電路供電,因此使用TX線和MAX232的另外一個(gè)通道及Q1來控制MAX485的狀態(tài)切換。平時(shí)MAX232的9腳輸出高電平,經(jīng)Q1倒相后,使MAX485的RE和DE為低電平而處于數(shù)據(jù)接收狀態(tài)。當(dāng)PC機(jī)發(fā)送數(shù)據(jù)時(shí),MAX232的9腳輸出低電平,經(jīng)Q1倒相后,使MAX485的RE和DE為高電平而處于數(shù)據(jù)發(fā)送狀態(tài)。
過程如圖3: