한국어
Embedded
 

통신 USB OTG 기술의 개념

pjk 2014.11.03 15:43 조회 수 : 16121

USB(Universal Serial Bus) 인터페이스는 PC와 주변기기간의 연결을 좀더 빠르고 편리하게, 그리고 더욱 많은 기기를 연결할 수 있도록 만들어 왔다. 현재 주위만 보더라도 많은 장치들이 USB 인터페이스를 가지고 있음을 볼 수 있다. 프린터, 스캐너, 외장형 하드디스크, mp3 플레이어, 디지털 카메라 등의 기기들은 거의 대부분이 USB 인터페이스를 지원하고 있다. 또 480Mbps라는 꽤 괜찮은 속도를 가진 USB 2.0의 등장으로 이런 흐름은 더욱 가속화될 것으로 생각된다.
세계에는 약 13억 개 이상의 USB 장치가 있다고 한다. 그러나 이렇게 널리 쓰이고 있는 USB 기술이라도 취약점이 하나 있는데, 반드시 호스트로 동작하는 PC가 있어야 된다는 점이다. 호스트-주변기기(Host-Peripheral) 개념으로 성립되는 USB 기술은 중심 역할을 하는 PC가 사라져 버린다면 사실상 어떻게 할 수가 없는 것이다.
바로 이러한 약점을 보완하기 위해서 USB On-The-Go(이하 OTG) 기술이 추가되었다. USB OTG 기술의 등장으로 인해 USB 주변기기만으로 서로 연결할 수 있게 됐으며 USB 인터페이스를 좀더 많은 분야에 적용할 수 있는 가능성이 열리게 된 것이다. 즉 mp3 플레이어와 외장형 하드디스크를 연결해 서로 데이터를 주고받을 수 있으며, 핸드폰과 PDA를 연결해 무선 인터넷을 이용할 수 있게 되며, 디지털 카메라와 포토 프린터를 연결해 찍은 사진을 곧바로 출력할 수 있게 되는 것이다

 

USB OTG 기술의 개념

이전까지 USB는 PC에 주변기기가 연결되는 호스트-주변기기 개념에서 출발하였다. 새롭고 편리한 인터페이스로서 USB는 활동 범위를 계속 넓혀 나갔고 시간이 갈수록 USB 인터페이스를 채택한 수많은 제품들이 나오게 되었다. 이렇게 USB 인터페이스가 전 세계의 공통적인 인터페이스로 자리잡아 가면서 USB 주변기기 간의 연결에 대한 필요성이 점점 커지게 되었다.

 

예를 들어 PDA를 이용할 경우 여러 주변 장치들의 도움을 받고 싶을 때가 있다. 워드 작업을 위해 키보드를 달고 싶을 때도 있을 것이고, 외장형 하드디스크를 달아서 필요한 데이터를 전송하고도 싶을 것이다. 이전까지 이런 경우 각 회사에서는 독자적인 인터페이스를 만들어 이 장치들과 의사소통할 수 있도록 만들어 주었다. 그렇지만 꼭 동일 회사의 제품만 써야 했으며, 보편적인 USB 인터페이스는 사용하지 못하게 된다.
하지만 대부분의 PDA에 USB 인터페이스를 사용하게 된다면 어떻게 될까? 현재 시중에 나와서 PC에 연결할 수 있는 USB 키보드는 모두 PDA에 연결할 수 있으며, 당연히 외장형 하드디스크도 연결해 데이터를 주고받을 수 있을 것이다. 이러한 일들을 USB OTG 기술이 가능하게 해주는 것이다.
IEEE 1394는 P2P(Peer-to-Peer) 개념에서 성립되었으므로 사실 임베디드 기기간의 연결성에 있어서는 USB보다는 훨씬 더 유리한 위치를 가지고 있다. 홈 네트워킹을 배경으로 IEEE 1394는 더욱 많은 주목을 받게 되었고, 비숙련 사용자라도 편리한 설치와 조작으로 높은 속도의 인터페이스를 사용할 수 있다. 또한 PC 주변기기 인터페이스에서도 IEEE 1394를 지원하는 기기들은 점점 늘어나고 있는 추세이며 USB와 더불어 앞으로의 발전 가능성이 큰 유망한 기대주이다. <표 1>은 두 인터페이스 기술의 차이를 일목요연하게 보여주고 있다.

 

 

