혼합신호 오실로스코프를 이용한 차량용 CAN 버스 디버깅 전략
2007년 04월호 지면기사  / 자료제공 | 애질런트 테크놀로지스

오늘날 자동차 설계에서는 시스템 통신의 효율 향상과 비용 절감을 실현하기 위해서 다양한 시리얼 버스 통신 프로토콜을 사용한다.
I²C와 SPI 프로토콜은 대부분 전자제어장치(ECU) 내에서 주로 칩-투-칩(chip-to-chip) 통신에 이용된다.
안티룩(anti-lock) 브레이크, 에어백, 엔진 제어, GPS 내비게이션 같은 다양한 차량용 서브시스템 간의 장시간 시리얼 통신을 위해서는 CAN, LIN, MOST 프로토콜이 가장 일반적으로 사용되고 있다. 장시간의 통신에서는 점화 시스템에 의한 신호 간섭이나 랜덤 노이즈 등 자동차의 가혹한 환경으로 인하여 신호무결성 문제가 발생하게 된다. 이 때문에 민감한 통신 사이클 중에 에러가 발생할 수도 있다.
자동차 전자 시스템은 디지털 제어 하에 있는 아날로그 센서나 아날로그 모터 제어장치가 존재하므로 내장형 혼합신호(mixed-signal) 시스템이다. 차량용 전자 시스템 설계 엔지니어 사이에서는 아날로그와 디지털 양쪽 신호의 무결성을 측정하는 데도 가장 최적의 툴로서 전통적인 오실로스코프를 오랜 세월 사용해 왔다. 그러나 기존의 아날로그 오실로스코프나 디지털 오실로스코프는 복잡한 시리얼 트리거링을 할 수 없고 입력 채널에서의 데이터 수집에 한계가 있는 등 많은 제약이 있었다. 반면, 혼합신호 오실로스코프(MSO)는 오늘날 차량용 설계의 디버깅/검증에 있어서 많은 이점을 제공한다.
이 글에서는 애질런트 MSO 6000 시리즈를 이용한 CAN 기반 차량용 시스템에서 신호무결성의 대표적인 디버깅 방법을 소개한다.
CAN 차동 신호는 아날로그 센서 데이터를 ECU에 디지털 데이터로 전송하기 위해서 사용되고 있으며 MSO를 사용하여 CAN 신호와 리모트 아날로그 입력 센서의 출력 진폭을 반복하여 캡처/측정할 수 있다. 동시에 MSO를 사용하여 ECU 내의 여러 SPI 제어 신호를 캡처할 수 있다.
MSO는 디지털 스토리지 오실로스코프(DSO)의 모든 측정 기능과 로직 애널라이저의 일부 측정 기능을 통합한 하이브리드 테스트 기기이다. MSO를 사용하면 복수의 아날로그 신호, 디지털 신호, 시리얼 파형을 같은 디스플레이 상에서 동기화시켜 표시할 수 있다(그림 1 참조). 기존의 오실로스코프는 트리거 기능에 대부분 한계가 있었지만, 일부 MSO는 자동차 전자 시스템의 디버깅에 최적화된 고성능의 시리얼 트리거링/프로토콜 디코드 분석 기능을 갖추고 있다.
MSO는 일반적으로 완전한 로직 애널라이저와 같이 많은 디지털 채널이 없다. 또한 시리얼 프로토콜 애널라이저와 같이 높은 추상 수준에서의 분석을 할 수도 없다. 그러나 MSO는 비교적 단순하므로 용이하게 사용할 수 있으며 로직 애널라이저와 프로토콜 애널라이저와 같이 복잡한 조작도 없다.

