問題タブ [usb]
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.
embedded - 組み込みデバイス用 USB - デバイス ドライバー/プロトコル スタックの設計
私は、SPI インターフェイスを介してマイクロ コントローラーと通信する組み込みデバイス用のデバイス ドライバーを作成する任務を負っています。最終的には、USB インターフェイスを使用して更新されたコードを外部からダウンロードし、検証段階で使用します。
私の質問は、組み込みシステム内の USB プロトコル スタック/デバイス ドライバーの実装/設計をカバーする優れたリファレンス デザイン、ドキュメント、またはオンライン チュートリアルを知っている人はいますか? 私はまだ始めたばかりで、650 ページの USB v2.0 仕様を読むのは、現時点では少し大変です。
参考までに、私が使用しているマイクロコントローラーは Freescale 9S12 です。
マーク
ゴールデンミーン (-AD) のコメントに基づいて、次の情報を追加したいと思います。
1) 組み込みデバイスはカスタム エグゼクティブを使用し、COTS または RTOS を使用しません。
2) デバイスは割り込みを使用して、デバイスからデータを取得する準備が整ったことを示します。
3) Linux に関するいくつかのドキュメントを読みましたが、Linux にまったく詳しくないので、現時点ではあまり役に立ちません (ただし、すぐに役立つことを願っています)。
4) 設計アプローチは、少なくとも現時点では、USB デバイス用のデバイス ドライバーを作成し、USB プロトコル層 (I/O) をデバイス ドライバーの上に配置してデータを解釈します。私は間違っているかもしれませんが、これが最善のアプローチだと思います。
編集 - 1年後
二度と USB デバイスで作業することがない場合に備えて、頭から消える前にいくつかの項目を共有したかっただけです。コードを開発し、それを最初に起動して実行するときに、いくつかの障害に遭遇しました。
私が遭遇した最初の問題は、USB デバイスがホスト (私の場合は Windows) に接続されたときに、ホストがリセット要求を発行したことでした。USB デバイスは、割り込みイネーブル フラグをリセットおよびクリアします。これが起こっていることを知るのに十分な文献を読んでいなかったため、セットアップ要求割り込みを受け取ることはありませんでした。これを理解するのにかなりの時間がかかりました。
私が遭遇した 2 番目の問題は、Set_Configuration のセットアップ要求を適切に処理していないことでした。私はそれを処理していましたが、このセットアップ要求が入ったときに USB デバイスが ACK を送信していなかったため、要求を正しく処理していませんでした。ハードウェア USB プロトコル アナライザーを使用して、最終的にこれを発見しました。
私が遭遇した他の問題もありましたが、これらは、理解するのにかなりの時間を要した 2 つの最大の問題でした。私が心配しなければならなかったもう 1 つの問題は、ビッグ エンディアンとリトル エンディアン、それぞれ Freescale 9S12 と USB データ フォーマット (Intel) です。
過去に行った UART デバイス ドライバーと同様の USB デバイス ドライバーをビルドすることになりました。このコードを次の URL に投稿しました。
http://lordhog.wordpress.com/2010/12/13/usb-drive
私は構造体を多用する傾向があるため、#define を使用するほどポータルではないため、人々はそれらを好まないかもしれません (例: MAX3420_SETUP_DATA_AVAIL_INT_REQR 0x20)。しかし、コードが読みやすくなるので気に入っています。誰かがそれについて質問がある場合は、お気軽に電子メールでお問い合わせください. 「USB Complete: The Developer's Guide」という本は、どの領域に集中すべきかを知っている限り、役に立ちました。これは単純なアプリケーションであり、低速 USB のみを使用しました。
sql-server - SQL Server を USB ドライブにインストールできますか?
私は開発者であり、通勤ではなく、可能な場合はリモートで作業することがよくあります。開発データベース環境を持ち歩けるようになりたいです。データベースにリモートでアクセスできることはわかっていますが、遅いです。ワイヤレス接続のない場所で仕事をすることがあります。何か案は?
usb - USB 構成の設定に失敗する
libusb を使用して USB デバイスと通信しようとしていますが、レースの最初の段階でつまずいているように感じます。どのエンドポイントと通信する必要があるかなどは正確にわかっていますが、そこまで到達することさえできません。私は、本質的に:
これで、デバッグ モードでデバイス情報を見ることができ、現在の構成が 0 (初期化されていない/再起動直後) であり、構成番号が 1 の有効な構成が 1 つだけあることがわかります。 1 にすると、-22 の戻り値が返されます。これは、(stringifier を通過して) "windows api error: bad parameter.
同様の問題を抱えている他の人を見つけることができませんでした。それはとても簡単なことのように思えます.インターフェイスを主張したり、代替インターフェイスを設定したりすることさえできません.最初に構成を設定する必要があります。私は何が欠けていますか?(重要な場合:これはWinXP上にあります)
c# - Flex から USB デバイスと通信し、その逆も可能
私の同僚は、Flex でユーザー入力を取得し、そのデータを使用して USB デバイスでコマンドを実行することに挑戦しています。これを行うには、マシン上でソケット サーバーを実行する必要があると考えました。文字列だけでなく、バイト配列などでオブジェクトを送信したい。
私たちを助けることができるものはありますか?独自のソケットサーバーを作成する必要がありますか?それには時間がかかるかもしれません.ウィンドウズサービス?
.net - USB 切断イベントを検出するにはどうすればよいですか? (Windows、.NET C# アプリケーション)
現在、これを行う方法は、USB デバイスのマスクされたリスト (使用しているデバイス用に特別にマスクされている) をポーリングし、そこにある場合は続行し、そうでない場合はデバイスが接続されていないことをユーザーに通知します。USB デバイスのリストを取得する方法は、USB 周辺機器コントローラー チップ メーカーの .NET ライブラリを通じて提供されます。
USB デバイスの切断に関するイベントはどこかにありますか?
java - Windows および Java で USB デバイスと通信するにはどうすればよいですか?
Windows と Java で USB デバイスと通信したいのですが、適切なライブラリが見つかりません。これを機能させるために、ユーザーが追加のハードウェアやデバイス ドライバーをインストールする必要はありません。つまり、他の Windows アプリケーションと同じように、USB と対話できるようにしたいと考えています。
私は jUSB と JSR 80 に精通していますが、どちらも (少なくとも Windows では) デッド プロジェクトのようです。
c++ - シンプルな USB ホスト スタック
Atmel プロセッサの USB ホスト ポートを使用して単一の USB デバイスに接続しようとしています。メモリが限られており、OS がない組み込みシステムがあります。単一の USB スレーブ デバイスに接続するためのシンプルな専用ホストを実装したいと考えています。
簡単な USB ホストの実装を教えてくれる人はいますか?
プロセッサは Atmel AT91SAM9261S です。
usb - USBプラグアンドプレイシミュレーション
ソフトウェアだけでプラグアンドプレイイベントをシミュレートする方法があるのだろうかと思っていました。ドライバーをテストしており、pnpイベントの開始からドライバーのインストールをテストしたかったのですが、実際のプリンターを接続したくありません。
macos - Mac system_profiler の違い
Mac に接続された USB ハードウェアの詳細を表示するために使用system_profiler
していますが、これを Mac OS X 10.4 と 10.5 で実行する場合にはいくつかの違いがあります。たとえば、10.5 では、さまざまな属性のキーにアルファベット文字のプレフィックスがあります。location_id
さらに重要なことは、10.4 で属性 (SPUSBDataType dataType 内) を取得できないことです。この違いが存在する理由とそれを回避する方法についてのアイデアはありますか?