- ベストアンサー
USBの基礎知識
プリンターケーブルを眺めていて次の疑問をもちました。ご回答は項目別であろうとなかろうと、全部に答えようと一部であろうと、素人向けの説明ですから多少は不正確であろうとなかろうと、一切ご自由です。締め切るときに全体として、まぁまぁ疑問が解けたら、うれしいです。 1 異質のデバイスを何故同じコネクタに接続できるのか。各デバイスに私はプリンターですよ、メモリーですよ、マウスですよといった識別するICでも埋まっているのか。 2 マウスが4ピンで済むのは分かるとしても、プリンターやスピーカーなどは必要な情報量が多そうに思えるのに何故4ピンで済んでしまうのか。そもそも見掛け通り4ピンなのか。ディスプレーやLANもUSBで処理が可能なのか、不可能だとすれば可能と不可能を決定付けるものは何か。 3 36ピンも必要だったものが何故4ピンで済んでしまうようになったのか。何かの速度が上がったためにパラレルという複雑な処理をしなくて済むようになったということなのか。USBインターフェースの開発に成功した主因はアイデァの優秀さにあるのか、それとも何らかのハードの進歩の結果であってアイデアには、さほどの価値はないのか。 PCを使う者なら知っていて悪くない程度のお答えで十分です。簡便であれば、これこれを読めといった資料のご紹介でも結構です。 以下のページは一応、読みましたが疑問は解けませんでした。よろしくお願いします。 (http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%B9_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF) http://ja.wikipedia.org/wiki/IEEE_1284 http://ja.wikipedia.org/wiki/Universal_Serial_Bus )
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
興味を持たれることは良いことですね。 1.USBの端子に機器を刺すと「ドライバをインストール中」というのが表示されます。 機器は,自分がどんな機器であるかパソコンに通知します。 パソコンは機器に合ったドライバというプログラムを自動的にインストールします。 このドライバが,その機器に合った制御を行います。 2.何でもUSBで信号をやり取りすることはできます。 しかし,ディスプレイはUSBでデータを送るとディスプレイ側で送られた信号を 処理して表示する回路が必要になるのと,細かい画面の制御を行うためには, プログラムを動かすCPUが直接制御できるほうが処理が楽になるため, 本体の方に制御する回路を設けています。 LANはわざわざ信号の変換を2回も繰り返すより1回で済ました方が良いのと, 企業が大量にLANで接続するPCを導入するようになりコストが下がったため 本体に内蔵されるようになりました。 3.パラレルのプリンタは36ピンでしたね。しかし,その中で必要なのは 10ピン足らずでした。ただ,その10ビンにペアになる信号線,他のコネクタに 間違ってささないようピン数が決まってました。その後,パソコンでは 25ピンが使われるようになりました。 10ピンの中で文字を表すために使われていたのは8ピンでした。それ以外は 紙切れやプリンタが稼働中かの表示に使われていました。 パラレルでもシリアルでもデータを表す単位の基本は0と1で状態を表す ビットという単位になります。これを8つ同時に送るのがパラレル, 1つずつ送るのがシリアルになります。 おばさま方がデパートの入口に向かっていくときはたいがいパラレルで, でも入口は1人ずつしか入れないのでシリアルになります(笑) パソコンでもこれと同じ事をやっていて,パソコンの内部では主にパラレル, マザーボードと言われるメインの基板からでるところは シリアルを使っています。 昔々はシリアルよりパラレルのほうが早いと言われて,データを高速で 送る場合はパラレルが使われていました。しかし,技術が進歩して短い時間を 正確に計ることができるようになり,シリアルで送られてきた信号を正確に 8つに分割できるようになりました。そこで,銅線の使用量が少なくて済み ケーブルが細く引き回しが楽なシリアルが多く利用されるようになりました。 処理自体はパラレルのほうが楽なのですが,パラレルとシリアルを行うICが 安価に提供されるようになったため,処理を気にするより安いICを使った方が 開発コストが安く済むようになりました。 古くから携わっている者から見ると,すごい新しい技術と言われてる多くが, 昔々に試験していた技術が現在の技術でよみがえったように感じます。
その他の回答 (5)
- parts
- ベストアンサー率62% (6366/10151)
1.は既に回答があるように、Vender、Classという定義があるのです(これは、デバイスマネージャーでUSB機器のドライバの詳細を見れば確認できます) 元々USBはホストコントローラによって制御されています。ホストコントローラにはOHCI(Open Host Controller Intarface)、UHCI(Universal Host以下略)、EHCI(Enhanced Host...)と3種類があります。このコントローラがUSBにどのようなハードウェアが接続されているかを識別します。このうちEHCIは通信速度が480MbpsのUSB2,0規格に準じており、UHCIとOHCIの機器ともフル互換性があります。 このホストがUSBに機器が繋がったと判断した際にハードウェア情報をUSB機器のデバイスコントローラにお前は何者か名を名乗れと質問し、デバイス側がそれに答えるのです。これによって、VenderIDとClassIDを取得しハードウェアの種別を識別します。ここまで識別されたなら、その先にあるハードウェア制御を行うファームウェア情報も必要に応じて取得し、ハードウェア個別の型番(モデルナンバー)の提供も受けます。VenderIDとClassIDまでがUSBホスト内だけの仕事でその先の型番取得とドライバのインストール、IRQの登録はプラグアンドプレイと呼ばれるOSの機能によって行われます。 2、全て可能ですね。世の中にあるデバイスはドライバさえ準備でき速度において問題がなければ、USBで接続できるようにすることは可能です。可能と不可能の違いは、即ちメーカーがそれを作るかどうかの問題です。ただ、USBには欠点がありホストコントローラ1台に対してUSB2,0であれば最大60MB/s(480Mbps)しか速度がありませんから、例えばUSBでハードディスク(約40MB/s)とプリンタ(スプール時最大10~30MB/s)、テレビチューナー(約5~30MB/s前後)などを繋ぐと1つの機器がシェアード(占有)できる帯域は狭くなります。その結果、通信品質が低下したり、場合によっては動作が不安定になりダウンすることもあります。 そのため、一定の通信品質が必要な機器(例えばディスプレイ)などの接続には向かないのです。 尚、既にReady状態のUSB3,0ではそういう機器も解像度さえ選ばなければ普通に繋げられるようになるかもしれません。 3、既に回答があるようにUniversal Serial BusはSerial転送の技術革新によって誕生したものです。同期の速度を改善し、外部からのノイズに対するケーブルの耐性なども改善されたことで成立した技術です。これらの技術は現在のデジタルディスプレイ端子で有名なTMDS(HDMI、DVI、UVDなどの映像端子の素となりTMDSは1ch辺り1Gbps以上、最大10Gbps以上の通信速度を持つ映像転送技術の中心技術となった)などにも採用されています。 ちなみに、転送技術は最初に大きく普及したシリアルから始まり、パラレル技術が全盛を迎え、再びシリアルに戻ってきたという過程があります。歴史は繰り返すといいますが、技術も限界に到達すると前の技術が革新されて再び使われることが多い傾向にあります。これは、論文などで古い論文のこれは当時使えないと思っていた理論が、別の技術に応用すると素晴らしい革新に繋がるケースがあることや、コストの壁が一定の時間を空けることで改善することなどによります。 最近では、CPUが昔の技術の応用に戻りつつあります。まあ何でも静養する時間や熟成する時間が必要なのです。 尚、インターフェースの成功というのは、そもそも技術の革新ではなく、最初から各メーカーで標準化を目指した端子であったためある意味では当たり前のことです。主力メーカーの全てが採用を目指せば当然普及します。ただ予想外に成功した部分もあるでしょう。まさか扇風機や携帯電話充電などの電源として使われるとは当時の開発者も思っていなかったでしょうけどね。
お礼
PC関係に限らず、理論、技術、価格などが適正にバランスしたとき初めて一般社会で日の目を見るのだと納得できました。 このご回答は私にはレベルが高過ぎますが、その代わり、より高い次元での解説を希望している方や専門家志向の方々には、よきガイダンスになるものと思います。 有り難うございました。またの機会にもよろしくお願いします。 初心者向けの解説と上級者向けの解説とが出揃ったところで締め切ることにします。只今19時前です。原稿の準備をされている方があってはいけないので21時まではこのままにしておきます。それ以後は当方の都合次第で締め切ります。皆さん有り難うございました。
- Wr5
- ベストアンサー率53% (2173/4061)
>しかし、プリンターであれメモリーであれマウスであれ共通して接続できます。これは何が接続されたかをPCが判断していることになりませんか。何によってこの判断をしているのかという疑問です。 USBは、接続された機器のIDなどを取得するコマンドで接続された機器を判別します。 その際、どのIDのグループがどの機器に対応するか…というのが規格で決められていますので、判別できるようになっています。 # どのポートに接続されているか…というのも判別できます。 新しい機器などの場合は、USBに接続する前にドライバのインストールを行うものがありますが、OSのIDグループ一覧に無いような機器の場合に、接続語のドライバインストールを容易にする為に先にインストールしています。 # デバイスクラスといったかな? # 「USB Mass Storage Class」とか。 # http://e-words.jp/w/USB20Mass20Storage20Class.html
お礼
非常時用として手元に確保してあるノートPCのマウスは見るからにみすぼらしいです。一方、プラグインプレイは新しい技術だと思っていました。こんな古びたマウスがプラグインプレイ用に自分のIDを送ったりしているとは思っていませんでした。それが接続された機器を何によって識別しているか推測できなかった理由でもあります。 互いにきちんと身元を明かしているのが分かって、よく納得できました。 有り難うございました。またの機会にもよろしくお願いします。
- u-bot
- ベストアンサー率58% (1736/2988)
2.ディスプレイやLANをUSB接続する機器が売られています。 ただし、USBの速度がネックとなるのと、CPUに余計な処理負担を強いるためキワモノ扱いです。 ノートなどどうしてもUSBでしか増設できない場合や増設を楽にしたい以外はあまり使いません。 3.シリアル転送になったからピンが減った パラレルだから速いとかシリアルだから速いわけではありません。 両者は良いところと悪いところを持っています。 ・パラレル 良い所:低い転送速度で多数のデータを転送できる 悪い所:複数データの信号の足並みが揃っていないといけない シリアル 良い所:ピンの個数がすくなくて済む 悪い所:多くのデータを転送するのに高速な通信が必要 技術が発達して高速通信ができるICが簡単に安く手に入るようになったためシリアルが台頭してきました。 補足: HDDの端子もパラレルATAからシリアルATAに移行しています。 最初はパラレルでも十分だったのですが、さらなる高速化のために速度が33MB/sから66MB/s、100MB/s、133MB/sとどんどん上昇しました。 しかし信号間のばらつきを押さえるために制限として最大ケーブル長が短くなり、隣接する信号への影響を抑えるために信号間にアースを入れたためケーブルの取り回しがやっかいになりました。 そのためシリアルATAが開発され今にいたります。 話を元に戻してUSBですが、現在USB2.0の改良版であるUSB3.0が開発中です。 質問者さんのリンクではピン数が4ピンから10ピンに増えていると記載されています。 最初は光接続が考えられていたと思いますが、光ケーブルは曲げに弱いので普通の銅線になったみたいですね。
お礼
2について 十分ではないにしても、すでに、ディスプレイやLANをUSB接続する機器が売られているのですね。遠からず普及しそうです。 3について パラレルとシリアルの長所欠点がよく分かりました。 素人としては、PCの外部にあって目に見える範囲の変化にしか気付きませんが、実は目に見えないPCの内部の変化の方がよほど激しいのだろうと想像しました。 36ピンから一気に4ピンに減り10ピンに増えそうなのは意外です。36、18、10、6、4の流れで変化しそうなものなのに・・・。2進数に乗らないのは電源の2本の関係ででもありましょうか。ピンの数が機械的に変化しないのは純粋に技術上の問題だけでなく需要や価格との兼ね合いなどを総合判断して、36から4になり10ピンの開発になったりするのかも知れないと推測しました。 有り難うございました。またの機会にもよろしくお願いします。
- shintaro-2
- ベストアンサー率36% (2266/6245)
1について 送るのは、データのみでなく識別情報も付いていいます。 従って、受け取ったデバイスで、自分宛のデータでなければ捨てます。 また、PCに対しても、誰が送った情報なのかは判別できるようになってます。 2について 4ピンのうち、2ピンは電源です。データ用は残りの2本です。 プリンタやSCSIで多数の端子が必要だったのとの違いは、パラレル通信かシリアル通信かの違いです。 100Mbps程度のLANなら余裕です。 ディスプレイも原理的には可能ですが、USBがもっと高速にならないとXGAの表示はカクカクとしたものになります。 XGAなら、RGB各色8ビットリフレッシュレート60Hzとして、バスには最低データ用として1024*768*8*3*60bps必要です。更に制御コードが付加されることを考えれば、もっと高速である必要があります。 3について USBが成功した理由は、ハードの低価格化が容易なのと、ユーザにとっても受け入れやすかったからでしょう。 デバイス毎に異なる規格のケーブルで接続するのは大変ですから。 デバイス(IC)の高速化も要因ですし、周辺機器で扱うデータが多くなったのも要因です。パラレルケーブルで多数の端子を高い周波数で駆動するのは、出力端子にとっては大きな負荷です。
お礼
1 について >>識別情報も付いています。 よく分かりました。考えてみると複雑な情報を遣り取りするのですから、頭に識別情報をつける位は何の負担にもならないのかもしれません。そのうちマウスでも分解してみようと思います。簡便な基盤が仕組まれていると予想します。 2について 4ピンのうち2ピンは電源で、データ用には2ピンだけだと知って、ますますビックリしています。素人の直感にしか過ぎませんが2ピンだけでプリンターやスピーカーを動かせるのは情報の遣り取りが恐ろしく高速になったのだと想像します。 根拠のない推測ですがパラレルは少しでも速くするための苦肉の策だったのかなと思います。 どうやらUSB化の可能不可能は単位時間当たりに必要なデータ量によって決まるらしいと理解しました。 3について 実際、USBは簡便でありがたいです。ハードの低価格化が大きな役割を果たしたのですね。そういえば、お陰でケーブルの値段も随分安くなりました。 USBには利点が沢山あるばかりでなく、パラレルバスには欠点があることも知りました。 有り難うございました。またの機会にもよろしくお願いします。
- goold-man
- ベストアンサー率37% (8364/22179)
1 識別するICによるのでなく、ドライバのインストールにより異質の仕事を認識させている。 USBの仕組み
補足
このご回答で満点なのかも知れませんが私には分からないところがあります。 幾つもあるドライバーのうちどれを用いて情報を処理するべきかをPCが判断するためには、それに先立って何が接続されたかを識別する必要があるのではないですか。識別された後にはドライバーが事実上の仕事をしているのだと理解できます。 例えば手元のノートPCでいえば、USBポートは一つしかありません。しかし、プリンターであれメモリーであれマウスであれ共通して接続できます。これは何が接続されたかをPCが判断していることになりませんか。何によってこの判断をしているのかという疑問です。 よろしくお願いします。
お礼
1 よく分かりました。機器を接続後少し間が空いて認識されるのは、認識するための時間とドライバの選択時間なのかなと想像しました。 2 :原理としては「何でもUSBで信号をやり取りすることはできる」のだと理解しました。言われてみれば十分なビット数を与えさえすれば何でも0と1だけで表現できそうな気がします。とはいえ、ディスプレイや LANなどの例にみられるように特性によって使い分けないと経済的に損失が出そうです。 3 36ピンの大半が遊んでいるとは意外でした。文字、書体、色、サイズ、位置、そういう諸々の情報がないと印刷できない筈なのに、たった8ピンで十分なのは予想外でした。同時に何故36ピンも必要なのかとの疑問も解けました。 処理自体はパラレルの方が楽だというのも意外でした。到着順に処理すればよいのだからシリアルバスのほうが人間にとっては工夫が要らず楽そうに思っていました。素人考えでした。 >>技術が進歩して短い時間を正確に計ることができるようになり,シリアルで送られてきた信号を正確に8つに分割できるようになりました。 識別可能時間が短縮されたのですね。時間差を認識できるか否かも重要な要素なのが分かりました。(余談ですが、私は毎日、何月であるかと曜日は間違えませんが何日であるかは、しばしば分からなくなります。一度だけ確かめればその日は大丈夫です。) 理論としては可能であってもハードの進歩や価格の低下がないとアイデアも生きないことが分かりました。 有り難うございました。またの機会にもよろしくお願いします。