• Daum
  • |
  • 카페
  • |
  • 테이블
  • |
  • 메일
  • |
  • 카페앱 설치
 
카페정보
카페 프로필 이미지
IT관련 제품 개발 대행
 
 
 
카페 게시글
기술자료 스크랩 USB 인터페이스 장치의 설계 (전자회로설계 자료)
겨울여행 추천 0 조회 555 09.05.13 10:43 댓글 0
게시글 본문내용

USB 인터페이스 장치의 설계 (전자회로설계 자료)
원본: 강박사의 전자기술 R&D 자료센터 (전문자료제공) 2006/04/22 오후 4:41 | 기본폴더

   AD converter/Serial Parallel/SCSI/GPIB 변환장치
  USB 인터페이스 장치의 설계

 

(주)동역메카트로닉스연구소 기술분석팀 편저 B5/257P

 

PC의 주변 인터페이스로서 그 동안 serial port(RS-232C)와 parallel port(Centronics)를 주로 이용해 왔는데, 어느 것이나 전송속도가 느리다는 점과, 하나의 포트에 하나의 디바이스밖에 접속할 수 없기 때문에 여러 디바이스를 접속하기 위해서는 포트수를 증가시켜야 한다는 문제점이 있었다. 그 이외에도 키보드, 마우스, 디스플레이 등은 개별 포트를 가지고 있어서, PC의 뒷면에는 각종 커넥터로 채워져 있다. 이들의 인터페이스를 통합하여 하나의 커넥터로 각종 주변기기를 접속할 수 있도록 한 것이 USB(Universal Serial Bus)이다.
USB는 기존의 PC와 주변기기간의 인터페이스를 통합해 나가는 것을 목적으로, Compaq, Intel, Microsoft, NEC의 엔지니어들이 모여서 차세대의 주변 인터페이스에 대해 공동연구를 시작한 것이 USB 탄생의 기원이다. 게다가, DEC, IBM, Northern Telecom사가 개발에 합류하여 모두 7 회사에 의해 1995년에 0.9판의 사양서가 발행됨으로써 USB의 정체가 공개되었고, USB의 보급을 목표로 하는 추진 단체인 USB Implementers Forum도 설립되어, 가장 유력한 차세대 표준 주변 인터페이스로서 급속히 주목받게 되었다.
1996년 정식 기능 사양서인 USB1.0 버전이 공개됨과 동시에, 컨트롤러 LSI가 제품화되고, 비로소 PC에 USB를 장비할 수 있는 환경이 갖추어졌다. USB1.0 버전은 12Mbps(full speed)로 저속부터 중속분야의 어떤 특정한 기기를 대상으로 하지 않고, 각종 기기를 혼재할 수 있다. 즉, 모뎀이나 프린터 등의 종래의 주변기기뿐만 아니라, 전화나 오디오기기와 같은 가정용 멀티미디어 기기의 데이터, 음성 등을 리얼타임으로 전송할 수 있는 사양으로 되어 있다. 단, 화상 데이터의 리얼타임 전송에는 전송속도가 부족하여 멀티미디어로서는 저속용으로 한정되어 그 한계를 드러냈다. 그래서, 스캐너, 디지털카메라와 같은 화상기기나 대용량 스토리지 등, 고속의 멀티미디어용 인터페이스로는 IEEE1394 등의 다른 인터페이스와 함께 사용하는 것을 생각하게 되었으나, 1999년 10월, USB2.0이 등장함과 동시에, 480Mbps(high speed)라는 초고속 전송이 가능해짐에 따라 이러한 문제가 말끔히 해결되었다.
본서는 활용 범위가 급속히 확대되고 있는 USB 인터페이스용 응용장치를 설계하기 위한 기초적이고 실무적인 USB 타켓 디바이스 제작 기법 해설과, USB와 다른 인터페이스간의 상호 변환을 하기 위한 각종 컨트롤러 어댑터를 설계한 사례를 철저히 분석하여 연구개발 엔지니어가 여러 형태로 응용할 수 있도록, 소스와 회로도 공개, 세부적인 내용을 실무 중심으로 해설하고 있다.
더 구체적으로 살펴보면,
제1부에서는, USB 기술의 입문편으로, USB의 탄생 배경과 기본규격에 대한 해설과, USB 전용 마이크로컨트롤러를 활용하기 위한 응용사례로,  마우스, 게임패드, 키보드, 조이스틱 등의 HID(Human Interface Device)로 특화된 사이프레스사의 CY7C63000에 대해 해설한다.
이어서, 멀티채널 재생/녹음 시스템을 실현할 수 있는 텍사스 인스트루먼트(TI)사의 USB 인터페이스 접속용 오디오 데이터 컨트롤러 TUSB3200과, 내셔널세미컨덕터사의 USB 타겟 컨트롤러 USBN 9602 및 USB 인터페이스 대응 스테레오 오디오용 D-A 컨버터 PCM2702를 소개한다. 그리고 기본 설계기술로서, USB 전용 컨트롤러 CY7C63000 시리즈를 이용한 USB 키보드와 마우스의 설계 기법을 자세하게 소개한다.
또한, PC의 Windows를 이용하여 USB로 데이터 액세스를 시험해 보거나, USB에 관한 공부를 시작하는 사람을 위한 입문 tool인 Cypress사의 USB starter kit를 소개하고 사용법과 그 체험담을 소개한다.
제2부에서는 응용편으로, PC의 USB 포트를 이용하여, 기존의 다른 인터페이스 장치를 구동하기 위한 각종 컨트롤러 어댑터의 설계 사례를 알기 쉽게 철저히 해설한다.
먼저, Sony사의 Play Station(PS)용의 아날로그 컨트롤러를 사용한 예를 들어서, PS용 게임 컨트롤러와 마우스의 두 가지 기능 실현이 가능한 USB 게임 컨트롤러 어댑터 설계 사례, 고속 데이터 수집 시스템에 적합한 USB A-D 컨버터의 설계 사례, CPU를 사용한 인텔리전트 USB 패럴럴 I/O 인터페이스 어댑터의 설계 사례, USB 포트를 범용 패럴렐 포트로서 사용할 수 있는 USB- 패럴렐 I/O 보드의 설계 사례, 회로구성이 심플하고, 확장이 용이한 USB-시리얼 인터페이스(EIA-574) 통신 어댑터와 USB-SCSI 통신 어댑터 및 USB-GPIB 통신 어댑터의 설계 사례 등을, 소스와 회로도를 공개하고 자세히 해설하고 있다.

 

 더 많은 기술자료 안내                  소스 프로그램 다운로드


