<listing id="62mou"><object id="62mou"></object></listing>
    <output id="62mou"><pre id="62mou"><dd id="62mou"></dd></pre></output>
  1. 新聞中心

    EEPW首頁 > 網絡與存儲 > 設計應用 > 如何解決RS-485自動收發電路應用異常?

    如何解決RS-485自動收發電路應用異常?

    作者:時間:2018-10-11來源:網絡收藏

       總線是半雙工的通信總線,因此通常需要控制收發器的收發狀態。為節省的I/O資源,自動收發型收發器應運而生,但該類收發器或多或少會遇到一些應用問題,這一類問題該如何解決?本文將從工作原理為你揭曉。

    本文引用地址:http://www.09140960.com/article/201810/392780.htm

      一、自動收發電路簡介及應用簡析

      1、自動收發電路原理

      常見的RS-485自動收發電路如圖1所示,電路的邏輯真值表如表1所示,當TXD為低電平時,DE和RE為高電平,RS-485收發器處于發送狀態,AB處于低電平,即向其他節點發送低電平信號;當TXD由低電平變為高電平時,DE和RE變為低電平,RS-485收發器處于接收狀態,此時AB引腳處于高阻狀態,R3將B引腳拉至GND,R4將A引腳拉至VCC,此時AB為高電平,即向其他節點發送高電平信號。由于TXD為高電平時,RS-485收發器處于接收狀態,因此只需將TXD保持為高電平即可接收數據,即自動收發電路發送高電平時同時也是接收狀態。

    圖1 RS-485自動收發示意圖

    表1 自動收發電路示意圖

      二、自動收發電路常見應用問題及解決方案

      1、通信速度較慢

      RS-485自動收發通信速度較慢的原因主要有兩個。一是若使用圖1所示的自動收發電路,三極管的關斷時間較長(主要是由于三極管關斷時的存儲時間較長),圖1中所示參數的三極管反相電路,開啟延時時間如圖2所示為10.2ns,關斷延時時間如圖3所示為1.14μs,因此若TXD發送低電平,DE&RE引腳較長時間后才會升至高電平,發送低電平的延時時間較長,圖1所示電路發送低電平信號延時時間如圖4所示為1.468μs。

    圖2開啟延時時間

    圖3 關斷延時時間

    圖4 發送低電平信號延時

      二是自動收發電路發送高電平是通過外部上下拉電阻驅動的,上升沿較緩慢,波形如圖5所示,可以看出,發送高電平的上升沿較為緩慢,限制了高速通信的應用。

    圖5 發送高電平上升時間

      2、高波特率通信時存在通訊異常風險

      如圖6所示,TXD變為高電平,DE&RE引腳降為低電平,AB差分電壓緩慢上升,由于此時RS-485收發器已經處于接收狀態,在AB差分電壓上升至RS-485收發器門限電平前RXD引腳會出現到一段時間的低電平信號,例如門限電平為-200mV~-50mV的收發器,AB差分電壓上升至-50mV前RS-485收發器均可輸出低電平,此低電平信號的時間與AB差分電壓上升時間和RS-485收發器的接收延時有關。由于串口一般是將每個位分成16份,檢測中間的3份的電平信號從而確定此位的信號高低,因此若此低電平信號保持至每個位的信號檢測時,則會使接收到一個起始位,從而接收到錯誤的數據,因此這個問題同樣限制了高速通信的應用并且降低了通信的可靠性。

    圖 6TXD發送高電平信號,RXD接收到一段低電平信號

      針對此類問題,可選用致遠電子的寬壓輸入貼片式隔離RS-485自動收發模塊SC4450S(如圖7),該模塊通信速度高達500kbps,并且不會出現發送高電平時接收到一段時間低電平信號的現象,通信波形如圖8所示,極大地提高了通信可靠性。

    圖7 貼片式隔離RS-485收發器SC4450S

    圖8 SC4450S通信波形


    上一頁 1 2 下一頁

    關鍵詞: RS-485 MCU

    推薦閱讀

    評論

    技術專區

    關閉
    贵州11选5app下载
      <listing id="62mou"><object id="62mou"></object></listing>
      <output id="62mou"><pre id="62mou"><dd id="62mou"></dd></pre></output>
      1. <listing id="62mou"><object id="62mou"></object></listing>
        <output id="62mou"><pre id="62mou"><dd id="62mou"></dd></pre></output>