世の中、20、40Gbpsといった高速信号のインタフェイスの話題が目立ちますが、なにをおっしゃる、日本は組込みですよお~。まだまだUSBもフルスピードですよぉ~。と、うちの組込み柱が言うので、そういえば昔からルールはあるけど浸透していない、そして浸透していないがゆえにFailが多発している項目、NSF 「ノー・サイレント・フェイラー」メッセージについて、ぜひ日々組込み開発に奮闘していらっしゃる方々にお伝えし、Failをなくし一発合格!そして製品品質向上のお役に立てたらと考えています。
目次
ホスト側の機能として、サポートしていない周辺機器が接続されたときや、エニュメレーション(デバイス検出)に失敗したときに、そのまま何もせず無視するのではなく、“サポートしてないデバイスが接続されました” や、“許容数を超えています”など接続できない理由を何らかの方法(テキスト/ディスプレイ表示や、LEDの点灯など)でユーザへ通知しなければならないという仕組みです。
USBの主な機能は「ホットプラグ」および「プラグアンドプレイ」であるため、USB周辺機器の動的接続は、周辺機器およびホストのUSB認定における信条です。 すべてのUSB対応ホストとUSB周辺機器は、周辺機器の接続と再接続において正しく動作できる必要があります。このUSBの考え方はユーザ視点に立って相互接続を実現するべくテスト設計されおり、USBロゴ認証試験が開始されたときから十数年経過してもブレていません。
NSFメッセージは、PC関連はメジャーなOSがサポートしてくれているのであまり気にしなくてよいのですが、それ以外のホストでは重要な開発のファクターとなります。
それ以外のホスト...PCではなく、USBホストコントローラーによってサポートされるStandard-AまたはMicro-ABレセプタクルが1つ以上ある製品で、現在はType-C®コネクタも含まれます。 機能や用途が制限され、接続されるターゲットペリフェラルが限定されます。On-The-Go A Deviceもエンベデッドホストと同じ扱いとなります。
よく目にするプリンタについているタイプAポート、ICカードリーダが接続されているレジ、産業機器、タイプC充電のスマートフォンもデータ転送ができるタイプはエンベデッドホストになります。
エンベデッドホストは、Windows OSやMacOSなどのPCとは異なり、すべてのタイプのUSB周辺機器の動作をサポートする必要はありません。 エンベデッドホストはサポートする周辺機器を宣言し、限定して使用することができます。サポートする周辺機器のことを「ターゲットペリフェラル」と言います。実際にUSBロゴ認証を取得する場合は、「ターゲットペリフェラルリスト」(TPL)をUSB-IFへ提供する必要があります。
サポート外のデバイスが接続され動作しない場合は、“未サポートデバイスが接続されました”などのメッセージが求めれます。
何らかの理由で所定時間(最大30秒)以内にでエニュメレーション(Set_Configurationまで)を完遂できないときにメッセージ表示が求められます。
エンベデッドホストは,全てのTPに対して、 Configuration Descriptor中のbMaxPower以上の供給能力が必要です。よって、TPを直接接続した場合、電流超過は起こらないことが前提となります。その 一方,ハブがACアダプタを持たず、バスパワーで動作する場合、1ポートに対して最大100mAまでしか供給できない(USB2.0仕様)ため、バスパワーのハブを介して接続したデバイスのbMaxPowerが100mAを超過する場合、電流超過のメッセージ表示が求められます。
TPを複数同時に接続した場合、任意のデバイス数を超過した際にメッセージ表示が求められます。
ハブをサポートしていないポートにUSBハブが接続されたときメッセージ表示が求められます。
ハブをサポートしているとき、任意の段数を超過した場合はメッセージ表示が求められます。
メッセージ表示方法の仕組みは定義されておりません。
開発機器にディスプレイがあれば、テキスト表示やアイコン表示が適切です。
ディスプレイがなければ、ブザー音、LED点灯/点滅などで表すことも許容されています。
※ハブ未サポートとデバイス未サポートのメッセージは異なるメッセージでなければなりません。
実際の試験では、マニュアルオペレーションで目視確認です。また、「非対応デバイスが接続されたとき」と「エニュメレーションに失敗したとき」の確認はUSB-PETでのAutomation Embedded Host Testの中で実施されます。
最近は、USB挿抜が頻繁に行われるようになったので、「動かないなぁ、」と思うと一度ケーブルを抜き差ししますが、それでも動作しないと、故障か、つながらないデバイス、と判断されかねません。
実は、「サポートしていないデバイスなのです」ということも多分にあるかと思います。iPhoneもNSFメッセージが表示されることにお気付きでしょうか。クレームにならないようにするにはこう言ったひと手間が必要だったりするのです。USBが普及しているのはUSB-IFがユーザ視点に立った仕様設計を行い、テストプログラムを徹底してきたからに他なりません。そこには各メーカーの開発者の皆様の血の滲むような努力と汗と涙があったに違いありません。あっ、今も奮闘中ということで承知いたしました。ニュースレターを通じて何かのきっかけになればと思います。
USBロゴ認証試験をご注文いただけますと、もう少し具体的な対応・対策について事前にお話させていただきます。「一発合格」できるよう、GRLとしてサポートいたします!
GRLでは1台で開発やテストをお手伝いできるツールや、評価を実行できるソリューションを用意しております。
皆様の理解と今後の開発時に少しでもお役に立てれば幸いでございます。
ご質問やご相談はお気軽にどうぞ。
参考ドキュメント
On-The-Go and Embedded Host Supplement to the USB Revision 2.0 Specification Revision 2.0 version 1.1a July 27, 2012
Compliance Plan for USB On-The-Go and Embedded Host 3.0 Release 1.0USB-IF OTG & EH 3.0 Working Group 5/10/2013
USB On-The-Go and Embedded Host Automated Compliance Plan for the On-The-Go& Embedded Host Supplement Revision 2.0 Version 1.2 July 27, 2012
USB4™、USB、USB-C®、USB Type-C®、USB-IFはUSB Implementers Forumの商標登録です。