RT-Linuxを用いた 多入力パルス波高分析システムの開発 環境計測学研究室 小松 望
多入力パルス波高分析システムとは、複 数の検出器より出力されるアナログパル スの波高値を記録、表示、分析する装置 多入力パルス波高分析システム アナログ信号 割り込み信号 デジタル信号 コンピュータ 検出器 ADC ADC ADC A B A B I/Oボード メモリ 終了信号 検出器 複数の検出器から出力されるアナログ信号の波高値はADCでデジタル値に変換される。変換終了時にADCから出力される割込み信号により、デジタル値はコンピュータに読み込まれ、メモリに書き込まれる。デジタル値の読み込みが完了するとコンピュータから終了信号が全てのADCに出力され、これによってそれぞれのADCは次のアナログ信号を受け付ける状態になる。メモリに書き込まれたデータを元にコンピュータは、データをリアルタイムでディスプレイに表示する。 ADC 多入力パルス波高分析システムとは、複 数の検出器より出力されるアナログパル スの波高値を記録、表示、分析する装置 2004/2/13 卒論発表
RT-Linux(8.22 msec) 2001年度 2002年度 RT-Linux 2003年度 RT-Linuxを用いた 割り込み反応速度 速 遅 標準偏差 小 大 MS-DOS Win-DOS Linux RT-Linux(8.22 msec) RT-Linux 研究背景 マルチタスクOSの利用 2001年度 Windowsを用いた多入力パルス波高分析システムの開発 装置が複雑、割り込み処理やI/O処理が遅い 2002年度 OSのリアルタイム比較 RT-Linuxが最も適当である!! 現在、放射線計測における計測装置といえば、高価な専用のハードウェアや表示機能の乏しいMS-DOS系が主流である。しかし、それらの汎用性は低く、研究者達の多様な変更、要望を満たしてくれない。 そこで一昨年、計測装置のOSとしてWindowsを用いた多入力パルス波高分析システムの開発を行った。パルス波高分析システムとは、検出器より出力されるアナログパルスの波高値を分析、記録、表示する装置である。結果、OSにWindowsを用いたこのシステムでは2台のコンピュータが必要であることや、メモリンクという特殊な装置が必要であるなど、どうしても装置が複雑になってしまう。また割り込み処理、及びI/O処理が遅いだろうという結論に至った。そして昨年、リアルタイムなI/O処理が可能となるOSとして、RT-Linuxが放射線計測システムに利用可能であるかを検証した。結果、RT-Linuxの割り込み処理、I/O処理はLinux やMS-DOS系に比べて安定していることがわかった。このことから、放射線計測システムにRT-Linuxを利用すると1台のコンピュータで最小限のハードウェアを用いた放射線計測システムが作製可能になることを確認できた。 2003年度 RT-Linuxを用いた 多入力パルス波高分析システムの開発 2004/2/13 卒論発表
RT-Linuxとは マルチタスクOSであるLinuxを元に リアルタイムI/O処理をもたせたOS →割り込みを最優先で行いながら、 利点 ・Web SiteからFreeで入手可能 ・オープンソースなので、自由に参照(改造)可能 ・Linuxの機能、アプリケーションをそのまま利用可能 →割り込みを最優先で行いながら、 データ解析や転送などの処理の同時実行が可能 2004/2/13 卒論発表
ADC システム コンピュータ パルサー ハードウェアスペック CPU celeron 466 MHz メモリ 256 MB システム ADC コンピュータ パルサー ハードウェアスペック CPU celeron 466 MHz メモリ 256 MB I/Oボード PCI2702C 開発に使用したソフトウェア ・ OS RT-Linux ver 3.1 (kernel 2.4.4) ・ gcc version 2.96 (開発言語 C) ・ gnuplot ver3.8j (取得データの描画に使用) ・ GTK(the GIMP Toolkit)v1.2 (GUIで使用) 2004/2/13 卒論発表
実装させた機能 GUIによる操作性能向上 計測の開始、停止、終了、データの保存、クリア、各軸の拡大・縮小 実装させた機能 GUIによる操作性能向上 計測の開始、停止、終了、データの保存、クリア、各軸の拡大・縮小 二次元表示だけでなく三次元表示も可能に データをより視覚的に分かりやすく見ることができる リストモードによるデータ保存 計測終了後も計測中と同様のパルス波高値を時系列に再現することが できる データ解析及び結果のオンライン表示 2004/2/13 卒論発表
実装させた機能 GUIによる操作性能向上 計測の開始、停止、終了、データの保存、クリア、各軸の拡大・縮小 実装させた機能 GUIによる操作性能向上 計測の開始、停止、終了、データの保存、クリア、各軸の拡大・縮小 二次元表示だけでなく三次元表示も可能に データをより視覚的に分かりやすく見ることができる リストモードによるデータ保存 計測終了後も計測中と同様のパルス波高値を時系列に再現することが できる データ解析及び結果のオンライン表示 2004/2/13 卒論発表
実装させた機能 リストモードとは 割り込みごとに読み込まれるパルス波高値の 全データを時系列に記録する形式である 割り込みごとに読み込まれるパルス波高値の 全データを時系列に記録する形式である 06 00 0F 00 B7 04 59 04 87 04 07 06 06 00 0F 00 B6 04 59 04 86 04 06 06 06 00 0F 00 B7 04 59 04 86 04 06 06 06 00 0F 00 B7 04 59 04 86 04 07 06 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 実装させた機能 GUIによる操作性能向上 計測の開始、停止、終了、データの保存、クリア、各軸の拡大・縮小 二次元表示だけでなく三次元表示も可能に データをより視覚的に分かりやすく見ることができる リストモードによるデータ保存 計測終了後も計測中と同様のパルス波高値を時系列に再現することが できる データ解析及び結果のオンライン表示 2004/2/13 卒論発表
実装させた機能 data3=data1+data2; memo3[data3]++; GUIによる操作性能向上 実装させた機能 ShowData.c case 3: /*ADC1&2*/ data1=indata[m+2]; /*ADC1データ取得*/ data2=indata[m+3]; /*ADC2データ取得*/ memo1[data1]++; /*ADC1データ番目の配列要素をカウントアップ*/ memo2[data2]++; /*ADC2データ番目の配列要素をカウントアップ*/ break; ShowData.c case 3: /*ADC1&2*/ data1=indata[m+2]; /*ADC1データ取得*/ data2=indata[m+3]; /*ADC2データ取得*/ memo1[data1]++; /*ADC1データ番目の配列要素をカウントアップ*/ memo2[data2]++; /*ADC2データ番目の配列要素をカウントアップ*/ break; data3=data1+data2; memo3[data3]++; GUIによる操作性能向上 計測の開始、停止、終了、データの保存、クリア、各軸の拡大・縮小 二次元表示だけでなく三次元表示も可能に データをより視覚的に分かりやすく見ることができる リストモードによるデータ保存 計測終了後も計測中と同様のパルス波高値を時系列に再現することが できる データ解析及び結果のオンライン表示 data1=indata[m+2]; /*ADC1データ取得*/ data2=indata[m+3]; /*ADC2データ取得*/ memo1[data1]++; /*ADC1データ番目の配列要素をカウントアップ*/ memo2[data2]++; /*ADC2データ番目の配列要素をカウントアップ*/ 2004/2/13 卒論発表
模擬信号による性能評価 デッドタイムとは 時間的なランダムパルスを ADCに入れたときにその信号が測定されない割合 模擬信号による性能評価 周波数を変えた模擬信号を1台のADCに送り、デッドタイムを計測した 理論値は ADCの変換時間から計算された値 コンピュータが限りなく高速になる ⇒計測値は限りなく理論値に近づく 放射線計測システムに求めらる性能 周波数 1000 Hz デッドタイム 10 %以下 今回開発したシステムの性能 デッドタイム 5 %前後 デッドタイムとは 時間的なランダムパルスを ADCに入れたときにその信号が測定されない割合 2004/2/13 卒論発表 2004/2/13 卒論発表
おしまい 多入力パルス波高分析システム 研究背景 RT-Linuxとは システム 実装機能説明 性能テスト GUI デッドタイム 三次元表示 性能評価 リストモード オンライン解析
RT-Linuxの処理の流れ Linux プロセス RT-FIFO スケジューラ Linuxカーネル RTLinuxモジュール リアルタイムカーネル ハードウェア割り込み 次にRTLinuxの仕組みについて簡単に説明します。 RTLinuxは厳密には単体で機能するOSそのものではなく、Linuxカーネルに適用するパッチとして提供されています。 RTLinuxを適用したカーネルを実行すると、図のようにリアルタイムカーネルが最下層で動作します。このリアルタイムカーネルがLinuxカーネルやRTLinuxモジュールと内部で動作するRTLinuxスレッドをスケジューリングすることで、任意の処理をリアルタイム制御することが可能となります。リアルタイムカーネルから見ると、Linuxカーネル本体はRTLinuxモジュールおよびRTLinuxスレッドより優先度の低いプロセスとして動作するため、リアルタイムで処理を行いたい仕事をRTLinuxスレッドに記述することで通常のLinuxとリアルタイム処理を共存させる事を可能にしています。通常のLinuxで使用可能な機能やアプリケーションは、RTLinux上でも同様に動作するため、Linuxの豊富な機能を生かしつつリアルタイム処理を行える点が特長です。 また、 RTLinuxのもう一つの機能として割り込みのディスパッチがあります。 RTLinuxでは、ハードウェアからの割り込みを受けたとき、そのままLinuxカーネルに伝えず、リアルタイムカーネルが一度割り込みを受けてからLinuxカーネル本体に伝えます。 2004/2/13 卒論発表
割り込み応答速度測定結果 3.74 msec MS-DOS 0.104 msec RT-Linux 8.22 msec 0.15 msec Win-DOS Linux RT-Linux 平均応答速度 標準偏差 平均応答速度 標準偏差 3.74 msec MS-DOS 0.104 msec RT-Linux 8.22 msec 0.15 msec Linux 8.26 msec 0.31 msec Win-DOS 7.66 msec 0.30 msec 2004/2/13 卒論発表