USB(universal serial bus) 인터페이스는 전자 산업에서 가장 성공적인 통신 표준의 하나이다. USB는 호스트 디바이스에 대한 연결을 필요로 하는 많은 산업용 및 소비가전 애플리케이션의 표준 통신 인터페이스로 자리잡았다. 또 USB는 매우 편리하게 사용할 수 있고 견고해서 많은 임베디드 애플리케이션을 위한 인터페이스로 이상적인 선택이다. 

그러나 USB 구현은 임베디드 설계자에게 USB 프로토콜 전문지식과 시간이 많이 드는 소프트웨어 및 펌웨어 개발 작업을 요구한다. 뿐만 아니라 임베디드 애플리케이션 설계자는 매우 비용 효율적인 최종 솔루션을 제공하라는 요구에 직면한다. 

이를 달성하는 가장 단순한 방법은 USB 기능을 다른 주변장치 및 메모리와 함께 마이크로컨트롤러(MCU)에 통합하는 것이다. 현재 많은 MCU 제조업체들이 USB 기반 마이크로컨트롤러를 제공하고 있지만 애플리케이션에 필요한 정확한 주변장치 세트는 제공하지 않는 경우가 많다. 따라서 외부 부품이 필요하고 설계 복잡성은 증가된다. 이와 달리 USB 전문지식이나 펌웨어 개발 없이 USB를 임베디드 솔루션에 쉽게 추가함으로써 설계자가 보다 신속하게 제품을 출시할 수 있는 간편한 방법이 있다.

전형적인 USB-to-UART 브리지

USB 설계 과제

USB의 손쉬운 사용과 견고성은 임베디드 설계자에게 무상으로 주어지지 않는다. 개발자는 USB 프로토콜을 학습하고 USB 스택을 개발하는 데 많은 시간을 들여야 한다. 여기에는 전문적인 툴이 요구되기 때문에 개발 비용과 시간을 증가시킬 수 있다. 

상용으로 구입할 수 있는 USB 소프트웨어 스택이 나와 있지만, 이를 활용하려면 비용이 추가되고 학습이 필요하다. 

또 다른 중요한 USB 설계 과제는 최종 제품이 여러 일반적인 운영 시스템(OS)과 호환되어야 하며 지속적인 OS 업데이트에 맞춰 갱신을 해줘야 한다는 점이다. 비용 효율적인 최종 제품을 제공하려면 개발자는 USB 하드웨어 비용을 최소로 유지해야 한다. 많은 USB IC는 USB 기능을 제공하기 위해 종단 저항이나 정밀 발진기와 같은 외부 부품을 필요로 한다. 하지만 첨단 소프트웨어와 툴 지원을 제공하는 고도로 통합된 USB 솔루션은 USB 설계를 단순화하는 발판이 된다.

해결책은 턴키 USB 커넥티비티 솔루션

실리콘랩스의 USBXpress 브리지 디바이스 같은 턴키 USB 솔루션은 통합 수준이 매우 높기 때문에 복잡한 펌웨어와 드라이버 개발이 필요 없다. 또한 첨단 툴이 지원되는 USB 디바이스는 개발 시간을 단축시키고 USB 커넥티비티를 더욱 간소화한다. 

고도로 통합된 USB 브리지 디바이스는 사실상 모든 MCU 기반 솔루션에 추가할 수 있으며, 펌웨어 복잡성을 제거하고 개발 시간을 줄여준다. 이들 디바이스는 대부분의 MCU에서 곧바로 사용할 수 있는 표준 UART, SPI 또는 I2C 인터페이스 사용을 통해 USB 세계로 건너갈 수 있게 해주는 다리처럼 동작한다. 

브리지 디바이스는 개발자가 레거시 시스템을 USB 통신으로 업그레이드할 때 특히 유용하다. 대부분의 레거시 설계는 호스트 시스템과 통신하는 특정 수단을 갖는데, 많은 경우 UART 또는 I2C 인터페이스를 사용한다. 그림 1에서 보듯이 이 경우 USB-to-UART 또는 USB-to-I2C 브리지 디바이스가 최선의 선택이다.

고도로 통합된 USB 브리지를 사용하면 외브 크리스털, 레귤레이터 및 메모리가 불필요하다.

USB 통합을 매끄럽게 하려면 임베디드 설계자는 USB 브리지 디바이스를 선택할 때 다음과 같은 다양한 요소를 고려해야 한다. 

첫째, 주어진 예산에 영향을 미치기 쉬운 하드웨어 설계 비용을 최소화하는 것이 중요하다. 대부분의 USB 브리지나 MCU는 USB 기능을 위해 수정 발진기나 종단 저항과 같은 외부 부품을 필요로 한다. 고도로 통합된 브리지 디바이스를 선택하면 외부 부품을 사용할 필요가 없어(그림 2) 하드웨어 설계 시간과 비용을 줄일 수 있다. 

