오실로스코프 기본 동작 이해하기

R&S®Essentials | 디지털 오실로스코프 기본 정보

오실로스코프를 이용한 시리얼 프로토콜 디버깅

작성자: 테스트 및 계측 전문가 겸 블로거 James Lewis

UART, I2C, (Q)SPI, CAN 버스의 매혹적인 세계에 빠져보세요. 이러한 시리얼 프로토콜에 대해 배울 뿐만 아니라 오실로스코프를 사용하여 디버깅하는 방법도 알아볼 수 있습니다. 실무에 도움이 되는 팁부터 실제 적용 가능한 통찰력까지, 프로토콜 디버깅을 마스터하는 데 유용한 기본 정보를 준비했습니다.

엣지 컴퓨팅 장치에는 센서, 액추에이터, 버튼, 디스플레이에 연결된 MCU(마이크로컨트롤러)를 탑재할 수 있습니다. 이러한 개별 소자는 대부분 UART, I2C, CAN과 같은 디지털 프로토콜을 사용하여 MCU와 통신합니다. 이러한 시리얼 프로토콜을 오실로스코프를 사용해 디버깅할 경우 한 가지 장점은 과거의 넓은 병렬 버스에 비해 신호의 수가 적어 프로빙하기가 더 쉽다는 것입니다. 프로브를 사용하면 오실로스코프에서 별도의 프로토콜 분석기를 사용하지 않고도 자세한 분석이 가능합니다. 아래에서는 오실로스코프를 사용하여 시리얼 프로토콜을 디코딩하는 방법에 관한 몇 가지 팁을 설명하고 가장 일반적인 시리얼 프로토콜에 대해 간단히 소개합니다.

오실로스코프와 로직 분석기 비교

R&S®RTM3000 Oscilloscope

R&S®RTM3000 Oscilloscope

주요 사항:

  • 대역폭: 100 MHz ~ 1 GHz
  • 샘플링 레이트: 최대 5 Gsample/s
  • 메모리 크기: 최대 80 Msample
  • ADC 분해능: 10 비트

프로토콜 디코드를 살펴볼 때 오실로스코프, 로직 분석기 또는 전용 프로토콜 분석기를 사용할 수 있습니다. 하지만 이 도구 중 어느 것이 가장 적합할까요? 아래에서 세 가지를 간단히 비교해 보겠습니다.

로직 분석기 채널은 본질적으로 디지털 비교기입니다. 따라서 신호가 높거나 낮은지만 알려줄 수 있습니다. 일반적인 로직 분석기에는 8개 이상의 채널이 있으며, 일부 모델에는 32개 이상의 채널이 있습니다. 프로토콜 분석기는 로직 분석기와 비슷하지만 시리얼 링크를 디코딩하기 위한 프로토콜 전용 하드웨어와 소프트웨어가 있습니다.

반면, 오실로스코프는 많은 비트의 분해능을 탑재하고 있지만 일반적으로 두 개 또는 네 개 채널로 제한됩니다. 증가된 비트 심도로 신호의 아날로그 특성을 확인할 수 있습니다.

다행히, 오늘날의 오실로스코프에서 이 세 가지 중 하나만 선택해야 하는 경우는 거의 없습니다. 모든 로데슈바르즈 모델을 포함한 많은 오실로스코프가 아날로그 및 디지털 로직 채널을 제공합니다. 이러한 오실로스코프를 "혼합 신호 오실로스코프"라고 합니다

일부 오실로스코프에는 시리얼 버스를 위한 프로토콜 디코딩 툴이 탑재되어 있습니다! 예를 들어, R&S®RTB2000, R&S®MXO 4 또는 R&S®RTO 6는 자주 사용하는 시리얼 프로토콜을 위한 내장 프로토콜 디코드 및 트리거 기능을 제공합니다.

오실로스코프는 프로토콜 오류가 감지될 때 특히 효과적입니다. 버스를 샘플링하는 아날로그 채널(하나 이상)은 프로토콜 오류가 발생할 때(또는 그 쯤에) 아날로그 문제가 있는지를 보여줄 수 있습니다. 이러한 상황은 로직 분석기에서 거의 발생하지 않습니다.

많은 시리얼 프로토콜이 있고 관련 지원은 오실로스코프 모델에 따라 다르기 때문에 가장 일반적인 버스를 사용하여 회로를 디버깅할 때 도움이 되는 몇 가지 참고사항을 소개하겠습니다.

UART

UART(Universal Asynchronous Receiver/Transmitter, 범용 비동기 수신기/송신기)는 '시리얼'이라고도 합니다. 송신 및 수신 신호는 별도의 클럭이 없는 선입니다. 일반적으로 연결된 장치가 두 개뿐임을 의미하는 점대점(point-to-point) 방식입니다.

UART는 최소 한 개 신호(TX 또는 RX)만 확인해도 되는 경우가 있기 때문에 디버깅이 가장 간단합니다. 하지만, 실무에서 통신을 이해하기 위해서는 일반적으로 양 방향을 모두 확인해야 합니다.

UART 셋업

UART 셋업

