JTAG : 핀 구성, 작동, 프로토콜 분석기, 타이밍 다이어그램 및 응용

문제를 제거하기 위해 도구를 사용해보십시오





JTAG(Joint Test Action Group)는 잘 정립된 IEEE 1149.1 표준으로 1980년에 개발되어 전자 기판 또는 프린트 배선판 . 이 기술은 테스트 액세스가 감소할 때 각 복잡한 보드에 대해 충분한 테스트 액세스를 제공하는 데 사용됩니다. 따라서 경계 스캔 기술이 출시되고 JTAG 표준 또는 JTAG 사양 설립되었습니다. 전자 장치의 복잡성이 나날이 증가함에 따라 JTAG 사양은 복잡하고 컴팩트한 전자 장치를 테스트하는 데 허용되는 테스트 형식이 되었습니다. 이 문서에서는 개요에 대해 설명합니다. JTAG 프로토콜 – 응용 프로그램 작업.


JTAG 란 무엇입니까?

IEEE 1149.1 Standard Test Access Port 및 Boundary-Scan Architecture에 부여된 이름은 JTAG(Joint Test Action Group)로 알려져 있습니다. 이 경계 스캔 아키텍처는 주로 컴퓨터 내에서 사용됩니다. 프로세서 JTAG가 있는 첫 번째 프로세서가 Intel에서 출시되었기 때문입니다. 이 IEEE 표준은 제조 절차 후에 올바르게 작동하는지 확인하기 위해 컴퓨터의 회로를 테스트하는 방법을 간단히 정의합니다. 회로 기판에서 솔더 조인트를 확인하기 위한 테스트가 수행됩니다.



  JTAG
JTAG

Joint Test Action Group은 모든 IC 패드가 있는 테스터를 위한 핀아웃 보기를 제공하여 회로 기판 내의 결함을 식별하는 데 도움을 줍니다. 이 프로토콜이 칩에 인터페이스되면 개발자가 칩과 다른 칩과의 연결을 제어할 수 있도록 하여 칩에 프로브를 연결할 수 있습니다. 공동 테스트 작업 그룹과의 인터페이스는 개발자가 전자 장치의 비휘발성 메모리에 펌웨어를 복사하는 데 사용할 수도 있습니다.

구성/핀아웃

Joint Test Action Group에는 20핀이 포함되어 있으며 각 핀과 그 기능은 아래에서 설명합니다.



  JTAG 핀아웃
JTAG 핀아웃

핀1(VTref): 1.5 ~ 5.0VDC 범위의 대상 주 전원 공급 장치에 연결하는 데 사용되는 대상 기준 전압 핀입니다.

핀2(Vsupply): 대상 1.5VDC – 5.0VDC의 주전원을 연결하는 데 사용되는 대상 전원 전압입니다.

핀3(nTRST): 이것은 TAP 컨트롤러의 상태 머신을 재설정하는 데 사용되는 테스트 재설정 핀입니다.

핀(4, 6, 8, 10, 12, 14, 16, 18 및 20): 이것은 일반적인 GND 핀입니다.

핀5(TDI): 핀의 테스트 데이터입니다. 이 데이터는 대상 장치로 이동됩니다. 이 핀은 대상 보드에 정의된 조건에서 당겨야 합니다.

핀7(TMS): 이것은 TAP 컨트롤러의 상태 머신의 다음 조건을 결정하기 위해 당겨지는 테스트 모드 상태 핀입니다.

핀9(TCK): 이것은 TAP 컨트롤러에서 내부 상태 머신 작동을 동기화하는 테스트 클록 핀입니다.

핀11(RTCK): 적응형 클러킹을 지원하는 장치에 사용되는 입력 반환 TCK 핀입니다.

핀13(TDO): 이것은 테스트 데이터 출력 핀이므로 데이터가 대상 장치에서 Flyswatter로 이동됩니다.

핀 15(nSRST): 타겟의 메인 리셋 신호에 연결되는 타겟 시스템 리셋 핀입니다.

핀 17 및 19(NC): 이것은 연결된 핀이 아닙니다.

JTAG 작업

