発表・掲載日:2004/06/16

実時間Linuxを用いてイーサネット上で実時間通信を実現

-実時間通信を用いた分散型コントローラの普及に向けて-

ポイント

  • 産総研(旧電総研)で開発した実時間Linux(ART-Linux)を用いてイーサネット上で実時間通信を実現
  • 実時間通信上でミドルウェアCORBAを実装、イーサネット上で実時間稼動するCORBAを初めて実現
  • 分散型ロボットコントローラ等、実時間通信を必要とする組込機器への応用を期待


概要

 独立行政法人 産業技術総合研究所【理事長 吉川 弘之】(以下「産総研」という)知能システム研究部門【部門長 平井 成興】の 金広 文男 研究員らは、株式会社ムービングアイ【代表取締役 小松 史男】(以下「ムービングアイ」という)の 石綿 陽一 取締役らと、産総研(旧工業技術院 電子技術総合研究所)で開発したLinuxの実時間拡張であるART-Linuxを用いて、イーサネット上で実時間通信を実現した。

 イーサネットはPC等で世界標準の通信ネットワークとして広く利用されているが、実時間通信機能を持っていなかった。ここで言う実時間通信とは、指定された時間内に完了しなければならない通信のことで、言い換えると、締切のある通信のことである。実時間通信は、事務処理等に利用されるPC等では不要であるが、一定時間内に処理を完了することが必要な距離計測やエンジン制御といった応用には不可欠な技術である。これまで、実時間通信は高価な専用ネットワークを用いることで実現されてきたが、今回の成果により、安価で高い通信速度を持つイーサネットを実時間通信を必要とする組込機器に利用し、組込機器をサーバPC等と同じ通信ネットワークを用いて接続することが可能となった。

 今回開発した実時間通信は、データリンク層に新規プロトコルを設定し実現されており、イーサネットの上位層プロトコルであるTCP/IPを用いていない。上位のプロトコルとしては、パケットの中継機能と通信経路の切り替え機能を持たせることにより実現している。また、実時間通信を行わないときは、通常のTCP/IPプロトコルを利用することも可能であるので、ソフトウエアの開発も容易に行える。

 従来のイーサネットと、今回開発した実時間イーサネットの構成を次にまとめる。

従来のイーサネット
矢印
今回開発した実時間イーサネット
アプリケーション
TCP
IP
 非実時間データリンク層 
イーサネット
10BASE5
アプリケーション
 
中継・経路切り替え
 
 実時間データリンク層 
イーサネット
100BASET

 本研究以外にも、イーサネット上で実時間通信を実現しようという試みは幾つかあり、マルチメディア用に通信バンド幅を保証しようとするタイプと、OSカーネルの改造や専用デバイスドライバの新規開発によって通信の完了時間を保証するタイプとに分類できる。前者はロボットコントロール等に必要なレベルの実時間通信機能を持たないという点で、後者はソフトウエアの再利用が難しいという点で問題があった。

 一般に、新しい通信プロトコルを開発しても、既存のソフトウエアに大きな修正が必要だと普及させるのは困難である。そこで、既存の通信プロトコルとの互換性を実現するため、今回開発した実時間通信プロトコル上にミドルウェアCORBAのアプリケーション層プロトコルGIOPを実装した。これにより、これまでCORBAを利用してきたユーザは、通信部分を大きく変更することなく、実時間通信上に実現されたCORBAを利用することが可能となった。CORBAの実装としては、日本アイオナテクノロジーズ株式会社製の組込型アプリケーション向きCORBAであるOrbix/Eを利用している。

  GIOPの実装方法を従来のイーサネットと今回開発した実時間イーサネットで比較したものを次に示す。

従来のイーサネット上のCORBA
矢印
実時間イーサネット上のCORBA
GIOP
TCP
IP
 非実時間データリンク層 
イーサネット
10BASE5
GIOP
 
中継・経路切り替え
 
 実時間データリンク層 
