FlexRay 자동차 통신 버스 개요

개요

FlexRay 통신 버스는 자동차 제조사 및 주요 공급사와 공동 개발한 결정론적, 내결함성 및 고속 버스 시스템입니다. FlexRay는 드라이브 바이 와이어, 스티어 바이 와이어, 브레이크 바이 와이어 등 x-by-wire 어플리케이션에 필요한 오류 허용 및 시간 결정성 성능을 제공합니다. 이 글은 FlexRay의 기본 개념을 다룹니다.

내용

통신 수요 증가

자동차가 계속해서 안전을 향상하고 성능을 높이며 환경 영향을 줄이고 편의를 증대하기 위해서는 자동차의 전자 제어 유닛(ECU) 간에 통신되는 데이터의 속도, 양 및 신뢰성이 증가해야 합니다.  여러 센서, 액추에이터 및 전자 제어 유닛을 결합한 고급 제어 및 안전 시스템이 기존 표준인 CAN(Controller Area Network)이 제공할 수 있는 수준 이상의 동기화와 성능을 요구하기 시작했습니다.  오늘날 고급 차량은 5개 이상의 별도 CAN 버스를 사용하며 대역폭 요구가 증가하고 있기 때문에 자동차 엔지니어들은 차세대 임베디드 네트워크를 요구하고 있습니다.  OEM, 도구 공급업체 및 최종 사용자와 수년간 협력한 결과, FlexRay 표준은 차세대 차량의 이러한 새로운 도전에 대응하는 차량 내 통신 버스로 떠오르고 있습니다.

자동차와 같은 복잡한 임베디드 설계에서 새로운 네트워크 표준을 도입하는 데는 시간이 필요합니다.  FlexRay가 현재의 하이엔드 및 미래의 주류 차량 내 네트워크 문제를 해결할 수 있지만, 기존의 두 주요 차량 내 표준인 CAN과 LIN을 대체하지는 않습니다.  비용 최적화 및 전환 문제 완화를 위해 차세대 자동차는 고급 응용을 위한 FlexRay, 주류 파워트레인 통신을 위한 CAN, 저비용 차체 전자 장치를 위한 LIN을 포함할 것입니다. 

버스LINCANFlexRay
속도40 kbit/s1 Mbit/s10 Mbit/s
비용$$$$$$
와이어122, 4
일반적인 어플리케이션차체 전자 장치 (미러, 전동 시트, 액세서리)파워트레인 (엔진, 변속기, ABS)고성능 파워트레인, 안전 (드라이브 바이 와이어, 능동 서스펜션, 적응형 크루즈 컨트롤)

FlexRay의 작동 원리를 이해하는 것은 차량 설계 및 생산 과정의 모든 분야 엔지니어에게 중요합니다.  이 글에서는 FlexRay의 핵심 개념을 설명합니다.

FlexRay 기본

FlexRay의 많은 측면은 험난한 환경에서 최고 성능을 제공하면서 비용을 절감하도록 설계되었습니다.  FlexRay는 노드를 연결하기 위해 쉴드 처리가 되지 않은 꼬임쌍 케이블을 사용합니다.  FlexRay는 각각 하나 또는 두 쌍의 와이어로 구성된 단일 및 이중 채널 구성을 지원합니다.  각 와이어 쌍의 차동 신호 방식은 고가의 쉴딩 없이도 외부 잡음의 네트워크 영향을 줄입니다.  대부분의 FlexRay 노드는 일반적으로 트랜시버와 마이크로프로세서에 전원을 공급하는 전원 및 접지선을 갖추고 있습니다.

이중 채널 구성은 향상된 내결함성 및/또는 증가된 대역폭을 제공합니다.  대부분의 1세대 FlexRay 네트워크는 와이어링 비용을 줄이기 위해 한 채널만 사용하지만, 어플리케이션의 복잡성과 안전 요구가 증가함에 따라 향후 네트워크는 두 채널 모두 사용할 것입니다. 

