차량에 여러 개의 CAN 버스가있는 이유는 무엇입니까?


17

CAN 버스에는 여러 가지 질문이 있지만 차량에 여러 개의 CAN 버스가있는 이유를 설명하는 것은 없습니다. 내가 이해 한 바에 따르면 여러 다른 노드를 단일 CAN 버스에 연결할 수 있으므로 왜 두 개 이상의 노드가 필요한지 잘 모르겠습니다. 내 유일한 생각은 :

A. 단일 CAN 버스에 연결될 수있는 노드 수에는 상당히 제한이 있습니다. 그러나 그러한 경우 중재 및 오류 검사가 발생할 수 있도록 CAN 간 연결이 있어야한다고 생각합니다 (CAN SPEC 2.0).

-또는-

B. 노드는 1 차, 2 차 및 3 차 시스템으로 우선 순위가 지정되며 각 레벨에는 자체 CAN 버스가 있으며이 레벨에는 기능 측면에서 서로 독립적 인 장치 만 포함됩니다. IE 브레이크, 엔진 제어, 외부 조명, 잠금 장치는 기본 버스에 있습니다. 라디오, AC, 좌석 제어는 2 차 버스 등에 있습니다.

누구든지 설명 / 명확히 할 수 있다면 정말 감사하겠습니다. 미리 감사드립니다.


1
나는 이것에 대해 많이 알지 못하지만 OBDII 포트는 하나의 연결 만 있기 때문에 하나의 버스 만 있다고 생각했습니다. 별도의 버스는 어떻게 처리됩니까? 그것들을 분리시키는 것은 무엇입니까?
JPhi1618

@ JPhi1618 솔직히 나는 그다지 나 자신을 모른다. 그래서 나는 묻는다. 나는 그가 해커 톤 행사에서 돌아온 후 CAN 버스를 통해 동료 차량 보안에 대해 이야기하고 있었고 대부분의 차량에 여러 개의 CAN 버스가 있다고 언급 한 많은 사람들을 발견했습니다. 내가 아는 유일한 연결은 OBDII 포트라는 것에 동의합니다. 사람들이 여러 곳에서 언급 한 곳에 몇 개의 게시물이 있습니다. ( mechanics.stackexchange.com/questions/8559/obd2-and-can-bus-am6sigma 가 답변에 언급했습니다).
Moeman69

발견 이 토론 : 말한다 요청 데이터에 특정 CAN 디바이스에서 데이터 세트를 요청하고 반환되는 데이터를 읽고, 연결 설정을 협상의 CAN 게이트웨이와 악수 할 필요가 있습니다. 당신의 CBT가 악기 클러스터, 전면 오른쪽 도어 컨트롤러 등의 창 위치에서 엔진 컨트롤러에서 주행을 RPM을 요청할 수 있습니다 - 올바른 요청 사용하면 하나 개의 연결에서 3 개 버스의 데이터에 액세스 할 수 는 같다 그래서 "게이트웨이"가 핵심입니다.
JPhi1618

@ JPhi1618 Ahh 감사합니다. 나는 그 페이지를 본 적이 없다. 또한 악기가 다른 버스에 클러스터로 연결되어 있다는 점에서 B가 올바른 것으로 보입니다. 그러나 CAN 게이트웨이는 VW 차량에 고유 한 것으로 보이며 반드시 표준은 아닙니다. 다른 차량에도 비슷한 장치와 설정이 있다고 생각할 수 있지만 순전히 추측입니다. 여러 버스에 대한 직접적인 지식을 갖고있는 사람을 언급 한 사람들이 있기 때문에 PM 사람들이 될 수 있기를 바랍니다.
Moeman69

답변:


17

CAN 버스는 주로

  • 혼잡 관리
  • 안전이 중요한 시스템에 대한 규제 문제를 줄입니다.
  • 다양한 버스에 액세스 할 수있는 사람을보다 효과적으로 제어

간단한 차량에는 엔진 및 안전 시스템 용 하나와 차체 컨트롤 (조명, 사용자 경험 등)을위한 두 개의 CAN 버스가 있습니다.

복잡한 차량에는 차량의 움직임에 영향을주는 시스템 (예 : 레이더 보조 크루즈 제어, 주차 시스템, 차선 안내 등)을위한 별도의 버스와 차량 엔터테인먼트 시스템과 같은 간단한 차체 제어 이외의 사용자 기능을위한 추가 시스템이 있습니다.

버스를 공유 수는 있지만 몇 가지 이유가 있습니다.

충혈

고속 CAN 버스조차도 무제한 폭을 갖지 않으며 실제로 최신 통신 시스템과 비교할 때 매우 느립니다. 그러나 여전히 많은 양의 데이터가 있어야하며 대부분의 경우 시간이 중요하므로 활용도가 낮 으면 메시지를보다 신속하게 전달할 수있어 (충돌이 적음) 실시간 메시지가 늦지 않고 제 시간에 도착합니다. .