<표1>USB와 IEEE 1394의 비교
  USB IEEE 1394
Topology  호스트-주변기기 peer-to-peer
주변기기 지원 1호스트에 127개 디바이스 지원 동일한 네트워크에 63개의 디바이스 지원,
1024네트워크까지 가능(64000개 이상의 네트워크)
최대 대역폭 USB 1.1 : 12Mb/s
USB 2.0 : 480Mb/s
1394a-2000 : 400Mb/s
1394b : 800~3200Mb/s
버스 중재
(Bus Arbitation)
호스트에 의해 중재 모든 디바이스가 공평한 위치에서 액세스
핫 플러그인 기능 O O
인터페이스 디지털 디지털
전송모드 control, bulk, isochronous, interrupt asynchronous, isochronous
보안성 - DTCP(Data Trabsmission Content Protection)

 

OTG 기술은 USB 진영이 IEEE 1394를 견제하면서 나온 듯하다. 이는 호스트-주변기기 개념에서 성립되어 있는 USB 관련 장치를 P2P 개념으로까지 확장해 차세대 임베디드 기기의 인터페이스까지 소화하기 위한 것이다. IEEE 1394에서 가능했던 기술을 USB에서도 가능할 수 있게 만들었기 때문에 두 기술간의 경쟁이 어떻게 진행되어 나갈지 지켜보는 것도 흥미로운 일이 될 것이다

 

 

[ USB OTG와 블루투스의 비교 ]

현재 PDA와 이동형 하드디스크가 블루투스 통신을 이용해 서로 데이터를 주고받는 제품이 소개되었는데, 무선이라는 점에서 블루투스가 강점으로 작용한다. 그러나 이 제품에 USB OTG를 적용하게 된다면 훨씬 빠르고 싼 값에 제품을 구현할 수 있게 된다. 잘 생각해보면 임베디드 기기가 항상 그렇게 연결될 필요가 있는 것은 별로 없다. 필요할 때 선을 연결해서 자료를 다운로드하고 업로드하면 되는 것이지 무선을 이용해서 계속 데이터를 주고받을 필요는 없는 것이다.
호 환성 문제도 간과할 수 없다. 현재 USB 디바이스에 비해 상대적으로 블루투스 디바이스는 별로 없다. 비록 무선이라 편리하기는 하지만 현재 많은 사람들이 사용하고 있는 13억 개의 디바이스와 통신하려면 어느 것이 좋겠는가. 이런 점에서 볼 때도 USB OTG는 블루투스보다 임베디드 시스템에 적용하는 데 유리하다.

 

USB OTG의 특징

USB 커넥터와 케이블에 대한 새로운 표준안
모바일 기기도 호스트의 기능을 가질 수 있기 때문에 USB OTG 포럼에서는 이전의 USB 커넥터에 없었던 A 타입의 작은 플러그를 추가로 채택했다. <그림 2>에서 보는 것처럼 미니(mini)-A 타입인데, 이를 수용하기 위해 미니-A 타입의 리셉터클(receptacle)도 추가됐다.

0305-355.jpg

 

<그림 2> USB OTG에 새로 추가된 커넥터

 

 

미니-A 타입의 커넥터는 <그림 3>과 같이 계란형으로, 기존의 사각형이던 미니-B 타입의 커넥터와 구분된다

 

<그림 3>미니 타입의 플러그

0305-355(1).jpg
미니 A타입 플러그

 

0305-355(2).jpg

미니 B타입 플러그

 

 

이와 함께 호스트와 주변기기의 역할을 서로 바꿀 수 있는 듀얼-롤 디바이스(Dual-role Device) 기능도 추가됐는데, 케이블을 바꿔 끼우지 않아도 HNP(Host Negotiation Protocol)를 이용해 서로의 역할을 바꿀 수 있다. 물론 미니-AB 타입의 리셉터클도 추가됐다. 또한 플러그와 리셉터클 모두 미니-A 타입은 흰색, 미니-B 타입은 검은색, 미니-AB 타입은 회색으로 규정함으로써 사용자가 좀더 간편하게 사용할 수 있도록 배려하였다.

 