イーサネット
100BASET

 図に示した様に、GIOPのレベルで見ると互換性があるので、従来GIOP上で動いていたソフトウエアはそのまま利用することができる。違いは通信時間が締切を守ることを保証される様になった点である。

 以上、今回開発したソフトウエアは、通常のPCや、開発した名刺サイズの小型ボード上で稼動する。PCを用いて性能検証を行った結果、データリンク層プロトコルのみを用いたときは最短で100マイクロ秒、CORBAを用いたときは最短で500マイクロ秒程度の周期通信が実現可能であることが確認されている。

 今後、産総研知能システム研究部門は、川田工業株式会社【代表取締役社長 多田 勝彦】(以下「川田工業」という)と開発中のヒューマノイドロボットの次期モデル、独立行政法人新エネルギー・産業技術総合開発機構【理事長 牧野 力】(以下「NEDO技術開発機構」という)の委託を受けて推進中の「ロボットの開発基盤となるソフトウエア上の基盤整備(2002~2004年度)」等において、今回開発したソフトウエアを利用していく計画である。

 Linuxはムービングアイの 石綿 陽一 取締役が旧工業技術院 電子技術総合研究所在籍時に中心となって開発した実時間Linuxである。他の実時間Linuxとは異なり、実時間拡張がユーザ空間で実現されているため、デバイスドライバが無修正で使える点が特徴である。



研究の背景

 イーサネットは、PC等の世界標準の通信ネットワークとして利用されているが、この上で実時間通信は実現されてこなかった。実時間通信は、事務処理等に利用されるPC等では不要であるが、一定時間内に処理を完了することが必要な距離計測やエンジン制御といった応用には不可欠な技術である。これまで、実時間通信は高価な専用ネットワークを用いることで実現されてきたが、実時間通信を必要とする組込機器のコストを下げ、開発効率を向上させるためには、世界標準である安価なイーサネットの利用、オープンソースOSであるLinuxのターゲットOSとしての利用、ミドルウェアの採用によるモジュール性の向上が求められていた。

 今回の開発により、実時間拡張が施されたLinuxを用いて、実時間通信ネットワークとしてイーサネットを利用し、この上で標準的ミドルウェアであるCORBAを使うことが可能になった。

 今後、ロボット、情報家電、自動車等の組込機器の分野で、広く利用されていくことが期待される。

従来の組込機器の構成
 

従来の組込機器の構成図

 
提案する組込機器の構成
 
提案する組込機器の構成図

研究の経緯

 本研究の基盤となっているART-Linuxは、ムービングアイの 石綿 陽一 取締役が中心となって、旧工業技術院 電子技術総合研究所において開発された。今回の研究は、産総研が川田工業等と共同で開発したヒューマノイドロボットHRP-2内のCPU間の通信を実時間化することを目的として開始された。その後、産総研ベンチャー開発戦略研究センターのスタートアップ開発戦略タスクフォースにおいて、事業化を目指した研究開発を実施してきている。

研究の内容

 従来、イーサネット上で実時間通信が実現困難と考えられてきたのは、次の理由による。

  • フレームの衝突によって通信データの送出が遅れる。
  • TCP/IPは再送を含む複雑な処理をするため、通信データの処理時間が予測できない。
  • フレームの送出時刻を制御できない。

 まず、フレームの衝突に関しては、イエローケーブルを用いてバス型の配線をしていたイーサネットではフレームの衝突が発生していたが、ツイストペアケーブルを用いて1対1接続するイーサネットでは発生しない。この様子を次図に示す。

バス型配線
 

バス型配線図

 
1対1接続型
 
1対1接続型図

 次に、TCP/IPの処理時間が予測できない問題については、TCP/IPを利用しないことにより回避できる。

 最後のフレームの送出時刻の制御は、他の実時間Linuxでも実現可能であるが、ここでは、ART-Linuxの固有のシステムコールを用いて周期実行をすることにより、正確な周期で命令を実行することが可能となった。

 送信周期を50~1000マイクロ秒と何段階かに変化させ、CORBAサーバ呼び出しを行ったときの送信側処理時間の評価を行った。ここに、送信周期、送信処理時間の関係を示す。

送信周期、送信処理時間の関係図

 送信処理時間の最大値の計測結果を次図に示す。横軸はデータ長である。最大で20マイクロ秒程度で処理が完了していることが分かる。このことから、ある時刻にデータを送り始めたとき、20マイクロ秒後には送り終わっていることが分かる。この様な通信が実時間通信である。

送信側処理時間の最大値

