説明

エラー検出装置及びエラー検出方法

【課題】 エラー検出機能の詳細な故障診断を行うことができるエラー検出装置を提供する。
【解決手段】 CPU I/F1100からメモリ1200に送られるデータ列に対するエラー検出データを生成するパリティビット生成部1301と、
エラー検出データに基づいて、メモリ1200から出力されるデータ列のエラーを検出するパリティチェック部1401と、データ列に対するエラー検出データとして、パリティビット生成部1301からのデータと、診断用のデータを送信するCPUから送られてくるデータとを切り替えて出力する選択回路1302と、選択回路1302がCPUから送られてくるデータを出力する状態にあるときに、選択回路1302から出力されたエラー検出データに基づいて、パリティビット生成部1301とパリティチェック部1401の少なくとも一方を含むエラー検出機能の故障診断を行うことを特徴としている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データのエラーを検出するエラー検出装置に関する。特に、複数の通信ネットワーク間でのデータの中継を行う車載ゲートウェイ装置に搭載されて好適なエラー検出装置に関する。
【背景技術】
【0002】
近年、車両には図24に示すようにエンジンECU、ドア制御ECU、エアバックECU、オーディオECU、ナビゲーションECUなど複数のECUが搭載されるようになってきている。これらのECUを車両に搭載された異なる通信方式及び異なる通信速度を有する複数のLAN間で通信させるには、その橋渡しをするゲートウェイ装置が必要である。特許文献1及び2には、このゲートウェイ装置のルーティング機能をソフトウェアによって実現した技術が開示されている。
【0003】
ゲートウェイ装置は、複数の異なるネットワーク間で授受されるデータの中継を行い、通信プロトコル変換、パケットフィルタリングなどのゲートウェイ機能を実現する。これにより、異なるネットワークに接続されたノード間で通信を行うことができる。
【0004】
このように複数の装置間をネットワークで接続し、通信によってデータを送受信するようになると、通信によるデータエラーが発生する可能性がある。また、メモリに格納したデータもビット化けなどによってエラーが発生する可能性がある。このため、データのチェック機能を備えた装置を搭載して、データの信頼性を高める工夫がなされているが、チェック機能そのものが正常に動作しているかどうかを検証する装置がなければ、データの信頼性は低下する。
【0005】
特許文献3では、メモリに入力するデータのうち、パリティジェネレータによって生成されたパリティビットをエラージェネレータによって反転させ、誤った情報をパリティ用メモリに記憶させる。リードサイクル時にこの情報をメモリデータと比較してパリティチェッカーからエラー信号が出るように構成している。
【0006】
【特許文献1】特開2003−244187号公報
【特許文献2】特開2003−264571号公報
【特許文献3】実開平5−83847号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献3に開示された発明は、パリティジェネレータの出力信号を、エラージェネレータによって反転させることで診断用の信号を生成しているので、パリティチェック装置の試験を行うときに、パリティジェネレータの故障と、エラージェネレータの故障とを区別することができないという問題がある。
【0008】
本発明は上記事情に鑑みてなされたものであり、エラー検出機能の詳細な故障診断を行うことができるエラー検出装置、エラー検出方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
かかる目的を達成するために本発明のエラー検出装置は、第1の装置から第2の装置に送られるデータ列に対するエラー検出データを生成するエラー検出データ生成手段と、前記エラー検出データ生成手段によって生成されたエラー検出データに基づいて、前記第2の装置から出力されるデータ列のエラーを検出するエラー検出手段と、前記データ列に対するエラー検出データとして、前記エラー検出データ生成手段からのデータと、診断用のデータを送信する診断データ送信手段から送られてくるデータとを切り替えて出力するデータ切替手段と、前記データ切替手段が前記診断データ送信手段から送られてくるデータを出力する状態にあるときに、前記データ切替手段から出力されたエラー検出データに基づいて、前記エラー検出データ生成手段と前記エラー検出手段の少なくとも一方を含むエラー検出機能の故障診断を行う故障診断手段と、を有する構成としている。
本発明は、エラー検出データ生成手段で生成されたエラー検出データと、診断データ送信手段から送られてくるデータとを用いて、データ切替手段と、エラー検出機能の詳細な故障診断を行うことができる。
【0010】
上記エラー検出装置において、前記データ切替手段が前記診断データ送信手段から送られてくる診断用のデータを出力する状態にあるときに、前記第2の装置に書き込んだ診断用のデータと、前記第2の装置から読み出した診断用のデータとが一致し、前記データ切替手段が前記エラー検出データ生成手段からのエラー検出データを出力する状態にあるときに、前記診断データ送信手段が出力した診断用のデータと、前記第2の装置から読み出したデータとが一致しなかった場合に、前記データ切替手段の動作を正常と判定する判定手段を有するとよい。
従って、データ切替手段の出力が一方に固着している等の故障を検出することができる。
【0011】
上記エラー検出装置において、前記判定手段は、前記データ切替手段が正常に動作していると判定した状態で、前記データ切替手段が前記診断用データ送信手段から送られてくる診断用のデータを出力する状態にあるときに、前記診断用のデータと、前記第2の装置から出力されるデータ列に対する前記エラー検出手段の検出結果とが一致しないときに、前記エラー検出手段の異常と判定するとよい。
従って、データ切替手段の動作を検証した後で、エラー検出機能の動作を検証するので、エラー検出機能の動作検証を精度よく行うことができる。
【0012】
上記エラー検出装置において、前記エラー検出データ生成手段の生成するエラー検出データは、前記データ列に対するパリティチェック用のデータであり、前記エラー検出手段は、前記第2の装置から出力されるデータ列に対して、パリティチェックを実行する手段であるとよい。
従って、データ列のエラー検出を簡単に行うことができる。
【0013】
上記エラー検出装置において、前記第1の装置は、複数の通信チャネル間でフレームデータの転送制御を行うゲートウェイ装置の制御手段と、前記フレームデータの転送制御を行う検索エンジン部との少なくとも一方であって、前記第2の装置は、データを記憶する記憶手段であるとよい。
【0014】
上記エラー検出装置において、前記データ列は、前記制御手段と前記検索エンジン部との少なくとも一方から出力される、ルーティング後のフレームデータと、前記フレームデータの転送制御に使用するルーティングデータとの少なくとも一つを含むとよい。
【0015】
本発明のエラー検出方法は、第1の装置から第2の装置に送られるデータ列に、エラー検出データ生成手段の生成するエラー検出データと、診断データ送信手段から送信された診断用のデータとのいずれか一方を付加するステップと、前記データ列に前記エラー検出データが付加されたときに、前記エラー検出データに基づいて、エラー検出手段で前記第2の装置から出力されるデータ列のエラーを検出するステップと、前記データ列に前記診断用のデータが付加された時に、前記診断用のデータに基づいて、前記エラー検出データ生成手段と前記エラー検出手段との少なくとも一方を含むエラー検出機能の故障診断を行うステップと、を有している。
【発明の効果】
【0016】
本発明によれば、エラー検出機能の詳細な故障診断を行うことができる。
【発明を実施するための最良の形態】
【0017】
添付図面を参照しながら本発明の最良の実施例を説明する。
【実施例1】
【0018】
まず、図1を参照しながら本実施例のエラー検出装置1000の構成について説明する。
CPU I/F部1100と、メモリ1200とをつなぐバス配線には、パリティビット生成部(本発明のエラー検出データ生成手段に該当する)1301と、選択回路(本発明のデータ切替手段に該当する)1302とを備えたパリティビット付加部1300が接続されている。
パリティビット生成部1301は、CPU(本発明の診断データ送信手段と故障診断手段とに該当する)からメモリ1200に書き込まれるデータ列にパリティ演算を行い、演算結果のパリティビットをデータ列に付加する。例えば、32ビットデータをメモリ1200に書き込む時には、31ビットからなるデータ列にパリティ演算を行い、演算結果のパリティビットをデータ列の最上位のビット(32ビット目)に付加する。
【0019】
選択回路1302は、データ列に付加するパリティビットを、パリティビット生成部1301の演算結果とするか、CPUから出力されるパリティビットとするかを選択する回路である。選択回路1302には、CPUから出力される強制発生許可信号が入力されている。選択回路1302は、この強制発生許可信号が入力されると、データ列に付加するパリティビットをパリティビット生成部1301の出力からCPUの出力に切り替える。CPUで、パリティ演算結果が正常又は異常となる診断データ(1ビット)を生成して、試験用のデータ列に付加する。診断データを付加されたデータ列が、メモリ1200に書き込まれると、CPUは書き込んだデータ列のアドレスと、このデータ列に付加した診断データの正誤情報とを関連付けて記憶する。
【0020】
またCPU I/F部1100と、メモリ1200とをつなぐバス配線には、パリティチェック部1401を備えたチェック部1400が設けられている。パリティチェク部(本発明のエラー検出手段に該当する)1401は、メモリ1200から読み出されるデータ列にパリティチェックを行い、パリティチェックの結果をCPUに出力する。
【0021】
CPUは、試験用のデータ列をメモリ1200に所定回書き込むと、書き込んだ試験用のデータ列をメモリ1200から読み出す。チェック部1400は、メモリ1200から読み出されたデータ列に対して、パリティチェック部1401でチェックを行う。チェック結果は、CPUに通知される。
CPUは、メモリ1200からデータ列を読み出すと、付加したパリティビットの正誤情報と、パリティチェック部1401によるパリティチェックの結果とからパリティチェック部1401の動作を検証する。
【0022】
図2に示すフローチャートを参照しながら本実施例の動作手順を説明する。
CPUは、パリティチェック部1401の診断を開始すると(ステップT1)、まず、強制発生許可信号をオンに設定する(ステップT2)。
強制発生許可信号をオンにすると、CPUは、試験用のデータの最上位ビット(パリティビット)に、パリティチェックの結果を正常又は異常にする診断データ(1ビット)を付加して、メモリ1200に書き込む(ステップT3)。また、CPUは、メモリ1200に書き込んだデータ列のアドレスと、このデータ列に付加した診断データの正誤情報とを保存する(ステップT4)。
【0023】
試験用のデータの書き込み回数が所定回数に達すると(ステップT5/YES)、CPUはメモリ1200から試験用のデータ列を読み出す。このときパリティチェック部1401は、読み出された試験用のデータに対してパリティチェックを実行する(ステップT6)。試験用のデータのパリティチェックの結果を取得すると、CPUは、パリティチェック結果と、保存していた診断データの正誤情報とからパリティチェック部1401が正常に動作しているか否かを判定する。
【0024】
また、選択回路1302の固着異常によってパリティチェックの結果に異常が生じている場合もある。
まず、選択回路1302がCPUからの信号を出力するように強制発生許可信号をオンにする。そして、診断用データとして「0」と「1」とを切り替えてメモリ1200に格納する。このとき、メモリ1200から読み出された診断用データと、CPUが出力した診断用のデータとを比較して、両データが一致しているかを判定する。両データが一致している場合には、次に強制発生許可信号をOFFにする。そして、CPUは、診断用データとして「0」と「1」とを切り替えて出力する。
このとき、メモリ1200から読み出したデータと、出力した診断用データとを比較して両データが一致しているか否かを判定する。両データが一致していないときに選択回路1302は固着異常を生じていないと判定することができる。
【0025】
上記手順で選択回路1302の固着異常を判定した後に、パリティチェック部1401の故障診断を行うことで、エラー検出の精度を高めることができる。
【実施例2】
【0026】
次に、上述したエラー検出装置1000を搭載した車載ゲートウェイ装置1の構成について説明する。
図3に示す車載ゲートウェイ装置1は、CPUバス16に、CPU2、FLASH ROM(Read Only Memory)3、UART4(Universal Asynchronous Receiver Transmitter)、割込み制御部6、DMAコントローラ7、CANインタフェース部8、複数のCAN(本実施例ではCAN_0,CAN_1,CAN_2,CAN_3の4つのCANを示すが、CANの数はこれに限定されるものではない)9、バスインタフェース部10などが接続されている。バスインタフェース部10には、検索エンジン部11、マップメモリ13、送信バッファ14、受信制御部15が接続されている。検索エンジン部11、送信バッファ14、受信制御部15は、バスインタフェース部10を介してCPUバス16にデータを入出力するデータ線で接続されている。また検索エンジン部11と送信バッファ14、検索エンジン部11と受信制御部15もデータ線で接続されている。また、受信制御部15は、CANインタフェース部8とデータ線で接続され、CANインタフェース部8から直接データを入力できるようになっている。また、図3にはデータ線以外に制御信号を送受信する制御線も示されている。CPU2は、この制御線に上記各機能部を制御する信号を出力する。またDMAコントローラ7と検索エンジン部11との間にも制御線が配線され、DMAコントローラ7は、CPU2の制御によらず検索エンジン部11からデータを読み出して転送先に転送する。なお、検索エンジン部11と、マップメモリ13と、送信バッファ14と、受信制御部15と、バスインタフェース部10と、CANインタフェース部8とを備える構成をゲートウェイハードマクロ部17と呼ぶ。
【0027】
ゲートウェイハードマクロ部17には、主として以下に示す機能が備えられている。第1に、フレームデータの受信時にCAN9が発生する割込み信号をトリガにして、CAN9のメッセージボックスからフレームデータを取り出す。第2に、受信したフレームデータのルーティングを行う。第3に、ルーティングエラーの検出やその他のエラーを検出する。この他に、ルーティング後のデータの送信機能などを設けても良い。
【0028】
FLASH ROM3には、CPU2がデータ伝送処理を含む各種処理の実行時に使用するデータ又はプログラムなどが記憶されている。CPU2は、図3に示す車載ゲートウェイ装置1の全体を制御すると共に、検索エンジン部11でルーティングされたフレームデータの送信処理を、プログラム制御によって行う。さらに、CPU2は、FLASH ROM3に格納されたプログラムに従って、受信したフレームデータの転送先を振り分けるルーティングを行う。
【0029】
UART4は、外部装置と接続し、外部装置から送られるパラレル信号をシリアル信号に変換したり、逆にシリアルデバイスから送られるシリアル信号をパラレル信号に変換したりする。
【0030】
割込み制御部6は、検索エンジン部11から出力される割込み信号のCPU2への出力を制御する。検索エンジン部11は、送信FIFO(第1蓄積部)21に予め設定された設定数のフレームが蓄積されたとき、送信FIFO21がオーバーフローしたとき、検索エンジン部11にルーティングエラーが生じたときに割込み信号をCPU2に出力する。DMAコントローラ7は、検索エンジン部11によるルーティングによって送信FIFO21に格納されたフレームデータをCPU2を介さずにDMA転送する。
【0031】
複数のCAN9(CAN_0,CAN_1,CAN_2,CAN_3)は、各通信チャネルごとに設けられ、CANバス(不図示)から受信したフレームデータを蓄積し、また検索エンジン部11やCPU2でルーティング後のフレームデータを蓄積する。ルーティング後のフレームデータは、メッセージボックスから読み出され、CANバスに出力される。またCAN9は、通信チャネルからフレームデータを受信すると、割り込み信号を検索エンジン部11に出力する。
【0032】
検索エンジン部11は、CAN9から出力された割り込み信号をトリガとして、CAN9のメッセージボックスからフレームデータを取り出し、CANインタフェース部8を介して受信制御部15で一旦格納する。その後、所定のタイミングクロックで受信制御部15からフレームデータを取り出し、ルーティング処理、データの中継先の情報検索などの処理を行う。また、ルーティング処理中に生じたエラーの検出機能も備えている。なお、マップメモリ13に格納されるルーティングマップの詳細については後述する。
【0033】
送信バッファ14には、検索エンジン部11でルーティングされたフレームデータが格納される。受信制御部15には、CAN9のメッセージボックスから読み出されたフレームデータが格納される。
【0034】
次に図4を参照しながらゲートウェイハードマクロ部17の構成について説明する。本実施例の車載ゲートウェイ装置1は、フレームデータのルーティングを、CPU2によるソフトウェア制御50と、ハードウェアとして設けたゲートウェイハードマクロ部17とで並行して行う。
ゲートウェイハードマクロ部17は、図4に示すように通信チャネルごとに設けられた振り分け部51及びレジスタ56と、セレクタ部52と、タイムスタンプ部61と、検索エンジン部11と、マップメモリ13と、送信FIFO21とを有している。なお、検索エンジン部11と、マップメモリ13との間には、上述したパリティビット付加部1300、チェック部1400が設けられている。これらについては後述する。
【0035】
振り分け部51は、図4に示すように各通信チャネルごとに設けられ、CAN9のメッセージボックス9からフレームデータを取り出して、フレームデータの出力先の振り分け処理を行う。振り分け部51は、フレームデータに設定された宛先情報を参照して、フレームデータの転送先を、ソフトウェア制御部50、セレクタ部52、ソフトウェア制御部50とセレクタ52の両方のいずれかに設定する。なお、ソフトウェア制御部50は、CPU2がプログラム制御によって動作することで実現する機能部である。
このようにチャネル単位や選択したフレーム単位でデータの出力先を振り分けることで、ソフトウェア制御部50による処理と、検索エンジン部11によるハード処理を並行して行うことができる。
また、優先的にソフトウェア制御部50に送るべきフレームデータを検索エンジン部11を介さずに転送することができるので、ソフトウェア制御部50での処理開始時間を早めることができる。
【0036】
レジスタ56には、ソフトウェア制御部50によって設定された設定情報が格納されている。設定情報には、少なくとも車載ゲートウェイ装置の動作設定情報と、振り分けるための設定情報とが含まれる。振り分け部51はこのレジスタ56に格納された設定情報に従ってフレームデータの振り分け動作を行う。この設定情報を参照して動作を行うのは振り分け部51だけであって、後段に設けられたセレクタ部52、検索エンジン部11、送信FIFO21は、設定情報により動作を停止したりすることがない。このため、ゲートウェイの設定変更、通信チャネルの変更等が動的に行われても、ゲートウェイハードマクロ部17内でフレームデータが消失するなどの問題を生じない。
【0037】
検索エンジン部11は、複数の通信チャネルで1つ設けられており、送信FIFO部21は通信チャネルごとに設けられている。このような構成を実現するため、セレクタ部52を検索エンジン部11の前段に設けている。セレクタ部52は、複数の通信チャネルからのフレームデータを入力し、検索エンジン部11に出力するフレームデータを選択する。また。セレクタ部52は、選択したフレームデータを検索エンジン部11に出力するタイミングを制御している。複数の通信チャネルから同時にフレームデータが出力されても、セレクタ部52が優先順位や到着順によってフレームデータを選択し、検索エンジン部11に出力するタイミングを制御する。これにより、検索エンジン部11を複数の通信チャネルで共有することが可能となる。
【0038】
図5を参照しながら振り分け部51の詳細な構成を説明する。振り分け部51は、第1宛先振り分け部59と、第2宛先振り分け部60とを有している。
フレームデータは、CAN9のメッセージ振り分け部58によって、データのIDに応じて振り分けられ、メッセージボックス(0、1、2、3・・・・)に登録される。第1宛先振り分け部59は、メッセージ振り分け部58で振り分けられた場所(メッセージボックス0、1、2、3・・・・)に対しフレームデータの宛先をソフトウェア制御部50や検索エンジン部11に設定したり、ソフトウェア制御部50と検索エンジン部11の両方に設定する同報送信の設定を行う。また、ここで廃棄されるフレームデータもある。第2宛先振り分け部60は、検索エンジン部11の処理状況に応じて、検索エンジン部11宛てであったフレームデータを強制的にソフトウェア制御部50に変更したり、フレームデータを廃棄する設定を行う。
【0039】
図6を参照しながらタイムスタンプ部61の構成について説明する。
タイムスタンプ部61は、セレクタ部52に入力されるフレームデータにタイムスタンプを付加する。タイムスタンプ部61は、図6に示すように分周回路611と、フリーランカウンタ612とを備えている。
分周回路611には、CPU2から出力される機能イネーブル信号および分周比設定信号と、クロック信号とが入力される。分周回路611は、機能イネーブル信号がイネーブルになると、分周比設定信号の設定に従ってクロック信号を分周したものを基準に作るカウンタイネーブル信号をフリーランカウンタ612に出力する。
フリーランカウンタ612は、クロック信号と、分周回路611から出力されるカウンタイネーブル信号と、CPU2からの機能イネーブル信号とを入力する。フリーランカウンタ612は、機能イネーブル信号がイネーブルになると、分周回路611から出力されるカウンタイネーブル信号をカウントして、タイムスタンプを出力する。
例えば、クロックが16MHzで、フリーランカウンタが16ビットの場合、分周設定が1/128では、計測できる最小時間は8[μs]、計測できる最大時間は、0.524[s]となる。また、分周設定が1/16384では、計測できる最小時間は1.024[ms]、計測できる最大時間は、67.1[s]となる。
【0040】
図7に示すフローチャートを参照しながら、CPU2によるタイムスタンプ部61の初期設定手順について説明する。
CPU2は、初期動作時にタイムスタンプ部61に対し、計測すべき範囲と分解能に応じた分周比を設定する(ステップS1)、その後、機能イネーブル信号をイネーブルに設定して、タイムスタンプ部61を動作させる(ステップS2)。
【0041】
次に、図8を参照しながらセレクタ部52の構成について説明する。セレクタ部52は、通信チャネルごとに設けられたレジスタ521、522、523、524と、選択論理部525と、セレクタ526とを有している。
レジスタ521、522、523、524には各チャネルからのフレームデータと、各レジスタ521、522、523、524にフレームデータが入力されるタイミングを通知するタイミング通知信号と、タイムスタンプ部で発行されたタイムスタンプとが入力される。タイムスタンプ部61で発行されたタイムスタンプは、レジスタ521、522、523、524においてフレームデータに付加される。
【0042】
各レジスタ521、522、523、524から選択論理部525には、レジスタ521、522、523、524に有効なフレームデータが保持されているか否かを示すステータス信号が出力される。また、各レジスタ521、522、523、524は、タイムスタンプが付加されたフレームデータを所定タイミングでセレクタ526に出力する。選択論理部525は、各レジスタ521、522、523、524からのステータス信号をもとに、出力するフレームデータを選択する選択指示信号をセレクタ526に出力する。セレクタ526は、選択論理部525からの選択指示信号に従って、フレームデータを選択した後に後段の検索エンジン部11に出力する。
【0043】
次に、図9を参照しながら検索エンジン部11の詳細な構成について説明する。検索エンジン部11は、状態制御部70、エントリ識別部71、番号加算部72、番号減算部73、下限用セレクタ74、上限用セレクタ75、加算部76、除算・保持部77、メモリに構成されたテーブル78、一致比較部79、エントリチェック部80を備えている。
【0044】
状態制御部70は、セレクタ部52のフレーム出力信号を入力して、図9に示す各機能部を制御する。また、エントリ識別部71から入力される検索回数値に従って、テーブル78の検索を設定された回数だけ行うように制御する。
【0045】
エントリ識別部71の構成を図10に示す。エントリ識別部71は、第1変換テーブル92と、第2変換テーブル93を備えている。なお、第1変換テーブル92に入力される有効エントリ数設定値とは、宛先検索時に参照するルーティングマップに登録を行ったエントリ数を示している。
【0046】
第1変換テーブル92は、有効エントリ数設定値からメモリ78の検索回数を設定した検索回数値を算出する。例えば、チャネルのエントリ数が256エントリ(ノード)であった場合、2の8乗であるので検索回数は+1して9回となる。
【0047】
第2変換テーブル93は、有効エントリ数設定値を入力して、上限のエントリ番号と、下限のエントリ番号とを出力する。下限エントリ番号は、登録されたノードのID番号のうち最も値の小さい番号(0)であり、同様に上限エントリ番号は、そのチャネルに登録されたノードのID番号のうち最も値の大きな番号(有効エントリ数設定値)を示す。下限エントリ番号は下限用セレクタ74に出力され、上限エントリ番号は上限用セレクタ75に出力される。また、検索回数値は、状態制御部70に出力される。
【0048】
下限用セレクタ74には、エントリ識別部71から下限エントリ番号が入力される。下限用セレクタ74は、状態制御部70の制御に従って、前記下限エントリ番号、前回のエントリ番号、除算・保持部77の出力に+1したエントリ番号のいずれかを選択出力する。
同様に上限用セレクタ75には、エントリ識別部71から上限エントリ番号が入力される。上限用セレクタ75は、状態制御部70の制御に従って、前記上限エントリ番号、前回のエントリ番号、除算・保持部77の出力に−1したエントリ番号のいずれかを選択出力する。
【0049】
加算部76は、上限用セレクタ74のエントリ番号と、下限用セレクタ75のエントリ番号とを加算する。除算・保持部77は、加算部76の加算値を2で除算し、除算結果を保持する。
【0050】
ここで、図11を参照しながら本実施例の検索方法を説明する。本実施例では2分木検索を用いている。図11は2分木検索の方法を概念的に示している。検索対象のチャネルが使用するメモリの下限設定値をN、上限設定値Mとする。また、説明を簡単にするため有効エントリ数設定値を上限設定値とし、下限設定値を0とする。
2分木検索では、まず上限設定値と下限設定値の中間の値が演算される。すなわち、(N+M)÷2(=C1とする)が演算され、このアドレスのエントリデータと、受信データのIDとの比較が行われる。ここで例えば、受信データのIDがエントリデータよりも小さい値であった場合には、対象のエントリデータがメモリアドレスの高いほうに登録されていることになる。そのため、下限用セレクタ74では、除算・保持部77の保持している前回の値C1に+1した値が選択される。また上限用セレクタ75では前回の値Mがそのまま選択される。これらの制御は、状態制御部70によって行われる。加算部76でこれらの値が加算され、除算・保持部77で2で除算することで(C1+1+M)÷2がC2として演算される。このようにして求めたエントリデータと、受信IDとの大小比較によって次のアドレスが順次生成され、受信データのIDと一致するエントリデータをメモリ78から検索する。
【0051】
エントリチェック部80は、テーブル78から読み出したエントリデータが正常なデータであるか否かを判定する。判定結果は状態制御部70に出力する。
一致比較部79は、テーブル78から読み出したエントリデータと、受信したデータのIDとを比較する。図12に一致比較部79の構成を示す。図12に示すように一致比較部79は、論理演算部95と、一致比較演算部96とを備えている。論理演算部95は、受信データのIDに図13に示すようにマスクを重ね合わせ、検索範囲を絞り込む。一致比較部79は、マスクを重ね合わせたID番号と、読み出したエントリデータとを比較して、両者が一致しているか否かを判定する。
【0052】
例えば、図14(A)に示すようにゲートウェイ装置に接続する4つのCANバスA,B,C,Dのノードに、ランダムなID番号(図に示す数値がID番号を表している)が付加されていると、図14(A)に示す例では、最大12回比較を行って、IDの一致を検出しなければならない。これに対して、図14(B)に示すように同一バス上のノードに対して、上位数ビットを同じ値に設定しておくことで、4回の比較でどのチャネルからのデータであるのかを判定することができる。
【0053】
次に、図15に示すフローチャートを参照しながら検索エンジン部11の処理手順を説明する。
検索を開始すると、状態制御部70は検索回数をまず0にセットする(ステップS11)。この処理と同期してエントリ識別部71において、エントリ数に応じた検索回数値をセットする(ステップS12)。検索回数値は、エントリ識別部71から状態制御部70に通知される。
【0054】
次に、状態制御部70は、検索回数とエントリ識別部71から通知された検索回数値とを比較して(ステップS13)、検索回数が検索回数値に満たない場合には(ステップS13/YES)、初期値もしくは前回の大小比較情報を基にメモリのポインタアドレスを生成する(ステップS14)。下限用セレクタ74には、エントリ識別部71から下限エントリ番号が入力される。同様に上限用セレクタ75には、エントリ識別部71から上限エントリ番号が入力される。加算器76は、下限エントリ番号と上限エントリ番号とを加算する。除算・保持部77は、加算された値を2で除算して保持する。この値がポインタのアドレスとなる。
【0055】
ポインタのアドレスが生成されると、このポインタアドレスが示すエントリデータがメモリ78から読み出される(ステップS15)。次に、読み出されたエントリデータは、エントリチェック部80に入力され、データが正常であるか否かが判定される(ステップS16)。正常な値ではなかった場合には(ステップS16/NO)、システムエラーとして処理される(ステップS21)。また、エントリデータが正常であった場合には(ステップS16/YES)、受信データのIDと、エントリデータとが一致するか否かが一致比較部79で判定される(ステップS17)。両者が一致しなかった場合には(ステップS17/NO)、検索回数が1イクリメントされると共に、一致比較部79の大小比較結果が状態制御部70に出力され(ステップS18)、ステップS13からの処理を繰り返す。状態制御部70は、大小比較結果に応じて下限用セレクタ74、上限用セレクタ73を制御し、前回の比較結果に応じたポインタアドレスが生成される。また、両者が一致した場合には(ステップS17/YES)、一致したエントリデータの宛先情報がチェックされて(ステップS19)、正常であると送信FIFO21に書き込まれる(ステップS20)。また、宛先情報が正常ではない場合には(ステップS19/NO)、システムエラーとして処理されるか(ステップ21)、フレームデータを廃棄する(ステップS22)。さらに、状態制御部70は、検索回数が検索回数値よりも大きくなると(ステップS13/YES)、受信したフレームデータは廃棄される(ステップS22)。
【0056】
また、状態制御部70は、フレームデータを受信していないアイドルの時に、マップ情報の正常性確認動作を行ってもよい。この処理について図16に示すフローチャートを参照しながら説明する。
状態制御部70は、フレームデータを受信していないアイドル時に(ステップS31)、自立チェックを実行する(ステップS44)。まず、状態制御部70は、ポインタのアドレスを生成し(ステップS45)、該当するアドレスに格納されたエントリデータを検索して取り出す(ステップS46)。そして、取り出したエントリデータの正常性を判定する(ステップS47)。検索したエントリデータが正常であると判定すると(ステップS47/YES)、処理を終了する。またエラーを検出すると(ステップS47/NO)、システムエラーとして処理する(ステップS48)。
【0057】
図17には、送信FIFO21と、フレームデータの処理遅延時間に応じて、フレームデータを廃棄する構成とを示している。
図17に示すように送信FIFO21は、タイムスタンプを格納するタイムスタンプ用FIFO210と、フレームデータを格納するデータ用FIFO211とを備えている。また、処理遅延時間に応じてデータを廃棄するデータ廃棄部300には、比較部301と、Valid部302とを有している。
【0058】
検索エンジン部11から出力されるタイムスタンプ付きのフレームデータは、分離部220によってタイムスタンプと、それ以外の領域とに分離され、タイムスタンプ用FIFO(以下、TS用FIFOと略記する)210、データ用FIFO211にそれぞれ保持される。分離部220は、フレームデータの所定位置に挿入されたタイムスタンプを取り出して、TS用FIFO210に出力する。
また、Valid部302には、タイムスタンプ用FIFO210、データ用FIFO211に保持されたデータが有効であることを示すValidデータ(有効なデータには「1」が記録されている)が記録される。
【0059】
比較部301には、タイムスタンプと、タイムアウト設定情報とが入力される。タイムスタンプは、タイムスタンプ部61で発行される現在の時刻を示す情報である。また、タイムアウト設定情報は、CPU2によって設定される情報であって、ゲートウェイハードマクロ部17に入力したフレームデータが、ゲートウェイハードマクロ部17から出力されるまでにかかる時間の遅延許容時間の設定である。
【0060】
Valid部302と、タイムスタンプ用FIFO210と、データ用FIFO211とは、それぞれ同一構成のFIFOで構成されている。
従って、データ用FIFO211に書き込まれたフレームデータのタイムスタンプ情報が、タイムスタンプ用FIFO210の同一領域に書き込まれている。同様に、フレームデータが有効なデータであるのか無効なデータであるのかを示すValidデータが、Valid部302の同一領域に書き込まれている。
比較部301は、Valid部302に有効であることを示すデータが記録された領域のタイムスタンプをTS用FIFO210から読み込んで、タイムスタンプ部61から出力される現在の時刻を示すタイムスタンプ情報と比較する。TS用FIFO210に格納されたタイムスタンプの時刻と、現在の時刻との差がCPU2から通知されたタイムアウト設定情報を超えている場合、比較部301は、Valid部302のValidデータを無効なデータ(0を記録する)に変更する。Validデータが無効なデータに変更されると、メッセージカウンタ303の値が1減算される。
CPU2は、所定タイミングごとにメッセージカウンタ303の値を読み出す。メッセージカウンタ303の値が所定値となると、データ用FIFO211からフレームデータを読み出す。このとき、Valid部302に無効を示すデータが記録されているフレームデータは、読み出されずに廃棄される。
【0061】
なお、TS用FIFO210に格納されたタイムスタンプの時刻と、現在の時刻との差がCPU2から通知されたタイムアウト設定情報を超えると、比較部301で割り込み信号をCPU2に出力するようにしてもよい(このときの構成を図18に示す)。CPU2は割り込み信号を入力すると、データ用FIFO211に格納されたフレームデータを優先的に読み出す。
【0062】
図17、18には、ゲートウェイハードマクロ部17内での滞留時間がタイムアウト時間を超えたフレームデータをハードウェアによって廃棄する場合の構成を示したが、この他に、CPU2によるソフト制御によって、滞留時間がタイムアウト時間を超えたフレームデータをソフトウェアによって廃棄することもできる。
図19に示すフローチャートを参照しながら、滞留時間がタイムアウト時間を超えたフレームデータをCPU2で廃棄する手順を説明する。
CPU2は、所定時間ごとにメッセージカウンタ303を参照して、送信FIFO21に処理データが格納されているかを判定する(ステップS51)。送信FIFO21に処理データが格納されている場合には(ステップS51/YES)、この処理データを送信FIFO21から読み出すと共に(ステップS52)、タイムスタンプ部61から現在時刻を表すタイムスタンプ情報を読み出す(ステップS53)。
CPU2は、送信FIFO21から読み出したフレームデータに付加されたタイムスタンプ情報と、タイムスタンプ部から読み出した現在時刻情報とを比較する(ステップS54)。
タイムスタンプの時刻と、現在の時刻との差が第1基準値βよりも大きいと(ステップS55/YES)、このフレームデータを廃棄する(ステップS56)。また、タイムスタンプの時刻と、現在の時刻との差が第1基準値βよりも小さく、第2基準値αよりも大きい場合には(ステップS57/YES)、このフレームデータの処理に遅延が生じていると判定し、このフレームデータを優先的に処理する(ステップS58)。なお、第1基準値βは、第2基準値αよりも大きな値に設定されている。
さらに、タイムスタンプの時刻と、現在の時刻との差が第2基準値αよりも小さいには(ステップS57/NO)、フレームデータの処理に遅延が生じていないと判定し、通常の処理を行う(ステップS59)。
【0063】
図20には、ゲートウェイハードマクロ部17を転送されるフレームデータの構成を示す。図20(A)は、セレクタ部52に入力されるフレームデータの構成を示す。図20(B)は、セレクタ部52から検索エンジン部11に出力されるタイムスタンプ付きのフレームデータの構成を示す。図20(C)には、送信FIFO21に書き込まれるタイムスタンプ付きののフレームデータの構成を示す。図20(D)には、CPU2が送信FIFOから読み込むフレームデータの構成を示す。なお、図20中に示す「*」は複数ビットからなることを示す。
【0064】
なお、フレームデータに付加するタイムスタンプ情報を、検索エンジン部11で有効なフレームデータであると判定されたデータに対してだけ付加することもできる。この場合の構成を図21に示す。ゲートウェイハードマクロ部17内での滞留時間の計測という観点からは、図4に示す構成が厳密な滞留時間を計測することができるが、図21に示す構成では、ハードウェアの規模を小さくすることができる。
また、フレームデータの廃棄は、ソフトウェアによる廃棄がメインで、ハードウェアで廃棄する場合には図18に示す構成となる。
【0065】
さらに、本実施例は、図22に示すようにソフトウェア制御部50と、マップメモリ13との間に、上述した実施例1のパリティビット付加部1300、チェック部1400を設けている。これらパリティビット付加部1300、チェック部1400を設けて、ソフトウェア制御部50からマップメモリ13に書き込まれるデータ(例えば、ルーティングマップのデータ)のパリティビット付加をパリティビット付加部1300で行い、マップメモリ13からソフトウェア制御部50が読み出すデータのパリティチェックをパリティチェック部1401で行っている。また、選択回路1302、パリティチェック部1401のエラー判定は、上述した実施例1と同様の手順で行われる。なお、マップメモリ13から読み出されたフレームデータと、パリティチェック部1401のチェック結果は、検索エンジン部11にも出力される。
【0066】
また、図23に示すように検索エンジン部11と、送信FIFO21との間に、パリティビット付加部1300、チェック部1400を設けてもよい。これらパリティビット付加部1300、チェック部1400を設けて、検索エンジン部11から送信FIFO21に書き込まれるフレームデータのパリティチェックをパリティチェック部1401で行う。パリティチェック部1401及び送信FIFO21から読み出されたフレームデータは、ソフトウェア制御部50に出力される。
なお、図23では、パリティのチェックをソフトウェア制御部50でを行っているが、検索エンジン部11でパリティのチェックを行う構成であってもよい。
【0067】
上述した実施例は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【図面の簡単な説明】
【0068】
【図1】エラー検出装置の構成を示す図である。
【図2】エラー検出装置の処理手順を示すフローチャートである。
【図3】車載ゲートウェイ制御装置1の構成を示すブロック図である。
【図4】ゲートウェイハードマクロ部の構成を示す図である。
【図5】振り分け部の構成を示すブロック図である。
【図6】タイムスタンプ部の構成を示すブロック図である。
【図7】タイムスタンプ部の初期設定時のCPUの処理手順を示すフローチャートである。
【図8】セレクタ部の構成を示すブロック図である。
【図9】検索エンジン部の構成を示すブロック図である。
【図10】エントリ識別部の構成を示す図である。
【図11】2分木検索を説明するための図である。
【図12】一致比較部の構成を示す図である。
【図13】マスク処理を説明するための図である。
【図14】マスク処理を説明するための図である。
【図15】検索エンジン部の処理手順を示すフローチャートである。
【図16】検索エンジン部の処理手順、特に自立チェックの手順を示すフローチャートである。
【図17】送信FIFOと、無効なフレームデータを破棄するデータ破棄部の構成を示す図である。
【図18】送信FIFOと、無効なフレームデータを破棄するデータ破棄部の他の構成を示す図である。
【図19】CPUにより無効なフレームデータを破棄する手順を示すフローチャートである。
【図20】ゲートウェイハードマクロ部内で処理されるフレームデータの構成を示す図である。
【図21】ゲートウェイハードマクロ部の他の構成を示す図である。
【図22】車載ゲートウェイ装置に搭載されたエラー検出装置の構成を示す図である。
【図23】車載ゲートウェイ装置に搭載されたエラー検出装置の構成を示す図である。
【図24】複数のECUと車載ゲートウェイ装置との接続構成を示す図である。
【符号の説明】
【0069】
1 車載ゲートウェイ装置
2 CPU
3 FLASH ROM
4 UART
5 フリーランタイマ
6 割込み制御部
7 DMAコントローラ
8 CANインタフェース部
9 CAN
10 バスインタフェース部
11 検索エンジン部
13 マップメモリ
14 送信バッファ
15 受信バッファ
16 CPUバス
17 ゲートウェイハードマクロ部
21 送信FIFO
51 振り分け部
52 セレクタ部
53 並列バッファ
54 調停部
55 フォーマット変換部
56 レジスタ
61 タイムスタンプ部
70 状態制御部
71 エントリ識別部
79 一致比較部
80 エントリチェック部
91 選択部
92 第1変換部
93 第2変換部
95 論理演算部
96 一致比較演算部
210 TS用FIFO
211 データ用FIFO
300 データ破棄部
301 比較部
302 Valid部
303 メッセージカウンタ
521、522、523、524 レジスタ
525 選択論理部
526 セレクタ
611 分周回路
612 フリーランカウンタ
1100 CPU I/F
1200 メモリ
1300 パリティビット付加部
1301 パリティビット生成部
1302 選択回路
1400 チェック部
1401 パリティチェック部