제한된 호스트 기능의 추가

PC의 주변기기로 작동하던 디바이스가 OTG 기능을 가진다면 그 주변기기가 호스트로서 작동할 수 있는 기회를 가지게 된다. 예를 들면 이전의 mp3 플레이어는 모두 PC와 연결되어 곡을 업로드, 다운로드할 수 있었다. 하지만 이 mp3 플레이이가 OTG 기능을 가진다면 PC가 아닌 플래시 메모리 카드 리더기 혹은 이동형 하드디스크와 연결돼 곡을 업로드ㆍ다운로드할 수 있는 기능을 지닐 수 있는 것이다.
그렇지만 mp3 플레이어가 이전의 PC와는 다르게 플래시 메모리 카드 리더기 혹은 이동형 하드디스크에 전원을 공급해줄 수 있는 능력은 지니지 못하게 된다. mp3 플레이어 자체도 그 자신만 감당하기 위해 설계된 배터리를 쓰기 때문이고 다른 주변기기까지 전원을 공급해줄 수 있을지는 보장된 것이 아니기 때문이다. 그래서 제한된 호스트의 기능을 가지게 되는데, PC와 호스트 기능을 비교하면 <표 2>와 같다.

 

 

 <표2> OTG 기기와 PC의 호스트 성능 비교
  OTG기기 일반PC
전류공급 VBUS에 최소한 8mA공급 필요 VBUS에 100mA 또는 500mA 공급
지원 디바이스 '지원 주변기기 리스트'에 있는 디바이스만 지원 드라이버가 있는 모든 디바이스 지원
로딩 메커니즘 여러 개의 디바이스 드라이버 로딩 메커니즘 여러 개의 디바이스 드라이버 로딩 메커니즘 있음
저장 공간 제한된 공간에 드라이버 적재 제한되지 않은 공간에 드라이버 적재

 

또한 OTG 주변기기는 모든 USB 주변기기와의 연결을 지원할 필요는 없다. OTG 제품의 생산자는 그 제품이 어떤 OTG 기기를 지원할 것인지 결정해야 하고 지원되는 USB 주변기기들의 목록을 만들어야 되는데 이를 ‘지원 주변기기 리스트(Targeted Peripheral List)’라고 한다. 여기에는 지원 디바이스의 이름, 생산자, 디바이스의 타입, 모델 넘버 등의 정보가 들어가게 되며, 이 목록으로 어떤 OS가 있는지, 어떤 특정한 제품군의 USB 기기에 적용할 수 있는지 알 수 있게 된다.

 

  듀얼-롤 디바이스 개념 추가

USB OTG에서는 이전의 주변기기와는 다른 새로운 개념의 디바이스가 등장할 수 있다. 바로 듀얼-롤 디바이스인데, 이는 한 주변기기가 호스트와 주변기기의 역할을 모두 하는 것을 일컫는다. 지금까지 USB 케이블은 신호를 전송하는 D+, D-선과 파워를 전송하는 VBUS, 그리고 접지선인 GND로 구성되어 있었다. 그러나 OTG 기술이 소개되면서 한 가지 문제점이 발생했는데, 두 개의 듀얼-롤 디바이스가 있다면 어느 쪽이 호스트의 역할을 하게 되고, 어느 쪽이 주변기기의 역할을 하게 되는지를 정하는 것이 필요하다. USB OTG에서는 이 역할을 케이블에 맡긴 것이다.
다음의 기능과 특성을 가지고 있는 디바이스를 듀얼-롤 디바이스라고 한다

◆ 제한된 호스트의 기능
◆ 주변기기로서의 풀 스피드 동작 (하이 스피드 동작은 옵션)
◆ 호스트로서의 풀 스피드 동작 (로우 스피드, 하이 스피드 동작은 옵션)
◆ 지원 주변기기 리스트 소유
◆ SRP
◆ HNP
◆ 오직 하나의 미니-AB 리셉터클 소유
◆ VBUS에 최소 8mA 이상의 전류 공급

