RS-232至RS-485RS-422接口的智能轉(zhuǎn)換器
隨著計(jì)算機(jī)在工業(yè)的廣泛應(yīng)用,控制局域網(wǎng)絡(luò)也深入應(yīng)用到各行各業(yè)之中?,F(xiàn)行的諸多控制系統(tǒng),若采用單機(jī)控制方式已越來越難以滿足設(shè)備控制的要求,因?yàn)橥覀兯刂频脑O(shè)備只是整個系統(tǒng)的一個基本單元,它既需要外部輸入一些必要的信息,同時,也需要向外部輸出自身的運(yùn)行參數(shù)和狀態(tài)。所有這些,都要求我們采用控制網(wǎng)絡(luò)技術(shù),將眾多設(shè)備有機(jī)地連成一體,以保證整個系統(tǒng)安全可靠地運(yùn)行。
本文引用地址:http://www.ex-cimer.com/article/259000.htm目前,在我國應(yīng)用的現(xiàn)場總線中,RS-485RS-422使用最為普遍。當(dāng)用戶要將基于標(biāo)準(zhǔn)的RS-232接口設(shè)備,如PC機(jī),連接至由RS-485RS-422構(gòu)成的通訊網(wǎng)絡(luò)時,則必須作RS-232和RS-485RS-422之間的電平轉(zhuǎn)換。傳統(tǒng)的做法是在設(shè)備內(nèi)擴(kuò)展一個通訊適配卡,由通訊適配卡實(shí)現(xiàn)電平轉(zhuǎn)換,內(nèi)部主機(jī)再通過并行總線讀出或?qū)懭霐?shù)據(jù)。顯然,這種設(shè)計(jì)方法存在下列缺點(diǎn):
· 由于適配卡是基于某一種總線標(biāo)準(zhǔn)擴(kuò)展的,而不是基于RS-232電平標(biāo)準(zhǔn),所以其應(yīng)用范圍受到限制,只能一種適配卡適用一種總線(如ISA適配卡不可能插入STD總線或用戶自定義的總線),其通用性較差;
· 雖然實(shí)現(xiàn)的僅僅是電平轉(zhuǎn)換,但是由于需要考慮與擴(kuò)展總線的接口和增加一個標(biāo)準(zhǔn)的UART,并且需要占用系統(tǒng)的其它寶貴資源,使硬件和軟件變得過于復(fù)雜;
· 復(fù)雜的硬件設(shè)計(jì)大大增加了元器件的數(shù)目和電路板面,使適配卡的成本過高;
· 由于采用內(nèi)置插卡方式,使變更通信方式比較麻煩,如將半雙工通信方式設(shè)置為全雙工方式等。另外,維修和測試也比較麻煩;
· 對于現(xiàn)有的基于RS-232的設(shè)備,在無法變動系統(tǒng)軟件和硬件的情況下,顯然適配卡無法將這些設(shè)備連成基于RS-485或RS-422通信網(wǎng)絡(luò)的分布式系統(tǒng)。
為了克服上述缺點(diǎn),同時考慮到RS-232接口的自身特點(diǎn),我們設(shè)計(jì)了一種小巧的、無須外部供電的智能收發(fā)轉(zhuǎn)換器,實(shí)現(xiàn)RS-232和RS-485RS-422之間的電平轉(zhuǎn)換。
1 功能描述及結(jié)構(gòu)框圖
本智能轉(zhuǎn)換器作為一個獨(dú)立的電平轉(zhuǎn)換控制器,涉及線上取電、發(fā)送和接收狀態(tài)的智能切換、通信方式設(shè)置、RS-232電平與RS-485RS-422電平之間的轉(zhuǎn)換等方面。具體描述如下:
· 從RS-232接口上取電
由于不采用外部供電方式,則必須從RS-232接口線取電,為內(nèi)部元器件供電。我們知道,標(biāo)準(zhǔn)的RS-232接口定義中,TXD、RTS和DTR是RS-232電平輸出。設(shè)計(jì)一個DC-DC轉(zhuǎn)換器,從這些信號上,能夠?yàn)橄到y(tǒng)提供一定的電源功率。
· 低功耗微處理器
微處理器通過監(jiān)測TXD信號的變化,決定是否允許數(shù)據(jù)發(fā)送和數(shù)據(jù)接收。另外,有關(guān)通信方式、波特率和半/雙工工作方式選擇也是通過TXD信號,或I/O口來設(shè)定的。
· RS-232電平與TTL電平之間的轉(zhuǎn)換
· RS-485RS-422電平與TTL電平之間的轉(zhuǎn)換
其內(nèi)部電路結(jié)構(gòu)示意圖如圖1所示。
2 工作原理
該智能轉(zhuǎn)換器必須解決兩個關(guān)鍵問題,即如何從RS-232線上獲得電源和RS-485RS-422接口驅(qū)動所需的功率,和如何智能控制RS-485RS-422的收發(fā)使能。
2。1 電源方案
標(biāo)準(zhǔn)的RS-232定義中,有三個發(fā)送信號:TXD,RTS和DTR。每根線上的典型輸出電流為±8mA/±12V,考慮到TXD為負(fù)電平(處于停止發(fā)送,或發(fā)送數(shù)字“1”時)的時間較多,因而電源轉(zhuǎn)換決定采用負(fù)電源輸入,以最大限度地增加電源輸入功率,升壓至所需的工作電源。從RTS和DTR上輸入功率=2×8×12mW=192mW。另外,由于通訊為間歇工作方式,所以輸入電源端的儲能電容和TXD(為負(fù)電平時)能夠補(bǔ)充一定的功率。假設(shè),我們設(shè)計(jì)一個效率為85%、輸出電壓為3V的DC-DC轉(zhuǎn)換器,則輸出電流可達(dá)54.5mA。
2.2 智能控制收發(fā)使能
RS-232通訊接口采用電平方式傳輸,適用于點(diǎn)-點(diǎn)通訊,無須專門的收發(fā)使能控制;而對于RS-485RS-422通訊接口則不同,由于采用差分電平方式傳輸,且允許在一條通訊總線上掛接多個節(jié)點(diǎn),必然要求各個節(jié)點(diǎn)能夠獨(dú)立地控制總線驅(qū)動器關(guān)斷或打開,保證不會影響到其它節(jié)點(diǎn)的正常通訊。為了簡化與轉(zhuǎn)換器RS-232接口端相連的軟件工作,更重要的是為了提高本轉(zhuǎn)換器的通用性和靈活性(即插即用,無須要求用戶更改任何相關(guān)軟件和硬件),本轉(zhuǎn)換器內(nèi)置微處理器,實(shí)現(xiàn)收發(fā)使能的智能控制。具體方法:微處理器在檢測到UART的通信起始位后,打開發(fā)送使能,允許串行數(shù)據(jù)發(fā)送至RS-485RS-422通訊網(wǎng)絡(luò)。微處理器根據(jù)所設(shè)定的波特率延時至UART停止位發(fā)送一半時(例如11位格式時,延時10.5T,),開始檢測是否有下一個起始位到來。在時間T內(nèi),若有下一個起始位到來,則保持發(fā)送狀態(tài),否則將關(guān)閉發(fā)送使能,結(jié)束數(shù)據(jù)發(fā)送。
3 硬件設(shè)計(jì)
由于本轉(zhuǎn)換器供電來自RS-232信號線,其輸入功率受到限制,因而在本設(shè)計(jì)中將盡可能地采用+3V供電的低功耗器件,保證總電流小于54.4mA。主要包括4個部分:DC-DC轉(zhuǎn)換器、RS-232接口、RS-485RS-422接口和微處理器。分別介紹如下:
3.1 DC-DC轉(zhuǎn)換器
顯然,還沒有一個DC-DC轉(zhuǎn)換器能夠直接實(shí)現(xiàn)-12V輸入,+3V輸出的IC。但是,如果我們利用現(xiàn)有的IC,稍作改動,即可實(shí)現(xiàn)該功能。圖2所示的DC-DC轉(zhuǎn)換電路,就是利用MAX761實(shí)現(xiàn)的-12V輸入,+3V輸出、效率高于85%的升壓DC-DC轉(zhuǎn)換器。該轉(zhuǎn)換器實(shí)際輸入電壓范圍為-2.5~-13.5V,靜態(tài)工作電流僅I1=120μA,具有輸出電流大于54.5mA的能力(如果前端輸入功率未受到限制,則輸出電流可達(dá)300mA以上)。由于MAX761采用高效率的PFM控制方式,而且在本電路中,開關(guān)損耗較?。熞?yàn)殚_關(guān)電流小于負(fù)載電流 所以能夠達(dá)到比MAX761典型應(yīng)用更高的效率MAX761典型應(yīng)用效率為86%。輸出電壓由下列方程確定:
選取R2=100KΩ,根據(jù)所需要的輸出電壓,計(jì)算R1。
3.2 RS-232接口
本轉(zhuǎn)換器只需要一片單發(fā)/單收RS-232接口就可以滿足要求,但必須要求+3V單電源工作、工作電流盡可能地小的接口電路。MAX3221/NAX3221E(帶±15kVESD保護(hù))剛好能夠滿足上述要求,具有1TX/1RX,其工作電壓+3~+5.5V,僅1μA的靜態(tài)電流,負(fù)載電流小于I2=2mA。
3.3 RS-485RS-422接口
為兼顧RS-485RS-422接口中半雙工和全雙工的要求,本轉(zhuǎn)換器采用MAX3491作為RS-485RS-422接口電路,其主要指標(biāo)為:+3~+3.6V單電源工作、工作電流1mA驅(qū)動60Ω負(fù)載時(半雙工時,兩個120Ω終端匹配電阻的并聯(lián)值),峰值電流可達(dá)I3=3V/60Ω=50mA。半雙工和全雙工工作方式是通過跳線器來設(shè)置的,見圖3。
3.4 微處理器
在本轉(zhuǎn)換器中,微處理器所要完成的任務(wù)很簡單,僅需要幾根I/O線即可實(shí)現(xiàn)參數(shù)的設(shè)置和發(fā)送使能的自動控制。實(shí)際選擇中,采用Microchip公司的PIC12C508A,其主要指標(biāo)為:工作電流<1.0mA工作電壓3V,頻率4MHz)6條I/O線,512kByte的ROM。其中,GP0、GP1、GP4和GP5四個引腳設(shè)定對應(yīng)于16種常用波特率(300、600、1200至38.4Kbps等8種,以及900、1800至115.4Kbps等8種)的延時時間;GP3對應(yīng)于10位或11位串行數(shù)據(jù)格式;GP2為TXD輸入,用來檢測UART何時發(fā)送和停止數(shù)據(jù);GP1為復(fù)用輸出引腳,用來控制MAX3491的發(fā)送使能控制端;GP0也為復(fù)用輸出引腳,用來控制MAX3491的接收使能。詳見圖3。
本轉(zhuǎn)換器的最大電流總和<+++=0.12+2.0+50.0+1.0=53.12mA,小于DC-DC轉(zhuǎn)換器的最小輸出電流54.4mA,因而通過RS-232信號線為本電路供電是完全可行的。實(shí)際上,由于輸入電源端的儲能電容E1和TXD(為負(fù)電平時)能夠?yàn)殡娐费a(bǔ)充一定的功率,所以設(shè)計(jì)上留有較大的電源功率裕量。
4 軟件設(shè)計(jì)
本轉(zhuǎn)換器的軟件設(shè)計(jì)較為簡單,微處理器復(fù)位后,將所有的I/O口設(shè)為輸入,并讀入所有的I/O狀態(tài),保存到寄存器;將GP2和GP3改設(shè)為輸出狀態(tài),并輸出低電平,使RS-485RS-422接口處于禁止發(fā)送、允許接收的狀態(tài)。CPU根據(jù)GPI0的初始狀態(tài),確定出用戶設(shè)定的通訊波特率和串行數(shù)據(jù)格式,從而預(yù)置內(nèi)部的延時設(shè)定。CPU檢測到UART開始通訊后,打開發(fā)送使能,經(jīng)內(nèi)部預(yù)置延時后,開始在一個位寬時間內(nèi)檢測是否有下一個起始位到來,如檢測到,則重新延時等待;否則,關(guān)閉發(fā)送使能,結(jié)束當(dāng)前通訊,重新檢測UART的起始位。對于半雙工通訊方式,允許發(fā)送使能前應(yīng)該關(guān)閉接收使能,而在發(fā)送使能關(guān)閉后才打開接收使能。對于全雙工通訊方式,其接收使能可以不受此信號控制,而可以直接通過跳線接地,始終允許接收。
總之,在本RS-232到RS-485RS-422接口的智能轉(zhuǎn)換器設(shè)計(jì)中,除了本身這個產(chǎn)品具有較高的應(yīng)用價值外,文中所涉及的RS-232信號線供電方案,由于其高效率、大電流輸出能力,在許多基于RS-232接口的應(yīng)用中都能夠很好地滿足應(yīng)用;另外,這種智能控制RS-485RS-422接口的收發(fā)使能的思想,在擴(kuò)展基于RS-485RS-422接口的網(wǎng)絡(luò)分支及延伸通訊距離都能夠得到很好的應(yīng)用。
評論