검색결과 리스트
글
흔히 'USB 메모리' 라고 부르는 USB Mass Storage 에 대해서 알아보려고 합니다. 관련 문서를 찾다보시면 아시겠지만, 국내에는 관련 자료가 잘 없습니다. 소프트웨어보다는 하드웨어 관련된 곳을 뒤져야 하는 하는 상황이 됩니다. 아무튼 USB Mass Storage 가 어떻게 동작하는지 알아보도록 하겠습니다. 참고로 저는 소프트웨어쪽을 알아볼 생각입니다. 하드웨어 모듈을 만든다거나 관련된 부분은 대부분 생략하도록 하겠습니다. :)
USB 에 대한 기본적인 사전지식
시작에 앞서서, 퀴즈아닌 퀴즈를 내 보죠. USB Client 와 USB Host 라는 개념이 있습니다. 우리가 만들고자 하는 USB Mass Storage 와 이를 사용하는 PC 중 어느것이 Client 고 Host 일까요? 이것을 제대로 알지 못하면 자료도 제대로 찾을 수가 없습니다. =_= 기껏 문서를 찾아서 읽고 있는데 "이게 아닌가벼..." 하는 상황이 벌어지곤 하지요. USB Client 는 우리가 만들려는 USB Mass Storage 입니다. 그리고 이것을 사용하는 대상은 USB Host 라고 합니다. 즉, PC 가 USB Host 이지요. :)
USB 란 무엇일까요?
Universal Serial Bus 입니다. 우리나라말로 풀어보면 '범용 직렬 버스' 입니다. 직렬통신(시리얼 통신)이라는 것은 병렬통신과 반대되는 말이죠. 자동차 도로로 비유해 보자면, 1차선 도로입니다. 한번에 한가지 일 밖에는 할 수 없습니다. 그러므로 여러 작업을 동시에 하기 위해서는 고유 키를 가지고 데이터를 주고 받습니다. 즉 통로 하나를 나누어 씁니다.
USB 관련 자료를 찾다보면, USB-IF 라는 단어를 많이 접하게 됩니다. 이것은 USB Implements Forum 의 줄임말입니다. 사이트 주소는 http://usb.org 입니다. USB 스팩 역시 이곳에서 찾을 수 있습니다.
최초의 USB 는 1994년 발표된 0.7 입니다. 이 오랜 역사만큼 여러가지 버전이 나왔는데 크게 USB 1.0, USB 2.0 그리고 USB 3.0 으로 나눌 수 있습니다. 자료를 찾다보면 Full Speed, High Speed 라는 말과 1.0, 2.0 이라는 단어들이 혼재되어 나오는데, 아래를 보시면 도움이 되실거라고 생각합니다.
Low Speed : 1.5Mb/s
Full Speed : 12Mb/s
High Speed: 480Mb/s
Super Speed: 5Gb/s
Super Speed Plus : 10Gb/s
이렇게 각 이름별 스팩에 따른 최고 전송속도입니다. MB(메가 바이트) 가 아니라 Mb(메가 비트)이라는점 주의하세요 ^^;
흔히 Full Speed 라고 하면 USB 1.0 버전을, High Speed 는 USB 2.0 을 의미합니다. Super Speed 이상은 USB 3.0 입니다. 아시다시피 이 글을 쓰는 현재 가장 일반적인 스팩은 USB 2.0 입니다. 웬만한 운영체제나 디바이스에서 2.0을 지원합니다.
마지막으로 upstream 은 USB mass-storage 에서 Host(PC)로 데이터를 보내는 것이고, downstream 은 반대의 개념입니다.
USB Mass Storage 가 반드시 지켜야 하는 것들
시작에 앞서 이론들을 조금은 알고 넘어가는 것이 도움이 될 것 같습니다. 몇 가지 설명을 하고 넘어가도록 하겠습니다. 이론적인 것이니 이런게 있구나 하는 마음으로 가볍게 읽으시면 될 것 같습니다.
USB mass-storage 디바이스가 반드시 지원해야 하는 인터페이스가 존재합니다. 이 두가지는 무조건 지원해야 합니다. 아니면 동작 자체가 안되지요. 그리고 반드시 구현해야 되는 세 가지 프로토콜과 구조가 있습니다. 이것에 대해서 간단히 알아보겠습니다. 자세한 설명은 추후에 다시 하도록 하겠습니다.
두 가지 인터페이스(Interface)
1. PC 와 같은 USB Host 와 통신하기 위한 인터페이스
2. 디바이스와 저장된 미디어 사이의 인터페이스
세 가지 프로토콜(Protocol)과 구조체(Structure)
1. 기본적인 USB 프로토콜
2. USB mass-storage 프로토콜
3. SCSI (Small Computer Systems Interface) 명령들
4. 미디어 프로토콜
1. 미디어 구조체
2. 파일 시스템
Host 와 Device 의 역할
Host 는 PC 와 같은 USB Host 를, 그리고 Device 는 USB mass-storage 같은 장치를 의미합니다. 앞으로 이렇게 용어를 쓰도록 하겠습니다. Host 와 Device 에는 각각의 역할이 있습니다. 이 부분에 대해서 잠시 살펴보도록 합시다.
Host 의 역할
Device 의 역할
우리가 알아볼 것
USB Client(Device)와 USB Host 는 어떻게 통신을 할까요? 아래 그림과 같습니다.
보시는것처럼 왼쪽이 USB mass-storage 이고, 오른쪽이 PC 입니다. mass-storage 입장에서 보면, 데이터를 전송할때는 그림의 좌측에서 우측 순서로 나가고, 들어올때는 반대로 우측에서 좌측으로 들어옵니다. 우리는 소프트웨어 영역인, 위 그림에서 빨간색 박스에 있는 'Storage Media' 와 'Media Controller' 에 대해 집중적으로 알아 볼 것 입니다.
'USB Client 만들기' 카테고리의 다른 글
.NET Micro Framework 에서 USB Client 만들기 2부 (0) | 2015.05.15 |
---|
RECENT COMMENT