1. CAN통신의 등장 배경
예전 자동차 제조사들은 차량 내 ECU(전자제어장치) 간의 Point to Point 방식을 사용한 통신 방식을 사용했습니다. (Point to Point방식의 대표적인 예는 RS-232C가 있습니다.) 예전은 대략 ECU의 숫자가 20개 미만 일 때를 이야기합니다.
시간이 지나 ECU의 숫자는 점점 늘어나면서 배선의 길이가 길어지고, 이에 따른 비용과 무게가 증가했습니다. 차량에서는 제작 비용도 민감하지만 무게에 대해서도 상당히 민감합니다. 차량의 무게 증가는 연비 감소로 나오기 때문에 제조사들이 경량화에 힘쓰는 것은 다른 매체를 통해서도 한 번씩은 들어보셨을 것입니다.
이 문제를 해결하고자 자동차 업계에서는 CAN통신을 도입(벤츠가 가장 먼저 상용차에 적용)하였으며 현재 산업 통신에서는 모든 차량에 CAN통신을 사용한다고 봐도 과언이 아닙니다.
그렇다고 2022년인 현재 CAN통신이 최신의 기술은 아닙니다. 이미 CAN통신도 1985년에 Bosch에서 발표한 기술로 상당히 오래전에 개발된 통신입니다. 추가적으로 통신 규격을 개정하면서 가장 최근에는 CAN FD가 나왔고, 이 기술은 약 5년 전부터 국내 제조사 차량에 적용하고 있으며 점차 증가하는 추세입니다.
2. CAN통신의 장점
CAN통신은 여러 개의 ECU가 서로 통신할 수 있는 경제적이고 안정적인 통신입니다. 여기서 경제적이란 것은 위 등장 배경에서도 말했듯이 비용이 감소하고 차량의 무게를 낮출 수 있습니다. 안정적이라고 하는 것은 통신 자체의 무결성이 매우 높습니다. 차량이 오작동하면 매우 위험한 흉기가 됩니다. 그런 점에서 무결성이 낮은 통신은 예초에 차량용 통신으로 사용할 수 없습니다. 무결성이 높은 이유는 노이즈가 강한 통신이기 때문입니다.
좀 더 깊이 들어가 보면 다음과 같은 장점을 가자고 있습니다.
- Twist Pair Waire
> 꼬인 2선을 이용할 때, 2가지 장점이 있습니다. 첫 번째가 배선의 양을 적고, 두 번째가 전기적 노이즈에 강합니다.
- 마스터/슬레이브가 없다
> CAN 네트워크에는 마스터가 없습니다. 보다 정확하게는 네트워크상에 각각의 노드는 모두 마스터이면서 슬레이브입니다. 즉 네트워크상에 버스가 비어 있다면 어떤 노드라도 메시지를 전송할 수 있으며 모든 노드는 해당 메시지를 읽을 수 있습니다. 여기서 각각의 노드는 자신이 필요한 메시지라면 사용하고 필요하지 않은 메시지라면 버리게 되어있습니다. 여기서 버스가 비어 있다고 노드 A와 노드 B가 동시에 메시지를 전송할 수 있기 때문에 이를 보안하기 위해 중재기능을 포함하고 있습니다. 각 메시지에는 ID(Identifier)가 있으며 더 낮은 ID가 더 높은 우선순위를 가지며 전송하게 됩니다. 추가적으로 우선순위가 낮음 메시지는 기다렸다가 전송하게 되는데 또다시 높은 우선순위이 메시지가 계속해서 있다면 전송하지 못하는 것을 방지하기 위해 일반적으로 버스의 부하율을 60% 이하로 설계합니다.
- 다양한 에러 감지 기능
> 여러 가지 Error 검출을 하지만 대표적인 ACK Error와 Bus Off, Stuff Bit Error, CRC Error 등이 있습니다.
> ACK Error : 한 개의 노드에서 전송된 메시지는 다른 노드에서 정상적으로 받았다면 반듯이 ACK(Acknowledge) 신호를 보내게 되어있습니다. ACK 신호가 없다면 정상적으로 보내지 못했다고 생각하여 노드는 해당 메시지를 즉시 재전송합니다. 그래서 CAN Network에는 최소 2개의 노드가 있어야 합니다.
> Bus Off : 각각의 노드는 CAN은 버스 상태를 스스로 모니터링하고 있습니다. 그래서 본인이 보낸 메시지의 우선순위가 낮으면 즉시 멈췄다 보낼 수도 있는 것이죠. 여기에 자신이 보낸 메시지가 맞는데 스스로 보낸 값과 다르게 메시지가 전달되면 스스로 결함이 있다고 판단되어 Bus Off가 되어 해당 노드는 CAN 네트워크 상의 문제를 발생시키지 않습니다.
> Stuff Bit Error : 비동기 방식 통신이기 때문에 동기화 문제를 해결하기 위해 BIT의 edge(0에서 1로 변하거나 1에서 0으로 변할 때)마다 동기화를 합니다. 그런데 동일한 bit가 연석으로 나오면 다시 동기를 맞추는 신호가 길어지면서 메시지 오류 가능성이 높아집니다. 이를 해결하기 위해 CAN통신에서는 동일한 연속 해서 Bit가 5번 나오면 반대가 되는 Bit를 넣어 다시금 동기를 맞추게 됩니다. 이 반대가 되는 Bit를 Stuff bit라고 하며 이것에 문제가 생기면 Stuff bit Error로 감지하고 해당 메시지에는 ack신호를 보내지 않습니다. 메시지 역시 사용하지 않습니다.
> CRC Error : 이건 CAN통신만의 Error 검출 방법이 아니므로 생략하겠습니다.
3. CAN통신 적용 분야
지금까지는 차량용 통신으로만 전달드렸지만 CAN통신의 안정성과 장정이 입증되어 타 분야에서도 CAN통신을 도입하고 있습니다. 기차, 지하철, 항공, 선박 등 이동 수단에서 사용하였고, 병원이나 우주 항공에서도 CAN통신을 사용하고 있습니다.
저도 시험실 PC와 운영실 PC를 연결하기 위해서 CAN통신을 사용해봤고, CAN으로 Power Supply나 E-load를 제어하기 위해 중간에 Embedded 시스템을 넣어 CAN통신을 사용하기도 했습니다.
'CAN통신' 카테고리의 다른 글
[CAN통신] 1강. CAN 구성 - Hardware, Network And Wiring (하드웨어, 네트워크 그리고 결선) (3) | 2022.09.14 |
---|
댓글