마이크로컨트롤러 테스팅 - I2C 디코딩 및 에러 스캐닝
상태바
마이크로컨트롤러 테스팅 - I2C 디코딩 및 에러 스캐닝
  • 김희윤
  • 승인 2012.10.08 00:00
  • 댓글 0
이 기사를 공유합니다

마이크로컨트롤러 테스팅 - I2C 디코딩 및 에러 스캐닝


글 오창훈 기술지원팀 부장/텔레다인 르크로이코리아 


마이크로컨트롤러 유닛(MCU: Microcontroller Unit)은 단일 PCB위에 포함된 작은 컴퓨터라고 할 수 있다. 초고속 마이크로 컨트롤러가 등장하고 여기에 운영체제(OS) 기술이 발달하면서 기술이 융합되고 있기 때문에 현재에는 마이크로 컨트롤러과 임베디드 컨트롤러의 경계가 모호해지고 있다. 임베디드 컨트롤러는 특정 운영체제 기반에 특수한 제어 목적을 가지고 운영되는 제어기라고도 불 수 있다. MCU들은 바코드 리드에서부터 자동차 전자, 의료 기기, 지능형 조명 및 가전에 까지 광범위하게 적용되고 있다. 
 응용 범위가 매우 광범위하기 때문에, 여러 가지 기능을 가진 마이크로 컨트롤러의 종류도 다양하며, 여러 종류 중의 하나의 블록도를 그림 1에서 보이고 있다.


[그림 1]  마이크로컨트롤러의 블럭다이어그램. 컨트롤러의 하단에  I2S, I2C, UART, SPI, CAN 버스 등의 인터페이스와 연결할 수 있는 커넥션이 존재한다.

마이컨트롤러는 종종 시리얼데이터 버스를 통하여 다른 디바이스들과 통신이 이루어진다. 그림 1의 하단에 보이고 있는 I2S, I2C, SPI, CAN, UART등의 연결을 이용하여 통신이 이루어지게 된다.  설계 또는 검증단계에서 엔지니어들은 MCU가 제대로 신호를 생성하고 있는지 또는 정확한 응답이 돌아오는 지를 확인할 것이다.  이 문서에서는 마이크로프로세서 제어, LCD 드라이버, EEPROM, 전화 비디오 등 모듈제어에 다양하게 사용되고 있는 I2C를 르크로이 오실로스코프에서 어떻게 디코딩하고 트리거 할 수 있는 지와 임베디드 시스템과 일반적인 시스템 측정에서 어떤 식으로 이상신호를 찾아내어 디버깅 소스로 사용할 수 있는 지에 대해서 다룰 것이다.


MCU 출력 테스팅

오실로스코프는 회로의 문제점을 찾거나 동작이 올바른지를 확인할 수 있는 가장 범용적으로 사용하는 장비중의 하나이다. 르크로이의 오실로스코프 WaveSufer 모델 이상의 모든 스코프에 탑재되어 사용할 수 있는 I2C 트리거 및 디코드 패키지는 HEX 디코딩, 아스키 타입의 디코딩 정보를 제공하는 동시에 I2C 신호를 다양한 각도에서 트리거할 수 있는 트리거 기능을 보유하고 있다. 그림 2에서는 I2C 버스 정보를 포착하기 위한 간단한 트리거 설정 화면과 신호 위에서 디코드 결과를 보여주고 있는 예를 보이고 있다.


[그림 2] 트리거를 이용하여 쉽게 포착한 I2C 신호에 디코드 결과를 표시하고 있다.

