(57)【要約】  【課題】  通信線路を介して他の機器との間で行われるデータ信号やクロック信号の信号伝送の実行中に，前記他の機器の有する通信機能にかかわらず異常を検出することを可能としたシリアル通信装置を提供する。 【解決手段】  ステップＳ７（Ｓ９）では，シリアル通信装置Ｘから出力される信号のカウンタ値Ｔ４（Ｔ５）と，シリアル通信装置Ｘに入力される信号のカウンタ値Ｔ６（Ｔ７）との比較に基づいて異常が検出される（異常検出手段に相当）。  なお，前記比較に基づいて異常が検出された場合には，スレーブデバイスＹにキャンセル信号（送信済みデータの処理のキャンセルを要求する信号）が送信される（ステップＳ８，キャンセル手段に相当）。【選択図】  図２
2006033075.tif 000002
【特許請求の範囲】
【請求項１】
通信線路を介して他の機器との間でデータ信号及び／又はクロック信号の信号伝送を行うシリアル通信手段と，
前記信号伝送の実行中に前記通信線路上で発生する信号を入力する入力手段と，
前記シリアル通信手段により出力されるデータ信号及び／又はクロック信号と前記入力手段により入力された信号との比較に基づいて異常を検出する異常検出手段と，
を備えてなるシリアル通信装置。
【請求項２】
前記異常検出手段が，
前記シリアル通信手段により出力されるデータ信号及び／又はクロック信号の回数と前記入力手段により入力された信号の回数との比較に基づいて異常を検出するものである請求項１に記載のシリアル通信装置。
【請求項３】
前記異常検出手段により異常が検出された場合に，前記他の機器による送信済みデータに基づく処理をキャンセルさせるキャンセル手段を更に備えてなる請求項１又は２に記載のシリアル通信装置。
【請求項４】
前記キャンセル手段が，
前記他の機器において一時蓄積された送信済みデータを，該データに基づく処理が行われる前に破棄する処理を行うものである請求項３に記載のシリアル通信装置。
【請求項５】
前記他の機器における前記一時蓄積された送信済みデータに基づく処理が，該データに基づいて前記他の機器が備える記憶手段へデータを書き込む処理である請求項４に記載のシリアル通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，通信線路を介して他の機器との間でデータ信号やクロック信号の信号伝送を行うシリアル通信装置に関し，特に，前記他の機器の有する通信機能にかかわらず前記信号伝送の異常検出が可能なシリアル通信装置に関する。
【背景技術】
【０００２】
一般に，コンピュータ間，マスタ・スレーブ間（マスタ側通信装置とスレーブ側通信装置との間）などで通信線路を介して行われるデータ信号やクロック信号の信号伝送によりなされるシリアル通信においては，通信の信頼性を確保するために，通信線路上で発生するデータ化け，データ欠落等の通信異常（以下，単に異常と言う）の有無を検出する必要がある。
例えば，特許文献１では，マスタ・スレーブ間で行われるシリアル通信において，前記マスタから前記スレーブへのデータの送信の合間に，前記スレーブから前記マスタへ返信される応答データに基づいて，異常の有無を検出する方法が提案されている。
これにより，前記シリアル通信における信号伝送の実行中に前記異常が検出されたデータをキャンセルするよう前記スレーブに通知して再送すること等により，信号伝送における信頼性が確保される。
【特許文献１】特開２０００−２９３３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら，前記スレーブがＲＯＭ等の記憶手段であり，前記マスタがそれに対して記憶データを伝送するＲＯＭライタ等である場合等，前記スレーブが応答機能を有さない場合には，特許文献１の技術を利用できないという問題点があった。
一方，前記スレーブが応答機能を有さないＲＯＭ等である場合，前記マスタにより，前記スレーブへのデータ送信（信号伝送）終了後に前記スレーブ側からその記憶データを読み出し，これと送信データとを比較して前記異常の有無を検出する方法が従来から用いられている。
しかしながら，この方法では，前記信号伝送の実行中に前記異常を検出することができないという問題点があった。このため，ごく一部のデータ異常の存在のために，全データの再送信をする必要が生じる不効率さや，前記スレーブ側において誤った受信データに基づく処理が実行されてしまう等の弊害が生じていた。
【０００４】
例えば，前記スレーブがデータを各アドレスに記憶するシリアルＥＥＰＲＯＭであって，前記マスタが前記シリアルＥＥＰＲＯＭの任意のアドレスに対してデータを書き込む書き込み装置である場合を考える。
前記書き込み装置は，通信線路を介した信号伝送により，データと前記データを記憶するべきアドレスとを一方的に送信して，前記シリアルＥＥＰＲＯＭの前記アドレスに前記データを書き込むが，このとき，前記信号伝送の実行中に異常が発生したとしても，前記書き込み装置では前記異常を検出する術がない。このため，例えば前記異常により送信中の前記アドレスにデータ化けが生じた場合には，前記データは，本来書き込まれるべきアドレスとは異なるアドレス（前記データ化けの生じたアドレス）への書き込み処理（誤った処理）がなされてしまい，既存のデータが壊されてしまうという問題が生じる。
このように，前記スレーブが応答機能を有さない場合には，前記マスタは，前記信号伝送の実行中に異常を検出して前記信号伝送を中止し，或いは前記スレーブに送信済みデータに基づく処理をキャンセルさせることができなかった。
【０００５】
従って，本発明は上記事情に鑑みてなされたものであり，その目的とするところは，通信線路を介して他の機器との間でデータ信号やクロック信号の信号伝送を行う際に，前記他の機器の有する通信機能にかかわらず前記信号伝送の実行中に異常を検出することを可能としたシリアル通信装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために本発明は，シリアル通信装置に適用されるものであり，データ信号やクロック信号を伝送する通信線路上で発生する信号（送信信号）を分岐して入力することにより，データ信号やクロック信号の送信と並行して（信号伝送の実行中に），その送信信号と前記通信線路上で発生する信号とを比較可能とし，その比較に基づいて異常を検出するよう構成されている。
これにより，前記他の機器の有する通信機能（応答機能の有無）にかかわらず，前記信号伝送の実行中に通信異常を検出することが可能となり，前記信号伝送における信頼性を向上することができる。
例えば，前記データ信号や前記クロック信号の回数（パルス発生回数）をカウントすると共に，前記通信線路上で発生する信号の回数をカウントし，その夫々の回数を比較することにより異常を検出することが考えられる。ここで，信号の回数のカウントは，前記データ信号や前記クロック信号におけるパルスの立上りや立下りの発生回数をカウントすること等により実現できる。
また，前記比較に基づいて異常が検出された場合に，前記他の機器に対して送信済みデータに基づく処理を早期にキャンセルさせることも可能となり，前記他の機器において行なわれる異常データに基づく処理に起因する弊害が低減される。
さらに，前記他の機器が，前記送信済みデータを一時蓄積してから，所定のタイミング（完了信号受信など）で該蓄積された送信済みデータに基づく処理を行うものである場合には，この処理が行われる前に，前記一時蓄積された送信済みデータを破棄する処理を行うことにより，異常データに基づく処理を未然に防止できる。
したがって，例えば，前記送信済みデータに基づく処理が，該データに基づいて前記他の機器が備える記憶手段へデータを書き込む処理である場合に，書き込み先のアドレスを表すデータが誤っている（データ化けしている）等により，前記記憶手段内の既存のデータ（本来，更新するべきでないデータ）を破壊してしまう等の弊害を未然に防止できる。
この場合，前記送信済みデータを破棄する処理は，例えば，前記他の機器に対してキャンセル信号を送信して前記他の機器にキャンセル処理を行わせることや，或いは前記信号伝送を中止し，その中止を前記他の機器側で検知してキャンセル処理を実行すること等により実現できる。
【発明の効果】
【０００７】
本発明によれば，通信線路を介して他の機器との間でデータ信号やクロック信号の信号伝送を行う際に，前記他の機器の有する通信機能（応答機能の有無）にかかわらず，前記信号伝送の実行中に通信異常を検出することができる。
また，通信異常が検出された場合に前記他の機器に対して送信済みデータの処理をキャンセルさせることにより，前記他の機器における異常な処理を早期に停止（キャンセル）させてその弊害を最小限に食い止めることができる。さらに，前記他の機器がデータを一時蓄積した後にそのデータの処理を行う場合には，通信異常の発生に起因する弊害を未然に防止することもできる。
【発明を実施するための最良の形態】
【０００８】
以下添付図面を参照しながら，本発明の実施の形態について説明し，本発明の理解に供する。尚，以下の実施の形態は，本発明を具体化した一例であって，本発明の技術的範囲を限定する性格のものではない。
本実施形態は，通信線路を介して他の機器との間で行なわれるデータ信号及びクロック信号の信号伝送によりなされるシリアル通信において，前記通信線路上で発生する信号と，前記データ信号及び／又は前記クロック信号との比較に基づいて，前記信号伝送の実行中に異常を検出するよう構成されたシリアル通信装置に関するものである。より具体的には，前記データ信号及び前記クロック信号の回数（パルス発生回数）と，前記通信線路上で発生する信号の回数との各々をカウントし，その両カウント回数を比較することによって異常を検出する。
前記他の機器の例としては，シリアルＥＥＰＲＯＭ等のＩＣ，Ｄ／Ａ変換器，シリアル−パラレル変換器などが考えられる。
以下，本実施形態においては，前記他の機器が，前記シリアル通信装置から受信するデータを記憶するＥＥＰＲＯＭ等のＩＣである場合を想定し，これをスレーブデバイスと称して説明する。
ここに，図１は，本発明の実施の形態にかかるシリアル通信装置Ｘ及びスレーブデバイスＹの概略構成を示すブロック図，図２は，シリアル通信装置Ａにおけるシリアル通信処理手順を示すフローチャート，及びスレーブデバイスＹにおけるデータ受信処理手順を示すフローチャート，図３は，異常が発生していないシリアル通信におけるタイムチャート， 図４は，データ信号に異常が発生したシリアル通信におけるタイムチャート，図５は，クロック信号に異常が発生したシリアル通信におけるタイムチャートである。
【０００９】
まず，本発明の実施の形態に係るシリアル通信装置Ｘの概略構成について図１を用いて説明する。
図１に示すように，前記シリアル通信装置Ｘは，当該シリアル通信装置Ｘにシリアル通信処理を実行させるためのシリアル通信プログラム，その他データ等を記憶するハードディスクやＳＲＡＭ等の記憶手段１と，前記記憶手段１に記憶された前記シリアル通信プログラム等を実行するＣＰＵ及びその他周辺装置からなる制御手段２と，前記制御手段２によって制御されシリアル通信を行うシリアル通信インターフェース３と，信号のパルス発生回数をカウントするカウンタ手段４，５，６，７と，後述するスレーブデバイスＹに通信線路３１，３２を介して信号を出力する接続口となる出力ポート８，９と，前記スレーブデバイスＹへの通信線路３１，３２を介して信号を入力する接続口となる入力ポート１０，１１とを備えて大略構成されている。
【００１０】
ここで，前記シリアル通信インターフェース３が備える機能について説明する。
前記シリアル通信インターフェース３は，シリアル通信を行うためのシリアル通信手段の一例であり，パラレルデータをシリアルデータに変換するパラレル−シリアル変換機能と，クロック信号に応じて前記シリアルデータを１ビットずつ下位側へシフトし，そのシフトによって桁あふれした１ビットの信号（以下，データ信号という）を出力するシフトレジスタ機能とを備えている。
ここでは，前記クロック信号とは，当該シリアル通信インターフェース３により，後述するシリアル通信処理時に生成されるクロック信号のことをいう。また，前記シフトレジスタ機能により，前記クロック信号の立上りのタイミングで前記シフト及び１ビットの信号出力（データ信号出力）が行われる。もちろん，クロック信号の立下りのタイミングで同様の処理を行ってもよい。なお，上記各機能は，個別の電子回路を構成することや，或いは前記制御手段２により所定のプログラムを実行することによって具現可能である。
また，前記シリアル通信インターフェース３によって生成される前記クロック信号は，前記シフトレジスタ機能に供されるだけでなく，上記カウンタ手段４を介して出力ポート８から外部に対して出力されるよう構成されている。
【００１１】
次に，前記カウンタ手段４，５，６，７について説明する。
前記カウンタ手段４及び５は，各々前記シリアル通信インターフェース３から出力される前記データ信号及び前記クロック信号の回数（パルス発生回数）をカウントする。
また，前記カウンタ手段６及び７は，各々前記入力ポート１０及び１１に入力される信号の回数（パルス発生回数）をカウントする。
本実施形態では，前記カウンタ手段４，５，６，７は，前記各信号の立下り回数をカウントする。なお，前記カウントの方法は，立下りの回数をカウントするものに限られず，たとえば立上り回数や，信号「ＯＮ」状態の累積時間，信号「ＯＦＦ」状態の累積時間などをカウントするものであっても良い。但し，前記カウンタ４（５）と，前記カウンタ手段６（７）とは，後述するように比較対象の関係にあるため，同様のカウント方法を採用することが望ましい。
以下，前記カウンタ手段４，５，６，７によるカウント回数を夫々カウント値Ｔ４，Ｔ５，Ｔ６，Ｔ７と呼ぶ。なお，前記カウンタ手段４，５，６，７は，個別の電子回路を構成することや，或いは前記制御手段２により所定のプログラムを実行することによって具現可能である。
【００１２】
一方，前記スレーブデバイスＹは，図１に示すように，データ等を記憶する記憶手段２１と，前記シリアル通信装置Ｘとのシリアル通信を行うシリアル通信インターフェース２２と，前記シリアル通信装置Ｘから信号を入力する接続口となる入力ポート２３，２４とを備えて大略構成され，前記各構成要素は，相互にデータ送受可能に接続されている。
ここで，前記シリアル通信インターフェース２２が備える機能について説明する。
前記シリアル通信インターフェース２２は，前記入力ポート２３に入力されるデータ信号（シリアルデータ）を前記入力ポート２４に入力される信号の立下りのタイミングで取り込むシフトレジスタ機能と，その取り込んだシリアルデータをパラレルデータに変換するシリアル−パラレル変換機能とを備えている。
ここで，前記シリアル通信インターフェース２２は，前記シリアルデータをパラレルデータに変換したデータを一時的にバッファメモリ（不図示）に記憶し，そのデータを，前記シリアル通信装置Ｘからのデータ送信完了信号の受信に応じて前記記憶手段２１に記憶するよう構成されている。ここでは，前記データ送信完了信号の受信に応じて記憶手段２１へのデータ書き込み（記憶）が実行される場合を示すが，このようなマスタ（シリアル通信装置Ｘ）側からの信号によらずに，スレーブデバイスＹ側の判断，例えば前記バッファメモリに蓄積されたデータが所定のデータ長（たとえば１バイト）に達したことや，前記バッファメモリにデータの蓄積が開始されてからの経過時間が所定の時間に達したことを検知することにより，記憶手段２１へのデータ書き込みが実行されるもの等も考えられる。なお，前記バッファメモリは，前記記憶手段２１の一部の記憶領域を前記シリアル通信インターフェース２２が備える主記憶メモリに対する仮想記憶メモリとして利用することによって，或いは前記シリアル通信インターフェース２２がＲＡＭなどの記憶メモリを備えることによって実現される。
【００１３】
次に，前記各入出力ポートに接続される通信線路について説明する。
上記のように構成されたシリアル通信装置ＸとスレーブデバイスＹとは，シリアル通信装置Ｘの出力ポート８とスレーブデバイスＹの入力ポート２３とを接続する通信線路３１，及びシリアル通信装置Ｘの出力ポート９とスレーブデバイスＹの入力ポート２４とを接続する通信線路３２によって接続されている。これにより，前記シリアル通信装置Ｘ側の前記シリアル通信インターフェース３から出力された前記データ信号は，カウンタ手段４，出力ポート８，通信線路３１を介して，前記入力ポート２３に入力され，同じく前記シリアル通信インターフェース３から出力された前記クロック信号は，カウンタ手段５，出力ポート９，通信線路３２を介して，前記入力ポート２４に入力される。
また，前記通信線路３１は，そこから分岐した通信線路３３によってシリアル通信装置Ｘの入力ポート１０と接続されており，前記通信線路３２は，そこから分岐した通信線路３４によってシリアル通信装置Ｘの入力ポート１１と接続されている（入力手段に相当）。これによって，前記通信線路３１上で発生する信号（即ち入力ポート２３への入力信号）は，シリアル通信装置Ｘの入力ポート１０に入力され，前記通信線路３２上で発生する信号（即ち前記入力ポート２４への入力信号）は，シリアル通信装置Ｘの入力ポート１１に入力される。
これらの通信線路（３１〜３４）には，電気的特性や機械的形状などの設計条件によって，たとえばＲＳ−２３２Ｃ，ＲＳ−４２２，ＲＳ−４８５，４−２０ｍＡカレントループなどの規格に準じた通信線路が採用される。
【００１４】
次に，図２のフローチャートを用いて，前記シリアル通信装置Ｘの制御手段２によって実行されるシリアル通信処理手順，及びスレーブデバイスＹのシリアル通信インターフェース２２によって処理されるデータ受信処理手順について説明する。前記制御手段２は，前記記憶手段１に記憶された前記シリアル通信プログラムを実行することにより本処理を行う。以下の説明中に記載されるＳ１，Ｓ２，…及びステップＳ２１，Ｓ２２，…は各処理手順（ステップ）の番号を表している。
前記シリアル通信装置Ｘでは，前記シリアル通信装置Ｘが備える操作ボタン等の操作手段（不図示）に対して，スレーブデバイスＹとのシリアル通信を開始するための操作が行われると，制御手段２によって，前記シリアル通信プログラムが実行される。
前記シリアル通信プログラムが実行されると，まず，上記カウンタ手段４，５，６，７夫々のカウンタ値Ｔ４，Ｔ５，Ｔ６，Ｔ７が０にリセットされ（ステップＳ１），前記スレーブデバイスＹに送信するデータが，記憶手段１から上記シリアル通信インターフェース３に転送される（ステップＳ２）。
【００１５】
以下，前記ステップＳ２において前記データを受信したシリアル通信インターフェース３によって実行される処理について説明する（ステップＳ３〜Ｓ６）。
まず，ステップＳ２で前記データの転送を受けたシリアル通信インターフェース３は，出力ポート８から通信線路３１上に「１」（信号ＯＮ）を出力し（ステップＳ３），出力ポート９から通信線路３２上に「１」を出力する（ステップＳ４）。
これによって，前記シリアル通信装置Ｘのカウンタ手段６及び７各々には入力ポート１０及び１１各々を介して「１」が入力され，前記カウンタ手段６，７による信号の立下りの検出が可能な状態となる。また，前記ステップＳ４の処理によって，前記スレーブデバイスＹの入力ポート２４には，前記出力ポート９から出力された「１」が入力され，前記シリアル通信インターフェース２２による入力ポート２４に入力される信号の立下りの検出が可能な状態となる。
このとき前記ステップＳ４においてシリアル通信インターフェース３から出力される信号「１」と，後述するステップＳ６においてシリアル通信インターフェース３から出力される信号「０」（信号ＯＦＦ）とは，１パルスのクロック信号を形成している。
そして，上述したように，前記シリアル通信インターフェース３が備える上記シフトレジスタ機能によって，１ビットの前記データ信号が，前記ステップＳ４における前記クロック信号の立上りに応じてカウンタ手段４，出力ポート８を介して通信線路３１上に出力される（ステップＳ５）。
この出力されたデータ信号は，前記シリアル通信装置Ｘの入力ポート１０及びスレーブデバイスＹの入力ポート２３に入力される。そして，その入力信号が「０」であれば立下りが発生するため，カウンタ手段６のカウンタ値Ｔ６がインクリメントされる。
他方，前記スレーブデバイスＹの入力ポート２３には，前記データ信号が入力される。
続いて，前記シリアル通信装置ＸにおけるステップＳ６では，シリアル通信インターフェース３によって，出力ポート９から通信線路３２上に「０」が出力され，これが前記シリアル通信装置Ｘの入力ポート１１及びスレーブデバイスＹの入力ポート２４に入力されて前記入力ポート１１，２４で信号の立下りが発生する。
これによりカウンタ手段７では，その立下りが検出され，カウンタ値Ｔ７がインクリメントされる。
また，前記スレーブデバイスＹ側では，シリアル通信インターフェース２２によって，入力ポート２４へ入力される前記クロック信号の立下りが検出され（ステップＳ２３においてＹｅｓ），シリアル通信インターフェース２２によって，入力ポート２３へ入力されている前記データ信号が取り込まれる（ステップＳ２４）。こうして取り込まれたデータ信号は，後述する前記シリアル通信装置Ｘからのデータ送信完了信号の受信（ステップＳ２２においてＹｅｓ）までは，前記記憶手段２１には記憶されず，上記バッファメモリ等に一時的に記憶される。
【００１６】
従来，上記ステップＳ３〜ステップＳ６が繰り返して実行されることにより，シリアル通信装置Ｘのシリアル通信インターフェース３が記憶手段１から受信したデータは，スレーブデバイスＹへと順次送信されていたが，前記シリアル通信における信号伝送の実行中に異常を検出する術を備えておらず，異常が発生した場合においても，前記スレーブデバイスＹでは，前記受信したデータに基づく処理（記憶手段への記憶など）が実行されていた。
ここで，前記異常の具体例を，図３〜５のタイムチャートを用いて説明する。ここに，図３は，異常が発生していないシリアル通信におけるタイムチャート， 図４は，データ信号に異常が発生したシリアル通信におけるタイムチャート，図５は，クロック信号に異常が発生したシリアル通信におけるタイムチャートである。
例えば，前記記憶手段１に記憶された１バイトのデータ「０１００１００１」をシリアル通信装置ＸからスレーブデバイスＹへ送信する場合を考える。
この場合，図３に示すように，異常が発生していないシリアル通信においては，前記ステップＳ３〜ステップＳ６が繰り返されることによって，前記スレーブデバイスＹで，シリアル通信装置Ｘの出力ポート８から出力された前記１バイトのデータ「０１００１００１」が下位から順に１ビット毎に，出力ポート９から出力（入力ポート２４から入力）される前記クロック信号の立下りのタイミングで取り込まれる。
しかし，図４に示すように，シリアル通信における信号伝送の実行中に，通信線路３１上でノイズＮ１によるパルスが発生した場合，前記通信線路３１上から信号を受信する入力ポート２３には，本来入力されるべき信号（「０」）とは異なる前記ノイズＮ１（「１」）が入力され，スレーブデバイスＹで取り込まれるデータは前記ノイズＮ１により化けた信号を含むデータ「０１０１１００１」となってしまう。
また，図５に示すように，シリアル通信における信号伝送の実行中に，通信線路３２上でノイズＮ２によるパルスが発生した場合，前記通信線路３２上から信号を受信する入力ポート２４には前記ノイズＮ２が入力される。したがって，前記スレーブデバイスＹで取り込まれるデータは，前記ノイズＮ２によるパルスによって発生した信号の立下りのタイミングで取り込まれた余分なデータ信号を含むデータ「０１００１１００１」となってしまう。
【００１７】
そこで，本発明の実施の形態にかかるシリアル通信装置Ｘは，前記カウンタ手段４，５，６，７を用いて，前記シリアル通信における信号伝送の実行中に異常を検出する処理（Ｓ７，Ｓ９）を実行する。
まず，ステップＳ７では，前記カウンタ手段４のカウンタ値Ｔ４と前記カウンタ手段６のカウンタ値Ｔ６との比較に基づいて，前記データ信号における異常の発生が判断される（異常検出手段に相当）。
ここで，前記カウンタ手段４のカウンタ値Ｔ４と前記カウンタ手段６のカウンタ値Ｔ６とが一致しない場合には，前記出力ポート８から出力された前記データ信号の他に，ノイズ等による信号（データ化け）が前記通信線路３１上で発生している（異常）と判断される（ステップＳ７においてＮｏ）。例えば，図４のタイムチャートを参照すると，前記ノイズＮ１が発生した場合，ノイズの発生していない場合（図３参照）に比べて，入力ポート１０に入力される信号の立下り回数が１回多くなっていることがわかる。
したがって，この場合（ステップＳ７においてＮｏ），前記制御手段２から前記シリアル通信インターフェース３等を通じてスレーブデバイスＹにキャンセル信号（送信済みデータの処理のキャンセルを要求する信号）が送信され（ステップＳ８，キャンセル手段に相当），当該シリアル通信処理は終了する。これにより，シリアル通信は中止される。
前記キャンセル信号は，前記通信線路３１及び３２を利用して送信する構成の他，図示しないキャンセル信号送信用の通信線路などにより送信する構成も考えられる。
一方，前記スレーブデバイスＹ側では，前記キャンセル信号を受信した場合（ステップＳ２１においてＹｅｓ）には，前記異常の発生した送信済みデータ（前記バッファメモリに蓄積されたデータ）の処理がキャンセルされる（ステップＳ２６）。即ち，前記シリアル通信において受信され，前記バッファメモリに一時蓄積された前記データが記憶手段２１に記憶される前に破棄されることにより，前記記憶手段内の既存のデータ（本来，更新するべきでないデータ）を破壊してしまう等の弊害を未然に防止している。その他，前記異常が検出された場合に，前記シリアル通信装置Ｘがシリアル通信を中止し，この中止に応じて前記スレーブデバイスＹ側での前記キャンセル処理が実行される構成等，前記異常検知に対応した制御は各種考えられる。
【００１８】
一方，前記シリアル通信装置Ｘ側のステップＳ７において，カウンタ値Ｔ４とカウンタ値Ｔ６とが一致する場合（ステップＳ７においてＹｅｓ）には，前記通信線路３１上で異常は発生していないと判断され，ステップＳ９に移行する。
続くステップＳ９では，前記カウンタ手段５のカウンタ値Ｔ５と前記カウンタ手段７のカウンタ値Ｔ７との比較に基づいて前記クロック信号における異常の発生が判断される（異常検出手段に相当）。
ここで，前記カウンタ手段５のカウンタ値Ｔ５と前記カウンタ手段７のカウンタ値Ｔ７とが一致しない場合には，前記出力ポート９から出力された前記クロック信号の他に，ノイズ等による信号（データ化け）が前記通信線路３２上で発生していると判断される（ステップＳ９においてＮｏ）。例えば，図５のタイムチャートを参照すると，前記ノイズＮ２が発生した場合，ノイズの発生していない場合（図３参照）に比べて，入力ポート１１に入力される信号の立下り回数が１回多くなっていることがわかる。
したがって，この場合（ステップＳ９においてＮｏ），スレーブデバイスＹにキャンセル信号が送信され（ステップＳ８，キャンセル手段に相当），当該シリアル通信処理は終了する。これにより，シリアル通信は中止される。
【００１９】
前記ステップＳ７及びＳ９において，異常が検出されなかった場合には，ステップＳ１０に移行し，前記データの送信が完了したか否かが判断され（ステップ１０），完了していればステップＳ１１に移行し，前記スレーブデバイスＹに対してデータ送信完了信号が送信され（ステップＳ１１），当該シリアル通信処理は終了する。他方，前記データの送信が完了していなければ，前述したようにステップＳ３に戻り，前記データの送信が完了するまでステップＳ３〜Ｓ１０の処理が繰り返される。ここで言うデータの送信完了とは，例えば，所定のデータ長（例えば１バイト分）毎の送信の完了をいう。
一方，スレーブデバイスＹ側では，前記データ信号完了信号を受信し（ステップＳ２２においてＹｅｓ），前記ステップＳ２４の処理においてバッファメモリ等に記憶された前記データが記憶手段２１に書き込まれて記憶され（ステップＳ２５），当該データ受信処理は終了する。
このとき，前記記憶手段２１に記憶されたデータは，前記シリアル通信装置ＸにおけるステップＳ７及びＳ９の処理で異常が発生していないことが検査された信頼性の高いデータである。
なお，本実施形態で示したように，通信線路３１上及び通信線路３２上で発生する前記データ信号及び前記クロック信号の両方について異常の検出（ステップＳ７及びＳ９）を実行することが望ましいが，一方のみを実行するものであっても良い。
このように，前記シリアル通信装置Ｘによれば，前記スレーブデバイスＹが応答機能を備えない場合でも，前記シリアル通信における信号伝送の実行中に異常を検出することができる。その結果，異常検出時に前記スレーブデバイスＹに対して前記キャンセル信号を送信すること等により，異常データに基づく処理がなされる弊害を未然に防止することを可能としている。
例えば，前記スレーブデバイスＹが，Ｄ／Ａ変換器やシリアル−パラレル変換器などを備える場合に，異常の発生したデータを変換してＣＰＵやアクチュエータ等の外部機器に出力し，前記外部機器の暴走や故障を招く弊害を未然に防止することができる。
【実施例】
【００２０】
上記実施形態では，シリアル通信装置Ｘは，前記通信線路３１上及び通信線路３２上で発生する異常の検出処理（上記ステップＳ７及びステップＳ９に相当）を，前記１ビットのデータ信号の出力毎に実行するものとして説明したが，前記１ビットのデータ信号の出力毎に必ず実行する必要はなく，例えば，適宜の時間やデータ量毎に前記検出処理を実行するものであっても良い。
【００２１】
また，前記入力ポート１０，１１を割り込みポートとして割り当て，前記ステップＳ７又はステップＳ９に係る処理が，前記入力ポート１０，１１への入力（デジタル信号の立上りや立下り）に応じて割り込み処理として実行されるよう構成しても良い。この場合，前記ステップＳ７及びＳ９に相当する処理を割り込み処理とする設定情報（いわゆるベクタテーブル）を予め前記記憶手段１に記憶しておき，前記入力ポート１０，１１への信号の入力に応じて，前記記憶手段１に記憶された前記ベクタテーブルに従った割り込み処理が実行されるよう構成しても良い。
【００２２】
なお，上記実施形態では，前記データ信号及び前記クロック信号の回数をカウントすると共に，前記通信線路上で発生する信号の回数をカウントし，そのカウント回数の比較により異常を検出する例を示したが，他の検出方法であってもよい。
例えば，前記通信線路上で発生する信号と，前記データ信号や前記クロック信号とについて，論理積や否定論理和などの演算（信号比較の一例）を施した結果によって判断することや，それらの信号の位相比較，パルス波形比較など様々な比較方法によって判断すること等によっても実現可能である。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施の形態にかかるシリアル通信装置Ｘ及びスレーブデバイスＹの概略構成を示すブロック図。
【図２】シリアル通信装置Ａにおけるシリアル通信処理手順を示すフローチャート，及びスレーブデバイスＹにおけるデータ受信処理手順を示すフローチャート。
【図３】異常が発生していないシリアル通信におけるタイムチャート。
【図４】データ信号に異常が発生したシリアル通信におけるタイムチャート。
【図５】クロック信号に異常が発生したシリアル通信におけるタイムチャート。
【符号の説明】
【００２４】
１，２１…記憶手段
２…制御手段
３，２２…シリアル通信インターフェース
４，５…カウンタ手段
６，７…カウンタ手段
８，９…出力ポート
１０，１１，２３，２４…入力ポート
３１，３２，３３，３４…通信線路
Ｎ１，Ｎ２…ノイズ
Ｘ…シリアル通信装置
Ｙ…スレーブデバイス
【図１】
2006033075.tif 000003
【図２】
2006033075.tif 000004
【図３】
2006033075.tif 000005
【図４】
2006033075.tif 000006
【図５】
2006033075.tif 000007