풀 스피드 기능을 위해 USB 디바이스는 48MHz 클록 입력을 필요로 한다. 정확한 48MHz 클록을 발생할 수 있는 클록을 내장한 USB 디바이스를 선택하면 외부 크리스털을 사용할 필요가 없다. 클록 복구 회로 역시 중요한 고려 사항이다. 

USB 규격은 고도로 정확한 내부 클록을 필요로 한다. 그러나 대부분의 경우 내부 클록의 주파수 정확도는 달라질 수 있다. 클록 복구 회로는 수신되는 USB 데이터 스트림을 사용하여 내부 발진기를 조정함으로써, 내부 발진기가 USB 클록 허용오차 요건을 만족할 수 있게 해준다. 이 같이 새로운 클록 복구 시스템을 사용하는 디바이스는 외부 크리스털 발진기를 사용하지 않아도 되므로 비용을 줄일 수 있다.

임베디드 애플리케이션에 USB를 추가하여 얻을 수 있는 주요 장점 중 하나는 디바이스에 전력을 공급할 수 있다는 점이다. 배터리 구동 디바이스는 USB 디바이스가 호스트에 연결되어 있는 동안 버스를 통해 구동되므로 배터리 수명을 극대화할 수 있다. 이를 위해서는 5V(호스트)에서 3.3V로 전압을 떨어뜨리기 위해 저전압 강하(LDO) 또는 전압 레귤레이터가 필요하다. 또 트랜시버와 온-칩 정합 및 풀업 저항을 통합한 USB 기능 컨트롤러 사용이 필수다. 여기에 적절한 USB 라인 종단을 위한 종단 저항과 USB 직접 연결을 위한 5V 레귤레이터까지 통합함으로써 인쇄회로기판(PCB)의 크기를 더욱 줄일 수 있게 해준다. 

이 외에도 GPIO 제어 기능과 클록 출력 기능을 제공하는 USB 브리지는 설계에 유연성을 추가하고 개발 시간을 단축시킨다. 브리지 디바이스에서 고려할 수 있는 다른 매력적인 특징은 광범위한 애플리케이션에 맞춰 다양한 보오 레이트(baud rate)를 지원하는 유연성이다. 

몇몇 최신 USB 브리지 디바이스는 향상된 기능으로 PCB 공간을 더욱 절약한다. 일례로 실리콘랩스의 CP2102N 디바이스는 연결된 차저 유형을 검출하는 배터리 차저 검출 기능과 대기 중인 호스트를 깨우는 원격 웨이크업 기능을 통합하고 있다. 

이 디바이스는 이러한 첨단 기능을 칩에 통합함으로써 임베디드 설계의 유연성을 향상시키고 전체 시스템 비용을 절감한다. 

끝으로, 설계자는 USB 영역을 최소화하여 공간 제약이 큰 휴대용 애플리케이션의 폼팩터와 인체공학적 요구사항을 만족해야 한다. 일부 레거시 애플리케이션은 USB 커넥티비티를 지원하도록 애플리케이션을 업그레이드할 때 물리적 크기는 그 전 설계와 같은 수준으로 유지해야 할 필요가 있다. 이러한 경우 소형 패키지를 제공하는 USB 브리지를 선택하면 PCB 풋프린트를 줄이고 솔루션을 RS-232 커넥터보다 작은 면적으로 구현할 수 있어 이러한 제약을 극복할 수 있다.

USB 브리지 구성을 위한 향상된 툴 GUI의 예

첨단 툴을 이용한 USB 개발 가속화

비용을 절감하고 하드웨어 설계 시간을 줄일 수 있는 USB 브리지를 선택하는 데 있어서 결정적 요소는 무엇보다 높은 통합성이지만, 적합한 브리지를 선택하려면 소프트웨어와 툴 세트 역시 똑같이 중요하게 고려해야 한다. 사용자는 USB를 완벽한 플러그-앤-플레이 인터페이스로 본다. USB가 UART, SPI 또는 I2C 같은 다른 직렬 인터페이스처럼 단순해 보이는 것은 사실이지만, USB 프로토콜은 구현하기가 간단하지 않다.

이처럼 겉으로 드러나지 않는 USB 프로토콜 및 펌웨어 개발의 복잡성은 턴키 고정 기능 USB 브리지 디바이스를 사용하여 해결할 수 있다. 이들 디바이스는 설계자가 방대한 USB 전문지식이나 펌웨어 개발 필요 없이 USB 시스템을 개발할 수 있게 해준다. 

고정 기능 디바이스를 사용하는 경우에는 코드 개발이 불필요하지만, 설계자는 여전히 구체적 설계에 맞추기 위해서나 시장에서 설계를 차별화하기 위해 여러가지 구성 옵션을 필요로 한다. 각각의 USB 브리지 디바이스는 사용자가 구성할 수 있는 많은 옵션을 제공하며, 이러한 옵션을 이용해 디바이스가 호스트 머신에 어떻게 보이도록 할지에서부터 인터페이스 및 핀 설정 같은 전문적인 디바이스 옵션에 이르기까지 광범위한 디바이스 특성을 결정할 수 있게 해준다. 따라서 선택하는 USB 브리지 디바이스가 구성 옵션을 제공하는지 최종 제품의 차별화를 위해 손쉬운 맞춤화가 가능한 첨단 툴을 제공하는지 반드시 확인해야 한다. 