자동 윈드쉴드 와이퍼  시스템의 동작 검증
애질런트 MSO를 이용하여 프로토타입 자동 윈드쉴드 와이퍼(windshield wiper) 시스템의 회로/프로토콜이 정상적으로 동작하는 지 검증했다.
그림 2는 MSO 6104A에서 캡처한 프로토타입 시스템의 아날로그 신호와 디지털 신호를 시간상관(time-correlated) 표시한 것이다. channel-1 파형(위쪽 노란 트레이스)은 윈드쉴드 와이퍼 시스템 등의 다양한 리모트 서브시스템과의 통신을 하고 있는 차동 CAN 버스 신호이다. channel-2 파형(중앙의 녹색 트레이스)은 윈드쉴드에 부딪치는 비나 눈의 양을 빛으로 검출하는 리모트 레인 센서(rain sensor)의 아날로그 출력 신호 수준을 보여주고 있다. CLOCK, DATA, CS, INTERRUPT 신호 등 ECU 내의 SPI 제어 신호(오실로스코프의 디스플레이 하단에 보이는 청색 트레이스)도 시간상관으로 표시되어 있다. 이것들은 모두 MSO의 16개 로직 타이밍 채널의 일부를 사용해서 캡처된 것이다. 이 오실로스코프의 디스플레이 가장 하단에 보이는 여러 색깔의 버스 트레이스는 CAN 데이터 채널(이 경우는 channel-1)의 디코드된 정보를 시간상관 표시한 것이다.
이 특수한 설계에서는 리모트 아날로그 센서의 순시(instantaneous) 출력 진폭이 A/D컨버터(ADC)에 의해 디지털 값으로 변환되고 특정한 데이터 프레임(07FHEX)의 단일 데이터 바이트로서 ECU에 연속적으로 전송된다. 이 센서 출력의 반복 전송을 캡처하고 프로토타입의 정상 동작을 검증하기 위해 MSO는 CAN 데이터 프레임 07FHEX에 트리거를 셋업했다(그림 2 참조). 아날로그 센서의 출력 값은 항상 이 프레임에서 전송된다.
이 오실로스코프의 셋업 조건에 의해 CAN 패킷으로 실제로 전송된 데이터 값(BHEX)을 모니터하고 검증하면서 센서 출력의 아날로그 진폭을 간단히 측정할 수 있었다. 이 프로토타입 자동 와이퍼 시스템을 실험실에서 테스트 하는 동안에는 문제가 관찰되지 않았으므로 CAN 차동 신호에 거의 노이즈가 없는 것으로 생각했다.
유감스럽게도, 이 차량용 서브시스템이 자동차에 통합되어 있을 경우에는 자동 와이퍼 시스템은 불확실한 동작을 하고, ECU가 수신하는 데이터 값이 실제 환경의 아날로그 습도 센서와 반드시 일치하지 않는다는 것을 알게 되었다. 회로의 문제가 예측가능하고 재현성이 있는 경우에는 회로 문제의 근본 원인을 차단하고 추적하는 작업이 매우 간단하다.
그러나 이 차량용 설계의 경우, 자동차에 설계를 통합한 이후에는 센서로부터 수시로 또는 부정기적으로 불규칙한 데이터 전송이 일어나기 때문에 문제의 원인을 찾기 어렵다.

