2006년 08월 13일
USB 드라이버 인식과정(Host To Device)
세부적으로는 많은 내용이 있지만 간략하게 정리하면 다음과 같습니다.
1. 사용자가 디바이스를 USB 포트에 연결
2. USB hub 가 디바이스를 감지
3. 호스트 PC 가 디바이스 정보를 얻는다.
4. USB hub 는 디바이스가 Full Speed 인지 Low Speed 인지 파악
5. USB hub 가 디바이스를 Reset
6. 호스트 PC 는 디바이스가 High Speed 인지 파악
7. USB hub 는 디바이스와 Bus 사이의 신호 패스를 설정
8. 호스트 PC 는 control pipe 의 최대 패킷 크기를 알기 위해 디바이스에 GET_DESCRIPTOR 명령을 보낸다.
9. 호스트 PC 는 주소를 할당한다.
10. 호스트 PC 는 디바이스의 기능에 대한 정보를 얻어온다, 즉, GET_DESCRIPTOR 명령을 통해
Device descriptor , Configuration Descriptor, Interface Descriptor 정보를 얻어온다.
11. 호스트 PC 에서는 10 에서 얻어온 디바이스 정보를 통해 디바이스 드라이버를 로딩한다.
12. 디바이스 드라이버는 SET_CONFIGURATION 명령을 통해 디바이스를 설정한다.
------------------------------------------------------------------------------
복잡한 과정을 거치는군...
1. 사용자가 디바이스를 USB 포트에 연결
2. USB hub 가 디바이스를 감지
3. 호스트 PC 가 디바이스 정보를 얻는다.
4. USB hub 는 디바이스가 Full Speed 인지 Low Speed 인지 파악
5. USB hub 가 디바이스를 Reset
6. 호스트 PC 는 디바이스가 High Speed 인지 파악
7. USB hub 는 디바이스와 Bus 사이의 신호 패스를 설정
8. 호스트 PC 는 control pipe 의 최대 패킷 크기를 알기 위해 디바이스에 GET_DESCRIPTOR 명령을 보낸다.
9. 호스트 PC 는 주소를 할당한다.
10. 호스트 PC 는 디바이스의 기능에 대한 정보를 얻어온다, 즉, GET_DESCRIPTOR 명령을 통해
Device descriptor , Configuration Descriptor, Interface Descriptor 정보를 얻어온다.
11. 호스트 PC 에서는 10 에서 얻어온 디바이스 정보를 통해 디바이스 드라이버를 로딩한다.
12. 디바이스 드라이버는 SET_CONFIGURATION 명령을 통해 디바이스를 설정한다.
------------------------------------------------------------------------------
복잡한 과정을 거치는군...
# by | 2006/08/13 03:03 | 개발자 잡담 | 트랙백 | 덧글(2)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
제 노트북이 다른 USB기기들은 모두 인식하는데 오로지 한가지 외장하드만 인식이 안됩니다. 이 한가지 외장하드는 다른 컴에서는 모두 인식합니다. 이 한가지 외장하드는 그 동안 인식이 잘되어 오다가 어느순간부터 인식이 안됩니다. 그동안 별별노력을 다했는데 헛수고입니다. 제 매일로 연락주시면 자세한 설명과 함께 "에러메세지 창"을 첨부해 드리겠습니다. 제매일은 polichoi@empal.com 입니다. 꼬~옥 부탁드립니다.