JTAG의 원래 용도는 경계 테스트입니다. 다음은 CPU와 같은 두 개의 IC를 포함하는 간단한 인쇄 회로 기판입니다. FPGA . 일반적인 보드에는 많은 IC가 포함될 수 있습니다. 일반적으로 IC는 많은 연결로 공동으로 연결된 많은 핀을 포함합니다. 여기에서 다음 다이어그램에는 4개의 연결만 표시됩니다.

  2개의 IC가 있는 전자 보드
2개의 IC가 있는 전자 보드

따라서 모든 보드에 수천 개의 연결이 있는 많은 보드를 설계하는 경우. 그 중에는 나쁜 보드가 있습니다. 따라서 어떤 보드가 작동하고 어떤 보드가 작동하지 않는지 확인해야 합니다. 이를 위해 Joint Test Action Group이 설계되었습니다.

  전자 보드가 있는 JTAG
전자 보드가 있는 JTAG

이 프로토콜은 모든 칩의 제어 핀을 사용할 수 있지만 다음 다이어그램에서 Joint Test Action Group은 CPU의 모든 출력 핀과 FPGA의 모든 입력 핀을 만들 것입니다. 그런 다음 CPU의 핀에서 일정량의 데이터를 전송하고 FPGA에서 핀의 값을 읽어 JTAG는 PCB 보드의 연결이 정상이라고 말합니다.

실제로 Joint Test Action Group에는 4개의 논리 신호 TDI, TDO, TMS 및 TCK가 포함됩니다. 그리고 이러한 신호는 특정한 방식으로 연결되어야 합니다. 먼저 TMS와 TCK는 JTAG의 모든 IC에 병렬로 연결된다.

  TMS 및 TCK 연결
TMS 및 TCK 연결

그 후 TDI와 TDO를 모두 연결하여 체인을 형성합니다. 보시다시피 모든 JTAG 호환 IC에는 3핀이 입력이고 4핀이 출력인 JTAG에 사용되는 4핀이 포함되어 있습니다. TRST와 같은 다섯 번째 핀은 선택 사항입니다. 일반적으로 JTAG 핀은 다른 용도로 공유되지 않습니다.

  TDI와 TDO의 연결
TDI와 TDO의 연결

Joint Test Action Group을 사용하여 모든 IC는 JTAG에서 원래 원인이 생성된 경계 테스트를 활용합니다. 현재 이 프로토콜의 사용은 FPGA 구성과 같은 다양한 작업을 허용하도록 확장되었으며 그 후 JTAG는 디버깅 목적으로 FPGA 코어에서 사용됩니다.

JTAG 아키텍처

JTAG 아키텍처는 아래와 같습니다. 이 아키텍처에서 장치의 핵심 로직과 핀 사이의 모든 신호는 BSR 또는 경계 스캔 레지스터라는 직렬 스캔 경로를 통해 중단됩니다. 이 BSR에는 다양한 경계 스캔 '셀'이 포함됩니다. 일반적으로 이러한 경계 스캔 셀은 보이지 않지만 장치 핀에서 테스트 모드 내에서 값을 설정하거나 읽는 데 사용할 수 있습니다.

  JTAG 아키텍처
JTAG 아키텍처

TAP 또는 테스트 액세스 포트라고 하는 JTAG 인터페이스는 TCK, TMS, TDI, TDO 및 TRST와 같은 경계 스캔 작업을 지원하기 위해 서로 다른 신호를 사용합니다.

  • TCK 또는 테스트 클록 신호는 단순히 상태 머신의 내부 작업을 동기화합니다.
  • TMS 또는 테스트 모드 선택 신호는 다음 상태를 결정하기 위해 테스트 클록 신호의 증가 에지에서 샘플링됩니다.
  • TDI 또는 테스트 데이터 입력 신호는 그렇지 않으면 프로그래밍 논리를 테스트 장치로 이동된 데이터를 나타냅니다. 내부 상태 머신이 올바른 상태에 있으면 TCK의 증가 에지에서 샘플링됩니다.
  • TDO 또는 테스트 데이터 출력 신호는 로직을 프로그래밍하지 않는 테스트 장치의 시프트 아웃 데이터를 나타냅니다. 내부 상태 머신이 올바른 상태에 있으면 TCK의 감소 에지에서 유효합니다.
  • TRST 또는 테스트 재설정은 TAP 컨트롤러의 상태 머신을 재설정하는 데 사용되는 선택적 핀입니다.

탭 컨트롤러