르크로이의 디코딩 툴은 디코딩 결과를 사용자가 바로 확인할 수 있도록 파형 위에서 바로 디코드 정보를 표시하고 각 패킷 또는 프레임의 정의에 따라 서로 다른 색을 사용하여 디코딩하는 것이 특징이다. 그림 2에서 확인할 수 있는 것처럼 I2C를 디코딩했을 때 Address 와 전송되는 데이터의 디코딩 값을 표시할 때 각각 다른 색으로 표시함으로써 관측자의 수고를 덜어 준다. 디코딩 결과는 데이터를 Binary, Hex, ASCII를 선택할 수 있어 편리한 방법으로 확인이 가능하다.
I2C 디코딩 툴은 클럭 신호를 화면에 표시하지 않은 상태에서도 디코딩이 가능하여 오실로스코프 화면을 효율적으로 사용할 수 있다. 한 스윕에 많은 양의 프레임을 포착하는 경우, 전체 프레임에 대한 내용을 한 눈에 관측해야 할 필요성이 있다. 이러한 요구에 맞도록 테이블을 통한 관측 또한 제공하고 있다. 디코딩 결과를 테이블 형식으로 제공하여 시간에 따른 데이터의 흐름을 확인하기 쉽게 구성되어 있다.


그림 3에서는 약 2초 동안에 발생한 5개의 프레임을 포착한 화면이다. 화면의 아래에서 보이는 테이블을 클릭하여 해당 프레임을 확대하여 데이터를 확인하고 있다. 이 테이블은 엑셀타입의 파일로 저장하여 일반 컴퓨터의 응용프로그램에서 그 내용을 바로 확인하거나, 데이터의 검증용으로 쉽게 사용할 수 있다.
만약, 매우 많은 프레임안에서 사용자가 원하는 어드레스의 Read/Write 또는 데이터 내용 중에 존재하는 데이터를 찾고자 하는 경우, 일반적인 확대를 이용하여 패킷을 하나하나 들여다보며 확인할 수도 있을 것이다. 이런 방법으로는 매우 많은 시간을 들여야만 원하는 데이터를 검색할 수 있을 것이다. 르크로이의 I2C 툴은 실제 엔지니어들이 쉽게 원하는 정보를 검색할 수 있도록 그림 4와 같은 검색 메뉴를 제공하고 있다. 이 메뉴를 이용하여 많은 패킷 중 원하는 어드레스, 패킷, 또는 데이터를 빠르게 찾아낼 수 있다.




강력한 I2C 트리거 기능

트리거 기능은 일반 오실로스코프를 사용할 때도, 원하는 파형을 선택적으로 확인할 수 있는 매우 중요한 기능이다. I2C를 디자인 또는 검증할 때도 반드시 필요한 기능이 바로 트리거 기능이다. 일반 파형을 다루는 경우, 파형의 모양, 펄스 폭, 주기 등의 다양한 신호의 특징을 이용하여 트리거를 수행할 수 있다.
I2C와 같은 시리얼 데이터 인터페이스에서는 파형의 모양도 중요하지만, 데이터 패킷 또는 프레임이 포함하고 있는 Address 또는 데이터의 정보를 이용하는 것이 더욱 쉽게 트리거 하는 방법이다. 임베디드 컨트롤러 들은 임베디드 시스템에서 각종 슬레이브 디바이스들과 연결하고 제어하는 신호를 주고 받는다.
따라서, I2C 데이터를 분석해야 하는 오실로스코프에서도 각 슬레이브에 Read하거나 Write하는 데이터를 구분하여 트리거할 수 있어야 하며, 더 나아가서는 전송되는 데이터의 조건에 따라 트리거를 수행할 수 있는 기능을 가지고 있어야 한다. 르크로이 I2C 트리거 기능은 매우 강력한 성능을 제공한다. Start, Stop, Restart, No Ack 과 같은 신호의 조건에 대한 트리거 기능과 Address, Address+Data, Frame Length, EEPROM 등과 같은 프로토콜에 기반을 둔 트리거 기능을 제공하고 있다. 일반적인 다른 오실로스코프에서 제공하는 I2C 시리얼 데이터 트리거는 단순히 데이터를 지정하여 입력한 데이터 값과 일치하는 경우에만 트리거를 수행할 수 있는 반면, 르크로이의 I2C 트리거 기능에서는 매우 다양한 조건을 제공할 뿐만 아니라, Data Pattern 설정을 통하여 세밀하게 데이터 크기의 조건을 설정하여 정확한 파형 트리거가 가능하다.
AD 컨버터와 같은 I2C 기반 센서를 사용하여 설계할 때 DATA가 안전한 동작범위를 벗어날 경우 또는 온도 센서를 제어할 때 특정 범위를 넘어설 경우에 오실로스코프를 이용하여 트리거를 수행하여 해당 신호를 관측해야 한다.
이러한 트리거를 수행하기 위해서는 측정기의 트리거 기능에 데이터의 조건을 설정할 수 있어야 한다. 르크로이의 I2C 트리거 기능에는 Data의 조건을 다양한 방법으로 설정할 수 있어, 매우 유연하게 데이터의 조건을 선택하여 신호를 관측할 수 있는 장점을 제공한다. 이러한 기능을 이용하여 칩과 칩 사이의 동작이 적절하게 동작하고 있는지의 여부를 판단할 수 있다.
I2C 트리거 기능에서 조건 트리거를 사용하면 단순 바이트 값을 이용하여 트리거 하는 기능 외에 특정 범위 내에 존재하는 데이터에 대해서도 트리거가 가능하다.
특히 EEROM 프로그램을 검증해야 하는 경우, 다루는 데이터의 길이가 길어질 수 있다. 르크로이의 I2C 트리거는 EEPROM 전용 트리거 메뉴를 갖추고 있어서, 최대 2048 바이트의 메시지 내의 데이터 바이트에 트리거를 수행할 수 있다.
그림 5에서는 Address+Data 메뉴를 이용하여 매우 많은 데이터들 중에서 특정 바이트 위치에서의 데이터 값을 이용하여 트리거하는 예를 보이고 있다. EEPROM의 경우 매우 많은 정보들이 전송되고 전송되는 데이트들에는 동일한 데이터 값이 존재할 수 있으므로, 오실로스코프에서 트리거를 동작시킬 때 특정 바이트 위치에서의 값을 검색할 수 있는 기능이 필요하다.  Address+Data에서는 최대 2047 번째 바이트 내에서 트리거를 수행하도록 되어있으며, 연속적으로 최대 12 바이트 데이터 값을 비교하여 트리거를 수행할 수 있다. 지정할 수 있는 스타트 바이트는 최대 2048 바이트로 매우 길기 때문에 긴 데이터를 다루는 경우에도 쉽게 정의하여 트리거를 수행할 수 있다는 장점이 있다.



