글│카르스텐 뵈케 (Carsten Boke)*
개빈 로저스 (Gavin C. Rogers)** gavin.rogers@vector-informatik.de
* 네트워크 및 분산 시스템용 툴 제품군 선임 소프트웨어 개발 엔지니어
** 네트워크 및 분산 시스템용 툴 제품군 팀 매니저
Vector Informatik GmbH
FlexRay ECU 및 시스템 개발 과정에서 엔지니어들은 흔히 스타트업 시뮬레이션, ECU 테스트 및 네트워크 시뮬레이션과 같은 과제에 직면한다. 이 글에서는 이미 CANoe.FlexRay를 통해 FlexRay 엔지니어들이 이러한 작업을 어떻게 일상적인 방식으로, 그리고 효과적으로 수행하는지를 설명한다.
스타트업 시뮬레이션
동기화 버스는 FlexRay 통신의 핵심적인 요구사항이다. 애플리케이션이 통신하려면 그 전에 이 버스가 시작되어야 한다. 이 스타트업 단계에서 버스는 최소한 두 개의 ECU가 FlexRay 클록을 동기화하고 동기 프레임(sync frame)을 제공하여 다른 ECU가 TDMA(시분할 다중 접속) 스케줄에 통합 가능하게 될 때까지 비동기 모드를 유지한다. 테스트 대상이 단일 논-스타트업/동기 ECU의 FlexRay인 경우 분석 툴은 이미 시작된 FlexRay 버스를 시뮬레이션 할 수 있어야 한다. CANoe.FlexRay는 이러한 유형의 FlexRay 버스 스타트업을 제공하기 위해 두 개의 스타트업/동기 프레임을 생성할 수 있다. 클러스터의 스타트업 단계는 Vector의 FlexRay 인터페이스 VN3300 (PCI), VN3600 (USB) 또는 VN7600 (CAN 인터페이스+USB)의 비동기 모드를 사용하여 관찰할 수 있다. 예를 들어 클러스터가 동기 모드로 들어가기 전에 웨이크업 패턴, 기호, 스타트업 및 정상 프레임을 수신할 수 있다.
또한 FIBEX 데이터베이스를 사용하지 않고도 이 모드에서 버스 분석이 가능하다. 버스 인터페이스를 초기화하는 데 필요한 것은 전송 속도(baud rate) 뿐이다. 대기 중인 클러스터를 시작하려면 웨이크업 패턴 및 기호 전송이 가능해야 한다. 동기 모드는 프레임을 전송할 수 있는 디폴트 모드이다. 또한 클록 동기화 상태에 따라 인터페이스가 자동으로 모드를 변경하도록 비동기 모드와 동기 모드를 결합할 수 있어 FlexRay 엔지니어에게 항상 완전한 분석 및 시뮬레이션 기능을 제공한다.
시뮬레이션으로 ECU 테스트
ECU를 테스트하는 가장 쉬운 방법은 CANoe의 FlexRay Frame Panel을 사용하여 대화식으로 프레임을 보내는 방법이다(그림 1). 이 통합 패널을 사용하면 FlexRay의 프레임 패이로드(즉, 신호)을 런타임 도중 대화식으로 수정할 수 있다. 모든 버스 시스템의 신호는 사용자 정의 Control Panel을 통해 수정할 수 있다. 신호 발생기를 사용하면 미리 정의된 함수에 따라 신호의 값도 변경할 수 있다. 보다 고도의 신호 발생(예: 임의 신호 시퀀스 또는 이전 응답에 대한 반작용)을 위해서는 CAPL 프로그래밍 언어를 사용해야 한다. CANoe의 Test Feature Set를 사용하면 자동화된 ECU 테스트를 정의하고 실행하고 보고할 수 있다.
관찰을 통한 ECU 테스트
모든 실제 ECU를 개발하는 과정에서는 ECU가 FlexRay의 스케줄 테이블에 따라 통신한다는 점을 보장하는 것이 핵심이다. 특히 정적 세그먼트의 프레임의 경우에는 주기적으로 time-triggered 전송이 가정된다. CANoe는 특정 ECU(송신자)의 해당 프레임의 Cycle Multiplexing에 따라 예상되는 모든 프레임 이 버스에 있는지 여부를 직접 테스트 및 시각화할 수 있다. 이 기능은 CANoe.FlexRay에서 FlexRay Cluster Monitor로 구현된다(그림 2). 이 기능은 엔지니어가 다음과 같은 사항을 식별하는 데 도움이 된다.
쪾 어떤 노드가 온라인 상태이며 전송 중인가?
쪾 지정된 모든 프레임이 특정 노드에 의해 전송되는가?
쪾 모든 프레임이 예약된 주기에서 전송되는가?
Cluster Monitor는 오프라인 모드에서도 로그 파일을 분석하는 데 사용될 수 있다. CAPL 프로그래밍 언어로 보다 광범위한 테스트를 구현할 수 있다(오프라인 분석용으로도 마찬가지).
시뮬레이션에 의한 ECU 테스트
실제 ECU의 기능적인 작동을 테스트하려면 그 환경을 시뮬레이션해야 한다. 테스트 대상 시스템 또는 디바이스는 일반적으로 (Hardware-in-the-Loop) 시뮬레이션에 내장된다. 최소한의 잔여 버스 시뮬레이션은 입력 프레임을 생성하고 테스트 대상 ECU의 출력 프레임에 반응한다. 센서 입력을 생성하고 액추에이터 출력에 반응하는 환경 모델도 선택적으로 시뮬레이션 가능하다. 간단한 예로 분리된 대화식 사용자 패널을 들 수 있다. 보다 복잡한 경우에는 준연속성(quasi-continuous) 제어 알고리즘(예: Matlab/Simulink가 정의한 알고리즘)을 CANoe의 제어 하에 실행할 수 있다.
글로벌 FlexRay 시간에 따른 time-triggered 통신으로 인해 시뮬레이션되는 컨트롤러와 ECU를 위한 알고리즘은 FlexRay 스케줄과 동기화되어야 한다. 따라서 실행 플랫폼은 동기화 지점을 제공하고 일정한 최소 지터와 작은 지연을 보장해야 한다. 이는 버스에 적시의 올바른 데이터 업데이트를 제공하도록 보장한다. 환경 또는 잔여 버스 시뮬레이션에서 실행 플랫폼은 결정론적(deterministic)이어야 한다. CANoe RT는 하드웨어 확장인 RT Box 및 RT Rack과 함께 고성능의 결정론적인 플랫폼을 제공한다(그림 3). CANoe와 CANoe RT, 그리고 여기에 따른 하드웨어 확장은 필요한 성능은 물론 필요한 버스와 I/O 인터페이스의 수를 충족하도록 원활하게 확장 가능하다. CANoe와 CANoe RT에는 동일한 (시뮬레이션) 모델을 사용할 수 있다.
클러스터 시뮬레이션
FlexRay 시스템의 초기 디자인 단계에서 타이밍이 정확한지, 그리고 ECU의 성능이 통신 스케줄에 부합하는지 여부를 테스트하는 것이 중요하다. 즉, 모든 프레임을 정해진 시간에 수신하고 전송할 수 있는지 여부를 테스트해야 한다. 따라서 FlexRay 엔지니어는 일반적으로 FIBEX 데이터베이스를 CANoe.FlexRay에 추가하고 테스트 대상 시스템에 필요한 노드를 정의하는 방법으로 (부분적인) 잔여 버스 시뮬레이션을 생성한다. CANoe.FlexRay의 기능은 완전한 버스 부하(이러한 부하는 클러스터의 모든 ECU에 의해 생성됨)의 시뮬레이션을 허용한다. FIBEX 데이터베이스의 통신 매트릭스와 FlexRay 스케줄은 모든 필요한 ECU의 시뮬레이션을 구성하는 데 사용된다. 모든 프레임은 기본값으로 버스에 자동으로 전송된다. Vector의 인터페이스를 사용할 경우 리소스 문제(예: 전송 버퍼 부족) 없이 이론적인 최대 프레임 처리량을 전송할 수 있다. 이러한 방식으로 하나의 툴과 하나의 버스 인터페이스만으로 모든 FlexRay ECU를 시뮬레이션할 수 있다.
FlexRay는 네트워크 관리와 대기/웨이크업 기능에 대한 직접적인 지원을 제공한다. Vector 하드웨어 인터페이스의 버스 트랜시버는 파워 오프 노드를 시뮬레이션하기 위해 대기 모드로 전환할 수 있다. 이 경우에는 웨이크업 패턴만 수신된다. 웨이크업 패턴을 전송해 대기 상태의 클러스터를 기동시킬 수 있다. CANoe.FlexRay의 특별한 확장을 이용하면 시뮬레이션되는 모든 노드는 AUTOSAR-NM 프로토콜에 따라 네트워크 관리 계층에 참여할 수 있다.
게이트웨이 시뮬레이션
게이트웨이는 두 개 이상의 버스 사이에서 메시지/프레임/신호를 전송하는 데 사용된다. CAN/FlexRay-게이트웨이는 FlexRay가 CAN을 기반으로 자동차용으로 구현될 경우 대개 필수적으로 수반된다. CAN, LIN, MOST 및 FlexRay를 위한 다중 버스 툴인 CANoe는 게이트웨이 애플리케이션을 시뮬레이션하고 분석할 수 있다.
ECU 간의 통신에서 오류를 시뮬레이션하는 데에는 가상 게이트웨이도 사용할 수 있다. 테스트 대상 디바이스는 CANoe가 시뮬레이션하는 FlexRay-FlexRay-게이트웨이에 의해 실제 버스에서 분리된다. 실제 ECU가 전송하는 신호를 조작하는 방법으로 오류를 통합할 수 있다. 필요한 경우 두 개의 FlexRay 클러스터를 동기화할 수 있다. 동기적으로 실행되는 클러스터는 두 버스에서의 신호 발생 사이에서 최소 지연을 보장한다.
이러한 모든 애플리케이션 시나리오는 FlexRay 제품을 개발하는 엔지니어의 일상적인 작업 중에 발생한다.
CANoe.FlexRay는 엔지니어가 일상적인 업무에서 FlexRay 버스의 새로운 기술적 과제를 처리할 때 도움이 도는 강력한 툴이다. CANoe는 현재와 미래의 FlexRay 애플리케이션에 즉시 사용 가능한 Vector의 포괄적인 툴 및 임베디드 소프트웨어 컴포넌트 포트폴리오를 대표하는 제품이다.
<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>