반응형
예전에 아이토이(소니 플레이스테이션용 카메라) 네 개를 컴퓨터에 연결하려고 했었을 때에는
막연히 같은 버스에  두 개가 연결되면 대역폭이 부족해서 제대로 동작을 안하는 거라 생각했었다.
실제로도  lsusb 명령으로 확인해 가며 두 개의 웹캠이 같은 bus에 연결되지 않게 하면 잘 동작했었다. 




지금 생각해보면 USB 규격에 따라 최대 전송속도가 다르다..
USB 1.1은 12Mbps (= 1.5M byte/s) , USB 2.0은 480Mbps ( = 60M byte/s )

USB 1.1에서는 두 개의 웹캠을 돌리는 것은 무리같지만
usb 2.0 포트에 두 개를 같이 연결해도 동작하는지 테스트해봤는지 궁금해졌다.

웹캠 하나를 연결한 후 , lsusb 명령을 사용해보니  Bus 1에 장치 정보가 추가되있었다.
하나를 추가했는데 2개가 달리는 이유는 잘모르겠지만.. 자세히 보면 if 0, if 1으로 좀 차이가 있다.
그리고 USB 1.1 드라이버는 ohci와 uhci 방식을 지원하고 USB 2.0 드라이버는 ehci방식을 지원한다.

$ lsusb -t
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M
    |__ Port 8: Dev 2, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
    |__ Port 8: Dev 2, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M


추가로 웹캠을 하나 더 연결했더니 BUS 1을 공유한다.
USB 2.0이라 두대가 연결되어도 대역폭은 충분한지..

opencv에서 돌려봤는데 잘된다.

$ lsusb -t
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M
    |__ Port 2: Dev 5, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
    |__ Port 2: Dev 5, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
    |__ Port 2: Dev 5, If 2, Class=audio, Driver=snd-usb-audio, 480M
    |__ Port 2: Dev 5, If 3, Class=audio, Driver=snd-usb-audio, 480M
    |__ Port 8: Dev 2, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
    |__ Port 8: Dev 2, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M


이런 것 때문에 이런 고생한다는 게......


반응형

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
질문을 남겨주면 가능한 빨리 답변드립니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 ~~

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요 ^^

  1. 학생 2016.07.19 18:41

    게시물보고 열심히 공부하고 있습니다.
    혹시 파이캠과 웹캠을 동시에 띄울 수 있는 방법이 있나요?

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2016.07.19 18:46 신고

      해보진 않았지만 가능할거라봅니다. 아래 링크에 있는 코드에 웹캠에서 가져오는 코드를 추가하면 될듯합니다

      Raspberry pi camera를 opencv에서 사용하기 http://webnautes.tistory.com/956

  2. 학생 2016.07.20 14:03

    감사합니다. 웹캠과 파이캠 동시에 띄우는데 성공했습니다.
    이 두영상을 각기 다른 영상처리를 하려고 하는데 램이 넉넉할까요?
    부족하다면 스트리밍 영상을 전부가 아닌 일부만 받아와서 해야하나요?

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2016.07.20 14:37 신고

      일단 해보고 느리면 피시로 받아서 처리하는게 좋을듯 싶습니다

  3. 학생 2016.07.20 18:11

    그럼 PC에서 웹캠으로 얼굴인식을 하고 라즈베리파이에서 파이캠으로 차선인식을 동시에 처리하려면
    원격제어를 해야하나요? 여기선 갈피를 못잡겠습니다.

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2016.07.20 18:13 신고

      안해봤지만 라즈베리파리에서 차선인식은 돌아갈거 같은데요..

      일단 해보세요

+ Recent posts