本文主要講的是自己對於CAN ID的理解,希望對需要的人有幫助,本文以通俗的方式來理解,不涉及到具體CAN通信。
在接觸CAN之前,應該接觸過IIC通信,在IIC通信中,在同一條IIC通信總線上每個device有唯一的ID,后續對於device的操作都是通過唯一的ID號來區分。而CAN ID雖然也叫ID,但是意義卻不一樣,每個CAN device可以接收和發送多條不同的ID報文。
比如在一條CAN總線上有三個device,叫做A,B,C吧。
A device有接收ID:202,302;發送ID:101,102;
B device有接收ID:101,303;發送ID:201,202;
C device有接收ID:101,102,201;發送ID:302,303;
如果A device發送了ID為101的一條報文,因為B device和C device都有接收為101的ID,那么B device和C device都可以接收到這條報文。
如果A device發送了ID為102的一條報文,因為只有C device都有接收為102的ID,那么只有C device可以接收到這條報文。
如果B device發送了ID為202的一條報文,因為只有A device都有接收為202的ID,那么只有A device可以接收到這條報文。
可以看出,CAN ID其實是個報文過濾器,當總線上報文的ID和自己接收的ID有相匹配的時候,就可以接收相應的報文。
CAN中的ID是為了定義相應的報文的含義,每個ID對應有自己的具體含義。
比如,101為電壓信號,201為電流信號,這樣當A device要發送電壓信號時候,就用101 ID的報文,B和C device接收到101 ID的報文之后,知道這是電壓信號。
---------------------
作者:zdc1122
來源:CSDN
原文:https://blog.csdn.net/zdc1122/article/details/77803921
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