테스팅

안전에 중요한 시스템은 종종 다른 시스템과 분리되어 테스트가 줄어 듭니다. 안전 크리티컬 버스에 연결된 모든 장치는 더 높은 작동 표준을 가져야하므로 안전 크리티컬 버스에 문제가 발생하지 않도록 테스트해야합니다. 별도의 바디 버스를 사용하면 정전으로 인해 안전 문제가 발생하지 않으므로 표준이 약간 낮아질 수 있으므로 테스트가 줄어 듭니다.

하나의 버스에서 모든 것을 결합하고 모든 것이 더 높은 표준에 맞는지 확인하는 대신 별도의 버스를 사용하면 설계자가 버스를 세그먼트 화하고 비용을 절감 할 수 있습니다.

특히 업계에서 과거에 경험했던 스로틀 문제 및 기타 드라이브 별 문제로 인해 산업 규정이 어렵습니다. 중요 시스템을 중요하지 않은 시스템과 분리하여 유지하면 사실 이후에 발생한 문제를 파악하고 해결하는 것이 안전 시스템의 올바른 작동을 방해 할 수있는 장치가 더 적기 때문에 훨씬 쉬워집니다.

제어

Modders가 단일 인터페이스를 통해 엔진 관리 및 기타 컴퓨터를 변경할 수 있음을 알게되면 차량 제조업체는 진단 커넥터와 해당 버스를 나머지 차량 버스와 분리하고 게이트웨이를 사용하여 허용 된 메시지 만 전달합니다. 사용자 및 차고에 액세스 할 수 있습니다. 일반적으로 자체 기술자가 액세스 할 수있는 추가 기능이 있으며, 대부분은 진단 커넥터에 다른 버스를 추가 할 수도 있지만 메시지 세부 정보를 게시하지 않아도 진단 방출 규정과의 역 호환성을 유지하면서 고속 액세스가 가능합니다.

그러나 버스를 분리하면 간단한 진단 커넥터를 사용하여 온보드 컴퓨터에 쉽게 액세스 할 수있는 사람을 조금 더 제어 할 수 있습니다.

추가 복잡성

추가 버스로 인한 복잡성은 게이트웨이 컨트롤러에 의해 처리됩니다. 일부 차량의 경우 이것은 차체 컨트롤러이며 종종 LIN과 같은 다른 버스 연결이 있습니다. 예를 들어, 진단 장치가 연결될 때 장치가 차량 전체의 모든 관련 진단 정보에 액세스 할 수 있도록 버스간에 메시지를 전달합니다.


1
귀하의 요점에 동의하지만 "테스트"보다 "안전"을 강조합니다. 안전 크리티컬 컨트롤러는 버스 사이의 통신을 정의 된 서브 세트로 필터링하고 제한하는 게이트웨이에 의해 다른 컨트롤러와 분리됩니다. DVD 플레이어는 브레이크 또는 에어백을 제어 할 수 없어야합니다 (잘 만들어진 USB 스틱으로 납치 한 후). 이 전략은 인터넷에 노출되지 않는 미션 크리티컬 서버가있는 LAN과 동일합니다. 테스트는 지금까지만 진행됩니다. 고립은 바보 증거입니다.
피터-복원 모니카

@ PeterA.Schneider 동의하지 않지만 '09 년 대형 포드 차량의 차체 모듈에서 작업했으며 원하는 결과가 향상되었거나 검증 가능한 안전성이있을 수 있지만 증거는 테스트 중입니다. 이 모듈은 테스트 시간을 단축시킵니다. 실제로는 하나의 복잡한 모듈 만 테스트하면 모든 내부 순열에서 몇 개월이 걸리고 하나의 완전한 차량 버스 연도를 테스트 할 수 있습니다. 이것은 상당한 비용으로 어느 정도 나 유사 할 수 있지만 몇 주조차도 용납 할 수 없습니다. 버스를 분리하면보다 간단하고 빠른 테스트가 가능합니다.
Adam Davis

@ PeterA.Schneider이를 통해 모듈과 버스를보다 완벽하게 테스트 할 수있어 안전성이 향상되지만, 주요 목표는 안전성을 높이 지 않고 특정 안전 표준을 유지하면서 개발 시간을 줄이는 것이 었습니다. 모듈이 설계되고 메시지 전달이 설계되는 방식으로 엔진 버스에서 재 플래시 된 DVD 플레이어가 문제를 일으킬 가능성은 거의 없습니다. 버스를 연결하는 하드웨어는 실리콘 수준에서 DOS 공격을 방지하며이 하드웨어에 연결하는 마이크로 컨트롤러는 소프트웨어를 통해 프로그래밍 할 수 없습니다.
Adam Davis