FlexRay 버스는 한 쌍의 신호선 사이에 연결된 저항 형태로 양쪽 끝에 종단이 필요합니다.  멀티드롭 버스에서는 끝 노드만 종단 처리가 필요합니다. 종단이 과다하거나 부족하면 FlexRay 네트워크가 손상될 수 있습니다.  특정 네트워크 구현은 다르지만, 일반적인 FlexRay 네트워크의 케이블 임피던스는 80에서 110 옴 사이이며, 끝 노드에 이 임피던스와 일치하는 종단이 적용됩니다. FlexRay 노드를 테스트 설정에 연결할 때 가장 자주 발생하는 문제 중 하나가 바로 종단 문제입니다. 현대의 PC 기반 FlexRay 인터페이스는 배선을 단순화하기 위해 내장 종단 저항을 포함할 수 있습니다.  

FlexRay 토폴로지 및 레이아웃

FlexRay, CAN 및 LIN을 이더넷과 같은 전통적 네트워크와 구별하는 중요한 점은 그 토폴로지, 즉 네트워크 구성 방식입니다. FlexRay는 단순한 멀티드롭 수동 연결뿐 아니라 복잡한 네트워크용으로는 액티브 스타 연결도 지원합니다. 차량의 레이아웃과 FlexRay 사용 수준에 따라 적합한 토폴로지를 선택하는 것은 설계자가 특정 설계의 비용, 성능 및 신뢰성을 최적화하는 데 도움이 됩니다. 

멀티드롭 버스

FlexRay는 여러 ECU를 연결하는 단일 네트워크 케이블을 특징으로 하는 단순한 멀티드롭 버스 토폴로지에서 자주 사용됩니다.  이 토폴로지는 CAN과 LIN과 동일하며 OEM에게 익숙하여 1세대 FlexRay 차량에서 인기가 높습니다.  각 ECU는 버스 코어 '트렁크'에서 짧은 분기(branch)를 가질 수 있습니다. 네트워크 끝에는 신호 반사 문제를 방지하는 종단 저항이 설치되어 있습니다.  FlexRay는 최대 10 Mbit/s의 고주파에서 동작하므로, 설계자는 신호 무결성 문제를 예방하기 위해 네트워크를 정확히 배선하고 종단해야 합니다.  멀티드롭 방식은 차량 하니스의 레이아웃과 적합하여 설치를 간소화하고 차량 내 전체 배선을 줄입니다. 

스타 네트워크

FlexRay 표준은 중앙의 활성 노드에 연결되는 개별 링크로 구성된 "스타" 구성을 지원합니다.  이 중앙 노드는 PC 이더넷 네트워크의 허브와 기능적으로 유사합니다.  활성 스타 구성은 FlexRay 네트워크가 더 긴 거리에서 운영되거나 네트워크 일부 장애 시 안정성을 높이도록 분할될 수 있게 합니다. 스타 구성 중 한 분기가 끊기거나 단락되면 다른 분기들은 계속 작동합니다.  긴 배선은 대형 전기 모터의 전자기 노이즈와 같은 환경 잡음을 더 유도할 수 있으므로, 여러 분기를 이용하면 노출되는 배선 구간을 줄여 노이즈 내성을 높이는 데 도움이 됩니다.  

하이브리드 네트워크

버스와 스타 토폴로지를 결합하여 하이브리드 토폴로지를 형성할 수 있습니다. 향후 FlexRay 네트워크는 버스 토폴로지의 비용 및 사용 편의성과 스타 네트워크의 성능 및 신뢰성을 조합한 하이브리드 토폴로지로 구성될 가능성이 큽니다. 

 

 

FlexRay 프로토콜

FlexRay 프로토콜은 예측 가능한 시간 내(마이크로초 단위)의 결정론적 데이터와 CAN과 유사한 이벤트 기반 동적 데이터를 모두 처리할 수 있는 독특한 시간 트리거 프로토콜입니다. FlexRay는 정적 프레임과 동적 프레임을 미리 정해진 통신 사이클 내에 변환하여 이들 데이터를 효율적으로 전송합니다. 이 공간은 네트워크 설계자가 네트워크에 맞게 구성합니다.   CAN 노드는 통신을 위해 보드레이트만 알면 되지만, FlexRay 네트워크의 노드는 통신을 위해 네트워크의 모든 구성 요소를 알아야 합니다.   

