CAN總線仲裁中碰到的奇怪問題我在CAN總線進行三節點通信中碰到一個奇怪問題,向各位高手求助: 用節點A和節點B發送,節點C接收,節點A發送的ID符為0000,節點B發送的ID符為 001B,按CAN協議規定,根據ID符的大小來決定優先權.我在調試中發現節點C兩個報文都能接收到,但是先接收到ID符為001B的報文,(三個節點用同一電源供電用一個開關上電,兩節點的發送程序除了ID符改動外,別的都一樣,發送數據幀;發送節點采用全比較驗收方式,禁止接收彼此的報文;接收節點全屏蔽驗收方式,允許接收一切報文;單個節點發送接收情況正確)。當時我懷疑與ID編碼有關。可是奇怪的是當我把發送程序交換下載到節點A和節點B中時,即節點A發送ID符OO1B,節點B發送ID符0000,節點C卻先收到ID符為0000的報文。我嚐試發送ID符為其他的報文,發現總是節點B發送的報文先被接收。我調換了幾個節點,比如用A做接收,B和C來發送,情況也類似,老是某個節點的報文先被接收,而不管ID符有何變化。由於本人第一次接觸總線仲裁問題,所以碰到如此奇怪的問題很傷腦筋,盼有經驗的高手指點迷津。 本人EMAIL ADDRE :mcm_zelri@sina.com