@ PeterA.Schneider 아마도 이것이 의미 론적이거나 차이가없는 구별 일 수 있지만 제조업체가 단일 버스를 요구 한 경우 별도의 버스에 존재하는 것과 동일한 수준의 안전성으로 시스템을 설계 할 수 있습니다. 개발 시간은 실제로 고통받을 유일한 것입니다. 운 좋게도 별도의 버스의 추가 비용이 저렴합니다. 그렇지 않으면 별도의 버스 비용이 너무 큰 경우 단일 버스를 설계하게됩니다.
Adam Davis

8

CAN에 대해 구체적으로 이야기 할 때 위의 답은 없습니다.

CAN 시스템에서 노드는 서로 직접 통신하지 않고 시스템은 메시지 기반입니다. 모든 메시지는 주소를 기반으로 우선 순위를 가지며 누가 대화할지 결정합니다. 우선 순위 메시지를 가진 사람은 누구에게나 메시지를 전송하고 누구에게나 메시지를 읽습니다.

가질 수있는 노드 수에는 제한이 있지만 전기 제한이며 실제 버스의 기능이 아닙니다.

고속 CAN은 속도 때문에 전기적으로 매우 복잡하기 때문입니다. (전송 라인, 신호 무결성, 스터브 및 터미네이션에 대해 계속 진행할 수 있지만 이것이이 답변에 필요한 것 이상의 방법입니다.) 따라서 설계가 복잡해지고이를 사용하는 모듈이 더 비쌉니다. 또한 모든 것이 고속 CAN의 브레이크 넥 속도를 필요로하는 것은 아닙니다. CAN 버스 시스템은 일반적으로 저속, 중속 및 고속의 3 가지 버스로 분류됩니다.

  • 고속 CAN은 모든 중요한 시스템을 연결합니다. 엔진, ABS, 에어백, 변속기, 몸체. 그런 다음 차체 컴퓨터는 다른 버스 사이의 게이트웨이 역할을합니다.
  • 중속 CAN은 일반적으로 외부 조명, 파워 록, 파워 미러 등과 같은 자동차 기능에 사용됩니다.
  • 저속 CAN은 나머지 중요하지 않은 시스템을 픽업합니다. 여기에는 실내 조명, 엔터테인먼트 등이 포함될 수 있습니다.

앞에서 언급했듯이 CAN 버스는 노드 주소 대신 메시지 주소를 사용합니다. 예를 들어, 차량 속도는 메시지입니다. 이 메시지는 ABS 장치에서 전송되며 우선 순위가 상당히 높습니다. 엔진, 에어백, 트랜스미션 및 바디는 모두 메시지에 관심이 있으며 메시지를 읽습니다. 메시지를 수신 한 후 바디는 다른 버스를 통해 메시지를 다시 전송합니다. 저속 버스는 일반적으로 고속 버스만큼 자주 업데이트 할 필요가 없으므로 Body는 가끔씩 만 업데이트합니다.

모듈에 일반적으로 전송되지 않는 정보가 필요한 경우 모듈이 정보를 요청할 수 있습니다. 버스의 설계는 데이터가 요청 될 때 정보를 가지고있는 모듈이 정보가 필요한 사람 만이 아니라 정보가 필요한 것만 알도록하는 것입니다.

게이트웨이는 본체 일 필요는 없으며 계기판 또는 다른 컴퓨터 일 수 있습니다.


확실한 답변에 감사드립니다. 나는 CAN 메시지와 메시지 중재에 대해 잘 알고 있습니다. 내가 정말로 찾고있는 질문은 다른 CAN에 연결된 노드 (고속 임계 시스템 CAN과 같은)에서 볼 수있는 한 CAN (저속 비 임계 CAN)의 메시지입니까? 중재 시스템이 본질적으로 메시지 우선 순위를 처리하므로 모든 장치가 단일 CAN에 연결되어 있으면 시스템이 완벽하게 작동 할 수 있다고 생각합니다. 또는 다른 CAN이 서로 연결된 경우에도 마찬가지입니다. 그것들은 별개의 필요성과 비용의 문제입니까?
Moeman69

예. 자동차에는 백여 개의 서로 다른 노드가있을 수 있습니다. 고속 CAN으로 이들을 모두 갖추는 것은 비용이 많이 든다. 또한 버스를 정체시키고 중요한 시스템에서 훨씬 더 많은 장애 지점을 제공합니다.
vini_i

2

2003 년부터이 만화에 그 이유 중 하나가 잘 요약되어 있습니다.

여기에 이미지 설명을 입력하십시오

( "새 장치가 발견되었습니다. Airbus A310. 자동 구성을 시작 하시겠습니까? [시작] [취소]")

최근에도 비슷한 공격이보고되었습니다. 잘 구성된 게이트웨이를 통해서만 액세스 할 수있는 별도의 버스에 안전 핵심 구성 요소를 배치하면 위와 같은 부주의 한 문제가 발생할 가능성이 크게 줄어들고 해킹이 훨씬 더 어려워집니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.