USB(Universal Serial Bus)とはCompaq(現hp)、DEC(Compaqに買収後Compaqをhpが買収)、IBM、Intel、Microsoft、NEC、Northern Telecomの7社が中心となって策定した規格で最初のバージョンであるUSB 1.0は1996年1月に発表され、これを改良したUSB 1.1が1998年9月に発表されました。USB 1.1は、主に周辺機器における消費電力の仕様など、USB 1.0における仕様書で曖昧だった点を厳密に規定したもので基本的にはさほど変わっておりません。
現在USBには1.1と2.0がありますが、あまりご存知でないかもしれませんが、USB1.1はUSB接続の周辺機器とコンピュータ本体の通信を制御するUSBコントローラの種類にUHCIとOHCIの2つありこの2つはまったく互換がありませんのでドライバもすべて別になっています。稀にUSBの機器でNEC製のチップが良いとかIntelのマザーボードでないと動かないとかあるのはこれが要因のこともあります。
UHCI(Universal Host Controller Interface)とはIntelが主導になって策定された規格で同じチップセットも製造しているVIAが賛同しておりこの2社のチップセットはUSB1.1はUHCIになります。インターフェイス部分がシンプルになっておりその分コストが低くチップセットベンダーにとっては良いのですが、シンプルが故にCPUの負荷などが高くなります。
OHCI(Open Host Controller Interface)はCompaq(現hp)、Microsoft、National Semiconductorが共同で策定した規格でnVIDIA、Sis、ALiなどIntelとVIAを除くほぼすべてのベンダーはOHCIを採用しています。UHCIと比べてバスマスタ転送をサポートしているためCPU負荷がほとんどかかりません。IntelとVIA以外はOHCIを採用しているためNECなどもこちらになりUSBの拡張カードはほぼすべてバスマスタをサポートしているOHCIになります。
UHCIは2社だけですが、いかんせんこの2社でPCのチップセットシェアを大多数持っていますので必然的にPCではUHCIが標準になっています。
ユーザーにとってはこの2つの互換のない規格のことを気にする必要はないのですが、USB周辺機器ベンダーはどちらでユーザーが使用するのかわかりませんので両方対応するドライバを用意しなくてはいけません。互換が無いということはドライバの出来も違う訳でIntelマザーボードでは大丈夫だったのにnVIDIAに変えたらなんだか動きが変ということは十分ありえます。
USB2.0では目先のロイヤリティよりも互換性やベンダー負担などを考えてかIntelが主導でロイヤリティフリーでEHCI(Enhanced Host Controller Interface)を公開し、各ベンダーは対抗規格を立ち上げることも無くEHCIが普及しています。EHCIはUHCIとOHCI双方の上位互換となっていますのでUSB2.0ではどのプラットフォームでも同じになりますので安心です。
ただしEHCIはUSB2.0の動作時のみの話ですので最近のUSB2.0対応マザーボード、拡張カードを使用するときでもUSB1.1動作ではUHCIとOHCIに分かれてしまいます。例えばIntelはEHCI/UHCIになっていてnVIDIAなどはEHCI/OHCIという形になっています。
OHCIマザーボードでUHCIは使えないのかと思われるかもしれませんが、IntelのUSBはチップセットに統合されているのでUSB専用でチップは作っていないと思いますので拡張カードは見たことがありません。唯一見たことあるのはVIAのUSBコントローラーを積んだものがあります。VIAですのでUHCIと思いますが、玄人志向のUSB2.0V2-PCIだけぐらいでしょうか。この商品初回出荷時にドライバにウイルスが混入していて印象に残っています。回収後ドライバを新しいものにした現在のV2ですが教訓を活かしてMcAfee製Anti-Virusが同梱されています。
ちなみにMacはOHCIを採用しています。OSが違いますので同じOHCIでもWindowsとはその他のドライバが別ですのでUSB機器全体としてみたときの動きとしては別のものです。(例えばUSBのMIDIインターフェイスが動作するにはUSB以外にもそのインターフェイスのその物のドライバが必要ということです)
USBには長さ制限があります。Low-Speed 1.5MHzは3mまで、High-Speed 480MHz、Full-Speed 12MHzは5mまでになります。これは、USBで接続した機器間の最大データ遅延を30ナノ秒(LSは18ns)と規定しているため、ケーブルの材質などから長さの制限が生じるためです。5m以上接続したい場合はUSBのリピーターケーブルもしくはUSBハブを使用することで可能です。USBハブは最大6階層まで使用できるので計算上30mまで延長可能です。しかしケーブルを長くするとそれだけ不安定な要素が増えますのでハブを使用しても総延長が5m以内に留めておく方が安定して使用できると思います。
コラムということで以上で締めくくりとさせていただきますが、参考資料としてデータ転送方式などを記しておきます。