글: Lee Chee Ee / 기술부 책임자
영국 FTDI / www.ftdichip.com

많은 양의 데이터를 전송하기 위한 필요성에도 불구하고, 시장에서는 고속의 호스트 솔루션에 대한 기술 지원이 아직 부족하다. 이 글에서 언급한 회로 예제는 FT313H의 기능을 시연하고 마이크로프로세서 또는 마이크로 컨트롤러와 통합 설계를 통해 USB 기능을 시스템 설계에 쉽게 추가할 수 있음을 보여준다.

컴퓨터 기반이 아닌 하드웨어 장치에서의 USB 호스트 기능에 대한 수요가 증가하고 있다. 이러한 추세는 스마트폰과 같은 휴대용 소비자 제품에서는 물론 셋톱 박스나 게임 콘솔과 같은 가정용 오락 제품에서도 아주 흔한 일이 되고 있다. 다음의 간단한 회로는 USB 플래시 드라이브에 저장된 동영상이 준비된 모니터상에서 어떻게 재생되는가를 보여주는 예제이다. 또한 리눅스 기반 시스템에서 USB 장치의 드라이버를 지원해야 하는 어려움을 극복하여 최소한의 기술과 노력으로 서로 다른 USB 주변 기기들이 어떻게 USB 호스트 기능이 내장된 장치에 접속하는지를 자세히 보여준다.
그림 1은 동영상 재생 회로의 기본적인 구조를 보여주며 다음과 같은 하드웨어로 구성된다.


 

그림 1. USB 플래시 드라이브를 이용한 동영상 재생 회로의 기능 구성도


- TI 사의 AM3359 기반 DevKit8600 플랫폼 1개
- VGA 8000 어댑터 1개
- 연결 보드 1개
- FTDI 사의 FT313H EVM 모듈 1개
- 12 V 전원 공급 장치
- 4 포트 고속 USB 허브 1개
- USB 키보드 1개
- 미디어 재생 프로그램과 빠른 실행 스크립트를 루트 폴더에 복사 가능한 고속USB 플래시 드라이브 1개