JTAG 아키텍처의 테스트 액세스 포인트는 TAP 컨트롤러, 명령어 레지스터 및 테스트 데이터 레지스터로 구성됩니다. 이 컨트롤러에는 TMS 및 TCK 신호를 읽을 책임이 있는 테스트 상태 머신이 포함되어 있습니다. 여기서 데이터 i/p 핀은 IC 코어와 물리적 핀 사이의 경계 셀에 데이터를 로드하고 데이터 레지스터 중 하나 또는 명령 레지스터에 데이터를 로드하는 데 사용됩니다. 데이터 o/p 핀은 레지스터나 경계 셀에서 데이터를 읽는 데 사용됩니다.

TAP 컨트롤러의 상태 머신은 TMS에 의해 제어되고 TCK에 의해 클럭됩니다. 상태 머신은 명령 모드 및 데이터 모드와 같은 두 가지 다른 모드를 나타내기 위해 두 가지 경로를 사용합니다.

레지스터

경계 스캔에는 두 가지 종류의 레지스터가 있습니다. 모든 호환 장치에는 최소 2개 이상의 데이터 레지스터와 1개의 명령 레지스터가 포함됩니다.

명령어 레지스터

명령어 레지스터는 현재 명령어를 유지하는 데 사용됩니다. 따라서 해당 데이터는 TAP 컨트롤러에서 획득한 신호로 실행할 항목을 결정하는 데 사용됩니다. 대부분의 경우 명령어 레지스터 데이터는 데이터 레지스터 신호 중 어느 쪽으로 신호가 전달되어야 하는지 설명합니다.

데이터 레지스터

데이터 레지스터는 BSR(경계 스캔 레지스터), BYPASS 및 ID CODES 레지스터의 세 가지 유형으로 제공됩니다. 또한 다른 데이터 레지스터가 있을 수 있지만 JTAG 표준의 요소로 반드시 필요한 것은 아닙니다.

경계 스캔 레지스터(BSR)

BSR은 장치 I/O 핀에서 데이터를 이동하는 데 사용되는 주요 테스트 데이터 레지스터입니다.

우회로

바이패스는 TDI – TDO에서 데이터를 전달하는 데 사용되는 단일 비트 레지스터입니다. 따라서 회로 내의 추가 장치를 최소 오버헤드로 테스트할 수 있습니다.

ID 코드

이 유형의 데이터 레지스터에는 장치의 개정 번호와 ID 코드가 포함됩니다. 따라서 이 데이터를 통해 장치는 BSDL(Boundary Scan Description Language) 파일에 연결할 수 있습니다. 이 파일에는 장치에 대한 경계 스캔 구성 세부 정보가 포함되어 있습니다.

JTAG의 작동은 초기에 이 모드 '경로'의 상태 중 하나가 작업자가 TDI에 의한 명령 내에서 클록하도록 하는 명령 모드가 선택됩니다. 그 후 상태 머신은 재배열될 때까지 발전합니다. 대부분의 지침에 대한 다음 단계는 데이터 모드를 선택하는 것입니다. 따라서 이 모드에서는 데이터를 TDI를 통해 로드하여 TDO에서 읽습니다. TDI 및 TDO의 경우 데이터 경로는 클록된 명령에 따라 정렬됩니다. 읽기/쓰기 작업이 완료되면 상태 머신이 다시 재설정 상태로 발전합니다.

JTAG와 UART의 차이점

JTAG와 UART의 차이점은 다음과 같습니다.

JTAG

UART

'JTAG'라는 용어는 Joint Test Action Group의 약자입니다. 용어 ' UART '는 범용 비동기식 수신기/송신기를 나타냅니다.
플래시 프로그래밍을 위해 내장 하드웨어를 활용하는 동기식 인터페이스 . UART는 메모리 내에서 실행되는 부트로더를 활용하는 비동기 인터페이스입니다.
디버깅에 사용되지만 펌웨어를 프로그래밍하는 데에도 사용할 수 있는 테스트 포트 세트입니다(일반적으로 수행됨).

