何気なく使っている通信仕様。
過去はRS-232C、RS-422、RS-425というものがありました。
今ではUSBが普及し、Eatherも一般化しつつあります。
さて、我らが(?)GR-SAKURA(RX63N)にもUSB、Eatherが搭載されています。
GR-SAKURAで使うにはライブラリを組み込むだけなのですが、少し工夫が必要です。
この工夫を知るためにもまずはUSBの仕様をおさらいしよう、というのが本記事の趣旨です。
USB2.0のプロトコル
物理層
電源(VBUS)と差動信号(+D/-D)、GNDの4線からなります。
GR-SAKURAでは既に基板配線されているので、特に問題はないかと思います。
データ転送
USBはHostとDeviceが相互に情報をやり取りして制御情報(接続・切断、デバイス種類、通信仕様など)やデータの通信を行います。また、データ転送にはコントロール転送(制御情報)、バルク転送(非同期転送:ファイル転送等)、インタラプト転送(周期転送:マウス/キーボード等)、アイソクロナス転送(同期転送:USB Audio等)があります。
USBではHost-Device間で情報のやり取りをする際、エンドポイント(EP:伝送情報)とパイプ(伝送路)を利用します。
制御情報を扱うエンドポイント番号、パイプ番号が0に特定されています。
バルク、インタラプト、アイソクロナスではパイプ/エンドポイント番号は自由に振れますが制約はありますので、詳しくはRX63Nのハードウェアマニュアルを参照してください。
転送種類
- コントロール転送
- インタラプト転送
- バルク転送
- アイソクロナス転送
USB接続やデータをやり取りする際の制御情報を転送します。情報はHost-Device双方向で行うため、パイプは1本です。
少量のデータを周期的に取得する際に利用する方式です。マウスやキーボードに利用されます。パイプはIn/Outで一本ずつ必要です。
大量のデータを不定期に転送する方式です。メモリカードやHDDからのデータ転送などに利用されます。パイプはIn/Outで一本ずつ必要です。
リアルタイム性が必要なデータを転送する方式です。音声や動画データの転送に利用されます。パイプはIn/Outで一本ずつ必要です。
ここまでの内容は「Universal Serial Bus Specification Revision 2.0 April 27, 2000」に記載されています。