2011-01-27 2 views
4

USB가 장치를 검색하기 위해 인터럽트 대신 폴링 메커니즘을 사용하는 이유는 무엇입니까? 이 포럼에서 읽고 그 USB 폴링 메커니즘

  • 긴급하지 않음 자주
  • (즉 느린 폴링 간격은 아무런 부작용이 없습니다) (당신이 작은 창 내에서 그것을 기대하는시기를 알 IE) 이벤트가

    1. 동기 경우 (당신의 폴링주기 즉, 대부분 만든 '히트')

    그리고 우리는 다음 메커니즘이 더 사용할 수 있습니다 방해 자주하지 폴링하지만 USB의 경우에 사용할 수 있습니다. 귀하의 답변에 대한

    감사합니다, 는 Zaheer USB 장치가 다른 하드웨어 인터럽트와 같은 방식으로 호스트 컨트롤러를 "중단"할 방법이 없습니다

  • +0

    플랫폼을 지정해야합니다. STM32 디바이스에서 호스트의 폴링 요청은 예를 들어 인터럽트에서 처리됩니다. – leppie

    답변

    4

    . USB는 인터럽트 전송 방법을 지원하지만 사실 이것은 1 폴링으로 구현되며 대기 시간은 약 1ms이지만 궁극적으로 호스트 성능에 따라 제한됩니다.

    당신은 왜 USB 폴링 메커니즘 대신 인터럽트의 장치를 감지 않는

    을 물어?

    USB 프로토콜은 하드웨어적인 의미에서 인터럽트를 전혀 지원하지 않기 때문에 프로토콜을 간단하게 유지할 수 있습니다. 예를 들어 기기가 진행중인 전송을 해석하고 싶다면 기존 전송을 손상 시키거나 시스템 전체에 추가 신호선을 추가해야 할 필요가 있습니다. 하드웨어에서 버스를 빠르게 폴링하는 것은 대부분의 유형의 장치에 대해 빠르다.

    새 장치를 검색하면 폴링을 권장하는 세 가지 모든 지점에서 오류가 발생합니다. 사실, 새로운 USB 장치가 버스 (# 1)에 나타날 것으로 예상되는시기는 거의 알지 못하며, 거의 발생하지 않고 (# 3) 장치가 즉시 감지하지 못하는 것은 우선 순위 (# 2)가 아닙니다. 왜 발생하지 않을 이벤트에 대한 시간과 에너지를 낭비해야합니까?