Xenomai リルタイムOS用アプリケーションソフト受託開発
Xenomaiとは
Xenomai(ゼノマイ)は、Linuxのカーネルに組み込んで使用する、リアルタイムモジュールです。
フリーで利用でき、ハードリアルタイムを実現致します。
組み込み可能なLinuxは、ディスクトップ用や 組み込み用を問わず、オープンソースで公開 されているほとんどのLinuxに組み込むことが出来ます。
Xenomai用に開発されたアプリケーションソフトは、一般のパソコン用ソフトと同じように、キーボード・マウスで画面表示を行いながら操作ができます。比較的新しいバージョンのLinuxに組み込むと、
一般のパソコンと同様に快適な操作性を実現できます。タッチパネルも使用可能です。
特 徴(リアルタイム性)
リアルタイム性はレイテンシ(待ち時間)の平均で、0.4マイクロ秒(1/2,500,000秒)以内です(注1)。
図1は、応答速度5マイクロ秒(max)のDIOボードを、ボード応答速度の限界値である5マイクロ秒ごとにONとOFFを繰り返す1周期10マイクロ秒のプログラムを動作させ、出力の電圧約12.5Vを、オシロスコープで計測した画面です。
このボードは、スペック通りの性能を発揮していることが分かります。
インターフェースにGP-IBを利用した例では、複数の計測機器が接続された状態でも、各計測器のデータ取得タイミングを、μ秒の単位まで細かくプログラム調整し、更に他の拡張ボードとのタイミングを計ることも出来ます。このように、接続された計測器などの性能を限界まで引き出すことが出来ます。
複雑な動作も高速に行うことが出来るため、その結果、生産性の向上・実験設備等のデータの同時性や信頼性の向上、更には先端技術開発の用途に利用出来る可能性があります。
テスト環境
計測:FLUKE192スコープメータ
PC:Pentium3(1.0GHz),メモリ(1GB)
OS:Ubuntu-7.10
(kernel-2.6.22,Gnome-2.20)
+ Xenomai-2.4.4
DIOボード仕様:
PCIバス、
応答速度5μsec以内、
フォトカプラ絶縁オープンコレクタ出力
駆動電源電圧:約12.5V DC
( 注1)図1記載のテスト環境にて、Xenomai付属のLatencyを測定するプログラム(4ページ目をご参照)を、
カーネルモードで実行した時の値です。
テスト環境により、数値が変わる事もあります。
Xenomaiを利用するメリット
Xenomaiを利用すると、時間軸のブレを気にすることなく、よりスムーズに動作するシステムを構築出来ます。
ネットワークの利用はもちろんの事、マルチスレッドもリアルタイム性を持たせることが出来ます。
例えば、航空宇宙関連で宇宙船の飛行を例にすると、第二宇宙速度(地球の重力を振り切る事が出来る、脱出速度)約11.2Km/秒で飛行する宇宙船を、コンピュータでコントロールすると仮定した場合、リアルタイムOSを利用すると、下記のような利点があります。
リアルタイムOSであるXenomaiのタスクを0.4μsec(注1)周期で実行した場合、その間に宇宙船がどの位飛行
(移動)しているのかを計算すると、4.48mmの距離になります。
ところが汎用OSの場合、タイムスライスは10msec(注2)が一般的ですが、その間では112,000mm(112m)飛行する事になります。
上記のような使用目的の場合、リアルタイムOSであるXenomaiを高速な実行周期で運用すると、より精確にコントロールする事が出来るようになります。
航空宇宙関係に限らず、ロボット・半導体製造装置・検査システム・データ通信等、msec/μsecの時間管理を要求する物、その他、時間軸のブレで装置の性能を充分に発揮出来ない場合に利用すると、僅かな時間でも短縮を積み上げることで、生産性の向上や省力化に貢献する可能性があります。
Xenomaiを利用しても、データを保存することが出来ます。
一般のパソコンと同様に、保存先はハードディスクに限りません。CFカードやUSBフラッシュメモリなども利用可能です(注3)。
更に、一般PCからネットワーク経由で参照し、データを表計算ソフトなどで利用出来るよう設定出来ます。
LinuxにUbuntu(ウブントウ)を用いた場合、起動ドライブにCD-ROM・USBフラッシュメモリ・CFカードの利用も出来ます(注4)。
(注1)1ページ図1記載のテスト環境にて、6ページ記載のテストを実施した値です。テスト環境により、数値が変わる事もあります。
(注2)最近のLinuxでは、タイムスライスを1msecまで、少ない時間に設定出来るものもあります。
(注3)CFカードやUSBメモリースティックを実装できる環境が必要です。
(注4)使用するコンピュータに、CD-ROM・CFカード・USBなどから起動出来る機能が必要です。
主 な 用 途
■ ロボット開発及び関連制御・データ収集
■ 各種研究開発・実験データ収集、リアルタイム計測制御
(例えとして、自動車の姿勢制御やアンチロックブレーキシステムなどのテスト用システム)
■ ドロー(張力)測定制御システム
■ 航空宇宙関係、ロケットや人工衛星及び防御ミサイルなどの制御システム
■ 航空管制システムのLinuxからのアップグレード
■ 半導体製造装置や液晶パネルなどの製造ライン
■ チップ型電子部品等の高速検査装置
■ 放射線リアルタイムモニターシステム
■ 各種省力化性能試験等の制御テスト、高速データ収集
■ その他、1/100秒以上の高速応答性・時間安定性を要求する装置
主 な 機 能
■ RTnet (RT-networking stak)
■ RT-FireWire (RT-IEEE1394 stacks)
■ USB4RT,USB20RT (RT-USB stacks)
■ COMEDI over RTDM(Real-Time Driver Model) (DCA driver framework)
主な対応CPU
新しいCPUが市場に出ると、追加対応されてきております。
従いまして、下記は最新の情報ではありません。その時点での確認が必要です。
(1) x86:
from i386 to latest Pentiums and AMD's, UP and SMP
(2) x86_64
(3) PowercPC (follows DENX tree):
Freescale family: PowerQUICC I, PowerQUICC II, PowerQUICC III, ..
AMCC family: 405, 440, ..
(4) PowercPC 64 (follows DENX tree):
PA6T
(5) IA64 (discontinued since v2.5)
(今後、新しいバージョンではサポートされません)
(6) ARM cores:
Integrator/CP ARM 1136
PXA
SA1100-based
Freescale iMX21/csb535fs
Atmel at91rm9200 (tested on CSB637)
Samsung S3C24xx
Intel ixp4xx
Atmel at91sam926x
Motorola i.MX family
etc
(7) Analog Devices Blackfin BF52x, BF53x, BF54x and BF56x