멀티드롭 버스에서처럼, 한 번에 한 노드만 버스에 데이터를 전기적으로 쓸 수 있습니다.  만약 두 노드가 동시에 데이터를 쓰면, 버스 충돌이 발생해 데이터가 손상됩니다.  버스 충돌 방지를 위한 여러 기법이 존재합니다. 예를 들어 CAN은 버스에 더 높은 우선순위 메시지가 감지되면 다른 노드가 양보하는 중재 방식을 사용합니다.  이 기법은 유연하고 확장하기 쉬우나 매우 높은 데이터 속도를 지원하지 못하고 정시 데이터 전달을 보장할 수 없습니다.   FlexRay는 시간 분할 다중 접속(TDMA) 방식을 사용해 여러 노드를 관리합니다. 모든 FlexRay 노드는 동일한 시계에 동기화되어 각 노드는 자신의 차례에 버스에 데이터를 씁니다.  TDMA 방식은 일정한 타이밍을 제공하므로 FlexRay는 네트워크 내 노드간에 데이터 전달의 결정론적 안정성을 보장할 수 있습니다. 이는 노드 간 최신 데이터가 필요한 시스템에 큰 이점을 제공합니다. 

임베디드 네트워크는 PC 기반 네트워크와 달리 폐쇄된 구성으로 생산 제품에 조립된 후 변경되지 않습니다.  이로 인해 PC가 새 네트워크에 연결 시 자동으로 장치를 탐색하는 기능과 달리 실행 시 자동 장치 탐색 및 구성 메커니즘이 필요 없습니다.  미리 네트워크 구성을 설계함으로써 네트워크 설계자는 상당한 비용을 절감하고 네트워크 신뢰성을 높일 수 있습니다.  

TDMA 네트워크인 FlexRay가 정상 작동하려면 모든 노드가 올바로 구성되어야 합니다.  FlexRay 표준은 다양한 네트워크 유형에 적용 가능하며, 네트워크 설계자는 네트워크 갱신 속도, 결정론적 데이터 용량, 동적 데이터 용량 등 다양한 매개변수 간에 균형을 맞출 수 있습니다.  모든 FlexRay 네트워크가 다르므로, 각 노드는 버스에 참여하기 전에 올바른 네트워크 매개변수로 프로그래밍되어야 합니다.   

노드 간 네트워크 구성을 유지하기 위해 FlexRay 위원회는 설계 과정에서 매개변수 저장 및 전송용 표준 포맷을 도입했습니다.  Field Bus Exchange Format, 즉 FIBEX 파일은 ASAM이 정의한 표준으로, 네트워크 설계자, 프로토타입 제작자, 검증자 및 테스터가 네트워크 매개변수를 쉽게 공유하고 ECU, 테스트 도구, 하드웨어-인-더-루프 시뮬레이션 시스템 등을 빠르게 구성할 수 있도록 지원합니다. 

통신 사이클

FlexRay 통신 사이클은 FlexRay 미디어 액세스 구조의 기본 요소입니다. 사이클의 지속시간은 네트워크 설계 시 고정되며 일반적으로 약 1-5ms입니다.  통신 사이클은 네 가지 주요 부분으로 구성됩니다. 

 
그림 1: 통신 사이클

  1. 정적 세그먼트
    고정 주기로 결정론적 데이터 전송을 위한 예약 슬롯. 
  2. 동적 세그먼트
    동적 부분은 CAN과 유사하게 작동하며, 결정론성이 필요 없는 다양한 이벤트 기반 데이터를 처리합니다. 
  3. 기호 창
    네트워크 유지 보수 및 네트워크 시작 시그널링에 주로 사용됩니다. 
  4. 네트워크 유휴 시간
    노드 클럭 동기화를 유지하는 데 사용되는 알려진 "조용한" 시간.

 

그림 2: FlexRay 매크로틱 세부설명

FlexRay 네트워크에서 가장 작은 실시간 단위는 매크로틱입니다. FlexRay 컨트롤러는 자동 동기화와 로컬 시계 조정을 통해 네트워크 전체의 모든 노드에서 매크로틱이 동시에 발생하게 합니다. 특정 네트워크에 맞게 구성될 수 있으나 보통 매크로틱은 1마이크로초 길이입니다.  매크로틱이 동기화되므로, 이를 기반으로 하는 데이터도 동기화가 유지됩니다. 

