도와주세요!!
글 수 15,339
2002.07.06 08:54:34 (*.186.48.184)
6744
usb 에는 호스트와 슬레이브가 있습니다.
pc가 호스트가 되고 pc에 붙은 장치가 슬레이브가 되죠..
하나의 마스터에는 최대 127까지 붙을수 있습니다.
이럴경우 허브를 두어 포트를 늘리게 되죠..
마스터에는 기본적으로 루트허브 장치가 붙어 있죠 그래서 붙을수
있는게 127개에요. 허브도 하나의 장치라는걸 기억하세요
SA1110에는 usb 슬레이브 컨트롤러가 내장되어 있구요..
사실 SA1110의 usb는사용해보지 않아서 이쪽에 대한 논의는 못해드리구요
www.kelp.or.kr 에 가시면 자료가 마니 있을꺼에요..
말나온김에 usb 에 대한 내용을 더 적죠..
최초 슬레이브가 usb버스에 붙으며 호스트는 이를 인지하여 0 이라는
주소로 누구인지 묻게 되죠.. 슬레이브는 이때 0이라는 주소를 갖고
있어요(전원이 들어오면 0으로 설정해야함) 그래서 호스트의 요구에
응답을 하죠.. 그러면 호스트는 슬레이브에게 고유의 주소를 전달합니다.
이렇게 해서 슬레이브는 주소를 받게 되고 이제 부터 슬레이브와 통신을
하려면 할당 받은 주소를 통하게 되죠.. 그리고 여러가지 기본적인 정보
를 호스트가 슬레이브에게 묻습니다. 좀 많이.. 이 내용은 이지보드에
포함된 cd 에서 usb 1.1 스펙을 보시면 되는데 영어라서..
자 이 주소를 tcp 처럼 설명하면 IP 주소가 되겠죠.. 왜 이런 설명을
하냐면 usb 는 endpoint 라는 명칭의 파이프, 다시말하면 소켓 머 이런
방식의 통신을 해여.. 좀더 쉽게 말하면 채널이라고 해두죠..
이 엔트포인트는 0 .. 7 까지 있는데 0 은 컨트롤 포트라고 부르며
아까 호스트가 최초 슬레이브에게 정보를 얻어 오는 처리를 0번에서 하죠
사용자도 이 0번 포트를 이용하여 통신할 수 있어요.. 하지만 이 0번의
엔드 포인트는 아주 느려요 usb 1.1 은 12mbps 이지만 0번은 400kbps 로
알고 있어요..
자 풀스피드를 사용하려면 1 .. 7 번의 엔드포인트를 이용하는데 참 이상
한건 야들은 단 방향의 통신만을 지원합니다. 즉 1번을 호스트쪽에서
보았을때 다운로드라고 하면 1번 포트는 계속적으로 다운로드만 하죠
업로드는 다른 엔트포인트로 사용해야되여 ..
각각의 엔드포인트는 4가지 통신모드를 가지고 있는데
컨토롤, 벌크, 아이솔레이션, 인터럽트 일케 있어요..
0 번 엔트포인트는 컨트롤로 고정되어 있구요.. 다른 엔트포인트도
이모드로 동작할 수 있어요.. 컨트롤 모드는 느리고 적은 데이타만을
전송하죠..
벌크는 말그대로 대량의 데이타를 전송하죠.. 이론상 1메가 바이트를
전송하는데 1초가 걸리죠.. 좋은 슬레이브는 1초도 안걸려요
아이솔레이션은 10ms(?정확한지는 모르겠는데..)마다 데이타를 전송합니다.
실시간 멀티미디어 전송에 적합하죠..
인터럽모드는 보통 마우스나 키보드가 사용하죠..
두서없이 적은 위의 내용은 모두 usb 1.1 스펙이구요 새로 개정된 2.0
스펙은 저도 몰라여.. 480mbps 를 지원한다는 정도만..
요즘에 usb 관련된 책이 많으니 공부하시려면 서점에서 찾아보세요..