因復位時I/O口都輸出高電平。若是把I/O口直接與RS-485接口芯片的驅動器使能端DE端相連,會在CPU復位其間DE爲高,從而使本節點處於發送狀態。若是此時總線上其它節點在發送數據,則這次數據傳輸將被打斷而失敗,甚至引發整個總線因某個節點的故障而通訊阻塞,繼而影響整個系統的正常運行。爲了作到通訊避障,考慮系統工做穩定性,在每一個節點的設計中應將控制RS-485總線接口芯片的發送引腳設計成DE端的反邏輯,即控制引腳爲邏輯「1」時,DE端爲「0」;控制引腳爲邏輯「0」時,DE端爲「1」。應用中,將MCU的I/O引腳ControlDE(控制RS485總線接口芯片的發送引腳)反相和CPU復位引腳RESET反相相與驅動DE端,這樣就可使控制引腳爲高或者異常復位時使RS-485接口始終處於接收狀態,從而從硬件上有效避免節點因異常狀況而對整個系統形成的影響設計
在RS-485總線構築的半雙工通訊系統中,通常採用主從通訊模式,即整個系統中只有一個爲主節點,總線上全部其它節點都是從節點,通訊方式通常是主節點循環輪詢各個從節點。這有不少弊端,首先,此時主節點的通訊工做其CPU通訊負擔較重,必定意義上講,會對其完成其它系統工做形成必定影響;整個系統「危險」集中主節點,主節點的工做可靠性和穩定性是整個系統穩定、可靠工做的前提和保證;一旦主節點發生故障,將致使整個系統的崩潰。其次,系統通訊效率低,由於不管某一個節點是否須要發送數據或須要使用總線,都要等到主節點輪詢到自身,從而使得系統的通訊效率較低,總線利用效率低。系統實時性差。因其通訊的效率較低使得從節點有實時性要求幀信息得不到及時發送從而使得系統的實時性差。因此,多主發送有其現實意義。接口
多主發送在硬件上只要在MAX485R的R引腳上經過反相器接在MCU的IRQ上,當一節點須要用總線時,爲了實現總線的通訊避障須要偵聽,當總線上有數據正在傳輸數據時,RS-485接口芯片的數據接收端表現高低電平,利用其產生的CPU上升沿中斷,能夠得知此時總線是否忙,即總線是有節點正在通訊效率
設置偵聽時間IRQ中斷標誌—在1ms內有無IRQ中斷—(無)發數據—(有)繼續偵聽循環