1. 정적 세그먼트

그림 3: 3개의 ECU가 4개의 예약된 슬롯에 데이터를 전송하는 정적 세그먼트의 예시 

프레임의 파란색 부분으로 표시된 정적 세그먼트는 시간에 따라 트리거되는 여러 프레임이 예약된 공간입니다.  세그먼트는 슬롯으로 나뉘며, 각 슬롯에는 예약된 데이터 프레임이 포함됩니다.  각 슬롯 시간이 되면 예약된 ECU가 해당 슬롯에서 데이터를 전송할 기회를 갖습니다. 정해진 시간이 지나면 ECU는 다음 사이클까지 기다려야만 해당 슬롯에서 데이터를 전송할 수 있습니다.  사이클 내 정확한 시간 정보로 인해 데이터는 결정론적이며, 프로그램은 데이터가 얼마나 오래됐는지 정확히 알 수 있습니다. 이는 일정 간격의 데이터에 의존하는 제어 루프 계산에 매우 유용합니다.  그림 3은 네 개의 정적 슬롯을 세 개의 ECU가 사용하는 간단한 네트워크를 보여줍니다. 실제 FlexRay 네트워크에는 수십 개의 정적 슬롯이 존재할 수 있습니다.  

 

그림 4: ECU #2가 없는 정적 슬롯의 예시

ECU가 오프라인이 되거나 데이터를 송신하지 않으면, 해당 슬롯은 열려있으며 다른 ECU가 사용할 수 없습니다(그림 4 참조). 

2. 동적 세그먼트

그림 5: 한 ECU가 데이터를 방송하는 FlexRay 동적 슬롯의 예시

대부분의 임베디드 네트워크는 소수의 고속 메시지와 다수의 저속 덜 중요한 메시지로 구성됩니다.  다양한 데이터를 처리하기 위해, 동적 부분은 과도한 정적 슬롯으로 사이클을 지연시키지 않고 간헐적 전송 데이터를 허용합니다.  세그먼트가 고정 길이이므로 사이클 당 동적 부분에 실을 수 있는 데이터 양은 제한됩니다. 데이터 우선순위 지정을 위해, 동적 세그먼트에서 전송 가능한 각 데이터 프레임에 미니 슬롯이 미리 할당됩니다.  미니 슬롯은 일반적으로 매크로틱(1 마이크로초) 길이입니다.   더 높은 우선순위 데이터는 동적 프레임 시작에 가까운 미니 슬롯을 받습니다.  

미니 슬롯이 시작되면 ECU는 잠시 동안 데이터를 방송할 기회를 갖습니다.  브로드캐스트하지 않으면 동적 프레임에서 해당 자리를 잃고 다음 미니 슬롯으로 넘어갑니다.  이 과정은 ECU가 브로드캐스트하기로 결정할 때까지 미니 슬롯이 순차적으로 진행됩니다.  데이터가 방송되는 동안 나머지 미니 슬롯은 ECU의 전송 완료를 기다려야 합니다. 동적 프레임 창이 종료되면 낮은 우선순위 미니 슬롯은 다음 통신 사이클까지 방송을 기다려야 합니다. 

그림 6: 동적 슬롯 예시에서 ECU 2와 3이 미니 슬롯에서 방송하고, 낮은 우선순위 미니 슬롯에 시간 여유가 없는 모습

그림 5는 처음 7개의 미니 슬롯에서 방송하지 않아, ECU #1이 자신의 미니 슬롯에서 방송하는 예시입니다.  그림 6은 ECU #2와 #3이 처음 두 미니 슬롯을 사용하여 ECU #1이 방송할 시간이 없음을 보여줍니다.  ECU #1은 다음 사이클까지 방송을 기다려야 합니다. 

동적 세그먼트 결과는 CAN에서 사용하는 중재 방식과 유사합니다.

3. 기호 창

기호 윈도우는 주로 냉시작 사이클 등 특별한 사이클의 유지 및 식별에 사용됩니다.  대부분의 고차원 어플리케이션은 기호 윈도우와 직접 상호작용하지 않습니다. 

4. 네트워크 유휴 시간

