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