Technology

NORTi

(NORTi)

NORTiは、株式会社ミスポが開発・提供する、組込みシステム向けのリアルタイムOSです。

μITRON仕様に基づいて設計されており、マイコンを搭載した計測機器、制御機器、通信機器などで、複数の処理を決められたタイミングで実行するために使用されます。

ハカルプラスでは、計測事業に関連する一部の製品でNORTiを使用した開発実績があります。

リアルタイムOSとは

リアルタイムOSは、必要な処理を定められた時間内に実行することを重視したOSです。RTOS(Real-Time Operating System)とも呼ばれます。

組込み機器では、センサの読み取り、計測値の演算、出力制御、通信、表示、データ保存などを並行して行います。リアルタイムOSを使用すると、これらを役割ごとの「タスク」に分け、優先順位や実行タイミングを管理できます。

例えば、周期計測や異常監視を高い優先順位で実行し、表示更新や履歴保存をそれより低い優先順位で動作させる構成が考えられます。

μITRON仕様とNORTi

μITRONは、組込みシステム向けリアルタイムOSの標準的な仕様です。タスク管理、同期・通信、時間管理、割り込み処理などに関するAPIが定められています。

NORTi Professionalは、μITRON 4.0仕様とμITRON 3.0仕様に対応しています。ただし、μITRONは共通仕様であり、すべてのリアルタイムOS製品が同じ機能や性能を持つわけではありません。対応CPU、コンパイラ、拡張機能、ミドルウェアなどは製品ごとに異なります。

NORTiの主な機能

タスクと優先順位の管理

計測、通信、表示、保存などの処理を別々のタスクとして構成し、重要度に応じて優先順位を設定します。

高い優先順位の処理を増やしすぎると、低い優先順位のタスクが実行できなくなることがあります。各処理の周期、最大実行時間、応答期限を整理して優先順位を決める必要があります。

タスク間の同期・通信

複数のタスクがデータやハードウェアを共有する場合は、同時アクセスによる不整合を防ぐ必要があります。セマフォ、イベントフラグ、データキューなどを利用し、処理の順序やデータの受け渡しを管理します。

時間管理

一定周期で処理を起動する、指定時間だけ待機する、通信応答がない場合にタイムアウトとするなど、時間に関する処理を管理します。

割り込み処理

タイマーや通信回路、外部入力などから割り込みが発生したときに、必要な処理を速やかに開始します。

割り込み処理内で長時間の演算や通信を行うと、他の処理へ影響します。そのため、割り込み内では状態取得などの必要最小限の処理を行い、その後の演算や保存をタスクへ引き渡す構成が基本です。

リアルタイム性を確保する設計

NORTiを採用するだけで、すべての処理が自動的に所定時間内へ収まるわけではありません。

タスクの実行時間、割り込み処理時間、優先順位、排他制御、通信待ち、使用するミドルウェア、CPU性能などを確認し、最も負荷が高い状態でも必要な処理が完了するように設計します。

特に、低優先度タスクが保持している共有資源を高優先度タスクが待つ「優先度逆転」や、複数の処理が互いの資源解放を待ち続ける「デッドロック」に注意が必要です。

TCP/IP通信への対応

NORTi Professionalには、組込み機器向けのTCP/IPスタックが用意されています。Ethernetを利用して、計測データの送信、設定値の受信、時刻同期、ファイル転送などの機能を構築できます。

通信処理を組み込む際は、正常時の送受信だけでなく、ケーブル断、相手機器の停止、応答遅延、通信データの欠損などを想定します。タイムアウト、再接続、再送回数、異常履歴、復旧条件をあらかじめ設計します。

通信処理を高い優先順位で長時間動作させると、周期計測へ影響する場合があります。通信とリアルタイム制御のタスクを分離し、通信異常が制御全体の停止へ直結しない構成を検討します。

ミドルウェアとの組み合わせ

用途に応じて、ファイルシステム、SSL・TLS、HTTPサーバーなどのミドルウェアを組み合わせることができます。

