專利名稱::Rs-485隔離器的制作方法
技術領域:
:本發明涉及一種串口隔離器,尤其涉及一種RS-485隔離器。
背景技術:
:現有RS-485隔離器其實本不是真正的RS-485總線隔離,而是RS-485總線經過RS-485收發器轉換為RS-232信號后再做隔離。圖1是現有的RS-485隔離器示意圖,請參見圖1,TXD從MCU處理器11發出,經過隔離器件12隔離,到達RS-485收發器13發送到RS-485總線。接收時,RS-485收發器13收到的數據經過隔離器件12后抵達MCU處理器11的RXD引腳。因此,現有的RS-485隔離器其實是對RS-485收發器轉換后的RS-232信號進行隔離,而非真正的對RS-485信號隔罔。現有RS-485隔離器并不是實質上的RS-485總線隔離,而是采用隔離RS-232總線的間接方式達到與外圍環境隔離的目的。另外,因為RS-485收發器的發送、接收允許端也必須隔離,因此現有RS-485隔離器是4線隔離器,即使設置接收允許端一直接地有效,至少也必須是如圖1所示的3線隔離。現有RS-485隔離器還有一些其他缺點,如發送使能端必須手工控制,或者說通過驅動MCU的IO引腳來設定T_Enable的高、低電平來實現,T_Enable經隔離后連接到RS-485的DE引腳,T_Enable的高、低電平確定RS-485收發器的發送使能、禁止狀態。另外,現有RS-485隔離器只能并聯在RS-485總線上使用的,如圖2現有RS-485隔離設備20所示。并且沒有通信中繼功能。
發明內容本發明所要解決的技術問題是提供一種RS-485隔離器,屬于兩線隔離的RS-485收發器,能夠自動識別數據流向而依據流向轉發數據,并具有通信中繼功能。本發明為解決上述技術問題而采用的技術方案是提供一種RS-485隔離器,包括通過隔離器件耦合隔離的本地CPU端和外設端,其中,所述本地CPU端包括第一RS-485收發器和第一數據流向控制模塊;所述外設端包括第二RS-485收發器和第二數據流向控制模塊;所述隔離器件包括第一隔離器件和第二隔離器件;所述第一RS-485收發器包括數據發送輸入端DI-1、數據接收輸出端R0-1、接收允許端/RE-I和發送使能端DE-I;所述第二RS-485收發器包括數據發送輸入端DI-2、數據接收輸出端R0-2、接收允許端/RE-2和發送使能端DE-2;所述第一RS-485收發器、第二RS-485收發器分別通過其數據發送輸入端、數據接收輸出端和所述第一隔離器件相連,所述第一、第二RS-485收發器的接收允許端接地;所述第一數據流向控制模塊的輸入端和所述第一RS-485收發器的數據接收輸出端R0-1、發送使能端DE-I相連,其輸出信號經過隔離形成方向控制DIR-2信號控制第二RS-485收發器的發送使能端DE-2;所述第二數據流向控制模塊的輸入端和所述第二RS-485收發器的數據接收輸出端R0-2、發送使能端DE-2相連,其輸出信號經過隔離形成方向控制DIR-I信號控制第一RS-485收發器的發送使能端DE-I。上述的RS-485隔離器,其中,所述隔離器包括RS-485總線狀態檢測模塊,其檢測端和第一RS-485收發器的數據接收輸出端RO-I相連,檢測RS-485總線的狀態,另一端通過CPU總線和CPU相連,供CPU讀取RS-485總線狀態,或接收來自CPU的控制命令。上述的RS-485隔離器,其中,所述RS-485總線狀態檢測模塊還包括另一檢測端,所述另一檢測端和第一RS-485收發器的發送使能端DE-I相連,輔助檢測RS-485總線的狀態。上述的RS-485隔離器,其中,所述外設端包括正向數據端D+和負向數據端D-,所述正向數據端和負向數據端間連接有浪涌保護回路。上述的RS-485隔離器,其中,所述浪涌保護回路包括兩個串聯在正向數據端和負向數據端的的電阻R1、R2,跨接在電阻R1、R2內側的瞬變抑制二極管Dl、D2以及跨接在電阻Rl、R2外側的氣體放電管GASl、GAS2。上述的RS-485隔離器,其中,所述第一隔離器件和第二隔離器件為光電耦合隔離器件。本發明對比現有技術有如下的有益效果本發明提供的RS-485隔離器,本地CPU端和外設端實現真正的兩線隔離,能夠自動識別數據流向而依據流向轉發數據,并具有通信中繼功能。此外,本發明的RS-485隔離器通過RS-485總線狀態檢測模塊提高總線利用率,并且大幅降低總線沖突機率。圖1是現有的RS-485隔離器示意圖;圖2是現有的RS-485隔離器連接方式示意圖;圖3是本發明的RS-485隔離器示意圖;圖4是本發明的RS-485隔離器連接方式示意圖;圖5是本發明帶總線監聽和浪涌保護的RS-485隔離器示意圖;圖6是本發明RS-485隔離器2線隔離原理圖;圖7是本發明RS-485隔離器中浪涌保護回路圖;圖8是本發明RS-485隔離器數據發送流程圖。圖中IlMCU處理器12隔離器件13RS-485收發器20RS-485隔離器31本地CPU端32外設端33第一RS-485收發器34第一數據流向控制模塊35第一隔離器件36第二RS-485收發器37第二數據流向控制模塊38第二隔離器件51總線狀態檢測模塊52浪涌保護回路331第一RS-485接收器332第一RS-485發送器361第二RS-485接收器362第二RS-485發送器具體實施例方式下面結合附圖和實施例對本發明作進一步的描述。圖3是本發明的RS-485隔離器示意圖。請參見圖3,本發明提供的RS-485隔離器,包括通過隔離器件耦合隔離的本地CPU端31和外設端32,其中,所述本地CPU端31包括第一RS-485收發器33和第一數據流向控制模塊34;所述外設端32包括第二RS-485收發器36和第二數據流向控制模塊37;所述隔離器件包括第一隔離器件35和第二隔離器件38;所述第一RS-485收發器33包括數據發送輸入端DI_1、數據接收輸出端R0_1、接收允許端/RE-I和發送使能端DE-I,所述數據發送輸入端DI-1、數據接收輸出端RO-I和所述第一隔離器件35相連,所述接收允許端/RE-I接地;所述第二RS-485收發器36包括數據發送輸入端DI_2、數據接收輸出端R0_2、接收允許端/RE-2和發送使能端DE-2,所述數據發送輸入端DI-2、數據接收輸出端R0-2和所述第一隔離器件35相連,所述接收允許端/RE-2接地;所述第一數據流向控制模塊34的輸入端和所述第一RS-485收發器33的數據接收輸出端R0-1、發送使能端DE-I相連,其輸出信號經過隔離形成方向控制DIR-2信號控制第二RS-485收發器36的發送使能端DE-2;所述第二數據流向控制模塊37的輸入端和所述第二RS-485收發器36的數據接收輸出端R0-2、發送使能端DE-2相連,其輸出信號經過隔離形成方向控制DIR-I信號控制第一RS-485收發器33的發送使能端DE-I。本發明提供的RS-485隔離器兩端都是RS-485總線,其中一端靠近機房或者管理室,是為RS-485總線本地CPU端31;另外一端接遠程外設,是為RS-485總線外設端32,本發明的RS-485隔離器完成RS-485到RS-485的實質隔離,因此屬于兩線隔離,由于RS-485隔離器20實現了RS-485到RS-485的真正隔離,隔離器的兩端都是RS-485信號,因此使用時,既可以并聯在RS-485總線上使用,可以串聯在RS-485總線上使用,而串聯使用時,還起到了通訊中繼的功能,相當于一個RS-485總線中繼器,如圖4所示。而現有RS-485隔離設備,一端為RS-485信號,另一端為RS-232信號,因此,在使用時,只能采用并聯的方式,即設備的RS-485端并聯在RS-485總線上,另一端只能連RS-232設備。RS-485總線本地CPU端和RS-485總線外設端各有第一數據流向控制模塊34和第二數據流向控制模塊37,分別控制第二RS-485收發器36和第一RS-485收發器33的發送使能端DE,保證每時每刻第一RS-485收發器33和第二RS-485收發器36的兩個發送使能端最多只有一個有效,從而確定數據方向要么在方向控制DIR-2信號控制下從本地CPU端去外設端,要么在方向控制DIR-I信號控制下從外設端去本地CPU端。圖5是本發明帶總線監聽和浪涌保護的RS-485隔離器示意圖。當發生通信沖突時,一般需要通信雙方失敗后重試,為了減少硬件沖突,提高通信效率,本發明的RS-485隔離器引入了RS-485總線狀態檢測模塊。請參見圖5,所述隔離器包括RS-485總線狀態檢測模塊51,其檢測端和第一RS-485收發器的數據接收輸出端RO-I相連,檢測數據收發狀態,另一端通過CPU總線和CPU相連,CPU總線傳送RS-485總線狀態,接收來自CPU的控制命令,CPU總線包括常用的ISA總線,PCI總線。總線狀態檢測模塊51檢測RS-485總線是否空閑,當RS-485總線空閑的時候,CPU才可以向RS-485總線發送數據,從而減少了總線沖突,提高了通信效率。當然,總線IDLE檢測模塊可以增加另一個檢測端和DE-I相連,雖然通過RO-I已經能雙向檢測檢測RS-485總線使用狀況,增加DE-I檢測端可以輔助檢測RS-485總線使用狀況,進一步提高沖突檢測能力。由于外設通常在安裝在廠房甚至露天場地的設備上,那里通常存在強電干擾,甚至雷電感應干擾。因此靠近外設端32可以增加浪涌保護回路52。RS-485信號經過浪涌保護回路52后,到達第二RS-485收發器36,第二RS-485收發器36把RS-485差分信號轉換為1收1發的串行信號,串行信號經過第一隔離器件35,分別連接在第一RS-485收發器33的發送線DI-I和接收線RO-I上,由第一R-485收發器33轉換為RS-485差分信號后抵達RS-485總線本地CPU端31。所述外設端32包括正向數據端D+和負向數據端D-,所述正向數據端和負向數據端間連接有浪涌保護回路52。請參見圖7,所述浪涌保護回路52包括兩個串聯在正向數據端和負向數據端的的電阻R1、R2,跨接在電阻R1、R2內側的瞬變抑制二極管(TVS)D1、D2以及跨接在電阻R1、R2外側的氣體放電管GAS1、GAS2。上述的浪涌保護回路,分兩級保護,如圖7所示,兩個氣體放電管GAS1、GAS2組成第一級防護,大電流、高能量的浪涌信號經過第一級防護后,干擾的峰值和能量大為衰減,這些經過衰減的干擾信號再經過由瞬變抑制二極管D1、D2和電阻R1、R2組成的第二級防護,干擾的峰值和能量將進一步縮小,達到或低于RS-485收發器能夠接受的水平,從而保護RS-485收發器及其他元器件不受浪涌損壞。另夕卜,由于TVS反應快速的特點,即使具有快速上升沿、下降沿(ns級)的干擾出現在RS-485總線上,如ESD干擾,本保護回路也能有效防護。圖6是本發明RS-485隔離器中隔離原理圖。請參見圖6,本發明中的第一隔離器件35和第二隔離器件38為光電耦合隔離器件。第一RS-485收發器33包括電阻Rl、R2、第一RS-485接收器331、第一RS-485發送器332;第二RS-485收發器36包括電阻R3、R4、第二RS-485接收器361、第二RS-485發送器362;第一數據流向控制模塊34和第二數據流向控制模塊37包括數據流向控制芯片。當處于默認狀態時,第一RS-485接收器331的接收允許端接低電平,又因為電阻R1,R2的上下拉作用,使第一RS-485接收器331接收到邏輯1。同理因為第二RS-485接收器361的接收允許端接低電平,且因為電阻R3,R4的上下拉作用,第二RS-485接收器361也接收到邏輯1。第一RS-485接收器,第二RS-485接收器收到的邏輯1經或非門輸出,這兩個信號經DE-2和DE-I端輸出,分別連接上第二數據流向控制模塊和第一數據流向控制模塊的發送使能端,因為DE-2和DE-I端輸出都為低電平,發送禁止。因此,在默認狀態下,從本地端到外設端的發送禁止,從外設端到本地端的發送也被禁止。本地端和外設端都因為上下拉電阻的緣故,使兩端都處于數據“1”狀態。下面詳細介紹本地端向外設端發送數據分析過程1)發起始位當起始位0到達本地端,RO-I變更為邏輯0,DE-2變更為邏輯1,第二RS-485發送器362發送功能被允許,數據0到達外設端。外設端返回的的邏輯0(R0-2)和DE-2的邏輯1經過或非門以后為邏輯0連接到第一RS-485發送器332的發送使能端,這樣第一RS-485發送器332的發送功能被禁止。2)發數據0如果發送的數據位為0,其通訊原理與傳輸起始位相同。3)發數據1當發送數據由0變更為1,R0_1變更為邏輯1,DE_2變更為邏輯0,第二RS-485發送器362發送功能被禁止。外設端收到的數據取決于R3和R4的上下拉確定的邏輯,而其邏輯為1,這樣等同于數據1從本地端傳輸到了外設端。這樣從外設端返回的數據1經由第二數據流向控制模塊37也變更為低電平,從而使第一RS-485發送器332的發送功能禁止。4)發結束位其通訊原理與傳輸數據1相同。上述數據傳輸真值表如下<table>tableseeoriginaldocumentpage7</column></row><table>上面詳細介紹了本地端向外設端發送數據分析過程,至于外設端向本地端發送數據分析,其通訊過程就是從本地端到外設端的逆過程。圖8是本發明RS-485隔離器數據發送流程圖。本發明的總線監聽由總線狀態檢測模塊51完成,總線狀態檢測模塊51監聽第一RS-485收發器33的接收輸出端RO-I和發送使能端DE-1,當檢測到RO-I端或者送使能端DE-I有低電平,即認為總線被占用。總線被占用后,總線忙(Busy),即Idle無效,并且保持到RO-I下降沿6ms后,才置有效。如果,在等待6ms過程中,RO-I或者DE-I又有1個下降沿,6ms等待被重置,并以此類推。本電路的基本原理就是檢測數據起始位及字節本身的“0”數據位,由此來確定總線是否被占用。為什么認為收到0就認為被占用呢,因為不管任何一端發起數據發送,都必須先發送握手信號,這個握手信號就是啟動位0。Idle信號并非當總線數據流停止以后立即有效,而是在最后一個字節傳輸開始,至少再等待一段時間。這樣做的好處是至少要等待對方發送完最后一個字節后再應答,不至于造成沖突。雖然在RS-485通訊系統中,波特率可支持1200115200bps,但是一般因為傳輸距離長而選擇低波特率通訊,如9600bps,4800bps等。這個等待時間長短的設計應當考慮低波特率的要求,當然也不能等待太長,太長會影響總線利用率。在上述電路中,延時設定為6ms,這個時間可以滿足低至9600bps,4800bps甚至2400bps的低波特率通訊要求。請參見圖8,本發明RS-485隔離器數據發送流程如下步驟S801判斷是否有數據發送,當一端收到數據后準備應答或者需要主動發送數據時,進入步驟S802;步驟S802初始化數據指針,進入步驟S803;步驟S803:先檢測Idle信號,當Idle信號無效(為“0”)時,表明總線已被其他設備占用,必須等待,直到空閑即Idle信號有效(為“1”)時,才真正啟動發送,進入步驟S804;步驟S804發送1幀數據,進入步驟S805;步驟S805當一幀數據發送完后,不需要進一步的數據發送,那么這個發送進程就此結束。如果要求接著立即發下一幀,這時因為Idle信號還沒立即釋放,按照要求還需等待6ms,因為設備自身要接著發送,因此這個6ms等待其實已經沒有必要。總線狀態檢測模塊51可以接收ISA總線的命令,其中一個最主要的命令為忽略6ms延時的命令,如步驟S806所示,一旦總線狀態檢測模塊51接收到這個命令,即立即忽略6ms延時并進入步驟S807;步驟S807發送指針指向下一幀,進入步驟S803,即將外部RS-485總線的真實使用情況立即賦值給“Idle”信號。這樣,如果沒有其他設備恰在此時使用RS-485總線,本設備接著就可以發送下一幀數據了。這樣做的好處是,當發送巨量數據,需要拆分成多幀數據發送時,多幀數據可以連續發送,不受6ms延時的影響,大大提高提升總線利用率。雖然本發明已以較佳實施例揭示如上,然其并非用以限定本發明,任何本領域技術人員,在不脫離本發明的精神和范圍內,當可作些許的修改和完善,因此本發明的保護范圍當以權利要求書所界定的為準。權利要求一種RS-485隔離器,包括通過隔離器件耦合隔離的本地CPU端和外設端,其特征在于,所述本地CPU端包括第一RS-485收發器和第一數據流向控制模塊;所述外設端包括第二RS-485收發器和第二數據流向控制模塊;所述隔離器件包括第一隔離器件和第二隔離器件;所述第一RS-485收發器包括數據發送輸入端DI-1、數據接收輸出端RO-1、接收允許端/RE-1和發送使能端DE-1;所述第二RS-485收發器包括數據發送輸入端DI-2、數據接收輸出端RO-2、接收允許端/RE-2和發送使能端DE-2;所述第一RS-485收發器、第二RS-485收發器分別通過其數據發送輸入端、數據接收輸出端和所述第一隔離器件相連,所述第一、第二RS-485收發器的接收允許端接地;所述第一數據流向控制模塊的輸入端和所述第一RS-485收發器的數據接收輸出端RO-1、發送使能端DE-1相連,其輸出信號經過隔離形成方向控制DIR-2信號控制第二RS-485收發器的發送使能端DE-2;所述第二數據流向控制模塊的輸入端和所述第二RS-485收發器的數據接收輸出端RO-2、發送使能端DE-2相連,其輸出信號經過隔離形成方向控制DIR-1信號控制第一RS-485收發器的發送使能端DE-1。2.根據權利要求1所述的RS-485隔離器,其特征在于,所述隔離器包括RS-485總線狀態檢測模塊,其檢測端和第一RS-485收發器的數據接收輸出端RO-I相連,檢測RS-485總線的狀態,另一端通過CPU總線和CPU相連,供CPU讀取RS-485總線狀態,或接收來自CPU的控制命令。3.根據權利要求2所述的RS-485隔離器,其特征在于,所述RS-485總線狀態檢測模塊還包括另一檢測端,所述另一檢測端和第一RS-485收發器的發送使能端DE-I相連,輔助檢測RS-485總線的狀態。4.根據權利要求1所述的RS-485隔離器,其特征在于,所述外設端包括正向數據端D+和負向數據端D-,所述正向數據端和負向數據端間連接有浪涌保護回路。5.根據權利要求4所述的RS-485隔離器,其特征在于,所述浪涌保護回路包括兩個串聯在正向數據端和負向數據端的的電阻Rl、R2,跨接在電阻Rl、R2內側的瞬變抑制二極管D1、D2以及跨接在電阻Rl、R2外側的氣體放電管GAS1、GAS2。6.根據權利要求1至5所述的任一RS-485隔離器,其特征在于,所述第一隔離器件和第二隔離器件為光電耦合隔離器件。全文摘要本發明公開了一種RS-485隔離器,包括通過隔離器件耦合隔離的本地CPU端和外設端,其中,所述本地CPU端包括第一RS-485收發器和第一數據流向控制模塊;所述外設端包括第二RS-485收發器和第二數據流向控制模塊;所述隔離器件包括第一隔離器件和第二隔離器件;每個RS-485收發器包括接收數據端、發送數據端、接收允許端和發送使能端;所述第一RS-485收發器、第二RS-485收發器分別和所述第一隔離器件相連;所述第一數據流向控制模塊、第二數據流向控制模塊分別所述第二隔離器件相連。本發明提供的RS-485隔離器屬于兩線隔離的RS-485收發器,能夠自動發送數據并具有通訊中繼功能。文檔編號H03K19/0175GK101800535SQ20101010734公開日2010年8月11日申請日期2010年2月9日優先權日2010年2月9日發明者陳美良申請人:悉雅特樓宇自控(杭州)有限公司