『(개정 4판) USB 완전정복』은 유니버설 시리얼 버스(USB, Universal Serial Bus) 인터페이스를 사용한 디바이스 설계와 프로그래밍을 시작하는 개발자를 위한 책이다. 이 책은 하드웨어 개발자, USB 디바이스에 탑재되는 펌웨어 개발자, 디바이스와 통신하는 애플리케이션 개발자 모두에게 유용한 내용을 담았다.
USB는 여러 가지 디바이스 기능을 제공하는 다재다능한 인터페이스다. 친숙한 USB 주변기기로는 마우스, 키보드, 외장형 하드디스크, 프린터, 스피커, 카메라 등이 있다. 또한 USB는 데이터 수집 장치, 제어 시스템, 독특하게 설계한 특수 목적 디바이스에도 적합하다. 개발 제품이 오류 없이 동작하고 사용자에게 짜증을 안기지 않게 설계하려면 디바이스 하드웨어, 소프트웨어 드라이버, 개발 툴, 대상 기술을 올바르게 선택해야 한다. 이 책 『(개정 4판) USB 완전정복』이 모든 궁금증을 해소해줄 것이다.---저자 서문 중에서
오늘날 USB는 PC 환경뿐 아니라 디지털 카메라, 전용 프린터, 휴대용 MP3 플레이어, USB 메모리 등 우리가 일상에서 사용하는 가전제품에서도 흔히 볼 수 있는 데이터 이동 수단으로 자리매김했다. USB 메모리 한 개쯤 항상 휴대하고 다니는 사람을 주변에서 흔히 볼 수 있는 것은 이런 사실을 방증한다. 조만간 USB 3.0을 지원하는 PC와 USB 주변 장치도 대중화될 것이며, 기존 USB 메모리와 가격이 비슷한 USB 3.0 지원 메모리가 이미 시장에 출시되고 있는 상황이다.
한편 자동차 인포테인먼트 시스템에서의 USB 사용은 앞으로 괄목할 만한 성장을 이룰 것이다. 작년부터 본격적으로 시작된 아이폰, 안드로이드폰 등 스마트폰의 열풍은 누구라도 인정하는 사실이다. 자동차에 장착된 AVN(Audio, Video, Navigation) 시스템에 이런 스마트폰을 연결해서 그 안에 저장된 각종 멀티미디어 파일과 정보를 AVN 시스템의 큰 LCD상에서 활용할 수 있게 하려는 시도는 자동차 업계와 휴대폰 업계의 중요한 현안이다. 즉, 스마트폰에 저장된 멀티미디어를 AVN 시스템상에서 재생하고, 심지어 애플리케이션까지 AVN 시스템상에서 실행할 수 있는 시대가 곧 현실화될 전망이다.
이와 같은 AVN 시스템과 스마트폰 사이의 데이터 통신 수단으로 가장 이상적인 매체가 바로 USB다. USB는 데이터 전송률이 높고 사용 중에 스마트폰을 충전할 수 있다는 큰 장점이 있기 때문이다.
USB 디바이스를 동작하게 하려면 실제 물리적인 신호를 주고받는 USB 하드웨어는 물론이고 그 하드웨어를 통해 정해진 프로토콜로 데이터를 주고받는 소프트웨어가 필요하다. 문제는 이런 USB 소프트웨어를 작성하는 일이 쉽지만은 않다는 사실이다. 물론 PC에서는 윈도우나 리눅스 운영체제가 USB 호스트 역할을 하기 때문에 우리가 신경 쓸 일이 별로 없다. 하지만 임베디드 시스템이 호스트 역할을 해야 할 경우는 문제가 심각하다. 물론 임베디드 시스템에서 사용할 수 있는 상용 USB 소프트웨어나 임베디드 리눅스가 있다. 하지만 라이선스 비용, 메모리 크기 등 여러 가지 문제로 인해 구미에 딱 맞아 떨어지는 해결책을 찾기란 쉽지가 않다. 상용 소프트웨어 제품을 사용하건 직접 개발을 하건 USB에 대한 지식이 많으면 많을수록 더 효율적으로 목적하는 바를 달성할 수 있다.
이 책은 여러분이 USB 개발에 성공적으로 첫 발을 딛게 하는 데 많은 도움을 줄 것이다. 이 책의 저자 Jan Axelson은 USB뿐 아니라 시리얼 포트 통신, 병렬 포트 통신, TCP-IP 네트워킹 등 임베디드 시스템 분야에서 주로 데이터 통신에 아주 많은 경험이 있으며, 이들 주제를 다룬 몇 권의 책도 집필한 바 있다. 이 책 또한 저자의 폭넓은 경험을 토대로 처음 USB에 접근하려는 독자에게 아주 훌륭한 출발점을 제공한다.
저자는 이 책에서 USB-IF가 정의한 분야를 골고루 다룬다. 개발자의 입장에서 USB를 설명하고 어떻게 접근해야 할지를 알려주는 책은 세계적으로 이 책밖에 없다는 점을 강조하고 싶다. 이 책은 여러분이 USB 개발을 위해 기본적으로 무엇을 알아야 하는지, 어디부터 시작해야 하는지, 좀 더 심도 있는 관련 정보를 어디에서 찾을 수 있는지, USB 장치 쪽에서는 어떤 것에 중점을 둬야 하는지, PC에서는 어떻게 해야 하는지 등을 모두 알려준다. 모쪼록 이 책이 USB 개발자에게 많은 도움이 되기를 바란다.
- 성원호 / 디오이즈 대표---감수의 글 중에서
USB는 역사상 가장 성공한 범용 인터페이스다. 첫 이니셜 U의 유니버설(Universal)이라는 단어에서 알 수 있듯이 USB는 그야말로 만능 인터페이스라고 할 수 있다.
최근 USB 관련 개발 업무는 예전에 비해 쉽다. 칩 제조사에서 거의 모든 것을 제공하기 때문이다. 따라서 『(개정 4판) USB 완전정복』 같은 상세한 개발 참고서는 필요 없다고 생각할 수도 있다. 그러나 모든 개발이 그렇듯 한 번에 잘 되는 일은 없다. 특히 장착/제거, 원인 불명의 인식 오류, 호스트 리부팅, 저전력 문제 등에 직면하면 디버깅이 어렵고 힘들다. USB는 고속인 데다가 스펙 자체가 복잡하기 때문이다. 때때로 계측기 업체나 칩 제조사의 직접적인 도움을 받을 수도 있지만 비용도 많이 들고 서드파티에게 의존한 개발만 할 수는 없는 법이다. 프로토콜 하나하나를 분석해야 할 때가 분명히 생긴다.
USB 개발을 처음 해본 개발자는 개발 시작 단계 자체가 넘기 힘든 장애물이다. USB가 만능을 목표로 한 다양한 기능의 인터페이스인 만큼 종래에 사용하던 SPI, UART 등 단순 시리얼 인터페이스에 비해 USB는 상당히 복잡한 인터페이스이기 때문이다.
『(개정 4판) USB 완전정복』은 이런 어려움을 해소할 수 있는 기본서인 동시에 활용서다. 광범위한 USB 스펙 문서를 힘들게 읽는 수고를 덜 수 있을 뿐만 아니라 개발에 필요한 모든 것을 빠짐없이 담고 있다. 모든 것을 담았다는 말은 개별 칩에 대한 특성만 제외하면 USB를 개발할 때 이 책 한 권만 있으면 된다는 뜻이다. 또한 단순히 스펙에 대한 설명을 나열한 것을 넘어서 시장에서 구할 수 있는 칩을 소개하고 예제 코드를 제공하며, 개발 시 직면할 수 있는 문제에 대한 주의 사항도 잊지 않고 거론한다.
개정 4판에서는 특히 USB 3.0, 슈퍼스피드에 대한 내용을 추가했다. USB 3.0은 최대 5Gbps 속도로 통신할 수 있는 최신 인터페이스다. 2011년은 슈퍼스피드 제품의 확산기가 될 것이다. 이미 인텔 샌디브릿지 등 최신 마더보드가 USB 3.0을 지원하기 시작했으며, USB 3.0 외장 SSD, 외장 하드디스크 등 디바이스 제품도 속속 시장에 등장 중이다.
『(개정 4판) USB 완전정복』의 저자인 Jan Axelson(www.Lvr.com)은 저수준 프로그래밍에 대한 전문가다. 번역을 하면서 전문가가 실제 개발로 경험, 체득한 내용을 바탕으로 집필한 책이라는 생각이 확연히 들었다. 그만큼 USB, 임베디드 개발자에게 도움을 줄 수 있는 책임을 확신한다.
현업에서 통상적으로 사용하는 외래어, 기술 용어가 있지만 이 책에서는 가급적 한글화한 용어를 쓰려고 애썼다. 이 분야에 관한 한 관련 전문 서적도 미미하고 변변한 용어도 정립되지 않은 실정이라 단순하게 외국어를 그대로 표기하기보다는 뜻을 살리고 현업 기술 어휘를 반영한 한글 용어로 번역하려 노력했음을 일러둔다. 용어에는 필요한 경우 영문을 병기했으므로 이해하기에 별 무리가 없을 것이다.
---옮긴이의 말 중에서