현재의 선 구성을 본다면 호스트와 주변기기 역할을 구분하기 위해 ID선이 추가되었는데, 이 선의 상태에 따라 역할이 결정되는 것이다(< 그림 4>).
 
<그림 4> OTG 관련 케이블의 내부 구성
0305-356(1).jpg

 

만일 ID선이 GND와 연결되어 있다면 이 방향의 주변기기는 처음부터 자신을 호스트로 셋팅하게 되고, ID선이 플로팅(floating : 연결되어 있지 않음)되어 있다면 처음부터 자신을 주변기기로 셋팅하게 되는 것이다.
그 렇다면 호스트와 주변기기 관계를 바꾸려면 어떻게 해야 할까? 간단히 케이블을 바꿔 끼우면 된다고 말할 것이다. 하지만 게으른(?) USB OTG 개발진들은 케이블을 바꿔 끼우는 수고도 하기 싫은지 HNP를 만들어 굳이 케이블을 바꾸지 않아도 역할 전환을 할 수 있도록 하였다.
HNP는 두 디바이스 중에서 누가 호스트가 되는지 협상을 벌이는 것이다. 이 경우 두 디바이스는 반드시 듀얼-롤 디바이스여야 하며, 각 상태에 따라 결과가 나오는 상태 머신(state machine)으로 동작하게 된다. 각 디바이스는 미니-A 타입의 플러그를 꽂거나 뺀다든지 파워에서 문제가 생긴다든지 하는 이벤트에 따른 상태 변화를 가지게 되는데, A 타입 디바이스(Standard-A 혹은 미니-A 플러그가 디바이스의 리셉터클과 이어져 통신을 할 수 있는 기기)와 B 타입 디바이스(Standard-B 혹은 미니-B 플러그가 디바이스의 리셉터클과 이어져 통신을 할 수 있는 기기)의 상태 변화를 고려해서 HNP를 소프트웨어 또는 하드웨어적으로 구현할 수 있다. OTG 사양에서는 이 HNP를 상태 다이어그램으로 나타냈는데, 이는 상당히 복잡해 이해하기가 힘든 부분이다. 자세한 사양은 OTG의 스펙을 찾아보기 바라고 여기서는 단순화한 상태 다이어그램(<그림 5>)을 살펴보자
 
<그림 5> 단순화된 HNP 상태 다이어그램
0305-356(2).jpg

 

이 다이어그램에서 타원 내부의 문자열은 상태를 의미하게 된다. 예를 들어 a_host라면 A 타입의 디바이스가 호스트의 상태에 있는 것을 의미하고, b_peripheral이라면 B 타입의 디바이스가 주변기기의 상태에 있는 것을 나타내게 된다. 그리고 한 디바이스에서 다른 상태로 넘어갈 때의 화살표에 있는 문자열은 상태 혹은 신호 변화를 나타내게 된다.
한편 어떤 애플리케이션이 실행되고 있는 중간에 필요에 의해 호스트와 주변기기의 관계를 바꾸려고 한다면 다음과 같은 전제 조건이 필요하게 된다. 즉 A 타입 디바이스가 연결되어 있는 B 타입 디바이스를 찾을 때, B 타입 디바이스는 OTG Descriptor(OTG 디바이스에 대한 정보를 저장하고 있는 부분)를 리턴해서 보내줌으로써 B 타입 디바이스가 HNP를 지원하는 것을 확인해야 한다. A 타입 디바이스는 B 타입 디바이스에게 SetFeature(b_hnp_enable)라는 명령을 보내 B 타입 디바이스가 HNP를 이용하는 것을 허용해야 한다.
우선 A 타입 디바이스부터 어떻게 동작하는지 알아보자. 처음부터 A 타입 디바이스는 호스트로 동작하고 있는데 어떤 필요에 의해 호스트의 역할을 내줘야 한다면 ‘a_bus_req’라는 신호를 로직 레벨 0으로 만들어주면 된다. 이렇게 되면 이제 버스를 더 이상 컨트롤하지 않겠다는 것을 나타내게 된다. 이 경우 A 타입 디바이스는 휴면으로 들어가는 a_suspend 상태로 바뀌게 된다. 그리고 B 타입 디바이스가 HNP를 이행할 수 있고, HNP가 사용 가능할 때 버스의 사용을 요구하는 b_bus_req 신호로 인해 b_wait_acon 상태로 들어가게 된다.
이 경우 어떤 디바이스도 버스를 사용하고 있지 않기 때문에 D+와 D-는 모두 로우 레벨로 떨어지게 된다. 이 경우를 SE0(single ended-zero)라고 부른다. 그리고 SE0가 만족한다면 A 디바이스는 a_peripheral이라는 상태에 들어가면서 주변기기로서 동작을 시작하게 되고, 이는 B 타입 디바이스가 A 타입 디바이스를 주변기기로 인식하는 과정인 J-state를 거쳐 b_host라는 상태로 들어가게 된다. 이와 같은 과정을 거쳐 A 타입 디바이스와 B 타입 디바이스는 서로의 역할을 바꾸게 되는 것이다. 여기서는 간단화해서 살펴보았지만 세부적으로 좀더 깊이 들어가면 상당히 복잡하므로 관심 있는 독자는 직접 OTG 사양을 참고하기 바란다.
 <표2> UBS OTG의 활용 예
