摘要:本文介紹了一種無需微控制器控制的RS232/485轉(zhuǎn)換器,實(shí)現(xiàn)了純硬件的收發(fā)控制切換以及串口取電功能,從而避免了常規(guī)RS232/485轉(zhuǎn)換器需要對微控制器進(jìn)行軟件編程且通用性不好的問題,具有很好的可行性。
關(guān)鍵詞:串口切電 收發(fā)控制切換 RS232/485轉(zhuǎn)換器
1 引言
RS232/485轉(zhuǎn)換器的設(shè)計(jì)中,主要要解決兩個問題:一是利用串口給設(shè)備供電,二是傳輸中發(fā)送和接收狀態(tài)的控制。在收發(fā)切換中,一般解決方案是采用微控制器對接收器的收發(fā)進(jìn)行控制。具體方法如下:微處理器在檢測到UART的通信起始位后,打開發(fā)送使能,允許串行數(shù)據(jù)發(fā)送至RS-485接口。微處理器根據(jù)所設(shè)定的波特率和通信協(xié)議延時至UART停止位發(fā)送一半時(例如11位格式時,延時10.5T),開始檢測是否有下一個起始位到來。在時間T內(nèi),若有下一個起始位到來,則保持發(fā)送狀態(tài),否則將關(guān)閉發(fā)送使能,結(jié)束數(shù)據(jù)發(fā)送。其實(shí)現(xiàn)示意圖如圖1。
這種設(shè)計(jì)方案存在兩個弊端:一是使設(shè)計(jì)成本增加了,硬件電路復(fù)雜了;二是需要對微控制器進(jìn)行軟件編程,且波特率和通信協(xié)議等參數(shù)變化時,要改變時延參數(shù),重新編程,十分不方便。
2 RS232/485轉(zhuǎn)換器的實(shí)現(xiàn)及原理
筆者設(shè)計(jì)了一種免微控制器的RS232/485轉(zhuǎn)換器,完全從硬件上實(shí)現(xiàn)對轉(zhuǎn)換器收發(fā)控制,與通信速率和通信方式無關(guān),免除了當(dāng)通信協(xié)議改變時,要重新計(jì)算時延參數(shù)并對微控制器編程。確保適合各種通信軟件,且實(shí)現(xiàn)了串口取電,真正做到了通用性和易用性。其實(shí)現(xiàn)原理圖如圖2:
2.1收發(fā)控制原理分析
RS232接口發(fā)送邏輯"1"時電平為-12V,邏輯"0"時是+12V。而RS485接口采用采用差分電平方式傳輸,當(dāng)兩根傳輸線滿足
時為邏輯"0"。RS232/485轉(zhuǎn)換器需要把串口RS232的電平轉(zhuǎn)換成TTL縉膠,再实现TTL到RS485電平的轉(zhuǎn)換。在這里232/TTL電平轉(zhuǎn)換我選用的芯片是MAX202,TTL-485電平轉(zhuǎn)換選用MAX3182,這兩個轉(zhuǎn)換芯片都是低功耗芯片,十分適用于RS232這種低功率接口。電源電平轉(zhuǎn)換用的是MAX860芯片,三極管的作用是充當(dāng)非門,輸出控制信號控制收發(fā)切換。MAX202是全雙工工作方式,收發(fā)通道隔離,無需進(jìn)行收發(fā)控制。MAX3182是半雙工工作模式,需要進(jìn)行收發(fā)控制。
由于RS232接口是全雙工方式,而RS485接口是半雙工方式,所以RS232/485轉(zhuǎn)換器的難點(diǎn)是如何實(shí)現(xiàn)接收器的收發(fā)控制。下面分析收發(fā)控制的實(shí)現(xiàn)。普通情況下,即串口不發(fā)送數(shù)據(jù)時,TXD上是-12V,經(jīng)MAX202轉(zhuǎn)換為+5V,再經(jīng)非門反相后為邏輯"0",接收器接收控制端使能,MAX3182隨時接收來自RS485接口上的信號。當(dāng)串口發(fā)送數(shù)據(jù)時,分為兩種情況:TXD發(fā)送邏輯"0"時,非門輸出邏輯"1",MAX3082的發(fā)送控制端使能,RS232的數(shù)據(jù)能正常發(fā)送到485接口上。TXD發(fā)送邏輯"1"時,非門輸出"0",MAX3082發(fā)送功能關(guān)閉,但
和
上接的上拉電阻和下拉電阻實(shí)現(xiàn)了
,RS485接口接收到邏輯"0"信息,保證了RS232接口數(shù)據(jù)的正確發(fā)送。
RS232接口發(fā)送邏輯"1"時,MAX3082實(shí)際上不起作用,RS485是由上拉電阻和下拉電阻供電,所以該轉(zhuǎn)換器實(shí)際是一個準(zhǔn)RS232/485轉(zhuǎn)換器。
2.2串口取電原理分析
串口的TXD、RTS、DTR通常情況下都是邏輯"1",即-12V,MAX860是電平變換電路,可以把負(fù)電平轉(zhuǎn)換成正電平。用4148穩(wěn)壓管把-12V的負(fù)電平降到-5V,MAX860對4148上的負(fù)壓進(jìn)行電壓反相就可以實(shí)現(xiàn)串口取電,給MAX232和MAX3082供電了。這里要注意三點(diǎn):一是用4148降壓時串接的電阻要盡可能的大,因?yàn)?148承載的電壓約為5V,這樣加在電阻上的電壓是恒定的,約為7V,根據(jù)
,電阻越大功率越小,就可以減少不必要的電阻上的功率損耗。二是4148要并聯(lián)較大容值的電容,這樣當(dāng)TXD、RTS、DTR上不是邏輯"1"電平時,能通過電容上儲存的電量繼續(xù)給電路供電。三是TXD、RTS、DTR不是一直為邏輯"1",所以要串接二極管以保證電流單向?qū),只有邏?1"時電路才導(dǎo)通供電。
2.3 RS232/485轉(zhuǎn)換器性能測試
在測試時,我做了兩個RS232/485轉(zhuǎn)換器,把兩個轉(zhuǎn)換器的485接口用電纜相連接,RS232則分別接到COM1、COM2上,在同一臺機(jī)器上測試,由串口1向串口2定時自動發(fā)送數(shù)據(jù),使用串口調(diào)試助手測試接收。電纜長度為4米。經(jīng)測試,該轉(zhuǎn)換器在各種波特率和通信方式下工作良好。如圖3。
本文討論了一種新型的無需微處理器控制RS232/485轉(zhuǎn)換器的設(shè)計(jì),純硬件的進(jìn)行收發(fā)控制切換并可串口取電,無需外部供電,從而避免了常規(guī)RS232/485轉(zhuǎn)換器需要對微控制器進(jìn)行軟件編程且通用性不好的問題,目前該設(shè)計(jì)已在實(shí)踐中得到廣泛應(yīng)用,從未出現(xiàn)通信故障,具有很高的穩(wěn)定可靠性。





