컴퓨터가 하드디스크와 같은 정보저장매체나 센서와 같은 장치에 정보를 읽고 쓰는 방법은 알았는데 그 정보를 전송하는 과정이 궁금해졌다. 센서가 신호를 감지하여 컴퓨터로 입력할 때 그 신호가 어떻게 컴퓨터에 전달이 되는지, 그리고 하드디스크에 정보를 입력할 때 어떤 형식으로 정보를 전달하는지 궁금해져서 이 탐구를 진행하게 되었다.
Component 3
Component 2
Component 1
일반적으로 우리가 말하는 USB는 휴대하기 편리해서 널리 사용되는 이동식 비휘발성 메모리를 의미한다.
하지만 여기서 말하게 될 USB는 이런 것이 아닙니다.
여기서 말하는 USB는 정보기기와 주변 장치를 연결하기 위해 만들어진 직렬 통신 규격의 하나이다.
USB의 표준에서는 하나의 버스에 최대 127대의 주변 장치가 연결이 가능하고, USB 허브를 사용하여 더 늘릴 수 있다.
그리고 원칙적으로 호스트 장치는 연결된 주변 장치에 전원을 공급하는 기능을 지원한다.
USB는 크기가 작고 편리하고, 또 전세계에서 범용적으로 사용되는 규격이라서 보편적이라는 장점이 있다.
USB단자를 이용한 통신은 호스트와 주변 장치만 연결 할 수있어서 컴퓨터끼리나 주변 장치들 끼리는 직접 연결 할 수 없고, 공급할 수 있는 전력이 제한되어있다는 단점이 있다.
USB는 크게 1.0, 1.1, 2.0, 3.0, 3.1로 나눌 수 있다.
Type-A :
USB 2.0을 지원하고, 3.0과 3.1에 하위 호환 된다.
Type-B :
USB 2.0을 지원하며 크기가 작아 휴대용 장치에 많이 이용된다.
Type-C :
가장 최근에 나온 단자로 크기가 작지만 큰 전력을 공급할 수 있고, 앞과 뒤의 구분이 없다.
오른쪽의 사진에서 VCC와 GND포트는 외부장치에 전력을 공급할 때 사용하고, D포트는 데이터 통신을 할 때 이용한다.
하드디스크와 통신할 때는 BULK전송 방식으로 한번에 512Byte를 전송한다. 반면에 센서와 통신할 때는 Interrupt방식으로 1~1024Byte를 일정한 주기마다 전송한다는 특징이 있다.
USB의 데이터 전송은 하나의 호스트가 여러 개의 주변 장치와 동시에 연결하여 처리하고, 처리된 장치가 응답하는 형태로 실행되는데 이 응답은 CPU가 직접 처리하는 것이 아니라 메인보드에 있는 USB컨트롤러가 직접 실행한다. 주변 장치에서 데이터가 들어오면 엔드포인트에 임시로 저장이 되었다가 필요할때 이 데이터를 갖다가 쓰게 된다. 이러한 방식 때문에 장치 측에서 데이터 전송을 요구할 수도 없고, 호스트끼리나 주변 장치들 끼리 데이터를 주고받을 수도 없다.
평소에 궁금했던 왜 컴퓨터에서 핸드폰을 충전하면 속도가 느린지를 알 수가 있었고, 컴퓨터의 USB포트에 USB 허브를 끼웠을 때 어떻게 데이터를 송수신 하는지 궁금했는데 한 패킷씩 돌아가면서 보낸다는 사실을 알게되었다. 또 하드디스크와 마우스는 같은 USB에 연결해도 다른 방식으로 데이터를 송수신한다는 것을 알게 되었다. 다음에는 무선통신의 규격과 그 원리, 특히 여러 전파가 동시에 전달 될 때 이를 구분하는 방법을 알아보고 싶다.
네이버 지식백과 USB http://terms.naver.com/entry.nhn?docId=2843360&cid=40942&categoryId=32830
월간 전자기술 (2001.1) 오리지널 USB 어댑터 제작 제 1장
㈜케이엠데이타 USB에 대한 기초 이해와 개요