UART의 유연한 프레이밍 방식

UART의 유연한 프레이밍 방식

UART에는 유연한 프레이밍 방식이 있습니다. 시작 비트와 정지 비트의 수가 가변적이며 선택적인 패리티 비트가 있습니다. 데이터 페이로드는 일반적으로 8비트입니다. UART는 비동기식이기 때문에 호스트와 장치는 이러한 매개변수와 전송 속도에 대해 합의해야 합니다. 디버깅 중에는 오실로스코프에도 동일한 요구 사항이 적용됩니다.

오실로스코프를 이용한 디버깅

팁: 디코더를 사용하면 일반적으로 캡처 후에 전송 속도를 변경할 수 있습니다. 잘못된 데이터가 디코딩되고 있는 경우 이 설정을 조정하십시오. 그렇지 않으면 올바르게 디코딩(또는 트리거)할 수 없습니다.

SPI & QSPI

모든 장치에서 클럭 공유
모든 장치에서 클럭 공유

텍스트 SPI 또는 S-P-I는 "직렬 주변장치 인터페이스"로 알려져 있습니다. 이는 시프트 레지스터처럼 작동합니다. 모든 장치가 클럭을 공유하며 주 출력, 보조 입력(MOSI) 신호와 주 입력, 보조 출력(MISO) 신호를 공유합니다. 이들은 UART의 "TX"와 "RX"에 해당합니다. 하지만 데이터가 이동하는 방향이 명확합니다. 예를 들어, MOSI에서는 데이터가 호스트에서 장치로 이동하고 MISO에서는 데이터가 장치에서 호스트로 이동합니다. 따라서 잘못된 신호를 프로빙할 가능성이 줄어듭니다!

SPI 프로토콜은 동일한 버스에서 복수 장치를 지원합니다. 각 장치에는 장치를 구별하기 위한 CS(Chip Select, 칩 선택) 신호가 있습니다. 그러나 SPI 장치가 하나만 있는 설계에서는 CS 신호를 생략(또는 항상 활성화)할 수 있습니다. 마찬가지로, 데이터가 한 방향으로만 이동하는 경우 적절한 MOSI 또는 MISO 신호만 연결하면 됩니다.

오실로스코프를 이용한 디버깅에도 같은 논리가 적용됩니다. 버스에 있는 장치가 하나인 경우 CS 신호를 프로빙할 필요가 없습니다. 그리고 데이터가 한 방향으로만 이동하는 경우 대부분의 디코더는 하나의 신호만 프로빙해도 처리가 가능합니다. 그러나 클럭 신호는 항상 필요합니다.

QSPI란?

플래시 메모리 칩을 위해 일반적으로 사용하는 인터페이스 표준은 QSPI(Quad SPI) 프로토콜입니다. SPI와 마찬가지로, 이 프로토콜에는 클럭, 활성화, 데이터 핀이 있습니다.

I2C(Inter-Integrated Circuit)

장치들이 클럭과 데이터 라인을 공유
장치들이 클럭과 데이터 라인을 공유

I2C(Inter-Integrated Circuit)는 원래 필립스에서 개발한 것으로, 관련 사업부는 나중에 NXP로 분사하였습니다. I2C를 지원하는 장치는 상표 또는 라이선스 문제를 회피하기 위해 "two-wire"라는 이름을 사용하기도 합니다.

버스에 있는 모든 장치는 클럭 및 데이터 라인을 공유하며 각 장치는 고유한 주소를 가져야 합니다. 일반적으로 I2C를 사용하는 센서나 장치는 주소의 최하위 비트를 설정하기 위해 몇 비트의 기본 주소를 가지고 있습니다. 이 기술은 최소한의 핀으로 버스에 같은 센서가 여러 개 있을 때 유용합니다.

I2C를 오실로스코프에서 디버깅할 경우 두 개의 채널이 필요합니다. 클럭은 호스트가 장치와 통신할 때만 작동합니다. 따라서 오실로스코프는 클럭과 데이터 신호를 모두 캡처해야 합니다.

I2C: 7비트 또는 8비트(또는 10비트)

I2C 주소는 7비트와 10비트의 두 가지 다른 주소 모드가 있어 혼동할 수 있습니다. 7비트 모드가 더 일반적이지만 간혹 8비트 주소로 간주되는 등 혼동이 되는 특징이 있습니다.

7비트와 8비트 주소 모드 비교
7비트와 8비트 주소 모드 비교

혼동의 원인은 주소 뒤에 오는 R/W 비트 때문입니다. READ 트랜잭션에서 이 값은 "1"이며 WRITE 트랜잭션에서는 "0"입니다. 따라서 I2C를 디버깅할 때 예상 주소에서 트리거링이 실패하면 주소를 왼쪽으로 1비트 이동하고 R/W 값을 포함해 보십시오.

CAN 버스

CAN 버스는 차동 신호 방식을 사용합니다
CAN 버스는 차동 신호 방식을 사용합니다

CAN(Controller Area Network)은 자동차에 사용할 목적으로 개발되었으며 운송 업계에서 계속해서 광범위하게 사용하고 있습니다. CAN의 차동 신호는 전기 노이즈에 대한 면역성을 개선하여 산업 애플리케이션에 적합합니다.

