[問卦] 玩過 CAN bus 的請進

作者: dces4212 (flawless)   2022-12-23 17:16:46
內葛阿
我在研究 CAN 的規格的時候遇到個想不通的點,
我們知道,在 CAN bus 裡面,當一個 sender 收到與自己正在傳輸的位元不一樣的準位
的信號時,也就是它原本正在送 1,結果收到 0,它會知道發生碰撞,並且讓出 bus 給
正在傳輸的節點。
問題來了!
如果 header 已經傳完了,當下正在傳輸的是 payload,並且正在傳送 1 的資料,這時
剛好其他節點開始說話了,並且發送 0。這樣不就造成即便 can_id 是最小的 frame,
也就是優先序最高的 frame,也會失去這次發送資料的機會?!?!
還是說,transceiver 的實做會在收完 header 的那幾個位元之後,就停止自己這個節點
的發送,直到其他節點傳送完資料,才會再次發送待傳送的資料,以避免上述情況發生?
蛤?

Links booklink

Contact Us: admin [ a t ] ucptt.com