我有一臺電腦(即用作服務器)和幾個板與Atmega
微控制器是這樣的:廣播獲取數據在UART
將計算機連接到UART
& RS485
(板帶USB
到RS485
轉換器)(我有導致我不能採用MODBUS)的限制。我想從廣播服務器通過總線消息並從每個板的取ID(板ID是4位)。
當單板收到廣播消息並嘗試發送自己的ID並且服務器收到一些僞造的ID時,我認爲它與所有單板想發送一次中的數據時碰撞問題有關。
之後我搜索一下這個問題找到了一種方法是把一個不斷在每個省一個特殊的延遲發送數據,並在董事會收到廣播消息與延遲發送ID板......這樣它的工作很好,我沒有看到碰撞,但有一些問題:
- 可能是2板的延遲數相同。
- 用於電路板的小型計數的好方法。
- 額外的過程要當上巴士安裝板。
有人知道這個問題,可以幫助我如何解決這個問題更好的解決方案?
具有共享總線上的多個站點同時回答廣播是一個壞主意。客戶端主板上是否有一些邏輯嘗試檢測總線是否已被佔用,然後嘗試訪問它作爲答案(這將是CSMA/CD的「CSMA」部分) – tofro
*「...和服務器收到一些虛假的ID「* - 聽起來像你需要實現更好的消息完整性檢查。 *「但總的來說,它工作得很好」* - 然後你的期望很低,你應該完成,對嗎? – sawdust
@sawdust _and服務器接收一些假ID_:我覺得在發現假身份證的錯誤,但我的問題是**如何防止客戶端發送假身份證** ..._但作爲整體工作fine_是的,它的工作,但有我有問題說問題。主要問題是_May被2板的延遲數same._,並導致衝突再次... –