CAN 통신
CAN 통신은 다들 아시겠지만 자동차를 위하여 태어난 통신입니다.
80년대 보쉬사에서 개발을 하고 90년대에 자동차에 최초 적용하게 되었습니다.
CAN통신의 가장 큰 장점이라면 무엇보다도 버스방식의 통신방식입니다.
위 그림처럼 기존의 통신방법은 point to point 방식으로 하나의 통신포트는 상대의 통신포트와 1:1로 통신이 가능했습니다.
대표적으로 UART, RS232등입니다.
하지만 통신을 해야하는 유닛들이 많아지면서 1:1통신으로는 통신포트가 감당을 할 수 없었습니다.
버스식 통신방식으로는 CAN외에도 RS485, SPI, I2C등이 있습니다.
CAN통신을 위해서는 CAN컨트롤러가 필요합니다.
CAN통신의 경우 Frame ID외에 많은 정보들이 포함되므로 CAN 트랜시버에 이러한 정보들을 주고받고
ID를필터링하는 역할을 합니다.
CAN 통신의 경우 장거리 통신과 고속통신이 가능한데 통신속도에 거리는 반비례합니다.
CAN은 최대 1Mbps의 초고속 통신이 가능하지만 거리는 40m까지 줄어들고,
1km의 장거리 통신이 가능하지만 속도는 50kbps로 떨어지게 됩니다.
CAN의 메세지 구조는 위 그림과 같습니다.
CAN은 기본형과 확장형으로 크게 2가지가 있으며, 기본형의 경우 ID는 11bit, 확장형은 29bit입니다.
Arbitaration Field의 Id는 Frame ID이고,
RTR은 뒤에 Data Field가 있는 Data frame인지 Remote Frame인지 구분하는 비트입니다.
Control Fiedl의 IDE는 기본형인지 확장형인지 구분하는 비트이고, DLC는 데이터의 길이를 나타냅니다
Data Field는 실제 전송하는 Data인데, 앞의 RTR이 0(Data Frame)이면 데이터가 들어가고,
1(Remote Frame)이면 데이터가 없습니다.
Remote Frame은 데이터를 요청할때 사용됩니다.
위 그림은 전송데이터에 대한 bit값과 그에따른 물리계층의 전기신호를 나타낸 그림입니다.
CAN의 경우 CAN HI와 CAN LO 2가닥의 선으로 연결이 되는데,
두 선의 레벨차가 2V정도이면 우성으로 LOW(0)가 되고, 아닌경우에는 HI(1)로 인식합니다.
CAN의 통신 레벨은 High Speed와 Low Speed의 2가지로 구분됩니다.
※출처에서 이미지 사용에 대한 양해를 일일이 구하지 못하였습니다. 문제시 삭제하도록 하겠습니다.