送信側処理時間の最大値の図

 次図に、この送信時間の中、データリンク層以下の通信に使われた処理時間、すなわち、今回の開発で新規開発した通信機能の部分に限定した処理時間の最大値を示す。10マイクロ秒から20マイクロ秒程度で処理されている様子が分かる。前の図の処理時間はトータルの処理時間で、この図の処理時間との差は、CORBAの通信処理に使われた時間である。

送信側処理時間の最大値

送信側処理時間の最大値の図

 この処理時間には、タイマー割込みによりART-Linuxのシステムコールが呼ばれ、イーサネットデバイスに命令が送られるまでの時間が含まれている。デバイスに命令が送られてから送信が完了するまでの時間はソフトウエアでは計測できないので含まれていないが、数マイクロ秒程度と推測される。最大で20マイクロ秒以内に送信命令が発効されており、デバイスの処理時間を加えても、十分正確に送信処理が周期実行されていることが分かる。

 さらに、受信処理については、通常のイーサネットデバイスドライバでは、フレームの受信処理がデバイスからの割込によって開始されるため、プログラムで指定した時刻にフレームの受信処理が開始されることは困難であった。そこで、本研究開発では、通常はデバイスからの割込信号によって起動される割込ハンドラを、プログラムの受信命令によって起動されるようにLinuxカーネルの改造を行った。

 以上述べた送受信過程をまとめたものを次図に示す。

送受信過程のまとめ図

 ここで、送信周期と受信周期は同一で、両者の開始時刻は同期をとってあるとすると、全ての送受信が完了するまでの時間は、送受信周期+受信処理時間となることが分かる。

 受信側周期誤差の最大値を示す結果を次図に示す。このグラフから、送受信周期500マイクロ秒以上だと、CORBAを用いても周期を守って通信していることが確認される。

受信側周期誤差の最大値を示す結果図

 送受信機能の実現のために施したカーネルの改造はごく一部であり、その他の大部分はLinuxの通常のシステムコールを用い、ユーザプログラムとして実装した。そのため、Linuxソフトウエアの再利用性を損なうことはなく、CORBAのアプリケーション層プロトコルを容易に実装することができた。

 以上述べたデータリンク層プロトコルにはフレームの中継機能がないので、フレームの中継機能と通信経路の切り替え機能を併せて実現した。これらの機能を用いることにより、通信経路の一部に障害が発生したときに、経路を切り替えることも可能となった。以上の様子を次図に示す。

通信経路の一部に障害が発生したときに、経路を切り替えることも可能となった様子の図

 既存の通信プロトコルと互換性を取るため、今回開発した実時間通信プロトコル上にCORBAのアプリケーション層プロトコルGIOPを実装した。これにより、これまでCORBAを利用してきたユーザは、通信部分を大きく変更することなく、実時間通信上に実現されたCORBAを利用することが可能となった。CORBAの実装としては、日本アイオナテクノロジーズ株式会社製の組込型アプリケーション向きCORBAであるOrbix/Eを利用し、開発した通信プロトコルを用いてOrbix/EのOCI(Open Communication Interface)のAPIを実装した。以上の構成を次図に示す。

従来のイーサネット上のCORBA
矢印
実時間イーサネット上のCORBA
GIOP
OCI
TCP
IP
 非実時間データリンク層 
イーサネット
10BASE5
GIOP
OCI
 
中継・経路切り替え
 
 実時間データリンク層 
イーサネット
100BASET

 本研究で開発したソフトウエアは、まず分散型ロボットコントローラに適用することを計画している。このために開発した名刺サイズのSH-4ボードの外観図を次に示す。手前側が名刺である。

SH-4ボードの外観写真

今後の予定

 産総研知能システム研究部門は、川田工業と開発中のヒューマノイドロボットの次期モデル、NEDO技術開発機構の委託を受けて推進中の「ロボットの開発基盤となるソフトウエア上の基盤整備(2002~2004年度)」等において、今回開発したソフトウエアを利用していく計画である。
 また、さらなる実用化研究開発の後、ムービングアイが事業化することを計画している。



用語の説明