호스트 주변기기 동작
PDA PDA
디지털 카메라
USB 키보드
USB 마우스
프린터
휴대폰
파일교환
파일 교환
사용자 인터페이스
사용자 인터페이스
자료 출력
웹 서핑, 파일 교환
mp3 플레이어 mp3 플레이어
이동용 하드디스크
플래시 카드 리더기
곡 교환
곡 교환
곡 교환 및 데이터 저장
휴대폰 휴대폰
디지털 카메라
USB 키보드
mp3 플레이어
주소록 및 파일 교환
사진 전송
단시간 문자 전송
벨소리 교환 및 곡 교환
디지털 카메라 셋톱박스
프린터
사진 확인
사진 출력
플래시 카드 리더기 이동형 하드디스크
디지털 카메라
파일 교환
파일 교환
이동형 하드디스크 오토 PC
측정 장비
mp3 파일 교환
데이터 기록
 
[ 2개의 OTG 제품이 연결돼 있을 때 언제 역할을 바꿀 필요가 생기는가? ]
여러 경우를 생각해 볼 수 있을 것이다. A 타입 디바이스와 B 타입 디바이스(모두 OTG를 지원하는 제품)가 있다고 가정하자. 이 경우 A 타입 디바이스는 B 타입 디바이스에 관한 디바이스 드라이버가 있는데, B 디바이스는 A 디바이스에 대해서 디바이스 드라이버가 없다고 생각해 보자. 처음에 B 디바이스가 호스트가 되도록 A 디바이스를 연결해 통신을 시도하려고 하면 디바이스 드라이버가 없기 때문에 당연히 통신이 이뤄지지 않는다. 그래서 A 디바이스를 호스트로 하고 B 디바이스를 주변기기로 하게 된다면 우선 케이블을 반대로 바꿔 끼워야 한다. 하지만 HNP가 있기 때문에 케이블을 바꿔주는 수고는 하지 않아도 된다. 이 경우 HNP를 이용해 호스트와 주변기기의 관계를 바꾸면 둘 간의 통신이 성립되어 동작할 수 있는 것이다.
또한 필요에 따라 버스 컨트롤 권한 때문에 바꿀 수도 있을 것이다. 메모리 카드 리더기와 이동형 하드디스크가 USB OTG에 의해 연결되어 있다고 가정해 보자. 메모리 카드 리더기가 이동형 하드디스크에 우선 데이터를 전송하게 된다면 버스 컨트롤 권한은 메모리 카드 리더기가 가지게 된다. 이 경우 메모리 카드 리더기가 A 타입 디바이스가 되고, 이동형 하드 디스크가 B 타입 디바이스가 되는 것이다. HNP를 이용하게 된다면 둘의 역할이 바뀌어 이동형 하드 디스크가 메모리 카드 리더기에 데이터를 전송할 수 있게 된다
 
  적은 전력 소모 조건
