FlexRay 통신의 이해


2016-10-31 15:02:53

1. FlexRay 개요

1.1 FlexRay 개발 배경

차량에서의 무수히 많은 제어 장치들, 센서들과 액츄에이터들 간의 데이터 교환은 주로 CAN(Controller Area Network)를 통해 이루어지며, 높은 대역폭을 필요로하지 않거나 고성능이 필요하지 않은 간단한 통신의 경우(ex. 문, 지붕, 창문 등)에는 LIN(Local Interconnect Network)를 통해 이루어집니다. 또한 차량들의 보다 높은 연결성과 편리성을 위해 제어 유닛들 간의 네트워크뿐만 아니라 무선데이터 서비스 장치들 간의 데이터 교환을 위한 다른 네트워크들의 장착이 꾸준히 증가하고 있습니다. 이러한 네트워크들은 대량 데이터의 신속한 교환에 맞게 설계됩니다. 제어 유닛들 간에 교환되는 데이터양이 점점 늘어남에 따라 시간당 전송되어야 할 데이터의 양이 증가하면서, 시간 결정과 오류 허용한계와 관련된 수요가 증대되었습니다. 이러한 수요를 만족시키기 위해 FlexRay 프로토콜이 개발되었습니다.
FlexRay는 자동차 제조업체와 주요 부품공급업체가 협력하여 개발한 내고장성(fault tolerant) 고속 버스 시스템입니다. FlexRay는 x-by-wire 애플리케이션을 위한 오류 허용성 및 시간 확정적인 성능을 제공합니다.

버스 LIN CAN FlexRay
속도 40 kbit/s 1 Mbit/s 10 Mbit/s
비용 $ $$ $$$
와이어 1 2 2 or 4
어플리케이션 차체 전자기기(미러, 파워 시트, 액세서리 등) 파워트레인(엔진, 변속기, ABS 등) 고성능 파워트레인, 안전(Drive-by-wire, 액티브 서스펜션, 적응 크루즈 컨트롤)
[표 1] LIN, CAN, FlexRay 비교

1.2 FlexRay 특징

1.2.1 X-by-Wire를 위한 차량용 LAN 통신
차량의 고속 제어를 위한 통신 인프라를 제공합니다. 타임 트리거(Time Trigger) 프로토콜로서 주기적으로 전송되는 데이터 전송방식을 제공하며 최대 전송 속도는 10 Mbps입니다.

1.2.2 고신뢰성 프로토콜
완전히 이중화된 네트워크의 구축이 가능합니다. 또한 하드웨어에 의한 스케줄 감시가 가능합니다.

1.2.3 유연한 토폴로지 지원
FlexRay는 버스형, 스타형, 하이브리드형 등 여러 종류의 토폴로지를 지원합니다.

2. FlexRay 토폴로지와 레이아웃

FlexRay는 간단한 멀티드롭 수동 연결부터 더욱 복합적인 네트워크를 위한 액티브 스타 연결까지 여러 종류의 토폴로지를 지원합니다. 차량의 레이아웃과 FlexRay 사용 레벨 정도에 따라 적합한 토폴로지를 선택하여 디자인의 비용과 성능 그리고 안정성을 최적화할 수 있습니다.

2.1 멀티드롭 버스

CAN, LIN 버스에서 사용되는 것과 동일한 토폴로지입니다. 즉 여러 ECU들이 단일 네트워크 케이블에 연결되는 방식입니다. 이는 1세대 FlexRay 차량에 보편적으로 적용된 토폴로지입니다. 네트워크의 끝에는 터미네이션 저항기가 설치되어있어 신호 반향 문제를 없애줍니다.

%ea%b7%b8%eb%a6%bc1
[그림 1] 멀티드롭 버스

2.2 스타 네트워크

FlexRay 표준은 중앙 활성 노드에 연결되는 개별 링크로 구성된 스타구성을 지원합니다. 능동 스타 구성을 통해 장거리에서도 FlexRay 네트워크의 실행이 가능하며, 네트워크 분할이 가능하므로 네트워크의 한 부분이 오작동할 경우에도 네트워크를 신뢰할 수 있습니다. 또한 스타의 브랜치 중 하나가 절단될 경우에도 다른 브랜치는 기능을 지속할 수 있습니다.

%ea%b7%b8%eb%a6%bc2
[그림 2] 스타 네트워크

2.3 하이브리드 네트워크

하이브리드 네트워크는 멀티드롭 버스와 스타 토폴로지에 통합된 것입니다. 미래의 FlexRay 네트워크는 편리한 사용과 버스 토폴로지의 비용 절감을 위해 하이브리드 네트워크로 구성될 것입니다.

%ea%b7%b8%eb%a6%bc3
[그림 3] 하이브리드 네트워크

3. FlexRay 프로토콜

3.1 FlexRay 버스 동작 원리

