(57)【要約】【課題】  エラー検出機能の詳細な故障診断を行うことができるエラー検出装置を提供する。【解決手段】  ＣＰＵ  Ｉ／Ｆ１１００からメモリ１２００に送られるデータ列に対するエラー検出データを生成するパリティビット生成部１３０１と、エラー検出データに基づいて、メモリ１２００から出力されるデータ列のエラーを検出するパリティチェック部１４０１と、データ列に対するエラー検出データとして、パリティビット生成部１３０１からのデータと、診断用のデータを送信するＣＰＵから送られてくるデータとを切り替えて出力する選択回路１３０２と、選択回路１３０２がＣＰＵから送られてくるデータを出力する状態にあるときに、選択回路１３０２から出力されたエラー検出データに基づいて、パリティビット生成部１３０１とパリティチェック部１４０１の少なくとも一方を含むエラー検出機能の故障診断を行うことを特徴としている。【選択図】        図１
2008112224.tif 000002
【特許請求の範囲】
【請求項１】
第１の装置から第２の装置に送られるデータ列に対するエラー検出データを生成するエラー検出データ生成手段と、
前記エラー検出データ生成手段によって生成されたエラー検出データに基づいて、前記第２の装置から出力されるデータ列のエラーを検出するエラー検出手段と、
前記データ列に対するエラー検出データとして、前記エラー検出データ生成手段からのデータと、診断用のデータを送信する診断データ送信手段から送られてくるデータとを切り替えて出力するデータ切替手段と、
前記データ切替手段が前記診断データ送信手段から送られてくるデータを出力する状態にあるときに、前記データ切替手段から出力されたエラー検出データに基づいて、前記エラー検出データ生成手段と前記エラー検出手段の少なくとも一方を含むエラー検出機能の故障診断を行う故障診断手段と、を有することを特徴とするエラー検出装置。
【請求項２】
前記データ切替手段が前記診断データ送信手段から送られてくる診断用のデータを出力する状態にあるときに、前記第２の装置に書き込んだ診断用のデータと、前記第２の装置から読み出した診断用のデータとが一致し、
前記データ切替手段が前記エラー検出データ生成手段からのエラー検出データを出力する状態にあるときに、前記診断データ送信手段が出力した診断用のデータと、前記第２の装置から読み出したデータとが一致しなかった場合に、前記データ切替手段の動作を正常と判定する判定手段を有することを特徴とする請求項１記載のエラー検出装置。
【請求項３】
前記判定手段は、前記データ切替手段が正常に動作していると判定した状態で、前記データ切替手段が前記診断用データ送信手段から送られてくる診断用のデータを出力する状態にあるときに、前記診断用のデータと、前記第２の装置から出力されるデータ列に対する前記エラー検出手段の検出結果とが一致しないときに、前記エラー検出手段の異常と判定することを特徴とする請求項２記載のエラー検出装置。
【請求項４】
前記エラー検出データ生成手段の生成するエラー検出データは、前記データ列に対するパリティチェック用のデータであり、
前記エラー検出手段は、前記第２の装置から出力されるデータ列に対して、パリティチェックを実行する手段であることを特徴とする請求項１から３のいずれか一項記載のエラー検出装置。
【請求項５】
前記第１の装置は、複数の通信チャネル間でフレームデータの転送制御を行うゲートウェイ装置の制御手段と、前記フレームデータの転送制御を行う検索エンジン部との少なくとも一方であって、前記第２の装置は、データを記憶する記憶手段であることを特徴とする請求項１から４のいずれか一項記載のエラー検出装置。
【請求項６】
前記データ列は、前記制御手段と前記検索エンジン部との少なくとも一方から出力される、ルーティング後のフレームデータと、前記フレームデータの転送制御に使用するルーティングデータとの少なくとも一つを含むことを特徴とする請求項５記載のエラー検出装置。
【請求項７】
第１の装置から第２の装置に送られるデータ列に、エラー検出データ生成手段の生成するエラー検出データと、診断データ送信手段から送信された診断用のデータとのいずれか一方を付加するステップと、
前記データ列に前記エラー検出データが付加されたときに、前記エラー検出データに基づいて、エラー検出手段で前記第２の装置から出力されるデータ列のエラーを検出するステップと、
前記データ列に前記診断用のデータが付加された時に、前記診断用のデータに基づいて、前記エラー検出データ生成手段と前記エラー検出手段との少なくとも一方を含むエラー検出機能の故障診断を行うステップと、
を有することを特徴とするエラー検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データのエラーを検出するエラー検出装置に関する。特に、複数の通信ネットワーク間でのデータの中継を行う車載ゲートウェイ装置に搭載されて好適なエラー検出装置に関する。
【背景技術】
【０００２】
近年、車両には図２４に示すようにエンジンＥＣＵ、ドア制御ＥＣＵ、エアバックＥＣＵ、オーディオＥＣＵ、ナビゲーションＥＣＵなど複数のＥＣＵが搭載されるようになってきている。これらのＥＣＵを車両に搭載された異なる通信方式及び異なる通信速度を有する複数のＬＡＮ間で通信させるには、その橋渡しをするゲートウェイ装置が必要である。特許文献１及び２には、このゲートウェイ装置のルーティング機能をソフトウェアによって実現した技術が開示されている。
【０００３】
ゲートウェイ装置は、複数の異なるネットワーク間で授受されるデータの中継を行い、通信プロトコル変換、パケットフィルタリングなどのゲートウェイ機能を実現する。これにより、異なるネットワークに接続されたノード間で通信を行うことができる。
【０００４】
このように複数の装置間をネットワークで接続し、通信によってデータを送受信するようになると、通信によるデータエラーが発生する可能性がある。また、メモリに格納したデータもビット化けなどによってエラーが発生する可能性がある。このため、データのチェック機能を備えた装置を搭載して、データの信頼性を高める工夫がなされているが、チェック機能そのものが正常に動作しているかどうかを検証する装置がなければ、データの信頼性は低下する。
【０００５】
特許文献３では、メモリに入力するデータのうち、パリティジェネレータによって生成されたパリティビットをエラージェネレータによって反転させ、誤った情報をパリティ用メモリに記憶させる。リードサイクル時にこの情報をメモリデータと比較してパリティチェッカーからエラー信号が出るように構成している。
【０００６】
【特許文献１】特開２００３−２４４１８７号公報
【特許文献２】特開２００３−２６４５７１号公報
【特許文献３】実開平５−８３８４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献３に開示された発明は、パリティジェネレータの出力信号を、エラージェネレータによって反転させることで診断用の信号を生成しているので、パリティチェック装置の試験を行うときに、パリティジェネレータの故障と、エラージェネレータの故障とを区別することができないという問題がある。
【０００８】
本発明は上記事情に鑑みてなされたものであり、エラー検出機能の詳細な故障診断を行うことができるエラー検出装置、エラー検出方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
かかる目的を達成するために本発明のエラー検出装置は、第１の装置から第２の装置に送られるデータ列に対するエラー検出データを生成するエラー検出データ生成手段と、前記エラー検出データ生成手段によって生成されたエラー検出データに基づいて、前記第２の装置から出力されるデータ列のエラーを検出するエラー検出手段と、前記データ列に対するエラー検出データとして、前記エラー検出データ生成手段からのデータと、診断用のデータを送信する診断データ送信手段から送られてくるデータとを切り替えて出力するデータ切替手段と、前記データ切替手段が前記診断データ送信手段から送られてくるデータを出力する状態にあるときに、前記データ切替手段から出力されたエラー検出データに基づいて、前記エラー検出データ生成手段と前記エラー検出手段の少なくとも一方を含むエラー検出機能の故障診断を行う故障診断手段と、を有する構成としている。
本発明は、エラー検出データ生成手段で生成されたエラー検出データと、診断データ送信手段から送られてくるデータとを用いて、データ切替手段と、エラー検出機能の詳細な故障診断を行うことができる。
【００１０】
上記エラー検出装置において、前記データ切替手段が前記診断データ送信手段から送られてくる診断用のデータを出力する状態にあるときに、前記第２の装置に書き込んだ診断用のデータと、前記第２の装置から読み出した診断用のデータとが一致し、前記データ切替手段が前記エラー検出データ生成手段からのエラー検出データを出力する状態にあるときに、前記診断データ送信手段が出力した診断用のデータと、前記第２の装置から読み出したデータとが一致しなかった場合に、前記データ切替手段の動作を正常と判定する判定手段を有するとよい。
従って、データ切替手段の出力が一方に固着している等の故障を検出することができる。
【００１１】
上記エラー検出装置において、前記判定手段は、前記データ切替手段が正常に動作していると判定した状態で、前記データ切替手段が前記診断用データ送信手段から送られてくる診断用のデータを出力する状態にあるときに、前記診断用のデータと、前記第２の装置から出力されるデータ列に対する前記エラー検出手段の検出結果とが一致しないときに、前記エラー検出手段の異常と判定するとよい。
従って、データ切替手段の動作を検証した後で、エラー検出機能の動作を検証するので、エラー検出機能の動作検証を精度よく行うことができる。
【００１２】
上記エラー検出装置において、前記エラー検出データ生成手段の生成するエラー検出データは、前記データ列に対するパリティチェック用のデータであり、前記エラー検出手段は、前記第２の装置から出力されるデータ列に対して、パリティチェックを実行する手段であるとよい。
従って、データ列のエラー検出を簡単に行うことができる。
【００１３】
上記エラー検出装置において、前記第１の装置は、複数の通信チャネル間でフレームデータの転送制御を行うゲートウェイ装置の制御手段と、前記フレームデータの転送制御を行う検索エンジン部との少なくとも一方であって、前記第２の装置は、データを記憶する記憶手段であるとよい。
【００１４】
上記エラー検出装置において、前記データ列は、前記制御手段と前記検索エンジン部との少なくとも一方から出力される、ルーティング後のフレームデータと、前記フレームデータの転送制御に使用するルーティングデータとの少なくとも一つを含むとよい。
【００１５】
本発明のエラー検出方法は、第１の装置から第２の装置に送られるデータ列に、エラー検出データ生成手段の生成するエラー検出データと、診断データ送信手段から送信された診断用のデータとのいずれか一方を付加するステップと、前記データ列に前記エラー検出データが付加されたときに、前記エラー検出データに基づいて、エラー検出手段で前記第２の装置から出力されるデータ列のエラーを検出するステップと、前記データ列に前記診断用のデータが付加された時に、前記診断用のデータに基づいて、前記エラー検出データ生成手段と前記エラー検出手段との少なくとも一方を含むエラー検出機能の故障診断を行うステップと、を有している。
【発明の効果】
【００１６】
本発明によれば、エラー検出機能の詳細な故障診断を行うことができる。 
【発明を実施するための最良の形態】
【００１７】
添付図面を参照しながら本発明の最良の実施例を説明する。
【実施例１】
【００１８】
まず、図１を参照しながら本実施例のエラー検出装置１０００の構成について説明する。
ＣＰＵ  Ｉ／Ｆ部１１００と、メモリ１２００とをつなぐバス配線には、パリティビット生成部（本発明のエラー検出データ生成手段に該当する）１３０１と、選択回路（本発明のデータ切替手段に該当する）１３０２とを備えたパリティビット付加部１３００が接続されている。
パリティビット生成部１３０１は、ＣＰＵ（本発明の診断データ送信手段と故障診断手段とに該当する）からメモリ１２００に書き込まれるデータ列にパリティ演算を行い、演算結果のパリティビットをデータ列に付加する。例えば、３２ビットデータをメモリ１２００に書き込む時には、３１ビットからなるデータ列にパリティ演算を行い、演算結果のパリティビットをデータ列の最上位のビット（３２ビット目）に付加する。
【００１９】
選択回路１３０２は、データ列に付加するパリティビットを、パリティビット生成部１３０１の演算結果とするか、ＣＰＵから出力されるパリティビットとするかを選択する回路である。選択回路１３０２には、ＣＰＵから出力される強制発生許可信号が入力されている。選択回路１３０２は、この強制発生許可信号が入力されると、データ列に付加するパリティビットをパリティビット生成部１３０１の出力からＣＰＵの出力に切り替える。ＣＰＵで、パリティ演算結果が正常又は異常となる診断データ（１ビット）を生成して、試験用のデータ列に付加する。診断データを付加されたデータ列が、メモリ１２００に書き込まれると、ＣＰＵは書き込んだデータ列のアドレスと、このデータ列に付加した診断データの正誤情報とを関連付けて記憶する。
【００２０】
またＣＰＵ  Ｉ／Ｆ部１１００と、メモリ１２００とをつなぐバス配線には、パリティチェック部１４０１を備えたチェック部１４００が設けられている。パリティチェク部（本発明のエラー検出手段に該当する）１４０１は、メモリ１２００から読み出されるデータ列にパリティチェックを行い、パリティチェックの結果をＣＰＵに出力する。
【００２１】
ＣＰＵは、試験用のデータ列をメモリ１２００に所定回書き込むと、書き込んだ試験用のデータ列をメモリ１２００から読み出す。チェック部１４００は、メモリ１２００から読み出されたデータ列に対して、パリティチェック部１４０１でチェックを行う。チェック結果は、ＣＰＵに通知される。
ＣＰＵは、メモリ１２００からデータ列を読み出すと、付加したパリティビットの正誤情報と、パリティチェック部１４０１によるパリティチェックの結果とからパリティチェック部１４０１の動作を検証する。
【００２２】
図２に示すフローチャートを参照しながら本実施例の動作手順を説明する。
ＣＰＵは、パリティチェック部１４０１の診断を開始すると（ステップＴ１）、まず、強制発生許可信号をオンに設定する（ステップＴ２）。
強制発生許可信号をオンにすると、ＣＰＵは、試験用のデータの最上位ビット（パリティビット）に、パリティチェックの結果を正常又は異常にする診断データ（１ビット）を付加して、メモリ１２００に書き込む（ステップＴ３）。また、ＣＰＵは、メモリ１２００に書き込んだデータ列のアドレスと、このデータ列に付加した診断データの正誤情報とを保存する（ステップＴ４）。
【００２３】
試験用のデータの書き込み回数が所定回数に達すると（ステップＴ５／ＹＥＳ）、ＣＰＵはメモリ１２００から試験用のデータ列を読み出す。このときパリティチェック部１４０１は、読み出された試験用のデータに対してパリティチェックを実行する（ステップＴ６）。試験用のデータのパリティチェックの結果を取得すると、ＣＰＵは、パリティチェック結果と、保存していた診断データの正誤情報とからパリティチェック部１４０１が正常に動作しているか否かを判定する。
【００２４】
また、選択回路１３０２の固着異常によってパリティチェックの結果に異常が生じている場合もある。
まず、選択回路１３０２がＣＰＵからの信号を出力するように強制発生許可信号をオンにする。そして、診断用データとして「０」と「１」とを切り替えてメモリ１２００に格納する。このとき、メモリ１２００から読み出された診断用データと、ＣＰＵが出力した診断用のデータとを比較して、両データが一致しているかを判定する。両データが一致している場合には、次に強制発生許可信号をＯＦＦにする。そして、ＣＰＵは、診断用データとして「０」と「１」とを切り替えて出力する。
このとき、メモリ１２００から読み出したデータと、出力した診断用データとを比較して両データが一致しているか否かを判定する。両データが一致していないときに選択回路１３０２は固着異常を生じていないと判定することができる。
【００２５】
上記手順で選択回路１３０２の固着異常を判定した後に、パリティチェック部１４０１の故障診断を行うことで、エラー検出の精度を高めることができる。
【実施例２】
【００２６】
次に、上述したエラー検出装置１０００を搭載した車載ゲートウェイ装置１の構成について説明する。
図３に示す車載ゲートウェイ装置１は、ＣＰＵバス１６に、ＣＰＵ２、ＦＬＡＳＨ  ＲＯＭ(Read Only Memory)３、ＵＡＲＴ４（Universal Asynchronous Receiver Transmitter）、割込み制御部６、ＤＭＡコントローラ７、ＣＡＮインタフェース部８、複数のＣＡＮ（本実施例ではＣＡＮ＿０，ＣＡＮ＿１，ＣＡＮ＿２，ＣＡＮ＿３の４つのＣＡＮを示すが、ＣＡＮの数はこれに限定されるものではない）９、バスインタフェース部１０などが接続されている。バスインタフェース部１０には、検索エンジン部１１、マップメモリ１３、送信バッファ１４、受信制御部１５が接続されている。検索エンジン部１１、送信バッファ１４、受信制御部１５は、バスインタフェース部１０を介してＣＰＵバス１６にデータを入出力するデータ線で接続されている。また検索エンジン部１１と送信バッファ１４、検索エンジン部１１と受信制御部１５もデータ線で接続されている。また、受信制御部１５は、ＣＡＮインタフェース部８とデータ線で接続され、ＣＡＮインタフェース部８から直接データを入力できるようになっている。また、図３にはデータ線以外に制御信号を送受信する制御線も示されている。ＣＰＵ２は、この制御線に上記各機能部を制御する信号を出力する。またＤＭＡコントローラ７と検索エンジン部１１との間にも制御線が配線され、ＤＭＡコントローラ７は、ＣＰＵ２の制御によらず検索エンジン部１１からデータを読み出して転送先に転送する。なお、検索エンジン部１１と、マップメモリ１３と、送信バッファ１４と、受信制御部１５と、バスインタフェース部１０と、ＣＡＮインタフェース部８とを備える構成をゲートウェイハードマクロ部１７と呼ぶ。
【００２７】
ゲートウェイハードマクロ部１７には、主として以下に示す機能が備えられている。第１に、フレームデータの受信時にＣＡＮ９が発生する割込み信号をトリガにして、ＣＡＮ９のメッセージボックスからフレームデータを取り出す。第２に、受信したフレームデータのルーティングを行う。第３に、ルーティングエラーの検出やその他のエラーを検出する。この他に、ルーティング後のデータの送信機能などを設けても良い。
【００２８】
ＦＬＡＳＨ  ＲＯＭ３には、ＣＰＵ２がデータ伝送処理を含む各種処理の実行時に使用するデータ又はプログラムなどが記憶されている。ＣＰＵ２は、図３に示す車載ゲートウェイ装置１の全体を制御すると共に、検索エンジン部１１でルーティングされたフレームデータの送信処理を、プログラム制御によって行う。さらに、ＣＰＵ２は、ＦＬＡＳＨ  ＲＯＭ３に格納されたプログラムに従って、受信したフレームデータの転送先を振り分けるルーティングを行う。
【００２９】
ＵＡＲＴ４は、外部装置と接続し、外部装置から送られるパラレル信号をシリアル信号に変換したり、逆にシリアルデバイスから送られるシリアル信号をパラレル信号に変換したりする。
【００３０】
割込み制御部６は、検索エンジン部１１から出力される割込み信号のＣＰＵ２への出力を制御する。検索エンジン部１１は、送信ＦＩＦＯ（第１蓄積部）２１に予め設定された設定数のフレームが蓄積されたとき、送信ＦＩＦＯ２１がオーバーフローしたとき、検索エンジン部１１にルーティングエラーが生じたときに割込み信号をＣＰＵ２に出力する。ＤＭＡコントローラ７は、検索エンジン部１１によるルーティングによって送信ＦＩＦＯ２１に格納されたフレームデータをＣＰＵ２を介さずにＤＭＡ転送する。
【００３１】
複数のＣＡＮ９（ＣＡＮ＿０，ＣＡＮ＿１，ＣＡＮ＿２，ＣＡＮ＿３）は、各通信チャネルごとに設けられ、ＣＡＮバス（不図示）から受信したフレームデータを蓄積し、また検索エンジン部１１やＣＰＵ２でルーティング後のフレームデータを蓄積する。ルーティング後のフレームデータは、メッセージボックスから読み出され、ＣＡＮバスに出力される。またＣＡＮ９は、通信チャネルからフレームデータを受信すると、割り込み信号を検索エンジン部１１に出力する。
【００３２】
検索エンジン部１１は、ＣＡＮ９から出力された割り込み信号をトリガとして、ＣＡＮ９のメッセージボックスからフレームデータを取り出し、ＣＡＮインタフェース部８を介して受信制御部１５で一旦格納する。その後、所定のタイミングクロックで受信制御部１５からフレームデータを取り出し、ルーティング処理、データの中継先の情報検索などの処理を行う。また、ルーティング処理中に生じたエラーの検出機能も備えている。なお、マップメモリ１３に格納されるルーティングマップの詳細については後述する。
【００３３】
送信バッファ１４には、検索エンジン部１１でルーティングされたフレームデータが格納される。受信制御部１５には、ＣＡＮ９のメッセージボックスから読み出されたフレームデータが格納される。
【００３４】
次に図４を参照しながらゲートウェイハードマクロ部１７の構成について説明する。本実施例の車載ゲートウェイ装置１は、フレームデータのルーティングを、ＣＰＵ２によるソフトウェア制御５０と、ハードウェアとして設けたゲートウェイハードマクロ部１７とで並行して行う。
ゲートウェイハードマクロ部１７は、図４に示すように通信チャネルごとに設けられた振り分け部５１及びレジスタ５６と、セレクタ部５２と、タイムスタンプ部６１と、検索エンジン部１１と、マップメモリ１３と、送信ＦＩＦＯ２１とを有している。なお、検索エンジン部１１と、マップメモリ１３との間には、上述したパリティビット付加部１３００、チェック部１４００が設けられている。これらについては後述する。
【００３５】
振り分け部５１は、図４に示すように各通信チャネルごとに設けられ、ＣＡＮ９のメッセージボックス９からフレームデータを取り出して、フレームデータの出力先の振り分け処理を行う。振り分け部５１は、フレームデータに設定された宛先情報を参照して、フレームデータの転送先を、ソフトウェア制御部５０、セレクタ部５２、ソフトウェア制御部５０とセレクタ５２の両方のいずれかに設定する。なお、ソフトウェア制御部５０は、ＣＰＵ２がプログラム制御によって動作することで実現する機能部である。
このようにチャネル単位や選択したフレーム単位でデータの出力先を振り分けることで、ソフトウェア制御部５０による処理と、検索エンジン部１１によるハード処理を並行して行うことができる。
また、優先的にソフトウェア制御部５０に送るべきフレームデータを検索エンジン部１１を介さずに転送することができるので、ソフトウェア制御部５０での処理開始時間を早めることができる。
【００３６】
レジスタ５６には、ソフトウェア制御部５０によって設定された設定情報が格納されている。設定情報には、少なくとも車載ゲートウェイ装置の動作設定情報と、振り分けるための設定情報とが含まれる。振り分け部５１はこのレジスタ５６に格納された設定情報に従ってフレームデータの振り分け動作を行う。この設定情報を参照して動作を行うのは振り分け部５１だけであって、後段に設けられたセレクタ部５２、検索エンジン部１１、送信ＦＩＦＯ２１は、設定情報により動作を停止したりすることがない。このため、ゲートウェイの設定変更、通信チャネルの変更等が動的に行われても、ゲートウェイハードマクロ部１７内でフレームデータが消失するなどの問題を生じない。
【００３７】
検索エンジン部１１は、複数の通信チャネルで１つ設けられており、送信ＦＩＦＯ部２１は通信チャネルごとに設けられている。このような構成を実現するため、セレクタ部５２を検索エンジン部１１の前段に設けている。セレクタ部５２は、複数の通信チャネルからのフレームデータを入力し、検索エンジン部１１に出力するフレームデータを選択する。また。セレクタ部５２は、選択したフレームデータを検索エンジン部１１に出力するタイミングを制御している。複数の通信チャネルから同時にフレームデータが出力されても、セレクタ部５２が優先順位や到着順によってフレームデータを選択し、検索エンジン部１１に出力するタイミングを制御する。これにより、検索エンジン部１１を複数の通信チャネルで共有することが可能となる。
【００３８】
図５を参照しながら振り分け部５１の詳細な構成を説明する。振り分け部５１は、第１宛先振り分け部５９と、第２宛先振り分け部６０とを有している。
フレームデータは、ＣＡＮ９のメッセージ振り分け部５８によって、データのＩＤに応じて振り分けられ、メッセージボックス（０、１、２、３・・・・）に登録される。第１宛先振り分け部５９は、メッセージ振り分け部５８で振り分けられた場所（メッセージボックス０、１、２、３・・・・）に対しフレームデータの宛先をソフトウェア制御部５０や検索エンジン部１１に設定したり、ソフトウェア制御部５０と検索エンジン部１１の両方に設定する同報送信の設定を行う。また、ここで廃棄されるフレームデータもある。第２宛先振り分け部６０は、検索エンジン部１１の処理状況に応じて、検索エンジン部１１宛てであったフレームデータを強制的にソフトウェア制御部５０に変更したり、フレームデータを廃棄する設定を行う。
【００３９】
図６を参照しながらタイムスタンプ部６１の構成について説明する。
タイムスタンプ部６１は、セレクタ部５２に入力されるフレームデータにタイムスタンプを付加する。タイムスタンプ部６１は、図６に示すように分周回路６１１と、フリーランカウンタ６１２とを備えている。
分周回路６１１には、ＣＰＵ２から出力される機能イネーブル信号および分周比設定信号と、クロック信号とが入力される。分周回路６１１は、機能イネーブル信号がイネーブルになると、分周比設定信号の設定に従ってクロック信号を分周したものを基準に作るカウンタイネーブル信号をフリーランカウンタ６１２に出力する。
フリーランカウンタ６１２は、クロック信号と、分周回路６１１から出力されるカウンタイネーブル信号と、ＣＰＵ２からの機能イネーブル信号とを入力する。フリーランカウンタ６１２は、機能イネーブル信号がイネーブルになると、分周回路６１１から出力されるカウンタイネーブル信号をカウントして、タイムスタンプを出力する。
例えば、クロックが１６ＭＨｚで、フリーランカウンタが１６ビットの場合、分周設定が１／１２８では、計測できる最小時間は８［μｓ］、計測できる最大時間は、０．５２４［ｓ］となる。また、分周設定が１／１６３８４では、計測できる最小時間は１．０２４［ｍｓ］、計測できる最大時間は、６７．１［ｓ］となる。
【００４０】
図７に示すフローチャートを参照しながら、ＣＰＵ２によるタイムスタンプ部６１の初期設定手順について説明する。
ＣＰＵ２は、初期動作時にタイムスタンプ部６１に対し、計測すべき範囲と分解能に応じた分周比を設定する（ステップＳ１）、その後、機能イネーブル信号をイネーブルに設定して、タイムスタンプ部６１を動作させる（ステップＳ２）。
【００４１】
次に、図８を参照しながらセレクタ部５２の構成について説明する。セレクタ部５２は、通信チャネルごとに設けられたレジスタ５２１、５２２、５２３、５２４と、選択論理部５２５と、セレクタ５２６とを有している。
レジスタ５２１、５２２、５２３、５２４には各チャネルからのフレームデータと、各レジスタ５２１、５２２、５２３、５２４にフレームデータが入力されるタイミングを通知するタイミング通知信号と、タイムスタンプ部で発行されたタイムスタンプとが入力される。タイムスタンプ部６１で発行されたタイムスタンプは、レジスタ５２１、５２２、５２３、５２４においてフレームデータに付加される。
【００４２】
各レジスタ５２１、５２２、５２３、５２４から選択論理部５２５には、レジスタ５２１、５２２、５２３、５２４に有効なフレームデータが保持されているか否かを示すステータス信号が出力される。また、各レジスタ５２１、５２２、５２３、５２４は、タイムスタンプが付加されたフレームデータを所定タイミングでセレクタ５２６に出力する。選択論理部５２５は、各レジスタ５２１、５２２、５２３、５２４からのステータス信号をもとに、出力するフレームデータを選択する選択指示信号をセレクタ５２６に出力する。セレクタ５２６は、選択論理部５２５からの選択指示信号に従って、フレームデータを選択した後に後段の検索エンジン部１１に出力する。
【００４３】
次に、図９を参照しながら検索エンジン部１１の詳細な構成について説明する。検索エンジン部１１は、状態制御部７０、エントリ識別部７１、番号加算部７２、番号減算部７３、下限用セレクタ７４、上限用セレクタ７５、加算部７６、除算・保持部７７、メモリに構成されたテーブル７８、一致比較部７９、エントリチェック部８０を備えている。
【００４４】
状態制御部７０は、セレクタ部５２のフレーム出力信号を入力して、図９に示す各機能部を制御する。また、エントリ識別部７１から入力される検索回数値に従って、テーブル７８の検索を設定された回数だけ行うように制御する。
【００４５】
エントリ識別部７１の構成を図１０に示す。エントリ識別部７１は、第１変換テーブル９２と、第２変換テーブル９３を備えている。なお、第１変換テーブル９２に入力される有効エントリ数設定値とは、宛先検索時に参照するルーティングマップに登録を行ったエントリ数を示している。
【００４６】
第１変換テーブル９２は、有効エントリ数設定値からメモリ７８の検索回数を設定した検索回数値を算出する。例えば、チャネルのエントリ数が２５６エントリ（ノード）であった場合、２の８乗であるので検索回数は＋１して９回となる。
【００４７】
第２変換テーブル９３は、有効エントリ数設定値を入力して、上限のエントリ番号と、下限のエントリ番号とを出力する。下限エントリ番号は、登録されたノードのＩＤ番号のうち最も値の小さい番号（０）であり、同様に上限エントリ番号は、そのチャネルに登録されたノードのＩＤ番号のうち最も値の大きな番号（有効エントリ数設定値）を示す。下限エントリ番号は下限用セレクタ７４に出力され、上限エントリ番号は上限用セレクタ７５に出力される。また、検索回数値は、状態制御部７０に出力される。
【００４８】
下限用セレクタ７４には、エントリ識別部７１から下限エントリ番号が入力される。下限用セレクタ７４は、状態制御部７０の制御に従って、前記下限エントリ番号、前回のエントリ番号、除算・保持部７７の出力に＋１したエントリ番号のいずれかを選択出力する。
同様に上限用セレクタ７５には、エントリ識別部７１から上限エントリ番号が入力される。上限用セレクタ７５は、状態制御部７０の制御に従って、前記上限エントリ番号、前回のエントリ番号、除算・保持部７７の出力に−１したエントリ番号のいずれかを選択出力する。
【００４９】
加算部７６は、上限用セレクタ７４のエントリ番号と、下限用セレクタ７５のエントリ番号とを加算する。除算・保持部７７は、加算部７６の加算値を２で除算し、除算結果を保持する。
【００５０】
ここで、図１１を参照しながら本実施例の検索方法を説明する。本実施例では２分木検索を用いている。図１１は２分木検索の方法を概念的に示している。検索対象のチャネルが使用するメモリの下限設定値をＮ、上限設定値Ｍとする。また、説明を簡単にするため有効エントリ数設定値を上限設定値とし、下限設定値を０とする。
２分木検索では、まず上限設定値と下限設定値の中間の値が演算される。すなわち、（Ｎ＋Ｍ）÷２（＝Ｃ１とする）が演算され、このアドレスのエントリデータと、受信データのＩＤとの比較が行われる。ここで例えば、受信データのＩＤがエントリデータよりも小さい値であった場合には、対象のエントリデータがメモリアドレスの高いほうに登録されていることになる。そのため、下限用セレクタ７４では、除算・保持部７７の保持している前回の値Ｃ１に＋１した値が選択される。また上限用セレクタ７５では前回の値Ｍがそのまま選択される。これらの制御は、状態制御部７０によって行われる。加算部７６でこれらの値が加算され、除算・保持部７７で２で除算することで（Ｃ１＋１＋Ｍ）÷２がＣ２として演算される。このようにして求めたエントリデータと、受信ＩＤとの大小比較によって次のアドレスが順次生成され、受信データのＩＤと一致するエントリデータをメモリ７８から検索する。
【００５１】
エントリチェック部８０は、テーブル７８から読み出したエントリデータが正常なデータであるか否かを判定する。判定結果は状態制御部７０に出力する。
一致比較部７９は、テーブル７８から読み出したエントリデータと、受信したデータのＩＤとを比較する。図１２に一致比較部７９の構成を示す。図１２に示すように一致比較部７９は、論理演算部９５と、一致比較演算部９６とを備えている。論理演算部９５は、受信データのＩＤに図１３に示すようにマスクを重ね合わせ、検索範囲を絞り込む。一致比較部７９は、マスクを重ね合わせたＩＤ番号と、読み出したエントリデータとを比較して、両者が一致しているか否かを判定する。
【００５２】
例えば、図１４（Ａ）に示すようにゲートウェイ装置に接続する４つのＣＡＮバスＡ，Ｂ，Ｃ，Ｄのノードに、ランダムなＩＤ番号（図に示す数値がＩＤ番号を表している）が付加されていると、図１４（Ａ）に示す例では、最大１２回比較を行って、ＩＤの一致を検出しなければならない。これに対して、図１４（Ｂ）に示すように同一バス上のノードに対して、上位数ビットを同じ値に設定しておくことで、４回の比較でどのチャネルからのデータであるのかを判定することができる。
【００５３】
次に、図１５に示すフローチャートを参照しながら検索エンジン部１１の処理手順を説明する。
検索を開始すると、状態制御部７０は検索回数をまず０にセットする（ステップＳ１１）。この処理と同期してエントリ識別部７１において、エントリ数に応じた検索回数値をセットする（ステップＳ１２）。検索回数値は、エントリ識別部７１から状態制御部７０に通知される。
【００５４】
次に、状態制御部７０は、検索回数とエントリ識別部７１から通知された検索回数値とを比較して（ステップＳ１３）、検索回数が検索回数値に満たない場合には（ステップＳ１３／ＹＥＳ）、初期値もしくは前回の大小比較情報を基にメモリのポインタアドレスを生成する（ステップＳ１４）。下限用セレクタ７４には、エントリ識別部７１から下限エントリ番号が入力される。同様に上限用セレクタ７５には、エントリ識別部７１から上限エントリ番号が入力される。加算器７６は、下限エントリ番号と上限エントリ番号とを加算する。除算・保持部７７は、加算された値を２で除算して保持する。この値がポインタのアドレスとなる。
【００５５】
ポインタのアドレスが生成されると、このポインタアドレスが示すエントリデータがメモリ７８から読み出される（ステップＳ１５）。次に、読み出されたエントリデータは、エントリチェック部８０に入力され、データが正常であるか否かが判定される（ステップＳ１６）。正常な値ではなかった場合には（ステップＳ１６／ＮＯ）、システムエラーとして処理される（ステップＳ２１）。また、エントリデータが正常であった場合には（ステップＳ１６／ＹＥＳ）、受信データのＩＤと、エントリデータとが一致するか否かが一致比較部７９で判定される（ステップＳ１７）。両者が一致しなかった場合には（ステップＳ１７／ＮＯ）、検索回数が１イクリメントされると共に、一致比較部７９の大小比較結果が状態制御部７０に出力され（ステップＳ１８）、ステップＳ１３からの処理を繰り返す。状態制御部７０は、大小比較結果に応じて下限用セレクタ７４、上限用セレクタ７３を制御し、前回の比較結果に応じたポインタアドレスが生成される。また、両者が一致した場合には（ステップＳ１７／ＹＥＳ）、一致したエントリデータの宛先情報がチェックされて（ステップＳ１９）、正常であると送信ＦＩＦＯ２１に書き込まれる（ステップＳ２０）。また、宛先情報が正常ではない場合には（ステップＳ１９／ＮＯ）、システムエラーとして処理されるか（ステップ２１）、フレームデータを廃棄する（ステップＳ２２）。さらに、状態制御部７０は、検索回数が検索回数値よりも大きくなると（ステップＳ１３／ＹＥＳ）、受信したフレームデータは廃棄される（ステップＳ２２）。
【００５６】
また、状態制御部７０は、フレームデータを受信していないアイドルの時に、マップ情報の正常性確認動作を行ってもよい。この処理について図１６に示すフローチャートを参照しながら説明する。
状態制御部７０は、フレームデータを受信していないアイドル時に（ステップＳ３１）、自立チェックを実行する（ステップＳ４４）。まず、状態制御部７０は、ポインタのアドレスを生成し（ステップＳ４５）、該当するアドレスに格納されたエントリデータを検索して取り出す（ステップＳ４６）。そして、取り出したエントリデータの正常性を判定する（ステップＳ４７）。検索したエントリデータが正常であると判定すると（ステップＳ４７／ＹＥＳ）、処理を終了する。またエラーを検出すると（ステップＳ４７／ＮＯ）、システムエラーとして処理する（ステップＳ４８）。
【００５７】
図１７には、送信ＦＩＦＯ２１と、フレームデータの処理遅延時間に応じて、フレームデータを廃棄する構成とを示している。
図１７に示すように送信ＦＩＦＯ２１は、タイムスタンプを格納するタイムスタンプ用ＦＩＦＯ２１０と、フレームデータを格納するデータ用ＦＩＦＯ２１１とを備えている。また、処理遅延時間に応じてデータを廃棄するデータ廃棄部３００には、比較部３０１と、Ｖａｌｉｄ部３０２とを有している。
【００５８】
検索エンジン部１１から出力されるタイムスタンプ付きのフレームデータは、分離部２２０によってタイムスタンプと、それ以外の領域とに分離され、タイムスタンプ用ＦＩＦＯ（以下、ＴＳ用ＦＩＦＯと略記する）２１０、データ用ＦＩＦＯ２１１にそれぞれ保持される。分離部２２０は、フレームデータの所定位置に挿入されたタイムスタンプを取り出して、ＴＳ用ＦＩＦＯ２１０に出力する。
また、Ｖａｌｉｄ部３０２には、タイムスタンプ用ＦＩＦＯ２１０、データ用ＦＩＦＯ２１１に保持されたデータが有効であることを示すＶａｌｉｄデータ（有効なデータには「１」が記録されている）が記録される。
【００５９】
比較部３０１には、タイムスタンプと、タイムアウト設定情報とが入力される。タイムスタンプは、タイムスタンプ部６１で発行される現在の時刻を示す情報である。また、タイムアウト設定情報は、ＣＰＵ２によって設定される情報であって、ゲートウェイハードマクロ部１７に入力したフレームデータが、ゲートウェイハードマクロ部１７から出力されるまでにかかる時間の遅延許容時間の設定である。
【００６０】
Ｖａｌｉｄ部３０２と、タイムスタンプ用ＦＩＦＯ２１０と、データ用ＦＩＦＯ２１１とは、それぞれ同一構成のＦＩＦＯで構成されている。
従って、データ用ＦＩＦＯ２１１に書き込まれたフレームデータのタイムスタンプ情報が、タイムスタンプ用ＦＩＦＯ２１０の同一領域に書き込まれている。同様に、フレームデータが有効なデータであるのか無効なデータであるのかを示すＶａｌｉｄデータが、Ｖａｌｉｄ部３０２の同一領域に書き込まれている。
比較部３０１は、Ｖａｌｉｄ部３０２に有効であることを示すデータが記録された領域のタイムスタンプをＴＳ用ＦＩＦＯ２１０から読み込んで、タイムスタンプ部６１から出力される現在の時刻を示すタイムスタンプ情報と比較する。ＴＳ用ＦＩＦＯ２１０に格納されたタイムスタンプの時刻と、現在の時刻との差がＣＰＵ２から通知されたタイムアウト設定情報を超えている場合、比較部３０１は、Ｖａｌｉｄ部３０２のＶａｌｉｄデータを無効なデータ（０を記録する）に変更する。Ｖａｌｉｄデータが無効なデータに変更されると、メッセージカウンタ３０３の値が１減算される。
ＣＰＵ２は、所定タイミングごとにメッセージカウンタ３０３の値を読み出す。メッセージカウンタ３０３の値が所定値となると、データ用ＦＩＦＯ２１１からフレームデータを読み出す。このとき、Ｖａｌｉｄ部３０２に無効を示すデータが記録されているフレームデータは、読み出されずに廃棄される。
【００６１】
なお、ＴＳ用ＦＩＦＯ２１０に格納されたタイムスタンプの時刻と、現在の時刻との差がＣＰＵ２から通知されたタイムアウト設定情報を超えると、比較部３０１で割り込み信号をＣＰＵ２に出力するようにしてもよい（このときの構成を図１８に示す）。ＣＰＵ２は割り込み信号を入力すると、データ用ＦＩＦＯ２１１に格納されたフレームデータを優先的に読み出す。
【００６２】
図１７、１８には、ゲートウェイハードマクロ部１７内での滞留時間がタイムアウト時間を超えたフレームデータをハードウェアによって廃棄する場合の構成を示したが、この他に、ＣＰＵ２によるソフト制御によって、滞留時間がタイムアウト時間を超えたフレームデータをソフトウェアによって廃棄することもできる。
図１９に示すフローチャートを参照しながら、滞留時間がタイムアウト時間を超えたフレームデータをＣＰＵ２で廃棄する手順を説明する。
ＣＰＵ２は、所定時間ごとにメッセージカウンタ３０３を参照して、送信ＦＩＦＯ２１に処理データが格納されているかを判定する（ステップＳ５１）。送信ＦＩＦＯ２１に処理データが格納されている場合には（ステップＳ５１／ＹＥＳ）、この処理データを送信ＦＩＦＯ２１から読み出すと共に（ステップＳ５２）、タイムスタンプ部６１から現在時刻を表すタイムスタンプ情報を読み出す（ステップＳ５３）。
ＣＰＵ２は、送信ＦＩＦＯ２１から読み出したフレームデータに付加されたタイムスタンプ情報と、タイムスタンプ部から読み出した現在時刻情報とを比較する（ステップＳ５４）。
タイムスタンプの時刻と、現在の時刻との差が第１基準値βよりも大きいと（ステップＳ５５／ＹＥＳ）、このフレームデータを廃棄する（ステップＳ５６）。また、タイムスタンプの時刻と、現在の時刻との差が第１基準値βよりも小さく、第２基準値αよりも大きい場合には（ステップＳ５７／ＹＥＳ）、このフレームデータの処理に遅延が生じていると判定し、このフレームデータを優先的に処理する（ステップＳ５８）。なお、第１基準値βは、第２基準値αよりも大きな値に設定されている。
さらに、タイムスタンプの時刻と、現在の時刻との差が第２基準値αよりも小さいには（ステップＳ５７／ＮＯ）、フレームデータの処理に遅延が生じていないと判定し、通常の処理を行う（ステップＳ５９）。
【００６３】
図２０には、ゲートウェイハードマクロ部１７を転送されるフレームデータの構成を示す。図２０（Ａ）は、セレクタ部５２に入力されるフレームデータの構成を示す。図２０（Ｂ）は、セレクタ部５２から検索エンジン部１１に出力されるタイムスタンプ付きのフレームデータの構成を示す。図２０（Ｃ）には、送信ＦＩＦＯ２１に書き込まれるタイムスタンプ付きののフレームデータの構成を示す。図２０（Ｄ）には、ＣＰＵ２が送信ＦＩＦＯから読み込むフレームデータの構成を示す。なお、図２０中に示す「＊」は複数ビットからなることを示す。
【００６４】
なお、フレームデータに付加するタイムスタンプ情報を、検索エンジン部１１で有効なフレームデータであると判定されたデータに対してだけ付加することもできる。この場合の構成を図２１に示す。ゲートウェイハードマクロ部１７内での滞留時間の計測という観点からは、図４に示す構成が厳密な滞留時間を計測することができるが、図２１に示す構成では、ハードウェアの規模を小さくすることができる。
また、フレームデータの廃棄は、ソフトウェアによる廃棄がメインで、ハードウェアで廃棄する場合には図１８に示す構成となる。
【００６５】
さらに、本実施例は、図２２に示すようにソフトウェア制御部５０と、マップメモリ１３との間に、上述した実施例１のパリティビット付加部１３００、チェック部１４００を設けている。これらパリティビット付加部１３００、チェック部１４００を設けて、ソフトウェア制御部５０からマップメモリ１３に書き込まれるデータ（例えば、ルーティングマップのデータ）のパリティビット付加をパリティビット付加部１３００で行い、マップメモリ１３からソフトウェア制御部５０が読み出すデータのパリティチェックをパリティチェック部１４０１で行っている。また、選択回路１３０２、パリティチェック部１４０１のエラー判定は、上述した実施例１と同様の手順で行われる。なお、マップメモリ１３から読み出されたフレームデータと、パリティチェック部１４０１のチェック結果は、検索エンジン部１１にも出力される。
【００６６】
また、図２３に示すように検索エンジン部１１と、送信ＦＩＦＯ２１との間に、パリティビット付加部１３００、チェック部１４００を設けてもよい。これらパリティビット付加部１３００、チェック部１４００を設けて、検索エンジン部１１から送信ＦＩＦＯ２１に書き込まれるフレームデータのパリティチェックをパリティチェック部１４０１で行う。パリティチェック部１４０１及び送信ＦＩＦＯ２１から読み出されたフレームデータは、ソフトウェア制御部５０に出力される。
なお、図２３では、パリティのチェックをソフトウェア制御部５０でを行っているが、検索エンジン部１１でパリティのチェックを行う構成であってもよい。
【００６７】
上述した実施例は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【図面の簡単な説明】
【００６８】
【図１】エラー検出装置の構成を示す図である。
【図２】エラー検出装置の処理手順を示すフローチャートである。
【図３】車載ゲートウェイ制御装置１の構成を示すブロック図である。
【図４】ゲートウェイハードマクロ部の構成を示す図である。
【図５】振り分け部の構成を示すブロック図である。
【図６】タイムスタンプ部の構成を示すブロック図である。
【図７】タイムスタンプ部の初期設定時のＣＰＵの処理手順を示すフローチャートである。
【図８】セレクタ部の構成を示すブロック図である。
【図９】検索エンジン部の構成を示すブロック図である。
【図１０】エントリ識別部の構成を示す図である。
【図１１】２分木検索を説明するための図である。
【図１２】一致比較部の構成を示す図である。
【図１３】マスク処理を説明するための図である。
【図１４】マスク処理を説明するための図である。
【図１５】検索エンジン部の処理手順を示すフローチャートである。
【図１６】検索エンジン部の処理手順、特に自立チェックの手順を示すフローチャートである。
【図１７】送信ＦＩＦＯと、無効なフレームデータを破棄するデータ破棄部の構成を示す図である。
【図１８】送信ＦＩＦＯと、無効なフレームデータを破棄するデータ破棄部の他の構成を示す図である。
【図１９】ＣＰＵにより無効なフレームデータを破棄する手順を示すフローチャートである。
【図２０】ゲートウェイハードマクロ部内で処理されるフレームデータの構成を示す図である。
【図２１】ゲートウェイハードマクロ部の他の構成を示す図である。
【図２２】車載ゲートウェイ装置に搭載されたエラー検出装置の構成を示す図である。
【図２３】車載ゲートウェイ装置に搭載されたエラー検出装置の構成を示す図である。
【図２４】複数のＥＣＵと車載ゲートウェイ装置との接続構成を示す図である。
【符号の説明】
【００６９】
１  車載ゲートウェイ装置
２  ＣＰＵ
３  ＦＬＡＳＨ  ＲＯＭ
４  ＵＡＲＴ
５  フリーランタイマ
６  割込み制御部
７  ＤＭＡコントローラ
８  ＣＡＮインタフェース部
９  ＣＡＮ
１０  バスインタフェース部
１１  検索エンジン部
１３  マップメモリ
１４  送信バッファ
１５  受信バッファ
１６  ＣＰＵバス
１７  ゲートウェイハードマクロ部
２１  送信ＦＩＦＯ
５１  振り分け部
５２  セレクタ部
５３  並列バッファ
５４  調停部
５５  フォーマット変換部
５６  レジスタ
６１  タイムスタンプ部
７０  状態制御部
７１  エントリ識別部
７９  一致比較部
８０  エントリチェック部
９１  選択部
９２  第１変換部
９３  第２変換部
９５  論理演算部
９６  一致比較演算部
２１０  ＴＳ用ＦＩＦＯ
２１１  データ用ＦＩＦＯ
３００  データ破棄部
３０１  比較部
３０２  Ｖａｌｉｄ部
３０３  メッセージカウンタ
５２１、５２２、５２３、５２４  レジスタ
５２５  選択論理部
５２６  セレクタ
６１１  分周回路
６１２  フリーランカウンタ
１１００  ＣＰＵ  Ｉ／Ｆ
１２００  メモリ
１３００  パリティビット付加部
１３０１  パリティビット生成部
１３０２  選択回路
１４００  チェック部
１４０１  パリティチェック部
【図１】
2008112224.tif 000003
【図２】
2008112224.tif 000004
【図３】
2008112224.tif 000005
【図４】
2008112224.tif 000006
【図５】
2008112224.tif 000007
【図６】
2008112224.tif 000008
【図７】
2008112224.tif 000009
【図８】
2008112224.tif 000010
【図９】
2008112224.tif 000011
【図１０】
2008112224.tif 000012
【図１１】
2008112224.tif 000013
【図１２】
2008112224.tif 000014
【図１３】
2008112224.tif 000015
【図１４】
2008112224.tif 000016
【図１５】
2008112224.tif 000017
【図１６】
2008112224.tif 000018
【図１７】
2008112224.tif 000019
【図１８】
2008112224.tif 000020
【図１９】
2008112224.tif 000021
【図２０】
2008112224.tif 000022
【図２１】
2008112224.tif 000023
【図２２】
2008112224.tif 000024
【図２３】
2008112224.tif 000025
【図２４】
2008112224.tif 000026