【特許請求の範囲】
【請求項1】
第1の装置から第2の装置に送られるデータ列に対するエラー検出データを生成するエラー検出データ生成手段と、
前記エラー検出データ生成手段によって生成されたエラー検出データに基づいて、前記第2の装置から出力されるデータ列のエラーを検出するエラー検出手段と、
前記データ列に対するエラー検出データとして、前記エラー検出データ生成手段からのデータと、診断用のデータを送信する診断データ送信手段から送られてくるデータとを切り替えて出力するデータ切替手段と、
前記データ切替手段が前記診断データ送信手段から送られてくるデータを出力する状態にあるときに、前記データ切替手段から出力されたエラー検出データに基づいて、前記エラー検出データ生成手段と前記エラー検出手段の少なくとも一方を含むエラー検出機能の故障診断を行う故障診断手段と、を有することを特徴とするエラー検出装置。
【請求項2】
前記データ切替手段が前記診断データ送信手段から送られてくる診断用のデータを出力する状態にあるときに、前記第2の装置に書き込んだ診断用のデータと、前記第2の装置から読み出した診断用のデータとが一致し、
前記データ切替手段が前記エラー検出データ生成手段からのエラー検出データを出力する状態にあるときに、前記診断データ送信手段が出力した診断用のデータと、前記第2の装置から読み出したデータとが一致しなかった場合に、前記データ切替手段の動作を正常と判定する判定手段を有することを特徴とする請求項1記載のエラー検出装置。
【請求項3】
前記判定手段は、前記データ切替手段が正常に動作していると判定した状態で、前記データ切替手段が前記診断用データ送信手段から送られてくる診断用のデータを出力する状態にあるときに、前記診断用のデータと、前記第2の装置から出力されるデータ列に対する前記エラー検出手段の検出結果とが一致しないときに、前記エラー検出手段の異常と判定することを特徴とする請求項2記載のエラー検出装置。
【請求項4】
前記エラー検出データ生成手段の生成するエラー検出データは、前記データ列に対するパリティチェック用のデータであり、
前記エラー検出手段は、前記第2の装置から出力されるデータ列に対して、パリティチェックを実行する手段であることを特徴とする請求項1から3のいずれか一項記載のエラー検出装置。
【請求項5】
前記第1の装置は、複数の通信チャネル間でフレームデータの転送制御を行うゲートウェイ装置の制御手段と、前記フレームデータの転送制御を行う検索エンジン部との少なくとも一方であって、前記第2の装置は、データを記憶する記憶手段であることを特徴とする請求項1から4のいずれか一項記載のエラー検出装置。
【請求項6】
前記データ列は、前記制御手段と前記検索エンジン部との少なくとも一方から出力される、ルーティング後のフレームデータと、前記フレームデータの転送制御に使用するルーティングデータとの少なくとも一つを含むことを特徴とする請求項5記載のエラー検出装置。
【請求項7】
第1の装置から第2の装置に送られるデータ列に、エラー検出データ生成手段の生成するエラー検出データと、診断データ送信手段から送信された診断用のデータとのいずれか一方を付加するステップと、
前記データ列に前記エラー検出データが付加されたときに、前記エラー検出データに基づいて、エラー検出手段で前記第2の装置から出力されるデータ列のエラーを検出するステップと、
前記データ列に前記診断用のデータが付加された時に、前記診断用のデータに基づいて、前記エラー検出データ生成手段と前記エラー検出手段との少なくとも一方を含むエラー検出機能の故障診断を行うステップと、
を有することを特徴とするエラー検出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2008−112224(P2008−112224A)
【公開日】平成20年5月15日(2008.5.15)
【国際特許分類】
【出願番号】特願2006−293371(P2006−293371)
【出願日】平成18年10月27日(2006.10.27)
【出願人】(000237592)富士通テン株式会社 (3,383)
【出願人】(000005223)富士通株式会社 (25,993)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】