CAN 프로토콜은 CSMA(Carrier Sense Multiple Access) 원칙에 따라 동작합니다. 즉 각 노드는 버스를 관찰하다가 버스가 유휴상태가 되면 즉시 전송을 시작합니다. 이 때 메시지 우선 순위에 의해 충돌은 방지됩니다. 따라서 메시지가 버스 상에 있는 시간은 일반적으로 예측 불가능합니다.
FlexRay는 TDMA(Time Division Multiple Access) 원칙에 따라 동작합니다. 즉 각 노드들은 정해진 시간(고정된 시간 슬롯)에 메시지를 전송할 수 있습니다. 이 원칙에 의해 충돌은 자연스럽게 예방되며, 메시지가 버스 상에 있는 시간 또한 정확히 예측할 수 있습니다.
모든 FlexRay 노드는 동일 클럭에 동기화되며 각 노드는 자신이 메시지를 전송할 순서를 기다립니다. 타이밍은 TDMA 구조에 의해 일관적이므로, FlexRay는 시간 결정성과 네트워크 노드에 제공되는 메시지의 일관성을 보장합니다.

3.2 FlexRay 통신 사이클(주기)

FlexRay 통신 사이클(주기)은 FlexRay 통신의 근본이 됩니다. 각 사이클의 시간은 초기 설계 단계에서 정해지며(일반적으로 1~5ms), 아래 그림과 같이 총 4개의 파트로 구성됩니다.
%ea%b7%b8%eb%a6%bc4

[그림 4] FlexRay 통신 사이클

고정된 시간 슬롯에 대한 버스 대역폭의 엄격한 할당은 대역폭이 최대로 활용되지 않는 단점이 있습니다. 이러한 단점을 극복하기 위해 FlexRay는 사이클을 정적 세그먼트와 동적 세그먼트로 분할합니다.
정적 세그먼트는 타임 트리거 프레임을 스케줄링하기 위한 영역이며 여러 슬롯으로 나누어집니다. 각 슬롯을 수행할 시점마다 미리 할당된 ECU가 해당 슬롯에 메시지를 전송할 기회를 잡을 수 있습니다. 이 시점이 지나면 다음 기회를 노려야 합니다. 사이클마다 정확하게 어느 시점에서 메시지를 전송할지 정해져 있으므로 시간 결정적인 메시지 전송이 가능해집니다.
동적 세그먼트에서는 시간 슬롯이 역동적(event-driven)으로 할당됩니다. 여기서 데이터의 우선순위를 정하기 위해 미니슬롯이라는 개념을 도입합니다. 미니슬롯은 동적 세그먼트에서 전송 가능한 각 데이터 프레임에 미리 지정되어 있습니다. 일반적으로 마이크로초 길이로 매우 짧으며, 높은 우선순위의 데이터는 동적 세그먼트의 시작 가까이에서 미니슬롯을 받습니다. 미니슬롯이 발생하면 ECU는 프레임을 브로드캐스트 할 수 있는 기회가 생깁니다. 이 때, 전송을 하지 않을 경우, 다음 미니슬롯이 발생하여 다음으로 우선순위가 높은 ECU가 프레임을 브로드캐스트 할 수 있게 됩니다. 따라서 동적 세그먼트에서 대역폭은 실제로 필요할 때만 사용(event-triggered)됩니다.
심볼 윈도우는 네트워크 유지와 시작을 위한 시그널링에 사용됩니다. 또한 네트워크의 정교한 동기화를 위해 네트워크 유휴(idle) 시간을 측정해 사이클 간 시간을 조정합니다.

3.3 FlexRay 프레임 구성

정적 또는 동적 세그먼트의 각 슬롯에는 FlexRay 프레임이 있습니다. 프레임은 Header, Payload, Trailer의 3가지 세그먼트로 나누어집니다.
%ea%b7%b8%eb%a6%bc5

[그림 5] FlexRay 프레임

헤더는 5bytes(40bits) 길이이며 다음과 같은 필드를 포함합니다.
– 상태 비트 (5bits)
– 프레임 ID (11bits)
– 페이로드 길이 (7bits)
– 헤더 CRC (11bits)
– 주기 카운트 (6bits)

정적 세그먼트의 경우 프레임 ID는 전송되어야 하는 패킷의 슬롯을 나타냅니다. 동적 세그먼트의 경우 프레임 ID는 해당 패킷의 우선순위를 나타냅니다. 페이로드의 길이는 프레임에서 전송되는 문자의 개수를 나타냅니다. 이 때 최고 127자(254bytes)까지 전송이 가능하며, 이는 CAN에 30배 이상 되는 수치입니다. 헤더 CRC는 전송 중 에러를 감지하는 데 사용됩니다. 마지막으로 주기 카운트에는 카운터 값이 포함되며, 이는 통신 주기가 시작하는 매 클럭마다 증가합니다.

#FlexRay_통신의_이해 #FlexRay #FlexRay통신이란 #자동차내부네트워크 #FlexRay개요

7 thoughts on “FlexRay 통신의 이해

  1. I have been exploring for a bit for any high-quality articles or blog
    posts on this sort of space . Exploring in Yahoo
    I eventually stumbled upon this site. Studying this information So i’m satisfied to show that
    I’ve a very excellent uncanny feeling I found out just what I needed.
    I such a lot certainly will make certain to do not forget this website and provides it a glance
    regularly.

  2. I am no longer positive where you are getting your information,
    but good topic. I must spend a while learning much more or figuring out more.
    Thank you for excellent information I used to be in search of this info for my mission.

  3. Hello there! I could have sworn I’ve been to this blog
    before but after going through some of the articles I realized it’s new to me.
    Anyhow, I’m certainly delighted I found it and I’ll be bookmarking it and checking back often!

Comments are closed.