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