앞에서도 언급했지만 임베디드 시스템에 오게 된다면 전력 문제는 상당히 큰 이슈로 등장하게 된다. 아무래도 전력을 계속 공급받지 않는 경우도 있고, 받는다 해도 다른 디바이스에 공급해줄 만큼 충분한 전력을 받는 경우도 드물기 때문이다. 이 경우 각각의 디바이스가 스스로의 전원을 가지고 서로간의 연결을 구성해야 되는데, 서로 전력 소모를 최소화하기 위해 필요할 때만 USB OTG 인터페이스에 전력을 공급할 필요가 생긴다. 이렇게 전력 소모를 최소화하기 위해서 SRP(Session Request Protocol)가 나오게 되었다.
SRP에 설명하기 전에 우선 ‘세션(Session)’에 대해서 알아보자. 세션이라는 것은 주어진 디바이스의 VBUS 부분이 세션 유효 경계(Session Valid Threshold) 이상의 전위에 있는 시간으로 정의된다. USB OTG Supplement 문서를 보면 직류 전기 특성에서 A 타입 디바이스와 B 타입 디바이스의 세션 유효 경계 전압이 나와 있는데(A 타입의 디바이스는 VA_SESS_VLD, B 타입의 디바이스는 VB_SESS_VLD로 정의되어 있다) OTG 기술을 이용해 B 타입 디바이스는 A 디바이스가 이 세션 유효 경계 전압 이상으로 전압을 올려 세션을 시작하게 하도록 할 수 있다. 이 경우 두 가지 방법이 있을 수 있는데, 첫 번째는 ‘데이터라인 펄싱(Dataline Pulsing)’이고 두 번째는 ‘VBUS 펄싱’이 있다. A 타입 디바이스는 두 방법을 모두 사용하게 됨으로써 디자인의 유연성을 꾀할 수 있고, B 타입 디바이스는 A 타입 디바이스의 반응을 좀더 보장받기 위해 두 가지 모두를 사용하게 되는 것이다.
이 두 가지 방법 중 하나를 사용하기 전에 B 타입 디바이스는 우선 A 타입 디바이스가 세션을 끝냈는지를 알아야 한다. 그러기 위해서는 우선 A 타입 디바이스의 세션 유효 한계 전압이 0.8V 이하로 떨어지고 신호를 전달하는 D+ 라인과 D- 라인이 최소 2ms 이상 로우 레벨 상태로 떨어졌는지 확인해야 된다(이 전압 값과 시간은 OTG의 사양으로 나와 있다). 이 모든 조건을 만족하는 경우 A 타입 디바이스의 세션은 끝나고 새로운 세션이 시작될 수 있다.
데이터라인 펄싱 방법은 데이터를 전송하는 D+, D- 라인을 통해 B 타입 디바이스가 세션을 시작할 것을 요구하는 것이다. 이 경우 B 타입 디바이스가 풀업(pull-up) 저항을 이용해 약 5ms에서 10ms 정도로 D+ 혹은 D-에 전압을 걸어주게 됨으로써 잠자고 있는 A 타입 디바이스를 다시 깨울 수 있다. VBUS 펄싱 방법도 이와 비슷하게 VBUS에 전압을 인가해 줌으로써 A 타입 디바이스에 신호를 주게 된다.
정리해보면 SRP는 A 타입 디바이스(호스트 역할)와 B 타입 디바이스(주변기기 역할)가 OTG 기술을 통해 USB로 서로 연결되어 있을 때 두 기기간의 정보 전송이 없는 시간에는 전력을 공급하는 VBUS와 트랜시버(transceiver)의 파워를 끌 것을 요구한다. 하지만 전송돼야 할 정보가 생기면 B 타입의 디바이스는 A 타입의 디바이스에게 VBUS와 트랜시버의 전원을 켤 것을 요구하게 되고 A 타입의 디바이스로부터 어느 정도의 전력이 공급되면 정보 전송이 시작된다. 이런 과정을 거치게 됨으로써 최소한의 전력 요구 사항으로 동작할 수 있게 된다.
지원 동작 속도(Supported Operation Speeds)
OTG 듀얼-롤 디바이스는 제한된 기능의 호스트 기능과 주변기기 기능을 지원해야 한다. 만일 주변기기로서 동작하게 된다면 풀 스피드(12Mb/s)로 동작하는 것이 요구되고 하이 스피드(480Mb/s)로서 동작하는 것은 옵션으로서 필요하면 제품에 추가할 수 있다. 또한 제한된 호스트 기능을 갖고 동작한다면 주변기기 동작 때와 같이 풀 스피드로서 동작하는 것이 요구되지만 필요하면 로우 스피드(1.5Mb/s) 또는 하이 스피드로서 동작하는 것도 옵션으로 추가할 수 있다.

