(57)【特許請求の範囲】
【請求項１】
同一処理を同期して行う２個のＣＰＵそれぞれのデータバス上のデータを照合する装置であって、一方のデータを遅延させる遅延回路と、遅延後の一方のデータと他方のデータとの排他的論理和を演算する論理回路とを含み、一方のデータと他方のデータとの一致状態では交番信号を出力し、不一致状態では交番信号を停止状態に保持する照合回路を備え、データバス上のデータと、該データのビットの並び順を逆転させたデータとを連続して照合する、データ照合装置。
【請求項２】
前記データバス上のデータと、該データについてビットの並び順を逆転させかつ各ビットの値を反転させたデータとを連続して前記照合回路で照合させる、請求項１記載のデータ照合装置。
【請求項３】
前記データバス上のパラレルデータをシリアルデータに変換する変換回路を前記各データバスにそれぞれ備え、
前記データバス上のパラレルデータを前記変換回路に入力させると共に、前記データバス上のパラレルデータの各ビットの値を、それぞれ反転回路を介して前記変換回路に入力させ、前記変換回路から、前記データバス上のパラレルデータにおけるビットの並び順のシリアルデータと、前記データバス上のパラレルデータにおけるビットの並び順を逆転させかつ各ビットの値が反転させたシリアルデータとを連続して前記照合回路に出力する、請求項２記載のデータ照合装置。
【請求項４】
前記照合回路が、
前記一方のデータに遅延処理を施す第１遅延回路と、
前記第１遅延回路の出力信号と前記他方のデータとを入力し、排他的論理和演算を行う第１論理回路と、
前記第１論理回路の出力信号をクロック信号として出力信号を遷移させる第１フリップフロップ回路と、
前記第１フリップフロップ回路の出力信号に遅延処理を施す第２遅延回路と、
前記第２遅延回路の出力信号と前記第１フリップフロップ回路の出力信号とを入力し、排他的論理和演算を行う第２論理回路と、
前記他方のデータを入力信号とし、前記第２論理回路の出力信号をクロック信号として出力信号を遷移させ、出力信号が前記第１フリップフロップ回路の入力信号として出力される第２フリップフロップ回路と、
を含んで構成され、
前記第２フリップフロップ回路の出力を、一致状態で交番信号となる信号として外部に出力する、請求項１から３のいずれか１つに記載のデータ照合装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同一の処理を同期して行う２個のＣＰＵそれぞれのデータバス上におけるデータの一致・不一致を照合するデータ照合装置に関する。
【背景技術】
【０００２】
従来、この種のデータ照合装置に用いられる照合回路として、例えば特許文献１に記載されるような回路があった。この照合回路は、一方のデータに遅延処理を施し、該遅延処理後の一方のデータと他方のデータとの排他的論理和出力に基づき、前記一方のデータと他方のデータとの一致状態では前記両データに対応する交番信号を出力し、不一致が発生した後は前記交番信号を停止状態に保持させる回路である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−１２００４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記のように、遅延させた一方のデータと他方のデータとの排他的論理和出力に基づいて、照合データに対応する交番信号の出力・停止を制御する場合、データの不一致と前記遅延処理によるデータの遅延とが区別できないようなエラーパターンでは、実際にはデータの不一致が発生したのに交番信号の出力を停止させることができなくなる場合がある。
【０００５】
そのため、従来では、遅延処理の対象とするデータを相互に異ならせた２組の照合回路を併設し、これら２組の照合回路の照合結果を突き合わせて、最終的な照合判断を下すようにすることで、前述のエラーパターンにおいても、データの不一致を検出することができるようにしていた。
【０００６】
しかし、上記のように、２組の照合回路を備える場合、論理演算回路やフリップフロップ回路などの照合回路を構成するロジックＩＣの数が多くなり、また、ロジックＩＣの数が多いことで消費電流が大きくなってしまうという問題があった。
【０００７】
本発明は上記問題点に着目してなされたものであり、１個の照合回路で、種々のエラーパターンを漏れなく検出できるようにし、これにより、ロジックＩＣの数が少なくかつ消費電流の少ないデータ照合装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
このため、請求項１に係る発明は、同一の処理を同期して行う２個のＣＰＵそれぞれのデータバス上のデータを照合する装置であって、一方のデータを遅延させる遅延回路と、遅延後の一方のデータと他方のデータとの排他的論理和を演算する論理回路とを含み、一方のデータと他方のデータとの一致状態では交番信号を出力し、不一致状態では交番信号を停止状態に保持する照合回路を備え、データバス上のデータと、該データのビットの並び順を逆転させたデータとを連続して照合する構成とした。
【０００９】
かかる構成では、各データバス上のデータをそのまま照合させると共に、データバス上のデータのビットの並び順を逆転させたデータの照合も連続して行わせることにより、例えば、データバス上のデータにおいて、遅延処理によるデータの遅延方向と、不一致によるビットデータのずれ方向とが一致して不一致の検出が行えない場合であっても、並び順を逆転させたデータにおいては、遅延処理によるデータの遅延方向と、不一致によるビットデータのずれ方向とが異なるようになり、不一致を検出することができるようになる。
【００１０】
請求項１の構成において、請求項２のように、データバス上のデータと、該データについてビットの並び順を逆転させかつ各ビットの値を反転させたデータとを連続して前記照合回路で照合させる構成とするとよい。
【００１１】
この場合、例えば、データバス上のデータの並び順における最後のビットに続いて、該ビットの値を反転させた値が並べられ、ここでデータの反転が発生するから、データバス上のデータの全ビットの値が０又は１であっても、交番信号を発生させることができる。
【００１２】
具体的には、請求項３のように、前記データバス上のパラレルデータをシリアルデータに変換する変換回路を前記各データバスにそれぞれ備え、前記データバス上のパラレルデータを前記変換回路に入力させると共に、前記データバス上のパラレルデータの各ビットの値を、それぞれ反転回路を介して前記変換回路に入力させ、前記変換回路から、前記データバス上のパラレルデータにおけるビットの並び順のシリアルデータと、前記データバス上のパラレルデータにおけるビットの並び順を逆転させかつ各ビットの値が反転させたシリアルデータとを連続して前記照合回路に出力させるとよい。
【００１３】
請求項１〜３のいずれか１つの構成において、請求項４のように、前記照合回路が、前記一方のデータに遅延処理を施す第１遅延回路と、前記第１遅延回路の出力信号と前記他方のデータとを入力し、排他的論理和演算を行う第１論理回路と、前記第１論理回路の出力信号をクロック信号として出力信号を遷移させる第１フリップフロップ回路と、前記第１フリップフロップ回路の出力信号に遅延処理を施す第２遅延回路と、前記第２遅延回路の出力信号と前記第１フリップフロップ回路の出力信号とを入力し、排他的論理和演算を行う第２論理回路と、前記他方のデータを入力信号とし、前記第２論理回路の出力信号をクロック信号として出力信号を遷移させ、出力信号が前記第１フリップフロップ回路の入力信号として出力される第２フリップフロップ回路と、を含んで構成され、前記第２フリップフロップ回路の出力を、一致状態で交番信号となる信号として外部に出力する構成とすることができる。
【発明の効果】
【００１４】
かかるデータ照合装置によれば、遅延対象とするデータが一方に限定される１個の照合回路で、種々のエラーパターンを漏れなく検出でき、これにより、データ照合装置を構成するロジックＩＣの数を少なくでき、また、消費電流を少なくできる。
【図面の簡単な説明】
【００１５】
【図１】本発明に係るデータ照合装置の一実施形態を示す回路図
【図２】同上実施形態のデータ照合装置の動作の例を示すタイムチャート
【図３】同上実施形態のデータ照合装置の動作の別の例を示すタイムチャート
【図４】同上実施形態の反転回路を除いたデータ照合装置での動作の例を示すタイムチャート
【図５】同上実施形態のデータ照合装置の動作の更に別の例を示すタイムチャート
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態を図面に基づいて説明する。
図１は、本願発明に係るデータ照合装置を含むバス同期システムの回路図であり、このバス同期システムは、例えば鉄道信号保安装置などに適用される。
【００１７】
図１において、第１ＣＰＵ１１及び第２ＣＰＵ１２は、それぞれデータバス１１ａ，１２ａを介して図外のメモリやＩ／Ｏコントローラなどとの間でのデータの送信・受信を行いながら、同一の処理を同期して行う。
【００１８】
前記データバス１１ａ，１２ａ上のデータの一致・不一致を照合するデータ照合装置は、照合回路１３及びパラレル・シリアル変換回路１４，１５によって構成され、照合回路１３は、照合データの一致状態では、前記照合データに応じた交番信号を出力し、照合データの不一致が発生した後は前記交番信号を停止状態に保持させる。
【００１９】
前記照合回路１３から出力される交番信号は、例えば、トランスを介してリレーに出力され、データが不一致になって交番信号が停止状態に保持されると、前記リレーがオフ（接点が開いている状態）にされることで、前記バス同期システムの制御対象への電源供給が遮断されてフェイルセーフが実行される。
【００２０】
前記データバス１１ａ，１２ａ上のデータ（本実施形態では４ビットのパラレルデータ）は、パラレル・シリアル変換回路１４，１５によってシリアルデータに変換された後、照合回路１３に入力される。
【００２１】
前記パラレル・シリアル変換回路１４，１５には、データバス１１ａ，１２ａ上の４ビットのパラレルデータが入力されると共に、データバス１１ａ，１２ａ上の４ビットのパラレルデータを、各ビット毎に反転回路（否定回路）１６によって反転し、かつ、ビットの並び順を逆転させたデータが入力され、計８ビットのパラレルデータをシリアルデータに変換する。
【００２２】
そして、前記パラレル・シリアル変換回路１４，１５では、データバス１１ａ，１２ａ上の４ビットのパラレルデータを、ビットの並び順に従った順のシリアルデータに変換し、続けて、前記反転回路１６による反転データを、前記並び順に対して逆転した順のシリアルデータとして出力する。即ち、データバス１１ａ，１２ａ上のデータと、該データのビットの並び順を逆転させ、かつ、各ビットデータを反転させたデータとの組み合わせを１単位として、前記照合回路１３に出力する。
【００２３】
具体的には、データバス１１ａ，１２ａ上の４ビットデータが例えば〔００１０〕であるとすると、この４ビットデータ〔００１０〕のビットの並び順を逆転させたデータは〔０１００〕であり、更に、このデータ〔０１００〕の各ビットの値を反転させると、〔１０１１〕となるから、前記パラレル・シリアル変換回路１４，１５は、〔００１０１０１１〕の８ビットデータを、シルアルデータとして照合回路１３に出力することになる。
【００２４】
次に、照合回路１３の回路構成を説明する。
前記パラレル・シリアル変換回路１５から出力されるシリアルデータ（第２ＣＰＵ１２側のデータ）は、第１遅延回路２１に入力され、該第１遅延回路２１の出力は、第１排他的論理和回路（第１論理回路）２２の一方の入力端子に入力される。
【００２５】
また、前記第１排他的論理和回路２２の他方の入力端子には、前記パラレル・シリアル変換回路１４から出力されるシリアルデータ（第１ＣＰＵ１１側のデータ）が入力される。
【００２６】
そして、前記第１排他的論理和回路２２は、パラレル・シリアル変換回路１４から出力されたデータと、パラレル・シリアル変換回路１５から出力された後遅延処理が施されたデータとの排他的論理和演算（ＥＯＲ）を行う。
【００２７】
即ち、前記第１排他的論理和回路２２は、パラレル・シリアル変換回路１４から出力されたデータと、パラレル・シリアル変換回路１５から出力された後遅延処理が施されたデータとのいずれか一方のみが「１」であるとき（両論理値に差があるとき）に「１」を出力し、双方が「０」又は双方が「１」であるとき（両論理値が同じ値であるとき）に、「０」を出力する。
【００２８】
前記第１排他的論理和回路２２の出力は、クロック信号の立ち上がりで動作するＤ型フリップフロップ（Ｄ−ＦＦ）である第１フリップフロップ回路２３に対してクロック信号として入力される。前記第１フリップフロップ回路２３の入力信号Ｄとしては、後述する第２フリップフロップ回路２６の出力信号Ｑが入力される。
【００２９】
前記第１フリップフロップ回路２３の出力信号Ｑは、第２遅延回路２４に入力され、該第２遅延回路２４の出力は、第２排他的論理和回路２５（第２論理回路）の一方の入力端子に入力される。また、前記第２排他的論理和回路２５の他方の入力端子には、前記第１フリップフロップ回路２３の出力信号Ｑがそのまま入力される。
【００３０】
即ち、前記第２排他的論理和回路２５は、第１フリップフロップ回路２３の出力信号Ｑと、該出力信号Ｑを遅延させた信号との排他的論理和演算を行い、第１フリップフロップ回路２３の出力信号Ｑと、該出力信号Ｑを遅延させた信号とのいずれか一方のみが「１」であるとき（両論理値に差があるとき）に「１」を出力し、双方が「０」又は双方が「１」であるとき（両論理値が同じ値であるとき）に「０」を出力する。
【００３１】
従って、前記第２排他的論理和回路２５は、第１フリップフロップ回路２３からの出力信号Ｑの立ち上がり時及び立ち下がり時に、パルス信号を出力することになり、前記第２排他的論理和回路２５の出力は、クロック信号の立ち上がりで動作するＤ型フリップフロップである第２フリップフロップ回路２６に対してクロック信号として入力される。
【００３２】
前記第２フリップフロップ回路２６の入力信号Ｄとして、前記パラレル・シリアル変換回路１４から出力されるシリアルデータ（第１ＣＰＵ１１側のデータ）が入力され、出力信号Ｑは、前述のように、前記第１フリップフロップ回路２３の入力信号Ｄとして出力されると共に、照合回路１３の照合結果（一致・不一致）を示す信号として外部（例えば、リレーを駆動するトランス）に出力される。
【００３３】
後で詳細に説明するが、前記第２フリップフロップ回路２６の出力信号Ｑは、データの一致状態では前記パラレル・シリアル変換回路１４から出力されるシリアルデータ（両シリアルデータ）に応じた交番信号となり、１ビットでも不一致が発生すると、その後は前記交番出力が停止状態に保持される。
【００３４】
次に、前記照合回路１３の動作を説明する。
第１排他的論理和回路２２では、第１ＣＰＵ１１側のシリアルデータと、遅延処理された第２ＣＰＵ１２側のシリアルデータとの排他的論理和演算を行い、両データが異なる場合に、パルス信号を発生させる。
【００３５】
従って、第１排他的論理和回路２２は、第１ＣＰＵ１１側のシリアルデータと第２ＣＰＵ１２側のシリアルデータ（遅延処理前のデータ）との立ち上がり・立ち下がりが同期するタイミングで、第１遅延回路２１による遅延時間に相当するパルス幅のパルスを発生させると共に、ビットデータの不一致部分でパルスを発生させることになる。
【００３６】
そして、第１フリップフロップ回路２３は、前記第１排他的論理和回路２２から出力されるパルス信号の立ち上がり時に、そのときの入力信号Ｄの値に出力信号Ｑを遷移させてその状態を記憶する。従って、データが一致している場合には、シリアルデータの立ち上がり・立ち下がりに同期して、第１フリップフロップ回路２３の出力が遷移することになる。
【００３７】
但し、第１フリップフロップ回路２３の入力信号Ｄとして、第２フリップフロップ回路２６で記憶されているデータが入力され、第２フリップフロップ回路２６は、第１フリップフロップ回路２３の出力の立ち上がり・立ち下がりに同期して、その出力がそのときの第１ＣＰＵ１１側のシリアルデータに遷移する。
【００３８】
従って、データの一致時には、第１フリップフロップ回路２３は、第１ＣＰＵ１１側のシリアルデータの切り換り前の値を記憶することになり、第１フリップフロップ回路２３の出力は、第１ＣＰＵ１１側のシリアルデータを反転させたデータとなる。
【００３９】
第１フリップフロップ回路２３の出力信号Ｑが、「０」（ローレベル）から「１」（ハイレベル）に立ち上がった場合、及び、「１」（ハイレベル）から「０」（ローレベル）に立ち下がった場合、前記第２排他的論理和回路２５は、第２遅延回路２４による遅延時間に相当するパルス幅のパルスを発生させる。
【００４０】
そして、前記第２排他的論理和回路２５の出力が立ち上がると、そのときにパラレル・シリアル変換回路１４から出力されている値に、第２フリップフロップ回路２６の出力信号Ｑが遷移する。従って、第１ＣＰＵ１１側のシリアルデータと第２ＣＰＵ１２側のシリアルデータとが一致する場合には、第２フリップフロップ回路２６の出力信号Ｑは、第１ＣＰＵ１１側のシリアルデータに対応して変化する交番信号となる。
【００４１】
一方、データが不一致になって、データ一致時には出力が立ち上がらないタイミングで第１排他的論理和回路２２の出力が立ち上がると、第１フリップフロップ回路２３の出力が、第２フリップフロップ回路２６の出力信号Ｑに遷移することで、第１フリップフロップ回路２３の出力は第１ＣＰＵ１１側のシリアルデータと同じ値になる。
【００４２】
即ち、第２フリップフロップ回路２６は、１つ前のビットデータを記憶するから、データの一致状態であれば、第１ＣＰＵ１１側のシリアルデータの立ち上がり・立ち下がりに同期して、第１フリップフロップ回路２３の出力を第２フリップフロップ回路２６の出力信号Ｑに遷移させれば、結果的に、第１フリップフロップ回路２３の出力は、第１ＣＰＵ１１側のシリアルデータを反転させたデータとなる。
【００４３】
しかし、第１ＣＰＵ１１側のシリアルデータの立ち上がり・立ち下がりが発生していない状態で、第１フリップフロップ回路２３の出力を第２フリップフロップ回路２６の出力信号Ｑに遷移させると、第２フリップフロップ回路２６が記憶している１つ前のビットデータと現時点のビットデータとは同じ値であるから、結果的に、第１フリップフロップ回路２３の出力が、現時点のビットデータとは同じ値になる。
【００４４】
そして、前記第１フリップフロップ回路２３の出力が、そのときの第１ＣＰＵ１１側のシリアルデータと同じ値に遷移することで、第２排他的論理和回路２５の出力パルスが立ち上がると、第２フリップフロップ回路２６は、そのときの第１ＣＰＵ１１側のシリアルデータの値に出力を遷移させるから、第１フリップフロップ回路２３の出力と第２フリップフロップ回路２６の出力とが同じ値になる。
【００４５】
また、データが不一致になって、データ一致時には第１排他的論理和回路２２の出力が立ち上がるタイミングで立ち上がりが発生しないと、第１ＣＰＵ１１側のシリアルデータが切り換ったのに第１フリップフロップ回路２３の出力が遷移しないことで、第１フリップフロップ回路２３の出力がそのときの第１ＣＰＵ１１側のシリアルデータと同じ値を示すことになる。
【００４６】
そして、第１フリップフロップ回路２３の出力が遷移しないと、第２排他的論理和回路２５の出力が立ち上がらず、第２フリップフロップ回路２６の出力信号Ｑが遷移されないから、本来、遷移されるべきタイミングで遷移がなされないことになり、第２フリップフロップ回路２６の出力は、そのときの第１ＣＰＵ１１側のシリアルデータと異なる値を示すようになる。
【００４７】
そして、次に、第１ＣＰＵ１１側のシリアルデータの立ち上がり又は立ち下がりに基づいて第１排他的論理和回路２２の出力が立ち上がると、第１フリップフロップ回路２３の出力が、第２フリップフロップ回路２６の出力信号Ｑに遷移されるが、これが、第１ＣＰＵ１１側のシリアルデータと同じ値への遷移となる。
【００４８】
また、第１フリップフロップ回路２３の出力の遷移に応じて第２排他的論理和回路２５の出力が立ち上がっても、第２フリップフロップ回路２６のそれまでの記憶値と、立ち上がり又は立ち下がり後の第１ＣＰＵ１１側のシリアルデータとが同じであるから、第２フリップフロップ回路２６での出力遷移が発生せず、結果的に、第１フリップフロップ回路２３の出力と第２フリップフロップ回路２６の出力とが同じ値になる。
【００４９】
第１フリップフロップ回路２３と第２フリップフロップ回路２６とが同じ値を記憶するようになると、たとえ第１排他的論理和回路２２の出力パルスが立ち上がったとしても、第１フリップフロップ回路２３の出力が遷移せずに同じ値を保持することになる。
【００５０】
そして、第１フリップフロップ回路２３の出力が変化しないと、第２排他的論理和回路２５からのパルス出力がなくなることで、第２フリップフロップ回路２６の出力を遷移させるクロック信号の立ち上がりがなくなるから、第１ＣＰＵ１１側のシリアルデータが変化しても、第２フリップフロップ回路２６の出力は一定に保持されることになる。
【００５１】
即ち、照合するデータのうちの１ビットでも不一致があると、第２フリップフロップ回路２６の交番出力が停止し、その後は、係る交番信号の停止状態を保持することになる。換言すれば、照合するデータのうちの１ビットでも不一致があると、第２フリップフロップ回路２６の出力は、「１」又は「０」に固定されることになる。
【００５２】
次に、前記パラレル・シリアル変換回路１４，１５から、データバス１１ａ，１２ａ上のデータと、該データについてビットの並び順を逆転させかつ各ビットの値を反転させたデータとを連続して照合回路１３に入力させた場合の動作を、図２及び図３のタイムチャートを参照して、より具体的に説明する。図２のタイムチャートに示す例は、データバス１１ａ上の４ビットデータが「０１１０」であるのに対し、データバス１２ａ上の４ビットデータが「００１０」であって、データが不一致となった場合の動作を示す。
【００５３】
まず、データバス１１ａ上の４ビットデータ「０１１０」は、前記パラレル・シリアル変換回路１４を経ることで、８ビットのシリアルデータ「０１１０１００１」となって照合回路１３に入力される。一方、データバス１２ａ上の４ビットデータ「００１０」は、前記パラレル・シリアル変換回路１５を経ることで、８ビットのシリアルデータ「００１０１０１１」となって照合回路１３に入力される。
【００５４】
ここで、最初にデータバス上の４ビットデータがそのまま照合されることになるが、「０１１０」と「００１０」とを照合した場合、第１排他的論理和回路２２の出力パルスの立ち上がりは、データバス１１ａ側のシリアルデータの立ち上がり・立ち下がりにおいてそれぞれ発生し、かつ、データバス１１ａ側のシリアルデータの立ち上がり・立ち下がりタイミング以外で、第１排他的論理和回路２２の出力パルスが立ち上がることはない。
【００５５】
従って、第１フリップフロップ回路２３の出力は、データが一致している場合と同様に、データバス１１ａ側のシリアルデータの反転データとなり、交番信号の出力が停止されることはない。
【００５６】
これは、データバス１１ａ側のシリアルデータにおける〔０〕ビットから〔１〕ビットへの切り換りによるデータの立ち上がりに対して、データバス１２ａ側のシリアルデータの〔１〕ビットの値が異なることで、データバス１２ａ側のシリアルデータの立ち上がりが遅れて発生することになるが、この遅れが、第１遅延回路２１による遅延で生じたものであるか、データ不一致で発生したものであるかを、照合回路１３で判別できないために生じる。
【００５７】
しかし、本実施形態では、データバス上の４ビットデータをそのまま照合すると、続けて、各ビットを反転させ、かつ、ビットの並び順を逆転させたデータを照合することで、データの不一致が検出され、交番信号の出力を停止させることができる。
【００５８】
即ち、ビットの並び順を逆転させたデータでは、並び順が逆になることで、図２に示すように、データバス１１ａ側のシリアルデータの立ち上がり・立ち下がりに対して、データバス１２ａ側のシリアルデータの立ち上がり・立ち下がりが遅れて発生することがなく、逆に、データバス１２ａ側のシリアルデータの立ち上がり・立ち下がりがデータバス１１ａ側に対して早いタイミングとなる。
【００５９】
そして、データバス１１ａ側のシリアルデータが連続して「０」（ローレベル）であるときに、第１排他的論理和回路２２の出力パルスが立ち上がり、これによって、第１フリップフロップ回路２３の出力が、データバス１１ａ側のシリアルデータと同じ値（ローレベル）に遷移される。
【００６０】
そして、第１フリップフロップ回路２３の出力遷移（ハイレベル→ローレベル）によって第２排他的論理和回路２５の出力パルスが立ち上がることで、第２フリップフロップ回路２６の値も、そのときのデータバス１１ａ側のシリアルデータと同じ値（ローレベル）に遷移し、結果、第１フリップフロップ回路２３の出力と第２フリップフロップ回路２６の出力とが同じ値になる。
【００６１】
以後、第１排他的論理和回路２２の出力パルスが立ち上がっても、第２フリップフロップ回路２６の出力はローレベルであるから、第１フリップフロップ回路２３の出力がハイレベルに遷移することはなく、第１フリップフロップ回路２３の出力がローレベルを保持することで、第２フリップフロップ回路２６の出力遷移が生じず、第２フリップフロップ回路２６の出力はローレベルを保持し、交番信号の停止状態に保持される。
【００６２】
また、図３のタイムチャートに示す例は、データバス１１ａ上の４ビットデータが「１００１」であるのに対し、データバス１２ａ上の４ビットデータが「１１０１」であって、データが不一致となった場合の動作を示す。
【００６３】
まず、データバス１１ａ上の４ビットデータ「１００１」は、前記パラレル・シリアル変換回路１４を経ることで、８ビットのシリアルデータ「１００１０１１０」となって照合回路１３に入力される。一方、データバス１２ａ上の４ビットデータ「１１０１」は、前記パラレル・シリアル変換回路１５を経ることで、８ビットのシリアルデータ「１１０１０１００」となって照合回路１３に入力される。
【００６４】
ここで、最初にデータバス上の４ビットデータがそのまま照合されることになるが、「１００１」と「１１０１」とを照合した場合、第１排他的論理和回路２２の出力パルスの立ち上がりは、データバス１１ａ側のシリアルデータの立ち上がり・立ち下がりにおいてそれぞれ発生し、かつ、データバス１１ａ側のシリアルデータの立ち上がり・立ち下がりタイミング以外で、第１排他的論理和回路２２の出力パルスが立ち上がることはない。
【００６５】
従って、第１フリップフロップ回路２３の出力は、データが一致している場合と同様に、データバス１１ａ側のシリアルデータの反転データとなり、交番信号の出力が停止されることはない。
【００６６】
これは、データバス１１ａ側のシリアルデータにおける〔０〕ビットから〔１〕ビットへの切り換りによる立ち下がりに対して、データバス１２ａ側のシリアルデータの〔１〕ビットの値が異なることで、データバス１２ａ側のシリアルデータの立ち下がりが遅れて発生することになるが、この遅れが、第１遅延回路２１による遅延で生じたものであるか、データ不一致で発生したものであるかを、照合回路１３で判別できないために生じる。
【００６７】
しかし、本実施形態では、データバス上の４ビットデータをそのまま照合すると、続けて、各ビットを反転させ、かつ、ビットの並び順を逆転させたデータを照合することで、データの不一致が判断され、交番信号の出力が停止させることができる。
【００６８】
即ち、ビットの並び順を逆転させたデータでは、並び順が逆になることで、図３に示すように、データバス１１ａ側のシリアルデータの立ち上がり・立ち下がりに対して、データバス１２ａ側のシリアルデータの立ち上がり・立ち下がりが遅れて発生することがなく、逆に、データバス１２ａ側のシリアルデータの立ち上がり・立ち下がりがデータバス１１ａ側に対して早いタイミングとなる。
【００６９】
このため、データバス１１ａ側のシリアルデータが連続して「１」（ハイレベル）であるときに、第１排他的論理和回路２２の出力パルスが立ち上がり、これによって、第１フリップフロップ回路２３の出力が、データバス１１ａ側のシリアルデータと同じ値（ハイレベル）に遷移される。
【００７０】
そして、第１フリップフロップ回路２３の出力遷移（ローレベル→ハイレベル）によって第２排他的論理和回路２５の出力パルスが立ち上がることで、第２フリップフロップ回路２６の値も、そのときのデータバス１１ａ側のシリアルデータと同じ値（ハイレベル）になり、結果、第１フリップフロップ回路２３の出力と第２フリップフロップ回路２６の出力とが同じ値になる。
【００７１】
以後、第１排他的論理和回路２２の出力パルスの立ち上がっても、第２フリップフロップ回路２６の出力はハイレベルであるから、第１フリップフロップ回路２３の出力がローレベルに遷移することはなく、第１フリップフロップ回路２３の出力がハイレベルを保持することで、第２フリップフロップ回路２６の出力遷移が生じず、第２フリップフロップ回路２６の出力はハイレベルを保持し、交番信号の停止状態に保持される。
【００７２】
上記のように、データバス上の４ビットデータをそのまま照合させた場合に、交番信号の発生を停止させることができないようなエラーパターンであっても、各ビットの値を反転させ、かつ、ビットの並び順を逆転させたデータを照合させることで、交番信号の発生を停止させることができ、バス同期システムのフェイルセーフを確実に実行させることができる。
【００７３】
即ち、交番信号の出力停止は、第１フリップフロップ回路２３と第２フリップフロップ回路２６とが同じ値を記憶するようになることが条件となり、そのためには、第１ＣＰＵ１１側のシリアルデータの切り換りタイミング（立ち上がり・立ち下がりタイミング）でないときに、前記第１フリップフロップ回路２３の出力を遷移させることが必要で、該遷移のトリガーとなるのが、第１排他的論理和回路２２の出力の立ち上がりである。
【００７４】
そして、第１排他的論理和回路２２の出力が、ビットデータの不一致部分で立ち上がることで、交番信号の出力停止が実行されることになるが、データの不一致による遅延と第１遅延回路２１の遅延処理による遅延とが区別できないようなエラーパターンでは、不一致の発生に伴って第１排他的論理和回路２２の出力が立ち上がらず、交番信号を停止させることができなくなる。
【００７５】
しかし、本実施形態のように、データバス上のデータをそのまま照合させると共に、ビットの並び順を逆転させたデータを照合させれば、データの不一致による遅延関係が逆転し、例えば、データバス１２ａ側のデータがデータバス１１ａ側のデータに対して遅れるエラー特性が、ビット順を逆転させたデータでは、逆に、データバス１１ａ側のデータがデータバス１２ａ側のデータに対して遅れるエラー特性に切り換る。
【００７６】
換言すれば、並び順の逆転によって、第１ＣＰＵ１１側のシリアルデータの切り換りタイミングでないときに、前記第１フリップフロップ回路２３の出力を遷移させることができるようになる。このため、データの不一致による遅延と第１遅延回路２１の遅延処理による遅延とが区別できないようなエラーがデータバス上のデータに生じたとしても、ビットの並び順を逆転させたデータの照合で交番信号の出力を停止させることができる。
【００７７】
前述のようなエラーパターンに対してフェイルセーフを実行させる方法としては、図１に示した、データバス１２ａ側のシリアルデータを遅延させる照合回路とは別に、データバス１１ａ側のシリアルデータを遅延させるようにした同様な回路構成の照合回路を設け、両照合回路の出力を突き合わせて、最終的な照合判断を下す方法がある。
【００７８】
しかし、上記のように、照合回路を２個備えるようにすると、照合回路を構成する論理演算回路やフリップフロップ回路などのロジックＩＣの数が多くなり、これによって消費電流も大きくなってしまう。
【００７９】
これに対し、１個の照合回路に対してデータバス上のデータをそのまま入力させると共に、ビットの並び順を逆転させて入力させる構成であれば、照合回路を２個備える場合と同様に確実なフェイルセーフを実行させつつ、論理演算回路やフリップフロップ回路などのロジックＩＣの数を減らして、消費電流を抑制することができ、低消費電流で動作させたい装置に搭載することができる。
【００８０】
尚、ビットの並び順を逆転させることで、交番信号の発生を停止させることができないエラーパターンになってしまう場合があるが、その場合は、データバス上の４ビットデータをそのまま照合させた結果として、交番信号の発生が停止されることになる。
【００８１】
また、各ビットデータを反転させずに、各ビットデータをそのままとして並び順を逆転させたデータを照合させることでも、データの不一致に対して確実に交番信号の発生を停止させることができるが、各ビットデータを反転させれば、たとえデータバス上のデータが「００００」や「１１１１」を保持するような場合であっても、照合回路１３から一定周波数以上の交番信号を発生させ、リレーをオン状態に保持させることが可能となる。
【００８２】
図１に示した回路構成で、パラレル・シリアル変換回路１４，１５の入力側に設けられている反転回路１６を全て除けば、データバス上のデータそのままと、該データバス上のデータに対してビットの並び順が逆転させたデータとが連続するシリアルデータが、照合回路１３に入力されることになる。
【００８３】
そして、係る構成では、例えば、図２に示した例と同じデータバス上のデータに対して、図４のタイムチャートに示すように動作することになる。即ち、データバス１１ａ上の４ビットデータが「０１１０」であるのに対し、データバス１２ａ上の４ビットデータが「００１０」であって、データバス１１ａ上の４ビットデータ「０１１０」は、前記パラレル・シリアル変換回路１４を経ることで、８ビットのシリアルデータ「０１１００１１０」となって照合回路１３に入力される。
【００８４】
一方、データバス１２ａ上の４ビットデータ「００１０」は、前記パラレル・シリアル変換回路１５を経ることで、８ビットのシリアルデータ「００１００１００」となって照合回路１３に入力される。
【００８５】
ここで、最初にデータバス上の４ビットデータがそのまま照合されることになるが、前述のように、データバス上の４ビットデータがそのまま照合させた場合には、交番信号の出力が停止されることはない。
【００８６】
一方、ビットの並び順を逆転させたデータでは、ビットの並び順が逆になることで、図４に示すように、データバス１１ａ側のシリアルデータの立ち上がり・立ち下がりに対して、データバス１２ａ側のシリアルデータの立ち上がり・立ち下がりが遅れて発生することがなく、逆に、データバス１２ａ側のシリアルデータの立ち上がり・立ち下がりがデータバス１１ａ側に対して早いタイミングとなる。
【００８７】
このため、データバス１１ａ側のシリアルデータが連続して「１」（ハイレベル）であるときに、第１排他的論理和回路２２の出力パルスの立ち上がり、これによって、第１フリップフロップ回路２３の出力が、データバス１１ａ側のシリアルデータと同じ値（ハイレベル）に遷移される。
【００８８】
そして、第１フリップフロップ回路２３の出力遷移（ローレベル→ハイレベル）によって第２排他的論理和回路２５の出力パルスが立ち上がることで、第２フリップフロップ回路２６の値も、そのときのデータバス１１ａ側のシリアルデータと同じ値（ハイレベル）になり、結果、第１フリップフロップ回路２３の出力と第２フリップフロップ回路２６の出力とが同じ値になる。
【００８９】
以後、第１排他的論理和回路２２の出力パルスの立ち上がっても、第２フリップフロップ回路２６の出力はハイレベルであるから、第１フリップフロップ回路２３の出力がローレベルに遷移することはなく、第１フリップフロップ回路２３の出力がハイレベルを保持することで、第２フリップフロップ回路２６の出力遷移が生じず、第２フリップフロップ回路２６の出力はハイレベルを保持し、交番信号の停止状態に保持される。
【００９０】
上記のように、データの不一致に対して確実なフェイルセーフを実行させるためには、データバス上のデータを照合させると共に、データバス上でのビットの並び順を逆転させたデータを照合させればよく、各ビットデータの反転（反転回路１６）を省略させることができる。
【００９１】
しかし、ビットの並び順の逆転と共に、各ビットデータを反転させれば、図５に示すように、データバス上のデータが「１１１１」又は「００００」であっても、照合回路１３に入力されるシリアルデータは「１１１１００００」又は「００００１１１１」となり、データが一致する正常状態において、前記シリアルデータに対応する交番信号が発生することになる。
【００９２】
即ち、ビットの並び順の逆転と共に、各ビットデータを反転させれば、データバス上のデータにおけるビットの並び順で最後のビットに続けて、当該ビットのデータを反転させたデータが照合回路１３に入力されることになるから、ここで、ハイレベル・ローレベルの切り換り（データの立ち上がり・立ち下がり）が発生し、これによって第２フリップフロップ回路２６の出力が遷移し、照合回路１３から交番信号を出力されることになる。
【００９３】
各ビットデータを反転させない場合、データバス上のデータが「１１１１」又は「００００」であると、照合回路１３に入力されるシリアルデータはビットの並び順を逆転させても「１１１１１１１１」又は「００００００００」となり、データが一致しているのに交番信号の出力が一時的に停止してしまい、照合回路１３から出力される交番信号でリレーを駆動する場合には、データが一致しているのに、リレーがオフしてしまうという不具合を生じる。
【００９４】
そこで、各ビットデータを反転させない場合には、データの一致状態で交番信号の出力が停止しないように、データバス上のデータが「１１１１」又は「００００」に設定されることを回避するなどの操作が必要となる。
【００９５】
しかし、前述のように、データバス上のデータに連続して、各ビットデータを反転させ、かつ、ビットの並び順を逆転させたデータを照合回路に入力させれば、たとえデータバス上のデータが「１１１１」又は「００００」であったとしても、照合回路１３から一定周波数以上の交番信号を発生させて、リレーをオン状態に保持させることができ、交番信号を発生させるためのデータ操作の必要がなくなる。
【００９６】
即ち、本実施形態のように、データバス上のデータに連続して、各ビットデータを反転させ、かつ、ビットの並び順を逆転させたデータを照合回路１３に入力させるようにすれば、データバス１２ａ側のシリアルデータの立ち上がり・立ち下がりが、データバス１１ａ側のシリアルデータの立ち上がり・立ち下がりに対して遅れるようなエラーパターンに対しても、確実に交番信号の出力を停止させることができ、かつ、データバス上のデータを制約しなくても、データが一致する状態で一定周波数以上の交番信号を発生させることができる。
【００９７】
尚、上記実施形態では、データバス上のデータを４ビットデータとしたが、データのビット数を４ビットに限定するものでないことは明らかである。
【００９８】
また、照合回路１３（第２フリップフロップ回路２６）の出力で、リレーを駆動する構成に限定されるものでもない。
【００９９】
また、データバス上のデータについて、ビットの並び順を逆転させ、かつ、各ビットの値を反転させたデータを、先に照合回路１３に入力させ、続けて、データバス上のデータを照合回路１３に入力させることができる。
【符号の説明】
【０１００】
１１，１２    ＣＰＵ
１１ａ，１２ａ    データバス
１３    照合回路
１４，１５    パラレル・シリアル変換回路
１６    反転回路
２１    第１遅延回路
２２    第１排他的論理和回路（第１論理回路）
２３    第１フリップフロップ回路
２４    第２遅延回路
２５    第２排他的論理和回路（第２論理回路）
２６    第２フリップフロップ回路
【図１】
0005541484.tif 000002
【図２】
0005541484.tif 000003
【図３】
0005541484.tif 000004
【図４】
0005541484.tif 000005
【図５】
0005541484.tif 000006