rs485的通信方式看似比較簡單,其實通信軟件的處理還是有需要注意的。
下圖是主機向從機發送信息的示意圖,其中485的線都是手牽手相連的,因此主機向下發的時候,其實各個從機都有在接收數據的,只是,從機是根據地址來區分是否是發給自己的,
舉例:
1、如果主機發送信息中,帶有地址1,
2、則從機1認為是發送自己的數據,因此需要解析,然后如果需要返回,則向外發送數據(這里暫時不說向主機發送)
3、主機2、3則根據地址來判斷不是發給自己的,因此即使接收到數據,也不予理會,不解析、不發送任何信息,以免和從機1發送向沖突,導致主機接收數據錯誤,俗稱數據粘包。
數據發送的過程分析:
從機1 發送信息,那么主機、從機1,2都會接收數據,因此,從機1發送數據的格式如果設定不合理的話,導致從機2,3會以為是主機發送的數據,進而去解析,
因此從機的數據解析一定要比較健壯,否則會導致其他從機解析數據而發送出去,和從機1進行競爭,導致通信故障。