네트워크 유휴 시간은 ECU들이 사전에 알고 있는 일정 길이입니다.  ECU는 이 유휴 시간을 이용해 이전 사이클 동안 발생한 클럭 편차를 보정합니다.  

데이터 보안 및 에러 처리

FlexRay 네트워크는 단일 또는 이중 채널 통신을 통해 확장 가능한 내결함성을 제공합니다. 보안 필수 어플리케이션에서는 버스에 연결된 장치가 두 채널을 모두 사용해 데이터를 전송할 수 있습니다. 하지만 중복이 필요 없을 경우 하나 채널만 연결하거나, 중복 없는 데이터 전송을 위해 두 채널을 모두 사용해 대역폭을 올릴 수도 있습니다.

물리 계층에서 FlexRay는 빠른 에러 감지 및 신호 전달, 독립적인 버스 가디언을 통한 에러 통제를 제공합니다. 버스 가디언은 클러스터 통신 일정과 맞지 않는 통신으로 인한 간섭을 물리 계층에서 보호하는 메커니즘입니다.

프레임 형식

그림 7: FlexRay 프레임 세부사항
정적 및 동적 세그먼트 각 슬롯에는 FlexRay 프레임이 포함됩니다. 프레임은 헤더, 페이로드, 트레일러 세 부분으로 나뉩니다. 헤더, 페이로드, 트레일러.

헤더

그림 8: FlexRay 프레임 비트 레벨 분석

헤더는 5바이트(40비트) 길이로 다음 필드를 포함합니다. 

  1. 상태 비트 - 5비트
  2. 프레임 ID - 11비트
  3. 페이로드 길이 - 7비트
  4. 헤더 CRC - 11비트
  5. 사이클 카운트 - 6비트

프레임 ID는 전송 슬롯을 정의하며 이벤트 트리거 프레임의 우선순위 결정에 사용됩니다. 페이로드 길이는 프레임 내 전송되는 단어 수를 나타냅니다. 헤더 CRC는 전송 중 오류 감지에 사용됩니다. 사이클 카운트는 통신 사이클이 시작될 때마다 증가하는 카운터 값입니다.

페이로드

그림 9: FlexRay 프레임의 페이로드

페이로드는 프레임이 전송하는 실제 데이터입니다. FlexRay 페이로드 또는 데이터 프레임의 길이는 최대 127 단어(254 바이트)이며, 이는 CAN보다 30배 이상 큽니다.

트레일러

그림 10: FlexRay 프레임의 트레일러

트레일러에는 오류 감지를 위한 3개의 8비트 CRC가 포함됩니다.

신호

그림 11: 프레임에서 신호 변환

FlexRay 데이터는 바이트 단위로 표현됩니다.  대부분의 어플리케이션은 단위, 스케일링, 제한이 적용된 실수형 십진수 형태의 데이터를 요구합니다.  FlexRay 프레임에서 하나 이상 비트 또는 바이트를 추출하고 스케일 및 오프셋을 적용하면 ECU 간에 실제 파라미터를 전달하는 데 유용한 신호가 생성됩니다.  대부분 ECU 소프트웨어는 FlexRay 데이터를 신호로 처리하며, 신호-프레임 변환은 드라이버 또는 하위 통신 프로토콜이 담당합니다. 

평균적인 차량은 수백에서 수천 개의 신호를 가집니다.  신호의 스케일, 오프셋, 정의 및 위치는 변경될 수 있으므로, FlexRay 네트워크는 이 정의들을 네트워크 규격을 나타내는 FIBEX 데이터베이스에 저장합니다. 이로 인해 설계자는 코드 내 신호 이름 참조만으로도 쉽게 FlexRay 프로그램을 작성할 수 있습니다. 컴파일러나 드라이버는 프로그램이 ECU 또는 테스트 시스템에 업데이트될 때 최신 스케일 및 오프셋 정보를 자동으로 가져옵니다. 

클럭 동기화 및 콜드 스타트

그림 12: FlexRay 네트워크 간소화된 동기화 과정

