我接受了採訪。面試官問我:CAN會發生什麼?
如果兩個節點發送兩個具有不同數據的相同標識符(0x100)的消息,誰將贏得仲裁?巴士上有哪條消息?
如果節點1贏了,那麼節點2的消息呢?節點2的消息何時會被髮送?
我接受了採訪。面試官問我:CAN會發生什麼?
如果兩個節點發送兩個具有不同數據的相同標識符(0x100)的消息,誰將贏得仲裁?巴士上有哪條消息?
如果節點1贏了,那麼節點2的消息呢?節點2的消息何時會被髮送?
我找到了答案Controller Area Network - CAN Information。
網絡上的兩個節點不允許發送具有相同ID的消息。如果兩個節點試圖同時發送具有相同ID的消息,則仲裁將不起作用。相反,其中一個發送節點將檢測到他的消息在仲裁領域之外失真。然後節點將使用CAN的錯誤處理,在這種情況下最終將導致發送節點中的一個被關閉(總線關閉模式)。
這裏有2案件
CASE 1:當兩個節點都試圖傳送相同的ID和相同的數據字段,CAN將它視爲一條消息,並將它發送到CAN總線上。在這裏,你真的不能說節點1是發送還是節點2正在發送,因爲兩者都有相同的ID和數據。
CASE 2:這裏的數據字段是不同的。在仲裁領域之前不會有問題。由於兩個節點的數據都不相同,所以會出現總線錯誤。這是因爲您的數據字段受CRC保護,位填充也會出現在圖片中。
在一個CAN N/W中,如果2個設備具有相同的節點ID,則兩個設備都不會檢測到&不會發生消息的解除/響應。 (沒有什麼可以工作,比如Bit Bit Stuffing,Arbitration,Error Detection,Bit monitoring,ACK,CRC)。
在N/W如果我們有不同的ID,那麼我們可以傳輸相同或不同的消息。爲了控制CAN N/W,我們使用仲裁概念。
感謝您的更新 –