以下、本願発明の一実施形態に係るエアバッグ制御装置(エアバッグECU)を図面に基づいて説明する。
図1は、本願発明の一実施形態のエアバッグECUを含むエアバッグ制御システムの構成を示す図である。
エアバッグ制御システム1000は、車両に設けられた各種加速度センサによって検出されたセンサ信号をモニタし、車両が衝突したと判断したら運転席、助手席などの各部位のエアバッグを展開することにより、車両の衝突時の乗員の安全性を向上させるものである。
図1に示すように、エアバッグ制御システム1000は、エアバッグECU(制御装置)100、助手席乗員検知ECU(他の制御装置)200、メータECU(他の制御装置)300、バッテリ電源(第1の電源)400、及びイグニッションスイッチ410、を備える。
また、エアバッグ制御システム1000は、運転席側エアバッグ用スクイブ500、助手席側エアバッグ用スクイブ510、右サイドエアバッグ用スクイブ520、左サイドエアバッグ用スクイブ530、右カーテンエアバッグ用スクイブ540、及び左カーテンエアバッグ用スクイブ550を備える。
また、エアバッグ制御システム1000は、フロント右加速度センサ600、フロント左加速度センサ610、右サイド加速度センサ620、及び左サイド加速度センサ630を備える。
以下、エアバッグ制御システム1000の各部の説明を行う。
バッテリ電源400は、車両に搭載された鉛蓄電池など各種の蓄電池である。バッテリ電源400は、電源ライン405を介してメータECU300へ電源を直接供給するとともに、電源ライン405を介して車両の各種の他の部品へも電源を直接供給する。
イグニッションスイッチ410は、車両のエンジンを始動したり切ったりするスイッチである。車両のエンジンを切った状態では、イグニッションスイッチ410は「OFF」になる。この状態からユーザがキーを回すことによって、イグニッションスイッチ410は「ON」になる。イグニッションスイッチ410が「ON」になると、バッテリ電源400が、電源ライン407を介して、メータECU300、助手席乗員検知ECU200、及びエアバッグECU100へ電源が供給される。
メータECU300は、車両の車速を検出して記録するとともに、記録された車速をエアバッグECU100又は車両の他の部品へ送信する制御装置である。メータECU300は、記録された車速を、CAN通信ライン430を介してエアバッグECU100へ送信する。これにより、エアバッグECU100は、車両がどのような状態で運転されているか、例えば車両のブレーキ状態などを検出することができる。
助手席乗員検知ECU200は、車両の助手席のシート上の重量を検出し、助手席の乗員状態を判定する。例えば、大人の男性、小柄な女性、子供、空席などの状態を判定する。助手席乗員検知ECU200は、判定された助手席の乗員状態を、通信ライン440を介してエアバッグECU100へ送信する。エアバッグECU100は、例えば、助手席のシート上の乗員状態をモニタすることによって、車両のフロント衝突時において、例えば助手席の乗員が子供の場合は、図示しない助手席のエアバッグの展開を抑制することができる。
エアバッグECU100は、電圧検出器101、昇圧回路102、電圧検出器103、キャパシタ(第2の電源)104、電圧検出I/F105,107、DC−DCコンバータ106、CAN(Controller Area Network)通信トランシーバ108、及びK−line通信ドライバ110を備える。また、エアバッグECU100は、MCU(Micro Controller Unit)120、ASIC(Application Specific Integrated Circuit)140、加速度センサ150、及び不揮発メモリ160を備える。
電圧検出器101は、バッテリ電源400からイグニッションスイッチ410を介してエアバッグECU100へ供給された電源電圧値を検出する。つまり、電圧検出器101は、助手席乗員検知ECU200、及びメータECU300に供給される電源の電圧を検出する。
電圧検出I/F(InterFace)105は、電圧検出器101によって検出された電圧信号をMCU120へ出力するためのインターフェースである。電圧検出器101によって検出された電圧信号は、電圧検出I/F105を介してMCU120へ出力される。
昇圧回路102は、バッテリ電源400からイグニッションスイッチ410を介してエアバッグECU100へ供給された電源電圧を昇圧する回路である。昇圧回路102は、例えば、供給された9Vから16Vの電源電圧を24V程度まで昇圧する。昇圧回路102は、昇圧した電圧をキャパシタ104、及びDC−DCコンバータ106へ供給する。
電圧検出器103は、昇圧回路102から出力された電源電圧値を検出する。
電圧検出I/F107は、電圧検出器103によって検出された電圧信号をMCU120へ出力するためのインターフェースである。電圧検出器103によって検出された電圧信号は、電圧検出I/F107を介してMCU120へ出力される。
キャパシタ104は、昇圧回路102から供給された電圧の充放電を行う蓄電器であり、バッテリ電源400のバックアップ電源となる。
DC−DCコンバータ106は、昇圧回路102から供給された電圧をMCU120で使用される電圧(例えば5V)へ変換(降圧)する変換器である。DC−DCコンバータ106は、降圧した電圧をMCU120へ供給する。
CAN通信トランシーバ108は、CAN規格に基づいて、CAN通信ライン430を介してメータECU300及び図示しない車両の他のECUとの間でデータを送受信するインターフェースである。CAN通信トランシーバ108によって受信されたデータはMCU120へ送信される。
K−line通信ドライバ110は、通信ライン440を介して助手席乗員検知ECU200との間でデータの送受信を行うインターフェースである。K−line通信ドライバ110は、通信信号の電圧レベルを変換する。例えば、K−line通信ドライバ110は、MCU120が取り扱える5V系の信号レベルをK−lineの電圧レベル(12V)に変換する。
MCU120は、A/D(Analog to Digital Converter)121、CPU(Central Processing Unit)122、ROM(Read Only Memory)124、RAM(Random Access Memory)126、及びCAN通信コントローラ128を備える。また、MCU120は、SCI(Serial Communication Interface)132、及びSPI(Serial Peripheral Interface)134,136,138を備える。
A/D121、CPU122、ROM124、RAM126、CAN通信コントローラ128、SCI132、及びSPI134,136,138は、MCU100の内部バス170を介して相互に接続されている。
A/D121は、電圧検出I/F105,107を介して入力されたアナログ電圧信号をデジタル電圧信号へ変換する。
CPU122は、ROM124又はRAM126に格納された各種プログラムを実行する演算処理部である。CPU122は、ROM124又はRAM126に格納された各種プログラムを実行することにより、エアバッグECU100の各種機能を実行する。エアバッグECU100の各種機能についての詳細は後述する。
ROM124は、エアバッグECU100の各種機能を実行するためのデータ、及びエアバッグECU100の各種機能を実行するための各種プログラムを格納するメモリである。
また、RAM126は、ROM124に格納された各種プログラムのうち、CPU122で実行されるプログラムの演算結果などを格納する比較的小容量で高速アクセスが可能なメモリである。
CAN通信コントローラ128は、CAN通信トランシーバ108を介して、メータECU300又は車両の他の部品との間の通信を行うコントローラである。
SCI132は、非同期式シリアル通信のインターフェースであり、K−line通信ドライバ110とMCU120内の各デバイスとのインターフェースとなる。
SPI134は、クロック同期式シリアル通信のインターフェースであり、ASIC140とMCU120内の各デバイスとのインターフェースとなる。SPI136は、加速度センサ150とMCU120内の各デバイスとのインターフェースとなる。SPI138は、不揮発メモリ160とMCU120内の各デバイスとのインターフェースとなる。
加速度センサ150は、エアバッグECU100が配置された場所における加速度を検出するセンサである。加速度センサ150は、検出した加速度を、SPI136を介してMCU120へ出力する。
不揮発メモリ160は、電源を供給しなくても記録を保持するメモリであり、例えばEEPROM(Electrically Erasable Programmable Read Only Memory)である。不揮発メモリ160は、例えば、SPI138を介してMCU120から出力されたデータを記録する。
ASIC140は、複数機能の回路を1つにまとめた集積回路である。ASIC140は、スクイブI/F(InterFace)142と、センサI/F144とを備える。
スクイブI/F142は、運転席側エアバッグ用スクイブ500、助手席側エアバッグ用スクイブ510、右サイドエアバッグ用スクイブ520、左サイドエアバッグ用スクイブ530、右カーテンエアバッグ用スクイブ540、及び左カーテンエアバッグ用スクイブ550へ、エアバッグの展開信号を送信するインターフェースとなる。
また、センサI/F144は、フロント右加速度センサ600、フロント左加速度センサ610、右サイド加速度センサ620、及び左サイド加速度センサ630から送信される加速度信号を受信するインターフェースとなる。
運転席側エアバッグ用スクイブ500は、MCU120からスクイブI/F142を介して送信された展開信号に基づいて、運転席側の点火装置(スクイブ)に電流を流し、ガス発生剤に着火することで高圧ガスを発生させ、瞬時にエアバッグを膨らませる。
また、助手席側エアバッグ用スクイブ510、右サイドエアバッグ用スクイブ520、左サイドエアバッグ用スクイブ530、右カーテンエアバッグ用スクイブ540、及び左カーテンエアバッグ用スクイブ550も同様に、MCU120から送信された展開信号に基づいて、車両の各場所に配置されたエアバッグを膨らませる。
フロント右加速度センサ600は、車両のフロントの右側に配置された加速度センサであり、センサで検出した加速度を、センサI/F144を介してMCU120へ送信する。
また、フロント左加速度センサ610、右サイド加速度センサ620、及び左サイド加速度センサ630も同様に、車両の各場所に配置されており、車両の各場所における加速度を検出して、MCU120へ送信する。
次に、エアバッグECU100内のMCU120に設けられたCPU122によって実行されるエアバッグECU100の各種機能ブロックについて説明する。図2は、制御装置によって実行される機能のブロックを示す図である。
図2に示すように、CPU122は、機能ブロックとして、電圧範囲判定部650、計時部655、通信異常検出部660、及び記録部670を備える。
電圧範囲判定部650は、電圧検出器101によって検出された電圧が、あらかじめ設定された電圧範囲内になったか否かを判定する。例えば、電圧範囲判定部650は、電圧検出器101によって検出された電圧が、0〜5Vの範囲内であるか、5〜9Vの範囲内であるか、9〜16Vの範囲内であるか、又は16V以上であるか、を判定する。
計時部655は、電圧検出器101によって検出された電圧が、あらかじめ設定された電圧範囲内になってからの経過時間を計測する。より具体的には、計時部655は、電圧範囲判定部650によって、電圧検出器101によって検出された電圧が、あらかじめ設定された電圧範囲内になったと判定されてからの経過時間を計測する。また、計時部655は、あらかじめ設定された複数の異なる電圧範囲のそれぞれについて、電圧検出器101によって検出された電圧が、あらかじめ設定された電圧範囲内になってからの経過時間を計測する。例えば、計時部655は、電圧範囲判定部650によって、電圧検出器101によって検出された電圧が、0〜5Vの範囲内、5〜9Vの範囲内、9〜16Vの範囲内、又は16V以上であると判定されてからの経過時間をそれぞれ計測する。ただし、この電圧範囲の設定は一例であって、適宜設定することができる。なお、計時部655は、計測している経過時間があらかじめ設定されている最大しきい値に達したら、経過時間の計測を停止して、その時点で計測されている経過時間を保持することもできる。経過時間の最大しきい値や分解能、電圧範囲の設定などは装置に要求される機能、性能、精度や信頼性などに応じて適宜設定すれば良い。
通信異常検出部660は、他の制御装置(例えば、助手席乗員検知ECU200又はメータECU300)との間の通信の異常を検出する。通信異常検出部660は、例えば、助手席乗員検知ECU200との間の通信において、助手席乗員検知ECU200からの通信応答が返ってこない場合に、通信異常を検出する。また、通信異常検出部660は、例えば、メータECU300との間の通信において、メータECU300からの通信応答が返ってこない場合に、通信異常を検出する。なお、他の制御装置の故障を検出する方法は、他の制御装置からの通信応答が帰ってこない場合に限られない。例えば、他の制御装置(例えば、助手席乗員検知ECU200)は、自身の故障を検出した時に、エアバッグECU100に対して、通信手段を介して助手席乗員検知ECU200が故障であることを通知することができる。例えば、助手席乗員検知ECU200は、故障が無い時には、助手席乗員の状態を通知し、故障を検知した場合には故障を通知することができる。
記録部670は、他の制御装置(例えば、助手席乗員検知ECU200又はメータECU300)の故障が検出されたら、計時部655によって計測された経過時間を、メモリ(例えば不揮発メモリ160)に記録する。例えば、記録部670は、通信異常検出部660によって助手席乗員検知ECU200又はメータECU300との間の通信の異常が検出されたら、計時部655によって計測された複数の経過時間を、メモリに記録する。さらに具体的には、記録部670は、助手席乗員検知ECU200又はメータECU300の故障が検出されたら、この故障が検出されるまでの、計時部655によって計測された複数の経過時間の履歴を、メモリに記録する。また、記録部670は、複数の異なる電圧範囲でそれぞれ計測された経過時間を、複数の異なる電圧範囲に対応して記録することができる。
本実施形態によれば、故障が検出されたら、計時部655によって計測された経過時間を、メモリに記録するので、電源電圧のデータを瞬時のデータとしてではなく、どの電圧範囲に、どれくらいの時間経過したかという情報を記録することができるので、結果として、少ないデータ量で故障解析や再現試験などの条件設定に有用な経過データを記録することができる。その結果、故障発生時までに電源電圧が時系列にどのように推移していたかを把握することができるので、少ないデータ量で、故障解析に有用な故障発生に至るまでの経過のデータを記録することができる。
ここで、イグニッション電源電圧の変動に伴うエアバッグECU100と他のECUの動作状態の第1の例について説明する。図3は、イグニッション電圧、バックアップ電圧、及びエアバッグECUと他の制御装置(助手席乗員検知ECU等)の動作状態のタイムシーケンスの第1の例を示す図である。図3は、他の制御装置の例として、助手席乗員検知ECU200を挙げて説明する。
電圧検出器101によって検出されたバッテリ電源400の電圧(イグニッション電圧702)が、瞬断の影響などにより図3に示すようにオンオフしながら推移したとする。この場合、電圧検出器103によって検出されたバックアップ電圧704は、イグニッション電圧702のオンオフに応じて充放電して図3のように推移する。
この場合、助手席乗員検知ECU200は、イグニッション電圧702の最初の立ち上がりによって初期化状態710となった後、通常動作状態712になるが、イグニッション電圧702の瞬断によってシステム停止状態714になる。また、助手席乗員検知ECU200は、イグニッション電圧702が瞬断から復帰すると、初期化状態716を経て通常動作状態718になるが、イグニッション電圧702が瞬断すると、再びシステム停止状態720になる。そして、助手席乗員検知ECU200は、イグニッション電圧702が瞬断から復帰すると、初期化状態722を経て通常動作状態724へ推移する。
また、図3に示すように、エアバッグECU100の動作状態は、イグニッション電圧702の最初の立ち上がりによって初期化状態706となり、その後はイグニッション電圧702が瞬断されてもバックアップ電圧704がチャージされているので通常動作状態708となる。
次に、計時部655の詳細について、図4,5を用いて説明する。図4A,図4Bは、制御装置(エアバッグECU100)によって実行される制御の第1の例のフローチャートである。図5は、図3のタイムシーケンスに、イグニッション電圧の正常の経過時間をカウントするカウンタを加えた図である。なお、ここでは、イグニッション電圧が9〜16Vの場合に正常範囲内であるとし、それ以外の場合は電圧が異常範囲内であるものとする。
図4Aに示すように、まず、電圧範囲正常カウンタ処理を行う(ステップS100)。ここで、電圧範囲正常カウンタ処理の詳細について、図4Bを用いて説明する。電圧範囲正常カウンタ処理が開始されると、電圧範囲判定部650は、イグニッション電圧を取得する(ステップS101)、続いて、電圧範囲判定部650は、イグニッション電圧が正常範囲内であるか否かを判定する(ステップS102)。続いて、計時部655は、イグニッション電圧が正常範囲内ではないと判定された場合は(ステップS102,No)、図5に示すように、電圧正常カウンタ742をクリアする(ステップS103)。
一方、計時部655は、イグニッション電圧が正常範囲内である場合は(ステップS102,Yes)、電圧正常カウンタ742が最大値744に達しているか否かを判定する(ステップS104)。
計時部655は、電圧正常範囲内カウンタが最大値744に達していないと判定した場合は(ステップS104,No)、電圧正常カウンタ742をインクリメント(+1)する(ステップS105)。
このような制御によって、計時部655は、図5に示すように電圧正常カウンタ742をカウントする。
図4Aの説明に戻って、通信異常検出部660は、ステップS103において電圧正常カウンタ742がクリアされた後、ステップS104において電圧正常カウンタ742が最大値744に達していると判定された後、又はステップS105において電圧正常カウンタ742をインクリメント(+1)した後、助手席乗員検知ECU200との通信途絶故障診断を実施する(ステップS106)。
続いて、通信異常検出部660は、助手席乗員検知ECU200との通信途絶故障診断の結果が正常であったか否かを判定する(ステップS107)。より具体的には、通信異常検出部660は、助手席乗員検知ECU200との通信において助手席乗員検知ECU200から通信応答がある場合には、助手席乗員検知ECU200との通信途絶故障診断の結果が正常であったと判断する。一方、通信異常検出部660は、助手席乗員検知ECU200との通信において助手席乗員検知ECU200から通信応答がない場合には、助手席乗員検知ECU200との通信途絶故障診断の結果が異常であったと判断する。
記録部670は、助手席乗員検知ECU200との通信途絶故障診断の結果が正常ではなかった場合に(ステップS107,No)、電圧正常カウンタ742の内容を不揮発メモリ(EEPROM)160に記録して(ステップS108)、処理を終了する。
一方、記録部670は、助手席乗員検知ECU200との通信途絶故障診断の結果が正常であった場合には(ステップS107,Yes)、そのまま処理を終了する。上記実施の例によると、助手席乗員検知ECU200との通信途絶故障診断が異常となったときの電圧正常カウンタ742を記録するようになっているので、助手席乗員検知ECU200の異常と判断されたときに、電源に問題があったのか否かを判断することができる。たとえば、電圧正常カウンタが0の場合、助手席乗員検知ECU200はシステム停止状態であったと推定できる。このため通信できる状態ではなかったと推定できる。電圧正常カウンタが図5に示すしきい値より小さい場合には助手席乗員検知ECU200は初期化状態と推定できる。このため通信を開始していない状態であったと推定できる。電圧正常カウンタが図5に示すしきい値以上である場合には、助手席乗員検知ECU200は通常動作していたと推定できる。この場合、エアバッグECUと助手席乗員検知ECU200との間の通信線440に故障が発生したと推定できる。
次に、計時部655のさらなる詳細について、図6,7を用いて説明する。図6A,図6Bは、制御装置(エアバッグECU100)によって実行される制御の第2の例のフローチャートである。図7は、イグニッション電圧、バックアップ電圧、イグニッション電圧の正常/異常の経過時間をカウントするカウンタ、及びエアバッグECUと他の制御装置(助手席乗員検知ECU等)の動作状態のタイムシーケンスの第2の例を示す図である。図7は、他の制御装置の例として、助手席乗員検知ECU200を挙げて説明する。タイムシーケンスの第2の例は複数の電圧範囲の経過時間を計測する例である。
タイムシーケンスの第2の例では、電圧検出器101によって検出されたバッテリ電源400の電圧(イグニッション電圧802)が、瞬断の影響などにより図7に示すようにオンオフしながら推移し、その後、車両が衝突してイグニッションラインの断線を伴いながらエアバッグが展開されたとする。この場合、電圧検出器103によって検出されたバックアップ電圧804は、イグニッション電圧802のオンオフに応じて充放電し、車両の衝突の後は下降して蓄電されていない状態になる。
この場合、エアバッグECU100の動作状態は、イグニッション電圧802の最初の立ち上がりによって初期化状態806となり、その後はイグニッション電圧802が瞬断されてもバックアップ電圧804がチャージされているので通常動作状態808となる。車両が衝突した後、バックアップ電圧804のチャージが放電されて蓄電がなくなると、エアバッグECU100の動作状態はシステム停止状態810になる。
一方、助手席乗員検知ECU200は、イグニッション電圧802の最初の立ち上がりによって初期化状態812となった後、通常動作状態814になるが、イグニッション電圧802の瞬断によってシステム停止状態816になる。また、助手席乗員検知ECU200は、イグニッション電圧802が瞬断から復帰すると、初期化状態818を経て通常動作状態820になるが、車両が衝突してイグニッション電圧802が途絶えると、再びシステム停止状態822になる。
このようなタイムシーケンスにおいて、まず、図6Aに示すように、電圧範囲正常カウンタ処理を行う(ステップS100)。このステップS100は、図4Bで説明したのと同様であるので、詳細な説明を省略する。続いて、電圧範囲異常カウンタ処理を行う(ステップS200)。ここで、電圧範囲異常カウンタ処理の詳細について、図6Bを用いて説明する。電圧範囲異常カウンタ処理が開始されると、電圧範囲判定部650は、イグニッション電圧を取得する(ステップS201)、続いて、電圧範囲判定部650は、イグニッション電圧が正常範囲(例えば9V〜16V)内であるか否かを判定する(ステップS202)。続いて、計時部655は、イグニッション電圧が正常範囲内ではない場合は(ステップS202,No)、「今回のイグニッション電圧状態」に「正常範囲外」をセットする(ステップS203)。
一方、計時部655は、イグニッション電圧が正常範囲内である場合は(ステップS202,Yes)、「今回のイグニッション電圧状態」に「正常範囲内」をセットする(ステップS204)。
次に、計時部655は、「前回のイグニッション電圧状態」と「今回のイグニッション電圧状態」とを比較する(ステップS205)。
続いて、計時部655は、「前回のイグニッション電圧状態」=「正常範囲内」から「今回のイグニッション電圧状態」=「正常範囲外」へのイグニッション電圧状態にエッジ変化があったか否かを判定する(ステップS206)。
計時部655は、「前回のイグニッション電圧状態」=「正常範囲内」から「今回のイグニッション電圧状態」=「正常範囲外」へのイグニッション電圧状態にエッジ変化があったと判定した場合は(ステップS206,Yes)、図7に示すように、電圧異常カウンタ832をクリアする(ステップS207)。
計時部655は、ステップS206において「前回のイグニッション電圧状態」=「正常範囲内」から「今回のイグニッション電圧状態」=「正常範囲外」へのイグニッション電圧状態にエッジ変化がなかったと判定した後、又はステップS207において電圧異常カウンタ832をクリアした後、「前回のイグニッション電圧状態」に「今回のイグニッション電圧状態」をコピーする(ステップS208)。
続いて、電圧範囲判定部650は、イグニッション電圧が正常範囲(例えば9V〜16V)内であるか否かを判定する(ステップS209)。
計時部655は、イグニッション電圧が正常範囲(例えば9V〜16V)内ではないと判定されたら(ステップS209,No)、電圧異常カウンタ832が最大値に達しているか否かを判定する(ステップS210)。
計時部655は、電圧異常カウンタ832が最大値に達していないと判定したら(ステップS210,No)、電圧異常カウンタ832をインクリメント(+1)する(ステップS211)。
図6Aの説明に戻って、通信異常検出部660は、ステップS209においてイグニッション電圧が正常範囲内であると判定した後、ステップS210において電圧異常カウンタ832が最大値に達していると判定した後、又はステップS211において電圧異常カウンタ832をインクリメントした後、助手席乗員検知ECU200との通信途絶故障診断を実施する(ステップS212)。
続いて、通信異常検出部660は、助手席乗員検知ECU200との通信途絶故障診断の結果が正常であったか否かを判定する(ステップS213)。より具体的には、通信異常検出部660は、助手席乗員検知ECU200との通信において助手席乗員検知ECU200から通信応答がある場合には、助手席乗員検知ECU200との通信途絶故障診断の結果が正常であったと判断する。一方、通信異常検出部660は、助手席乗員検知ECU200との通信において助手席乗員検知ECU200から通信応答がない場合には、助手席乗員検知ECU200との通信途絶故障診断の結果が異常であったと判断する。
記録部670は、助手席乗員検知ECU200との通信途絶故障診断の結果が正常ではなかった場合に(ステップS213,No)、電圧正常カウンタ742の内容、及び電圧異常カウンタ832の内容を不揮発メモリ(EEPROM)160に記録して(ステップS214)、処理を終了する。
一方、記録部670は、助手席乗員検知ECU200との通信途絶故障診断の結果が正常であった場合には(ステップS213,Yes)、そのまま処理を終了する。
本実施形態の制御装置(エアバッグECU100)は、第1の例に示したバッテリ電源400の電圧が正常範囲内となった経過時間を計測して記録するだけでなく、バッテリ電源400の電圧が異常範囲内となった経過時間も計測して記録するようになっている。これによれば、他の制御装置が正常状態であった経過時間を用いて故障解析することができる。したがって、本実施形態によれば、他のECUの故障発生時の電源状態を第1の例に比べてさらに正確に記録するので故障の原因調査において、電源の関係有無など故障解析に有用なデータを少ないデータ量で記録することができる。
次に、セルモータ始動時の電圧変動と、電圧エリアの推移と、電圧エリア・時間履歴メモリの推移と、各カウンタの推移について説明する。図8は、セルモータ始動時におけるタイムチャートの一例を示した図である。
図8に示すように、セルモータ始動時にはイグニッション電圧1002は、0Vから9〜16Vへ立ち上がってT1secが経過した後6〜9VにおいてT2sec脈動し、その後9〜16Vで安定する。なお、ここでは、9〜16VでT3secが経過したときに、他のECU(例えば、助手席乗員検知ECU200)の故障が検出されたものとする。
この場合、電圧エリアは、エリア(3)(9〜16V)、エリア(2)(6〜9V)、エリア(3)(9〜16V)の順に推移する。
また、電圧エリア・時間履歴メモリ(故障1つ前)は、デフォルト値、エリア(3)(T1sec)、エリア(2)(T2sec)の順に推移する。また、電圧エリア・時間履歴メモリ(故障2つ前)は、デフォルト値、エリア(3)(T1sec)の順に推移する。また、イグニッション電圧エリア(1)の0〜6Vカウンタ1004は、0のままである。
また、イグニッション電圧エリア(2)の6〜9Vカウンタ1006は、イグニッション電圧が6〜9Vで脈動しているT2secの間にカウントアップされ、イグニッション電圧が6〜9Vから外れたら0になる。
また、イグニッション電圧エリア(3)の9〜16Vカウンタ1008は、イグニッション電圧が9〜16Vの範囲内になっているT1secの間にカウントアップされ、イグニッション電圧が9〜16Vから外れたら0になる。その後、イグニッション電圧エリア(3)の9〜16Vカウンタ1008は、イグニッション電圧が再び9〜16Vの範囲内になっている間、あらかじめ設定されたしきい値(Max(sec))までカウントアップされる。また、イグニッション電圧エリア(4)の16V超カウンタ1010は、0のままである。
このような場合、不揮発メモリ160には、記録部670によって図9のようなデータが記録される。図9は、不揮発メモリに記録されるデータの一例を示す図である。
図9に示すように、電圧エリア履歴・時間履歴の故障発生時には、電圧エリア(3):T3secが記録される。また、電圧エリア履歴・時間履歴の故障1つ前には、電圧エリア(2):T2secが記録される。電圧エリア履歴・時間履歴の故障2つ前には、電圧エリア(3):T1secが記録される。
次に、電源系コネクタのルーズコンタクトによる電源ハンチング時の電圧変動と、電圧エリアの推移と、電圧エリア・時間履歴メモリの推移と、各カウンタの推移について説明する。図10は、電源系コネクタのルーズコンタクト時におけるタイムチャートの一例を示した図である。
図10に示すように、電源系コネクタのルーズコンタクト時にはイグニッション電圧1012は、0Vから9〜16Vへ立ち上がってT1secが経過した後T2msecの間0Vになる。その後イグニッション電圧1012は、再び0Vから9〜16Vへ立ち上がってT3msecが経過した後T4msecの間0Vになる。その後イグニッション電圧1012は、再び0Vから9〜16Vへ立ち上がって安定する。なお、ここでは、9〜16VでT5secが経過したときに、他のECU(例えば、助手席乗員検知ECU200)の故障が検出されたものとする。
この場合、電圧エリアは、エリア(4)(9〜16V)、エリア(1)(0〜3V)、エリア(4)(9〜16V)、エリア(1)(0〜3V)、エリア(4)(9〜16V)の順に推移する。
また、電圧エリア・時間履歴メモリ(故障1つ前)は、デフォルト値、エリア(4)(9〜16V)、エリア(1)(0〜3V)、エリア(4)(9〜16V)、エリア(1)(0〜3V)の順に推移する。また、電圧エリア・時間履歴メモリ(故障2つ前)は、デフォルト値、エリア(4)(9〜16V)、エリア(1)(0〜3V)、エリア(4)(9〜16V)の順に推移する。
また、電圧エリア・時間履歴メモリ(故障3つ前)は、デフォルト値、エリア(4)(9〜16V)、エリア(1)(0〜3V)の順に推移する。また、電圧エリア・時間履歴メモリ(故障4つ前)は、デフォルト値、エリア(4)(9〜16V)の順に推移する。
また、イグニッション電圧エリア(1)の0〜3Vカウンタ1014は、イグニッション電圧が0〜3Vの範囲内になっているT2msecの間にカウントアップされ、イグニッション電圧が0〜3Vから外れたら0になる。また、イグニッション電圧エリア(1)の0〜3Vカウンタ1014は、イグニッション電圧が再び0〜3Vの範囲内になっているT4msecの間にカウントアップされ、イグニッション電圧が0〜3Vから外れたら0になる。
また、イグニッション電圧エリア(2)の3〜6Vカウンタ1016は、0のままである。また、イグニッション電圧エリア(3)の6〜9Vカウンタ1018は、0のままである。
また、イグニッション電圧エリア(4)の9〜16Vカウンタ1020は、イグニッション電圧が9〜16Vの範囲内になっているT1secの間にカウントアップされ、イグニッション電圧が9〜16Vから外れたら0になる。その後、イグニッション電圧エリア(4)の9〜16Vカウンタ1020は、イグニッション電圧が9〜16Vの範囲内になっているT3msecの間にカウントアップされ、イグニッション電圧が9〜16Vから外れたら0になる。その後、イグニッション電圧エリア(4)の9〜16Vカウンタ1020は、イグニッション電圧が再び9〜16Vの範囲内になっている間、あらかじめ設定されたしきい値(Max(sec))までカウントアップされる。また、イグニッション電圧エリア(5)の16V超カウンタ1022は、0のままである。
このような場合、不揮発メモリ160には、記録部670によって図11のようなデータが記録される。図11は、不揮発メモリに記録されるデータの一例を示す図である。
図11に示すように、電圧エリア履歴・時間履歴の故障発生時には、電圧エリア(4):T5secが記録される。また、電圧エリア履歴・時間履歴の故障1つ前には、電圧エリア(1):T4msecが記録される。また、電圧エリア履歴・時間履歴の故障2つ前には、電圧エリア(4):T3msecが記録される。また、電圧エリア履歴・時間履歴の故障3つ前には、電圧エリア(1):T2msecが記録される。また、電圧エリア履歴・時間履歴の故障4つ前には、電圧エリア(4):T1secが記録される。
次に、エアバッグ制御装置(エアバッグECU100)によって実行される制御について説明する。図12は、エアバッグ制御装置によって実行される制御の第3の例のフローチャートである。まず始めに図12を用いて全体のおおまかなフローを説明し、その後、図12における各処理の詳細を説明する。
図12に示すように、まず、電圧範囲判定部650は、イグニッション電圧のエリア判定を行う(ステップS301)。続いて、計時部655は、前回のイグニッション電圧エリアと今回の電圧エリアとで変化が有るか否かを判定する(ステップS302)。
続いて、計時部655は、前回のイグニッション電圧エリアと今回の電圧エリアとで変化が有ると判定したら(ステップS302,Yes)、イグニッション電圧エリアと経過時間履歴を更新する(ステップS303)。続いて、計時部655は、イグニッション電圧エリア経過時間タイマーの再起動処理を行う(ステップS304)。
ステップS304の後、又は、ステップS302において前回のイグニッション電圧エリアと今回の電圧エリアとで変化がないと判定したら、計時部655は、イグニッション電圧エリア経過時間計測タイマーの計測・最大値リミット処理を行う(ステップS305)。
続いて、通信異常検出部660は、他の制御装置(例えば、助手席乗員検知ECU200)に故障が発生したか否かを判定する(ステップS306)。
記録部670は、他の制御装置(例えば、助手席乗員検知ECU200)に故障が発生したと判定されたら(ステップS306,Yes)、イグニッション電圧エリアと経過時間履歴とを不揮発性メモリに記録する(ステップS307)。
ここで、セルモータ始動時の電圧変動時における、イグニッション電圧エリアの判定処理(ステップS301)の詳細を説明する。図13は、イグニッション電圧エリア判定のフローチャートである。
まず、電圧範囲判定部650は、イグニッション電圧値を取得する(ステップS401)。続いて、電圧範囲判定部650は、イグニッション電圧値はエリア1(0〜6V)範囲内であるか否かを判定する(ステップS402)。電圧範囲判定部650は、イグニッション電圧値はエリア1(0〜6V)範囲内であると判定したら(ステップS402,Yes)、イグニッション電圧エリア判定結果にエリア1をセットする(ステップS403)。
一方、電圧範囲判定部650は、イグニッション電圧値はエリア1(0〜6V)範囲内ではないと判定したら(ステップS402,No)、イグニッション電圧値はエリア2(6〜9V)範囲内であるか否かを判定する(ステップS404)。電圧範囲判定部650は、イグニッション電圧値はエリア2(6〜9V)範囲内であると判定したら(ステップS404,Yes)、イグニッション電圧エリア判定結果にエリア2をセットする(ステップS405)。
電圧範囲判定部650は、イグニッション電圧値はエリア2(6〜9V)範囲内ではないと判定したら(ステップS404,No)、イグニッション電圧値はエリア3(9〜16V)範囲内であるか否かを判定する(ステップS406)。電圧範囲判定部650は、イグニッション電圧値はエリア3(9〜16V)範囲内であると判定したら(ステップS406,Yes)、イグニッション電圧エリア判定結果にエリア3をセットする(ステップS407)。
電圧範囲判定部650は、イグニッション電圧値はエリア3(9〜16V)範囲内ではないと判定したら(ステップS406,No)、イグニッション電圧エリア判定結果にエリア4をセットする(ステップS408)。
電圧範囲判定部650は、ステップS403,405,407,408の後、今回の電圧エリアの値を、前回の電圧エリアに入力する(ステップS409)。そして、電圧範囲判定部650は、イグニッション電圧エリア判定結果を、今回の電圧エリアに入力する(ステップS410)。
次に、バッテリラインのコネクタピンのルーズコンタクト時の電圧変動における、イグニッション電圧エリアの判定処理(ステップS301)の詳細を説明する。図14は、イグニッション電圧エリア判定のフローチャートである。
まず、電圧範囲判定部650は、イグニッション電圧値を取得する(ステップS501)。続いて、電圧範囲判定部650は、イグニッション電圧値はエリア1(0〜3V)範囲内であるか否かを判定する(ステップS502)。電圧範囲判定部650は、イグニッション電圧値はエリア1(0〜3V)範囲内であると判定したら(ステップS502,Yes)、イグニッション電圧エリア判定結果にエリア1をセットする(ステップS503)。
一方、電圧範囲判定部650は、イグニッション電圧値はエリア1(0〜3V)範囲内ではないと判定したら(ステップS502,No)、イグニッション電圧値はエリア2(3〜6V)範囲内であるか否かを判定する(ステップS504)。電圧範囲判定部650は、イグニッション電圧値はエリア2(3〜6V)範囲内であると判定したら(ステップS504,Yes)、イグニッション電圧エリア判定結果にエリア2をセットする(ステップS505)。
電圧範囲判定部650は、イグニッション電圧値はエリア2(3〜6V)範囲内ではないと判定したら(ステップS504,No)、イグニッション電圧値はエリア3(6〜9V)範囲内であるか否かを判定する(ステップS506)。電圧範囲判定部650は、イグニッション電圧値はエリア3(6〜9V)範囲内であると判定したら(ステップS506,Yes)、イグニッション電圧エリア判定結果にエリア3をセットする(ステップS507)。
電圧範囲判定部650は、イグニッション電圧値はエリア3(6〜9V)範囲内ではないと判定したら(ステップS506,No)、イグニッション電圧値はエリア4(9〜16V)範囲内であるか否かを判定する(ステップS508)。電圧範囲判定部650は、イグニッション電圧値はエリア4(9〜16V)範囲内であると判定したら(ステップS508,Yes)、イグニッション電圧エリア判定結果にエリア4をセットする(ステップS509)。
電圧範囲判定部650は、イグニッション電圧値はエリア4(9〜16V)範囲内ではないと判定したら(ステップS508,No)、イグニッション電圧エリア判定結果にエリア5をセットする(ステップS510)。
電圧範囲判定部650は、ステップS503,505,507,509,510の後、今回の電圧エリアの値を、前回の電圧エリアに入力する(ステップS511)。そして、電圧範囲判定部650は、イグニッション電圧エリア判定結果を、今回の電圧エリアに入力する(ステップS512)。
次に、セルモータ始動時の電圧変動時における、イグニッション電圧エリアと経過時間履歴を更新する処理(ステップS303)の詳細について説明する。図15は、イグニッション電圧エリアと経過時間履歴を更新する処理のフローチャートである。
まず、計時部655は、1つ前の電圧エリアの値を、2つ前の電圧エリアに入力する(ステップS601)。続いて、計時部655は、現在の電圧エリアの値を、1つ前の電圧エリアに入力する(ステップS602)。
続いて、計時部655は、1つ前の電圧エリアの経過時間を、2つ前の電圧エリアの経過時間に入力する(ステップS603)。続いて、計時部655は、現在の電圧エリア経過時間を、1つ前の電圧エリアの経過時間に入力する(ステップS604)。
次に、バッテリラインのコネクタピンのルーズコンタクト時の電圧変動における、イグニッション電圧エリアと経過時間履歴を更新する処理(ステップS303)の詳細について説明する。図16は、イグニッション電圧エリアと経過時間履歴を更新する処理のフローチャートである。
まず、計時部655は、3つ前の電圧エリアの値を、4つ前の電圧エリアに入力する(ステップS701)。続いて、計時部655は、2つ前の電圧エリアの値を、3つ前の電圧エリアに入力する(ステップS702)。続いて、計時部655は、1つ前の電圧エリアの値を、2つ前の電圧エリアに入力する(ステップS703)。現在の電圧エリアの値を、1つ前の電圧エリアに入力する(ステップS704)。
続いて、計時部655は、3つ前の電圧エリアの経過時間を、4つ前の電圧エリアの経過時間に入力する(ステップS705)。続いて、計時部655は、2つ前の電圧エリアの経過時間を、3つ前の電圧エリアの経過時間に入力する(ステップS706)。続いて、計時部655は、1つ前の電圧エリアの経過時間を、2つ前の電圧エリアの経過時間に入力する(ステップS707)。続いて、計時部655は、現在の電圧エリア経過時間を、1つ前の電圧エリアの経過時間に入力する(ステップS708)。
次に、イグニッション電圧エリア経過時間タイマーの再起動処理(ステップS304)の詳細について説明する。図17は、イグニッション電圧エリア経過時間タイマーの再起動処理のフローチャートである。計時部655は、当該処理が開始されたら、イグニッション電圧エリア経過時間タイマーをクリアして0にする(ステップS801)。
次に、イグニッション電圧エリア経過時間計測タイマー計測・最大値リミット処理(ステップS305)の詳細について説明する。図18は、イグニッション電圧エリア経過時間計測タイマー計測・最大値リミット処理のフローチャートである。
計時部655は、イグニッション電圧エリア経過時間タイマーは最大値に達しているか否かを判定する(ステップS901)。計時部655は、イグニッション電圧エリア経過時間タイマーは最大値に達していると判定したら(ステップS901,Yes)、そのまま処理を終了する。
一方、計時部655は、イグニッション電圧エリア経過時間タイマーは最大値に達していないと判定したら(ステップS901,No)、イグニッション電圧エリア経過時間タイマーに1を加算して(ステップS902)、処理を終了する。
次に、セルモータ始動時の電圧変動時における、イグニッション電圧エリアと経過時間履歴とを不揮発性メモリに記録する処理(ステップS307)の詳細について説明する。図19は、イグニッション電圧エリアと経過時間履歴とを不揮発性メモリに記録する処理のフローチャートである。
記録部670は、2つ前の電圧エリアの値を、2つ前の電圧エリア履歴データに記録する(ステップS1001)。続いて、記録部670は、1つ前の電圧エリア履歴データの値を、1つ前の電圧エリア履歴データに記録する(ステップS1002)。続いて、記録部670は、現在の電圧エリアの値を、故障発生時の電圧エリア履歴データに記録する(ステップS1003)。
続いて、記録部670は、2つ前の電圧エリアの経過時間を、2つ前の電圧エリアの経過時間履歴データに記録する(ステップS1004)。続いて、記録部670は、1つ前の電圧エリアの経過時間を、1つ前の電圧エリアの経過時間履歴データに記録する(ステップS1005)。続いて、記録部670は、現在の電圧エリアの経過時間を、故障発生時の電圧エリアの経過時間履歴データに記録する(ステップS1006)。
続いて、記録部670は、電圧エリア履歴データを不揮発メモリ160に記録する(ステップS1007)。具体的には、記録部670は、2つ前の電圧エリア履歴データ、1つ前の電圧エリア履歴データ、及び故障発生時の電圧エリア履歴データを、不揮発メモリ160に記録する。
続いて、記録部670は、電圧エリアの経過時間履歴データを不揮発メモリ160に記録する(ステップS1008)。具体的には、記録部670は、2つ前の電圧エリアの経過時間履歴データ、1つ前の電圧エリアの経過時間履歴データ、及び故障発生時の電圧エリアの経過時間履歴データを、不揮発メモリ160に記録する。
次に、バッテリラインのコネクタピンのルーズコンタクト時の電圧変動における、イグニッション電圧エリアと経過時間履歴とを不揮発性メモリに記録する処理(ステップS307)の詳細について説明する。図20は、イグニッション電圧エリアと経過時間履歴とを不揮発性メモリに記録する処理のフローチャートである。
記録部670は、4つ前の電圧エリアの値を、4つ前の電圧エリア履歴データに記録する(ステップS1101)。続いて、記録部670は、3つ前の電圧エリア履歴データの値を、3つ前の電圧エリア履歴データに記録する(ステップS1102)。続いて、記録部670は、2つ前の電圧エリアの値を、2つ前の電圧エリア履歴データに記録する(ステップS1103)。続いて、記録部670は、2つ前の電圧エリア履歴データの値を、1つ前の電圧エリア履歴データに記録する(ステップS1104)。続いて、記録部670は、現在の電圧エリアの値を、故障発生時の電圧エリア履歴データに記録する(ステップS1105)。
続いて、記録部670は、4つ前の電圧エリアの経過時間を、4つ前の電圧エリアの経過時間履歴データに記録する(ステップS1106)。続いて、記録部670は、3つ前の電圧エリアの経過時間を、3つ前の電圧エリアの経過時間履歴データに記録する(ステップS1107)。続いて、記録部670は、2つ前の電圧エリアの経過時間を、2つ前の電圧エリアの経過時間履歴データに記録する(ステップS1108)。続いて、記録部670は、1つ前の電圧エリアの経過時間を、1つ前の電圧エリアの経過時間履歴データに記録する(ステップS1109)。続いて、記録部670は、現在の電圧エリアの経過時間を、故障発生時の電圧エリアの経過時間履歴データに記録する(ステップS1110)。
続いて、記録部670は、電圧エリア履歴データを不揮発メモリ160に記録する(ステップS1111)。具体的には、記録部670は、4つ前の電圧エリア履歴データ、3つ前の電圧エリア履歴データ、2つ前の電圧エリア履歴データ、1つ前の電圧エリア履歴データ、及び故障発生時の電圧エリア履歴データを、不揮発メモリ160に記録する。
続いて、記録部670は、電圧エリアの経過時間履歴データを不揮発メモリ160に記録する(ステップS1112)。具体的には、記録部670は、4つ前の電圧エリアの経過時間履歴データ、3つ前の電圧エリアの経過時間履歴データ、2つ前の電圧エリアの経過時間履歴データ、1つ前の電圧エリアの経過時間履歴データ、及び故障発生時の電圧エリアの経過時間履歴データを、不揮発メモリ160に記録する。
以上のように、本実施形態によれば、故障が検出されたら、あらかじめ設定された複数の異なる電圧範囲のそれぞれについて、計時部655によって計測された経過時間と、経過時間の履歴を、メモリに記録するので、少ないデータ量でより精度良く経過データを記録するようになっているので、故障発生するまでの電源状態を再現することができたり、再現確認試験や故障調査を実施するうえで有用となる車両電源系の影響を明確にすることができる。経過時間の履歴データとして過去のデータ記録個数や、経過時間カウンタの分解能や、電圧範囲の区分などについては、装置に要求される環境条件や性能や想定される故障モードおよびメモリの余裕度などに応じて、適宜変更可能である。例えば、想定される故障モードと電圧範囲の例としては、以下のように対応付けることができる。0〜6V:電源ラインの断線、6〜9V:エンジン始動時のクランキングやオルタネータの故障などに伴う低電圧状態、9〜16V:通常動作電圧範囲、16V超:車両の電源系の故障。
ここで、記録部670によってメモリに記録されるデータの一例を説明する。図21は、メモリに記録されるデータの一例を説明する図である。図21の例では、複数の異なる電圧範囲は、0〜5V、5〜9V、9〜16V、16V超と設定されている。そして、記録部670は、故障発生時、故障発生の1つ前、故障発生の2つ前、故障発生の3つ前、故障発生の4つ前、故障発生の5つ前のそれぞれについて、各電圧範囲の経過時間を記録する。図21は過去の履歴データとして記録する例として故障発生前の5つ前までの例を示しているが、メモリサイズに余裕があればさらに増やしてもよい。過去の履歴データとして記録するデータの個数は装置に要求される機能、性能、精度や信頼性、メモリサイズなどに応じて適宜設定すれば良い。電圧範囲は4つの範囲の例を示したが、装置に要求される環境条件や想定される故障モードなどに応じて適宜設定することができる。
なお、上述の説明では、計時部655は、0からカウントアップすることによって計時する例を示したが、これには限られない。図22は、計時部による計時の一例を示す図である。図22に示すように、計時部655は、計測対象の事象よりも十分に長いフリーランタイマーとタイムスタンプを使用することにより、2つの事象(1102,1104)におけるタイムスタンプ(Y1,Y2)を用いて、|Y2−Y1|により、2つの事象の間の経過時間を計時することができる。十分に長いとは計測対象のフリーランタイマーの1周期の時間よりも計測対象となる2つの事象の間が短いということである。もし、2つの事象の間がフリーランタイマーの1周期の期間を超えた場合には計測時間が最大値に達したと判断して、最大値にリミットしてもよい。
また、電圧エリア判定においては、ヒステリシスを設けることができる。図23は、電圧エリア判定においてヒステリシスを設けた場合の一例を示す図である。もし、クランキング時の電圧の脈動等により電圧境界を頻繁にまたぐような記録を回避したい場合、電圧エリアの判定領域にヒステリシスを設けても良い。図23の例では、8〜9Vの間の領域をヒステリシスとしている。
この場合、イグニッション電圧1112が9V未満から9V以上になったら、電圧エリア1から電圧エリア2へ遷移したと判定される。一方、イグニッション電圧1112が8V以上から8V未満になったら、電圧エリア2から電圧エリア1へ遷移したと判定される。したがって、イグニッション電圧1112がクランキング時に電圧が脈動したとしても、この脈動が電圧エリア判定結果1114に影響を及ぼさない。なお、ヒステリシスの幅や、電圧エリアの領域分割数などは、当該装置に要求される信頼性や機能や想定される故障モードなどに応じて適宜設定すればよい。