차세대 차량용 통신 프로토콜 FlexRay

2007년 06월호 지면기사  /  자료제공 | 후지쯔마이크로일렉트로닉스

차세대 자동차는 환경을 고려한 연비 향상, 공간절약을 통한 쾌적성의 향상, 운전자를 위한 편리성 및 안전성의 향상을 실현하기 위해 다수의 ECU에 의한 복합 제어가 요구되고 있다. 이것은 더욱 정교한 제어로 진화되어야 할 필요가 있으며 차내 새로운 전자 제어화, 즉 X-by-Wire화로 진행해 가고 있다.

FlexRay의 특징
FlexRay는 크게 3가지 특징이 있다.
1. X-by-Wire를 위한 차량용 LAN 통신(CAN의 한계 극복)
  타임 트리거(Time Trigger) 프로토콜로서 주기적으로 전송되는 데이터 전송방식을 제공하며 최대 전송 속도는 10Mbps 이다.
2. 고신뢰성을 고려한 통신 프로토콜이다. X-by-Wire 애플리케이션에 대응
  이중(redundant) 통신. 완전하게 이중화된 네트워크의 구축이 가능하다. 또 하드웨어에 의한 스케줄 감시가 가능하다.
3. 유연한 토폴로지 지원
  FlexRay는 버스형, 스타형, 하이브리드형 등 여러 종류의 토폴로지를 지원한다(그림 1).
FlexRay의 세그먼트 구성은 Fixed Time Trigger 방식으로 메시지를 송수신하는 고정 길이의 Static Segment와 Flexible Time Trigger로 메시지를 송수신하는 Dynamic Segment의 조합으로 구성된다.

차량용 통신 프로토콜
차량용 통신 프로토콜은 정보계와 제어계로 크게 나눌 수 있다. 정보계는 수 십 Mbps에서 수 백 Mbps를 지원하며, 제어계는 수 십 kbps에서 수 십 Mbps를 지원한다. 제어계는 전송 속도에 따라 여러 용도로 구분하여 사용된다.
예를 들면 세이프티(safety)계는 수 100kbps~10Mbps 정도이며, 보디계는 수 10kbps~ 1Mbps 정도이다.
그림 2에서 알 수 있듯이 통신 속도에 따라 클래스를 나눌 수 있으며, 그에 따른 용도도 명확하게 구분할 수 있다(표 1). 그 중에서도 FlexRay는 CAN의 통신 속도 한계를 보완하고 신뢰성이 뛰어난 통신 프로토콜이다.

타깃 애플리케이션
차량용 LAN으로서 FlexRay가 타깃으로 하는 애플리케이션은 X-by-Wire에 대한 응용이라는 점에서 자동차 메이커, 서플라이어가 주목하는 기술혁신 분야이다.

-EPS(Electronic Power Steering) : 기존의 파워 스티어링을 전자제어화하는 애플리케이션을 타깃으로 한다. Steer-by-Wire에 대한 응용이라는 점에서 주목하는 분야다. 예를 들면, 모터 회전에 의해 스티어링 각도를 제어하는 것 등을 생각할 수 있다.
-ABS(Anti-Lock Brake System), VSC(Vehicle Stability Control), VSA(Vehicle Stability Assist) : 브레이크 시스템에 대한 전자제어 응용을 타깃으로 하여 Brake-by-Wire 또는 Safe-by-Wire에 대한 응용이라는 점에서 주목받는 분야다. 예를 들면, 전력제어에 의해 브레이크 패드를 제어하는 것 등을 생각해 볼 수 있다.
-Steering Sensor : 스티어링의 반응과 안전성 향상을 목적으로 한 애플리케이션을 타깃으로 한다. 이것도 Steer-by-Wire라고 하는 점에서 주목받는 분야다.
-AT(Automatic Transmission) : 구동계 파워 제어로서 AT는 현재도 전자제어 연료분사장치, 전자제어 가변흡기 시스템, 전자제어 아이들링 컨트롤 시스템 등 기존의 시스템과 연동해왔지만, 액셀레이터와 스로틀(throttle)의 메커니즘을 전기적으로 치환함으로써 전자 스로틀 제어, 즉 Drive-by-Wire라고 하는 점에서 주목받는 분야다.
-Gateway : FlexRay 네트워크와 CAN 네트워크의 다른 신호를 교환 제어한다.

