|
먼저 저는 Anchor에서 나온 AN2135 라는 8051 코어가 내장된 USB controler를 사용하고 있습니다.
USB application program을 작성하길 원하신다면 먼저 드라이버를 이해해야겠죠.
보통의 USB 장비를 개발하는 개발자들이 다루게 되는 드라이버는 low level(하드웨어와 직접 연결되는 부분의 드라이버)드라이버가 아닌 중간단계인 클래스드라이버 혹은 미니드라이버(...간혹 필터 드라이버라고도 하죠)를 건들게 됩니다.
그렇다고 이 미니 드라이버를 직접 작성할 필요는 없지요.
단지 자신이 개발할 장비의 application에 필요한 부분만 이해하거나 조금 수정만 하시면 됩니다.(..제 경험상..^^)
다시 말씀드리면 low level 드라이버는 이미 PC의 OS( win98 or win2000)에 설치되어 있습니다.
그리고 USB chipset을 제작하는 회사에서 각각의 칩셋에 맞는 미니드라이버 소스를 제공합니다.
그러므로 이를 이용하는 개발자는 미니드라이버와 자신의 어플리케이션을 연결시키면 작업이 끝나는겁니다.
하지만 다른 칩셋의 경우는 잘 모르겠네요...^^
참...USB장비를 돌아가게 하려면 Firmware도 필히 작성 또는 소스를 알고 있어야하죠.
어플리케이션에서 보내는 control에 응답할 수 있으려면요.
제 경우는 주로 DeviceIoControl함수(API)를 사용합니다.
Parameter중 DWORD dwIoControlCode 가 있는데 이 파라미터엔 칩셋 회사에서 정의해놓은 코드가 들어가고요.
CreateFile함수를 사용하여 드라이버 핸들을 구한다음 DeviceIoControl함수를 써서 원하는 코드를 전달하면 됩니다.
그 이상의 자세한건 WDM드라이버 개념을 공부하시고 해당 칩셋을 아셔야 합니다.
최보현.U&I 님이 쓰신 글 :
: 유앤아이 현지빠입니다.
:
: USB 에서 디바이스 드라이버는 필수라고 답변 드렸던거 같은데요~
:
: USB 를 어플리케이션 수준에서 직접 만지는 경우는 단 한번도 본적이 없으며,
:
: 또한 이러한 예제는 더더욱 찾을수 없습니다.
:
: 디바이스 드라이버 스터디를 하시기 바랍니다.
:
: 그럼
:
: 피에수~
:
: Q&A 를 맞고 있는 운영진으로서 똑 같은 질문을 두번하시다니요~
:
: 아래 질문은 제가 지우 도록 하겠습니다.
:
:
: 박경원 님이 쓰신 글 :
: : 최보현님의 답변에 감사합니다.
: : 아직 usb에 대한 이해가 부족해서 다시 글을 띄웁니다.아시는 분은 조언 부탁드립니다.
: : 음..그러니간 거두절미하고 제가 알고 싶은 것은 바로 usb포트를 이용한 데이터 송수신
: : 입니다.
: :
: : 가령 rs-232c의 경우는 데이터 송수신 프로토콜은 pc와 pc가 연결되어 있을 때,
: : 스타트비트, 데이터 속도, 패러티 체크 ,스타비트 등등으로 구성이 되어 있어서 이것에
: : 기준해서 또 인터럽트 기능을 부가해서 데이터를 송수신 하죠.
: :
: : 즉 usb의 경우는, 예를 들어서 pc와 카메라(usb인터페이스 내장)가 연결되어 있을때 데이터
: : 송수신을 어케 하는지 알고 싶습니다.
: : usb인터페이스는 rs-232c와는 조금 차이가 있을 듯 한데요.....^^
: : 얘기를 들어보니간 usb는 패킷 전송을 하고 또 디바이스에 따라 세가지 송수신 방식이
: : 있다고 하는데요..
: :
: : 그리고 usb데이터 송수신의 경우,
: : 디바이스 드라이버를 만들어서 피시에 설치해서 제어하는 경우와 피시가 아닌 디바이스
: : 에서 전적으로 데이터를 송수신하는 경우 2가지가 있다고 하는데.............
: : 피시 디바이스 드라이버를 만드는 경우는 좀 어렵고, 디바이스에서 전적으로 프로그램 해서 제어하는
: : 경우를 좀 알고 싶습니다.
: :
: : 제가 질문한 요지를 아셨는지^^ 모르겠네요.
: :
: : 간단한 c를 이용한 예나 아님 c소스가 있음 더 좋겠습니다.^^
: : 넘 힘드네요. usb에 대해서 아시는 분이 많지를 않는 것 같아요.
: : usb가 그렇게 대단한 인터페이스 입니가?^^
: :
: : 꼭 좀 도움 부탁드립니다.
: : 지니 id:heartsim(박경원)
: : mail:heartsim@hanmail.net
: : tel:016-316-8707
: :
: : 멀리서나마 항상 좋은 일이 있으시기를 진심으로 바라겠습니다.
: :
: : 끝.
: :
: :
|