[통신]

JTAG 이란? (TDI, TDO, TMS, TCK)

Neo Park 2012. 5. 1. 14:26

 

Embedded System에서 작업을 하다보면 굉장히 자주 접하게 되는 단어가 있다.

Program을 Download할 때나, Debugging을 할 때 항상 찾게 되는 녀석이며, Board의 CPU( 혹은 MCU )에 따라 다른 것을 사용하기도 한다.


요즘 출시되는 상용( 범용 ) Board에는 주로 JTAG이 내장되서 출시된다.


 

■ JTAG이란?

Joint Test Action Group의 약자로, Embedded System 개발 시에 사용되는 Debugging 장비이다.

정확한 개념은 IEEE 1149.1 Standard Test Access Port and Boundary-Scan Architecture 이다.

초기에는 단순히 Boundary-Scan을 위해 제작한 PCB를 의미했으나, 최근에는 더 많은 통합적인 기능을 제공한다.


유래는 80년대에 Joint European Test Access Group이란 단체에서 다층기판 보드( Multi-Printed Board )의

안정적인 테스트 방식을 대체하고 비용을 절감하기 Boundary-Scan이라는 개념을 도입해서 탄생했다.


대중적으로는 JTAG 대신 Boundary-Scan이라는 단어가 많이 사용되어 지고 있다.


 

■ JTAG 원리

우선 JTAG의 Interface는 크게 5가지( 혹은 4개 )의 Pin으로 구성되어 있다.

TDI( Test Data In ), TDO( Test Data Out ), TCK( Test Clock ), TMS( Test Mode Select ), TRST( Test Reset )

( 이 중, TRST( Test Reset )은 추가적인 기능으로 일부 JTAG에는 포함이 되어 있지 않는 경우도 있다. )


JTAG은 Chip 내부에 Boundary Cell을 만들어 외부의 Pin과 일 대 일로 연결되며,

Process의 상태에 상관 없이 Boundary Cell을 통해 Process의 상태, Register 등을 읽고 수정할 수 있다.


또한, Embedded System의 NAND/NOR Flash( 주로 ROM이나 Code 영역을 포함하는 Flash Memory 등 )에

내용을 기록하거나 읽을 수 있는 기능을 가지고 있어, Boot Loader를 Download 하거나 Firmware를 올릴 수 있다.

( 즉, Embedded System의 다른 Chip을 제어할 수 있는 기능( EXTEST )을 포함하기도 한다. )



JTAG의 주요 특징은 CPU의 상태와는 상관없이 Device의 외부 Pin을 수정하거나 읽을 수 있다는 점이다.




위의 그림을 참고하면, TMS, TCK, TDI, TDO가 각각의 Device들과 연결이 되어있다. ( TRST은 생략된 그림이다. )

즉, 각각의 Device의 외부 Pin과 위에서 설명한 JTAG의 5가지 Pin이 연결 되어있어 읽고 쓰기가 가능한 것이다.

JTAG Lines( Boundary Scan Cell과 Device간의 연결 )는 Daisy-Chained 형식으로 연결되어 있다.

오직 하나의 Data Line씩만 사용 가능하므로, Serial Protocol을 사용하며, 동작속도는 주로 10-100MHz( 100-10 ns/bit )이다.

JTAG Lines에 의해 연결된 지점을 TAP( Test Access Point )라 하며, TAP이 현재의 상태를 표현해준다.( TAB State )

 

[참조] http://blog.naver.com/dong880510?Redirect=Log&logNo=140156981611