クラスの拡張ステート マシン
NFC CX ステート マシンの内部設計を次に示します。 NFC CX で指定されたさまざまな状態と、状態遷移の原因となる内部イベントと外部イベントが図にキャプチャされます。 読みやすくするために、一部の状態間の一部の遷移が図に示されていないことに注意してください。 NCI RF ステート マシンへのマッピングと共に、状態について詳しく説明します。
状態 | 説明 |
---|---|
StateIdle | NFC デバイスの電源が入っているが、コントローラーに NCI コマンドが送信されない場合、または NCI 操作中に回復不可能なエラーが発生した場合は、StateIdle が入力されます。 |
StateInit | HARDWARE_ACTION Start が NFC CX に送信されると、StateInit が入力されます。 NCI リセット、NCI 初期化、NFC チップセットの構成は、この状態で行われます。 後続のすべての状態 (この表の下) は、この状態が完了した後に発生します。 |
StateRfIdle | NFC コントローラーは正常に初期化されますが、RF ポーリング ループは無効になっています (つまり、ポーリング フェーズとリッスン フェーズの両方が無効になっているか、構成されていません)。 NFC 操作が不要な場合、デバイスは StateRfIdle に入ります。 この状態のときに UMDF アイドル検出タイマーが有効になり、このタイマーの有効期限が切れると、チップセットが初期化解除されます |
StateRfDiscovery | NFC コントローラーには、ポーリングフェーズまたはリッスン フェーズ用に構成された検出ループがあります。 検出ループを有効にする前に、一部の探索パラメーターの構成もこの状態で行われます。 |
StateRfDiscovered | RF リモート エンドポイントが検出され、選択され、デバイス ホストと通信するために RF インターフェイスがアクティブ化されました。 これは過渡的な状態です。 |
StateRfDataXchg | デバイス ホストと RF リモート エンドポイントは、ポーリング モードまたはリッスン モードでデータをアクティブに交換しています。 この状態は、NCI RF ステート マシンの状態RFST_POLL_ACTIVEまたはRFST_LISTEN_ACTIVEの両方を対象とします。 |
StateRecovery | この状態は、NFC デバイスがホストにCORE_R Standard Edition T_NTFを送信したとき、または致命的な I/O エラーが発生した場合、NCI 操作中にタイムアウトが発生したときに入力されます。 NFC CX は、コントローラーをリセットして再初期化することで、NCI 回復を実行しようとします。 通常の操作は、回復が成功した場合に再開されます。それ以外の場合、ステート マシンは StateIdle に移行します。 |
StateShutdown | NFC デバイスがシャットダウンされようとしています。 これは過渡的な状態です。 この状態が完了すると、ステート マシンは StateIdle に移行します。 |