주요 내용

제1부(입문편): USB 규격과 기본 설계

PC와 주변기기간의 새로운 인터페이스
■ USB의 시스템 구성과 규격 해설

  • USB의 탄생과 개요,  USB의 특징, 금후의 USB 보급 전망,  USB의 학습 키트(USB 컨트롤러를 내장한 마이컴 보드의 입수, USB 컨트롤의 지식)
  • USB 시스템의 구성과 물리적 사양: USB의 구성과 커뮤니케이션의 흐름, USB의 접속 토폴러지, USB 커뮤니케이션 흐름, end-point, 파이프
  • USB 케이블과 커넥터의 구조와 사양: USB의 전기적 특성(USB의 DC 전기특성, USB의 데이터 전송속도와 AC 전기특성, 전송속도의 검출)
  • USB의 데이터 전송과 프로토콜: 데이터 전송의 개요, 파이프와 엔드포인트, USB에 있어서 데이터 처리의 흐름, USB의 전송 모드(isochronous 전송, 벌크 전송, 인터럽트 전송, 컨트롤 전송), full speed와 low speed, USB의 데이터 전송 프로토콜
  • 데이터의 전송 포맷 해설(frame, transaction, packet):
  • 패킷(packet): SOF(Start Of Frame) packet, token packet, data packet, handshake packet
  • transaction: bulk/interrupt transaction, isochronous transaction, control transaction
  • 전원제어와 USB 시스템의 구성 사례: 전원의 공급, USB 디바이스의 전원 제어, USB 시스템의 구성 사례(PC측의 구성 사례, 주변기기측의 구성 사례)
  • USB의 디바이스 드라이버와 개발 툴 및 기타: 디바이스 클래스, 개발 tool, USB hub
  • USB2.0의 개요: USB2.0의 허브, 데이터 전송, AWG(American Wire Guage)와 Twist Pair

