プロローグ 
レガシーフリー宣言! ――USBのすすめ

USBのすすめ

 USBとはユニバーサルシリアルバスの略で,キーボードやマウス,プリンタなど,あらゆる周辺機器を一つのインターフェースで接続することを目的とした規格です.

 USBはシリアルバスなので信号線の本数が少なく,それゆえ扱いやすいケーブルで接続できます.また,たとえば一つのCOMポートには1台のモデムしか接続できませんが,USBはUSBハブを使って簡単にポートを増やすことができます.またSCSIではIDの設定が必要でしたが,USBではその必要がありません.

 このような使い勝手の良さが,USBを普及させた大きな要因といえるでしょう.

 現在では,USBを装備していないPCは皆無といってもよいでしょう.また,USBで接続できないPC周辺機器は,ディスプレイくらいのもので,それ以外はありとあらゆる周辺機器がUSBで接続可能になっています.

組み込み機器のUIとして

 それ自身にキーボードや表示デバイスをもたない組み込み機器の場合,動作モードやパラメータを設定する必要があるときにはどうすればよいでしょうか.

 数ビット分のモード切り替え程度であれば,ディップスイッチなどを実装する程度で済みますが,さまざまなモードやパラメータを必要とする場合は,何らかのユーザーインターフェースを実装して,メニューなどから設定させるようにするでしょう.

 このようなインターフェースとして,これまではRS-232-Cを使ってターミナル機能を実装するのが一般的でした.RS-232-Cのような調歩同期式のシリアルコントローラは,単体プロセッサでもないかぎり,組み込み向けマイコンであればほぼ必ず内蔵されています.これにRS-232-CドライバICを接続するだけで,電気的なインターフェースは完成するので,実装が簡単なのです.

 しかし現在では,COMポートをもたないノートパソコンが過半数を占めています.不具合の発生した組み込み機器に,現地調査でノートパソコンをもっていったが,COMポートがなくて接続できなかったという笑い話を,あなたも体験するかもしれません.

USB2.0で高速転送

 USBは,さらに通信速度を高速化したUSB2.0の登場で,HDDやDVDドライブなどのストレージデバイスの接続インターフェースとしても十分実用的になってきました.組み込み機器でも,この高速データ転送能力は魅力的です.

 たとえば,ネットワークに接続する組み込み機器の場合,UIの切り口としてもEthernetを使うことがよくあります.telnetで接続してターミナルを実現する簡易的なものから,中でhttpサーバを走らせ,WWWブラウザから設定が行えるGUI対応の高機能なものまであります.

 しかし,100Base-TのEthernetで10Mバイト/秒を超えるデータ転送は実現できません.10Mバイト/秒を超えるような高速データ転送を必要とするなら,USB2.0が最適です.

 とくにネットワークに接続する必要のない機器であれば,PCとの接続インターフェースとして,現在ではUSBを採用するのが最適でしょう.

USBとIEEE1394

 USB1.1の頃は,USBとIEEE1394を比較した場合,IEEE1394には高速データ転送が可能という利点がありました.しかし,USB2.0の登場によって,この差はほとんどなくなったといえるでしょう.とはいっても,USBが高速化された現在でも,この両者は決定的に異なる点があります.

 IEEE1394には,基本的にホストやターゲットという区別はありません.すべての機器が対等で,ポイントtoポイントで接続することが可能です.そして,必要があれば自分からデータ通信を開始することができます.

 USBはホストとターゲットが明確に区別されていて,頂点に立つホストは,そのツリーの中でただ一つしか存在できません.また,ターゲットは自分からデータ通信を開始することはできません.あくまでホストからの問い合わせに応えるというプロトコル構造になっているのです.

 以上のような違いから,USBはホストであるPCを中心に,キーボードやマウス,プリンタやデジカメといったPC周辺機器を接続するインターフェースとして急速に普及しているのです.

