(57)【要約】【課題】  ゲートウェイで複数のネットワークを接続して構築した通信システムで、ゲートウェイの起動時間を短縮する【解決手段】  コンピュータのメモリ領域を０クリアする処理を含むスタートアップルーチンを実行し、ついで、アプリケーションプログラムにおけるスタティック変数の０クリア処理を省略、または、アプリケーションプログラムのスタティック変数を０クリアする処理以外の初期値代入処理を施して、アプリケーションプログラムを立ち上げる。【選択図】        図４
2006268387.tif 000002
【特許請求の範囲】
【請求項１】
第１のネットワークと第２のネットワークとに接続され、該第１のネットワークに接続された端末と該第２のネットワークに接続された端末との通信仲介を行なうべく、アプリケーションプログラムで動作するコンピュータを有するゲートウェイ装置の初期化処理方法であって、
まず、該コンピュータのメモリ領域を０クリアする処理を含むスタートアップルーチンを実行し、
ついで、該アプリケーションプログラムにおけるスタティック変数の０クリア処理を省略した初期値代入処理を施して、該アプリケーションプログラムを立ち上げることを特徴とする、ゲートウェイ装置の初期化処理方法。
【請求項２】
第１のネットワークと第２のネットワークとに接続され、該第１のネットワークに接続された端末と該第２のネットワークに接続された端末との通信仲介を行なうべく、アプリケーションプログラムで動作するコンピュータを有するゲートウェイ装置の初期化処理方法であって、
まず、該コンピュータのメモリ領域を０クリアする処理を含むスタートアップルーチンを実行し、
ついで、該アプリケーションプログラムのスタティック変数を０クリアする処理以外の初期値代入処理を施して、該アプリケーションプログラムを立ち上げることを特徴とする、ゲートウェイ装置の初期化処理方法。
【請求項３】
該コンピュータのメモリ領域を０クリアする処理が、該コンピュータにおける該スタティック変数を記憶しうるランダムアクセスメモリのメモリ領域を０クリアする処理であることを特徴とする、請求項１または請求項２に記載のゲートウェイ装置の初期化処理方法。
【請求項４】
第１のネットワークと第２のネットワークとに接続されたゲートウェイ装置に、該第１のネットワークに接続された端末と該第２のネットワークに接続された端末との通信仲介処理を行なわせるべく、該ゲートウェイ装置に搭載されるコンピュータを、
該コンピュータのメモリ領域を０クリアする処理を含むスタートアップルーチン部と、
該通信仲介処理に使用するスタティック変数の０クリア処理を省略した初期値代入処理を施して、該コンピュータによる該通信仲介処理を実行するメインルーチン部として機能させるための、ゲートウェイ装置搭載プログラム。
【請求項５】
第１のネットワークと第２のネットワークとに接続されたゲートウェイ装置に、該第１のネットワークに接続された端末と該第２のネットワークに接続された端末との通信仲介処理を行なわせるべく、該ゲートウェイ装置に搭載されるコンピュータを、
該コンピュータのメモリ領域を０クリアする処理を含むスタートアップルーチン部と、
該通信仲介処理に使用するスタティック変数を０クリアする処理以外の初期値代入処理を施して、該コンピュータによる該通信仲介処理を実行するメインルーチン部として機能させるための、ゲートウェイ装置搭載プログラム。
【請求項６】
該スタートアップルーチン部が、該コンピュータにおける該スタティック変数を記憶しうるランダムアクセスメモリのメモリ領域を０クリアする処理部を含んでいることを特徴とする、請求項４または請求項５に記載のゲートウェイ装置搭載プログラム。
【請求項７】
該メインルーチン部が、該スタティック変数を０クリアする処理以外の初期値を代入する処理部に、プログラム上で、該スタティック変数の０クリア処理を省略した旨の表示が施されていることを特徴とする、請求項４〜６のいずれかの一項に記載のゲートウェイ装
置搭載プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲートウェイ装置の初期化処理方法及びゲートウェイ装置に搭載されるプログラムに関する。
【背景技術】
【０００２】
従来、自動車等の車両においては、ＣＡＮ（Controller  Area  Network）などを用い
た通信システムがしばしば設けられる。このような車両用の通信システムの例としては車載ＬＡＮ（Local  Area  Network）などが挙げられ、これは車両や車載機器の制御等に非常に有用である。
ところで、通信システムを構築する場合には、送受信するメッセージの種類、目的、送受信頻度等に応じて複数のネットワークを用意し、これらのネットワークをゲートウェイで接続して通信システムの構築を行なうことがしばしばなされている。例えば、ＣＡＮを用いた車載ＬＡＮを例にすれば、ナビゲーションシステム制御等のための情報系ネットワーク、ヘッドランプ制御等のためのボディ制御系ネットワーク、エアバッグ制御等のための安全系ネットワーク、エンジン制御等のためのエンジン・パワートレン系ネットワークなどをゲートウェイ装置（以下、単に「ゲートウェイ」ということがある）で接続し、通信システムを構築している（例えば、下記特許文献１参照）。
【特許文献１】特開２００４−６４６２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このようにゲートウェイで複数のネットワークを接続して構築した通信システムにおいては、ゲートウェイの起動時間を短縮することがネットワーク全体の起動時間を短縮するために必要となる。
しかしながら、従来の技術では、ゲートウェイの起動時間が、ゲートウェイに接続される他の端末（ノード）の起動時間よりも遅くなることがあり、このようにゲートウェイの起動が遅いと、ゲートウェイがボトルネックとなって、ネットワーク全体の起動時間の短縮化を図ることが困難である。
【０００４】
本発明は、上記の課題に鑑みて創案されたもので、ゲートウェイで複数のネットワークを接続して構築した通信システムにおいて、ゲートウェイの起動時間を短縮しうるようにした、ゲートウェイ装置の初期化処理方法及びゲートウェイ装置搭載プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
このため、本発明のゲートウェイ装置の初期化処理方法は、第１のネットワークと第２のネットワークとに接続され、この第１のネットワークに接続された端末と第２のネットワークに接続された端末との通信仲介を行なうべく、アプリケーションプログラムで動作するコンピュータを有するゲートウェイ装置の初期化処理方法であって、まず、前記コンピュータのメモリ領域を０クリアする処理を含むスタートアップルーチンを実行し、ついで、前記アプリケーションプログラムにおけるスタティック変数の０クリア処理を省略した初期値代入処理、または、前記アプリケーションプログラムのスタティック変数を０クリアする処理以外の初期値代入処理を施して、前記アプリケーションプログラムを立ち上げることを特徴とする（請求項１，２）。
【０００６】
また、上述の初期化処理方法において、コンピュータのメモリ領域を０クリアする処理が、このコンピュータにおけるスタティック変数を記憶しうるランダムアクセスメモリの
メモリ領域を０クリアする処理であってもよい（請求項３）。
さらに、本発明のゲートウェイ装置搭載プログラムは、第１のネットワークと第２のネットワークとに接続されたゲートウェイ装置に、この第１のネットワークに接続された端末と第２のネットワークに接続された端末との通信仲介処理を行なわせるべく、前記ゲートウェイ装置に搭載されるコンピュータを、このコンピュータのメモリ領域を０クリアする処理を含むスタートアップルーチン部と、前記通信仲介処理に使用するスタティック変数の０クリア処理を省略した初期値代入処理を施して、あるいはスタティック変数を０クリアする処理以外の初期値代入処理を施して、前記コンピュータによる通信仲介処理を実行するメインルーチン部として機能させることを特徴としている（請求項４，５）。
【０００７】
また、上述のプログラムにおいて、スタートアップルーチン部が、コンピュータにおけるスタティック変数を記憶しうるランダムアクセスメモリのメモリ領域を０クリアする処理部を含んでいてもよい（請求項６）。
さらに、本発明のプログラムは、メインルーチン部が、該スタティック変数を０クリアする処理以外の初期値を代入する処理部に、プログラム上で、該スタティック変数の０クリア処理を省略した旨の表示が施されていてもよい（請求項７）。
【発明の効果】
【０００８】
本発明によれば、ゲートウェイの起動時間を短縮することができる。
【発明を実施するための最良の形態】
【０００９】
以下、実施形態を示して本発明について説明する。
図１〜図８は本発明の一実施形態について説明するためのもので、図１は本発明の一実施形態を実施するための通信システム及びゲートウェイの概要を模式的に示す図、図２はそのゲートウェイに搭載されるコントローラの構成を模式的に示す図、図３はそのコントローラに搭載されるＲＡＭの領域を模式的に示す図、図４は本発明の一実施形態を実施するためのゲートウェイ装置の初期化処理を説明するためのフロー図、図５はそのスタートアップルーチンでの主な処理を説明する図、図６はそのメインルーチンでの主な処理を説明する図、図７は初期値代入処理を説明する図、図８は本実施形態における初期値代入処理を説明する図である。
【００１０】
本実施形態のゲートウェイ装置の初期化処理方法は、通信プロトコルとしてＣＡＮを用いた車載ＬＡＮとしての通信システムを主に対象として用いられるものである。ここで、ＣＡＮは、ネットワークが空いているときにはネットワークに接続された全ての送信装置からメッセージを送信することができるマルチマスタ型の通信プロトコルである。
図１に、本実施形態のゲートウェイ装置の初期化処理方法を実施する通信システムの概要を模式的に示すが、この図１において、更にブロック矢印はメッセージが送信される向きを表わし、実線矢印はメッセージの流れを表わし、破線矢印は受信バッファ及び送信バッファとコントローラとの間の信号の流れを表わす。
【００１１】
さて、図１に示すように、本実施形態のゲートウェイ装置の初期化処理方法が実施される通信システムは、第１のネットワークＣＡＮ１と、第２のネットワークＣＡＮ２と、ゲートウェイ１とを備えている。
第１のネットワークＣＡＮ１は、少なくとも１つのノード装置（端末）２が、送信装置及び受信装置として接続されたバス型のネットワークであり、ＣＡＮプロトコルにしたがって通信を行なうことができるように構成されている。また、ノード装置２は、メッセージ（信号）の受信及び送信が可能な通信装置であり、ＣＰＵ（Central  Processing  Unit）、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）等の公知の電
子部品により構成されている。さらに、ノード装置２は、第１のネットワークＣＡＮ１に接続された他のノード装置（図示省略）及びゲートウェイ１と、第１のネットワークＣＡ
Ｎ１を介してメッセージの送受信ができるようになっている。
【００１２】
一方、第２のネットワークＣＡＮ２も、第１のネットワークＣＡＮ１と同様に、少なくとも１つのノード装置（端末）３が、送信装置及び受信装置として接続されたバス型のネットワークであり、ＣＡＮプロトコルにしたがって通信を行なうことができるように構成されている。また、ノード装置３も、ノード装置２と同様、メッセージの受信及び送信が可能な通信装置であり、ＣＰＵ、ＲＡＭ、ＲＯＭ等の公知の電子部品により構成されている。さらに、ノード装置３も、第２のネットワークＣＡＮ２内の他のノード装置（図示省略）及びゲートウェイと、第２のネットワークＣＡＮ２を介してメッセージの送受信ができるようになっている。
【００１３】
なお、図１においてはノード装置２，３をそれぞれ１つのみ描画して示すが、通常は、第１のネットワークＣＡＮ１及び第２のネットワークＣＡＮ２には、それぞれノード装置２，３以外にもノード装置が設けられる。さらに、ノード装置２，３は、それぞれの目的に応じた車両制御等を行なうための電子制御装置（ＥＣＵ：Electronic  Control  Unit
）として構成されている。
【００１４】
また、ゲートウェイ１は第１のネットワークＣＡＮ１及び第２のネットワークＣＡＮ２間を接続する通信装置であり、したがって、送信側のネットワークＣＡＮ１（ＣＡＮ２）に接続されたノード装置２（３）から受信側のネットワークＣＡＮ２（ＣＡＮ１）に接続されたノード装置３（２）に向けて送信されるメッセージＡ〜Ｃ（Ｄ〜Ｆ）は、上記受信側のノード装置３（２）に受信されるようになっている。なお、ゲートウェイ１も、ＣＰＵ、ＲＡＭ、ＲＯＭ等の公知の電子部品からなる電子制御装置（ＥＣＵ）として構成されている。
【００１５】
ゲートウェイ１の構成について具体的に説明すると、このゲートウェイ１は、各メッセージＡ〜Ｆ毎に用意された受信バッファ４Ａ〜４Ｆと、各メッセージＡ〜Ｆ毎に用意された送信バッファ５Ａ〜５Ｆと、ゲートウェイ１の各制御を行なうコントローラ６とを備えている。これにより、受信バッファ４Ａ〜４Ｆに受信された各メッセージＡ〜Ｆはそれぞれコントローラ６の制御にしたがって対応する送信バッファ５Ａ〜５Ｆに送られるようになっている。さらに、送信バッファ５Ａ〜５Ｆ内の各メッセージは、コントローラ６の制御にしたがって、送信先のノード装置２，３に第１又は第２のネットワークＣＡＮ１，ＣＡＮ２を介して送信されるようになっている。
【００１６】
本実施形態にかかる通信システムでは、受信バッファ４Ａ〜４Ｃ及び送信バッファ５Ａ〜５Ｃがノード装置２からノード装置３へ向けて送信されるメッセージＡ〜Ｃに対応している。したがって、ノード装置２から送信されたメッセージＡ〜Ｃは、第１のネットワークＣＡＮ１を介して受信バッファ４Ａ〜４Ｃに受信され、受信バッファ４Ａ〜４Ｃから送信バッファ５Ａ〜５Ｃに送られ、送信バッファ５Ａ〜５Ｃから第２のネットワークＣＡＮ２を介してノード装置３に送信され、ノード装置３で受信されるようになっている。
【００１７】
一方、受信バッファ４Ｄ〜４Ｆ及び送信バッファ５Ｄ〜５Ｆはノード装置３からノード装置２へ向けて送信されるメッセージＤ〜Ｆに対応している。したがって、ノード装置３から送信されたメッセージＤ〜Ｆは、第２のネットワークＣＡＮ２を介して受信バッファ４Ｄ〜４Ｆに受信され、受信バッファ４Ｄ〜４Ｆから送信バッファ５Ｄ〜５Ｆに送られ、送信バッファ５Ｄ〜５Ｆから第１のネットワークＣＡＮ１を介してノード装置２に送信され、ノード装置２で受信されるようになっている。
【００１８】
なお、上述の通信システムではメッセージＡ〜Ｆが６種類であるために受信バッファ４Ａ〜４Ｆ及び送信バッファ５Ａ〜５Ｆをそれぞれ６個用意したが、メッセージの種類の数
が変わった場合には受信バッファ及び送信バッファの数もメッセージの種類の数に応じて変えるようにする。
ここで、コントローラ６は、受信バッファ４Ａ〜４Ｆ及び送信バッファ５Ａ〜５Ｆ間のメッセージの受け渡しの制御や、送信バッファ５Ａ〜５Ｆから送信先のノード装置２，３へのメッセージＡ〜Ｆの送信の制御等のメッセージ送受信制御を行なうことができるように機能する。
【００１９】
また、コントローラ６は、図２に示すように、制御用のＣＰＵ７，ＲＡＭ８及びＲＯＭ９等を備えて構成されている。
ここで、ＲＡＭ８は、図３に示すように、スタティック変数としてのグローバル変数などを格納する領域１０Ａとローカル変数などを格納するスタック領域１０Ｂとで構成され、一般的にゲートウェイ１の起動時には、少なくとも領域１０Ａ（即ち、領域１０Ａのみ、領域１０Ａ，１０Ｂ、あるいは全領域）が０クリアされる。
【００２０】
ＲＯＭ９は、ゲートウェイ動作用のプログラムや定数等を記憶するものである。このプログラムには、スタートアップルーチンプログラムやアプリケーションプログラムが含まれる。
スタートアップルーチンプログラムは、アセンブラ言語等の低級プログラミング言語を用いて開発されたものであり、ゲートウェイ１の起動時にＲＡＭ８のメモリ領域を０クリアするスタートアップ処理（あるいはブート処理）を行なうものである。
【００２１】
アプリケーションプログラムは、Ｃ言語やＣ＋＋言語あるいはＪａｖａ（登録商標）等の高級プログラミング言語を用いて開発されたもので、ゲートウェイ１の動作を実行するメインルーチン処理を行なうものである。
なお、アプリケーションプログラムによるメインルーチン処理に際しては、後述するように、イニシャル処理（初期値代入処理）やバックグラウンド処理、各種割込み処理等がなされる。
【００２２】
ＣＰＵ７は、これらのプログラムを実行及び制御するものである。
以下、図４に示すゲートウェイの初期化処理のフロー図を用いて、本実施形態におけるゲートウェイの初期化処理方法について説明する。
図４に示すように、まず、ゲートウェイ１の電源がＯＮされる（ステップＳ１１）と、次にステップＳ１２において、スタートアップルーチン（ブート処理）が起動される。かかるスタートアップルーチンにおいては、例えば図５に示すように、スタック領域の設定、プログラムに必要なデータの設定、メモリ（ＲＡＭ）領域の０クリア、マイコンの動作モードの設定、マイコン内蔵の周辺機能を使用するための各種レジスタの初期化、ハードウェアの初期化、及び、割り込み許可設定などを行なう。なお、ＲＡＭ領域の０クリアは、例えばスタック領域は除く等の領域限定をつけて０クリアされる場合もある。
【００２３】
ついで、例えば図６に示すような初期値代入処理とバックグラウンド処理とからなるメインルーチンが起動される（ステップＳ１３）。
即ち、アプリケーションプログラムを起動して、メインルーチンが開始される（ステップＳ１３）と、まず、ステップＳ１４で、イニシャル処理（初期値代入処理）がなされる。
【００２４】
本実施形態では、この初期値代入処理を行なう際に、図８に示すように、スタートアップルーチンで既に０クリアされたメモリ領域のグローバル変数（スタティック変数）については、０を代入する処理を行なわない、即ち、グローバル変数の０クリア処理を省略した初期値代入処理が施される。換言すれば、グローバル変数を０クリアする処理以外の初期値代入処理を施すのである。そして、０クリア処理ステップ部に対応するプログラム部
分に、０クリア処理を省略した旨のコメント表示が施されている。更に詳細には、そのステップで０が代入されるべきメモリ領域のスタティック変数がスタートアップルーチンで既に０クリア済みであることをコメントにてプログラム中で明記するようにしている。
【００２５】
プログラム中の具体的な表記で示すと、本来の初期値代入処理では、図７のように、
Void 初期値代入処理
[
グローバル変数フラグ１＝OFF;
グローバル変数フラグ１＝ON;
グローバル変数カウント＝0;
]
と表記して、グローバル変数フラグ１をＯＦＦ（プログラムの宣言部で、ＯＦＦ＝０と定義済み）にするステップ、及び、グローバル変数カウントに０を代入するステップなど、スタートアップルーチンで既に０クリアされているＲＡＭ８のメモリ領域１０Ａのスタティック変数についても再度０を代入するステップを実行しているのに対し、本実施形態の初期値代入処理では、図８のように、
Void 初期値代入処理
[
/*グローバル変数フラグ１＝OFF;*//*スタートアップで０クリア済み*/
グローバル変数フラグ１＝ON;
/*グローバル変数カウント＝0;*//* スタートアップで０クリア済み*/
]
と表記するのである。
【００２６】
その後、メインルーチンでは、上述のように初期値代入処理が実行された後（ステップＳ１４）は、バックグラウンド処理が繰り返し実行される（ステップＳ１５）。また、バックグラウンド処理中には、各種割り込み処理が発生し（ステップＳ１７）、各種割り込み処理が実行される（ステップＳ１８）。その後、割り込み処理が終了すると、バックグラウンド処理へと処理は戻り（ステップＳ１９）、再度バックグラウンド処理が繰り返される。そして、最後には、ゲートウェイ装置の電源がＯＦＦされる（ステップＳ１６）。
【００２７】
このように本実施形態にかかる初期値代入処理では、スタートアップルーチンで既に０クリアされたメモリ領域のグローバル変数に０を代入するステップを省略して、初期値代入処理を実行するので、グローバル変数の０クリア処理を重複して行なうことがなくなり、これにより初期値代入処理時間を大幅に短縮することができる。このようにしてゲートウェイ１の起動時間を短縮することができ、ひいては、通信システム全体の起動時間を短縮することが可能となるのである。
【００２８】
特に、ＣＡＮのようなネットワークでは、通信システム全体の起動時間は、各ノードを中継するゲートウェイ装置の起動時間に大きく関係しているため、本実施形態のゲートウェイ装置の初期化処理方法を用いてゲートウェイ装置の起動時間を短縮することにより得られる効果は、非常に大きい。
さらに、本実施形態のゲートウェイ装置の初期化処理方法によれば、上述のごとく重複したステップを省略する際にその旨のコメントをプログラム中に表示することにより、プログラムの可視性が高まり、初期値代入処理プログラムの運用性が向上し、更にはその後のプログラム修正等の開発時にも高い便宜性が得られる。また、省略したステップについて、その理由をプログラム中にコメントにて明記することでも、初期値代入処理プログラムの可視性を更に向上させることが可能となる。
【００２９】
以上、本発明の一実施形態について詳細に説明したが、本発明は上記の実施形態に限定
されるものではなく、本発明の要旨を逸脱しない範囲において任意に変形して実施することができる。
【産業上の利用可能性】
【００３０】
本発明のゲートウェイ装置の初期化処理方法及び初期化処理プログラムは、ＦＡ（ファクトリーオートメーション）、船舶、医療機器、産業機器などをはじめ、通信システムを用いる任意の分野で広く用いることができるが、特に、車両用通信システムなど、ＣＡＮを用いた通信システムに用いて好適である。
【図面の簡単な説明】
【００３１】
【図１】本発明の一実施形態を実施するための通信システム及びゲートウェイの概要を模式的に示す図である。
【図２】上記ゲートウェイにおけるコントローラの構成を模式的に示す図である。
【図３】上記ゲートウェイにおけるコントローラに搭載されたＲＡＭの領域について模式的に示す図である。
【図４】本発明の一実施形態としてのゲートウェイ装置の初期化処理方法を説明するためのフロー図である。
【図５】本発明の一実施形態を実施する際の、スタートアップルーチンでの主な処理を説明する図である。
【図６】本発明の一実施形態を実施する際の、メインルーチンでの主な処理を説明する図である。
【図７】初期値代入処理の一例を説明する図である。
【図８】本発明の一実施形態を実施する際の初期値代入処理を説明する図である。
【符号の説明】
【００３２】
１  ゲートウェイ
２，３  ノード装置（送信装置、受信装置）
４Ａ〜４Ｆ  受信バッファ
５Ａ〜５Ｆ  送信バッファ
６  コントローラ
７  ＣＰＵ
８  ＲＡＭ
９  ＲＯＭ
１０Ａ  メモリ領域
１０Ｂ  スタック領域
【図１】
2006268387.tif 000003
【図２】
2006268387.tif 000004
【図３】
2006268387.tif 000005
【図４】
2006268387.tif 000006
【図５】
2006268387.tif 000007
【図６】
2006268387.tif 000008
【図７】
2006268387.tif 000009
【図８】
2006268387.tif 000010