(57)【要約】【課題】複数の送信先の各々にデータを送信し、送信先において受信したデータが自装置宛であることを識別することを、信号線の増加を招くことなく効率良く行うことができる半導体装置及びデータの送受信方法を提供する。【解決手段】送信先毎に異なる予め定められた符号化規則を用いて、送信対象のデータに含まれる符号化対象のデータに応じた誤り検出符号を生成し、送信対象のデータに対し、生成された誤り検出符号を付加して送信データを生成し、生成された送信データを送信する。【選択図】図９
2016181756.tif 000002
【特許請求の範囲】
【請求項１】
送信先毎に異なる予め定められた符号化規則を用いて、送信対象のデータに含まれる符号化対象のデータに応じた誤り検出符号を生成する符号生成部と、
前記送信対象のデータに対し、前記符号生成部により生成された前記誤り検出符号を付加して送信データを生成するデータ生成部と、
前記データ生成部により生成された送信データを送信する送信部と、
を備えた半導体装置。
【請求項２】
前記送信先毎に要求される前記誤り検出符号の信頼度が予め定められており、
前記符号生成部は、前記信頼度が高くなるほど多くのビット数の伝送誤りが検出可能な前記誤り検出符号を生成する
請求項１記載の半導体装置。
【請求項３】
前記信頼度は、自装置と前記送信データの送信先との通信距離が長くなるほど高くなる度合である
請求項２記載の半導体装置。
【請求項４】
マスターからデータを送信し、複数のスレーブで前記マスターから送信されたデータを受信するデータの送受信方法であって、
前記マスターは、   
前記スレーブ毎に異なる予め定められた符号化規則を用いて、送信対象のデータに含まれる符号化対象のデータに応じた誤り検出符号を生成し、
前記送信対象のデータに対し、生成された前記誤り検出符号を付加して送信データを生成し、
生成された前記送信データを送信し、
前記複数のスレーブの各々は、
前記マスターにより送信された前記送信データを受信し、
受信した前記送信データに含まれる前記符号化対象のデータ及び前記誤り検出符号を用いて伝送誤りの検出処理を行い、
前記伝送誤りを未検出の場合は、受信した前記送信データが自装置宛であると判定する
データの送受信方法。
【請求項５】
前記スレーブ毎に要求される前記誤り検出符号の信頼度が予め定められており、
前記マスターは、前記信頼度が高くなるほど多くのビット数の伝送誤りが検出可能な前記誤り検出符号を生成する
請求項４記載のデータの送受信方法。
【請求項６】
前記信頼度は、前記マスターと前記複数のスレーブの各々との通信距離が長くなるほど高くなる度合である
請求項５記載のデータの送受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及びデータの送受信方法に関する。
【背景技術】
【０００２】
従来、シリアルデータバスを用いた通信が行われている。また、シリアルデータバスを用いた車載ネットワークの通信方式としてＣＡＮ（Controller Area Network）が知られている。
【０００３】
また、特許文献１には、主信号を送信側から受信側へ送信している間において、送信側から副信号を受信側へ送信するに際し、送信側において、当該副信号を当該送信側のＩＤ
（IDentification）コードを用いて論理演算によりエンコードするコードレス電話機等における隣接チャンネル妨害防止方法が開示されている。この隣接チャンネル妨害防止方法では、受信側においては受信した副信号を受信機のＩＤコードを用いて論理演算によりデコードする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−２３６０７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
シリアルデータバスの一種であるＳＰＩ（Serial Peripheral Interface）では、マスターが複数のスレーブにデータを送信する場合、スレーブ毎に送信先を選択するためのピン等の部位を用意する必要がある。このため、スレーブが多くなるほどピン等の部位が増えてしまい、信号線が多くなってしまう。
【０００６】
一方、ＣＡＮでは、送信先を識別するための識別子がフレームに含まれており、フレームのサイズが大きくなってしまう。
【０００７】
また、特許文献１に記載の技術では、データの送信に先立って、送信側と受信側とで誤接続を防止するための識別番号を相互に照合及び確認するための通信を行う必要がある。
【０００８】
本発明は、以上の点に鑑みてなされたものであり、複数の送信先の各々にデータを送信し、送信先において受信したデータが自装置宛であることを識別することを、信号線の増加を招くことなく効率良く行うことができる半導体装置及びデータの送受信方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の半導体装置は、送信先毎に異なる予め定められた符号化規則を用いて、送信対象のデータに含まれる符号化対象のデータに応じた誤り検出符号を生成する符号生成部と、前記送信対象のデータに対し、前記符号生成部により生成された前記誤り検出符号を付加して送信データを生成するデータ生成部と、前記データ生成部により生成された送信データを送信する送信部と、を備えている。
【００１０】
また、上記目的を達成するために、本発明のデータの送受信方法は、マスターからデータを送信し、複数のスレーブで前記マスターから送信されたデータを受信するデータの送受信方法であって、前記マスターは、前記スレーブ毎に異なる予め定められた符号化規則を用いて、送信対象のデータに含まれる符号化対象のデータに応じた誤り検出符号を生成し、前記送信対象のデータに対し、生成された前記誤り検出符号を付加して送信データを生成し、生成された前記送信データを送信し、前記複数のスレーブの各々は、前記マスターにより送信された前記送信データを受信し、受信した前記送信データに含まれる前記符号化対象のデータ及び前記誤り検出符号を用いて伝送誤りの検出処理を行い、前記伝送誤りを未検出の場合は、受信した前記送信データが自装置宛であると判定するものである。
【発明の効果】
【００１１】
本発明によれば、複数の送信先の各々にデータを送信し、送信先において受信したデータが自装置宛であることを識別することを、信号線の増加を招くことなく効率良く行うことができる、という効果が得られる。
【図面の簡単な説明】
【００１２】
【図１】第１の形態に係る通信システムの構成の一例を示すブロック図である。
【図２】各実施の形態に係るフレームの構造の一例を示す模式図である。
【図３】第１の実施の形態に係るＣＲＣコード生成回路の構成の一例を示す構成図である。
【図４】第１の実施の形態に係るＣＲＣコード生成回路の係数器に値を設定した状態の一例を示す構成図である。
【図５】第１の実施の形態に係るＣＲＣコード生成回路の係数器に値を設定した状態の一例を示す構成図である。
【図６】第１の実施の形態に係るＣＲＣコード検出回路の構成の一例を示す構成図である。
【図７】第１の実施の形態に係るＣＲＣコード検出回路の係数器に値を設定した状態の一例を示す構成図である。
【図８】第１の実施の形態に係るＣＲＣコード検出回路の係数器に値を設定した状態の一例を示す構成図である。
【図９】各実施の形態に係る送信処理の流れの一例を示すフローチャートである。
【図１０】各実施の形態に係る受信処理の流れの一例を示すフローチャートである。
【図１１】第２の形態に係る通信システムの構成の一例を示すブロック図である。
【図１２】第２の実施の形態に係るＣＲＣコード生成回路の構成の一例を示す構成図である。
【図１３】第２の実施の形態に係るＣＲＣコード生成回路の構成の一例を示す構成図である。
【図１４】第２の実施の形態に係るＣＲＣコード検出回路の構成の一例を示す構成図である。
【図１５】第２の実施の形態に係るＣＲＣコード検出回路の構成の一例を示す構成図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明を実施するための形態例を詳細に説明する。
【００１４】
［第１の実施の形態］
まず、図１を参照して、本実施の形態に係る通信システム１０の構成を説明する。
【００１５】
図１に示すように、本実施の形態に係る通信システム１０は、半導体装置２０、３０Ａ、３０Ｂを備えている。半導体装置２０、３０Ａ、３０Ｂは、アドレスバス、データバス、及び制御バス等のバス４０を介して互いに接続されている。
【００１６】
本実施の形態に係る通信システム１０では、半導体装置２０は、送信するデータとしてのフレームを示すビット列をバス４０に接続されている自装置以外の全ての装置（本実施の形態では、半導体装置３０Ａ、３０Ｂ）に送信する。一方、半導体装置３０Ａ、３０Ｂは、半導体装置２０から送信されたビット列を受信する。なお、以下では、説明を明瞭化するために、データの送信元の半導体装置２０を「マスター」といい、データの送信先の半導体装置３０、３０Ｂを「スレーブ」という。また、以下では、スレーブ３０Ａ、３０Ｂを区別する必要がない場合は、符号末尾のアルファベットを省略する。
【００１７】
本実施の形態に係るマスター２０は、制御部２２及びＣＲＣ（Cyclic Redundancy Check）コード生成回路２４を備えている。制御部２２は、データの送信に関する制御、及びＣＲＣコード生成回路２４の動作に関する制御等、マスター２０の全体的な動作を司る。ＣＲＣコード生成回路２４は、送信対象のデータに含まれる符号化対象のデータを示すビット列からＣＲＣコードを生成する。なお、本実施の形態では、ＣＲＣコードのビット数として、８ビットを適用した場合について説明するが、これに限らない。例えば、ＣＲＣコードのビット数として、１２ビットや１６ビット等、他のビット数を適用してもよい。
【００１８】
本実施の形態に係るスレーブ３０Ａは、制御部３２Ａ及びＣＲＣコード検出回路３４Ａを備えている。制御部３２Ａは、データの受信に関する制御、及びＣＲＣコード検出回路３４Ａの動作に関する制御等、スレーブ３０Ａの全体的な動作を司る。ＣＲＣコード検出回路３４Ａは、上記符号化対象のデータを示すビット列からＣＲＣコードを検出する。
【００１９】
本実施の形態に係るスレーブ３０Ｂは、制御部３２Ｂ及びＣＲＣコード検出回路３４Ｂを備えている。制御部３２Ｂは、データの受信に関する制御、及びＣＲＣコード検出回路３４Ｂの動作に関する制御等、スレーブ３０Ｂの全体的な動作を司る。ＣＲＣコード検出回路３４Ｂは、上記符号化対象のデータを示すビット列からＣＲＣコードを検出する。なお、以下では、制御部３２Ａ、３２Ｂを区別する必要がない場合は、符号末尾のアルファベットを省略する。また、以下では、ＣＲＣコード検出回路３４Ａ、３４Ｂを区別する必要がない場合は、符号末尾のアルファベットを省略する。
【００２０】
次に、図２を参照して、本実施の形態に係る通信システム１０での通信に用いられるフレームの構造の一例について説明する。
【００２１】
図２に示すように、本実施の形態に係るフレームは、アドレス部、データ部、及びＣＲＣ部を含む。アドレス部には、例えばデータバスを介した通信で使用される、アクセス対象とするメモリのアドレスを示すビット列等が格納される。データ部には、送信対象のデータを示すビット列が格納される。ＣＲＣ部には、ＣＲＣコード生成回路２４により生成されたＣＲＣコードを示すビット列が格納される。
【００２２】
このように本実施の形態に係る通信システム１０では、フレームに送信先を識別するための識別子を示すビット列が含まれていない。そこで、本実施の形態に係る通信システム１０では、ＣＲＣコードの生成に用いる、本発明の符号化規則の一例である生成多項式が、送信先毎に異なるものとされている。
【００２３】
次に、図３〜図５を参照して、本実施の形態に係るＣＲＣコード生成回路２４の構成について説明する。
【００２４】
図３に示すように、本実施の形態に係るＣＲＣコード生成回路２４は、複数（本実施の形態では３個）のゲートＧ１〜Ｇ３、複数（本実施の形態では９個）の係数器ｇ０〜ｇ８、複数（本実施の形態では９個）の排他的論理和回路Ｅ１〜Ｅ９、及び複数（本実施の形態では８個）のシフトレジスタＲ１〜Ｒ８を備えている。なお、以下では、排他的論理和回路を「ＥＸＯＲ（EXclusive OR）回路」という。また、以下では、説明を明瞭化するために、ＥＸＯＲ回路の２つの入力端子のうち、一方の入力端子を「第１入力端子」といい、他方の入力端子を「第２入力端子」という。
【００２５】
ＥＸＯＲ回路Ｅ８は、第１入力端子にＣＲＣコード生成回路２４への入力信号が直接入力されるものとされており、ＥＸＯＲ回路Ｅ８の出力端子は、ゲートＧ１を介して係数器ｇ８の入力端子に接続されている。係数器ｇ８の出力端子は、係数器ｇ０〜ｇ７の各々の入力端子に接続されている。係数器ｇ０の出力端子は、シフトレジスタＲ１の入力端子に接続されている。係数器ｇ１〜ｇ７とＥＸＯＲ回路Ｅ１〜Ｅ７は１対１で対応し、係数器ｇ１〜ｇ７の各々の出力端子は、対応するＥＸＯＲ回路Ｅ１〜Ｅ７の第１入力端子に接続されている。
【００２６】
シフトレジスタＲ１〜Ｒ８とＥＸＯＲ回路Ｅ１〜Ｅ８は１対１で対応し、シフトレジスタＲ１〜Ｒ８の各々の出力端子は、対応するＥＸＯＲ回路Ｅ１〜Ｅ８の第２入力端子に接続されている。ＥＸＯＲ回路Ｅ１〜Ｅ７はシフトレジスタＲ２〜Ｒ８にも１対１で対応し、ＥＸＯＲ回路Ｅ１〜Ｅ７の各々の出力端子は、対応するシフトレジスタＲ２〜Ｒ８の入力端子に接続されている。シフトレジスタＲ８の出力端子は、ゲートＧ３を介してＥＸＯＲ回路Ｅ９の第２入力端子にも接続されている。ＥＸＯＲ回路Ｅ９は、第１入力端子にＣＲＣコード生成回路２４への入力信号がゲートＧ２を介して入力されるものとされており、ＥＸＯＲ回路Ｅ９の出力端子からの出力信号は、ＣＲＣコード生成回路２４の出力信号とされる。
【００２７】
係数器ｇ０〜ｇ８は、入力信号に対して自身に設定された値の倍率を乗算した大きさの信号を出力する。また、係数器ｇ０〜ｇ８には、生成多項式の係数の値が設定される。具体的には、生成多項式Ｆ（ｘ）が一例として次の（１）式により表される場合、係数器ｇ０〜ｇｎ（本実施の形態ではｎ＝８）には、ａ０〜ａｎの値が設定される。
【数１】
2016181756.tif 000003
【００２８】
ところで、前述したように、本実施の形態に係る通信システム１０では、生成多項式が送信先毎に予め定められている。具体的には、データの送信先がスレーブ３０Ａである場合は、一例として次の（２）式により示される生成多項式ＦＡ（ｘ）が予め定められている。また、データの送信先がスレーブ３０Ｂである場合は、一例として次の（３）式により示される生成多項式ＦＢ（ｘ）が予め定められている。
【数２】
2016181756.tif 000004
【００２９】
すなわち、データの送信先がスレーブ３０Ａである場合、マスター２０は、制御部２２により係数器ｇ０、ｇ２、ｇ３、ｇ７、ｇ８に１を設定し、係数器ｇ１、ｇ４〜ｇ６に０（零）を設定する。１が設定された係数器ｇ０、ｇ２、ｇ３、ｇ７、ｇ８は、入力された信号をそのまま出力する。一方、０（零）が設定された係数器ｇ１、ｇ４〜ｇ６は、０（零）を出力する。すなわち、この場合、係数器ｇ１、ｇ４〜ｇ６の出力端子が第１入力端子に接続されているＥＸＯＲ回路Ｅ１、Ｅ４〜Ｅ６は、第２入力端子に入力された信号をそのまま出力する。図４には、以上説明したように係数器ｇ０〜ｇ８が設定された状態のＣＲＣコード生成回路２４の構成が示されている。
【００３０】
図４に示すように、ＥＸＯＲ回路Ｅ８からの出力信号は、ゲートＧ１を介してシフトレジスタＲ１及びＥＸＯＲ回路Ｅ２、Ｅ３、Ｅ７に入力される。また、シフトレジスタＲ１、Ｒ４〜Ｒ６の各々からの出力信号は、各々次の段のシフトレジスタＲ２、Ｒ５〜Ｒ７に入力される。
【００３１】
一方、データの送信先がスレーブ３０Ｂである場合、マスター２０は、制御部２２により係数器ｇ０、ｇ４、ｇ５、ｇ８に１を設定し、係数器ｇ１〜ｇ３、ｇ６、ｇ７に０（零）を設定する。１が設定された係数器ｇ０、ｇ４、ｇ５、ｇ８は、入力された信号をそのまま出力する。一方、０（零）が設定された係数器ｇ１〜ｇ３、ｇ６、ｇ７は、０（零）を出力する。すなわち、この場合、係数器ｇ１〜ｇ３、ｇ６、ｇ７の出力端子が第１入力端子に接続されているＥＸＯＲ回路Ｅ１〜Ｅ３、Ｅ６、Ｅ７は、第２入力端子に入力された信号をそのまま出力する。図５には、以上説明したように係数器ｇ０〜ｇ８が設定された状態のＣＲＣコード生成回路２４の構成が示されている。
【００３２】
図５に示すように、ＥＸＯＲ回路Ｅ８からの出力信号は、ゲートＧ１を介してシフトレジスタＲ１及びＥＸＯＲ回路Ｅ４、Ｅ５に入力される。また、シフトレジスタＲ１〜Ｒ３、Ｒ６、Ｒ７各々からの出力信号は、各々次の段のシフトレジスタＲ２〜Ｒ４、Ｒ７、Ｒ８に入力される。
【００３３】
次に、図６〜図８を参照して、本実施の形態に係るＣＲＣコード検出回路３４Ａ、３４Ｂの構成について説明する。
【００３４】
図６に示すように、本実施の形態に係るＣＲＣコード検出回路３４Ａ、３４Ｂは、複数（本実施の形態では２個）のゲートＧ１、Ｇ２、複数（本実施の形態では９個）の係数器ｇ０〜ｇ８、複数（本実施の形態では８個）のＥＸＯＲ回路Ｅ０〜Ｅ７、複数（本実施の形態では８個）のシフトレジスタＲ１〜Ｒ８、及びバッファレジスタＢ１を備えている。
【００３５】
バッファレジスタＢ１は、入力端子にＣＲＣコード検出回路３４Ａ、３４Ｂへの入力信号が直接入力されるものとされている。ＥＸＯＲ回路Ｅ０は、第２入力端子にＣＲＣコード検出回路３４Ａ、３４Ｂへの入力信号が直接入力されるものとされており、ＥＸＯＲ回路Ｅ０の出力端子は、シフトレジスタＲ１の入力端子に接続されている。係数器ｇ０〜ｇ７とＥＸＯＲ回路Ｅ０〜Ｅ７は１対１で対応し、係数器ｇ０〜ｇ７の各々の出力端子は、対応するＥＸＯＲ回路Ｅ０〜Ｅ７の第１入力端子に接続されている。
【００３６】
シフトレジスタＲ１〜Ｒ７とＥＸＯＲ回路Ｅ１〜Ｅ７は１対１で対応し、シフトレジスタＲ１〜Ｒ７の各々の出力端子は、対応するＥＸＯＲ回路Ｅ１〜Ｅ７の第２入力端子に接続されている。ＥＸＯＲ回路Ｅ１〜Ｅ７はシフトレジスタＲ２〜Ｒ８にも１対１で対応し、ＥＸＯＲ回路Ｅ１〜Ｅ７の各々の出力端子は、対応するシフトレジスタＲ２〜Ｒ８の入力端子に接続されている。シフトレジスタＲ８の出力端子は、ゲートＧ１を介して係数器ｇ８の入力端子に接続されている。係数器ｇ８の出力端子は、係数器ｇ０〜ｇ７の各々の入力端子に接続されている。また、シフトレジスタＲ８からの出力信号は、ゲートＧ２を介してＣＲＣコード検出回路３４Ａ、３４Ｂの出力信号とされる。
【００３７】
前述したように、本実施の形態に係る通信システム１０では、スレーブ３０毎に生成多項式が予め定められている。そこで、スレーブ３０Ａは、上記式（２）に示した生成多項式を用いて、受信したデータに対して伝送誤りの検出を行う。一方、スレーブ３０Ｂは、上記式（３）に示した生成多項式を用いて、受信したデータに対して伝送誤りの検出を行う。
【００３８】
すなわち、スレーブ３０Ａは、制御部３２Ａにより係数器ｇ０、ｇ２、ｇ３、ｇ７、ｇ８に１を設定し、係数器ｇ１、ｇ４〜ｇ６に０（零）を設定する。１が設定された係数器ｇ０、ｇ２、ｇ３、ｇ７、ｇ８は、入力された信号をそのまま出力する。一方、０（零）が設定された係数器ｇ１、ｇ４〜ｇ６は、０（零）を出力する。すなわち、この場合、係数器ｇ１、ｇ４〜ｇ６の出力端子が第１入力端子に接続されているＥＸＯＲ回路Ｅ１、Ｅ４〜Ｅ６は、第２入力端子に入力された信号をそのまま出力する。図７には、以上説明したように係数器ｇ０〜ｇ８が設定された状態のＣＲＣコード検出回路３４Ａの構成が示されている。
【００３９】
図７に示すように、シフトレジスタＲ８からの出力信号は、ゲートＧ１を介してＥＸＯＲ回路Ｅ０、Ｅ２、Ｅ３、Ｅ７に入力される。また、シフトレジスタＲ１、Ｒ４〜Ｒ６の各々からの出力信号は、各々次の段のシフトレジスタＲ２、Ｒ５〜Ｒ７に入力される。
【００４０】
一方、スレーブ３０Ｂは、制御部３２Ｂにより係数器ｇ０、ｇ４、ｇ５、ｇ８に１を設定し、係数器ｇ１〜ｇ３、ｇ６、ｇ７に０（零）を設定する。１が設定された係数器ｇ０、ｇ４、ｇ５、ｇ８は、入力された信号をそのまま出力する。一方、０（零）が設定された係数器ｇ１〜ｇ３、ｇ６、ｇ７は、０（零）を出力する。すなわち、この場合、係数器ｇ１〜ｇ３、ｇ６、ｇ７の出力端子が第１入力端子に接続されているＥ１〜Ｅ３、Ｅ６、Ｅ７は、第２入力端子に入力された信号をそのまま出力する。図８には、以上説明したように係数器ｇ０〜ｇ８が設定された状態のＣＲＣコード検出回路３４Ｂの回路構成が示されている。
【００４１】
図８に示すように、シフトレジスタＲ８からの出力信号は、ゲートＧ１を介してＥＸＯＲ回路Ｅ０、Ｅ４、Ｅ５に入力される。また、シフトレジスタＲ１〜Ｒ３、Ｒ６、Ｒ７の各々からの出力信号は、各々次の段のシフトレジスタＲ２〜Ｒ４、Ｒ７、Ｒ８に入力される。
【００４２】
次に、本実施の形態に係るＣＲＣコード生成回路２４の動作について説明する。まず、制御部２２は、シフトレジスタＲ１〜Ｒ８を０（零）に初期化する。次に、制御部２２は、ゲートＧ１、Ｇ２を閉じ、ゲートＧ３を開く。次に、制御部２２は、符号化対象のデータを示すビット列を１ビットずつ順次ＣＲＣコード生成回路２４に入力すると共に、シフトレジスタＲ１〜Ｒ８に格納されている１ビットのデータを順次シフトする。制御部２２は、全てのビット列を入力した後に、ゲートＧ１、Ｇ２を開き、ゲートＧ３を閉じる。この時点でＣＲＣコード生成回路２４からは符号化対象のデータを示すビット列が出力されている。
【００４３】
次に、制御部２２は、この時点でシフトレジスタＲ１〜Ｒ８各々に格納されている１ビットのデータが全てＣＲＣコード生成回路２４から出力されるまでシフトレジスタＲ１〜Ｒ８に格納されている１ビットのデータを順次シフトする。以上の動作により、ＣＲＣコード生成回路２４からは符号化対象のデータにＣＲＣコードが付加されたビット列が出力される。
【００４４】
次に、本実施の形態に係るＣＲＣコード検出回路３４Ａの動作について説明する。まず、制御部３２Ａは、シフトレジスタＲ１〜Ｒ８を０（零）に初期化する。次に、制御部３２Ａは、ゲートＧ１を閉じ、ゲートＧ２を開く。次に、制御部３２Ａは、符号化対象のデータを示すビット列にＣＲＣコードが付加されたビット列を１ビットずつ順次ＣＲＣコード検出回路３４Ａに入力すると共に、シフトレジスタＲ１〜Ｒ８に格納されている１ビットのデータを順次シフトする。制御部３２Ａは、全てのビット列を入力した後に、ゲートＧ１を開き、ゲートＧ２を閉じる。この時点でバッファレジスタＢ１に、符号化対象のデータにＣＲＣコードが付加されたビット列が格納される。
【００４５】
次に、制御部３２Ａは、この時点でシフトレジスタＲ１〜Ｒ８各々に格納されている１ビットのデータが全てＣＲＣコード検出回路３４Ａから出力されるまでシフトレジスタＲ１〜Ｒ８に格納されている１ビットのデータを順次シフトする。以上の動作により、ＣＲＣコード検出回路３４Ａから符号化対象のデータにＣＲＣコードが付加されたビット列を生成多項式で除算した余りを示すビット列が出力される。なお、ＣＲＣコード検出回路３４Ｂの動作は、ＣＲＣコード検出回路３４Ａの動作と同様であるため、ここでの説明を省略する。
【００４６】
次に、図９及び図１０を参照して、本実施の形態に係る通信システム１０におけるデータの送受信処理の流れについて説明する。なお、図９は、マスター２０で実行される送信処理の流れを示すフローチャートであり、図１０は、スレーブ３０で実行される受信処理の流れを示すフローチャートである。なお、ここでは、一例として送信対象のデータ（データ部のデータ）の全てのビット列が符号化対象である場合について説明する。
【００４７】
まず、図９を参照して、マスター２０で実行される送信処理の流れについて説明する。図９のステップ１００では、制御部２２は、前述したように、データを送信したいスレーブ３０に応じて定められた生成多項式に基づき、ＣＲＣコード生成回路２４の係数器ｇ０〜ｇ８の値を設定する。次のステップ１０２では、制御部２２は、前述したように、送信対象のデータを示すビット列をＣＲＣコード生成回路２４に入力しつつ、ＣＲＣコード生成回路２４の動作を制御する。この制御により、制御部２２は、ＣＲＣコード生成回路２４により生成されて出力された送信対象のデータにＣＲＣコードが付加されたビット列を取得する。
【００４８】
次のステップ１０４では、制御部２２は、アドレス部に上記ステップ１０２の処理によって取得したビット列を付加して構成したフレームを、バス４０を介して全スレーブ３０に送信して本送信処理を終了する。
【００４９】
次に、図１０を参照して、上記送信処理により送信されたフレームを受信した場合の各スレーブ３０で実行される受信処理の流れについて説明する。なお、ここでは、前述したＣＲＣコード検出回路３４の係数器ｇ０〜ｇ８の値として自装置に対応する値が予め設定されているものとして説明する。
【００５０】
図１０のステップ２００では、制御部３２は、前述したように、上記送信処理のステップ１０４の処理により送信されたフレームに含まれるデータ部及びＣＲＣ部により示されるビット列を順次ＣＲＣコード検出回路３４に入力しつつ、ＣＲＣコード検出回路３４の動作を制御する。この制御により、制御部３２は、ＣＲＣコード検出回路３４により生成されて出力された上記余りを取得する。
【００５１】
次のステップ２０２では、制御部３２は、上記ステップ２００の処理により取得した余りが０（零）以外であるか否かを判定することにより、ＣＲＣエラーを検出したか否かを判定する。制御部３２は、この判定が否定判定となった場合は、受信したフレームが自装置宛であると見なしてステップ２０４の処理に移行する一方、この判定が肯定判定となった場合は、受信したフレームが自装置宛でないと見なしてステップ２０６の処理に移行する。
【００５２】
ステップ２０４では、制御部３２は、受信したフレームのデータ部のデータを用いた所定の処理（例えば、記憶部に記憶する処理等）を行った後、本受信処理を終了する。一方、ステップ２０６では、制御部３２は、受信したフレームを破棄する処理（例えばバッファレジスタＢ１を初期化する処理）を行った後、本受信処理を終了する。
【００５３】
以上説明したように、本実施の形態に係るマスター２０は、送信先を一意に選択するための部位を設けることなく、目的とするスレーブ３０宛に送信対象のデータを送信することができる。これにより、送信先を一意に選択するための部位を設ける場合に比較して、装置のサイズを小さくすることができる。また、本実施の形態に係るマスター２０は、フレームに送信先を識別するための識別子を含めずに、目的とするスレーブ３０宛に送信対象のデータを送信することができる。これにより、フレームに送信先を識別するための識別子を含める場合に比較して、フレームのサイズを小さくすることができる。
【００５４】
［第２の実施の形態］
上記第１の実施の形態では、何れのスレーブ３０にデータを送信する場合でも同じサイズ（ビット数）のＣＲＣコードを用いる場合について説明した。本第２の実施の形態では、スレーブ３０毎に要求されるＣＲＣコードの信頼度が定められており、該信頼度が高くなるほどＣＲＣコードのサイズを大きくする場合について説明する。また、本第２の実施の形態では、上記信頼度を、マスター２０とスレーブ３０との通信距離が長くなるほど高くなるものとする場合について説明する。
【００５５】
まず、図１を参照して、本実施の形態に係る通信システム１０の構成を説明する。なお、図１１における図１と同一の機能を有する構成要素については同一の符号を付して、その説明を省略する。
【００５６】
図１に示すように、本実施の形態に係る通信システム１０は、マスター２０及びスレーブ３０Ａ、３０Ｃ、３０Ｄを備えている。マスター２０及びスレーブ３０Ａ、３０Ｃ、３０Ｄは、バス４０を介して互いに接続されている。
【００５７】
また、本実施の形態に係る通信システム１０では、マスター２０とスレーブ３０Ｄとの通信距離ＫＤは、マスター２０とスレーブ３０Ａとの通信距離ＫＡより短い距離としている。また、本実施の形態に係る通信システム１０では、マスター２０とスレーブ３０Ｃとの通信距離ＫＣは、通信距離ＫＤより短い距離としている。すなわち、本実施の形態では、通信距離ＫＣ＜通信距離ＫＤ＜通信距離ＫＡである場合について説明する。
【００５８】
本実施の形態に係るマスター２０は、制御部２２及びＣＲＣコード生成回路２４Ａ、２４Ｃ、２４Ｄを備えている。ＣＲＣコード生成回路２４Ａ、２４Ｃ、２４Ｄは、上記第１の実施の形態に係るＣＲＣコード生成回路２４と同様にＣＲＣコードを生成する回路である。ＣＲＣコード生成回路２４Ａはデータの送信先がスレーブ３０Ａである場合に用いられる回路である。ＣＲＣコード生成回路２４Ｃはデータの送信先がスレーブ３０Ｃである場合に用いられる回路である。ＣＲＣコード生成回路２４Ｄはデータの送信先がスレーブ３０Ｄである場合に用いられる回路である。
【００５９】
本実施の形態に係るスレーブ３０Ｃは、制御部３２Ｃ及びＣＲＣコード検出回路３４Ｃを備えている。制御部３２Ｃは、データの受信に関する制御、及びＣＲＣコード検出回路３４Ｃの動作に関する制御等、スレーブ３０Ｃの全体的な動作を司る。ＣＲＣコード検出回路３４Ｃは、上記符号化対象のデータを示すビット列からＣＲＣコードを検出する。
【００６０】
本実施の形態に係るスレーブ３０Ｄは、制御部３２Ｄ及びＣＲＣコード検出回路３４Ｄを備えている。制御部３２Ｄは、データの受信に関する制御、及びＣＲＣコード検出回路３４Ｄの動作に関する制御等、スレーブ３０Ｄの全体的な動作を司る。ＣＲＣコード検出回路３４Ｄは、上記符号化対象のデータを示すビット列からＣＲＣコードを検出する。
【００６１】
本実施の形態に係る通信システム１０でも、生成多項式が送信先毎に予め定められている。また、本実施の形態に係る通信システム１０では、生成多項式の次数がマスター２０と各スレーブ３０との通信距離が長くなるほど大きくなる。すなわち、マスター２０と各スレーブ３０との通信距離が長くなるほど大きいサイズのＣＲＣコードが生成される。
【００６２】
具体的には、データの送信先がスレーブ３０Ａである場合は、上記第１の実施の形態と同様に一例として上記（２）式により示される生成多項式ＦＡ（ｘ）が予め定められている。また、データ送信先がスレーブ３０Ｃである場合は、一例として次の（４）式により示される生成多項式ＦＣ（ｘ）が予め定められ、データの送信先がスレーブ３０Ｄである場合は、一例として次の（５）式により示される生成多項式ＦＤ（ｘ）が予め定められている。
【数３】
2016181756.tif 000005
【００６３】
次に、図１２及び図１３を参照して、本実施の形態に係るＣＲＣコード生成回路２４Ｃ、２４Ｄの構成について説明する。なお、ＣＲＣコード生成回路２４Ａの構成については、上記第１の実施の形態の図４に示した構成と同様であるため、ここでの説明を省略する。
【００６４】
図１２に示すように、本実施の形態に係るＣＲＣコード生成回路２４Ｃは、ゲートＧ１〜Ｇ３、ＥＸＯＲ回路Ｅ１、Ｅ４、Ｅ９及びシフトレジスタＲ１〜Ｒ４を備えている。ＥＸＯＲ回路Ｅ４は、第１入力端子にＣＲＣコード生成回路２４Ｃへの入力信号が直接入力されるものとされている。ＥＸＯＲ回路Ｅ４の出力端子は、ゲートＧ１を介してシフトレジスタＲ１の入力端子、及びＥＸＯＲ回路Ｅ１の第１入力端子に接続されている。
【００６５】
シフトレジスタＲ１の出力端子はＥＸＯＲ回路Ｅ１の第２入力端子に接続されている。ＥＸＯＲ回路Ｅ１の出力端子はシフトレジスタＲ２の入力端子に接続されている。シフトレジスタＲ２、Ｒ３の各々の出力端子は、各々次の段のシフトレジスタＲ３、Ｒ４の入力端子に接続されている。シフトレジスタＲ４の出力端子は、ＥＸＯＲ回路Ｅ４の第２入力端子に接続されている。シフトレジスタＲ４の出力端子は、ゲートＧ３を介してＥＸＯＲ回路Ｅ９の第２入力端子にも接続されている。ＥＸＯＲ回路Ｅ９は、第１入力端子にＣＲＣコード生成回路２４Ｃへの入力信号がゲートＧ２を介して入力されるものとされており、ＥＸＯＲ回路Ｅ９からの出力信号は、ＣＲＣコード生成回路２４Ｃの出力信号とされる。
【００６６】
図１３に示すように、本実施の形態に係るＣＲＣコード生成回路２４Ｄは、ゲートＧ１〜Ｇ３、ＥＸＯＲ回路Ｅ１、Ｅ６、Ｅ９及びシフトレジスタＲ１〜Ｒ６を備えている。ＥＸＯＲ回路Ｅ６は、第１入力端子にＣＲＣコード生成回路２４Ｄへの入力信号が直接入力されるものとされている。ＥＸＯＲ回路Ｅ６の出力端子は、ゲートＧ１を介してシフトレジスタＲ１の入力端子、及びＥＸＯＲ回路Ｅ１の第１入力端子に接続されている。
【００６７】
シフトレジスタＲ１の出力端子はＥＸＯＲ回路Ｅ１の第２入力端子に接続されている。ＥＸＯＲ回路Ｅ１の出力端子はシフトレジスタＲ２の入力端子に接続されている。シフトレジスタＲ２〜Ｒ５の各々の出力端子は、各々次の段のシフトレジスタＲ３〜Ｒ６の入力端子に接続されている。シフトレジスタＲ６の出力端子は、ＥＸＯＲ回路Ｅ６の第２入力端子に接続されている。シフトレジスタＲ６の出力端子は、ゲートＧ３を介してＥＸＯＲ回路Ｅ９の第２入力端子にも接続されている。ＥＸＯＲ回路Ｅ９は、第１入力端子にＣＲＣコード生成回路２４Ｄへの入力信号がゲートＧ２を介して入力されるものとされており、ＥＸＯＲ回路Ｅ９からの出力信号は、ＣＲＣコード生成回路２４Ｄの出力信号とされる。
【００６８】
次に、図１４及び図１５を参照して、本実施の形態に係るＣＲＣコード検出回路３４Ｃ、３４Ｄの構成について説明する。なお、ＣＲＣコード検出回路３４Ａの構成については、上記第１の実施の形態の図７に示した構成と同様であるため、ここでの説明を省略する。
【００６９】
図１４に示すように、本実施の形態に係るＣＲＣコード検出回路３４Ｃは、ゲートＧ１、Ｇ２、ＥＸＯＲ回路Ｅ０、Ｅ１、シフトレジスタＲ１〜Ｒ４、及びバッファレジスタＢ１を備えている。バッファレジスタＢ１は、入力端子にＣＲＣコード検出回路３４Ｃへの入力信号が直接入力されるものとされている。ＥＸＯＲ回路Ｅ０は、第２入力端子にＣＲＣコード検出回路３４Ｃへの入力信号が直接入力されるものとされており、ＥＸＯＲ回路Ｅ０の出力端子は、シフトレジスタＲ１の入力端子に接続されている。
【００７０】
シフトレジスタＲ１の出力端子はＥＸＯＲ回路Ｅ１の第２入力端子に接続されている。ＥＸＯＲ回路Ｅ１の出力端子はシフトレジスタＲ２の入力端子に接続されている。シフトレジスタＲ２、Ｒ３の各々の出力端子は、各々次の段のシフトレジスタＲ３、Ｒ４の入力端子に接続されている。シフトレジスタＲ４の出力端子は、ゲートＧ１を介してＥＸＯＲ回路Ｅ０、Ｅ１の第１入力端子に接続されている。また、シフトレジスタＲ４からの出力信号は、ゲートＧ２を介してＣＲＣコード検出回路３４Ｃの出力信号とされる。
【００７１】
図１５に示すように、本実施の形態に係るＣＲＣコード検出回路３４Ｄは、ゲートＧ１、Ｇ２、ＥＸＯＲ回路Ｅ０、Ｅ１、シフトレジスタＲ１〜Ｒ６、及びバッファレジスタＢ１を備えている。バッファレジスタＢ１は、入力端子にＣＲＣコード検出回路３４Ｄへの入力信号が直接入力されるものとされている。ＥＸＯＲ回路Ｅ０は、第２入力端子にＣＲＣコード検出回路３４Ｄへの入力信号が直接入力されるものとされており、ＥＸＯＲ回路Ｅ０の出力端子は、シフトレジスタＲ１の入力端子に接続されている。
【００７２】
シフトレジスタＲ１の出力端子はＥＸＯＲ回路Ｅ１の第２入力端子に接続されている。ＥＸＯＲ回路Ｅ１の出力端子はシフトレジスタＲ２の入力端子に接続されている。シフトレジスタＲ２〜Ｒ５の各々の出力端子は、各々次の段のシフトレジスタＲ３〜Ｒ６の入力端子に接続されている。シフトレジスタＲ６の出力端子は、ゲートＧ１を介してＥＸＯＲ回路Ｅ０、Ｅ１の第１入力端子に接続されている。また、シフトレジスタＲ６からの出力信号は、ゲートＧ２を介してＣＲＣコード検出回路３４Ｄの出力信号とされる。なお、以上説明したＣＲＣコード生成回路２４及びＣＲＣコード検出回路３４において、上記第１の実施の形態と同様に係数器を設け、生成多項式に応じて係数器の値を設定する形態としてもよい。
【００７３】
なお、本実施の形態に係るＣＲＣコード生成回路２４Ａ、２４Ｃ、２４Ｄの動作は、上記第１の実施の形態に係るＣＲＣコード生成回路２４の動作と同様であるため、ここでの説明を省略する。また、本実施の形態に係るＣＲＣコード検出回路３４Ａ、３４Ｃ、３４Ｄの動作も、上記第１の実施の形態に係るＣＲＣコード検出回路３４Ａの動作と同様であるため、ここでの説明を省略する。
【００７４】
また、本実施の形態に係るマスター２０で実行される送信処理の流れは、係数器ｇ０〜ｇ８の値を設定する処理（図９のステップ１００の処理）が不要である以外は、上記第１の実施の形態に係る送信処理の流れ（図９参照。）と同様であるため、ここでの説明を省略する。また、本実施の形態に係るスレーブ３０で実行される受信処理の流れも、上記第１の実施の形態に係る受信処理の流れ（図１０参照。）と同様であるため、ここでの説明を省略する。
【００７５】
マスター２０と各スレーブ３０との通信は、通信距離が長くなるほど多いビット数の伝送誤りが発生する可能性が高い。これに対し、本実施の形態では、以上説明したように、マスター２０と各スレーブ３０との通信距離が長くなるほど、多いビット数のＣＲＣコードを用いている。これにより、各スレーブ３０が受信したデータが自装置宛であるか否かを高精度に判定することができる。
【００７６】
以上、各実施の形態を説明したが、本発明の技術的範囲は上記各実施の形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記各実施の形態に多様な変更又は改良を加えることができ、当該変更又は改良を加えた形態も本発明の技術的範囲に含まれる。
【００７７】
また、上記各実施の形態は、クレーム（請求項）にかかる発明を限定するものではなく、また各実施の形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。前述した各実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件の組み合わせにより種々の発明が抽出される。各実施の形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られる限りにおいて、この幾つかの構成要件が削除された構成が発明として抽出され得る。
【００７８】
例えば、上記各実施の形態では、誤り検出符号として、ＣＲＣコードを適用した場合について説明したが、本発明はこれに限定されるものではない。例えば、誤り検出符号として、ＣＲＣコード以外の巡回符号やハッシュ関数等、他の誤り検出符号を適用する形態としてもよい。また、例えば、スレーブが２つである場合は、誤り検出符号として、パリティ符号を適用する形態としてもよい。
【００７９】
また、上記各実施の形態では、誤り検出符号として、同じ種類の誤り検出符号を適用した場合について説明したが、本発明はこれに限定されるものではない。例えば、誤り検出符号として、異なる種類の誤り検出符号を適用する形態としてもよい。この場合、例えば、データの送信先がスレーブ３０Ａである場合は、誤り検出符号として、ＣＲＣコードを適用し、データの送信先がスレーブ３０Ｂである場合は、誤り検出符号として、ハッシュ関数を適用する形態が考えられる。
【００８０】
また、上記第１の実施の形態では、１つのＣＲＣコード生成回路２４の係数器ｇ０〜ｇ８の値をデータの送信先毎に変更する場合について説明したが、本発明はこれに限定されるものではない。例えば、データの送信先毎に個別にＣＲＣコード生成回路２４を設ける形態としてもよい。この場合、例えば、マスター２０に図４及び図５に示した構成の回路を各々設ける形態が例示される。
【００８１】
また、上記第１の実施の形態では、各スレーブ３０に同じ構成のＣＲＣコード検出回路３４を設け、係数器ｇ０〜ｇ８の値をスレーブ３０毎に異ならせる場合について説明したが、本発明はこれに限定されるものではない。例えば、各スレーブ３０に異なる構成のＣＲＣコード検出回路３４を設ける形態としてもよい。この場合、例えば、スレーブ３０Ａに図７に示した構成の回路を設け、スレーブ３０Ｂに図８に示した構成の回路を設ける形態が例示される。
【００８２】
また、上記第２の実施の形態では、ＣＲＣコードの信頼度をマスター２０とスレーブ３０との通信距離が長くなるほど高くなるものとした場合について説明したが、本発明はこれに限定されるものではない。例えば、マスター２０及びスレーブ３０の実機を用いた実験、設計仕様、及び過去の経験則等から、多くのビット数で伝送誤りが発生する可能性の高いスレーブ３０が送信先である場合は、ＣＲＣコードの信頼度を高くして大きいビット数のＣＲＣコードを生成する形態としてもよい。
【００８３】
また、上記各実施の形態では、データ部を符号化対象とした場合について説明したが、本発明はこれに限定されるものではない。例えば、アドレス部及びデータ部の双方を符号化対象とする形態としてもよい。また、例えば、データ部に、送信対象の内容を示すデータに加えて、該データの属性情報等の付加情報が含まれる場合は、送信対象の内容を示すデータのみを符号化対象とする形態としてもよい。
【００８４】
また、上記各実施の形態では、１フレーム毎にＣＲＣコードを付加する場合について説明したが、本発明はこれに限定されるものではない。例えば、複数のフレーム毎にＣＲＣコードを付加する形態としてもよい。
【００８５】
その他、上記各実施の形態で説明した半導体装置及び各回路の構成（図１、図３〜図８、図１１〜図１５参照。）は一例であり、本発明の主旨を逸脱しない範囲内において不要な部分を削除したり、新たな部分を追加したりしてもよいことは言うまでもない。
【００８６】
また、上記各実施の形態で説明した各種処理の流れ（図９、図１０参照。）も一例であり、本発明の主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよいことは言うまでもない。
【００８７】
さらに、上記各実施の形態で説明したフレームの構成（図２参照。）も一例であり、本発明の主旨を逸脱しない範囲内において不要なフィールドを削除したり、新たなフィールドを追加したりしてもよいことは言うまでもない。
【符号の説明】
【００８８】
１０  通信システム
２０  マスター（半導体装置）
２２  制御部
２４  ＣＲＣコード生成回路
３０  スレーブ（半導体装置）
３２  制御部
３４  ＣＲＣコード検出回路
４０  バス
【図１】
2016181756.tif 000006
【図２】
2016181756.tif 000007
【図３】
2016181756.tif 000008
【図４】
2016181756.tif 000009
【図５】
2016181756.tif 000010
【図６】
2016181756.tif 000011
【図７】
2016181756.tif 000012
【図８】
2016181756.tif 000013
【図９】
2016181756.tif 000014
【図１０】
2016181756.tif 000015
【図１１】
2016181756.tif 000016
【図１２】
2016181756.tif 000017
【図１３】
2016181756.tif 000018
【図１４】
2016181756.tif 000019
【図１５】
2016181756.tif 000020