하드웨어에 의한 CAN 디코드의 고속화로 적은 발생 빈도의 문제 검출
그림 3은 실험실에서 당초 측정된 것과 같은 신호를 보여주고 있지만, 이번에는 자동차에 통합된 자동 와이퍼 시스템에서 캡처된 신호이다. 자동차의 가혹한 환경에 의해 발생하는 차동 CAN 신호에서 노이즈와 간섭의 영향을 확인할 수 있다. 데이터 프레임 ID:07FHEX에서 반복적으로 트리거링을 하면서 오실로스코프의 화면을 모니터 했다. 그림 3에서 볼 수 있듯이, CAN 디코드의 문자열 내에 적색 ‘플래시’가 존재하는 것을 확인할 수 있다. 이 MSO의 CAN 디코드 기능은 이상 CRC을 적색으로 구분하고 기타 프레임 에러 상태는 적색의 버스 트레이스로 표시한다. 이 오실로스코프의 초고속 파형 업데이트 속도(최고 100,000회/s의 실시간 파형)와 하드웨어에 의한 시리얼 디코드의 고속화는 발생 빈도가 적은 이상(bed) 데이터 전송의 캡처에 필수적이다. 하드웨어에 의한 시리얼 디코드의 고속화로 초당 60회의 업데이트 속도로 문자열이 표시된다. 이것은 인간의 눈으로 읽어낼 수 있는 속도를 상회하지만 발생 빈도가 적을 경우에는 구분된 에러 상태를 충분히 파악할 수 있다.
딥 메모리(deep memory)와 시리얼 디코드 기능을 갖춘 오실로스코프는 대부분 업데이트 속도가 대단히 느리다. 이것은 주로 딥 메모리의 기록이 소프트웨어에 의한 포스트 프로세싱 기법을 이용하여 디코드되기 때문이다. 파형과 디코드의 업데이트에는 몇 초가 소요될 경우가 있다. 이것은 에러가 좀처럼 발생하지 않을 경우에는 대부분의 에러 상태가 오실로스코프의 캡처 시간 중이 아닌 데드타임(dead-time) 중에 불규칙하게 발생하게 된다. 따라서 기존의 오실로스코프에서는 CAN 트리거링/디코드 기능이 탑재되어 있어도 불규칙한 전송을 수시로 캡처하기가 대부분 불가능했다. MSO 6000 시리즈는 하드웨어에 의해 CAN 디코딩이 고속화돼 있기 때문에 발생 빈도가 낮은 랜덤한 에러 상태를 캡처할 수 있는 가능성이 높아졌다. 이것은 파형과 CAN 디코드의 업데이트 속도가 데이터 프레임 07FHEX의 반복 발생 속도를 상회하기 때문이다.
1회라도 ‘이상’ 데이터가 발생하면 오실로스코프의 화면을 프리즈(freeze)하기 위해서 설계 엔지니어는 우선, ‘적색’의 디코드 문자열이 확인된 시점에서 바로 오실로스코프 프론트-패널의 STOP 키를 누른다. 유감스럽게도 오실로스코프의 파형/디코드 업데이트 속도는 대단히 고속이므로 STOP 키가 눌릴 때까지 후속 포착이 여러 번 발생하고 화면은 항상 ‘정상’ 데이터 전송에서 정지했다.

MSO의 트리거링에 의한 에러 프레임에서의 신호무결성 문제의 검출
그 다음에는 에러 프레임만으로 동기화하기 위해서 오실로스코프의 트리거링 기능을 설정했다(그림 4 참조). 이 트리거 셋업 조건(에러 프레임에서의 트리거)에서는 ‘이상’ CAN 전송만이 캡처/표시되고, ‘정상’ 전송은 무시된다.
따라서 마지막에 전송된 ‘이상’ CAN 프레임의 신호 품질을 해석하기 위해서 임의의 시점에서 STOP 키를 누를 수도 있고 오실로스코프의 단발신호(single-shot) 포착 모드를 사용하여 다음 ‘이상’ 데이터 전송에서 오실로스코프의 화면을 프리즈할 수도 있다. 이 화면(그림 4)으로부터 엔지니어가 우선 추측할 수 있는 것은 랜덤한 데이터 전송의 문제가 차동 CAN 신호에 결합되어 있는 과도한 랜덤 노이즈에 기인한다는 것이다(위쪽의 노란 트레이스).
이 오실로스코프의 MegaZoom Ⅲ 기술을 채택한 디스플레이 시스템은 256 수준의 디스플레이 휘도를 갖추고 있으므로, CAN 신호 상의 노이즈가 기존의 아날로그 오실로스코프의 디스플레이 품질과 비슷한 가우시안 분포를 가지고 있는 것을 확인할 수 있다. 그러나 MSO의 ‘표준편차’ 측정 기능을 이용하여 랜덤 노이즈 수준을 측정함으로써 신호의 잡음 수준이 사양의 허용범위 이내이며 에러를 일으키지 않을 수준이라는 판단을 내릴 수 있었다.
channel-1의 차동 CAN 신호를 자세히 검사한 결과, 차동 CAN 신호의 다섯 번째 상승 에지 직전에 이 프레임 데이터 전송 중에 좁은 glitch가 발생했음을 발견했다. 이 보존되어 있는 CAN 프레임을 통상 ‘압축’ 모드의 딥 메모리 포착(최대 8M 포인트)과 200μs/div의 메인 타임베이스에서 오실로스코프의 화면 전체에 표시했을 때에는 이 좁은 glitch를 겨우 확인할 수 있었으며 쉽게 간과될 수도 있었다(그림 4 참조). 그러나 보존되어 있는 트레이스의 타임베이스를 5μs/div로 확대하면(그림 5), 오실로스코프의 샘플링 레이트 분해능이 높기 때문에(최대 4 GSa/s), glitch를 쉽게 확인할 수 있다.
이 glitch를 검출하고 MSO의 커서를 이용하여 glitch의 진폭을 측정한 후, 오실로스코프의 프런트 패널에 있는 RUN 키를 다시 눌러 에러 프레임만으로 트리거링하여 반복 포착을 시작했다. 오실로스코프의 반복 파형 업데이트를 관측하고 있는 동안에 좁은 glitch는 발생 빈도가 적을 뿐만 아니라 데이터 프레임 내에서의 발생 위치도 랜덤하여 차동 CAN 신호와의 특정한 위상 관계도 없음을 알았다. 이것들의 glitch는 위상관계 이외의 원인에 의한 신호의 결합에 기인하는 듯했다. 이것들의 glitch 원인을 특별히 정할 수 있다면 더욱 간단히 근본 원인을 특별히 정하여 대응할 수 있다.

