#23 USBの設計とはーパターン設計編

サマリ

想定読者:パターン設計に興味がある方 / 想定時間:30分~35分程度
 第23回目のテーマは、USB周辺のパターン設計について取り扱います。


#1 高速な信号伝送に差動信号あり

 これまでの記事で触れてこれなかった差動信号について、ようやく紹介することができます。差動信号とは、ポジ/ネガ両方を同時に伝送する技術(仕組み)のことです。言葉だけだとピンとこないと思いますので、まずは下図を見てください。


 特徴としては、”通常の信号”と”反対の位相の信号”を同時に伝送しています。これだけですが、様々な特徴があります。
 まず、シングルエンドの場合、信号伝送の戻りはICのGNDを経由して戻りますが、差動信号の場合は反対の極性がすぐ近くにありますので、戻りの線路が相対的に短くなります。結果的に(短くなることで)線路中のノイズを拾いにくくなることから信号品質向上に貢献します。
 次に、同時に送信することから、2本の線路間で信号の伝搬が実施されます。シングルエンドだと周囲に発散していくのですが、差動の場合はすぐ横に反対の極性があることからEMIの観点からも優れています。
 また、内部回路構成がシンプルで実現できます。骨格としてはカレントスイッチ回路(比較的シンプルにトランジスタ2つの構成との理解でOKです)のみで構成されていることから、チップ自体の製造時に複雑な制御回路を用意することなく実現できます。
 最後に、受信側では、減算処理を実施することが最大の特徴です。ポジ/ネガの情報のネガ側を反転させ、その情報を加算し、1/2にします。反転させると何が嬉しいかというと、両方とも同じノイズであれば、逆算して加算(つまり減算)することで打ち消し合う効果が期待できるためです(※あくまでイメージで、実際の内部回路がこの通りではありません)。これより、差動信号は同相のノイズ(例えば外部から来る電波など)にはかなり強い耐性を持つと言えます。なお、当然ながら仕組み上、逆相や単層に乗ってしまったノイズの除去までは実施できませんが、それでもかなり強い耐性を持っています。

 よって、これまでの内容をまとめると、差動信号は、同時に伝送するからこそノイズ耐性が向上するという特徴を持ち、また、伝送するための内部回路の容易さからも高速信号で取り扱われることが多い、非常に優秀な技術になります。

#2 差動信号を優先してパターンを配置

 それでは、差動信号の仕組みや特徴を理解したところでパターン設計に移りましょう。

 差動信号の特徴は、同じ信号を逆位相で同時に伝送するからこそ、ノイズ耐性が付く内容でした。ここから、信号波形はできる限り同タイミングであることが望ましいと捉えることが出来ます。
 これを実現するためには、等長配線は厳守になります。ポジ/ネガ間で線路長が違うと、到達する時間差が出てしまうことが予想できますよね。
 両方の伝送路に共通のノイズが付加された状態であれば相殺できる性質からも、極力2本は離さずに引くことが求められます。
 細かいですが、意識しなければならないのが、ポジ/ネガ間のビア数の考慮です。部品配置や等長配線を調整した結果、内層や背面にパターンを引くことも多いのですが、片方だけ+1個ビアがあるだけでも、信号品質に影響します。差動信号の場合は高速の信号を取り扱うことが常ですので、とにかく短く、ビアも少なく、かつ、両配線とも同質になるように設計する必要があります。

 信号線自体を引けたら、後はGNDパターンにも気を配る必要があります。高速信号である以上、適切に保護しないとすぐに受信側でビット化けが発生してしまいます。狭い範囲に押し込むようにパターンを引くのではなく、ある程度ゆとりを持ったスペースを確保する必要があります。
 これらのように、考慮すべき内容が多く、なかなか全部を最高の形で設計しきることは難しいです。調整していく中で、コネクタの配置も一考の余地があります。思い切ってコネクタ配置を変えることで、成り立たせることもありました。(ただし、元々の制約上動かせない場合には、ICの位置を微調整して何とか対処しました)


 これらの内容を頭に入れた状態で、データシート(TUSB8044A)に記載のあるパターン例を見てみましょう。それぞれUpstream側とDownStream側の例が記載されています。屈折する部分(パターンが折れ曲がる部分)は”反射”する箇所になり信号品質を悪くしてしまうため、極力直線で、最短距離で引いていることがわかります。当然、ポジ/ネガ間は等長配線になっていることもわかりますね。緑色の部分がGNDになっていますが、かなり厚めに保護されている(囲まれている)ことも見て取れます。
 このように、高速信号になればなるほど、パターン設計では優遇して引くことになります。反面、それ以外の回路では残りのスペースで工面しながら設計していくことになります。



#3 他も極力パターンが短くなるように検討

 高速信号を優先的に引いた後のスペースをうまく使いながら、他の回路も検討します。とにかく全てにおいて言えることは、なるべくICの近くに周辺パーツを構成することです。パターンは短いことに越したことはありません。その他注意すべきポイントを一つの記事で全ては解説しきれないので、まずはどこでも流用できる汎用的な設計思想をまとめたいと思います。
 
 どのような部分でも高速な伝送路ほど短く、等長配線を心掛けることが重要です。例えば、メインクロックに使用される発振器も24MHzと、回路によっては遅いじゃないかと思われると思いますが、この品質が崩れていればそもそもチップの動作自体も不安定になってしまいますので、差動信号の時と同様な心遣い、チップの近くに配置して、GNDも広く、配線長を短くするような設計を実施します。

 マニアックではありますが、コンデンサや抵抗の置き方にも注意が必要です。例えば、よくデータシートに数十Ωの抵抗を線路に置くことが書かれていると思いますが、その位置にも注意すべきポイントがあります。
 上記の抵抗の場合、終端抵抗の役割を担うため、できるだけICの近くに配置することが信号品質の維持に貢献します。(逆に、真ん中に置くと効果が薄れます)※もし、詳細を知りたい方は、信号の”反射”を調べると、最近では動画付きで解説が見れます。
 コンデンサだと、例えば電源部分につけることが多いですが、これにも意味があります。特に小さい容量のコンデンサの役割は急峻な変動に対する即時性になります。小さなコンデンサをICから遠くに配置すると、道中の伝送路の影響も受けることから効果が薄れてしまいますので、なるべくICの近くに来るように調整します。なお、この際たる例が、CPUの裏側の中央にあるコンデンサですね。


CPUの背面の中央にコンデンサが配置されている例(wikipediaより。参考URL:https://ja.m.wikipedia.org/wiki/LGA1356

 基本的には経験則から注意すべき点が見えてくるのですが、高速信号であればあるほど、品質の担保が難しくなってきます。そこで、波形シミュレーションで確認することも有効になります。シミュレーション上では、見落としがちなコネクタ自体の損失も考慮でき、送信側と受信側の動線路の全てを模擬して解析しますので、その波形が美しければひとまず実機でも動作しそうだと安心することが出来ます。最終的には実機での計測を元に、例えば終端抵抗を微調整するなど対策を実施していきますが、一度回路が出来てしまうとハードウェアでの修正はその程度しかできないため、手戻りを極限まで減らすためにもシミュレーションで確認しておくことはかなり有益になります。





 ハードウェアに関する設計について、ここまで見てきました。次回はチップの中のレジスタ(設定)について見ていきたいと思います。