본문 바로가기
임베디드

JTAG과 SWD의 차이와 장단점

by I!i어★떤☆날★에Ι!i 2023. 10. 18.
반응형

디지털 장치들을 디버깅할 때 많이 사용하는 JTAG(Joint Test Action Group)과 SWD(Serial Wire Debug)에 대해서 알아보자. MCU나 CPU의 장치를 디버깅할 때 많이 사용한다. 이러한 JTAG이나 SWD에 연결하여 디버깅을 하기 위해서는 Debugger 또는 Emulator가 필요하다.

 

NXP_LPC5410x_JTAG_block
NXP의 LPC5410x의 JTAG block

 

* JTAG과 SWD 소개

JTAG과 SWD는 디바이스 장치의 디버깅용 인터페이스 이다. JTAG interface는 IEEE-1149.1-2001에 표준으로 정의되어 있다. 

 

JTAG과 SWD는 모두 디지털 디바이스의 디버깅을 위한 효과적인 인터페이스이다. 핀 수, 지원 CPU, 고급 기능, SWO 핀 등 다양한 요소를 고려하여 적합한 인터페이스를 선택하는 것이 좋다.

 

JTAG은 1980년대 중반에 개발된 인터페이스로, 현재까지 가장 널리 사용되는 디버깅 인터페이스이다. 반면, SWD는 2000년대 중반에 ARM에서 개발된 인터페이스로, JTAG에 비해 핀 수가 적고 보드의 면적을 절약할 수 있다는 장점이 있다.

 

JTAG과 SWD는 모두 MCU(Microcontroller Unit)의 디버깅을 위한 인터페이스다. JTAG은 병렬 방식으로 데이터를 전송하는 반면, SWD는 시리얼 방식으로 데이터를 전송한다.

 

* JTAG과 SWD 장단점 비교

JTAG과 SWD를 비교하면 다음과 같다.

특징 JTAG SWD
데이터 전송 방식 병렬 직렬(시리얼)
필요한 핀수 최소 4개, 보통 5개 최소 2개
지원하는 CPU 대부분의 MCU ARM 디바이스
장점 다양한 디버깅 기능 지원
병렬 방식으로 데이터 전송이 빠름
고장 분석에 유리
지원되는 CPU 종류가 많다.
필요한 핀 수가 적어 보드 공간을 적게 차지함
JTAG에 비해 저렴함
SWO 핀을 통해 디버깅 정보를 출력할 수 있음
단점 필요한 핀 수가 많아 보드 공간을 많이 차지함
SWD에 비해 비쌈
일부 디버깅 기능이 JTAG에 비해 제한적이다
병렬 방식으로 데이터 전송 시 보다 속도가 느림
고장 분석에 불리함
 

 

JTAG과 SWD는 각각 장단점이 있다. JTAG은 다양한 디버깅 기능을 지원하고 속도가 빠르지만, 필요한 핀 수가 많고 비싸다. 반면 SWD는 필요한 핀 수가 적고 저렴하지만, JTAG에 비해 지원하는 기능이 적고 속도가 상대적으로 느리다.

 

JTAG과 SWD 중 어느 인터페이스를 선택할지는 다음과 같은 요소를 고려하여 결정할 수 있다.

  • 디버깅 기능: JTAG은 SWD에 비해 다양한 디버깅 기능을 지원한다 따라서 고급 디버깅 기능이 필요한 경우 JTAG을 선택하는 것이 좋다.
  • 핀 수: SWD는 JTAG에 비해 필요한 핀 수가 적다. 따라서 보드 공간을 절약해야 하는 경우 SWD를 선택하는 것이 좋다.
  • 가격: SWD는 JTAG에 비해 비용이 저렴하다. 따라서 비용을 절감해야 하는 경우 SWD를 선택하는 것이 좋다.

 

* SWO (Serial Wire Output)

SWD에는 디버깅 정보를 시리얼로 출력할 수 있는 1핀 짜리 SWO 인터페이스가 있다. SWO는 Cortex-M0/M0+ 에서는 사용할 수 없으며, Cortex-M3/M4 에서 부터 지원된다. 

 

JTAG의 실제 테스트 속도는 최대 8Mbps를 지원하며 SWD의 실제 테스트 속도는 최대 3.2Mbps를 지원한다고 한다.

반응형

댓글