(57)【要約】【課題】データ配線数を増加させることなく、入力されたデータの正当性を判定すること。【解決手段】入出力システムは、出力装置及び入力装置を備える。出力装置は、元データをクロック信号の立ち上がりエッジでラッチしたデータと、元データをクロック信号の立ち下がりエッジでラッチして反転させたデータと、を多重化して多重化データとして出力すると共に、クロック信号を出力する。入力装置は、多重化データをクロック信号の立ち上がりエッジでラッチしたデータと、多重化データをクロック信号の立ち下がりエッジでラッチして反転させたデータと、を比較して、多重化データの正当性を判定する。【選択図】図３
2018084947.tif 000002
【特許請求の範囲】
【請求項１】
元データをクロック信号の立ち上がりエッジでラッチしたデータと、前記元データを前記クロック信号の立ち下がりエッジでラッチして反転させたデータと、を多重化して多重化データとして出力すると共に、前記クロック信号を出力する出力装置と、
前記出力装置から出力された前記多重化データを前記クロック信号の立ち上がりエッジでラッチしたデータと、前記多重化データを前記クロック信号の立ち下がりエッジでラッチして反転させたデータと、を比較して、前記多重化データの正当性を判定する入力装置と、を備える、
入出力システム。
【請求項２】
前記出力装置は、
前記元データを前記クロック信号の立ち上がりエッジでラッチする第１の出力側フリップフロップ回路と、
前記元データを前記クロック信号の立ち下がりエッジでラッチする第２の出力側フリップフロップ回路と、
前記第２の出力側フリップフロップ回路の出力データを反転させる出力側インバータと、
前記クロック信号がＨｉｇｈ状態では、前記出力側インバータの出力データを選択し、前記クロック信号がＬｏｗ状態では、前記第１の出力側フリップフロップ回路の出力データを選択するマルチプレクサと、
前記マルチプレクサの出力データを前記多重化データとして前記入力装置に出力する第１の出力端子と、
前記クロック信号を前記入力装置に出力する第２の出力端子と、を含み、
前記入力装置は、
前記出力装置から前記多重化データを入力する第１の入力端子と、
前記出力装置から前記クロック信号を入力する第２の入力端子と、
前記多重化データを前記クロック信号の立ち上がりエッジでラッチする第１の入力側フリップフロップ回路と、
前記多重化データを前記クロック信号の立ち下がりエッジでラッチする第２の入力側フリップフロップ回路と、
前記第２の入力側フリップフロップ回路の出力データを前記クロック信号の立ち上がりに同期させる第３の入力側フリップフロップ回路と、
前記第３の入力側フリップフロップ回路の出力データを反転させる入力側インバータと、
前記第１の入力側フリップフロップ回路の出力データと前記入力側インバータの出力データとを比較して、前記多重化データの正当性を判定する判定部と、を含む、
請求項１に記載の入出力システム。
【請求項３】
前記入力装置は、
前記第１の入力側フリップフロップ回路の出力データを出力する第３の出力端子をさらに含む、
請求項２に記載の入出力システム。
【請求項４】
前記判定部は、
前記多重化データの正当性の判定結果を示すエラー判定信号を生成し、
前記入力装置は、
前記エラー判定信号を出力する第４の出力端子をさらに含む、
請求項２に記載の入出力システム。
【請求項５】
前記出力装置は、
前記多重化データを、単一のデータ配線を介して、前記入力装置に出力する、
請求項１に記載の入出力システム。
【請求項６】
元データをクロック信号の立ち上がりエッジでラッチしたデータと、前記元データを前記クロック信号の立ち下がりエッジでラッチして反転させたデータと、を多重化した多重化データを、出力装置から入力する第１の入力端子と、
前記出力装置から前記クロック信号を入力する第２の入力端子と、
前記多重化データを前記クロック信号の立ち上がりエッジでラッチしたデータと、前記多重化データを前記クロック信号の立ち下がりエッジでラッチして反転させたデータと、を比較して、前記多重化データの正当性を判定する入力制御部と、を備える、
入力装置。
【請求項７】
前記入力制御部は、
前記多重化データを前記クロック信号の立ち上がりエッジでラッチする第１の入力側フリップフロップ回路と、
前記多重化データを前記クロック信号の立ち下がりエッジでラッチする第２の入力側フリップフロップ回路と、
前記第２の入力側フリップフロップ回路の出力データを前記クロック信号の立ち上がりに同期させる第３の入力側フリップフロップ回路と、
前記第３の入力側フリップフロップ回路の出力データを反転させる入力側インバータと、
前記第１の入力側フリップフロップ回路の出力データと前記入力側インバータの出力データとを比較して、前記多重化データの正当性を判定する判定部と、を含む、
請求項６に記載の入力装置。
【請求項８】
前記第１の入力端子は、
前記多重化データを、単一のデータ配線を介して、前記出力装置から入力する、
請求項６に記載の入力装置。
【請求項９】
出力装置及び入力装置を備える入出力システムの制御方法であって、
前記出力装置が、元データをクロック信号の立ち上がりエッジでラッチしたデータと、前記元データを前記クロック信号の立ち下がりエッジでラッチして反転させたデータと、を多重化して多重化データとして出力すると共に、前記クロック信号を出力し、
前記入力装置が、前記出力装置から出力された前記多重化データを前記クロック信号の立ち上がりエッジでラッチしたデータと、前記多重化データを前記クロック信号の立ち下がりエッジでラッチして反転させたデータと、を比較して、前記多重化データの正当性を判定する、
入出力システムの制御方法。
【請求項１０】
前記出力装置が、
前記元データを、前記クロック信号の立ち上がりエッジで第１の出力側フリップフロップ回路によりラッチし、
前記元データを、前記クロック信号の立ち下がりエッジで第２の出力側フリップフロップ回路によりラッチし、
前記第２の出力側フリップフロップ回路の出力データを出力側インバータにより反転させ、
前記クロック信号がＨｉｇｈ状態では、前記出力側インバータの出力データをマルチプレクサにより選択し、前記クロック信号がＬｏｗ状態では、前記第１の出力側フリップフロップ回路の出力データを前記マルチプレクサにより選択し、
前記マルチプレクサの出力データを前記多重化データとして前記入力装置に出力すると共に、前記クロック信号を前記入力装置に出力し、
前記入力装置が、
前記出力装置から前記多重化データを入力すると共に、前記出力装置から前記クロック信号を入力し、
前記多重化データを、前記クロック信号の立ち上がりエッジで第１の入力側フリップフロップ回路によりラッチし、
前記多重化データを、前記クロック信号の立ち下がりエッジで第２の入力側フリップフロップ回路によりラッチし、
前記第２の入力側フリップフロップ回路の出力データを、第３の入力側フリップフロップ回路により前記クロック信号の立ち上がりに同期させ、
前記第３の入力側フリップフロップ回路の出力データを入力側インバータにより反転させ、
前記第１の入力側フリップフロップ回路の出力データと前記入力側インバータの出力データとを比較して、前記多重化データの正当性を判定する、
請求項９に記載の入出力システムの制御方法。
【請求項１１】
前記出力装置が、
前記多重化データを、単一のデータ配線を介して、前記入力装置に出力する、
請求項９に記載の入出力システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力装置及び入力装置を備える入出力システムに関し、例えば、入力装置が出力装置から入力されたデータの正当性を判定する入出力システムに好適に利用できるものである。
【背景技術】
【０００２】
近年、車両に搭載される車載MCU（Micro Control Unit）として、画像データを入力するためのインターフェイス機能を備えるものが増えている。例えば、車両のダッシュボードに搭載されるダッシュボードMCUは、カメラで撮影された車両周辺の画像データを入力し、入力した画像データをダッシュボードパネルに表示させる、といった動作を行う。そのため、車載MCUにおいて、入力されたデータの正当性を確保することは、安全性の観点からも重要な機能であり、その対策が急務となっている。
【０００３】
以下、MCUに入力されたデータの正当性の確保に関連する３つの関連技術について説明する。
（１）AMI符号（Alternative Mark Inversion code）方式
AMI符号方式とは、ディジタル通信に使用される符号化方式の１つである。AMI符号は、データに論理状態「0」が発生すると0で表現し、論理状態「1」が発生すると正又は負の極性符号で表現する符号である。ただし、AMI符号では、データに論理状態「1」が発生するごとに、正及び負の極性符号を交互に繰り返す。これにより、データ波形は、直流成分が少なく、交流信号に近いものとなり、ノイズ等に強くなるため、安定したデータ伝送が可能になる。
【０００４】
（２）誤り訂正符号（ECC：Error Correction Code）
誤り訂正符号とは、データを記録・伝送する際に発生する誤りを受け手側で検出し、訂正することができるように、データに追加される符号である（例えば、特許文献１参照）。誤り訂正符号は、元のデータから一定の手順に基づいて算出され、元のデータと共に記録・伝送される。
【０００５】
（３）データ配線の多重化
データ配線の多重化とは、送り手側と受け手側との間のデータ配線を多重化することである。例えば、データ配線を二重化した場合、送り手側は、２つのデータ配線でそれぞれ同じデータを伝送する。受け手側は、２つのデータ配線でそれぞれ伝送されてきたデータを比較することで、データが正当であるか否かを判定する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２１１０８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上述した３つの関連技術には、それぞれ以下のような問題があった。
（１）AMI符号方式の問題
AMI符号方式では、データに論理状態「0」が連続して発生した場合には、AMI符号に変化が発生しないため、データの正当性を判定することができない。
【０００８】
（２）誤り訂正符号（ECC）の問題
誤り訂正符号を追加するには、例えば、24bitの画像データの場合、7bitの誤り訂正符号が必要となり、送り手側と受け手側との間のデータ配線数が増加する。データ配線数が増加すると、システムの製造コストが増加し（MCUの端子数増、ボード配線増）、配線実装が困難になる。
【０００９】
（３）データ配線の多重化の問題
データ配線を多重化することで、データ配線数は、多重化しない場合と比較して増加する（二重化の場合は倍になる）。データ配線数が増加すると、システムの製造コストが増加し（MCUの端子数増、ボード配線増）、配線実装が困難になる。
【００１０】
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
一実施の形態によれば、入出力システムは、出力装置及び入力装置を備える。出力装置は、元データをクロック信号の立ち上がりエッジでラッチしたデータと、元データをクロック信号の立ち下がりエッジでラッチして反転させたデータと、を多重化して多重化データとして出力すると共に、クロック信号を出力する。入力装置は、多重化データをクロック信号の立ち上がりエッジでラッチしたデータと、多重化データをクロック信号の立ち下がりエッジでラッチして反転させたデータと、を比較して、多重化データの正当性を判定する。
【発明の効果】
【００１２】
前記一実施の形態によれば、上述した課題の解決に貢献することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態に係る入出力システムが適用される車載システムの構成例を示す図である。
【図２】図１に示されるMCU及びカメラモジュールの配置例を示す図である。
【図３】本実施の形態に係る入出力システムの構成例を示す回路図である。
【図４】図３に示される入出力システムの動作例を示すタイミングチャートである。
【図５】図３に示される入出力システムの動作例を示すタイミングチャートである。
【図６】図３に示される入出力システムの動作例を示すタイミングチャートである。
【図７】図３に示される入出力システムの具体的構成例を示す回路図である。
【図８】図３に示される入出力システムの具体的構成例を示す回路図である。
【図９】図３に示されるodata gen部及びidata dec部を実現する構成例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１５】
＜本実施の形態の適用例＞
まず、本実施の形態に係る入出力システムの適用例について説明する。本実施の形態に係る入出力システムは、例えば、車両に搭載されて使用される車載システムに適用することができる。
【００１６】
図１を参照して、本実施の形態に係る入出力システムが適用される車載システムの構成について説明する。図１に示される車載システムは、カメラモジュール（camera module）１０と、MCU ２０と、ディスプレイ（Display）３０と、ExtMEM（External Memory）４０と、スピーカ（Speaker）５０と、を備えている。
【００１７】
カメラモジュール１０は、車両の周辺を撮影するものであり、例えば、図２に示されるように、４つのカメラモジュール１０ａ〜１０ｄが配置される。カメラモジュール１０ａは、車両の前方に配置され、車両の前方を撮影する。カメラモジュール１０ｂは、車両の後方に配置され、車両の後方を撮影する。カメラモジュール１０ｃは、車両の左側方に配置され、車両の左側方を撮影する。カメラモジュール１０ｄは、車両の右側方に配置され、車両の右側方を撮影する。以下、カメラモジュール１０ａ〜１０ｄを特に区別することなく言及する場合には、単に「カメラモジュール１０」とも呼ぶ。カメラモジュール１０は、自身が撮影して取得した画像データをMCU ２０に出力する。
【００１８】
ディスプレイ３０は、車両のダッシュボードに配置されるダッシュボードパネルである。ディスプレイ３０は、MCU ２０から出力された画像データ（例えば、カメラモジュール１０により撮影された車両の周辺の画像データ等）を表示したり、MCU ２０から取得したエンジン回転数などの情報を基に回転数計を表示したりする。
【００１９】
ExtMEM ４０は、MCU ２０によりデータが読み書きされる外部メモリであり、例えば、SDRAM（Synchronous Dynamic Random Access Memory）等で実現される。
スピーカ５０は、MCU ２０から出力された音声データを音声出力する。
【００２０】
MCU ２０は、ダッシュボードMCUであり、例えば、図２に示されるように、車両のダッシュボードに配置される。上述のように、MCU ２０は、カメラモジュール１０から画像データを入力し、入力した画像データをディスプレイ３０に出力したり、ExtMEM ４０に対するデータの読み書きを行ったり、スピーカ５０に音声データを出力したりする。また、MCU ２０は、Ethernet（登録商標）やCAN（Controller Area Network）を介して他の構成要素と各種のデータをやり取りする。例えば、MCU ２０は、エンジン回転数などの情報をステッピングモータ（Stepping Motor）やディスプレイ３０に出力を行う。
【００２１】
本実施の形態に係る入出力システムは、例えば、カメラモジュール１０とMCU ２０との間で行われるデータの入出力のためのシステムとして適用することができる。
以下、本実施の形態に係る入出力システムを、図１及び図２に示されるカメラモジュール１０とMCU ２０との間で行われるデータの入出力のためのシステムとして適用した場合の例について説明する。
【００２２】
＜本実施の形態の構成＞
続いて、図３を参照して、本実施の形態に係る入出力システムの構成について説明する。図３に示される入出力システムは、図１及び図２に示されるカメラモジュール１０及びMCU ２０を備えている。カメラモジュール１０は、出力装置の一例であり、MCU ２０は、入力装置の一例である。
【００２３】
カメラモジュール１０は、CMOS（Complementary Metal Oxide Semiconductor）イメージセンサ（CMOS image sensor）１１と、出力制御部であるodata gen（output data generator）部１２と、端子部１３，１４と、を備えている。カメラモジュール１０は、CMOSイメージセンサ１１で取得した元データ（data1）を、クロック信号（CLK1）の立ち下がりと立ち上がりに同期したデータ（rgb_data1）として、MCU ２０に対して出力する。
【００２４】
CMOSイメージセンサ１１は、カメラ（不図示）で撮影して取得した、例えば公知の画像フォーマットであるRGBフォーマットの24bitの画像データであるdata1を、CLK1の立ち上がりに同期して出力する。
【００２５】
odata gen部１２は、フリップフロップF/F1-aと、フリップフロップF/F1-bと、インバータinv1と、マルチプレクサmux1と、を備えている。フリップフロップF/F1-aは、CMOSイメージセンサ１１から出力されたdata1を、CLK1の立ち上がりエッジでラッチするフリップフロップ回路であり、第１の出力側フリップフロップ回路の一例である。フリップフロップF/F1-bは、CMOSイメージセンサ１１から出力されたdata1を、CLK1の立ち下がりエッジでラッチするフリップフロップ回路であり、第２の出力側フリップフロップ回路の一例である。インバータinv1は、フリップフロップF/F1-bの出力データを反転させるインバータ素子であり、出力側インバータの一例である。マルチプレクサmux1は、CLK1がLow状態では、フリップフロップF/F1-aの出力データを選択して出力し、CLK1がHigh状態では、インバータinv1の出力データを選択して出力するマルチプレクサである。このマルチプレクサmux1の動作により、data1をCLK1の立ち上がりエッジ及び立ち下がりエッジでそれぞれラッチした２つのデータが多重化されることになる。この多重化データは、24bitの画像データであるrgb_data1として、マルチプレクサmux1から出力される。
【００２６】
端子部１３は、マルチプレクサmux1から出力されたrgb_data1を、MCU ２０に出力する端子であり、第１の出力端子の一例である。以下、端子部１３を、適宜、「rgb_data1-a端子部１３」とも呼ぶ。端子部１４は、CLK1をrgb_clk1としてMCU ２０に出力する端子であり、第２の出力端子の一例である。
【００２７】
MCU ２０は、入力制御部であるidata dec（input data decoder）部２１と、端子部２２〜２５と、を備えている。
【００２８】
端子部２２は、カメラモジュール１０から出力されたrgb_data1を入力する端子であり、第１の入力端子の一例である。以下、端子部２２を、適宜、「rgb_data1-b端子部２２」とも呼ぶ。端子部２３は、カメラモジュール１０から出力されたrgb_clk1を入力する端子であり、第２の入力端子の一例である。
【００２９】
idata dec部２１は、フリップフロップF/F2-aと、フリップフロップF/F2-bと、フリップフロップF/F2-cと、インバータinv2と、判定部２１１と、を備えている。フリップフロップF/F2-aは、rgb_data1-b端子部２２から入力されたrgb_data1を、rgb_clk1の立ち上がりエッジでラッチするフリップフロップ回路であり、第１の入力側フリップフロップ回路の一例である。フリップフロップF/F2-bは、rgb_data1-b端子部２２から入力されたrgb_data1を、rgb_clk1の立ち下がりエッジでラッチするフリップフロップ回路であり、第２の入力側フリップフロップ回路の一例である。フリップフロップF/F2-cは、フリップフロップF/F2-bの出力データを、rgb_clk1の立ち上がりに同期させるフリップフロップ回路であり、第３の入力側フリップフロップ回路の一例である。インバータinv2は、フリップフロップF/F2-cの出力データを反転させるインバータ素子であり、入力側インバータの一例である。判定部２１１は、rgb_clk1の立ち上がりに同期したフリップフロップF/F2-aの出力データと、rgb_clk1の立ち下がりに同期し、反転させたインバータinv2の出力データと、をXOR回路等の比較回路により論理比較する。そして、判定部２１１は、その比較結果を基に、rgb_data1の正当性を判定し、その判定結果を示すエラー判定信号であるError1を生成して出力する。判定部２１１は、比較結果が一致を示せば、rgb_data1が正当と判定し、Error1をLowのままにする。一方、判定部２１１は、比較結果が不一致を示せば、rgb_data1が不当と判定し、rgb_data1が不当であることをMCU ２０内に通知するため、Error1をHighにする。
【００３０】
端子部２４は、フリップフロップF/F2-aの出力データを、Input_data1としてMCU ２０内の後段の回路に出力する端子であり、第３の出力端子の一例である。判定部２１１によりrgb_data1が正当と判定された時、Input_data1は、CMOSイメージセンサ１１が出力したdata1が正しく復元されていることが分かる。
端子部２５は、判定部２１１から出力されたError1を、MCU ２０内の後段の回路に出力する端子であり、第４の出力端子の一例である。
【００３１】
なお、本明細書では、rgb_data1は、カメラモジュール１０内のマルチプレクサmux1からrgb_data1-a端子部１３に至るデータ配線上のデータ、MCU ２０内のrgb_data1-b端子部２２からフリップフロップF/F 2-a及びF/F 2-bに至るデータ配線上のデータ、及び、カメラモジュール１０内のrgb_data1-a端子部１３からMCU ２０内のrgb_data1-b端子部２２に至るデータ配線上のデータ、のいずれをも指すものとする。
【００３２】
＜本実施の形態の動作＞
続いて、本実施の形態に係る入出力システムの動作について説明する。まず、図４を参照して、MCU ２０に入力されたrgb_data1が正当であった場合の動作例について説明する。
【００３３】
なお、図４の上部は、カメラモジュール１０内のデータの状態を表している。このうち、「rgb_clk1(CLK1)」及び「data1」は、カメラモジュール１０から出力されたCLK1及びdata1をそれぞれ表し、「F/F1-a」は、フリップフロップF/F1-aの出力データを表し、「F/F1-b」は、フリップフロップF/F1-bの出力データを表し、「inv1」は、インバータinv1の出力データを表し、「rgb_data1-a」は、rgb_data1-a端子部１３に到達したrgb_data1を表している。また、図４の下部は、MCU ２０内のデータの状態を表している。このうち、「rgb_data1-b」は、rgb_data1-a端子部２２に到達したrgb_data1を表し、「F/F2-a(Input_data1)」は、フリップフロップF/F2-aの出力データを表し、「F/F2-b」は、フリップフロップF/F2-bの出力データを表し、「F/F2-c」は、フリップフロップF/F2-cの出力データを表し、「inv2」は、インバータinv2の出力データを表し、「判定部(Error1)」は、判定部２１１から出力されたError1を表している。また、図４では、カメラモジュール１０は、data1を判別しやすいように、data1を1bitの信号として扱っている（以下の図５及び図６において同じ）。
【００３４】
カメラモジュール１０では、フリップフロップF/F1-aは、CLK1の立ち上がりエッジのエッジタイミングである奇数のサイクル1,3,5・・・のタイミングでdata1の取り込みを行う。また、フリップフロップF/F1-bは、CLK1の立ち下がりエッジのエッジタイミングである偶数のサイクル2,4,6・・・のタイミングでdata1の取り込みを行う。
【００３５】
フリップフロップF/F1-aでは、サイクル3のタイミングで、data1の最初のHigh状態が観測され、出力データの論理がHighへと遷移する。また、フリップフロップF/F1-bでは、サイクル2のタイミングで、data1の最初のHigh状態が観測され、出力データの論理がHighへと遷移する。フリップフロップF/F1-bの出力データの論理は、インバータinv1で反転される。
【００３６】
マルチプレクサmux1では、サイクル1-2間、3-4間等の奇数のサイクルから偶数のサイクルへのエッジタイミング間では、インバータinv1の出力データを選択する。また、マルチプレクサmux1では、サイクル2-3間、4-5間等の偶数のサイクルから奇数のサイクルへのエッジタイミング間では、フリップフロップF/F1-aの出力データを選択する。このようにして、マルチプレクサmux1によりrgb_data1が生成される。例えば、rgb_data1は、サイクル1-2間ではインバータinv1の出力データが選択されて論理がHighになり、サイクル2-3間ではフリップフロップF/F1-aの出力データが選択されて論理がLowになる。
【００３７】
換言すれば、マルチプレクサmux1により生成されたrgb_data1は、CLK1がHigh状態では、data1の0.5クロック遅れで反転されたデータとなり、CLK1がLow状態では、data1の1クロック遅れのデータとなる。rgb_data1は、マルチプレクサmux1からrgb_data1-a端子部１３を介してMCU ２０に出力される。また、CLK1は、rgb_clk1として、端子部１４からMCU ２０に出力される。
【００３８】
MCU ２０では、フリップフロップF/F2-aは、rgb_clk1の立ち上がりエッジのエッジタイミングである奇数のサイクル1,3,5・・・のタイミングでrgb_data1の取り込みを行う。また、フリップフロップF/F2-bは、rgb_clk1の立ち下がりエッジのエッジタイミングである偶数のサイクル2,4,6・・・のタイミングでrgb_data1の取り込みを行う。
【００３９】
これにより、フリップフロップF/F1-aの出力データから1クロック遅れた波形が、フリップフロップF/F2-aの出力データとなる。また、インバータinv1の出力データから1クロック遅れた波形が、フリップフロップF/F2-bの出力データとなる。さらに、フリップフロップF/F2-cが、フリップフロップF/F2-bの出力データを、奇数のサイクル1,3,5・・・のタイミングで取り込むことで、フリップフロップF/F2-cの出力データ及びフリップフロップF/F2-aの出力データは、出力タイミングが同一となる。
【００４０】
フリップフロップF/F2-cの出力データは、元のdata1に対して反転しているため、インバータinv2によってさらに反転させることで、data1に対して正の論理となる。
【００４１】
よって、インバータinv2の出力データとフリップフロップF/F2-aの出力データとは、同一タイミングでかつ同一論理となる。そのため、判定部２１１において、両者を論理比較すると、比較結果が一致を示すため、Error1の論理はLowのままとなる。
【００４２】
このように、判定部２１１は、インバータinv2の出力データとフリップフロップF/F2-aの出力データとを比較することで、MCU ２０に入力されたrgb_data1の値が正当であることの判定が可能となる。また、判定部２１１は、rgb_data1の正当性の判定結果を示すError1を、端子部２４からMCU ２０内の後段の回路に出力する。これにより、rgb_data1が正当であるか否かを後段の回路に通知することができる。また、判定部２１１によりrgb_data1が正当と判定された時、Input_data1は、CMOSイメージセンサ１１が出力したdata1が正しく復元されていることが分かる。そのため、フリップフロップF/F2-aの出力データを、Input_data1として、端子部２５からMCU ２０内の後段の回路に出力することで、後段の回路は、カメラモジュール１０から出力され、data1と同じデータに復元されたデータを扱うことが可能となる。
【００４３】
続いて、図５を参照して、rgb_data1-a端子部１３とrgb_data1-b端子部２２との間のデータ配線の特性劣化に起因して、MCU ２０に入力されたrgb_data1が不当であった場合の動作例について説明する。
【００４４】
サイクル2のタイミングでは、rgb_data1-b端子部２２に到達したrgb_data1は、rgb_data1-a端子部１３に到達したrgb_data1と同様に、インバータinv1の出力データを反映し、論理がHighとなるべきである。しかし、図５では、rgb_data1-a端子部１３からrgb_data1-b端子部２２に至るデータ配線にクロストーク等の特性劣化が発生している。そのため、rgb_data1-b端子部２２に到達したrgb_data1は、電圧振幅不足等によりHighレベルの電圧まで到達せず、論理がLowになっている。
【００４５】
このように、rgb_data1-b端子部２２に到達したrgb_data1は、サイクル1-2間で論理がLowとなるため、フリップフロップF/F2-bは、サイクル2のタイミングで、rgb_data1のLowをラッチする。そのため、フリップフロップF/F2-bの出力データは、サイクル2のタイミングで論理がLowとなる。このLowは、フリップフロップF/F2-cでrgb_clk1の立ち上がりに同期させた後、インバータinv2で反転されて、論理がHighとなる。このHighは、インバータinv2の出力データのサイクル3に現れる。
【００４６】
そのため、判定部２１１では、サイクル3のタイミングで、フリップフロップF/F2-aの出力データとインバータinv2の出力データとを論理比較すると、両者が不一致となるため、rgb_data1が不当と判定され、Error1の論理がHighとなる。これにより、MCU ２０に入力されたrgb_data1が不当であることが、MCU ２０内の後段の回路に通知される。
【００４７】
なお、図５では、rgb_clk1の1クロック間でのみError1の論理がHighとなっている。Error1の出力先となる後段の回路は、このHighをrgb_clk1に同期したクロックで検出してもよいし、rgb_clk1よりも高速のクロックで検出してもよい。
【００４８】
続いて、図６を参照して、rgb_data1-a端子部１３とrgb_data1-b端子部２２との間のデータ配線の断線に起因して、MCU ２０に入力されたrgb_data1が不当であった場合の動作例について説明する。
【００４９】
図６では、rgb_data1-a端子部１３とrgb_data1-b端子部２２との間のデータ配線に断線が発生し、rgb_data1-b端子部２２に到達したrgb_data1は、pull-down抵抗等により論理がLow状態に固着されている。
【００５０】
そのため、フリップフロップF/F2-a、F/F2-b、及びF/F2-cの出力データは、いずれも論理がLowとなる。また、フリップフロップF/F2-cの出力データをインバータinv2で反転させると、インバータinv2の出力データは論理がHighとなる。
【００５１】
そのため、判定部２１１では、フリップフロップF/F2-aの出力データとインバータinv2の出力データとを論理比較すると、両者が不一致となるため、rgb_data1が不当と判定され、Error1の論理がHighとなる。これにより、MCU ２０に入力されたrgb_data1が不当であることが、MCU ２０内の後段の回路に通知される。
【００５２】
＜本実施の形態の具体例＞
続いて、図７及び図８を参照して、本実施の形態に係る入出力システムを、図１及び図２に示される車載システムに適用した場合のより具体的な構成について説明する。
【００５３】
まず、図７に示される入出力システムについて説明する。図７に示される入出力システムは、図３に示される入出力システムと比較して、MCU ２０内のidata dec部２１の後段に、VIN IP（Video Input Intellectual Property）２０１、CPU（Central Processing Unit）２０２、VO IP（Video Output Intellectual Property）２０３、SRAM（Static Random Access Memory）２０４、及びExtMEMC（External Memory Controller）２０５が追加されている。
【００５４】
VIN IP ２０１、CPU ２０２、VO IP ２０３、SRAM ２０４、及びExtMEMC ２０５は、公知のバス規格であるAXI（Advanced eXtensible Interface）バスプロトコル等に基づくシステムバス（SYSTEM BUS）線を介して相互に接続されている。VIN IP ２０１は、端子部２４を介してidata dec部２１に接続され、CPU ２０２は、端子部２５を介してidata dec部２１に接続されている。ただし、図７では、端子部２４，２５は省略されている。VO IP ２０３は、図１に示されるディスプレイ３０に接続され、ExtMEMC ２０５は、図１に示されるExtMEM ４０に接続されている。
【００５５】
VIN IP ２０１は、idata dec部２１からInput_data1を取り込む画像入力IPである。CPU ２０２は、idata dec部２１からError1を取り込み、取り込んだError1を処理する。VO IP ２０３は、VIN IP ２０１により取り込まれたInput_data1をディスプレイ３０に出力する画像出力IPである。SRAM ２０４は、VIN IP ２０１により取り込まれたInput_data1を保存する内部メモリである。ExtMEMC ２０５は、VIN IP ２０１により取り込まれたInput_data1を、外部メモリであるExtMEM ４０に保存する外部メモリコントローラである。
【００５６】
図７に示される入出力システムでは、idata dec部２１から出力されたInput_data1は、VIN IP ２０１により取り込まれ、システムバス線上に展開される。システムバス線上では、VIN IP ２０１によりアドレス等で指定されたストレージにInput_data1が保存される。このストレージは、SRAM ２０４でもよいし、ExtMEMC ２０５に接続されたExtMEM ４０でもよい。また、システムバス線上に展開されたInput_data1は、VO IP ２０３によりディスプレイ３０に出力され、ディスプレイ３０に表示されてもよい。
【００５７】
また、idata dec部２１から出力されたError1は、CPU ２０２で取り込まれる。CPU ２０２は、Error1の論理がHighであった場合、割り込み処理としてエラー処理を実行してもよい。
【００５８】
続いて、図８に示される入出力システムについて説明する。図８に示される入出力システムは、図７に示される入出力システムと比較して、CPU ２０２がエラー処理IP ２０６に置き換えられ、また、端子部２０７が追加されている。以下、図７に示される入出力システムと異なる点について説明する。
【００５９】
エラー処理IP ２０６は、端子部２５を介してidata dec部２１に接続されており、idata dec部２１からError1を取り込み、取り込んだError1を処理する。ただし、図８では、端子部２４，２５は省略されている。また、エラー処理IP ２０６は、システムバス線に接続されると共に、端子部２０７を介して、入出力システムの外部に接続されている。VIN IP ２０１、エラー処理IP ２０６、VO IP ２０３、SRAM ２０４、及びExtMEMC ２０５は、システムリセット（SYSTEM RESET）線を介して相互に接続されている。
【００６０】
図８に示される入出力システムでは、idata dec部２１から出力されたError1は、エラー処理IP ２０６で取り込まれる。エラー処理IP ２０６は、Error1の論理がHighであった場合、入出力システムに異常が発生したことを、端子部２０７を介して、入出力システムの外部（例えば、警告用のLED）に通知してもよい。又は、エラー処理IP ２０６は、Error1の論理がHighであった場合、MCU ２０を初期化するために、システムリセット線を介して、VIN IP ２０１、VO IP ２０３、SRAM ２０４、及びExtMEMC ２０５に対して、初期化信号を発行してもよい。なお、idata dec部２１から出力されたInput_data1に対する処理は、図７に示される入出力システムと同様である。
【００６１】
＜本実施の形態の効果＞
上述したように、本実施の形態によれば、カメラモジュール１０は、data1をrgb_clk1の立ち上がりエッジでラッチしたデータと、data1をrgb_clk1の立ち下がりエッジでラッチして反転させたデータと、を出力する。このとき、一方のデータはrgb_clk1の立ち上がりに同期し、他方のデータはrgb_clk1の立ち下がりに同期したものであるため、カメラモジュール１０は、これら２つのデータをrgb_data1として多重化した上で出力する。このように、rgb_data1は、多重化されているため、単一のデータ配線を介して、カメラモジュール１０からMCU ２０に出力することができる。MCU ２０は、rgb_data1をrgb_clk1の立ち上がりエッジでラッチしたデータと、rgb_data1を立ち下がりエッジでラッチして反転させたデータと、を比較することで、rgb_data1の正当性を判定する。
【００６２】
例えば、誤り訂正符号を追加する関連技術や、データ配線を多重化する関連技術では、上述のように、データ配線が増加してしまうという問題があった。これに対して、本実施の形態では、カメラモジュール１０は、多重化されたrgb_data1を単一のデータ配線を介して出力し、MCU ２０は、このrgb_data1の正当性を判定する。従って、データ配線数を増加させることなく、MCU ２０に入力されたrgb_data1の正当性を判定することができる。これにより、入出力システムの製造コストが増加したり（MCU ２０の端子数増、ボード配線増）、配線実装が困難になったりすることが回避される。
【００６３】
また、データ配線を多重化する関連技術では、例えば、二重化した２つのデータ配線が両方とも断線した場合には、２つのデータ配線でそれぞれ伝送されるデータは同じ値を示すため、データの正当性を判定することができない。これに対して、本実施の形態では、カメラモジュール１０が、data1をrgb_clk1の立ち上がりエッジでラッチしたデータと、data1をrgb_clk1の立ち下がりエッジでラッチして反転させたデータと、をMCU ２０に出力するという方式を採用している。これにより、データ配線が断線した場合には、MCU ２０では、data1をrgb_clk1の立ち下がりエッジでラッチして反転させたデータが検出されなくなるため、データの正当性を正しく判定することができる。
【００６４】
また、これまでの関連技術では、MCU ２０でデータを取り込むべきサイクルがずれたとしても、これを検出する手段がなく、MCU ２０に入力されたデータの正当性を判定することができなかった。これに対して、本実施の形態では、MCU ２０が、rgb_data1をrgb_clk1の立ち上がりエッジでラッチしたデータと、rgb_data1を立ち下がりエッジでラッチして反転させたデータと、を比較することで、rgb_data1の正当性を判定する。そのため、MCU ２０では、rgb_data1を取り込むべきサイクルがずれた場合には、上述の比較結果が不一致となるため、rgb_data1の正当性を正しく判定することができる。
【００６５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【００６６】
例えば、カメラモジュール１０内のodata gen部１２及びMCU ２０内のidata dec部２１は、上述のように、ハードウェア的に実現すること以外に、メモリから読み出されたプログラム等によってソフトウェア的に実現しても良い。その場合、odata gen部１２及びidata dec部２１の各々は、図９に示されるように、演算処理、制御処理等を行うCPUなどのプロセッサ１００１、プロセッサ１００１により読み出されて実行されるプログラム、各種のデータを記憶するメモリ１００２、及び外部と信号の入出力を行うインターフェイス（I/F：Interface）１００３等のコンピュータで構成することができる。従って、odata gen部１２及びidata dec部２１がハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによって様々な形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００６７】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００６８】
１０，１０ａ〜１０ｄ  カメラモジュール
１１  CMOSイメージセンサ
１２  odata gen部
F/F1-a，F/F1-b  フリップフロップ
inv1  インバータ
mux1  マルチプレクサ
１３，１４  端子部
２０  MCU
２１  idata dec部
F/F2-a，F/F2-b，F/F2-c  フリップフロップ
inv2  インバータ
２１１  判定部
２２〜２５  端子部
２０１  VIN IP
２０２  CPU
２０３  VO IP
２０４  SRAM
２０５  ExtMEMC
２０６  エラー処理IP
２０７  端子部
３０  ディスプレイ
４０  ExtMEM
５０  スピーカ
【図１】
2018084947.tif 000003
【図２】
2018084947.tif 000004
【図３】
2018084947.tif 000005
【図４】
2018084947.tif 000006
【図５】
2018084947.tif 000007
【図６】
2018084947.tif 000008
【図７】
2018084947.tif 000009
【図８】
2018084947.tif 000010
【図９】
2018084947.tif 000011