정의
차량 버스 네트워킹은 차량 안의 여러 제어기가 서로를 잇는 전용선 대신 하나의 공유 매체를 시분할해 통신하는 방식이다. 각 노드는 버스가 비어 있을 때 프레임을 실어 보내고, 그 프레임은 매체에 붙은 모든 노드에 함께 도달한다.[1]
오늘날의 고급 차량은 100개가 넘는 전자 제어기(ECU)를 싣고, 제어기가 늘어나는 만큼 배선 다발의 길이와 무게도 함께 늘어난다.[2] 기능이 하나 추가될 때마다 전용 제어기와 센서·액추에이터 한 벌이 따라붙던 관행이 이 증가를 밀어 왔고, 그렇게 늘어난 부품들을 이어 준 것이 CAN과 LIN 같은 버스였다.[3] CAN을 비롯한 차량용 버스가 무엇을 푸는지 보려면, 버스가 없을 때 배선이 어떤 모양이 되는지부터 봐야 한다.
전용선 배선의 한계
전용선(point-to-point) 배선은 신호를 주고받아야 하는 두 장치마다 선을 한 벌씩 놓는다. 공유할 버스가 마땅치 않은 신호는 지금도 이렇게 처리된다 — 후방 주차 카메라와 그 영상을 받는 제어기 사이의 전용 케이블이 그런 예이며, 이렇게 쌓인 케이블 하네스는 차량에서 무게와 비용 모두 상위 세 항목 안에 든다.[4]
규모가 커지면 이 방식은 버티지 못한다. 서로 통신해야 하는 제어기 쌍마다 선이 하나씩 필요하므로, 제어기가 늘 때 연결선은 제어기 수보다 훨씬 빠르게 늘어난다. 한 대의 배선 다발이 수십 킬로그램에 이르고 길이가 수 킬로미터에 달하는 것도, 늘어난 배선이 그대로 네트워크의 복잡도와 차량 무게와 원가로 되돌아오는 것도 여기서 온다.[2]
매체 공유
버스 방식은 선을 쌍마다 두는 대신 모든 노드를 같은 매체에 붙인다. CAN이 대표적인 예다 — 복잡한 배선 다발을 두 가닥 버스로 바꾸려고 자동차 산업에서 만들어진 직렬 통신 버스다.[5]
한 가닥의 매체를 여럿이 나눠 쓸 수 있는 것은 정보를 비트 열로 풀어 시간 축에 늘어놓기 때문이다. 신호선을 값마다 따로 두는 대신 한 구간에 값을 차례로 실어 보내면, 같은 도선이 시각마다 다른 신호를 나를 수 있다. 그래서 버스에는 어느 한 순간에 프레임 하나만 지나가고, 각 노드는 버스가 비어 있을 때 자기 프레임을 내보낸다. 보내진 프레임은 보낸 노드를 포함한 모든 노드에 도달하므로, 한 번의 전송으로 여러 수신자가 같은 값을 갖게 된다.[1]
개발 동기
배선 다발 감축은 CAN 개발의 동기가 아니라 부산물이었다. 1983년에 시작된 개발이 겨냥한 것은 새 기능을 얹을 수 있는 통신 수단이었고, CAN은 1986년에 공개됐다.[6]
누가 언제 매체를 점유하는지를 정하는 규칙은 프로토콜마다 다르며, 그 분류는 버스 접근 방식에서 다룬다. 공유 매체 자체가 만들어 내는 과제 묶음은 버스 네트워킹 과제가 정리한다. 두 가닥 위에서 비트를 실제 전압으로 바꾸는 방식은 차동 전송이, 노드 안에서 그 일을 나눠 맡는 부품 구성은 CAN 노드 구조가 다룬다.
물리 토폴로지
노드를 매체에 어떻게 배치하느냐는 프로토콜마다 다르다. CAN은 양 끝을 종단한 한 가닥의 꼬임쌍선을 네트워크 토폴로지로 삼는다.[5] 실무 설계에서도 선형 토폴로지가 권장되고, 스타나 혼합 토폴로지는 달성 가능한 속도 대 길이 비를 제한한다.[7] 배선 제약과 종단 규칙은 CAN 버스 종단에서 다룬다.
차량에서 쓰이는 다른 버스들은 다른 배치를 고른다. LIN은 한 가닥 선에 마스터 하나와 여러 슬레이브가 붙고, FlexRay는 스타와 멀티드롭, 그리고 그 둘을 섞은 구성을 모두 허용하며, MOST는 광섬유나 전기 도선 위에 링 또는 데이지 체인으로 구성되는 것이 보통이다. 자동차용 이더넷은 이 목록에서 성격이 다르다 — 매체를 여럿이 나눠 쓰는 대신 링크마다 두 노드를 잇고 그것을 스위치로 묶으며, 인포테인먼트 영역에서 링 기반 MOST 망이 스위치 기반 이더넷 망으로 대체되는 흐름이 그 예다.[4]
| 토폴로지 | 채택 예 |
|---|---|
| 선형(멀티드롭) | LIN, CAN, FlexRay |
| 스타 | FlexRay |
| 링·데이지 체인 | MOST |
| 스위치로 묶인 지점 간 링크 | 자동차용 이더넷 |
각 버스의 대역폭과 적용 영역 비교는 차량용 버스 시스템에서 다룬다.
경로 정보 없는 프레임
여러 홉을 거쳐 목적지를 찾아가는 그물망(mesh)과 달리, 공유 매체에 붙은 노드들은 중간 노드를 거치지 않고 한 번의 전송으로 서로에게 닿는다. 그래서 프레임이 목적지나 경로를 지정할 이유가 없다. CAN 프레임의 식별자는 보낸 노드의 신원이 아니라 메시지의 내용을 가리키며, 각 노드는 그 식별자만 보고 그 프레임을 처리할지 무시할지 스스로 정한다.[1]
이 주소 지정 방식이 노드를 더하고 바꿀 때 갖는 이점은 CAN 메시지 주소 지정에서 다룬다. 서브네트워크 사이의 전달처럼 버스 프로토콜이 정하지 않는 기능을 누가 맡는지는 상위 계층 프로토콜이 이어받는다.