디버깅에 필요한 툴 - WaveScanTM

르크로이의 오실로스코프에는 WaveScan 기능이 기본으로 제공된다. 이 기능은 입력되는 파형에서 특정 조건을 포함하고 있는 파형이 존재하는 지의 여부를 가장 빠르게 찾아낼 수 있으며, 이상이 있는 부분이 존재하는 위치를 빠르게 확인할 수 있는 툴이다. WaveScan 기능은 파형의 디버깅과 에러 검출에 아주 유용하게 사용할 수 있는 검색기능과 검색된 파형을 자세히 관측하거나, 통계적으로 측정을 수행할 수 있다.
오실로스코프에서 측정할 수 있는 대부분의 자동 측정 파라메터의 측정값을 이용하여 신호를 검색할 수 있어, 스코프 사용자들이 다소 어려워하고 있는 트리거 기능을 대체할 만한 기능도 탑재하고 있다.


WaveScan을 이용한 빠른 디버깅

연속적이고 정상적인 파형에 비하여, 에러를 가진 파형은 그 비율이 높지 않아 그 파형을 관측하기란 쉽지 않은 작업이다. 일반적으로 에러 파형이 존재하는지의 여부를 판단하기 위해서는, 파라메터를 통계 처리하여 최소값, 최대값이 디자인한 범위안에 존재하는 지를 비교함으로써 에러가 존재하는지의 여부를 판단하거나, 르크로이의 툴인 파라메터 트랜드, 트랙을 이용하기도 하였다.
또는, 트리거 기능을 이용하여 펄스폭, 진폭, 주기 등의 정보를 이용해 원하는 이벤트에서 트리거를 수행하여 신호를 관측하는 방법이 있다. 현재 공급되고 있는 오실로스코프의 트리거 기능은 매우 다양하지만, 모든 관점에서의 비정상 신호를 모두 포착해내기는 쉽지 않은 것이 사실이다. 예를 들어, 주파수 또는 Non-Monotonic 에지에서 트리거를 수행하고자 할 경우, 현재의 오실로스코프의 트리거를 이용하여 그와 같은 파형을 포착한다는 것은 쉬운 일이 아니다.
WaveScan은 포착된 파형에서 특정 이벤트를 검색하거나 빠르게 찾아 낼 수 있는 기능을 제공하며, 약 20여가지의 검색 모드를 지원하고 있다. WaveScan에서는 파형의 레벨 또는 에지의 모양으로 검색하는 모드와 파라메터를 지정하여 파형을 검색하는 모드를 제공한다.
많은 엔지니어들이 디버깅을 수행할 때, 예를 들어 펄스 폭과 같은 파형의 특징에 문제가 있다는 심증을 가지고 있는데 그것을 파형으로 관측할 수 없을 경우, 이 WaveScan이 매우 유용하게 사용될 수 있다.



