차량용 네트워크 설계의 구조적 접근법
차량 네트워크의 역할은 와이어링 하니스(wiring harness) 비용과 무게를 줄이는 것을 지원하는 것으로부터 최신 차량의 기능들을 실행하는 것을 근본적으로 가능하게 하는 것으로 진화되어 왔다. 오늘날의 차량 내 분산 시스템들은 다양한 형태의 네트워크에 의해 연결된 80개 이상의 ECU(Electronic Control Units)를 가지고 있다. 많은 비효율적인 사례들이 “멀티플렉싱”(대개의 경우, 네트워크로 설명된다)의 초기에 도입되었다. 현재의 기술적 과제들은 새로운 접근법을 필요로 하고 있다. 이 글은 몇 가지 기술적 과제들에 대한 통찰력뿐만 아니라 최상으로 최적화된 고신뢰성의 차량용 네트워크 설계를 위한 적용 가능한 해결책을 제공한다. 공유 자원인 네트워크의 구성은 상당한 기술적 과제들을 제시하며, 이러한 과제들은 시스템 레벨에서 해결되어야만 한다.
CAN 네트워크 설계의
기술적 과제
OSI 모델과 비교하여, CAN 표준은 데이터 링크 계층과 물리 계층에 대해서만 조건을 제공한다. 따라서 보다 높은 추상화 수준들의 부족으로 인하여 일반적으로 최적화되지 못한 독자적인 시스템 구현을 필요로 한다.
학계에서 CAN에 대해 지속적인 관심을 가져왔고, 1990년대 중반부터 많은 연구논문들이 발표되었다. 하지만, 유감스럽게도 이러한 연구들의 대부분이 업계의 연구활동과 연결되지는 못했다.
고신뢰성의 프로토콜과 물리 계층 정의로 인해 상대적으로 작은 CAN 기반 네트워크를 구축하는 것은 간단하고 가치 있는 실습과제가 될 수 있다. 하지만, 복잡도의 증가로 인해 오늘날의 시스템 설계자들은 과거의 간단한 기법들을 통해서는 요구되는 성과를 달성할 수 없는 상황에 직면해 있다.
그 이유는 다음과 같다:
CAN 대역폭은 최대 1 Mbps로 제한되어 있으며, 프로토콜 오버헤드는 50% 이상이다. 따라서 차량용 애플리케이션에서 실질적인 신호 교환을 위해 사용 가능한 대역폭이 250 kbps 이하로 제한된다. CAN 대역폭은 중요한 자원이다. 통신이 증가함에 따라 가용한 모든 대역폭을 최대로 활용해야 하며, 이로 인해 90% 이상의 버스-로드가 발생하지만 여전히 신뢰할 수 있는 신호 전송이 필요하다.
CAN 버스는 공유 자원이다. 상당한 규모를 가진 시스템에서는 버스에 연결된 ECU들 간의 상호작용 및 의존도가 매우 복잡해지고 있다. 우리는 특정 ECU들 간의 계획된 통신뿐만 아니라 고려해야 하는 버스에 연결된 다른 모든 ECU들에 대해 부차적인 효과가 나타날 수 있음을 인식해야 한다. ECU들은 버스 타이밍에 영향을 미치며, 버스 타이밍은 모든 ECU들에 영향을 미친다. 트래픽 스케줄링에 대한 검증된 기술적 해결책을 통해 버스에 대한 분명한 소유권과 통제를 확보하지 못한다면, 문제를 관리할 수 없는 상황에 곧 직면하게 될 것이다.
네트워크 구성 변경을 테스트 및 검증하고 관리하는 방법들과 같은 시스템 통합 문제들 역시 각별한 주의를 요구한다.
앞서 설명한 내용들은 네트워크 설계자가 현재 직면해 있는 주요 기술적 과제의 일부에 불과하다. 이미 알고 있는 바와 같이 신뢰할 수 있고 효율적인 네트워크 시스템을 설계하는 경우에 타이밍이 핵심 문제라 할 수 있다.
리얼타임과 데드라인
이러한 기술적 과제들에 대한 해결책을 찾기 전에 리얼타임과 데드라인에 대해 간단히 살펴보도록 하자. 이러한 문제와 관련하여 많은 오해들이 넘쳐나고 있다. “무엇이 리얼타임인가”라는 질문에 대해 “무엇인가가 지금 바로 발생하는 것” 또는 “무엇인가가 매우 빠르게 동작하는 것”이라는 대답을 들을 수 있다. 하지만 그 어느 것도 정답이 아니다. 리얼타임은 데드라인을 충족시키는 것과 관련된 것으로 반드시 매우 빠르게 동작할 필요는 없지만 항상 해당 시간창(time-window) 내에 발생해야 한다. 데드라인을 충족시키는 것은 품질문제이다. 데드라인을 충족시키는 데 실패했다는 것은 계산을 잘못했다는 의미와 같으며, 시스템(즉 제품)이 오작동을 일으킬 수 있다는 것이다. 왜 이런 문제가 우리에게 중요한 것인가? 공유 자원인 CAN 버스는 많은 다른 기능들에 의해 부과된 요구들을 충족해야 한다. 메시지들은 예측되지 않은 지연 또는 데이터의 손실 없이 예측 가능한 방법으로 전달되어야만 한다.
데드라인 충족을 위한 테스트 -
좋은 아이디어는 아니다…
엔지니어들은 연장된 시간 조건에서 시스템을 관찰하고 측정된 응답시간이 지정된 데드라인 내에 있는지를 확인함으로써 정확한 타이밍 동작을 검증하려 한다. 전체 차량에서 정상적인 동작을 필요로 하는 긴 시간에 비해 엔지니어들이 테스트를 할 수 있는 시간은 매우 제한되어 있기 때문에, 최악의 경우에 대한 값을 결코 찾을 수 없다. 우리가 확보할 수 있는 것은 최장 관찰 응답시간(longest observed response time)이며, 우리는 잘못된 것이라는 것을 알면서도 그것이 요구되는 데드라인 이전에 발생한다면 안전하다고 인정하려는 유혹에 빠져버린다.
따라서, 테스트 기간을 통해 충분한 적용범위를 확보하는 것이 쉽지 않기 때문에 타이밍 오류에 대한 테스트를 신뢰해서는 안된다. 신뢰할 수 있는 타이밍 동작을 얻기 위해서는 설계 분석을 이용해야만 한다. 한 가지 좋은 소식은 이러한 분석 도구들이 이미 제공되고 있다는 사실이다.
타이밍 분석 - 기초
결정론적 스케줄링(deterministic scheduling) 기법은 시스템이 데드라인을 충족할 수 있는지를 예측할 수 있는 반복 가능한 수학적 기법이다. 고정된 우선순위에 따라 스케줄링된 시스템을 위한 다양한 스케줄 가능성 분석(schedulability analysis) 기법이 있다. 주기 단조 분석(Rate Monotonic Analysis, RAM)은 결정론적 스케줄링 기법 중에서 가장 일반적으로 사용되는 기법이다. RMA는 고정된 우선순위 스케줄링 기법으로서 최고 등급의 태스크에 최상위의 우선순위를 할당하며, 태스크 등급이 낮아짐에 따라 일련의 낮은 우선순위를 할당한다.
CAN을 위한 타이밍 분석
최악의 경우에 대한 동작이 무엇인지를 알 수 없다면, 우선순위 기반의 스케줄링을 정확하게 사용할 수 없다. CAN(Controller Area Network)은 우선순위를 사용하는 버스 상의 메시지들을 조정하는 버스이며, 각 메시지에는 메시지를 식별할 수 있도록 지원하는 고유의 우선순위가 할당된다. 이 수준에서 메시지(프레임)는 메시지에 담긴 각각의 신호들에 대한 타이밍 요구조건을 물려받는다.
데드라인 단조 분석(Deadline Monotonic Analysis, DMA)이라고 불리는 스케줄링 계산 방법은 우선순위에 따라 스케줄링된 메시지들이 상호 동작하는 방법을 분석할 수 있으며 최악의 경우에 대한 메시지 레이턴시(Worst-Case Message Latency, WCML)가 무엇인지를 결정할 수 있다. 버스는 우선순위에 의해 스케줄링되기 때문에 기초적인 DMA가 CAN 버스에 대해 가장 적합하다.
스케줄링 분석을 위한 필요조건들은 알려진 타이밍 요구조건과 타이밍 동작이다. 타이밍 요구조건들은 기능이 정상적으로 실행되기 위해 반드시 일어나야 할 동작들을 설명한다. 타이밍 동작은 시스템이 무엇을 할 것인지를 정의하는 것으로 시스템 동작 모델이다.
결과들을 산출하는 타이밍 동작에 타이밍 분석을 적용할 수 있으며, 타이밍 요구조건과 비교하여 검사할 수 있다.
시스템 내 각 프레임의 최악 경우에 대한 레이턴시는 CAN 컨트롤러 내에 프레임이 배치될 때부터 프레임이 모든 노드에서 성공적으로 수신될 때까지의 최장 시간을 의미한다. 불완전한 네트워크에 대해서 분석을 진행하는 경우에는 오류가 발생한 프레임을 재전송하는 데 소요되는 시간도 고려해야 한다. 분석은 다음과 같은 몇 가지 가정을 전제로 한다:
● 알려진 일련의 프레임들이 존재한다
● 각 프레임의 크기를 알고 있다
● 식별자(ID)는 고정되어 있다
<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>