モバイル・ロボットは、産業オートメーションからサービス・ロボットまで、幅広いアプリケーションで活用が進んでいます。このようなロボットは複雑なタスクを担い、管理されていない環境で稼働することから、動作の信頼性と安全性を確保することが極めて重要です。
NXPの新しいMCXマイクロコントローラ・ポートフォリオは、このような課題に対応するために役立ちます。高性能なArm® Cortex®-M33コアをベースとしたMCX MCUは、高度な誤り検出、誤り訂正機能を内蔵しているため、高レベルの信頼性と安全性が求められるモバイル・ロボットの開発に最適です。
モバイル・ロボットの信頼性と安全性に関する一般的な懸念点
モバイル・ロボットは、周囲の環境認識、意思決定、動作の制御をオンボードのエレクトロニクスに大きく依存しています。しかしながら、極端な温度変化、振動、電磁干渉などのさまざまな要因により、動作環境が過酷になる場合があります。このようなストレス要因によって、時間の経過とともにロボットのメモリにビット・エラーや破損が生じる場合があります。モバイル・ロボットは長い耐用年数が想定されていることからも、長期にわたるエレクトロニクスの信頼性について考慮する必要があります。
産業用自律搬送ロボット (AMR)
モバイル・ロボットでは、メモリ・エラーがさまざまな信頼性および安全性の問題を引き起こす可能性があります。ロボットの制御ファームウェアでビット反転が発生すると、ロボットが誤った命令を実行する可能性があり、意図しない挙動につながるおそれがあります。破損したセンサ・データが誤って解釈され、ロボットが誤った判断を下す可能性もあります。モータ制御の出力エラーがあると、想定外の挙動を示したり、ロボット自体またはその周囲に損傷を及ぼしたりする場合があります。
人の近くで稼動するモバイル・ロボットなど、セーフティ・クリティカルなアプリケーションでは、このような誤動作が重大な結果をもたらすおそれがあります。信頼性と安全性に優れた動作を確保するために、モバイル・ロボットではメモリ・エラーに対する堅牢な保護が必要です。
エッジ・プロセッシングを活用することで、リアルタイムの意思決定と高い自律性が実現します。NXPのモバイル・ロボティクス向けソリューションをご覧ください。
MCXに搭載されたフラッシュおよびRAMの誤り訂正機能
NXPのMCX Aマイクロコントローラ・シリーズには、メモリ・エラーを検出して訂正するための重要な機能が複数組み込まれています。MCX Aには、誤り訂正符号 (ECC) 機能付きの最大128 KBのフラッシュ・メモリが組込まれています(MCX Aリファレンス・マニュアルのセクション4.5参照)。MCX Nシリーズは、ECC付きの最大2 MBのフラッシュ・メモリを搭載します。128ビット・ワードの各フラッシュには、9 ビットのECCデータが追加されています。
ECCは、各データ・ワードに冗長ビットを格納するという手法です。ECCビットを再生成し、読み取りごとにそれを格納済みのECCと比較することで、データの完全性を確認するために役立ちます。再生成されたECCビットと保存されたECCビットが一致しない場合は、エラーがあることを意味し、ECCでこれを修正できる可能性があります。シングルビット・エラーの場合、ECCを利用してどのビットがエラーであるか判断することもできます。ただし、ダブルビット・エラーの場合は、検出できるのみで訂正することはできません。
モバイル・ロボットの例
マイクロコントローラがECCエラーを検出した場合、システム・コントローラ (SYSCON) モジュールはバス障害を生成するか、割込みを使用してエラーを処理することができます。柔軟な障害処理機能を利用して、固有のアプリケーションで最適になるよう、処理をカスタマイズできます。
また、MCX Aは32 KBのオンチップSRAMのほか、シングルエラー訂正とダブルエラー検出のためのECCが組込まれた8 KBブロック (RAMA0) を搭載しています(SEC-DED - MCX Aリファレンス・マニュアルのセクション9.1.2参照)。MCX Nシリーズは、ECCとして構成された場合に最大416 KBのRAMを備え、うち32 KBはVBATモードで保持できます。この機能により、センサー入力やアルゴリズムの状態変数などの重要なランタイム・データが保護されます。このマイクロコントローラは、エラーの包括的な報告や制御を行うエラー報告モジュール (ERM) を実装しています。ERMは、ECCロジックのエラー・イベントをキャプチャして記録し、メモリ・サブシステムの状態を可視化します。このエラー情報を、診断や予知保全に活用することができます。
自己診断を目的として、エラー注入モジュール (EIM) にECC RAMの読み取り時にエラーを注入する機能があります。このセルフテスト機能を使用して、定期的なセルフチェックを実行してマイクロコントローラが確実に動作することを確認できます。
MCX Aシリーズには、ECCに加え、さまざまなメモリ領域における読み取り、書き込み、実行の権限に関するランタイム・セキュリティ制御を可能にするメモリ・ブロック・チェッカー (MBC) が搭載されています(MCX Aリファレンス・マニュアルのセクション45.1参照)。メモリ・アクセス・ポリシーを定義することで、MBCにより不正なメモリアクセスを防止できます。
MCXのエラー訂正によりロボットの信頼性が高まる仕組み
MCXの誤り訂正機能は協調して動作することで、モバイル・ロボットの信頼性と安全性を高めます。フラッシュ・メモリのシングルビット・エラーが自動的に修正されるため、ロボットの制御ファームウェアの完全性が維持されます。この完全性によって、ロボットが誤った制御ロジックを実行し、意図しない挙動が発生することを防止します。
MCXにはダブルビット・エラーを検出する機能が備わっていますが、これは動作の安全性と信頼性を確保するために極めて重要です。ダブルビット・エラーを修正することはできませんが、エラー検出によって破損した命令やデータの使用を防ぐことができます。ダブルビット・エラーが検出された場合、ロボットを問題なく安全な状態に導き、潜在的な危険や誤動作を回避できます。
MCXのECCではメモリ保護機能が拡張されており、フラッシュのみならずSRAMまでカバーされています。MCX Aの8 KB RAMA0 SRAMブロックにはECCが組み込まれていますが、MCX NはRAMGとRAMHをECCの訂正にも利用できるため、ECC RAMは最大416 KBになります。ECC RAMは、ランタイム・データのシングルビット・エラー訂正とダブルビット・エラー検出を可能にします。この機能によって、センサの読み取り値、制御出力、アルゴリズムの中間変数などの重要なデータをシングルビット・エラーの蓄積から保護し、ロボットの知覚、プランニング、制御ロジックに不整合が発生することを防止できます。MCXのSRAM ECCはこのランタイム・データの完全性を維持することで、ロボットの状況認識および意思決定において正確性と信頼性を維持するために役立ちます。MCX Nはさらに最大32 KBのECC RAMを備え、それをVBATモードで保持できるため、低消費電力状態でもデータを維持することが可能です。
MBCは、メモリ保護ポリシーを適用することで安全性をさらに高めています。MBCは不正なメモリ・アクセスをブロックできます。これにより、障害を抑止し、制御されないロボットの挙動を防止できます。
またERMを利用して、データ駆動型アプローチによるロボットのメンテナンスが可能になります。ERMはメモリのエラー・イベントを記録し、ロボットのエレクトロニクスの状態を可視化します。訂正されたエラーが増加した場合は障害の兆候が現れていると考えられ、ロボットを予防的に整備することができます。
ユース・ケースの例
インダストリアル環境で稼動するモバイル・サービス・ロボットについて考えてみましょう。そのロボットは、障害物や人を避けながらタスクを実行するよう、自律的に移動する必要があります。
モバイル・サービス・ロボット
しかし、インダストリアル環境には電磁干渉 (EMI) を発生させる機器があることから、ロボットにとって困難な環境になっている場合があります。時間とともに、EMIによってロボットのメモリにビット・エラーが発生する可能性があります。
MCXのECCは、EMIによって引き起こされるシングルビット・エラーを検出して訂正し、ロボットが制御ロジックを正しく実行するようにします。さらに深刻なダブルビット・エラーが発生しても、MCXがそれを検出し、破損したデータが使用されるのを防ぎます。ロボットはその後で、安全なシャットダウンを開始できます。
このようなイベント全体を通じて、MCXのERMがエラーの発生状況を記録します。メンテナンス・スタッフはこの記録を監視して、潜在的な障害を示す何らかの傾向がないか注意することができます。ロボットを予防的に整備することで、ダウンタイムが最小限となり、安全性も維持されます。
MCUXpresso開発者エクスペリエンス
MCXを使用した迅速なプロトタイプ作成のために、NXPは低コストのFRDM開発プラットフォームを提供しています。FRDM開発ボードは、標準のフォーム・ファクタとヘッダー、MCU I/Oへの簡単なアクセス、オンボードMCU-Linkデバッガ、USB-Cケーブルを備えています。
また、NXPのGitHubでは、アプリケーション・サンプルも配布しています。これはアプリケーション・コード・ハブ (ACH) ポータルから入手できます。MCUXpresso IDEとMCUXpresso for VS CodeにはACHブラウズ機能が組み込まれているため、利用可能なデモやサンプルを簡単に検索して、デバイス別、アプリケーション・テクノロジ別、ペリフェラル/機能別に絞り込んだ後で、プロジェクトを直接読み込んで利用することができます。
拡張ボード・ハブ (EBH) は、NXPのSDK Builderサイトの拡張機能です。ここでNXPやパートナーが提供するさまざまなアドオン・ボードを探して、選択した評価ボードの機能を拡張できます。このハブでは直感的に使えるフィルタ機能によってボードを簡単に探し、利用可能なサポート・ソフトウェアを見つけることができます。手持ちのボードとさまざまな種類のシールドを組み合わせることで、特定のユース・ケースやアプリケーションを対象として、短期間で評価とプロトタイプ作成を実施できます。
信頼性と安全性に優れたモバイル・ロボティクスを可能にするNXP製品
モバイル・ロボットの自律化が進む中で、ロボットの動作の信頼性と安全性が不可欠なものとなっています。この問題に対処しなければ、厳しい動作環境によって引き起こされるメモリ・エラーにより、ロボットが想定外の挙動を示すおそれがあります。
NXPのMCXマイクロコントローラ・ポートフォリオは、エラー訂正機能のほか、信頼性の高いロボットへのニーズに対応する十分な機能を備えています。フラッシュおよびSRAMのECC保護から、ランタイム・メモリ・アクセス制御やエラー・イベントの記録まで、MCXはメモリ・エラーに対する何層もの保護機能を備えています。
信頼性と安全性の最適化を目指すモバイル・ロボット設計者の方は、ぜひNXPのMCXをご検討ください。高度なアーキテクチャと包括的な機能セットを備え、信頼性できる自律型ロボットを開発できる強力なプラットフォームです。