실리콘랩스의 Xpress 컨피규레이터(그림 4)는 USB 구성을 간소화하도록 설계된 툴이다. 직관적인 GUI에 기반한 이 컨피규레이터는 USB 고정 기능 디바이스를 손쉽게 맞춤화하고 프로그래밍할 수 있게 한다. 제조사 ID(VID), 제품 ID(PID), 디바이스 스트링, USB 전원 모드와 같은 공통적인 USB 속성은 GUI를 사용하여 쉽게 설정할 수 있다. GPIO, 인터페이스 옵션, 모뎀 신호와 같은 향상된 기능 역시 단 몇 번의 클릭으로 설정이 가능하다.

이 밖에 GUI에서 문제/경보 뷰가 제공되기 때문에 각 USB 속성을 설정할 때 개발자를 안내함으로써 USB 맞춤화를 위한 리스크 없는 보다 안전한 환경을 제공한다. 원하는 최종 설정은 단일 버튼을 사용하여 프로그래밍할 수 있으므로 턴키 디바이스를 사용하는 데 코드를 작성할 필요가 전혀 없다. 

개발자는 최종 설정을 이용해 수천 개의 PCB와 디바이스를 프로그래밍할 수 있는 적절한 툴 세트를 갖고 있지 못한 경우가 대부분이다. 이러한 경우 공장 프로그래밍을 제공하는 USB 디바이스 제조사를 선택하면 프로그래밍 시간을 크게 절약할 수 있어 매우 유용하다. 

장치 관리자에서 COM 포트로 인식되는 가상 COM 포트(VCP) USB 브리지

소프트웨어 드라이버의 중요성

USB 디바이스는 모든 운영 시스템에서 매끄럽게 동작할 것으로 기대된다. 이러한 목표를 달성하려면 개발자는 호스트 드라이버를 생성해야 하지만, 이는 간단한 작업이 아니다. USB 드라이버 개발은 전문지식과 최적의 동작을 위한 많은 테스트를 필요로 한다. 

시스템에서 원활한 USB 연결을 달성하려면 인증을 획득한 견고한 드라이버를 제공하는 USB 디바이스를 선택하는 것이 필수적이다. 일부 제조사는 디바이스를 PC의 애플리케이션 소프트웨어에 COM 포트로 나타나게 할 수 있는 가상 COM 포트(VCP) 디바이스 드라이버(그림 5)를 제공한다. 이것은 특히 레거시 직렬 디바이스를 USB로 업데이트할 때 유용하다. VCP 드라이버를 사용하면 PC 소프트웨어가 디바이스를 COM 포트로 인식하므로 실제로 애플리케이션을 수정하지 않아도 USB를 통한 데이터 전송에 기존 COM 포트 애플리케이션을 사용할 수 있다. 

몇몇 USB 디바이스 제조사는 설계자를 위한 플러그-앤-플레이 기능을 더욱 간소화하고 향상시키기 위해 규격을 완벽하게 준수하는 혁신적인 USB-HID 브리지를 제공한다. 이러한 디바이스는 대부분의 운영 시스템에 의해 지원되는 USB-HID 클래스를 지원하므로 드라이버를 설치하거나 개발할 필요가 없다. HID-USB 디바이스의 가장 대표적인 예는 컴퓨터 키보드와 마우스이다. 또한 HID-USB 클래스는 매우 다양한 종류의 USB 설계를 수용할 수 있을 만큼 충분히 유연하다.

결론

USB 브리지와 턴키 USB 솔루션은 기존의 또는 새로운 비-USB 시스템에 USB 커넥티비티를 추가하는 손쉽고 경제적인 방법을 제공한다. 이러한 솔루션은 통합 수준이 매우 높아 PCB 면적과 BOM 비용을 줄여주므로 공간 제약적이고 비용에 민감한 애플리케이션에 이상적이다. 또한 단순성과 턴키 특성으로 USB 전문지식이나 펌웨어 개발이 불필요해 최종 제품을 보다 신속하게 출시할 수 있다.

첨단 USB 구성 툴과 인증을 획득한 견고한 드라이버 패키지는 개발자가 애플리케이션을 차별화하고 대부분의 운영 시스템과 매끄럽게 호환될 수 있게 한다. USB는 사용자뿐 아니라 설계자에게도 쉬워야 한다. 적합한 USB 브리지 디바이스를 선택한다면 차세대 임베디드 설계에 USB 커넥티비티를 손쉽게 추가할 수 있을 것이다.

글 : 람야 코타(Ramya Kota), 마이크로컨트롤러 제품 매니저, 실리콘랩스(Silicon Labs)
자료제공 : 실리콘랩스<www.silabs.com>

이 기사를 공유합니다
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지