USB On-The-Go

 ここにUSB対応のプリンタとデジカメがあったとします.そこにPCがあれば,PCをホストとしてプリンタとデジカメをターゲットとして接続します.デジカメで撮った写真はいったんPCに転送し,それからプリンタで印刷します.

 しかし,そこにPCがなかったとしたらどうでしょうか.デジカメはあくまでUSBターゲットなので,USBプリンタと直接接続することができません.つまり,デジカメで撮った写真を印刷することができないのです.

 そこで,USBターゲット機器に一時的にUSBホストの機能を持たせ,USB周辺機器同士を直接接続できるようにしたのがUSB On-The-Goという規格です.

特集案内

 第1章は,480Mbpsのハイスピードに対応したUSBターゲットコントローラEZ-USB FX2(サイプレス)の詳細について解説します.スレーブFIFOとGPIFがFX2の性能を活かすカギとなります.そして第2章では,FX2を使った高速データ転送対応USB機器の設計事例を解説します.事例では10Mバイト/秒を超えるデータ転送性能を実現しています.

 第3章では,組み込み機器にUSBホスト機能を実装するために,OHCIに準拠したUSBホストコントローラを内蔵したSH7727(日立)を取り上げ,さらに市販のUSBホスト対応プロトコルスタックの移植事例を解説します.

 また,第3章Appendixでは,USB On-The-Go対応デバイスISP1362(フィリップス)について紹介します.また,SH7727のようなUSBホストを使ったほうがよいのか,ISP1362のようなOn-The-Go対応デバイスを使ったほうがよいのかも考察しています.

 さらに第4章では,USB2.0対応のハブコントローラの内部動作について解説します.今後はハブコントローラの違いにより性能に差が出てくるかもしれません.

 最後に第5章では,これらUSB対応機器を開発する場合に力強い味方となる,USBアナライザの活用事例について解説します.

〔イラスト〕 特集で解説する分野

コラム

USB規格とUSB1.1対応コントローラの使い方

 本特集ではUSB2.0に対応したターゲットコントローラとしてEZ-USB FX2を取り上げていますが,USB1.1対応のターゲットコントローラの活用法や,Windows/Linux用のUSBドライバの作成事例などについては『USBハード&ソフト開発のすべて』に詳しい解説があります.

・第1章 USBデータ転送プロトコルの基礎知識
・第2章 USBコントローラML60851Dを使ったUSBターゲット機器の開発
・第3章 USBコントローラUSBN9602を使ったUSBターゲット機器の開発
・第4章 USBコントローラ内蔵マイコンAm186CUを使ったUSBターゲット機器の開発  
・Appendix USBアナライザが役立った
・第5章 ワンチップマイコン内蔵USBコントローラAN2131 SCを使ったUSBターゲット機器の開発
・第6章 WDMの基礎とUSBドライバの構造
・第7章 ML60851D評価ボード用テストドライバの作成
・第8章 汎用USBドライバの使い方と内部構造 ?第9章 汎用USBドライバ活用法 ・第10章 Windows2000用USBシリアルポートドライバの作成
・第11章 Windows98用USBシリアルポートドライバの作成
・第12章 Windows2000用NDIS/WDMデバイスドライバの開発
・第13章 Linux用USBドライバの作成事例

TECH I Vol.8

USBハード&ソフト開発のすべて

USBコントローラの使い方からWindows/Linuxドライバの作成まで

B5判 280ページ(CD-ROM付き)
定価2,200円(税込み)
ISBN 4-7898-3319-4

インデックス
プロローグ レガシーフリー宣言! ――USBのすすめ
第1章 USB2.0対応コントローラEZ-USB FX2の詳細
 インテリジェント型ターゲットコントローラEZ-USB FX2
 ◆1.1 FX2の概要
 ◆1.2 FX2の内部ブロック  
 ◆1.3 エンドポイント構成

今月号特集トップページへ戻る


Copyright 2003 編集部