USBとは
- USB内蔵マイコンページへ
概要
USBとは、Universal Serial Busの略称であり、1993年にCompaq社、Intel社、Microsoft社、NEC社の技術者が集結して次世代のPC周辺インターフェースの共同開発を開始したのをきっかけに、1996年に初めてUSB1.0仕様書(規格)が公開されました。1998年にはUSB1.1仕様書、2000年にはUSB2.0仕様書が発行されています。
パソコンの周辺インターフェースとしては長い間、RS-232Cやプリンタポートが主に使われてきましたが、いずれも転送速度の限界が低いことや、1ポートに1デバイスしか接続できない為、複数のデバイスを接続するにはポート数が増えてしまう難点がありました。
また、それ以外にもキーボード、マウス、ディスプレイなどは個別ポートを持っており、パソコンの背面は多種多様なコネクタで埋まってしまいます。USBは、これらのインターフェースを統合し、1個のコネクタに様々な周辺機器を接続できるようにするものです。(下図を参照)
図. PC Connectivity Vision

USBとは
特徴
1. 操作の容易性
Plug & PlayやHot Plugやバス電源に対応しているのでPC周辺機器の拡張を容易に行えます。
- Plug & Play
パソコンにデバイスを繋げると、自動的に認識されドライバがインストールされる仕組みです。 - Hot Plug
パソコンの電源ON状態でデバイスの抜き挿しが可能であることを示す一般的な表現です。デバイスの抜き挿しの際にパソコンの電源を切ったり、再起動したりする必要がありません。 - バス電源
パソコンからケーブルを介して電力が供給されます。(自分自身で電源を持つものを自己電源といいます)
2. シングルマスタ方式
USBは、シングルマスタ方式にて、データ転送が行われます。USBではすべてのPC周辺機器はパソコン(Host)によって管理されており、Hostとの間でデータをやり取りします。周辺機器と周辺機器の間で直接データを転送することは、できません。また、周辺機器からHostにデータ転送を要求することはできませんので、必ずHost側からの呼び出しに従ってデータのやり取りを行います。
3. 信号線
2本の信号線と電源線により、低コストでケーブルを構成できます。
2本の3.3V差動信号線(D+、D-)、2本の電源線(Vbus [5V]、GND)
4. データ転送速度
データ転送速度
| USB Revision | 1.0 & 1.1 | 2.0 |
| データ転送速度 | 1.5Mbps/12Mbps | 1.5Mbps/12Mbps/480Mbps |
5. 4種類の転送方式
USBには用途ごとに使い分けのできる4種類の転送方式があります。
- コントロール転送
- バルク転送
- インタラプト転送
- アイソクロナス
それぞれの転送方式については、左メニュー項目 USB転送方式 で説明します。
USBとは
Topology
USBは、以下の3つの機能によりシステム構成を行います。
Host
パソコン本体に搭載。
1台のHostに最大127のFunctionを接続可能。
(ツリーは最大6階層まで接続可能)
Hub
周辺機器の拡張を行う。モニタ、キーボード等への搭載が主流。
Function
周辺機器に搭載。
主な用途には、Classとしてプロトコルが定義されています。

USBとは
Plug
USBケーブルの両端には形状の異なるプラグが採用されています。一方を「Aプラグ」、もう一方を「Bプラグ」と呼び、それぞれツリー状の接続で上流用(アップストリーム)と下流用(ダウンストリーム)として使い分ける必要があります。
- 上流側 : Aプラグ(長方形)
- 下流側 : Bプラグ(正方形)
上流、下流とは、FunctionまたはHubからHost側を見たとき、Host側の事を上流と言います。上流のUSBデバイスには必ず「Aプラグ」用のコネクタが搭載されています。これらのプラグに違いは、逆差し防止が主な目的です。(下図を参照)
図. 2種類のプラグ

USBとは
転送速度の検出
USBの規格では、Host側に接続されたUSBデバイスのデータ転送速度を自動的に検出する為に、USBデバイスのポートにはプルアップ抵抗を接続することが決められています。(下図を参照)
- Full Speedのデバイスは、D+信号線を1.5kΩ(R2)でプルアップします。
- Low Speedのデバイスは、D-信号線を1.5kΩ(R2)でプルアップします。
Hostは、USBデバイスが接続されたら、D+とD-のどちらがプルアップされているかを検出し、それに合せた速度でデータ転送を行います。
また、ケーブルの長さは、Full Speedの場合、最大5m、Low Speedの場合、最大3mとされています。
転送速度の検出