TI 사의 AM3359는 500 MHz로 동작하며 ARM Cortex-A8 기반 32비트 RISC 코어를 가진 마이크로프로세서로서 현재의 멀티미디어 응용 분야에 사용하기에 매우 적합하다. 일반적으로 마이크로 컨트롤러 또는 마이크로프로세서를 이 글에서 언급하고 있는 분야에 적용하기 위해서는 그것과 접속된 USB 장치들과 서로 교신할 수 있도록 특별히 작성된 USB 드라이버를 필요로 한다. 이는 그러한 작업 경험이 별로 없는 기술자에게는 원치 않는 기술적인 문제를 야기하기도 하고 제품 개발 기간 또한 늘어나게 된다. 그러나, 리눅스 기반 프로세서와 통합 설계가 가능한 FT313H를 사용하면 AM3359 상의 USB 호스트 스텍에 직접 접근할 수 있다. FT313H의 기능은 USB 프로토콜을 처리하고 데이터의 흐름을 제어하는 등의 여러 작업을 수행하는데 이는 AM3359가 대량의 데이터를 처리하는데 있어 보다 근본적인 작업을 할 수 있게 도와준다. 또한 FT313H의 데이터 분리 전송 기능을 이용함으로써 AM3359가 USB 허브에 접속된 HID 클래스의 하나인 USB 키보드와 대용량 저장 클래스의 하나인 USB 플래시 드라이브에서 전송되는 데이터를 동시에 처리할 수 있다. 대용량 저장 클래스 장치들은 벌크 모드 전송이 가능하여 지속적으로 빠른 데이터 전송이 필요한 동영상 응용 분야에서는 필수적이다.
FT313H는 시스템 프로세서 버스상에 위치하여 효과적으로 통합 시스템을 구축할 수 있도록 설계되었다. 뿐만 아니라, 이것의 강력한 성능은 데이터의 대량 전송이 필요한 파일 전송 응용분야에 매우 적합한 것으로 입증되었다. USB 2.0 스펙을 준수하고 초당 480 메가 비트로 동작하는 고속의 USB 호스트 IC 를 시스템 설계에 추가함으로써 리눅스 상의 표준 USB 클래스 드라이버 지원을 통해 대용량 저장장치와 인터페이스 하여 고속의 데이터를 전송하고 더 나아가 무선 데이터 접속 장치와 연결하거나 모듈식 시스템 설계로 까지 확장할 수 있다. 또한 범용 8 또는 16 비트 버스와 NOR 플래시메모리 또는 SRAM 과의 인터페이스 기능을 지원함으로써 보드 레벨의 시스템 설계가 가능하다. 배터리 충전 탐지 기능을 지원하므로 전력 응용 분야 또는 배터리 내장 휴대용 제품 분야에 적용해서 동작 모드와 충전 모드를 구분하여 외부 하드웨어에 공급되는 전류를 제어하게 해준다.
상기 예제 회로에서 USB 플래시 드라이브와 접속된 FT313H는 데이터의 처리를 위해 AM3359 로 데이터를 전송하고 이 데이터는 AM3359 에 의해 모니터로 출력된다.
고속의 USB 호스트 IC 를 회로 설계에 추가함으로써 마이크로 컨트롤러 또는 마이크로프로세서는 USB 호스트 IC가 없인 할 수 없었던 USB 주변기기와의 접속을 할 수가 있게 된다. 시스템 자체가 리눅스 기반이어서 이미 모든 USB 클래스 드라이버를 지원하고 있기 때문에 HID 또는 USB 허브 클래스 드라이버를 개발할 필요가 없다. 또한 DMA 컨트롤러가 내장되어 있어서 시스템 버스로부터 데이터를 불러오는데 필요한 명령어만 제한적으로 사용하여 데이터를 더욱 신속하게 처리하는데 도움을 준다.
상기 예제 회로의 설치 과정은 다음과 같다. 12V 전원 공급 장치를 연결하기 전에 USB 허브를 FT313H EVM 모듈의 다운스트림 포트에 연결한 후 키보드와 플래시 드라이브를 USB 허브의 USB 포트에 연결한다. 다음으로 VGA 포트에 모니터를 연결하고 모니터의 전원을 켠다. 모니터 상에 로그인 화면이 나타날 때까지 기다린 후 키보드를 사용하여 소문자로 'root' 라고 입력하고 임베디드 리눅스에 접속한다. 다음에 키보드를 이용하여 'cd /media/sag1' (반드시 'cd' 뒤에 스페이스를 입력) 라는 명령어를 입력한다. 마지막으로 동영상을 재생하기 위해 키보드를 이용하여 './playdemo.avi' 라고 입력한다. 재생을 멈추려면 단순히 12V 전원 공급 장치의 전원을 끄면 된다.
상기 예제 회로에 적용된 데모 플랫폼은 (DevKit8600 플랫폼, VGA 플랫폼, 연결보드 그리고 EVM 모듈을 연결하기 위한 플랫폼) UMFT313EV라는 제품 번호로서 구매가 가능하다. 이를 이용하여 임베디드 시스템을 통합하여 개발하고 시제품 제작과 인증을 손쉽게 할 수 있다.
보다 많은 양의 데이터를 전송하기 위한 필요성에도 불구하고, 시장에서는 고속의 호스트 솔루션에 대한 기술 지원이 아직 부족하다. 이 글에서 언급한 회로 예제는 FT313H의 기능을 시연하고 마이크로프로세서 또는 마이크로 컨트롤러와 통합 설계를 통해 USB 기능을 시스템 설계에 쉽게 추가할 수 있음을 보여준다. 이것은 또한 리눅스 기반 시스템 설계에 있어 리눅스용 고속 USB 호스트 IC 를 적용함으로써 시스템에 내장된 마이크로 컨트롤러 또는 마이크로프로세서가 리눅스 자체의 USB 드라이버를 사용하는 시스템 운영상의 이점을 보여준다. 이것의 의미는 드라이버 개발의 난제를 피하면서 별로 복잡하지 않은 방법으로 시스템 개발이 이루어지는 것을 뜻한다.


회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지