차동 신호이지만 대부분의 경우 차동 오실로스코프 프로브가 필요하지 않습니다. 대신, 오실로스코프 디코더로 버스를 디코딩하는 데에는 "CANH" 또는 "CANL" 신호 중 하나에 싱글 엔드 프로브만 연결되어 있으면 충분합니다.

CAN 2.0 버전은 두 가지, 즉, 기본(11비트 주소) 및 확장(29비트 주소) 버전이 있습니다. 해당 데이터 프레임은 중재 필드와 제어 필드에서 약간 다르지만, 그렇지 않을 경우 패킷은 동일합니다.

R&S®RTM3000을 이용한 CAN 디코딩
R&S®RTM3000을 이용한 CAN 디코딩

CAN 버스는 두 개의 신호 선만 사용하며 둘 다 클럭이 아닙니다. 따라서 디코딩이 제대로 실행되지 않은 것으로 생각되면 샘플 포인트를 조정하여 디코더가 데이터를 샘플링하는 위치를 변경해 보십시오.

디코딩과 트리거 비교

디코딩은 캡처된 파형을 분석하고 프로토콜을 사람이 읽을 수 있는 형태로 디코딩하는 후처리 방법입니다. 일반적으로 디코딩된 데이터는 파형 디스플레이 위에 오버레이로 표시되거나 표 형식으로 제공됩니다. (R&S RTE, RTO6, RTP와 같은 일부 오실로스코프는 버스 활용률과 같은 추가 분석 툴을 제공합니다.) 대용량 메모리를 탑재한 오실로스코프는 긴 시간 동안 캡처한 다음 관련 이벤트(또는 해당 이벤트가 발생하는 빈도)를 검색할 수 있습니다. 이 기법은 기본적으로 '소프트웨어'식 접근 방식입니다.

트리거는 오실로스코프의 트리거 시스템 내에서 발생합니다. 프로토콜 트리거는 시리얼 버스를 지속적으로 모니터링하여 이벤트가 발생한 때를 확인합니다. 예를 들어, 두 가지 일반적인 트리거는 I2C 주소 또는 오류 조건(NAK 또는 패리티 오류)입니다. 트리거 옵션은 일반적으로 몇 가지 프로토콜별 트랜잭션으로 제한되며 주소, 데이터 또는 페이로드의 비트 심도로 제한될 수도 있습니다. 이 기법은 기본적으로 '하드웨어'식 접근 방식입니다.

오실로스코프가 두 기술을 결합하는 경우가 있습니다. 즉, 트리거 시스템이 '자동 트리거'를 수행하는 동안 프로토콜 디코더는 관심 이벤트를 찾아 화면 중앙에 표시할 수 있습니다. 오실로스코프가 특정 이벤트를 '발견하지 못하는' 경우 매뉴얼을 참조하여 어떤 트리거 조건이 '하드웨어' 기반이고 어떤 조건이 '소프트웨어' 기반인지 확인하십시오.

요약

  • 대부분의 엣지 컴퓨팅 장치는 MCU와 UART, SPI, I2C 또는 CAN과 같은 디지털 프로토콜을 사용하여 통신합니다.
  • 오실로스코프는 시리얼 프로토콜을 디코딩할 수 있는 다양한 도구를 제공합니다.
  • 일부 오실로스코프에는 시리얼 버스를 위한 프로토콜 디코딩 툴이 탑재되어 있습니다.
  • UART는 별도의 클럭이 없는 점대점 방식으로, 두 개의 장치만 연결됩니다.
  • SPI는 시프트 레지스터처럼 작동하며, 모든 장치가 클럭, MOSI 신호, MISO 신호를 공유합니다.
  • I2C의 디버깅은 두 개 채널이 필요합니다. 클럭은 호스트가 장치와 통신할 때만 작동하므로 오실로스코프는 클럭과 데이터 신호를 모두 캡처해야 합니다.
  • CAN은 차동 신호임에도 불구하고 일반적으로 차동 오실로스코프 프로브가 필요하지 않습니다. 대신, 오실로스코프 디코더로 버스를 디코딩하는 데에는 "CANH" 또는 "CANL" 신호 중 하나에 싱글 엔드 프로브만 연결되어 있으면 충분합니다.
  • 모든 로데슈바르즈 오실로스코프는 시리얼 프로토콜 옵션을 제공합니다. 사용 가능한 트리거는 오실로스코프 모델과 대역폭 성능에 따라 다릅니다. 하지만 대부분은 여기 나열된 기본 시리얼 프로토콜을 지원합니다.
  • 일반적인 시리얼 프로토콜로 디버깅할 경우 RTB2000 또는 RTM3000을 권장합니다. 480 Mbit/s보다 빠른 프로토콜의 경우 MXO4(1.5 GHz), RTO 및 RTP 오실로스코프를 고려해 보십시오.

테스트의 기초에 대한 자세한 내용이 궁금하신가요?

뉴스레터 구독

기타 참고 자료