FlexRay는 외부 동기화 클럭 신호 없이 네트워크 노드를 동기화하는 고유한 능력을 갖고 있습니다.  이를 위해 두 가지 특수 프레임 타입을 사용합니다: 시작 프레임동기화 프레임.  FlexRay 클러스터 시작을 위해 최소 두 개의 노드가 시작 프레임을 전송해야 합니다.  FlexRay 버스 시작 작업을 콜드 스타트라고 하며, 시작 프레임을 보내는 노드를 보통 콜드 스타트 노드라 부릅니다.  시작 프레임은 네트워크 내 모든 노드에게 시작 신호를 보내는 역할을 합니다.  

네트워크가 시작되면 모든 노드가 내부 발진기를 네트워크 매크로틱에 맞춰 동기화해야 합니다.  이는 두 개 이상의 동기화 노드를 사용해 수행할 수 있습니다.  이 노드들은 네트워크 상에서 특수 동기화 프레임 방송을 위해 미리 지정된 별도의 노드일 수 있습니다.  다른 노드들은 동기화 프레임 방송을 대기하며, 연속 방송 간 시간 측정을 통해 내부 클럭을 FlexRay 시간에 맞게 보정합니다. 동기화 프레임은 네트워크 FIBEX 구성에서 지정됩니다. 

네트워크가 동기화되고 온라인 상태가 되면 네트워크 유휴 시간(다이어그램 흰 공간)을 측정해 사이클 간 클럭 보정에 사용해 긴밀한 동기화를 유지합니다.  

사이클 내 컨트롤

그림 13: 사이클 내 컨트롤에서 4개 휠 위치를 읽고, 단일 FlexRay 사이클 내에서 차량 제어 출력을 업데이트하는 모습

FlexRay 고급 기능 중 하나는 사이클 내 컨트롤입니다.  그림 13은 프레임 정적 슬롯에서 4개 휠 위치가 방송되는 예를 보여줍니다. 휠 위치가 중앙 컨트롤러 #5의 최종 명령 이전에 발생하므로, 컨트롤러는 동일 통신 사이클 내에서 신속한 처리를 수행할 시간 여유가 있습니다.  이를 통해 FlexRay 네트워크에서 매우 고속의 제어 속도가 가능합니다. 

FIBEX - FlexRay 네트워크 데이터베이스

FIeld Bus EXchange(FIBEX)는 XML 기반 ASAM 표준 파일 포맷으로, 자동차 네트워크 설명에 사용됩니다. FlexRay 표준 포맷인 FIBEX는 다수의 자동차 프로토콜과 호환되어 유연한 표준으로 활용됩니다. FIBEX 데이터베이스는 일반적으로 차량 네트워크 설계자가 생성해 차량 특정 분야 엔지니어와 공유합니다. FIBEX 파일과 이를 지원하는 PC 인터페이스 또는 ECU를 사용하면, 신호 및 인터페이스를 수동 설정할 필요 없이 차량 네트워크와 손쉽게 상호작용할 수 있습니다. 

FIBEX는 특정 네트워크의 다음 여러 요소를 포함합니다. 

  • 전송 및 수신 스케줄
  • 프레임 정의
  • 신호 정의
  • 신호 비트 레벨 인코딩
  • 네트워크 토폴로지
  • ECU 정보
  • 보드레이트 및 타이밍 등 네트워크 설정

FIBEX에 대해 자세한 내용은 FIBEX 소개 문서를 참조하십시오.

PCI 및 PXI FlexRay 인터페이스

National Instruments는 PC와 FlexRay 네트워크 연결을 위한 고성능 PCI 및 PXI FlexRay 인터페이스를 제공합니다.  PC 기반 인터페이스를 활용해 FlexRay 지원 ECU에서 여러 엔지니어링 작업을 수행할 수 있습니다. 

  • 신속 프로토타이핑
  • 하드웨어-인-더-루프 시뮬레이션
  • 버스 로깅 및 디버깅
  • 신호 데이터 수집
  • 시스템 진단
  • 사용자 정의 어플리케이션

NI FlexRay 인터페이스에 대해 자세히 알아보려면 NI-XNET FlexRay 플랫폼 소개를 참고하십시오.

 

 결론

FlexRay 통신 네트워크는 차세대 자동차에 요구되는 결정론적, 내결함성 및 고속 버스 시스템 성능을 제공합니다.

관련 링크: