ブログ | Granite River Labs

組込みでFAIL多発要注意! NSFメッセージ | GraniteRiverLabs

作成者: GRL Team|Sep 1, 2020 6:30:00 PM

組込み関係の方、必見!NSF(No Silent Failure)メッセージはご存じでしょうか?

世の中、20、40Gbpsといった高速信号のインタフェイスの話題が目立ちますが、なにをおっしゃる、日本は組込みですよお~。まだまだUSBもフルスピードですよぉ~。と、うちの組込み柱が言うので、そういえば昔からルールはあるけど浸透していない、そして浸透していないがゆえにFailが多発している項目、NSF 「ノー・サイレント・フェイラー」メッセージについて、ぜひ日々組込み開発に奮闘していらっしゃる方々にお伝えし、Failをなくし一発合格!そして製品品質向上のお役に立てたらと考えています。

 

目次

 

No Silent Failure Messageとは

ホスト側の機能として、サポートしていない周辺機器が接続されたときや、エニュメレーション(デバイス検出)に失敗したときに、そのまま何もせず無視するのではなく、“サポートしてないデバイスが接続されました” や、“許容数を超えています”など接続できない理由を何らかの方法(テキスト/ディスプレイ表示や、LEDの点灯など)でユーザへ通知しなければならないという仕組みです。
USBの主な機能は「ホットプラグ」および「プラグアンドプレイ」であるため、USB周辺機器の動的接続は、周辺機器およびホストのUSB認定における信条です。 すべてのUSB対応ホストとUSB周辺機器は、周辺機器の接続と再接続において正しく動作できる必要があります。このUSBの考え方はユーザ視点に立って相互接続を実現するべくテスト設計されおり、USBロゴ認証試験が開始されたときから十数年経過してもブレていません。
NSFメッセージは、PC関連はメジャーなOSがサポートしてくれているのであまり気にしなくてよいのですが、それ以外のホストでは重要な開発のファクターとなります。

 

USBのEmbedded Hostとは

それ以外のホスト...PCではなく、USBホストコントローラーによってサポートされるStandard-AまたはMicro-ABレセプタクルが1つ以上ある製品で、現在はType-C®コネクタも含まれます。 機能や用途が制限され、接続されるターゲットペリフェラルが限定されます。On-The-Go A Deviceもエンベデッドホストと同じ扱いとなります。
よく目にするプリンタについているタイプAポート、ICカードリーダが接続されているレジ、産業機器、タイプC充電のスマートフォンもデータ転送ができるタイプはエンベデッドホストになります。

 

Target Peripheral とは

エンベデッドホストは、Windows OSやMacOSなどのPCとは異なり、すべてのタイプのUSB周辺機器の動作をサポートする必要はありません。 エンベデッドホストはサポートする周辺機器を宣言し、限定して使用することができます。サポートする周辺機器のことを「ターゲットペリフェラル」と言います。実際にUSBロゴ認証を取得する場合は、「ターゲットペリフェラルリスト」(TPL)をUSB-IFへ提供する必要があります。

 

No Silent Failure Message の要件

 

非対応デバイスが接続されたとき

サポート外のデバイスが接続され動作しない場合は、“未サポートデバイスが接続されました”などのメッセージが求めれます。

 

エニュメレーションに失敗したとき

何らかの理由で所定時間(最大30秒)以内にでエニュメレーション(Set_Configurationまで)を完遂できないときにメッセージ表示が求められます。

 

電流が超過したとき

エンベデッドホストは,全てのTPに対して、 Configuration Descriptor中のbMaxPower以上の供給能力が必要です。よって、TPを直接接続した場合、電流超過は起こらないことが前提となります。その 一方,ハブがACアダプタを持たず、バスパワーで動作する場合、1ポートに対して最大100mAまでしか供給できない(USB2.0仕様)ため、バスパワーのハブを介して接続したデバイスのbMaxPowerが100mAを超過する場合、電流超過のメッセージ表示が求められます。

 

同時動作デバイス数の超過

TPを複数同時に接続した場合、任意のデバイス数を超過した際にメッセージ表示が求められます。

 

USBハブをサポートしていないとき

ハブをサポートしていないポートにUSBハブが接続されたときメッセージ表示が求められます。

 

USBハブサポート段数超過

ハブをサポートしているとき、任意の段数を超過した場合はメッセージ表示が求められます。

 

NSFメッセージ表示について

メッセージ表示方法の仕組みは定義されておりません。

開発機器にディスプレイがあれば、テキスト表示やアイコン表示が適切です。

ディスプレイがなければ、ブザー音、LED点灯/点滅などで表すことも許容されています。

※ハブ未サポートとデバイス未サポートのメッセージは異なるメッセージでなければなりません。

 

Embedded Host で許容される仕様

  • USBハブをサポートする必要はありません。
  • USBハブのサポート段数は任意です。
  • サポートするTPの数は任意です。
  • TPは、エニュメレーションを確認でき、デバイス選択するなどのオペレーションが可能であれば、同時に動作させる必要はありません。
  • サスペンド/レジウム機能のサポートは任意です。 

 

No Silent Failureの評価について 

実際の試験では、マニュアルオペレーションで目視確認です。また、「非対応デバイスが接続されたとき」と「エニュメレーションに失敗したとき」の確認は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の商標登録です。