MCXの誤り訂正機能を使用して、信頼性が高く安全なモバイルロボットを設計する
完全自律型モバイルロボットはかつてはサイエンスフィクションの世界の話でしたが、処理、センシング、および制御の最近の進歩により、その実現が現実に近づいています。しかし、この技術が直面する主要な課題の1つは、処理操作中にエラーが発生した際にロボット自身で自己修正できる能力です。本記事では、NXP のMCX MCUが、モバイルロボットをより安全で信頼性の高いものにするための高度なエラー訂正機能について探ります。
モバイルロボットは、産業オートメーションからサービスロボティクスに至るまで、幅広いアプリケーションでますます使用されています。これらのロボットがより複雑なタスクを引き受け、制御されていない環境で動作するにつれて、その信頼性と安全な運用を確保することが重要です。
NXPの新しいMCXマイコンポートフォリオは、これらの課題に対応します。高性能なArm® Cortex®-M33コアを基盤として構築されたMCXマイコンは、高度なエラー検出および訂正機能を組み込んでおり、高い信頼性と安全性を必要とするモバイルロボットの開発に適しています。
モバイルロボットにおける一般的な信頼性および安全性の懸念事項
モバイルロボットは、環境を認識し、意思決定を行い、行動を制御するために、搭載された電子機器に大きく依存しています。しかし、温度の極端な変化、振動、電磁干渉といったさまざまな要因により、動作条件が困難になる場合があります。これらのストレッサーは、時間の経過とともにロボットのメモリ内にビットエラーや破損を引き起こす可能性があります。そのため、モバイルロボットが長い運用寿命を期待されていることを考慮すると、電子機器の長期的な信頼性を検討する必要があります。
産業用AMR
図1
モバイルロボットにおけるメモリエラーは、さまざまな信頼性や安全性の問題を引き起こす可能性があります。ロボットの制御ファームウェアでのビット反転は、誤った指示を実行させ、意図しない動作を引き起こす可能性があります。センサーのデータが損傷すると、それが誤解され、ロボットが誤った判断を下す原因となります。モーター制御出力の誤りは、予期しない動きやロボット自身またはその周囲への潜在的損傷をもたらす可能性があります。
人々の近くで動作するモバイルロボットのような安全が重要なアプリケーションでは、そのような誤動作の結果は重大となる可能性があります。モバイルロボットは、信頼性が高く安全な動作を確保するために、メモリエラーに対する強固な保護策を必要とします。
フラッシュおよびRAM向けのMCXエラー訂正機能
NXP MCX Aマイクロコントローラシリーズは、メモリエラーを検出および修正するためのいくつかの重要な機能を組み込んでいます。MCX Aは、エラー訂正コード(ECC)機能を備えた最大128KBのフラッシュメモリを搭載しています。MCX Nシリーズは、ECCを備えた最大2MBのフラッシュメモリを特徴としています。フラッシュの各128ビットワードには、9ビットのECCデータが追加されています。
ECCは、各データワードに冗長ビットを格納する技術です。この冗長ビットは、ECCビットを再生成して、読み取り操作ごとに格納されたECCと比較することでデータの整合性をチェックするのに役立ちます。再生成されたECCビットと格納されたECCビットが一致しない場合、それはエラーを意味し、ECCが修正できる可能性があります。ECCは単一ビットエラーの場合にどのビットが誤っているかを特定することもできます。しかしながら、ECCは二重ビットエラーを検出することはできますが、それを修正することはできません。
モバイルロボットの例
図2
マイクロコントローラがECCエラーを検出した場合、System Controller (SYSCON) モジュールはバス障害を生成するか、割り込みを使用してエラーを処理することができます。柔軟な障害処理により、開発者はアプリケーションに最適な方法での対応をカスタマイズすることが可能です。
MCX A は 32KB のオンチップ SRAM を提供し、8KB ブロック (RAMA0) は ECC を採用して単一エラー訂正および二重エラー検出を行います。MCX N シリーズは ECC として構成された場合、最大 416KB の RAM を提供し、そのうち 32KB は VBAT モードで保持できます。この機能により、センサー入力やアルゴリズム状態変数などの重要なランタイムデータを保護します。マイクロコントローラにはエラー報告モジュール (ERM) が実装されており、包括的なエラー報告と制御を提供します。ERM は ECC ロジックからのエラーイベントをキャプチャしてログに記録し、メモリサブシステムの健全性を可視化します。開発者はこのエラー情報を診断や予知保全に活用することができます。
For self-diagnostics, the Error Injection Module (EIM) provides capabilities to inject errors when reading ECC RAM. This self-test feature allows developers to implement periodic self-checks to ensure the microcontroller operates reliably.
ECCに加えて、MCX Aシリーズには、異なるメモリ領域に対する読み取り、書き込み、および実行の権限に関するランタイムセキュリティ制御を提供するメモリブロックチェッカー(MBC)が含まれています。メモリアクセスポリシーを定義することで、MBCは不正なメモリアクセスを防止することができます。
MCXエラー補正が信頼性の高いロボティクスを可能にする方法
MCX のエラー訂正機能は連携して動作し、モバイルロボットの信頼性と安全性を向上させます。フラッシュメモリ内の単一ビットエラーを自動的に訂正することで、MCX はロボットの制御ファームウェアの整合性を維持します。この整合性により、ロボットが意図しない動作を引き起こす可能性のある誤った制御ロジックを実行しないよう防ぎます。
MCXは、二重ビットエラーを検出する機能を備えており、これによりその動作の安全性と信頼性を確保することが重要です。二重ビットエラーを修正することはできませんが、それを検出することで、破損した命令やデータの使用を防ぐことができます。二重ビットエラーが検出された場合、ロボットを安全な状態に穏やかに移行させることができ、その結果、潜在的な危険や故障を回避することができます。
MCXのECCはフラッシュメモリを超えてそのメモリ保護機能を拡張し、SRAMをカバーします。MCX Aの8KB RAMA0 SRAMブロックはECCを組み込んでおり、MCX NはRAMGおよびRAMHをECC補正のために再利用することができ、最大416KBのECC RAMを提供します。ECC RAMはランタイムデータに対して単一ビットエラーの修正および二重ビットエラーの検出を可能にします。この機能は、センサーの読み取り値、制御出力、中間アルゴリズム変数などの重要なデータが、ロボットの認識、計画、および制御ロジックにおいて不一致を引き起こし得る単一ビットエラーの蓄積から保護されることを保証します。このランタイムデータの完全性を維持することにより、MCXのSRAM ECCは、ロボットの状況認識および意思決定を正確かつ信頼性の高いものにするのに役立ちます。さらに、MCX NはVBATモードで保持可能な最大32KBのECC RAMを提供し、低消費電力状態でデータが保護され続けることを可能にします。
MBCはメモリ保護ポリシーを強制することで、安全性をさらに高める層を提供します。不正なメモリアクセスをブロックすることができ、故障を抑え、それが制御不能なロボットの動作を引き起こすのを防ぐのに役立ちます。
最後に、ERMはロボットのメンテナンスにデータ駆動型のアプローチを可能にします。メモリエラーイベントをログに記録することで、ERMはロボットの電子機器の健康状態への可視性を提供します。修正されたエラーの発生率が増加する場合は、故障の兆候を示す可能性があり、ロボットを事前にサービスすることができます。
使用例
産業環境で動作するモバイルサービスロボットを考えてみましょう。ロボットは、自律的に移動しながら障害物や人を避け、タスクを遂行しなければなりません。
モバイルサービスロボット
図3
しかし、産業環境は困難な状況になることがあり、機器が電磁干渉 (EMI) を発生させることがあります。時間の経過とともに、EMI がロボットのメモリにビットエラーを引き起こす可能性があります。
MCXのECCは、EMIによって引き起こされる単一ビットエラーを検出して訂正し、ロボットが制御ロジックを正しく実行できるようにします。より深刻な二重ビットエラーが発生した場合、MCXはそれを検出して破損したデータの使用を防ぎます。その後、ロボットは安全なシャットダウンを開始することができます。
これらのイベントを通じて、MCXのERMはエラーの発生を記録します。メンテナンススタッフはこれらのログを監視し、潜在的な故障を示す傾向を確認することができます。ロボットを事前に整備することで、ダウンタイムを最小限に抑え、安全性を維持します。
MCUXpresso開発者エクスペリエンス
MCXを使用した迅速なプロトタイピングのために、NXPは低コストのFRDM開発プラットフォームを提供しています。FRDM開発ボードは、標準フォームファクターとヘッダー、MCUのI/Oへの簡単なアクセス、オンボードのMCU-Linkデバッガー、およびUSB-Cケーブルを備えています。
NXPのGitHubでは、Application Code Hubポータル (ACH) を使用してアクセス可能なアプリケーション例も提供されています。MCUXpresso IDEおよびMCUXpresso for VS CodeにはACHブラウジング機能が組み込まれているため、開発者は利用可能なデモや例を簡単に検索し、デバイス、アプリケーション技術、または周辺機器/機能でフィルターをかけた後、プロジェクトを直接ロードして使用できます。
拡張ボードハブ(EBH)は、NXPのSDK Builderサイトの拡張機能であり、開発者がNXPおよびパートナーから提供されるさまざまなアドオンボードを見つけて、選択した評価ボードの機能を拡張できる場所です。このハブでは、直感的なフィルタリング機能を提供し、ボードを迅速に検索し、利用可能なサポートソフトウェアを見つけることができます。開発者は、異なる種類のシールドとボードを組み合わせて、特定のユースケースやアプリケーションの評価や迅速なプロトタイピングを行うことができます。
NXPは信頼性が高く安全なモバイルロボティクスを実現
モバイルロボットがより自律的になるにつれ、その信頼性と安全な運用を確保することが不可欠です。 対処されない場合、過酷な作業環境によるメモリエラーが予期しないロボットの動作を引き起こす可能性があります。
NXPのMCXマイクロコントローラーポートフォリオは、エラー訂正機能を備えた信頼性の高いロボット工学のニーズを満たすのに適しています。ECC対応のフラッシュメモリやSRAMから、ランタイムメモリアクセス制御、エラーイベントのログ記録まで、MCXはメモリエラーに対する複数の保護層を提供します。
信頼性と安全性の最適化を目指すモバイルロボット設計者は、NXP MCXを検討すべきです。その高度なアーキテクチャと包括的な機能セットにより、信頼性の高い自律型ロボットを開発するための強力なプラットフォームとなります。
デバイスプログラミングサービス
大規模で高品質なデバイスプログラミングサービスを提供します。
記事タグ