MSO의 트리거링에 의한 랜덤 glitch의 원인 검출
오실로스코프의 화면을 에러 프레임이 아닌 glitch에서 동기화시키기 위해 glitch에서 트리거를 설정하는 것같이 오실로스코프를 설정했다. 이것은 오실로스코프의 펄스 폭(pulse-width) 트리거링 기능을 이용했다.
여기에서는 펄스 폭이 500ns 미만이면, 단지 channel-1 입력(차동 CAN 신호)의 포지티브 펄스에 트리거 포착으로 오실로스코프를 설정했다. 이 설정 조건에서는 오실로스코프가 랜덤으로 발생하는 glitch에서 화면을 동기화시켜 항상 오실로스코프의 화면 중앙의 트리거 위치 부근에 glitch를 캡처/표시했다. 이 때, CAN 데이터 프레임은 glitch의 트리거 소스에 대한 위상관계에 대하여 관계가 없는 것처럼 보였다.
이 glitch의 원인을 추적하기 위해 다른 프로브를 이 4+16-channel MSO의 미사용 채널(channel-1∼4)에 접속하고 자동차의 ‘의심되는’ 신호에 탐침을 하여 glitch와 동기/위상관계에 있는 신호를 확인했다. 몇 분 후에 glitch의 원인을 알아냈다(그림 6 참조).
channel-1~4의 파형(아래쪽의 보라색 트레이스)은 자동차의 전압 레귤레이터 내의 고전압 서지의 원인이 되는 릴레이 제어의 디지털 펄스를 보여주고 있다.
데이터 프레임 ID: 07FHEX의 전송시간 중에 전압 레귤레이터의 전원을 넣으면 윈드쉴드-와이퍼 시스템에서 에러가 발생했다. 문제의 원인을 알아낸 후에는 차폐를 통하여 고전압 서지 신호로부터 윈드쉴드-와이퍼 CAN 노드를 아주 쉽게 절연시킬 수 있었다. 따라서 이 CAN 시스템의 노이즈 내성도 현저하게 개선되었다.

요약
애질런트 MSO 6000 시리즈 혼합신호 오실로스코프를 이용하여 시리얼 버스 CAN 데이터 전송을 사용하는 자동차의 내장형 혼합신호 디자인을 효과적으로 턴온/디버그 할 수 있는 방법을 소개했다.
간헐적인 문제의 원인을 신속하게 찾아낼 수 있는 MSO의 중요한 기능으로 시간상관된 복수의 아날로그/로직 데이터 채널, 고속 파형 업데이트 속도, 하드웨어에 의한 CAN 버스 디코드의 고속화, 각종 트리거링 기능(프레임 ID, 에러 프레임, glitch/펄스 폭 트리거링 등)이 있다. 이 애플리케이션 노트에서는 자동 윈드쉴드 와이퍼에 초점을 맞췄지만 여기에서 설명한 디버깅 기법은 다른 자동차 애플리케이션에도 그대로 적용할 수 있다.



AEM_Automotive Electronics Magazine


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


  • 100자평 쓰기
  • 로그인


  • 세미나/교육/전시

TOP