데이터 전송 방식
이벤트 트리거로 동작하는 CAN과 달리, FlexRay는 타임 트리거 프로토콜을 채택하고 있다(표 2 참조). 미리 결정한 스케줄링으로 데이터를 확실하게 전송할 수 있다. FlexRay의 데이터 전송은 슬롯 내에서 실시된다.

1 Node의 내부 구성
FlexRay의 1 Node는 하드웨어적으로 컨트롤러부와 드라이버부로 구성된다. 또한 드라이버부는 ‘Bus Guardian(BG)’을 탑재하는 경우와, 하지 않는 경우에 구성이 다르다. 그림 3은 ‘Bus Guardian’을 탑재한 경우의 구성도이다. 컨트롤러 측에는 유닛 전체를 제어하는 Host, 통신을 컨트롤 하는 CC(Communi-cation Controller)가 있다.이 컨트롤러부에서 이중 구성된 드라이버 측에 접속된다.
드라이버 측에는 송신 검출 이상과 통신 차단을 실시하는 Bus Guardian과, FlexRay 버스와 CC 사이에서 물리적 신호⇔논리적 신호 변환을 수행하는 Bus Driver가 있다.
이들은 A와 B라고 하는 식으로 2가지가 존재하고 완전 이중화된 네트워크를 구축할 수 있다.

버스 드라이버의 동작 모드
버스 드라이버(BD)는 FlexRay 노드 모듈과 채널(버스) 간 물리적 인터페이스를 제어한다. BD는 버스에 차동 신호의 송수신 기능을 제공하고 노드 모듈의 양방향 시분할 다중화 바이너리 데이터 전송을 가능하게 한다. 송수신 기능 이외에 BD는 저전력 관리, 공급전압 감시(전압 강하의 검출) 및 버스 고장 검출 수단을 제공한다. 또한 케이블과 ECU 사이의 ESD 보호 배리어로도 되어 있다.
다음은 BD의 상태를 설명한다.

동작 모드에 대해서
BD의 동작 모드에는 BD_Normal 모드와 BD_Standby 모드가 있다. 이와 함께 2개의 옵션 모드가 지원된다(그림 4).
BD_Normal 모드 : BD는 버스 상의 데이터 스트림을 송수신할 수 있다. BD INH1 출력에 Not Sleep 신호가 보내진다.
BD_Standby 모드 : BD_Standby 모드는 저전력 모드이다. BD는 버스와 데이터 스트림을 송수신할 수 없다. 단, wakeup 이벤트를 검출할 수 있다. BD INH1 출력에 Not Sleep 신호가 보내진다.
BD_Sleep 모드(옵션) : BD_Sleep 모드도 저전력 모드이다. BD는 버스와 데이터 스트림을 송수신할 수 없다. 단, BD의 wakeup 감시 기능은 동작 상태이다. BD INH1 출력에 Sleep 신호가 보내진다.
BD_Receive_only 모드(옵션) : BD는 버스 데이터 스트림을 수신할 수 있지만, 송신할 수는 없다. BD INH1 출력에 Not Sleep 신호가 보내진다.

동작 모드의 상태천이
동작 모드의 천이는 bus driver-호스트 간의 인터페이스로부터의 커맨드, wakeup 이벤트의 검출, 혹은 전압강하 상태에 따라서 발생한다. 호스트 커맨드의 우선도는 가장 낮게, 전압강하에 의한 강제 천이 쪽이 최우선이 된다.

버스 드라이버의 전압 감시
BD는 진단 정보를 취득하기 위해서 전압 감시를 하고 있다(표 3). 단, ECU 전체의 안전한 동작을 확보하는 수단은 아니다. 전압강하 상태의 검출은 늦어도 1초 이내이다.

VCC 공급전압의 감시
BD는 VCC 입력이 설치되어 있을 경우, VCC 공급전압을 감시하기 위한 수단을 제공할 필요가 있다. VCC 공급전압 임계값을 밑돌 경우에 BD는 자동적으로 저전력 모드로 바뀌고 BD-호스트 간의 인터페이스에 에러 신호를 보고한다.

