問題タブ [peripherals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
657 参照

usb - USB 周辺機器の bIntervals はどのように適用されますか?

レポート記述子を送信する FullSpeed USB デバイスがあり、その関連するエンドポイント記述子bIntervalは 8、つまり 8ms を宣言しています。

次のレポートの抜粋は、デバイスのドライバーが HidUsb の場合に USB Descriptor Dumper から取得されます。

ドライバーを WinUSB に切り替えて使用できるようにした後、libusb を使用して IN 割り込み転送を繰り返しクエリし、このスクリプトを使用して 2 つの libusb 呼び出しの間と libusb 呼び出し中に費やされた実際の時間を計ります。

取得した値のサンプルを次に示します。

新しい割り込み転送呼び出しを開始するまでに経過した時間が長すぎる場合 (私の特定のケースでは、しきい値は 6 から 6.5 の間のようです) を除いて、合計値は一貫して 8 ミリ秒に非常に近く、その場合は 16 に等しくなります。 18ms に等しい "for" 測定値が見られ、合計は正確に 24ms に等しくなります。URB トラッカー (私の場合は Microsoft Message Analyzer) を使用すると、メッセージ間の時間差Complete URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFERも 8 ミリ秒の倍数 (通常は 8 ミリ秒) になります。要するに、それらは「合計」メジャーに一致します。

したがって、「libusb 割り込み転送呼び出し」の 2 つのリターン間の経過時間は 8ms の倍数であることが明らかであり、これは bInterval 値 8 (FullSpeed -> *1ms -> 8ms) に関連していると思います。

しかし、私が話していることを明確にしたことを願っています-それはどこで強制されますか? 調査にもかかわらず、bInterval 値がどのように影響するかについて明確な説明を見つけることができません。

どうやら、これはドライバーによって強制されます。

したがって、それは次のとおりです。

  • ドライバーは、8ms が経過するまでリクエストの発火を禁止します。私には最も合理的なオプションのように思えますが、私の URB TraceによるとDispatch message、リクエストが返される数ミリ秒前にイベントが発生しました。これは、ホストが残したリアルタイムのデータが、私/メッセージ アナライザーから隠されていることを意味します。

  • ドライバーは、最後の応答から 8ms が経過するまで、私とアナライザーからの応答を隠します。

もしそれが本当にドライバーによって処理されたなら、交換されたメッセージのログで私に示されているものにはどこかに嘘があります. リクエストの直後にレスポンスが来るはずですが、そうではありません。そのため、表示された時間の後にリクエストが送信されるか、表示されている時間よりも早く応答が返されます。

bInterval の尊重の強制はどのように機能しますか?

私の最終的な目標は、その bInterval 値を無視して、8 ミリ秒よりも頻繁にデバイスをポーリングすることです (2 ミリ秒ごとにポーリングできると信じる十分な理由があり、8 ミリ秒の期間はその使用には受け入れられません)。現在の制限がどのように機能するかを知り、探していることが可能であれば、次に何を勉強すべきかを理解できます (例: カスタム WinUSB ドライバーの作成)

0 投票する
1 に答える
46 参照

usb - USB デバイス コントローラー ドライバーの仕様

USB ホスト コントローラーには、ドライバーのプログラム方法を定義する UHCI/OHCI/EHCI/XHCI 仕様があります。USB デバイス コントローラーの同等の仕様はありますか?