ためになるケーブルとコネクタの話 USB編

※この記事は、[mast Advent Calendar 2018](https://adventar.org/calendars/3322) の3日目の記事です。

電子機器を持っているなら必ずと言っていいほどケーブルは欠かせない
しかし案外ケーブルのことって知らないんだなぁって
そこで備忘録代わりにケーブルの話をまとめようと思う

#基本的な話
ケーブルについて話すのにあたって言葉の整理をしようと思う

##ホスト
電子機器をつなぐとき必ず出てくるのがこの言葉、**ホスト**
電子機器をつないだとき親になる機器のことを **ホスト** と呼ぶ
普段使っているデスクトップPCやラップトップPCがこれにあたる

##デバイス
これも必ず出てくる言葉、**デバイス**
電子機器をつないだとき子になる機器のことを **デバイス** と呼ぶ
PCにつなぐものは大体これ
USBメモリやハードディスクドライブ、Webカメラ、マウス、キーボードなどがこれにあたる

(総称みたいなものですね)

##端子
電線を接続するための部品のこと
端の子、つまりは端(はし)っこ、ケーブルの端っこである
オスとメスがあり、ケーブルと機器、ケーブルとケーブルをつなげるためにある
基本的に機器にはメス、ケーブルにはオスがついていることが多い
形状に特徴があり形状ごとに名前がついてる
ただ、端子の形状をみただけでは対応している規格を当てることは無理

この記事ではコネクタとも呼ぶ(表記ゆれごめん)

##ケーブル
絶縁体と保護被覆で覆われた電線のこと
実際に電気信号が流れる導線のこと
素材や太さはものによって様々 ~~[要出典]~~
絶縁体の内側には複数の導線をもつものもある(というか基本複数の導線)

この記事では端子を含めたケーブルのことを指す場合もある(表記ゆれごめん)

##規格
決まりごとのこと
端子の形やどの導線にどの信号を流すか
速度、送るデータのプロトコル(ホストとデバイスが通信をする際の手順や規約などの約束事)
などが決められている

---
大体の接続の関係を図で表すとこんな感じ
[ホスト]---[端子(メス)]--< <--[端子(オス)]---[ケーブル]---[端子(オス)]--> >--[端子(メス)]---[デバイス]

ケーブルを理解するには、

- 端子の形状
- ケーブル中を流れる規格

の主に2つを理解する必要がある。

#USB(Universal Serial Bus)
*人類がコンセントの次に覚える穴はUSB(Type-A)メスである。*

コンピュータを使ったり、スマートフォンを持つ21世紀前半の人間なら必ずみたことがあり
語呂が良いためか
「USB(メモリ)にデータをいれて」
「USB(ケーブル)を持ってきて」
「USB(端子)に挿せばいいよ」
「USB(端子)ついてる？」
と「USB」に略されがち
この記事ではマジレスして「USB」はシリアルバス規格「ユニバーサル・シリアル・バス(Universal Serial Bus)」のことなので何でも「USB」って略さないで!!

##USB端子
なんでも形から入るのは大事なので、形から話すのが妥当だと思う

###USB Type-A
USB端子で人気ナンバー1を誇る形状、USB端子といったらコレ
幅12.00±0.10mm 高さ4.50±0.10mmの長方形のオス端子
USB1.0,1.1,2.0では4本の信号線、USB3.0,3.1,3.2では9本の信号線が実装されている
USB3.xの端子はオスもメスも基本的には青くなっているか**SS**のマークがついてある。
~~MacBookPro2015のUSB端子は信号線9本あるのに青くなってないし**SS**のマークがないんだよなぁ~~
![USBTypeA.jpg](https://qiita-image-store.s3.amazonaws.com/0/224134/b41993a2-54e6-840d-0a66-ddbf878a57ab.jpeg)

※手書きはきれいに書けば一番応用が効く

###USB Type-B
ホストはUSB Type-Aメス、デバイスはUSB Type-Bメス
ホストとデバイスをつなぐのはType-Aオス-Type-Bオスのケーブルが伝統的 ~~[要出典]~~
ホストとデバイスの親子関係を明確にするために、端子の形状を変えるのは天才すぎる
外付けのハードディスクドライブやプリンタなどの周辺機器によくついている
筆者はArduino UNOでお世話になっている
~~USB3.x Type-BはKinect v2でしか見たことがない...~~

USB2.0オス
高さ7.26±0.10mm、幅8.00±0.10mm

USB3.xオス
高さ10.44±0.10mm、幅8.00±0.10mm
![USBTypeB.png](https://qiita-image-store.s3.amazonaws.com/0/224134/15860472-bc50-9a56-fa01-aab944dc8194.png)

###mini USB
こちらもホストはUSB Type-Aメス、デバイスはmini USBメス
ホストとデバイスをつなぐのはType-Aオス-mini USBオスのケーブルといった感じだろう
歴史的経緯は詳しく調べてないが小型化を目指したという気持ちを感じる
ビデオカメラには多く生息している
身近なものとしてPSPにはmini USB Type-Bがついてる
![miniUSB.png](https://qiita-image-store.s3.amazonaws.com/0/224134/ca72eedc-eeff-1e10-2fef-e29041fa0c25.png)

###micro USB
同じことを何度でも言おう
ホストはUSB Type-Aメス、デバイスはmicro USBメス
ホストとデバイスをつなぐのはType-Aオス-micro USBオスのケーブル
2度あることは3度あると思いきや、micro USB端子はホスト側でもありえることがある
スマートフォンの普及でだれでもみるようになった端子
Lightningケーブルなら「iPhoneの充電器」
micro USBのケーブルなら「Androidの充電器」
と呼ばれるほどスマートフォンに定着した
スマートフォンがホストになる場合があり
この場合は「ホストとデバイスをつなぐのはType-Aオス-micro USBオスのケーブル」ではなくなる
mini USBよりも小型化をしてやるという強い意思のもの策定されたと思われる ~~[要出典]~~
その小型化の甲斐あってここまで普及し、USB 3.xの規格に対応した端子もあるんだろう
スマートフォンはもちろん、カメラ、ハードディスクドライブなど **データをやり取りする機器** にはmicro USBの端子がまぁついている

![microUSB.png](https://qiita-image-store.s3.amazonaws.com/0/224134/ee6b9465-b34b-1b32-b6d0-ce3b74aa21d0.png)


###USB Type-C
AndroidスマートフォンやMacBookに搭載はされていたが
AppleのMacBookPro Late2016モデルを発端に加速的に普及しはじめたUSB Type-C
~~そもそもUSB1.xの普及に貢献したのはAppleの初代iMacという噂~~
電源もデータも処理も映像もこれ一本
12x2本の信号線を持ち端子を挿す向きはどちらでも良い
このType-Cについては後述する

![USBTypeC](https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/USB_Type-C_plug_pinout.svg/560px-USB_Type-C_plug_pinout.svg.png)
画像は [https://ja.wikipedia.org/wiki/USB_Type-C](https://ja.wikipedia.org/wiki/USB_Type-C) より引用

##USBの信号
一体信号線にどんな信号が流れているかというのは、一度は思うもの
簡単なことはまとめとこうと思います(USB3.0 Type-A,B,micro USB 3.0 Type-BとUSB Type-Cは除く)

上のUSB端子の図には電極に当たるところと対応するように1-4番、1-5番がふってあり下の表に対応した信号が流れている

**USB1.x Type-A/B USB2.0 Type-A/B**

| PIN番号       |  ホスト側 |    デバイス側    |
|:-------:|:-----------------|:------------------|
|1|$V_{bus}$ 4.75V~5.25V|$V_{bus}$ 4.4V~5.25V|
|2|D-|D-|
|3|D+|D+|
|4|GND|GND|

**mini USB 2.0 Type-A/B micro USB2.0 Type-A/B**

| PIN番号       |  ホスト側 |    デバイス側    |
|:-------:|:-----------------|:------------------|
|1|$V_{bus}$ 4.75V~5.25V|$V_{bus}$ 4.4V~5.25V|
|2|D-|D-|
|3|D+|D+|
|4|ID|ID|
|5|GND|GND|

$V_{bus}$というのは、電源線で約5Vの電源をデバイス側に供給してる
2,3番のD+/D-はデータを送る信号線で、[差動伝送](https://www.murata.com/ja-jp/products/emiconfun/emc/2013/10/15/en-20131015-p1)になっています
データを送るのに2本信号線が必要ということは、USB1.x,2.0は **半二重通信方式** なわけで **送信と受信を同時にすることはできません**
4番のIDは[USB On the Go](https://yuyu.miau2.net/usb-host-cable-otg/)のための信号線で、空きにするかGNDにショートさせるかでデバイスになるか、ホストになるかが変わります
GNDは説明いらないですよね

##USB規格
実際、ホストとデバイスをつないで電子機器の恩恵をおけるだけのユーザーはUSBケーブルを使って **何メートルの長さ** まで **どれ位のスピード** でデータを転送できればいいだろう
興味がある人は、[ここ](https://www.usb.org/)にUSBの規格書があるのでそれを紐解くと良い
~~マジで一個人が読んですべてを理解できる量じゃねぇ...~~

###USB 1.x
一番最初のUSBは、1996年に策定されたUSB1.0であり
その2年後の1998年にUSB1.0の電源管理等について改善した形でUSB1.1が策定された
最大 **12Mbps** の転送速度でケーブル長は **5mまで**
最大 **1.5Mbps** の転送速度でケーブル長は **3mまで** です

ちなみに転送速度12Mbpsを **FullSpeed**
転送速度1.5Mbpsを **LowSpeed** と呼びます

###USB 2.0
USB2.0は2000年に策定されました
最大 **480Mbps** の転送速度でケーブル長は **5mまで** です
最大 **5V500mA** の給電能力があります
USB2.0の規格書は[ここ]
(https://www.usb.org/document-library/usb-20-specification-released-april-27-2000)にあります

転送速度480Mbpsだと **HighSpeed** と呼びます
~~Fullとは一体何だったんだろうなぁ~~

###USB 3.x
USB3.0は2008年に策定されました
今度は最大 **5Gbps** の転送速度でケーブル長は **3mまで** になり
**SuperSpeed** と呼びます
最大 **5V900mA** の給電能力があります
さて、突然早くなった転送速度、従来のUSB2.0より信号線を5本多くすることで最大 **5Gbps** の転送速度を実現しました(他にもいろいろ工夫はあるけど)
従来のUSB2.0と区別するために、端子を青くしたり **SS** マークをつけるようにしました

USB3.0の策定から5年経った2013年、USB3.1が策定されました
このUSB3.1には、 **USB3.1 Gen1** と **USB3.1 Gen2** の2種類あり厄介...
USB3.1 Gen1はほとんどUSB3.0と同じと思ってもよい感じだが
USB3.1 Gen2は最大 **10Gbps** の転送速度
最大 **5V1000mA** の給電能力になりました
今後は **SuperSpeedPlus** と呼びます...

2017年には、USB3.2が策定しました
USB3.2では最大 **20Gbps** の転送速度です
両端USB Type-Cのケーブルの利用でこの速度が実現しました
USB3.1 Gen2を2レーン使うことでこの速度を実現したんですね...
※両端USB Type-CのケーブルでもUSB3.2に対応してないものもあります

##USBの異端子 USB Type-C
上にあげただけでもUSB Type-Cを除いて9種類の端子と7つの規格のバージョンを持つUSB
いろんなニーズ合わせてUSB端子つくり規格を改良してきたことでUSBケーブルの世界は混沌としてきました
電子機器をつくるベンダーは新しい製品にどのUSB端子、どのUSB規格を採用するか頭を抱えるばかり
電子機器を使うユーザーは、中身の知らないブラックボックスをこれならば使えるんじゃないかとUSBケーブルを購入

**まさに地獄**

そこで現れた救世主的存在、それはUSB Type-Cです
MacBookProLate2016がでたとき、みんなボッコボコにしていましたけど
いまでは、これが無いと生きていけない状態
筆者もMacBookProLate2016でUSB Type-Cの恩恵を受けてます

**さて本当に地獄を脱することができたでしょうか**

答えは **NO!!**
本当の地獄はもしかしたらこれからかもしれません
USB Type-Cがやった偉業は何でしょう？

それは、「「「すべての端子を吸収したことです」」」

つまり、
USB2.0 Type-Aの端子もUSB Type-Cに
USB3.0 Type-Aの端子もUSB Type-Cに
USB2.0 Type-Bの端子もUSB Type-Cに
USB3.0 Type-Bの端子もUSB Type-Cに
mini USB Type-Aの端子もUSB Type-Cに
mini USB Type-Bの端子もUSB Type-Cに
micro USB Type-Aの端子もUSB Type-Cに
micro USB Type-Bの端子もUSB Type-Cに
micro USB3.0 Type-Bの端子もUSB Type-Cに
そしてUSBだけじゃなく
HDMIの端子もUSB Type-Cに
DisplayPortの端子も
mini DisplayPort端子もUSB Type-Cに
Thunderboltケーブルの端子もUSB Type-Cに

すべてがCになる

このUSB Type-Cのケーブルは一体なんの規格に対応したケーブルなんだろうか
端子によってある程度見分けられていた世界をUSB Type-Cはブラックボックスに閉じ込めてしまいました

はたして、我々は規格にとらわれない世界を待つべきかブラックボックスからかつての世界を取り返すべきか...

![USBTYPEC](https://cdn-ak.f.st-hatena.com/images/fotolife/m/masa_flyu/20181028/20181028211022.png)
画像は [iPad ProのUSB-Cでできることの予想](https://www.shujima.work/entry/2018/10/29/004136) より引用

ちなみに筆者はUSB Type-Cを便利で素晴らしいものだと思っています

#最後に

この記事を書くにあたって、様々な資料を見返し、
その中でこのような記事もみつけました
[仕様書を紐解くとわかる―本当はややこしいUSB](https://thinkit.co.jp/article/11142)
この記事にもあるようにUSBというのは、本当にややこしいが
すべてのニーズに答えていくユニバーサルを実現するデータ転送バス規格USB
よくできているからこそベンダーが取り入れユーザーが普及させてきた規格なんだと思いました

本当ならこの記事に映像ケーブルのことも書きたかったのですがこれは次回ですね
こんな調子で次は映像編を書いてみようと思います

##最後の最後に
以下の5か条は大切なので心がけてほしいです

**どのケーブルにも言える5か条**
1. 端子と規格を覚えて正しい利用
2. 端子はまっすぐちゃんと挿す
3. ケーブルは踏まない(電源と目張りされたケーブルは別)
4. ケーブルに負荷をかけない(束ねる、端子付近に荷重等)
5. 端子をねもとからちゃんと抜く