VBAT 공급전압의 감시
BD가 VBAT 단자를 가질 경우, 이 단자의 전압을 감시할 필요가 있다. VBAT 공급전압이 임계값을 밑돌 경우에 BD는 자동적으로 저전력 모드로 바뀌고 BD-호스트 간의 인터페이스에 에러 신호를 보고한다.

VIO 전압 감시
디지털 IO의 기준전압으로서 VIO 전압이 설치되어 있을 경우, BD는 VIO 전압을 감시하기 위한 수단을 제공할 필요가 있다.
VIO 공급전압이 임계값 이하인 경우에 BD는 자동적으로 저전력 모드로 바뀌고 BD-호스트 간의 인터페이스에 에러 신호를 보고한다.
주의) 임계값은 제품 고유로 설정된다.

전기신호
버스는 Idle_LP, Idle, Data_1, Data_0의 4가지 상태가 정의되어 있다. 버스는 차동신호 BP, BM으로 통신하게 된다. 각 차동신호 상의 전압은 uBP, uBM으로 표시된다. FlexRay의 전기 신호를 그림 5에 나타낸다. 그림 5에서 
- Idle_LP 상태란 LOW 파워 상태다.
- Idle 상태란 아이들(무통신) 상태다.
- Data_1 상태란 논리적 HIGH이다.
- Data_0 상태란 논리적 LOW이다.
(Data_1과 Data_0의 충돌은 허용되지 않는다)
그림 6은 실제 FlexRay 통신 신호를 모니터링 한 것이다.
파형 데이터의 적색 신호가 BP측, 녹색 신호가 BM측으로 결정된다.
와이어 하네스, 커넥터, 커먼 모드 초크 상에서의 전압강하, 그리고 유도강하 마진 및 종단에서 발생하는 부정합은 신호무결성 상 고려해야 할 요소이다. 그래서 FlexRay 에서는 송신측에서 수신측의 네트워크 2곳에 있어서 테스트 플레인을 실시하는 것을 최소한의 조건으로 정하고 있다.

-테스트 플레인 1 : 송신 노드의 버스 드라이버 BP, BM 단자
-테스트 플레인 2 : 네트워크 입력측의 BP, BM 커넥터 단자
-테스트 플레인 3 : 네트워크 출력측의 BP, BM 커넥터 단자
-테스트 플레인 4 : 수신 노드의 버스 드라이버 BP, BM 단자

각각의 테스트 플레인에는 신호 아이 다이어그램(Eye diagram)이 정의되어 있으며 테스트 플레인 차동 전압의 최소 구경을 나타내고 있다. 전압은 [mV] 단위, 시간은 gdBit의 백분율이다(그림 8).

Bus Guardian
FlexRay에서 Bus Guardian(BG)은 Communication Controller(CC)와 독립적으로 스케줄 관리를 하여 데이터 관리를 하고 있다. Bus Guardian(BG)이 독자적으로 타이밍을 감시한다.
만일, 타이밍의 불일치가 발생했을 경우에는 Bus Driver(BD)에 송신을 차단하는 신호를 송신해서 버스의 상태를 보호한다. 또한 동시에 Host에 대해 에러를 통보한다.
그림 9는 일반적인 FlexRay의 세그먼트 구성을 나타낸 것인데, Bus Guardian (BG)의 유효범위는 Static Segment만으로 된다. 이것은 Static Segment에서는 슬롯 길이, 송신 타이밍이 정해져 있어 Bus Guardian(BG)으로 보호 가능하나, Dynamic Segment는 이벤트 트리거(유연한 타임 트리거)이므로 Bus Guardian (BG)으로 타이밍을 감시할 수 없기 때문이다. 세그먼트 구성에 대한 자세한 사항은 ‘세그먼트 구성’을 참고하기 바란다.

Central Bus Guardian
Central Bus Guardian(CBG)은 CBG를 중심으로 스타 접속을 하고 있는 FlexRay 시스템에 대해 채널 상에서 데이터 전송을 가능하게 한다. 또한 CBG는 스타트업이나 커뮤니케이션을 유지하기 위한 프레임을 유지하기 위한 프레임을 보호하지만, 커뮤니케이션 스케줄을 완전히 보호하는 것은아니다. 그림 10에 이중화된 FlexRay 네트워크에서 독립된 2개의 CBG 네트워크 구성 예를 제시한다.

<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>


  • 100자평 쓰기
  • 로그인


TOP