그림 6에서는 화면에 약 1300개 이상의 싸이클을 포착하여 펄스 폭을 측정하고 있다. 측정하고 있는 펄스 폭에 통계 처리를 수행하여 입력채널 1에 대한 최대, 최소 및 평균 값을 확인하였다. 펄스 폭 측정 값에서 관측자는 최소값이 평균에 비하여 너무 작다는 것을 간파할 수 있었으나, 그 위치를 정확하게 찾아야 할 경우, 비용을 투자하여 위치를 확인할 수 있는 툴을 구매해야 할 것이다. 또는 트리거링을 사용할 수 있지만, 곧바로 트리거 기능을 적용하여 해당 신호만을 골라내기는 쉽기 않을 것이다.
WaveScan은 펄스폭을 비롯하여 시간에 관련된 모든 파라메터를 이용한 검색 모드를 지원하고 있다. 또한 검색을 유연하고 정확하게 수행할 수 있도록, 다양한 필터 기능을 이용할 수 있다. 측정 값에 대한 필터 기능은 제공한 값과 비교하여 <, >, 특정 범위, 지정 범위 밖의 데이터 및 측정 값 중 가장 빈도가 낮은 값 등의 필터를 적용하여 원하는 조건을 가진 파형을 스캔할 수 있다. 그림 7의 예에서는 Rarest Event필터를 적용하여 파형을 스캔하였다.



WaveScan은 포착된 신호에서 비정상 이벤트를 포착하고, 측정된 값들을 테이블을 통해 보여주며, 이를 이용하여 사용자가 확대를 이용하거나, 추가적인 분석을 수행할 수 있도록 한다.
WaveScan은 르크로이가 제공하는 측정에서의 장점을 그대로 보여주고 있다. 르크로이의 오실로스코프에서는 화면에 보이는 모든 파형을 매 화면이 업데이트 될 때마다 측정한다. WaveScan에서도 화면에 나타난 모든 파형을 측정하여 테이블에 순차적으로 측정 결과 값을 제공한다. 그림 8에서는 화면 왼쪽 위에 테이블에 많은 양의 펄스 폭이 측정되었다는 것을 알 수 있으며, 이 값은 Single 트리거를 이용하여 단 한 스윕의 신호에서 측정한 결과이다. 이 결과들을 테이블을 통하여 숫자로 확인하거나 또는 ScanHistogram, ScanOverlay 기능을 통하여 통계적인 관점에서 측정 결과에 대한 분포를 확인하거나, 해당 값을 가진 파형을 다른 파형과 비교하여 눈으로 쉽게 확인할 수 있다.
그림 8과 같이 측정값이 많이 있을 경우에도, 테이블에서 해당 값을 클릭하는 순간 곧바로 해당 파형이 확대되어 나타난다. 디버깅과 트러블 슈팅을 많이 수행하는 엔지니어라면 통계 처리에 익숙할 것이다. 정량화된 평균, 최대, 최소 값 이외에 히스토그램을 이용하여 전체적인 분포를 확인하는 것은 통계적인 작업을 수행하는 데 기본으로 사용된다.
WaveScan에서는 측정 값을 테이블에 데이터를 각각 표시하는 동시에 그림 9와 같이 히스토그램 상으로 분포도를 바로 표시할 수 있다. 히스토그램을 많이 사용하는 사용자라면 해당 데이터 값이 존재하는 파형을 검색하고 찾고 싶었을 것이다.







