(57)【要約】【課題】複数のセンサにＩＤ設定等の初期化を行うプログラムであって、各センサが接続されたバスの本数などの仕様変更があったとしても柔軟に対応できるプログラムを提供する。【解決手段】車両の前方バンパ及び後方バンパには複数のセンサが搭載され、それらセンサとＥＣＵは１本のバスで接続される。ＥＣＵのＲＯＭには、システム起動時に各センサにＩＤ設定等の初期化処理を行うソフトウェア（プログラム）５が実装される。ソフトウェア５は、１つのセンサグループに対する初期化処理を示した単位プログラム５ａがマトリックス状に配列されたソフトウェア構造５０を有する。ソフトウェア構造５０のうち左側の配列部分５１１が使用するプログラムとして選択される。ＥＣＵは、配列部分５１１の２つの単位プログラム５ａ１、５ａ２を順次実行することで、前方バンパのセンサグループ、後方バンパのセンサグループの順に電源を供給し初期化処理を実行する。【選択図】図４
2014204256.tif 000002
【特許請求の範囲】
【請求項１】
複数の被制御装置（４、４１１、４１２、４２１〜４２４）及びそれら被制御装置を制御する制御装置（２）が１又は複数のバス（３、３ａ、３ｂ、３ｃ、３ｄ）に接続され、前記複数の被制御装置は前記バスごとに又は各被制御装置の配置位置に応じてグループ（４１、４２、４３、４４）に分けられており、前記グループごとに前記制御装置によりオンオフが切り替え可能な電源（３２、３２１、３２２）が前記バスの構成要素として設けられたシステム（１００）における前記制御装置に実装され、
前記制御装置が、同一の前記バスに直列に接続された複数の前記グループ（４１、４２）である直列グループ群に対しては、各グループの前記電源を順次オンして、前記電源をオンした前記グループから順に所定処理（Ｓ１〜Ｓ９、Ｓ１０１〜Ｓ１０４）を実行する一方で、異なる前記バスに並列に接続された複数の前記グループ（４３、４４）である並列グループ群に対しては、各グループの前記電源を同時にオンして前記所定処理を並列に実行するように前記制御装置を動作させるプログラムであって、
前記所定処理を示したプログラムである単位プログラム（５ａ）が直列及び並列に連なるように配列された構造（５０、６０）を有し、前記構造の中で前記単位プログラムが直列に配列された部分は前記直列グループ群に対する処理を示し、前記単位プログラムが並列に配列された部分は前記並列グループ群に対する処理を示し、
前記構造の中で使用する前記単位ブログラムの配列部分が前記バスの数と前記電源の数とに応じて選択されたことを特徴とするプログラム（５、６）。
【請求項２】
１つの前記バス当たりに設けられる前記電源の数の想定バリエーションの中で最大数を第１数、前記バスの数の想定バリエーションの中で最大数を第２数として、
前記構造は、前記単位プログラムが直列方向に前記第１数だけ連なり、並列方向に前記第２数だけ連なるように配列された構造であることを特徴とする請求項１に記載のプログラム。
【請求項３】
前記構造の中で使用する前記単位プログラムの配列部分として、前記バスの数だけ並列方向に前記単位プログラムが配列され、前記電源の数だけ直列方向に前記単位プログラムが配列された部分が選択されたことを特徴とする請求項１又は２に記載のプログラム。
【請求項４】
前記所定処理が、前記システムの起動時に前記グループを構成する各被制御装置にＩＤを設定するＩＤ設定処理であることを特徴とする請求項１〜３のいずれか１項に記載のプログラム。
【請求項５】
前記複数の被制御装置のそれぞれは、前記バスと次段の被制御装置の接続をオンオフするスイッチ（４ｃ）を有し、ＩＤが設定された前記被制御装置が順次前記スイッチをオンにして次段の前記被制御装置を前記バスに接続するように構成され、
前記ＩＤ設定処理が、前記制御装置に近い前記被制御装置から順に前記バスを介して各被制御装置の配置位置に応じたＩＤを設定する処理であることを特徴とする請求項４に記載のプログラム。
【請求項６】
前記制御装置及び前記被制御装置は車両（１）に搭載され、
前記被制御装置は前記車両周辺に存在する障害物を検知するセンサであることを特徴とする請求項１〜５のいずれか１項に記載のプログラム。
【請求項７】
請求項１〜６のいずれか１項に記載のプログラムを実装した制御装置（２）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被制御装置を制御する制御装置に実装されるプログラム及びそのプログラムを実装した制御装置に関する。
【背景技術】
【０００２】
従来、車両の前方バンパ、後方バンパ等に配置された複数の障害物検知センサとそれらセンサを制御する制御装置とがバスに接続され、各センサにより車両周辺の障害物を検知する車両用ソナーシステムが知られている（例えば特許文献１参照）。この種のシステムでは、制御装置が各センサの配置位置を特定するためにセンサごとにＩＤを持つ必要があるが、生産管理やコスト面からセンサ品番を分けないのが望ましい。そのため、特許文献１のシステムでは、各センサ間でセンサ品番を共通にしつつ、システム起動時に、制御装置が、制御装置に近いセンサから順にバスを介して各センサの配置位置に応じたＩＤを設定している。この際、各センサは、ＩＤが設定される順に、つまり制御装置に近いセンサから順に、電源（バス）にデイジーチェーンで接続されるように構成されている。
【０００３】
また、特許文献１のシステムでは、各センサは配置位置に応じてグループに分けられており、具体的には前方バンパに配置されたセンサのグループと、後方バンパに配置されたセンサのグループとに分けられている。そして、グループごとに電源（電源線）を設けて各電源のオンオフを個別に切り替えることで、グループごとに独立にＩＤ設定を行えるようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２０１６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記の車両用ソナーシステムにおいては、顧客ニーズにより、各センサが接続されるバスの本数等のセンサ構成にいくつかのバリエーションがある。センサ構成が異なると、各センサを制御するソフトウェア（プログラム）が異なってくるため、現状では、センサ構成ごとにソフトウェアを用意していた。そのため、システムの仕様変更がある場合には、複数のソフトウェアの全てをメンテナンスしなくてはならず、保守性に劣るという問題点があった。また、将来、センサ構成を拡張する場合には、拡張により追加されたセンサ構成用のソフトウェアを一から設計しなければならず、センサ構成の拡張に柔軟に対応することが困難となっていた。
【０００６】
本発明は上記事情に鑑みてなされたものであり、車両用ソナーシステムのように、被制御装置と制御装置とがバスで接続されてバスの本数等のシステム構成にいくつかのバリエーションがあるシステムにおける制御装置に実装され、システムの仕様変更やバスの本数などの拡張があったとしても柔軟に対応することができるプログラム及びそのプログラムを実装した制御装置を提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明者は、車両用ソナーシステムにおけるセンサ構成の各バリエーションでの制御内容を整理してみたところ、システム起動時の各センサへのＩＤ設定アルゴリズムはバス数と電源数とで定まる法則性を有することを発見した。すなわち、同一のバスに直列に接続されたグループ（直列グループ群）に対してＩＤ設定を行う際には、各グループの電源を順次オンして、電源をオンしたグループのセンサから順にＩＤ設定を行う。つまり、同一のバスに複数の電源が設けられたセンサ構成の場合には、各グループ間のＩＤ設定が直列的に行われる。一方で、異なるバスに並列に接続されたグループ（並列グループ群）に対してＩＤ設定を行う際には、各グループの電源を同時にオンして複数のグループのＩＤ設定を並列に行う。つまり、複数のバスが設けられたセンサ構成の場合には、各グループ間のＩＤ設定が並列的に行われる。そして、その法則性を利用することでＩＤ設定アルゴリズムをセンサ構成にかかわらず汎用化できることを見出し、本発明に至った。
【０００８】
すなわち、本発明のプログラムは、複数の被制御装置及びそれら被制御装置を制御する制御装置が１又は複数のバスに接続され、前記複数の被制御装置は前記バスごとに又は各被制御装置の配置位置に応じてグループに分けられており、前記グループごとに前記制御装置によりオンオフが切り替え可能な電源が前記バスの構成要素として設けられたシステムにおける前記制御装置に実装され、
前記制御装置が、同一の前記バスに直列に接続された複数の前記グループである直列グループ群に対しては、各グループの前記電源を順次オンして、前記電源をオンした前記グループから順に所定処理を実行する一方で、異なる前記バスに並列に接続された複数の前記グループである並列グループ群に対しては、各グループの前記電源を同時にオンして前記所定処理を並列に実行するように前記制御装置を動作させるプログラムであって、
前記所定処理を示したプログラムである単位プログラムが直列及び並列に連なるように配列された構造を有し、前記構造の中で前記単位プログラムが直列に配列された部分は前記直列グループ群に対する処理を示し、前記単位プログラムが並列に配列された部分は前記並列グループ群に対する処理を示し、
前記構造の中で使用する前記単位ブログラムの配列部分が前記バスの数と前記電源の数とに応じて選択されたことを特徴とする。
【０００９】
このように、本発明のプログラムは、ＩＤ設定処理等の所定処理を示した単位プログラムが直列及び並列に連なるように配列された構造を有しており、システム構成（バス数、電源数）に応じて、構造の中で使用する配列部分が選択されている。よって、そのプログラムを制御装置に実装した場合には、制御装置に、システム構成（バス数、電源数）に応じた動作をさせることができるとともに、バス数、電源数にかかわらず上記構造を共通化できる。つまり、バス数、電源数の仕様変更があったとしても上記構造は変更する必要がなく、使用する配列部分を調整（選択）するだけで良い。つまり、システムの仕様変更に柔軟に対応することができる。
【００１０】
本発明の制御装置は、本発明のプログラムを実装する。これにより、制御装置は、直列グループ群に対しては直列に所定処理を実行でき、並列グループ群に対しては並列に所定処理を実行できる。
【図面の簡単な説明】
【００１１】
【図１】車両用ソナーシステムの構成の一例を示した図である。
【図２】車両用ソナーシステムの詳細な構成を示した図である。
【図３】センサの内部構成を示した図である。
【図４】図１のセンサ構成におけるＥＣＵのＲＯＭに実装されるソフトウェアの概念図である。
【図５】ＩＤ設定処理のフローチャートである。
【図６】図１のセンサ構成の初期化処理におけるバスの通信状態、各電源のオンオフ状態を示した図である。
【図７】図４のソフトウェア構造の中身を状態遷移図であらわした図である。
【図８】センサ構成の第１〜第３のバリエーションを示した図である。
【図９】センサ構成の第４〜第６のバリエーションを示した図である。
【図１０】第４のバリエーションにおけるＥＣＵのＲＯＭに実装されるソフトウェアの概念図である。
【図１１】第４のバリエーションのセンサ構成の初期化処理における各バスの通信状態及び各バスの電源のオンオフ状態を示した図である。
【図１２】単位プログラムが４×４のマトリックス状に配列されたソフトウェア構造を有したソフトウェアの概念図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図面を参照しながら説明する。図１は、車両周辺の障害物を検知する車両用ソナーシステムの構成の一例を示した図である。図１の車両用ソナーシステム１００は、車両１に搭載されており、車両１の車体面の各位置に搭載された複数のセンサ４（４１１〜４２４）と、それらセンサ４を制御するＥＣＵ２と、各センサ４及びＥＣＵ２が接続された１本のバス３とを備えている。
【００１３】
図２は、車両用ソナーシステム１００の詳細な構成を示している。図２に示すように、バス３は、ＥＣＵ２と各センサ４の間でＩＤを含む各種データの送受信が行われる通信線３１と、車載バッテリの＋Ｂ端子に接続された電源線３２と、グランドに接続されたＧＮＤ線３３とから構成されている。なお、電源線３２及びＧＮＤ線３３により、各センサ４に電力が供給される。バス３は、図１に示すように、車両１の前方バンパ１１と後方バンパ１２との間に亘って配設されている。そして、前方バンパ１１の位置（厳密には前側の両コーナー）にて２つのセンサ４１１、４１２がバス３に接続され、後方バンパ１２の位置（厳密には後側の両コーナー、及びそれらコーナー間の位置）にて４つのセンサ４２１〜４２４がバス３に接続されている。
【００１４】
前方バンパ１１に搭載された２つのセンサ４１１、４１２を第１グループ４１、後方バンパ１２に搭載された４つのセンサ４２１〜４２４を第２グループ４２として、バス３の電源線３２は、それらグループ４１、４２ごとに設けられている。すなわち、図２に示すように、電源線３２は、第１グループ４１に電源を供給するための第１電源線３２１と、第２グループ４２に電源を供給するための第２電源線３２２とを有する。
【００１５】
図１に示すように、ＥＣＵ２は、第１グループ４１と第２グループ４２の間の位置にてバス３に接続されている。そのＥＣＵ２は、図２に示すように、コントローラ２１、電源スイッチＳＷ１、ＳＷ２を備えている。コントローラ２１は、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されたコンピュータであり、車両１のイグニッションスイッチ（ＩＧ）を介して、車載バッテリの＋Ｂ端子に接続されている。そして、コントローラ２１は、その車載バッテリからの電源の供給を受けることによって、スイッチＳＷ１、ＳＷ２をオンオフする制御を行ったり、各センサ４１１〜４２４との間で通信を行いつつ各センサ４１１〜４２４を制御したりする。なお、コントローラ２１と各センサ４１１〜４２４との通信は例えばＬＩＮ通信とされる。また、コントローラ２１にはＲＯＭ２１１が設けられており、そのＲＯＭ２１１には、コントローラ２１が実行するプログラム（ソフトウェア）が実装されている。そのプログラムの構造が本発明の特徴部分であるので後に詳細に説明する。
【００１６】
電源スイッチＳＷ１の一端は、ＩＧを介して車載バッテリの＋Ｂ端子に接続され、その他端は第１電源線３２１に接続されている。また、電源スイッチＳＷ２の一端は、ＩＧを介して車載バッテリの＋Ｂ端子に接続され、その他端は第２電源線３２２に接続されている。それら電源スイッチＳＷ１、ＳＷ２の開閉を制御する端子がコントローラ２１に接続されている。コントローラ２１は、それら電源スイッチＳＷ１、ＳＷ２を別々にオンオフすることで、第１電源線３２１、すなわち第１グループ４１と、第２電源線３２２、すなわち第２グループ４２への電源の供給と遮断を別々に行うことができる。
【００１７】
センサ４１１〜４２４は、互いに同じ機能、構造を有する。また、センサ４１１〜４２４間でセンサ品番が共通となっている。センサ４（センサ４１１〜４２４）は、センサ４周辺に超音波を送信し、その超音波が障害物に当たって反射した反射波を受信し、受信した反射波に基づいて、その障害物を検知する超音波センサである。図３に、センサ４の内部構成を示す。図３に示すように、センサ４は、コントローラ４ａ、電源回路４ｂ、及びスイッチ４ｃを備えている。各センサ４は、スイッチ４ｃを介して電源線３２に直列に接続されている。詳細には、第１グループ４１のセンサ４１１、４１２は、各センサ４１１、４１２のスイッチ４ｃを介して第１電源線３２１に直列に接続されている。また、第２グループ４２のセンサ４２１〜４２４は、各センサ４２１〜４２４のスイッチ４ｃを介して第２電源線３２２に直列に接続されている。
【００１８】
電源回路４ｂは、スイッチ４ｃの一端とＧＮＤ線３３に接続され、コントローラ４ａの電源を生成する。コントローラ４ａは、通信線３１及びＧＮＤ線３３に直結（バス接続）され、また、スイッチ４ｃを制御する。
【００１９】
このように、図１の車両用ソナーシステム１００のセンサ構成は、１本のバス３と、２つの電源（電源線３２１、３２２）とを備えた構造（バス数１、電源数２）となっている。そして、第１グループ４１と第２グループ４２は、同一のバス３に直列に接続された直列グループ群を構成している。
【００２０】
次に、本発明の特徴部分である、ＥＣＵ２のＲＯＭ２１１（図２参照）に実装されたソフトウェアの構造及びそのソフトウェアによるＥＣＵ２の処理を説明する。ＥＣＵ２（コントローラ２１）は、障害物を検知したセンサ４が車両１のどの位置に配置されたセンサなのかを把握するために、車両用ソナーシステム１００の起動時、具体的には車両１の始動時であるイグニッションスイッチＩＧがオンされた時に、各センサ４に各センサ４の配置位置に応じたＩＤの設定など、各センサ４の初期設定を行う初期化処理を実行する。ＲＯＭ２１１にはその初期化処理のソフトウェアが実装（記憶）されている。
【００２１】
図４は、そのソフトウェアの概念図を示している。図４のソフトウェア５は、１つのセンサグループに対して実行される初期化処理のプログラム５ａ（以下、単位プログラムという）が概念的にマトリックス状に配列された構造５０を有している。詳細には、構造５０は、並列方向（図４の横方向）にバスの本数を示した軸（以下、バス軸という）、直列方向（図４の縦方向）にバス１本当たりに設けられる電源数を示した軸（以下、電源軸という）が定義されて、単位プログラム５ａがバス軸の方向に２列、電源軸の方向に２列配置された構造、つまり２×２のマトリックス状に配列された構造である。
【００２２】
そして、その構造５０のうち左側の１列５１１が、使用される部分として、つまりＥＣＵ２により実行される部分として選択（調整）されている。言い換えると、右側の１列５１２は、使用されないように調整されている。この選択された配列部分５１１は、ＲＯＭ２１１に実装される前の、センサ構成の仕様決定段階にて予め選択されている。配列部分５１１は、バス軸の方向に１列分、電源軸の方向に２列分の配列となっているので、図１のセンサ構成（バス数１、電源数２）に対応している。
【００２３】
図５は、単位プログラム５ａ（初期化処理）の中でも特にＩＤ設定処理のフローチャートを左側に、センサ４が実行する処理を右側に示している。図６は、図１のセンサ構成（バス数１、電源数２）でのグループ間（直列グループ群）におけるＩＤ設定の順序を説明する図であり、詳細には、バス３の通信状態、第１電源線３２１（電源スイッチＳＷ１）のオンオフ状態及び第２電源線３２２（電源スイッチＳＷ２）のオンオフ状態を示している。
【００２４】
図４〜図６を参照して、図１のセンサ構成におけるＩＤ設定処理を説明する。ＥＣＵ２のコントローラ２１（以下、単にＥＣＵ２という）は、イグニッションスイッチＩＧがオンになって車載バッテリから電源の供給を受けるとスタートし（Ｓ１）、先ず、図４の配列部分５１１の１番目の単位プログラム５ａ１を実行して第１グループ４１（図１参照）に対してＩＤ設定を行う。すなわち、スイッチＳＷ１をオン、スイッチＳＷ２をオフにして第１電源線３２１のみに電源を供給する（Ｓ２、図６も参照）。これにより、第１グループ４１のうちＥＣＵ２に最も近いセンサ４１１（図１参照）のコントローラ４ａのみが電源を供給されてスタートする（Ｓ１１）。
【００２５】
ＥＣＵ２は次いで設定ＩＤを初期化（ＩＤ＝１）にセットし（Ｓ３）、次いでそのＩＤを設定したＩＤ設定メッセージを通信線３１に送信する（Ｓ４）。その後、ＥＣＵ２は、Ｓ４で送信したＩＤをセンサに設定できたことを確認するＩＤ確認メッセージを通信線３１に送信する（Ｓ５）。このとき、ＩＤ確認メッセージのあて先としてＳ４で設定したＩＤを指定する。その後、ＥＣＵ２は、Ｓ５で送信したＩＤ確認メッセージに応答するセンサからのメッセージを待つ（Ｓ６）。センサ４１１は、電源を供給されてスタートすると（Ｓ１１）、ＩＤ設定メッセージを待つ（Ｓ１２）。そして、ＩＤ設定メッセージを受信すると、ＩＤ設定メッセージ無視フラグＦがセットされているか否かを判断し（Ｓ１３）、セットされていない場合にはＳ１４に進み、他方、セットされている場合には受信メッセージを無視してこの処理を終了する。ここで、ＩＤ設定メッセージ無視フラグＦとは、初期値はＦ＝０であり、ＩＤを設定されたセンサがＦ＝１にセットするフラグである。
【００２６】
Ｓ１４では、受信したＩＤ設定メッセージ内のＩＤを記憶してそのＩＤに確定し（Ｓ１４）、次いでスイッチ４ｃをオンにし（Ｓ１５）、ＥＣＵ２からのメッセージ（問い合わせ）を待つ（Ｓ１６）。その後、ＥＣＵ２からのＩＤ確認メッセージを受信すると、Ｓ１７に進み、そのＩＤ確認メッセージに応答するメッセージをＥＣＵ２に送信し（Ｓ１７）、次いでＩＤ設定無視フラグＦをセットし（Ｓ１８）、次いで終了する。これにより、次段のセンサ４１２（図１参照）が電源を供給されてスタートし、ＩＤ設定が終了したセンサ４１１は以降のセンサに対するＩＤ設定メッセージを無視する。
【００２７】
ＥＣＵ２は、Ｓ６においてセンサからの応答メッセージを受信したか否かを判断し、受信した場合にはＳ７に進む。Ｓ７では、第２グループ４２の最後のセンサ４２４（図１参照）までＩＤ設定が終了したか否かを判断し、終了していない場合にはＳ８に進んで設定ＩＤを次のＩＤ（ＩＤ＝ＩＤ＋１）にセットし、次いでＳ４に戻ってそのＩＤをセットしたＩＤ設定メッセージを通信線３１に送信することにより次段のセンサ４１２のＩＤ設定を行う。
【００２８】
その後、Ｓ８において、ＩＤ＝３とセットされた場合、ＥＣＵ２は、次に、図４の配列部分５１１の２番目の単位プログラム５ａ２を実行して第２グループ４２（図１参照）に対してＩＤ設定を行う。すなわち、スイッチＳＷ２もオンして第２電源線３２２にも電源を供給する（Ｓ２、図６参照）。これにより、第２グループ４２のうちＥＣＵ２に最も近いセンサ４２１（図１参照）に電源が供給されて、そのセンサ４２１にＩＤ設定が行われる。その後、センサ４２１→センサ４２２→センサ４２３→センサ４２４の順にＩＤ設定が行われる。
【００２９】
Ｓ７において最後のセンサ４２４までＩＤ設定が終了している場合にはＳ９に進み、個々のＩＤが設定された各センサ４からポーリング／セレクティング方式などで情報を収集する通信を開始する。
【００３０】
このように、ＩＤ設定を行う際、センサ４１１〜４２４の各配置位置に応じたＩＤに基づいてバスを介して最初のセンサにそのＩＤを設定し、その後、ＩＤの設定されたセンサが順次スイッチをオンにして次段のセンサをバスに接続した後、そのバスに接続された次段のセンサに対してＩＤを設定することで、ＥＣＵ２から順次、各センサの各配置位置に応じたＩＤを自動的に設定することができる。なお、ＥＣＵ２のＲＯＭ２１１には、センサの各配置位置とＩＤとの関係（例えば、ＩＤ＝１は、右側のフロントコーナーに搭載されたセンサであるという関係）が記憶されており、ＥＣＵ２はその関係を参照することで、どこに配置されたセンサなのかを把握しつつ、各センサとの間で通信を行うことができる。
【００３１】
また、図１のセンサ構成においては、図４の配列部分５１１の各単位プログラム５ａ１、５ａ２が順番に、つまり直列に実行されて、第１グループ４１、第２グループの順に初期化処理（ＩＤ設定処理）が実行される。つまり、各グループ４１、４２の電源（電源スイッチＳＷ１、ＳＷ２）が順次オンされ、電源オンされたグループのセンサから順にＩＤ設定が行われる。このように、ソフトウェア構造５０のうち、単位プログラム５ａが直列方向（電源軸の方向）に配列された部分は、同一のバスに複数の電源が設けられたセンサ構成に対する初期化処理、すなわち直列グループ群に対する初期化処理のプログラムに相当する。なお、後述するように、単位プログラム５ａが並列方向（バス軸の方向）に配列された部分は、複数のバスに接続された複数のセンサグループが接続されたセンサ構成に対する初期化処理、すなわち並列グループ群に対する初期化処理のプログラムに相当する。
【００３２】
ここで、図７を参照してソフトウェア構造をさらに詳細に説明する。図７は、図４のソフトウェア構造５０の中身を状態遷移図であらわした図である。図７に示すように、ソフトウェア構造５０には、どの単位プログラム５ａを実行するかを規定する分岐部（分岐部５２１など）がいくつか設けられている。そして、各分岐部においてセンサ構成に応じた分岐条件を設定することで、左側の配列部分５１１が使用するプログラムとして選択されている。具体的には、左側の配列部分５１１の１番目の単位プログラム５ａ１の手前には第１分岐部５２１が設けられている。その第１分岐部５２１から１番目の単位プログラム５ａ１に移行するように、第１分岐部５２１における分岐条件が設定されている。
【００３３】
また、１番目の単位プログラム５ａ１と２番目の単位プログラム５ａ２の間には第２分岐部５２２が設けられている。１番目の単位プログラム５ａ１の実行後、第２分岐部５２２に移行して、その第２分岐部５２２から２番目の単位プログラム５ａ２に移行するように、第２分岐部５２２における分岐条件が設定されている。２番目の単位プログラム５ａ２の実行後、左側の配列部分５１１におけるプログラムが終了するようになっている。
【００３４】
また、右側の配列部分５１２は実行されないように各分岐部における分岐条件が設定されている。具体的には、例えば、右側の配列部分５１２の１番目の単位プログラム５ａ３の手前に第３分岐部５２３が設けられており、その第３分岐部５２３から単位プログラム５ａ３に移行しないで右側の配列部分５１２を抜けるように、第３分岐部５２３における分岐条件が設定されている。これにより、右側の配列部分５１２の各単位プログラム５ａは実行されないことになる。
【００３５】
上述した図５の処理は初期化処理のうちのＩＤ設定処理を示しているが、実際には、単位プログラム５ａ（初期化処理）には、図７に示すように、ＩＤ設定以外の処理も含んでいる。具体的には、左側の１番目の単位プログラム５ａ１の例、つまり第１グループ４１に対する初期化処理の例で説明すると、１番目の単位プログラム５ａ１に移行すると、電源スイッチＳＷ１をオンにして、先ず、最初のセンサ４１１に対してＩＤ設定を行う（Ｓ１０１、図５の処理に相当）。その後、ＩＤを設定したセンサ４１１に対するポーリングを行って（Ｓ１０２）、そのセンサ４１１の各種パラメータ（例えば、センサ４１１から送信する超音波の周波数や、１回の送信期間で送信する超音波のパルス数など）を設定したり（Ｓ１０３）、センサ４１１の障害物検知用のしきい値を設定したりする（Ｓ１０４）。Ｓ１０４のしきい値は反射波の振幅のしきい値であり、反射波の振幅がしきい値以上の場合に障害物検知とされ、しきい値未満の場合には障害物非検知とされる。
【００３６】
１番目の単位プログラム５ａ１においては、上述のＳ１０１〜Ｓ１０４の処理が２回繰り返されるように、条件が設定されている。すなわち、第１グループ４１の最初のセンサ４１１に対してＳ１０１〜Ｓ１０４の処理（初期化処理）を行った後、次に、２番目のセンサ４１２に対してＳ１０１〜Ｓ１０４の処理を行うように、１番目の単位プログラム５ａ１の条件が設定されている。
【００３７】
１番目の単位プログラム５ａ１のＳ１０１〜Ｓ１０４が２回繰り返された後、１番目の単位プログラム５ａ１を抜けて、第２分岐部５２２に移行し、その第２分岐部５２２から２番目の単位プログラム５ａ２に移行する。２番目の単位プログラム５ａ２のＳ１０１〜Ｓ１０４の繰り返し回数は、第２グループ４２のセンサの個数分、つまり４回に予め設定されている。したがって、単位プログラム５ａ２に移行すると、電源スイッチＳＷ２がオンされて、第２グループ４２の各センサ４２１〜４２４に対してセンサ４２１から順番にＩＤ設定（Ｓ１０１）、ポーリング（Ｓ１０２）、パラメータ設定（Ｓ１０３）、しきい値設定（Ｓ１０４）を含む初期化処理が行われる。
【００３８】
ＥＣＵ２のＲＯＭ２１１には、センサ構成に依存しないソフトウェア構造としての図７、図４のソフトウェア構造５０と、センサ構成に依存した調整データ（構造５０の各分岐部における分岐条件や、選択された単位プログラム５ａ内の各処理Ｓ１０１〜Ｓ１０４の繰り返し回数など）とが、初期化処理のソフトウェアとして記憶されている。
【００３９】
図４のソフトウェア構造５０は、単位プログラム５ａが２×２のマトリックス状に配列された構造となっているので、バスの本数が最大で２本、電源数が１バス当たり最大２つ、合計で４つのセンサ構成に対応可能となっている。ここで、図８、図９は、センサ構成のバリエーションを例示しており、詳細には、各バリエーションのセンサ構成と、各センサ構成におけるバス数及び電源数とを示している。なお、図８、図９において、図１と同じ名称又は同じ機能を有する構成には同一符号を付している。図８に示す第１のバリエーションでは、後方バンパ１２に４つのセンサ４が搭載され、それらセンサ４及びＥＣＵ２が１本のバス３で接続されている。そのバス３には１つの電源線が設けられている。つまり、第１のバリエーションは、バス数が１、電源数が１のセンサ構成である。
【００４０】
第２のバリエーションでは、前方バンパ１１に２つのセンサ４が搭載され、後方バンパ１２に２つのセンサ４が搭載され、それらセンサ４及びＥＣＵ２が１本のバス３で接続されている。また、バス３には、前方の２つのセンサ４のグループ４１に電源を供給する電源線と、後方の２つのセンサ４のグループ４２に電源を供給する電源線の２つの電源線が設けられている。つまり、第２のバリエーションは、図１のセンサ構成と同様にバス数が１、電源数が２のセンサ構成である。ただし、第２のバリエーションは、第２グループ４２のセンサ数が図１のセンサ構成と異なっている。
【００４１】
第３のバリエーションは、図１のセンサ構成と同じであり、第１グループ４１に２つのセンサ４を有し、第２グループ４２に４つのセンサ４を有した、バス数が１、電源数が２のセンサ構成である。
【００４２】
図９に示す第４のバリエーションでは、前方バンパ１１に２つのセンサ４が搭載され、後方バンパ１２に４つのセンサ４が搭載され、それらセンサ４及びＥＣＵ２が２本のバス３ａ、３ｂで接続されている。詳細には、前方の２つのセンサ４のグループ４３は前方バンパ１１に配設されるフロントバス３ａに接続され、後方の４つのセンサ４のグループ４４は後方バンパ１２に配設されるリヤバス３ｂに接続されている。ＥＣＵ２は、両方のバス３ａ、３ｂに接続されている。各バス３ａ、３ｂにはそれぞれ１つの電源線が設けられている。つまり、第４のバリエーションは、バス数が２、電源数が２のセンサ構成である。なお、グループ４３、４４は、異なるバス３ａ、３ｂに並列に接続された並列グループ群を構成する。
【００４３】
第５のバリエーションは、前方バンパ１１に搭載されるセンサ４の数が第４のバリエーションと異なり４つとされ、それ以外は第４のバリエーションと同じである。つまり、第５のバリエーションは、バス数が２、電源数が２のセンサ構成（並列グループ群のセンサ構成）である。
【００４４】
第６のバリエーションでは、前方バンパ１１に４つのセンサ４が搭載され、後方バンパ１２に４つのセンサ４が搭載され、左右側面の前部１３にそれぞれ１つずつ計２つのセンサ４が搭載され、左右側面の後部１４にそれぞれ１つずつ計２つのセンサ４が搭載されており、それらセンサ４及びＥＣＵ２が４本のバス３ａ〜３ｄに接続されている。詳細には、前方の２つのセンサ４は前方バンパ１１に配設されるフロントバス３ａに接続され、後方の４つのセンサ４は後方バンパ１２に配設されるリヤバス３ｂに接続されている。また、左右側面の前部１３に搭載された２つのセンサ４は、前部１３に配設されるフロントサイドバス３ｃに接続され、左右側面の後部１４に搭載された２つのセンサ４は、後部１４に配設されるリヤサイドバス３ｄに接続されている。各バス３ａ〜３ｄにはそれぞれ１つの電源線が設けられている。つまり、第６のバリエーションは、バス数が４、電源数が４のセンサ構成（並列グループ群のセンサ構成）である。
【００４５】
上述したように、図４のソフトウェア構造５０は、バス数が最大で２、電源数が最大で４（１バス当たり最大で２）のセンサ構成に対応可能となっているので、図８、図９の第１〜第５のバリエーションのセンサ構成を採用する場合には図４のソフトウェア構造５０で共通化を図ることができる。この際、ソフトウェア構造５０を共通にしつつ、各バリエーションのバス数、電源数に応じてソフトウェア構造５０のうちの使用する配列部分を選択調整することで、各バリエーションに対応可能となる。
【００４６】
ここで、図９の第４のバリエーションを例にとって、その第４のバリエーションにおけるソフトウェア構造を説明する。図１０は、第４のバリエーションにおけるＥＣＵ２のＲＯＭに実装される、各センサ４の初期化処理のソフトウェア６の概念図である。図４のソフトウェア５と図１０のソフトウェア６を比較すると、図１０のソフトウェア６は、図４のソフトウェア５と同一の構造５０を有する一方で、その構造５０のうちの使用する配列部分が図４と異なっている。詳細には、図１０では、並列方向（バス軸の方向）に配列された上側の２つの単位プログラム５ａの配列部分５１３が使用するプログラムとして選択されている。言い換えると、下側の単位プログラム５ａの配列部分５１４は使用するプログラムとしては選択されていない。
【００４７】
図７を参照して配列部分５１３の選択を説明すると、第１分岐部５２１から左側の１番目の単位プログラム５ａ１に移行するように、その第１分岐部５２１における分岐条件が設定されている。第２分岐部５２２からは２番目の単位プログラム５ａ２に移行せずにそのまま左側のパスを終了するように、その第２分岐部５２２における分岐条件が設定されている。また、第３分岐部５２３から右側の１番目の単位プログラム５ａ３に移行するように、その第３分岐部５２３における分岐条件が設定されている。右側の２番目の単位プログラム５ａ４の手前に設けられた第４分岐部５２４からはその単位プログラム５ａ４に移行せずにそのまま右側のパスを終了するように、その第４分岐部５２４における分岐条件が設定されている。
【００４８】
第４のバリエーションのＥＣＵ２は、イグニッションスイッチＩＧがオンされた時に、図１０のソフトウェア６により、前方バンパ１１に搭載されたセンサグループ４３（図９参照）に対する初期化処理と、後方バンパ１２に搭載されたセンサグループ４４（図９参照）に対する初期化処理とを並列に（同時に）実行する。ここで、図１１は、第４のバリエーションのセンサ構成（バス数２、電源数２）での各センサグループ間におけるＩＤ設定を含む初期化処理の順序を説明する図であり、詳細には、フロントバス３ａ（図９参照）の通信状態、フロントバス３ａの電源線のオンオフ状態、リヤバス３ｂ（図９参照）の通信状態及びリヤバス３ｂの電源線のオンオフ状態を示している。
【００４９】
ＥＣＵ２は、イグニッションスイッチＩＧがオンされると、図１１に示すように、フロントバスの電源線とリヤバスの電源線を同時にオンする。そして、ＥＣＵ２は、図１０の左側の単位プログラム５ａ１と右側の単位プログラム５ａ３とを並列的に実行して、左側の単位プログラム５ａ１により前方バンパ１１に搭載されたセンサグループ４３に対してＩＤ設定を含む初期化処理を行い、右側の単位プログラム５ａ３により後方バンパ１２に搭載されたセンサグループ４４に対する初期化処理を行う。なお、ＥＣＵ２（コントローラ２１）が複数の処理を同時に実行可能な機能（マルチタスク機能）を有していない場合には、実際には例えば左側の単位プログラム５ａ１、右側の単位プログラム５ａ３の順に実行されることになる。ただし、この場合であっても、思想上は、単位プログラム５ａ１、５ａ３が並列実行されたことになる。
【００５０】
このように、複数のバスが設けられている場合には各バス間で初期化する期間が重複したとしても一方の初期化が他方の初期化に影響を及ぼすことがないので、各初期化を並列に行っている。よって、単位プログラム５ａが並列方向（バス軸の方向）に配列された部分は、複数のバスを有したセンサ構成に対する初期化処理、すなわち並列グループ群に対する初期化処理のプログラムに相当する。
【００５１】
図４、図１０のソフトウェア構造５０は図８、図９に示す第１〜第５のバリエーションまで対応可能であるが、バス数４、電源数４の第６のバリエーションには対応できない。第６のバリエーションも対応可能とするためには、例えば、図１２に示すように、単位プログラム５ａの配列数をバス軸の方向に４列、電源軸の方向に４列としたソフトウェア構造６０を採用すればよい。このソフトウェア構造６０のうち１番上の一列分の配列部分６４が、第６のバリエーションにおける使用するプログラムとして選択される。この配列部分６４は、バス軸の方向に配列された４つの単位プログラム５ａから構成されている。第６のバリエーションのＥＣＵ２（図９参照）は、イグニッションスイッチＩＧがオンされた時に配列部分６４の４つの単位プログラム５ａを並列（同時）に実行することになる。これにより、４つのバス３ａ〜３ｄの電源が同時にオンされて、フロントバス３ａに接続されたセンサグループに対する初期化処理と、リヤバス３ｂに接続されたセンサグループに対する初期化処理と、フロントサイドバス３ｃに接続されたセンサグループに対する初期化処理と、リヤサイドバス３ｄに接続されたセンサグループに対する初期化処理とが並列に実行される。
【００５２】
図１２のソフトウェア構造６０は、単位プログラム５ａが４×４のマトリックス状に配列された構造となっているので、バス数が最大で４、電源数が最大で１６（１バス当たり最大で４電源）のセンサ構成に対応可能となっている。つまり、ソフトウェア構造６０は、図８、図９に示す第１〜第６のバリエーションの全てに対応可能である。具体的には、第１のバリエーションのセンサ構成を採用する場合には、ソフトウェア構造６０のうちの左上の配列部分６１を選択することで、そのセンサ構成に対する初期化処理を行うことができる。また、第２、第３のバリエーションのセンサ構成を採用する場合には、ソフトウェア構造６０のうちの直列に配列された２つの単位プログラム５ａの配列部分６２を選択することで、そのセンサ構成に対する初期化処理を行うことができる。なお、第２のバリエーションと第３のバリエーションとでは後方バンパ１２に搭載されるセンサ数が異なっているので、配列部分６２の２番目の単位プログラム５ａの繰り返し回数が、第２のバリエーションと第３のバリエーションとで異なる。
【００５３】
また、第４、第５のバリーションのセンサ構成を採用する場合には、ソフトウェア構造６０のうちの並列に配列された２つの単位プログラム５ａの配列部分６３を選択することで、そのセンサ構成に対する初期化処理を行うことができる。なお、第４のバリエーションと第５のバリエーションとでは前方バンパ１１に搭載されるセンサ数が異なっているので、配列部分６３の左側の単位プログラム５ａの繰り返し回数が、第４のバリエーションと第５のバリエーションとで異なる。
【００５４】
以上説明したように、本実施形態のセンサの初期化を行うソフトウェアは、１つのセンサグループに対する初期化処理のプログラム（単位プログラム）が概念的にマトリックス状に配列されたソフトウェア構造を有しているので、複数のバリエーションのセンサ構成（バス数、電源数）間でソフトウェア構造を汎用化（共通化）できる。よって、センサ構成の仕様変更に柔軟に対応することができる。また、センサ構成に依存しない仕様変更があったとしても、単一のソフトウェア構造をメンテナンスするだけで、各バリエーションのソフトウェアとして展開することができる。
【００５５】
なお、本発明は上記実施形態に限定されるものではなく、特許請求の範囲の記載を逸脱しない限度で種々の変更が可能である。例えば、上記実施形態では、各センサにＩＤ設定を行う際に、各センサは電源線に順次接続（デイジーチェーン接続）するようにしていたが、通信線又はＧＮＤ線にデイジーチェーン接続するようにしても良い。また、想定するセンサ構成のバリエーションの中で最大のバス数、電源数を有したセンサ構成に対応できるのであれば、単位プログラムの並列方向の配列数と、直列方向の配列数とが異なっていても良い。具体的には例えば、図８、図９の第１〜第６のバリエーションを想定した場合、単位プログラムが並列方向に４列、直列方向に２列配列されたソフトウェア構造を採用しても良い。これによっても、第１〜第６のバリエーションの全てに対応できる。
【符号の説明】
【００５６】
２  ＥＣＵ
３、３ａ〜３ｄ  バス
３２１  第１電源線
３２２  第２電源線
４、４１１、４１２、４２１〜４２４  超音波センサ
５、６  ソフトウェア
５ａ  単位プログラム
５０、６０  ソフトウェア構造
１００  車両用ソナーシステム
【図１】
2014204256.tif 000003
【図２】
2014204256.tif 000004
【図３】
2014204256.tif 000005
【図４】
2014204256.tif 000006
【図５】
2014204256.tif 000007
【図６】
2014204256.tif 000008
【図７】
2014204256.tif 000009
【図８】
2014204256.tif 000010
【図９】
2014204256.tif 000011
【図１０】
2014204256.tif 000012
【図１１】
2014204256.tif 000013
【図１２】
2014204256.tif 000014