USBとは
転送方式
富士通のUSBマイコンでは、全てのUSB転送方式に対応することが可能です。(下表を参照)
表. USB転送方式
| アイソクロナス 転送 |
インタラプト 転送 |
バルク 転送 |
コントロール 転送 |
|
| 主な用途 | USBの転送で最も優先される方式。バンド幅が保証されており、オーディオや電話等のリアルタイムが要求される転送に使用される方式 | この転送方式の特徴は遅延時間が保証されている為、急な反応が必要とされる。キーボード、ゲーム、パッドなどの転送に使用される方式 | プリンタやスキャナ、デジタル・カメラ等の大量のデータ転送を行う時に使用される方式。 | この転送はUSBデバイスのコンフィグレーションやメッセージの送受信に使用される方式。 |
|---|---|---|---|---|
| < 転送スピード > | ||||
| 12Mbps | 対応 | 対応 | 対応 | 対応 |
| 1.5Mbps | / | 対応 | / | 対応 |
| < 1パケットあたりのデータ転送量 > | ||||
| 12Mbps | 1~1023バイト | 1~64バイト | 1~64バイト | 1~64バイト |
| 1.5Mbps | / | 1~8 バイト | / | 1~8バイト |
| < 転送方向 > | ||||
| ホストPCからファンクション | 対応 | 対応 | 対応 | 対応 |
| ファンクションからホストPC | 対応 | 対応 | 対応 | 対応 |
| データ・エラー時の再要求 | なし | あり | あり | あり |
[注意事項] F2MC-8L USB内蔵マイコンは、インタラプト転送のOUT方向(ホストPCからファンクション)には対応していません。
USBとは
デバイスの構成
ホストは、各USBデバイスに割り当てたアドレスとエンドポイント番号を指定する事により、通信を行います。(下図を参照)
- アドレス
各ファンクション及びハブは、USB接続時に、ホストによって一つのアドレスが割り当てられます。接続のはじめは、必ずアドレス“0”に割り当てられます。その後、ホストによって1~127の間のアドレスどれかに割り当てられます。 - エンドポイント
各ファンクション及びハブは、エンドポイントと呼ばれるUSB転送データ用のバッファを複数持ちます。エンドポイントはFull Speedデバイスで最大16個、Low Speedデバイスで最大3個持つ事ができます。エンドポイント毎に、エンドポイント番号、転送方向、転送方式、最大パケットサイズを定義し、その指定した転送毎にエンドポイントを使い分けます。エンドポイント0は、コントロール転送をサポートし、すべてのUSBデバイスが持たなければならないものです。
図. アドレスとエンドポイント番号

USBとは
エニュメレーション
エニュメレーションとは、ホストがバスに接続されているデバイスを識別し、アドレスを指定し、収集したディスクリプタ情報を固定のものとすることです。USBデバイスはディスクリプタを使ってその属性をホストに報告します。ディスクリプタには、種類があり、ホストが要求してきたディスクリプタ情報毎にデバイスは自身の情報を返します。ホストによって、アドレスが割り当てられ、デバイスの構成が認識された時点で、USBデバイスの使用が可能になります。(下図を参照)
図. エニュメレーション

USBとは
フレーム
転送は、1msごとに反復されるフレームで時間を区切り、それぞれのフレームの中で各デバイスに少しずつ転送時間を割り当てます。ホストは、1msごとにSOFパケットを送信して、フレームを開始します。それに続いてホストがトークン・パケットを送信して、デバイスに転送の種類とデバイスのアドレス及びエンドポイントを通知します。アドレス指定されたデバイスだけが、データパケット、ハンドシェイクパケットで応答します。(下図を参照)
図. フレーム

USBとは
パケットフォーマット
USBは、これらのパケットの組み合わせて1つのフレームを転送します。ここでは、それぞれのパケットについて説明します。
すべてのパケットは、 SYNC(同期)フィールドで始まります。これは入力回路で入力データとローカルクロックとを調整するために使用され、長さは8bitです。SYNCフィールドは、同期をとるためだけに機能します。(下図を参照)
- フレーム開始パケットはSYNCの次にSOF(Start Of Frame)が続きます。

- SOFはPID(Packet ID)の1種で、フレーム開始パケット用のPIDです。フレーム・ナンバー・フィールドはフレーム数を数えるフィールドです。
- CRC(Cyclic Redundancy Check)は伝送誤りを検出するフィールドです。
- EOP(End Of Packet)はパケット終了ごとに伝送されます。
- トークン・パケットはPIDに続いて、7ビットのアドレスと4ビットのエンドポイント番号と伝送誤り検出のための5ビットのCRCを送ります。
- データ・パケットはPIDに続いて、データと伝送誤り検出の為の16ビットのCRCを送ります。
- データを受信した側がハンドシェイク・パケットを送信します。
図. USBパケットフォーマット

USBとは
パケットID
USBで定義されているPID(送信されているパケットの状態を表します)タイプを下表に示します。
表. PIDタイプ
| PIDタイプ | PID名 | PID[3:0] | 説明 |
| トークン | OUT | 0001b | ホストからファンクションへデータ送信を行うことを通知する。 |
|---|---|---|---|
| IN | 1001b | ファンクションからホストへデータ送信することを通知する。 | |
| SOF | 0101b | フレームの開始を通知する。 | |
| SETUP | 1101b | コントロール転送の開始を行うことを通知する。 | |
| データ | DATA0 | 0011b | データ・パケット(偶数) |
| DATA1 | 1011b | データ・パケット(奇数) | |
| ハンドシェイク | ACK | 0010b | データ・パケットを正常受信したことを通知する。 |
| NACK | 1010b | データ・パケットを正常受信できない、あるいは通信できないことを通知する。 | |
| STALL | 1110b | 指定されたエンドポイントがエラー状態にあり、ホストからの介入が必要であることを通知する。 | |
| スペシャル | PRE | 1100b | ホストがLow Speed転送を行うことを通知する。 |