SDカードやフラッシュメモリへデータを保存する場合は、記録媒体用のドライバーとファイルシステムが必要です。暗号化通信を行う場合は、通信処理だけでなく、証明書、暗号鍵、時刻、更新方法も管理します。

ミドルウェアを追加すると、ROM・RAMの使用量や処理負荷が増加します。APIの適合性、スレッドセーフ、割り込みとの関係、ライセンス条件も確認する必要があります。

NORTiとLinuxの使い分け

NORTiは、限られたCPU・メモリ上で、周期計測や入出力制御などを決められた時間内に実行する用途に適しています。

Linuxは、画面表示、データベース、Web機能、大容量ストレージ、複数のネットワーク機能などを構築しやすい一方、一般的な構成では厳密な応答時間を必要とする制御に適さない場合があります。

製品によっては、NORTiを搭載したマイコンで計測とリアルタイム制御を行い、LinuxやWindowsを搭載したSBC・FAパソコンで画面表示、データ保存、上位通信を行うように役割を分担します。

既存NORTi製品を更新する際の注意点

既存製品を更新する場合は、NORTiのソースコードだけでなく、対象マイコン、コンパイラ、デバッガ、スタートアップ処理、割り込み設定、デバイスドライバー、通信スタック、ミドルウェアを確認します。

ソースコードが残っていても、使用していた開発環境やライセンス、書き込み装置などが失われていると、同じプログラムを再構築できないことがあります。

マイコンを変更する場合は、CPU性能やメモリ容量だけでなく、割り込み構成、タイマー、通信周辺回路、エンディアン、データ型の違いなどを確認し、実機で周期処理と異常時動作を再評価します。

ハカルプラスにおけるNORTiの活用

ハカルプラスでは、計測事業に関連する一部の製品でNORTiを使用した開発実績があります。

NORTiを搭載した組込み機器では、センサ信号の周期的な取得、計測値の演算・補正、操作入力、表示制御、異常監視、シリアル通信、Ethernet通信、設定値や計測値の保存などを構成できます。

ソフトウェアだけでなく、マイコン、計測回路、電源回路、通信回路、プリント基板、記録媒体、筐体、外部機器との接続まで含めて製品全体を検討します。

よくある質問

Q. 古いNORTi製品のソースコードがあれば、そのまま再構築できますか?

A. ソースコードだけでは再構築できない場合があります。NORTiのパッケージ、ライセンス、コンパイラ、リンカ設定、デバイスドライバー、書き込み環境なども確認する必要があります。

Q. マイコンの生産終了に伴い、別のCPUへ移植できますか?

A. 移植できる場合がありますが、NORTiの対応状況、割り込み、タイマー、周辺回路、ドライバー、処理時間などを確認し、ソフトウェアとハードウェアの両方を再評価します。

Q. 通信処理が増えると周期計測へ影響しますか?

A. 通信タスクの優先順位や処理時間によっては影響します。受信処理、データ解析、再送、暗号化などを分離し、計測タスクの応答時間を妨げないように設計します。

Q. タスクが停止した場合、自動復旧できますか?

A. タスク監視やウォッチドッグを設けることで、異常検出や再起動を行える場合があります。ただし、単に再起動するだけでなく、出力を安全な状態へ移す処理や異常原因を残す仕組みが必要です。

Q. NORTi製品をLinuxへ置き換えた方がよいですか?

A. 必ずしも置き換える必要はありません。厳密な周期処理が必要な部分はNORTiに残し、画面やデータ管理だけをLinuxへ分担する構成もあります。製品の要求仕様と保守方針を基に判断します。

関連ワード

NORTi Professionalの詳細は、株式会社ミスポの公式サイトをご確認ください。

お問い合わせ窓口

この技術について
お気軽にお問い合わせください。

お問い合わせフォーム

同じカテゴリの『ハカル技術辞典』を見る

お問い合わせ