UART는 마이크로 컨트롤러, ROM, RAM 등과 같은 장치와의 통신을 제어하는 ​​칩 유형입니다. 대부분의 경우 직렬 연결을 통해 장치와 통신할 수 있습니다.
TDI, TDO, TCK, TMS 및 TRST의 4가지 유형으로 제공됩니다. 이들은 두 가지 유형의 벙어리 UART 및 FIFO UART에서 사용할 수 있습니다.
Joint Test Action Group은 마이크로 컨트롤러 및 관련 장치의 인터페이스에 사용되는 직렬 프로그래밍 또는 데이터 액세스 프로토콜입니다. UART는 RS-232/RS-485와 같은 비동기 직렬 스트림을 생성하기 위한 하드웨어를 제공하는 데 사용되는 마이크로 컨트롤러의 하위 구성 요소입니다.
JTAG 구성 요소는 프로세서, FPGA, CPLD , 등. UART 구성 요소는 CLK 생성기, I/O 시프트 레지스터, 전송 또는 수신 버퍼, 시스템 데이터 버스 버퍼, 읽기 또는 쓰기 제어 로직 등입니다.

JTAG 프로토콜 분석기

PGY-JTAG-EX-PD와 같은 JTAG 프로토콜 분석기는 테스트 중인 호스트와 설계 간의 통신을 캡처 및 디버그하는 몇 가지 기능을 포함하는 프로토콜 분석기의 한 종류입니다. 이 유형의 분석기는 마스터 또는 슬레이브와 같은 PGY-JTAG-EX-PD를 배열하여 JTAG 트래픽을 생성하고 디코딩 패킷의 디코딩 패킷을 디코딩함으로써 테스트 및 설계 엔지니어가 사양에 맞게 JTAG의 특정 디자인을 테스트할 수 있도록 하는 선도적인 장비입니다. 공동 테스트 작업 그룹 프로토콜.

  프로토콜 분석기
프로토콜 분석기

특징

JTAG 프로토콜 분석기의 기능은 다음과 같습니다.

  • 최대 25MH의 JTAG 주파수를 지원합니다.
  • 버스에 대한 JTAG 트래픽 및 프로토콜 디코딩을 동시에 생성합니다.
  • JTAG 마스터 기능이 있습니다.
  • 가변 JTAG 데이터 속도 및 듀티 사이클.
  • 사용자 정의 TDI 및 TCK 지연.
  • 호스트 컴퓨터 USB 2.0 또는 3.0 인터페이스.
  • 프로토콜 디코딩 내 오류 분석
  • 프로토콜 디코딩 버스 타이밍 다이어그램.
  • 대용량 버퍼를 제공하기 위해 호스트 컴퓨터로 연속 프로토콜 데이터 스트리밍.
  • 프로토콜 활동 목록.
  • 다양한 속도로 여러 데이터 프레임 생성을 결합하기 위한 연습 스크립트를 작성할 수 있습니다.

타이밍 다이어그램

그만큼 JTAG의 타이밍 다이어그램 프로토콜은 아래와 같습니다. 다음 다이어그램에서 TDO 핀은 shift-IR/shift-DR 컨트롤러 상태를 제외하고 고임피던스 상태를 유지합니다.
shift-IR 및 Shift-DR 컨트롤러 조건에서 TDO 핀은 Target을 통해 TCK의 감소 에지에서 업데이트되고 Host를 통해 TCK의 증가 에지에서 샘플링됩니다.

TDI 및 TMS 핀은 모두 Target을 통해 TCK의 증가하는 에지에서 간단히 샘플링됩니다. 감소하는 에지에서 업데이트되지 않으면 호스트를 통해 TCK됩니다.

  JTAG 타이밍 다이어그램
JTAG 타이밍 다이어그램

애플리케이션

그만큼 JTAG 애플리케이션 다음을 포함합니다.

  • Joint Test Action Group은 에뮬레이션 또는 디버그 기능에 대한 진입 권한을 제공하기 위해 프로세서에서 자주 사용됩니다.
  • 모든 CPLD 및 FPGA는 이를 인터페이스로 사용하여 프로그래밍 기능에 액세스할 수 있습니다.
  • 물리적 접근 없이 PCB 테스트에 사용
  • 보드 레벨 제조 테스트에 사용됩니다.

따라서 이것은 모든 것에 관한 것입니다. JTAG 개요 – 핀 구성, 애플리케이션 작업. 산업 표준 JTAG는 설계 검증 및 제조 후 PCB 테스트에 사용됩니다. 여기 JTAG가 의미하는 질문이 있습니다.