|
公司基本資料信息
|
CAN總線是德國BOSCH公司從80年代初為解決現代汽車中眾多的控制與測試儀器之間的數據交換而開發的一種串行數據通信協議,它是一種多主總線,通信介質可以是雙絞線、同軸電纜或光導纖維。通信速率較高可達1Mbps。
完成對通信數據的成幀處理
CAN總線通信接口中集成了CAN協議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、循環冗余檢驗、優先級判別等項工作。
在總線中傳送的報文,每幀由7部分組成。CAN協議支持兩種報文格式,其獨有的不同是標識符(ID)長度不同,標準格式為11位,擴展格式為29位。
在標準格式中,報文的起始位稱為幀起始(SOF),然后是由11位標識符和遠程發送請求位 (RTR)組成的仲裁場。RTR位標明是數據幀還是請求幀,在請求幀中沒有數據字節。
控制場包括標識符擴展位(IDE),指出是標準格式還是擴展格式。它還包括一個保留位 (ro),為將來擴展使用。它的較后四個位用來指明數據場中數據的長度(DLC)。數據場范圍為0~8個字節,其后有一個檢測數據錯誤的循環冗余檢查(CRC)。
應答場(ACK)包括應答位和應答分隔符。發送站發送的這兩位均為隱性電平(邏輯1),這時正確接收報文的接收站發送主控電平(邏輯0)覆蓋它。用這種方法,發送站可以保證網絡中至少有一個站能正確接收到報文。
報文的尾部由幀結束標出。在相鄰的兩條報文間有一很短的間隔位,如果這時沒有站進行總線存取,總線將處于空閑狀態。
雖然這樣的應用在CAN的規范里沒有明確禁止,但是不建議這樣設計網絡規劃,這樣會為后續帶來的諸如升級等十分復雜的問題,也影響網絡的穩定。
現在回答補充問題,首先你要明確ID是賦給幀的,不是直接給節點的,只是某節點知道自己要接收某個ID的幀。總線上的節點來說它只管取總線上他應該取的ID的幀,并不管是誰發的。
即使是遠程幀,發出請求的節點在獲得相應時也僅僅是根據幀ID判定,并不影響其他節點的接收。