<CAN Filtring 사용 배경>
- CAN은 하드웨어 레벨에서 원하는 ID의 데이터만 수신할 수 있는 Filter 기능이 있다.
- CAN은 다수의 장치가 하나의 통신 라인에 연결되기 때문에 각 장치마다 고유의 ID를 부여해야 한다.
- 다수의 장치의 데이터를 수신하는 ECU나 어떤 장치는 설정된 ID가 보내는 데이터만 수신해야 한다. → 이렇게 지정된 ID가 보내는 데이터만 수신하도록 하는 기능이 CAN Filtering 이다. → 즉, 내가 원하는 장치가 보내는 데이터만 수신할 수 있도록 Filtering을 적용
<CAN Filter 종류>
- ID List mode, ID Mask mode가 있다.
- 필더링할 ID의 범위를 지정할 수 있는데, 32 bit mode 와 16bit mode가 있다.
- 따라서 아래와 같이 4가지 조합이 나올 수 있다.
- 16 bit, ID List mode
- 16 bit, ID Mask mode
- 32 bit, ID List mode
- 32 bit, ID Mask mode
<ID List Mode 설명>
- ID List Mode는 지정된 ID만 통과시키는 방식
<ID Mask Mode 설명>
- ID Mask Mode는 내가 지정한 범위 ID만 수신하도록 하는 기능
- 위의 사진은 MASK MODE에서 예시를 든 것을 볼 수 있다.
- 위의 두줄은 ID와 MASK이며, 아래의 세줄은 DATA (8byte) 이다.
- ID == 0, MASK == 0
- ID == 0, MASK == 1
- ID == 1, MASK == 1
<주의>
- CAN은 TX ID와 RX ID를 다르게 설정할 수 있다.
- 같은 CAN 버스에 동일한 ID가 존재하면 안 된다.