本文主要讲的是自己对于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的报文之后,知道这是电压信号。

posted on 2020-12-09 20:47  tubujia  阅读(665)  评论(0编辑  收藏  举报