Technology
NORTi
(NORTi)
NORTiは、株式会社ミスポが開発・提供する、組込みシステム向けのリアルタイムOSです。
μITRON仕様に基づいて設計されており、マイコンを搭載した計測機器、制御機器、通信機器などで、複数の処理を決められたタイミングで実行するために使用されます。
NORTiは1990年代から提供されている国産のリアルタイムOSで、現在は「NORTi Professional」や、ワンチップマイコン向けの「NORTi Oceans」などが展開されています。
ハカルプラスでは、計測事業に関連する一部の製品でNORTiを使用した開発実績があります。
リアルタイムOSとは
リアルタイムOSは、決められた時間内に必要な処理を実行することを重視したOSです。RTOS(Real-Time Operating System)とも呼ばれます。
一般的なパソコン向けOSでは、画面表示、通信、ファイル操作などの多くの処理を効率よく実行することが重視されます。一方、組込み機器では、センサの読み取り、演算、出力制御、通信処理などを、指定された周期や順序で確実に実行する必要があります。
例えば、次のような処理が必要になります。
- 一定周期でセンサ値を読み取る
- 計測値を演算・補正する
- 異常を検出したら速やかに出力を停止する
- 通信データを受信したら応答する
- 操作入力に応じて表示内容を更新する
- 計測結果を記録媒体へ保存する
リアルタイムOSを利用すると、これらの処理を役割ごとのタスクに分割し、優先順位や実行タイミングを管理できます。
μITRON仕様とは
μITRONは、組込みシステム向けリアルタイムOSの標準的な仕様です。
μITRONでは、タスク管理、同期・通信、時間管理、割り込み処理、メモリ管理などに関するAPIが定められています。
NORTi Professionalは、μITRON 4.0仕様とμITRON 3.0仕様に対応しています。μITRONのAPIに基づいてアプリケーションを構築することで、処理の役割やタスク間の関係を整理しやすくなります。
ただし、μITRONはOSの仕様であり、すべての実装が完全に同じという意味ではありません。対応するシステムコール、拡張機能、開発環境、デバイスドライバー、性能などは、製品や対象プロセッサによって異なります。
NORTiの主な機能
タスク管理
プログラムを複数のタスクに分け、起動、停止、待ち状態、優先順位などを管理します。
例えば、計測処理、通信処理、表示処理、データ保存処理を別々のタスクとして構成できます。
優先順位制御
各タスクに優先順位を設定し、重要度の高い処理を優先して実行します。
異常監視や周期計測など、遅延を小さくしたい処理には高い優先順位を設定し、表示更新や履歴保存などはそれより低い優先順位で動作させる構成が考えられます。
タスク間の同期・通信
複数のタスクが同じデータやハードウェアを扱う場合には、処理の競合を防ぐ必要があります。
NORTiでは、セマフォ、イベントフラグ、データキュー、メールボックスなど、タスク間の同期やデータ受け渡しに使用する機能を利用できます。
時間管理
一定時間待つ処理、周期的に起動する処理、指定時間を超えた場合にタイムアウトとする処理などを管理します。
センサの周期計測、通信応答待ち、操作入力の監視、定期保存などに利用します。
割り込み処理
外部機器やタイマーなどから割り込みが発生した際に、必要な処理を速やかに実行します。
割り込み処理の中では必要最小限の処理を行い、その後の演算やデータ処理をタスクへ引き渡す構成が一般的です。
NORTi Professional
NORTi Professionalは、μITRON仕様のリアルタイムカーネルとTCP/IPスタックを組み合わせた、組込みシステム向けの開発製品です。
対応するプロセッサやコンパイラごとにパッケージが用意されており、対象となるマイコンや開発環境に合わせて選定します。
主な構成には、次のものがあります。
- μITRON 4.0・3.0仕様に対応したリアルタイムカーネル
- リアルタイムカーネルのライブラリ
- ライブラリを生成するためのソースコード
- TCP/IPスタック
- TCP/IPスタックのソースコード
- Windows上で動作確認を行うNORTi Simulator
- 評価ボードや通信機能に関するサンプルプログラム
- ユーザーズガイドなどの技術資料
ライブラリをアプリケーションへリンクして使用できるほか、カーネルやTCP/IPスタックのソースコードが提供されるため、構成の確認や対象ハードウェアへの適用を行いやすいことが特長です。
NORTi Professional II
NORTi Professional IIでは、IPv4に加えてIPv6にも対応した、IPv6/IPv4デュアルスタックが標準添付される構成があります。
使用するプロセッサやパッケージによって対応機能が異なるため、採用時には対象CPU、コンパイラ、通信機能の対応状況を確認します。
NORTi Oceans
NORTi Oceansは、比較的リソースの限られたワンチップマイコン向けに提供されているリアルタイムOSです。
小規模な組込み機器でも、タスク管理、時間管理、同期・通信などのリアルタイムOS機能を利用してソフトウェアを構成できます。
NORTi ProfessionalとNORTi Oceansでは、対象となるシステム規模、機能、対応プロセッサ、ミドルウェアなどが異なります。製品の要求仕様に応じて選定します。
TCP/IPスタック
NORTi Professionalには、組込み機器向けのTCP/IPスタックが標準添付されています。
TCP/IPスタックとは、Ethernetなどを利用して機器をネットワークへ接続し、他の機器やパソコン、サーバーと通信するためのソフトウェアです。
NORTiのTCP/IPスタックでは、主に次のプロトコルを利用できます。
- TCP
- UDP
- IP
- ARP
- ICMP
- IGMP
また、次のような上位通信機能のサンプルも提供されています。
- Telnetサーバー・クライアント
- FTPサーバー・クライアント
- TFTPサーバー・クライアント
- DHCPクライアント
- DNSリゾルバ
- SNTPクライアント
これらを利用することで、組込み機器から計測データを送信する、パソコンから設定値を変更する、時刻を同期する、ファイルを転送するといった機能を構築できます。
各種ミドルウェアとの組み合わせ
NORTiでは、リアルタイムカーネルとTCP/IPスタックに加え、用途に応じたミドルウェアを組み合わせることができます。
株式会社ミスポからは、次のようなSoftware Componentsが提供されています。
- ファイルシステム
- SSL・TLS通信
- SSH通信
- HTTPサーバー
- SNMP
- メール送受信
- PPP
- PPPoE
- NFS
SDカードやフラッシュメモリへデータを保存する場合にはファイルシステム、暗号化通信を行う場合にはSSL・TLS、機器の遠隔管理を行う場合にはSSHやHTTPサーバーなどを組み合わせます。
他社が提供するプロトコルスタック、ファイルシステム、デバイスドライバーなどを組み合わせられる場合もありますが、API、メモリ使用量、スレッドセーフ、割り込み処理、ライセンス条件などの確認が必要です。
対応プロセッサと開発環境
NORTiは、ARM系マイコン・プロセッサ、ルネサス エレクトロニクス製マイコンなど、複数のプロセッサファミリへ対応しています。
ただし、すべてのCPUやコンパイラへ同じ機能で対応しているわけではありません。NORTiのパッケージは、対応プロセッサとコンパイラの組み合わせごとに分かれています。
採用時には、次の項目を確認します。
- 対象CPU・マイコンへの対応
- 使用するコンパイラへの対応
- デバッガや統合開発環境との連携
- TCP/IPスタックの対応状況
- IPv6の必要性
- Ethernetコントローラのドライバー
- 必要なミドルウェアへの対応
- メモリ容量と処理性能
- 長期供給と保守サポート
対応状況は追加・変更される場合があるため、実際に採用する際には株式会社ミスポが公開する最新の対応プロセッサ・コンパイラ一覧を確認します。
NORTi Simulator
NORTi Professionalには、Windows上でμITRONベースのプログラムを実行できるNORTi Simulatorが付属しています。
実際のマイコン基板が完成する前でも、タスク構成、タスク間通信、アプリケーションの基本動作などを確認できます。
ただし、シミュレーター上で正常に動作しても、実機では割り込み、処理速度、メモリ、周辺回路、デバイスドライバーなどの違いが影響します。最終的には実際のハードウェア上で評価する必要があります。
NORTiを採用するメリット
μITRON仕様に基づいている
μITRONのAPIや考え方を利用できるため、既存のμITRON技術やソフトウェア資産を生かしやすいことが特長です。
リアルタイムカーネルと通信機能を組み合わせられる
センサの周期計測や制御に加え、Ethernetを利用したデータ送信、設定、監視などを一つの組込み機器に実装できます。
ソースコードが提供される
カーネルとTCP/IPスタックのソースコードが提供されるため、動作内容の確認、対象ハードウェアへの適用、問題発生時の調査などを行いやすくなります。
組込みロイヤリティが不要
NORTi Professionalでは、開発した製品の出荷台数に応じた組込みロイヤリティは不要とされています。
ただし、開発者数、対象プロセッサ、製品・プロジェクトなどに応じたライセンス契約が必要です。採用時には最新の使用許諾条件を確認します。
技術サポートを利用できる
製品購入後の一定期間、技術サポートやバージョンアップを含む保守サービスが提供されます。継続利用する場合は、必要に応じて年間保守を契約します。
NORTiを採用する際の注意点
リアルタイム性は設計によって決まる
リアルタイムOSを採用するだけで、すべての処理が必ず所定時間内に完了するわけではありません。
タスクの優先順位、割り込み処理時間、排他制御、通信待ち、メモリ管理、CPU性能などを含めて設計する必要があります。
タスクの優先順位
優先順位の設定が不適切な場合、重要な処理が後回しになったり、低優先度のタスクが実行できなくなったりすることがあります。
処理の周期、最大実行時間、依存関係を整理して設定します。
共有資源の排他制御
複数のタスクが同じメモリ、通信ポート、記録媒体などへ同時にアクセスすると、データの不整合や誤動作が発生する可能性があります。
セマフォやミューテックスなどを利用して、適切に排他制御します。
メモリ容量
タスクごとにスタック領域が必要です。TCP/IP、ファイルシステム、SSLなどのミドルウェアを追加すると、必要なROM・RAM容量も増えます。
最大負荷時のメモリ使用量を確認し、余裕を持った構成とします。
長期保守
産業用製品では、マイコン、コンパイラ、デバッガ、OS、ミドルウェアを長期間維持する必要があります。
ソースコード、開発環境、ライセンス、設定ファイル、設計資料、ビルド手順などを適切に管理します。
LinuxやWindowsとの違い
NORTiは、限られたCPU・メモリ上で、決められたタイミングに処理を実行することを重視したリアルタイムOSです。
LinuxやWindowsは、画面表示、ネットワーク、ファイル管理、データベースなどの豊富な機能を備えていますが、一般的な構成では、厳密な応答時間を保証する制御には向かない場合があります。
製品によっては、次のように役割を分担します。
- NORTiを搭載したマイコンでセンサ計測やリアルタイム制御を行う
- LinuxやWindowsを搭載したSBC・FAパソコンで画面表示やデータ保存を行う
- 両者をシリアル通信やEthernetで接続する
制御の即時性、画面・データ管理、通信、コスト、保守性などを考慮し、適切な構成を選定します。
ハカルプラスにおけるNORTiの活用
ハカルプラスでは、計測事業に関連する一部の製品でNORTiを使用した開発実績があります。
NORTiを搭載した組込み機器では、主に次のような処理を構成できます。
- センサ信号の周期的な取得
- 計測値の演算・補正
- 操作スイッチの入力処理
- 表示器への出力
- 異常監視
- 外部機器とのシリアル通信
- Ethernetを利用したTCP/IP通信
- 設定値や計測値の保存
ハカルプラスでは、NORTiを利用したソフトウェアだけでなく、マイコン、計測回路、電源回路、通信回路、プリント基板、筐体、外部機器との接続まで含めて、製品全体を検討します。
よくある質問
Q. NORTiとは何ですか?
A. 株式会社ミスポが開発・提供する、μITRON仕様の組込みシステム向けリアルタイムOSです。
Q. NORTiは現在も提供されていますか?
A. NORTi ProfessionalやNORTi Oceansなどが現在も株式会社ミスポから提供されています。採用時には対象CPUやコンパイラへの最新の対応状況を確認します。
Q. NORTiとμITRONは同じものですか?
A. μITRONはリアルタイムOSの仕様で、NORTiはその仕様に基づいて株式会社ミスポが開発した製品です。
Q. NORTi ProfessionalはどのμITRON仕様に対応していますか?
A. μITRON 4.0仕様とμITRON 3.0仕様に対応しています。
Q. TCP/IP通信は利用できますか?
A. NORTi ProfessionalにはTCP/IPスタックが標準添付されており、TCP、UDP、IPなどを利用した通信システムを構築できます。
Q. IPv6を利用できますか?
A. NORTi Professional IIの対象パッケージでは、IPv6/IPv4デュアルスタックを利用できます。対象プロセッサごとの対応状況を確認する必要があります。
Q. SDカードなどへデータを保存できますか?
A. ファイルシステムやデバイスドライバーを組み合わせることで可能です。使用する記録媒体とマイコンに対応した構成が必要です。
Q. SSLやSSHなどの暗号化通信を利用できますか?
A. NORTiに対応したSSLやSSHなどのSoftware Componentsが提供されています。使用する機能や対象CPUへの対応を確認して選定します。
Q. NORTiを使用した製品には出荷台数ごとのロイヤリティが必要ですか?
A. NORTi Professionalでは組込みロイヤリティは不要とされています。ただし、開発者数や対象製品などに応じたライセンス契約が必要です。
Q. NORTiとLinuxはどのように使い分けますか?
A. 周期計測や即時性の高い制御にはNORTi、画面表示、データベース、Web機能などにはLinuxが適する場合があります。
Q. ハカルプラスでは既存のNORTi製品の更新を相談できますか?
A. ソースコード、対象マイコン、開発環境、通信仕様、周辺回路などを確認し、ソフトウェア改修やハードウェア更新を含めて検討します。
関連ワード
・μITRON
・μC3
・Linux
・Windows10 IoT
・C系プログラミング言語(C/C++/C#/Visual C++)
・TCP/IP系アプリケーションプロトコル(HTTP/SMTP/FTP/TFTP/NTP)
・ネットワーク通信基盤技術(TCP/IP/UDP/IP/PPP/Ethernet)
・マイコン制御
同じカテゴリの『ハカル技術辞典』を見る