PICでUSBを!(知識ゼロからのスタートです)
PIC18F14K50のUSB機能を100%自前のソフトで制御する試みです。しかもアセンブラで!
当記事は2009年12月から「TTLでCPUをつくろう!」というタイトルの もとにほとんど毎日連載をしてきたものを再編集したものです。 |
2011.7.10 前へ 次へ 目次へ戻る ホームページトップへ戻る |
☆USB(HIDクラス) USBを通じてパソコンとの間でデータを送受信する方法にいくつかの種類があることがわかりました。 その中で特別のドライバをインストールする必要のないHIDクラスを使うことを考えます。 |
[第33回]
●パイプとエンドポイント
前回の説明で、USBは、ホスト(パソコン)とUSB端末とを接続する1本のUSB接続ケーブルを使って、データを多重に伝送することができ、その仮想的な多重伝送路の1本1本を「パイプ」といいます、という説明をしました。
パイプはホスト(パソコン)とUSB端末とを接続する複数設定可能な仮想伝送路です。
そしてそのパイプにつけられる名前が「エンドポイント」です、というように書きました。
厳密にいうとパイプとエンドポイントはちょっと違うのですけれど、アプリケーションの上でもパイプという名称は抽象的な概念で、エンドポイントbフほうがより直接的なターゲットとして使われるようですので、そのほうがわかりやすいと思って、そういうような説明をしました。
ところが、またいろいろ調べものをしていて、たまたまWikipediaを見ましたら、こんなことが書いてあるのをみつけてしまいました。
The term endpoint is occasionally incorrectly used for referring to the pipe, although while an endpoint exists on the device
permanently, a pipe is only formed when the host makes a connection to
the endpoint. Therefore, when referring to the connection between a host
and an endpoint, the term pipe should be used.
[出典]Wikipedia(アンダーラインは筆者)
パイプのことをエンドポイントと称してはいかんのだそうで。
ええ、ええ、わかってますって。
ですけれど、こうあからさまに、「誤用」だと決め付けられてしまうと、やっぱりそういう使い方はいかんか、と反省しなきゃいかんような気になってしまいます。
はい。はい。そうです。その通りです。
ですから、謹んで、ここに訂正いたしますです。
ああ、えへん、ですから、エンドポイントというものは、デバイスに最初から備わっているものでありましてえ。
一方、パイプというのは、ホストがそのエンドポイントと接続したときだけ(仮想的に)形成されるものでありますからして。
したがいまして、ホストとエンドポイントとの接続を意味する言葉といたしましては、あくまで「パイプ」と称するべきなのでありまする、だそうです。
まあ、そりゃあ、確かに、そうなのですけれどねぇ。
デバイス[1]のエンドポイント[2]に接続したINパイプ[1]を使って…、なんて言っていると、ただでさえややこしいのに、そのうち、「さっぱりわけわかめ」になってしまいまする。
わかりやすいように、パイプにエンドポイントナンバーというラベルを貼りつけてもいいことにしましょうよお。
CPUをつくろう!第425回(2010.1.30upload)を再編集
PICでUSBを![第33回]
2011.7.10upload
前へ
次へ
目次へ戻る
ホームページトップへ戻る