◆ART-Linux
ムービングアイの 石綿 陽一 取締役が旧工業技術院 電子技術総合研究所在籍時に中心となって開発した実時間Linuxである。他の実時間Linuxとは異なり、実時間拡張がユーザ空間で実現されているため、デバイスドライバが無修正で使える点が特徴である。[参照元へ戻る]
◆データリンク層
OSI 7階層参照モデルで物理層の一つ上の層。隣接装置間の送受信制御、伝送誤りの制御を行う。OSI 7階層モデルとは、通信ネットワークを7階層の構造に分けたもので、ISO(国際標準化機構)が制定した。[参照元へ戻る]
◆プロトコル
通信のやりとりのための取り決めのこと。[参照元へ戻る]
◆TCP/IP
Transmission Control Protocol/Internet Protocolの略。OSI 7階層参照モデルでデータリンク層の上の2つの層のプロトコル。アプリケーション情報の受け取り・配送、経路選択・ルーティングを行う。[参照元へ戻る]
◆カーネル
OSとしての最も本質的な部分を実現している、全ての応用ソフトウエアが共通に使うライブラリ。[参照元へ戻る]
◆デバイスドライバ
例えば、ハードディスクやCD-ROMドライブといった、周辺機器を動かすためのライブラリ。[参照元へ戻る]
◆ミドルウェアCORBA
OSとアプリケーション以外のソフトウエアを総称してミドルウェアと呼ぶ。この中で、CORBA(Common Object Request Broker Architecture)は、OMG(Object Management Group)という世界的な標準化団体が規約を定める分散オブジェクトシステムを実現するためのミドルウェア。[参照元へ戻る]
◆GIOP
General Inter-ORB Protocolの略。Object Management Groupが定めたCORBAの通信規約。[参照元へ戻る]
◆スタートアップ開発戦略タスクフォース
事業企画のエキスパートのトップダウンマネジメントの下、大学・公的研究機関の技術シーズを活用したビジネスモデル構築、事業計画策定と、ハイテク・スタートアップスの創業に必要な追加的な研究開発の支援等により、短期集中的に創業に向けた取り組みを行う、産総研ベンチャー開発戦略研究センターの組織。[参照元へ戻る]
◆フレームの衝突
フレームとは、宛先アドレス、送信元アドレス、長さ/タイプ等のデータから構成される通信のセットのこと。パケットともいう。フレームの衝突とは、複数のノードが同時に通信しようとして、通信が阻害される状態をいう。[参照元へ戻る]
◆イエローケーブル
イーサネットの10BASE-5というカテゴリで使われるケーブル。通常ケーブルの色が黄色なのでこう呼ばれる。[参照元へ戻る]
◆バス型
一つのケーブルに多数の通信ノードが接続され、このケーブルを共用するタイプの接続方式。[参照元へ戻る]
◆ツイストペアケーブル
2本のケーブルをねじって合わせてあるケーブルのこと。イーサネットの100BASE-TX用のケーブルとして広く利用されている。[参照元へ戻る]
◆システムコール
OSのカーネルが提供する機能のうち、プロセスと呼ばれるソフトウエアの単位から利用可能な機能のこと。[参照元へ戻る]
◆タイマー割り込み
タイマー(時計)のある時刻になると、CPUにそのとき行っていた処理を中断させ、指定した処理を開始させること。[参照元へ戻る]
◆デバイスからの割り込み
イーサネットのデバイスがデータを受信したときに、CPUにそのとき行っていた処理を中断させ、受信データの読み込みを開始させること。[参照元へ戻る]
◆割り込みハンドラ
割り込みを処理するソフトウエアライブラリのこと。[参照元へ戻る]
◆フレームの中継機能
ある通信ノードに届いたフレームを、他の通信ノードに転送する機能のこと。[参照元へ戻る]
◆アプリケーション層
OSI 7層モデルの最上位層。アプリケーションを動かすための通信プロトコル。電子メールの送受信を行うためのsmtp、ファイルの転送を行うためのftp、WWWのためのhttp等がある。[参照元へ戻る]
◆OCI
Open Communication Interfaceの略。Orbix/EでGIOPを動かすために設けられた下位のAPI。[参照元へ戻る]
◆API
Application Programming Interfaceの略。上位のソフトウエアが下位のソフトウエアを利用するためのプログラミングインターフェイス。[参照元へ戻る]


お問い合わせ

お問い合わせフォーム