그림 9의 예에서는 측정된 대부분의 파형은 수백 us의 범위에 있으며, 히스토그램 상에서 오른쪽에 대부분이 위치하고 있다. 동그라미로 표시된 히스토그램은 다른 파형에 비해 상대적으로 측정 값이 작으며, 발생 빈도가 적다는 것을 알 수 있다.  펄스 폭이 작은 파형을 확인하고 싶다면, 히스토그램 막대 중 해당 막대를 클릭하고 "Find Feature"라는 팝업을 클릭하면 곧바로 해당 파형을 화면에 표시하고, 테이블에서도 동일한 파형의 측정 값을 나타내는 항목을 바로 하이라이트 하여 표시한다. WaveScan 기능은 다양한 검색 기능뿐만 아니라, 검색된 파형을 쉽게 관측자가 확인할 수 있는 여러 가지 방법을 제공한다.
WaveScan은 하드웨어 트리거링 그 이상을 제공한다. 포착된 데이터에서 비정상 이벤트 또는 원하지 않거나, 관심있는 이벤트를 검색/필터하는 기능 이외에, 오랜 시간 동안 신호를 포착하면서 이벤트를 검색할 수 있으며, 이벤트가 발생하는 조건에서 사용자가 지정한 동작을 수행한다. 파형을 자동으로 저장하거나, 소리를 내거나, 화면의 이미지를 저장하는 등 사용자가 추후에 정밀한 분석에 사용할 수 있도록 많은 수단을 제공한다.
사용자가 원하는 데이터를 수집할 수 있는 다양한 방법을 제공하므로, 빠른 디버깅이 가능해진다.
 

결론

현재 날로 관심을 받고 있는 임베디드 어플리케이션에서 클럭과 데이터의 관측, 지터, 다양한 파라메터를 이용한 관측은 기본적인 측정 항목이 되었다. 아울러 다양한 에러들이 포함될 수 있으며, 이러한 에러들을 얼마나 쉽게 포착하고 또 검색할 수 있느냐는 디버깅 하는 시간을 단축시켜야 하는 엔지니어에게는 필수사항이다.
WaveScan에서 제공하는 검색기능(Run, Non Monotonic, Edge, Measurement)과 측정 파라메터의 필터링 기능은 사용하기도 쉬우면서, 디버깅에 필요한 정보를 제공하고 있다는 것을 알 수 있다. 이 기능은 사용자가 글리치에 의한 이상 또는 예상치 못한 파형의 변화를 빠르게 확인하고 쉽게 디버깅의 소스를 얻을 수 있다.
I2C 트리거/디코드 기능은 처음 접하는 사람도 이해할 수 있는 디코드 정보를 제공하며, 다양한 트리거 방법과 데이터 조건을 유연하게 설정할 수 있고, 프레임의 길이를 이용한 트리거, 2048바이트까지 설정할 수 있는 바이트 옵셋 기능은 시리얼 버스를 다루어야 하는 임베디드 어플리케이션 엔지니어들에게는 아주 유용한 트리거 기능이라 할 수 있다.
현재 르크로이에서는 I2C, I2S, SPI, SSPI, CAN, FlexRay, LIN, UART, RS 232, ARINC 429, MIL-STD-1553, MIPI D-PHY 등의 다양한 버스들을 디코딩 하고 트리거 할 수 있는 기능을 제공하고 있으며, 디지털 신호와 아나로그 신호를 동시에 스코프 화면에서 확인할 수 있는 MSO모델을 제공하여 임베디드 어플리케이션을 다루는 엔지니어들이 디지털 라인과 아나로그 신호 사이의 상관성을 쉽게 확인하고 분석할 수 있는 방법도 제공하고 있다.
르크로이는 임베디드 엔지니어들이 디지털 라인을 에뮬레이션 할 수 있도록 ArbStudio D모델을 제공하여, 아나로그 임의 파형 발생은 물론 디지털 라인을 생성할 수 있는 제너레이터도 현재 공급하고 있다.