■ USB 전용 마이크로컨트롤러의 활용

  • USB용 원칩 마이크로컴퓨터의 구조와 응용: CY7C63000 패밀리의 개요와 특징, 메모리 구성과 설정, I/O 공간의 설정, CY7C63000의 reset mode, counter, 범용 I/O 포트, Serial Interface Engine(SIE), 인터럽트, suspend와 resume
  • CY7C63000의 명령 세트, CY7C63000 패밀리용의 개발 키트 CY3650
  • 2. 멀티채널 녹음/재생용 USB 오디오 컨트롤러: TUSB3200의 개요, MCU와 DMA의 동작, CODEC port interface, TUSB3200의 응용회로
  • USB 타겟 컨트롤러 USBN 9602의 특징과 구성, CPU와의 인터페이스(non-multiplex parallel interface, multiplex parallel interface, Microwire interface)
  • DMA 전송, 컨트롤러의 동작 상태, end point, 저소비전력 모드, 레지스터, USBN 9603에 대하여, USB 인터페이스 대응
  • 스테레오 오디오용 D-A 컨버터 PCM2702의 특징, 블록다이어그램과 각 부분의 동작(OSC부 및 USB 클록 제너레이터부, SPACT부, 오디오 클록 제너레이터부, D-A 컨버터부, PCM2702의 스펙, USB 오디오 기능
  • 평가 보드 DEM-PCM2702의 기능과 특성 평가와 실측 결과

     USB 전용 컨트롤러에 의한 HID 설계 사례
■ USB 키보드와 마우스의 설계 기법

  • USB 마우스의 설계: 마우스의 구조, USB 마우스의 하드웨어(클록회로, USB 인터페이스, 포토트랜지스터/LED와의 인터페이스, 마우스 버튼의 입력회로, Cext 입력, VPP)
  • USB용 조이스틱과 키보드의 설계 사례: 조이스틱에 응용한 사례, USB 키보드의 설계 사례
  • USB의 디바이스 및 인터페이스 프로그램 사례: USB 디바이스용 프로그램, 각종 범용 I/O 포트의 사용 예, 스위치 입력을 판독하기 위한 프로그램의 예, 스위치 매트릭스의 스캔, LED의 휘도조절, 포토트랜지스터의 감도조정 프로그램의 예, 퍼텐쇼미터의 저항값 판독 프로그램의 예
  • USB와의 인터페이스 프로그램: device plug-in, bus reset, enumeration

    Cypress사 kit로 오리지널 USB 디바이스의 제작
■ USB Starter kit의 사용법과 체험

  • USB starter kit CY3640의 개요와 내용: CD-ROM, USB Thermometer 평가용 기판, PROM 라이터
  • 애플리케이션의 인스톨과 기능 설명: 인스톨 순서, 애플리케이션의 기능, 샘플 프로그램의 통신 방법, starter kit의 tool류
  • 오리지널 USB 디바이스의 제작, 키트에 부속된 샘플 프로그램의 소스, trip counter 회로의 동작, pulse counter, 시간 경과 데이터, speed pulse의 검출 루틴
  • 윈도우 애플리케이션, starter kit 사용시에 발생한 현상

제2부(응용설계편): USB 인터페이스 장치의 응용설계

    device request, descriptor의 이해
■ USB 게임 컨트롤러 어댑터의 설계

  •  USB의 디바이스 인식에 대한 기초지식: device request와 descriptor의 이해(컨트롤 전송, device request, descriptor), Human Interface Device (HID)
  • PS용 아날로그 컨트롤러: PS용 아날로그 컨트롤러의 내부 및 결선, 프로토콜에 대하여
  • 인터페이스의 구성과 하드웨어 및 개발환경: PIC-USB 컨트롤러간의 인터페이스(동기 시리얼 인터페이스, Microwire 인터페이스)
  • 마이크로컴퓨터 보드의 주변 하드웨어, PS용 컨트롤러와의 인터페이스, 프로그램의 개발 환경과 순서, 데이터 전송의 동작
  • 프로그램의 구성과 리스트 해설: 메인루틴 프로그램(PIC16F877의 초기화, USBN9602의 초기화), 인터럽트(INT 외부 인터럽트, 타이머 인터럽트, 시리얼 인터럽트)
  • 디스크립터: device descriptor, configuration descriptor, interface descriptor, HID descriptor, end point descriptor, 파이프와 엔드포인트, report descriptor
  • plug & play 동작: 컨트롤러의 설정, descriptor의 문의, PIC의 descriptor 처리
  • PS용 컨트롤러의 사용법과 디바이스 기능 변경: 디바이스의 인식, 동작 체크, PS용 에뮬레이션 소프트웨어의 실행, 마우스 기능의 실현

    8비트 마이크로컨트롤러와 USBN9602에 의한
■ USB용 A-D 컨버터의 설계

  • 설계 제작한 A-D 컨버터의 하드웨어 구성: USB 내장 마이컴 보드 UB-H8-256의 회로, UB-H8-256의 외부 접속, Bus power 사양으로 변경
  • 소프트웨어 해설과 동작 실험: 전체 프로그램의 흐름, H8/3048F 측의 프로그램 해설(메인 루틴, 파이프 1에 의한 호스트로부터 명령 데이터 전송, 커맨드의 해석, 파이프 2에 의한 호스트의 데이터 수신, A-D 변환, DMA 전송, 버스 파워, 디스크립터, configuration descriptor, end point
  • 호스트 측의 프로그램(form load, timer interrupt routine), 디바이스 드라이버, 소프트웨어의 개발, 프로그램의 실행, 동작 실험, 전송속도, 저소비전력 모드

    PIC 마이컴과 USBN9602에 의한
■ USB용 패럴렐 I/O 어댑터의 설계

  • 인텔리전트 I/O 어댑터의 개요와 하드웨어 해설: I/O 단자, 어댑터 회로, 버스 파워 사양에 대한 변경점, PC와 I/O 어댑터의 입출력 관계, 데이터 입출력의 순서
  • 프로그램 해설과 디스크립터: PIC16F877의 프로그램(메인 루틴, 파이프 1에 의한 호스트로부터 명령 데이터 전송, 파이프 2에 의한 호스트의 데이터 수신, 파이프 3에 의한 호스트로부터의 데이터 전송)
  • 디스크립터: device descriptor, configuration descriptor, interface descriptor, end point
  • 호스트 측의 프로그래밍, device driver의 내장, VB 애플리케이션의 실행, USB 케이블을 접속한 그대로 개발

     USB 내장 8비트 RISC 마이컴을 사용한
■ USB-패럴렐 I/O 보드의 설계

  • USB-패럴렐 I/O 보드의 개요와 개발 환경: 본 장치의 용도, USB의 vendor ID와 product ID
  • USB starter kit에 의한 개발 환경: Cypress사 USB starter kit의 입수, Windows용 DDK(Driver Development Kit)의 입수, C 컴파일러의 개발 환경
  • I/O 보드의 하드웨어 설계: I/O 보드를 제작하기까지의 순서(HEX 파일의 써넣기, CY7C63001의 plug-in 테스트, 부품의 실장)
  • I/O에 대한 액세스 방법(Win32API 커맨드를 이용하여 액세스, 디바이스 드라이버의 액세스 배리에이션), 동작을 체크하기 위한 시험회로(LED의 점등 상태로 I/O 출력을 체크, 각 비트에 대응한 스위치를 조작하여 I/O 입력을 체크)
  • CY7C63001의 펌웨어(펌웨어는 3개의 루틴으로 구성, 커스텀 리퀘스트와 펌웨어의 어레인지), 디바이스 드라이버(GUID(Globally Unique Identifier)
  • 애플리케이션의 사례(Rwdcy63.c 테스트 프로그램, Sample.c 테스트 프로그램) Windows 애플리케이션에 대한 응용
  • 동작 검사와 사용법: 제작과 동작 체크, 본 장치의 사용법(입력 버퍼에 데이터를 넣고 디바이스를 제어, 커스텀 리퀘스트의 이용, I/O 포트의 입력 비트를 인터럽트 라인으로 이용), 동일 VID와 PID의 디바이스 구별

    SX 마이컴과 USS-820에 의한
■ USB-시리얼 통신 어댑터의 설계

  • USB 컨트롤러 USS-820(Lucent Technologies사)의 개요와 각 기능에 대한 설명(Serial Interface Engine(SIE), Protocol Layer, FIFO 제어
  • FIFO 프로그램 기능, 송신 FIFO, 수신 FIFO, 레지스터 인터페이스, shared register bit
  • SX28AC의 해설과 하드웨어: 개발 환경, Virtual Peripheral, 메모리 관리, 하드웨어에 대하여
  • 소프트웨어 구성과 프로그래밍 기법: SX28의 프로그래밍(메인루프 처리, 인터럽트 처리, 셋업 처리, GET DESCRIPTOR 처리, 엔드포인트 2 처리
  • 호스트측의 프로그램 개발: 디바이스 드라이버 설계 도구의 사용, 소스의 실장과 드라이버의 생성, 실험용 윈도우 애플리케이션
  • 사용법과 평가: EIA-574 호스트측의 준비, USB 호스트측의 준비, 통신의 실행, 통신의 종료

SX 마이컴과 NET2890에 의한
■ USB-SCSI 어댑터의 설계

  • 시스템 구성과 하드웨어 해설: 개발 동기와 시스템 구성, USB 컨트롤러 NET2890의 아키텍처, 원칩 마이컴 SX28의 개발 환경, SCSl 인터페이스에 대하여, USB-SCSI 어댑터의 하드웨어
  • 펌웨어와 소프트웨어 해설: 어댑터의 펌웨어(데이터 형식, USB의 처리, SCSI의 처리), 호스트 컴퓨터측의 소프트웨어(USB 드라이버를 만드는 방법과 내장, USB 조작용 DLL을 만드는 방법)
  • 사용법과 평가: 디벅의 준비, 드라이버의 인스톨, SX28의 디벅, SCSI 테스트의 준비, VB로부터의 사용법

SX 마이컴과 NET2890에 의한
■ USB-GPIB 어댑터의 설계

  • GPIB의 기초지식과 하드웨어 해설: GPIB의 핸드세이크, GPIB의 커맨드 모드, GPIB의 관리 버스, USB-GPIB 어댑터의 하드웨어
  • 펌웨어와 소프트웨어 해설 및 사용법: 어댑터의 펌웨어, USB의 처리, GPIB의 처리, 호스트 컴퓨터측의 소프트웨어(USB 드라이버를 만드는 방법과 내장, USB 조작용 DLL을 만드는 방법
  • 사용법과 평가: GPIB 테스트의 준비, VB로부터의 사용법

 더 많은 기술자료 안내                  소스 프로그램 다운로드


국제테크노정보연구소 기술자료 출판부

 
다음검색
댓글
최신목록