No Silent Failure 기능
USB 기기간에 연결이 되더라도 둘 간의 통신이 실패하는 경우가 생긴다. 예를 들면 이동식 하드디스크와 같은 경우 1A 이상의 전류가 공급되지 않아서 호스트와 통신이 실패하는 경우가 있다. 그리고 디바이스 드라이버가 없거나 HNP가 되지 않아서 서로간의 통신이 실패하는 경우 USB OTG 기기는 그 원인을 사용자에게 알릴 책임을 가진다.
그리고 할 수 있다면 자신이 그 문제점을 해결해서 사용자가 참조 매뉴얼을 보거나 다른 부가 매뉴얼을 보지 않아도 되도록 자신의 문제점을 알릴 수 있어야 한다. 그래서 자신의 통신 실패에 대해서 침묵하지 않도록 해주는 No silent failure 기능이 있는 것이다.

USB OTG 기술의 적용 방안
USB OTG 기술의 활용 방안은 무궁무진하다고 할 수 있다. 과거에 사용되었던 USB 기기들을 사용할 수 있을 뿐만 아니라 이제부터 생산되는 USB 기기들을 모두 연결해서 사용할 수 있게 될 것이다. 앞으로 사용될 것으로 생각되는 활용 방안은 <표 2>와 같다.
 

 

관련자료 : USB기기들을 하나로 묶는 OTG.pdf

번호 제목 글쓴이 날짜 조회 수
33 ESP32 블루투스 스피커(A2DP Sink) file makersweb 2019.10.29 4208
32 ESP-IDF 의 A2DP리뷰 (ESP32) file makersweb 2019.10.28 10132
31 임베디드 리눅스 부팅 절차 file makersweb 2019.10.21 7262
30 mainline 커널 및 etnaviv 를 사용하는 Wandboard(Freescale i.MX6Q)에서 eglfs를 사용 makersweb 2019.10.17 1460
29 Yocto를 이용한 wandboard BSP 및 Qt5 SDK 빌드 file makersweb 2019.09.29 3217
28 STM32 & LibOpenCM3, printf함수사용 file makersweb 2019.08.08 3562
27 STM32(Cortex-M3) LED Blink with PlatformIO file makersweb 2019.08.05 2564
26 블루투스(Bluetooth) 기초 file makersweb 2019.08.02 5660
25 STM32(Cortex-M3) 개발환경구축 with PlatformIO file makersweb 2019.07.26 4460
24 STM32(Cortex-M3) 개발 - Firmware Flashing file makersweb 2019.07.23 3657
23 libopencm3 활용, Cortex-M 펌웨어 개발 makersweb 2019.07.14 1666
22 yocto의 몇가지 중요한 용어 및 개념 makersweb 2019.06.21 4557
21 라즈베리파이3와 PC간 Serial 통신 테스트 [1] file makersweb 2019.05.20 6979
20 욕토 프로젝트를 이용한 Qt SDK 빌드 for 라즈베리파이3 file makersweb 2019.03.19 3579
19 yocto project, 라즈베리파이를 위한 Qt + 임베디드리눅스 빌드 file makersweb 2019.02.01 11736
18 STM32(Cortex-M3) 개발환경구축 with Eclipse file makersweb 2018.11.08 4145
17 ST, STM32 MCU용 ‘통합 개발 환경(IDE)’ 무료 제공 makersweb 2015.03.04 9379
» USB OTG 기술의 개념 file pjk 2014.11.03 16121
15 USB 핀아웃 file pjk 2014.10.11 8939
14 시리얼 인터페이스 커넥터를 위한 핀아웃 file pjk 2014.10.10 5353