[go: up one dir, main page]

JP2016111672A - 通信方法、通信システム及び通信装置 - Google Patents

通信方法、通信システム及び通信装置 Download PDF

Info

Publication number
JP2016111672A
JP2016111672A JP2015126767A JP2015126767A JP2016111672A JP 2016111672 A JP2016111672 A JP 2016111672A JP 2015126767 A JP2015126767 A JP 2015126767A JP 2015126767 A JP2015126767 A JP 2015126767A JP 2016111672 A JP2016111672 A JP 2016111672A
Authority
JP
Japan
Prior art keywords
data
bit
communication device
transmission
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015126767A
Other languages
English (en)
Inventor
周平 三谷
Shuhei Mitani
周平 三谷
和成 瀬角
Kazunari Sekado
和成 瀬角
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Data Corp filed Critical Oki Data Corp
Publication of JP2016111672A publication Critical patent/JP2016111672A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

【課題】簡易な構成でありながら、通信エラーを確実に検出できる通信システム及び通信装置を実現する。【解決手段】スレーブ装置102側に、機能レジスタ123とは別に、マスタ装置101から送受信データS1として受信した送信データS3がそのまま書き込まれるミラーレジスタ124を設け、マスタ装置101側で、スレーブ装置102に送信した送信データS3と、ミラーレジスタ123から読み出されて返送されてくる送信データS3である受信データS6とを比較することで、通信エラーが発生しているかどうかを検出するようにした。これにより、簡易な構成でありながら、通信エラーを確実に検出できる。【選択図】図5

Description

本発明は、通信方法、通信システム及び通信装置に関するものであり、シリアル通信を行う通信方法、通信システム及び通信装置に適用して好適なものである。
従来、シリアル通信を行う場合の通信エラーの検出方法として、例えば、パリティチェックやCRC(Cyclic Redundancy Check)がある(例えば特許文献1参照)。
特開2000−269908号公報
パリティチェックは、簡易な回路構成で通信エラーを検出できる方法であるが、データ内の複数ビットに誤りが生じていると、それらが相殺されて正常なデータと誤認識してしまうという問題があった。一方、CRCは、パリティチェックよりもエラー検出精度が高い反面、パリティチェックよりも複雑な演算を行う為、パリティチェックを用いる場合と比べて、通信装置の回路構成(特にデータ受信側の回路構成)が複雑になるという問題があった。
本発明は以上の点を考慮したものであり、簡易な構成でありながら、通信エラーを確実に検出できる通信システム及び通信装置を提案しようとするものである。
本発明は、第1の通信装置と第2の通信装置との間でシリアル通信する通信方法において、前記第1の通信装置が、第2の通信装置へ送信する送信データを保持するとともに、当該送信データを1ビットずつ前記第2の通信装置へ送信し、前記第2の通信装置が、前記第1の通信装置から送信されてくる前記送信データを1ビットずつ受信し、受信した送信データをそのまま記憶部に書き込み、当該記憶部に書き込まれた送信データを読み出し、返送データとして1ビットずつ前記第1の通信装置へ返送し、前記第1の通信装置が、前記第2の通信装置から返送されてくる返送データを1ビットずつ受信し、保持している前記送信データと受信した前記返送データとを比較することで通信エラーの検出を行うようにした。
また、本発明は、前記第1の通信装置が、前記第2の通信装置に送信する送信データを保持するとともに、当該送信データを転送クロックに同期させて1ビットずつ前記第2の通信装置へ送信し、前記第2の通信装置が、前記第1の通信装置から送信されてくる前記送信データを前記転送クロックに同期させて1ビットずつ受信して取り込み、取り込んだ送信データを当該送信データを取り込んだときの前記転送クロックの変化タイミングより前記所定回数後に発生した前記転送クロックの変化タイミングに同期させて1ビットずつ返送データとして前記第1の通信装置へ返送し、前記第1の通信装置が、前記第2の通信装置から返送されてくる返送データを前記転送クロックに同期させて1ビットずつ受信し、保持している前記送信データと受信した前記返送データとを前記転送クロックの変化タイミングに基づき所定回数ずらして比較することで通信エラーの検出を行うようにした。
これにより、本発明は、受信側となる第2の通信装置の回路構成を、例えばCRCを用いる場合よりも簡略化でき、そのうえで、送信側となる第1の通信装置側で、送信データと返送データとを比較することにより通信エラーを確実に検出することができる。かくして、簡易な構造でありながら、通信エラーを確実に検出できる通信方法、通信システム及び通信装置を実現できる。
第1実施例における通信システムの構成を示すブロック図である。 第1実施例におけるデータ比較部の構成を示す構成図である。 第1実施例におけるデータ転送処理手順を示すフローチャートである。 第1実施例におけるデータの送信及び返送のタイミングを示すタイミングチャートである。 第2実施例における通信システムの構成を示すブロック図である。 第2実施例におけるライト時のデータの送受信のタイミングを示すタイミングチャートである。 第2実施例におけるライト処理手順を示すフローチャートである。
以下、発明を実施するための形態(以下、これを実施例と呼ぶ)について、図面を用いて詳細に説明する。
[1.第1実施例]
[1−1.通信システムの構成]
図1に、通信システム1の構成を示す。この通信システム1は、例えば、プリンタなどの画像形成装置に組み込まれ、画像形成装置に実装されたデバイス間でシリアル通信を行う為のシステムである。通信システム1は、シリアルデータの送信側であるマスタ装置2と、シリアルデータの受信側であるスレーブ装置3と、これらを接続する3本の信号線4、5、6とで構成される。マスタ装置2は、例えば、画像形成装置の画像形成プロセスを実行するデバイスであり、スレーブ装置3は、例えば、画像形成装置の駆動系/機構系を制御するデバイスである。
信号線4は、マスタ装置2がスレーブ装置3へシリアルデータを送信する為のラインであり、以下、送信信号線4と呼ぶ。信号線5は、マスタ装置2がスレーブ装置3からシリアルデータを受信する為のラインであり、以下、受信信号線5と呼ぶ。信号線6は、シリアルデータの送受信のタイミングを同期させる為の転送クロックをマスタ装置2がスレーブ装置3へ送信する為のラインであり、以下、クロック信号線6と呼ぶ。
マスタ装置2は、マイクロプロセッサ(以下、MPUと呼ぶ)10と、送信制御部11と、受信制御部12と、データ比較部13とを有している。MPU10は、スレーブ装置3へのデータのライト(書き込み)及びスレーブ装置3からのデータのリード(読み出し)を制御する。
MPU10は、スレーブ装置3へデータをライトする場合、データのライト先となるレジスタを指定する為のアドレスと、データをライトする旨を示す制御情報とでなる8ビットのパラレルデータと、指定のレジスタにライトするデータでなる8ビットのパラレルデータとを用意する。
MPU10は、まずアドレスと制御情報(ライト)とでなるパラレルデータを送信制御部11に送る。送信制御部11は、このパラレルデータを受け取ると、このパラレルデータを送信データとしてデータ比較部13に送るとともに、シリアルデータに変換し、転送クロックに同期させて1ビットずつ送信信号線4を介してスレーブ装置3に送信する。さらに、このとき送信制御部11は、転送クロックをクロック信号線6を介してスレーブ装置3に送信するとともに、受信制御部12にも送る。その後、送信制御部11は、シリアルデータを送信し終えると、転送完了通知信号をMPU10に送る。
MPU10は、次に、指定のレジスタにライトするデータでなるパラレルデータを送信制御部11に送る。送信制御部11は、このパラレルデータを受け取ると、このパラレルデータを送信データとしてデータ比較部13に送るとともに、シリアルデータに変換し、転送クロックに同期させて1ビットずつ送信信号線4を介してスレーブ装置3に送信する。また、このとき、送信制御部11は、転送クロックをクロック信号線6を介してスレーブ装置3に送信するとともに、受信制御部12にも送る。その後、送信制御部11は、シリアルデータを送信し終えると、転送完了通知信号をMPU10に送る。
このように、スレーブ装置3へデータをライトする場合、マスタ装置2は、まず、アドレスと制御情報(ライト)とでなるシリアルデータをスレーブ装置3へ転送して、その後、ライトするデータでなるシリアルデータをスレーブ装置3へ転送するようになっている。
受信制御部12は、スレーブ装置3から受信信号線5を介して返送されるシリアルデータを転送クロックに同期させて1ビットずつ受信して取り込み、パラレルデータに変換して返送データとしてデータ比較部13に送る。このとき、受信制御部12には、まず、スレーブ装置3が受信して取り込んだアドレスと制御情報とでなるシリアルデータがスレーブ装置3から返送され、つづけて、スレーブ装置3が受信して取り込んだライトするデータでなるシリアルデータがスレーブ装置3から返送されてくる。ゆえに、受信制御部12は、これら2つのシリアルデータを、順にパラレルデータに変換してデータ比較部13に送る。
データ比較部13は、送信制御部11から受け取ったパラレルデータ(すなわちスレーブ装置3に送信した送信データ)と、受信制御部12から受け取ったパラレルデータ(すなわちスレーブ装置3から返送された返送データ)とを比較して、比較結果を示すエラー信号をMPU10に送る。具体的には、データ比較部13は、まず送信制御部11から受け取ったアドレスと制御情報(ライト)とでなるパラレルデータと、受信制御部12から受け取ったアドレスと制御情報(ライト)とでなるパラレルデータとを比較してエラー信号をMPU10に送り、その後、送信制御部11から受け取ったライトするデータでなるパラレルデータと、受信制御部12から受け取ったライトするデータでなるパラレルデータとを比較してエラー信号をMPU10に送る。
また、MPU10は、スレーブ装置3からデータをリードする場合、データのリード先となるレジスタを指定する為のアドレスと、データをリードする旨を示す制御情報とでなる8ビットのパラレルデータを用意して、これを送信制御部11に送る。
送信制御部11は、このパラレルデータを受け取ると、このパラレルデータを送信データとしてデータ比較部13に送るとともに、シリアルデータに変換し、転送クロックに同期させて1ビットずつ送信信号線4を介してスレーブ装置3に送信する。さらに、このとき送信制御部11は、転送クロックをクロック信号線6を介してスレーブ装置3に送信するとともに、受信制御部12にも送る。その後、送信制御部11は、シリアルデータを送信し終えると、転送完了通知信号をMPU10に送る。
受信制御部12は、スレーブ装置3から受信信号線5を介して送信されてくるシリアルデータを転送クロックに同期させて1ビットずつ受信して取り込み、パラレルデータに変換する。このとき、受信制御部12には、まず、スレーブ装置3が受信して取り込んだアドレスと制御情報(リード)とでなるシリアルデータがスレーブ装置3から返送され、つづけて、スレーブ装置3がリードしたデータでなるシリアルデータがスレーブ装置3から送られてくる。受信制御部12は、最初に返送されてくるアドレスと制御情報(リード)とでなるシリアルデータについては、パラレルデータに変換した後、返送データとしてデータ比較部13に送り、次に送られてくるリードしたデータでなるシリアルデータについては、パラレルデータに変換した後、受信データとしてMPU10に送る。
データ比較部13は、送信制御部11から受け取った送信データ(アドレスと制御情報(リード)とでなるパラレルデータ)と、受信制御部12から受け取った返送データ(アドレスと制御情報(リード)とでなるパラレルデータ)とを比較してエラー信号をMPU10に送る。
一方、スレーブ装置3は、受信制御部20と、送信バッファ21と、送信制御部22と、レジスタ部23と、切替器24を有している。受信制御部20は、マスタ装置2から送信信号線4を介して送信されてくるシリアルデータを、クロック信号線6を介して送信されてくる転送クロックに同期させて1ビットずつ受信して取り込み、このシリアルデータを1ビットずつ送信バッファ21に送るとともに、パラレルデータに変換してレジスタ部23に送る。尚、データをライトする場合、受信制御部20には、まずアドレスと制御情報(ライト)とでなるシリアルデータが送られ、その後、ライトするデータでなるシリアルデータが送られてくる。一方で、データをリードする場合、受信制御部20には、アドレスと制御情報(リード)とでなるシリアルデータのみが送られてくる。受信制御部20は、これらを1ビットずつ取り込み、送信バッファ21に送るとともに、パラレルデータに変換してレジスタ部23に送るようになっている。
送信バッファ21は、1ビットの容量でなり、受信制御部20から送られてくるシリアルデータを1ビットずつラッチして、転送クロックに同期させて1ビットずつ受信信号線5を介してマスタ装置2に送信する。
レジスタ部23は、アドレスと制御情報とでなるパラレルデータを参照して、制御情報にデータをライトする旨が示されていれば、次に送られてくるパラレルデータを、指定のアドレスにライトする。このようにして指定のアドレスにライトされたパラレルデータは、スレーブ装置3内部の様々なモジュール(図示せず)の制御に使用される。また一方で、制御情報にデータをリードする旨が示されていれば、レジスタ部23は、指定のレジスタからデータをリードして、これを送信制御部22に送る。
送信制御部22は、レジスタ部23から、リードしたデータでなる8ビットのパラレルデータが送られてくると、切替器24を制御して、受信信号線5との接続対象を送信バッファ21から自身に切り替えた後、このパラレルデータをシリアルデータに変換し、クロック信号線6を介して送信されてくる転送クロックに同期させて1ビットずつ受信信号線5を介してスレーブ装置3に送信する。送信を完了すると、送信制御部22は、切替器24を制御して、受信信号線5との接続対象を送信バッファ21に切り替える。
通信システム1は、このような構成でなり、マスタ装置2とスレーブ装置3との間でシリアル通信を行うことで、スレーブ装置3へのデータのライト及びスレーブ装置3からのデータのリードを実行する。
[1−2.データ比較部の構成]
ここで、データ比較部13の構成を図2に示す。データ比較部13は、8個のXOR回路30と1個のOR回路31とで構成される。8個のXOR回路30のそれぞれには、送信制御部11から8ビットのパラレルデータでなる送信データの各ビットが入力されるとともに、受信制御部12から8ビットのパラレルデータでなる返送データの各ビットが入力され、さらに8個のXOR回路30のそれぞれの出力が、OR回路31に入力されるようになっている。さらに、OR回路31の出力は、エラー信号として、MPU10から読み取ることができるようになっている。
データ比較部13は、このような構成でなり、送信制御部11から入力される8ビットの送信データと、受信制御部12から入力される8ビットの返送データとが完全に一致している場合にのみ、出力するエラー信号が『0』となり、それ以外の場合(すなわち送信データと返送データとが不一致の場合)は、出力するエラー信号が『1』となるように動作する。よって、データ比較部13から出力されるエラー信号が『0』であれば、送信データと返送データとが完全に一致していること、つまり、マスタ装置2から送信された元データが、そのままスレーブ装置3によって受信されて取り込まれたことを意味する。一方で、エラー信号が『1』であれば、送信データと返送データとが不一致であること、つまり、マスタ装置2から送信された送信データが、通信エラーによりビット誤りが生じた状態で、スレーブ装置3によって受信されて取り込まれたことを意味する。
MPU10は、このエラー信号から、スレーブ装置3へ送信したデータが正常にスレーブ装置3へと転送されて取り込まれたかどうか、すなわち正常にデータの転送が完了したかどうかを判断することができる。
[1−3.データ転送処理手順]
次に、マスタ装置2からスレーブ装置3へデータを転送するときの処理手順(これをデータ転送処理手順と呼ぶ)について、図3に示すフローチャートを用いて詳しく説明する。
まずマスタ装置2のMPU10が、スレーブ装置3に転送する8ビットのパラレルデータを用意する。このパラレルデータとしては、上述したように、アドレスと制御情報(ライト)とでなるパラレルデータと、ライトするデータでなるパラレルデータと、アドレスと制御情報(リード)とでなるパラレルデータの3種類が存在する。そして、最初のステップSP1で、MPU10がこのパラレルデータを送信制御部11に書き込み、その後、送信制御部11がこのパラレルデータをシリアルデータに変換し、転送クロックに同期させて最上位ビット(b7)からスレーブ装置3への転送を開始する。また、このとき送信制御部11に書き込まれたパラレルデータは、データ比較の為に、送信制御部11から受信制御部12にも送られる。つづくステップSP2でMPU10は、送信制御部11によるシリアルデータの転送が完了するのを待ち受け、送信制御部11から転送完了通知信号を受け取ると、この時点でシリアルデータの転送が完了したと判断する。
ステップSP1とステップSP2とで行われるマスタ装置2からスレーブ装置3へのシリアルデータの転送は、マスタ装置2のハードウェアによって自動的に行われる。具体的に説明すると、マスタ装置2は、送信制御部11によって、図4に示すように、送信データとしてのシリアルデータを転送クロックのクロックパルスの変化タイミングである立ち下りに同期させて最上位ビット(b7)から順に1ビットずつ転送していき、最下位ビット(b0)の転送後、追加で1ビットの無効データを転送する。この無効データはスレーブ装置3には取り込まれないダミーデータであり、この為、『1』でも『0』でもよく、本実施例では例えば『1』とする。尚、この無効データに対して、b7〜b0の8ビットの送信データは、スレーブ装置3に取り込まれる有効データである。つまり、マスタ装置2は、送信制御部11によって、送信データ(有効データ)としての8ビットと、無効データ(ダミーデータ)としての1ビットとの計9ビットのシリアルデータを、9クロックパルスの転送クロックに同期させて転送する。このようにして、マスタ装置2によるシリアルデータの転送が行われる。
一方、マスタ装置2から転送されてくるシリアルデータの受信と返送は、スレーブ装置3のハードウェアによって自動的に行われる。具体的に説明すると、スレーブ装置3は、受信制御部20によって、マスタ装置2から転送されてくるシリアルデータを、転送クロックの変化タイミングである立ち下りに同期させて順に1ビットずつ受信して取り込みながら、取り込んだシリアルデータを送信バッファ21によって1ビットずつ順にラッチしていき、シリアルデータの各ビットを受信タイミングから1クロックパルス分遅れたタイミングで返送データとしてマスタ装置2に返送する。
このとき、受信制御部20は、マスタ装置2から、9ビットのシリアルデータを受信することになるが、最後の9ビット目は無効データである為、取り込まない。一方で、送信バッファ21には、8ビットの送信データ(有効データ)と1ビットの無効データでなる9ビット全てが順に送られ、各ビットが順にラッチされる。
送信バッファ21からは、各ビットを受信タイミングから1クロックパルス分遅れたタイミングで返送する為、転送クロックの2番目のクロックパルスから9番目のクロックパルスまでの8クロックパルスで、受信した9ビットのうち、最後の無効データでなる1ビットを除く残りの8ビット(b7〜b0)がマスタ装置2に返送データとして返送されることになる。最後の無効データは、そのまま送信バッファ21に残され、次の転送時の最初のクロックパルスでマスタ装置2に返送される。
よって、スレーブ装置3は、前回転送時に送信バッファ21に残された無効データとしての1ビットと、今回受信したシリアルデータの無効データを除く残りの8ビットとの計9ビットのシリアルデータを、9クロックパルスの転送クロックに同期させて返送する。このようにしてスレーブ装置3によるシリアルデータの受信及び返送が行われる。
マスタ装置2の受信制御部12は、スレーブ装置3から返送されてくる9ビットのシリアルデータを転送クロックの立ち下がりに同期して順に受信するが、最初のクロックパルスで受信した先頭のビットは、上述のように無効データである為、取り込まない。よって、受信制御部12は、2番目のクロックパルスから9番目のクロックパルスまでの8クロックパルスで取り込んだ8ビットの返送データとしてのシリアルデータをパラレルデータに変換してデータ比較部13に送る。このように、マスタ装置2からスレーブ装置3に送信される送信データと、スレーブ装置3からマスタ装置2に返送される返送データは、無効データのビット数と同数のクロックパルス分(1クロックパルス分)ずれている為、マスタ装置2では、受信制御部12が、受信したシリアルデータの先頭のビットを取り込まないようにして、送信データの各ビットと返送データの各ビットの位置が合うように返送データを1クロックパルス分ずらしてデータ比較部13に送るようになっている。これにより、データ比較部13では、送信データの各ビットと返送データの各ビットとを比較することができる。
また、マスタ装置2からスレーブ装置3へシリアルデータの転送を開始してから、スレーブ装置3からマスタ装置2へのシリアルデータの返送が完了するまでの処理は、8ビットの送信データを転送するのに要する8クロックパルス+1ビットの無効データを転送するのに要する1クロックパルスの計9クロックパルスの時間で完了することになる。
マスタ装置2の送信制御部11は、最後(9番目)のクロックパルス及び無効データを送出し終えると、転送完了通知信号をMPU10へと送る。MPU10は、転送完了通知信号を受け取り、シリアルデータの転送が完了したと判断すると、つづくステップSP3(図3)でデータ比較部13からエラー信号を読み取り、エラー判定を行う。
ここで、マスタ装置2の受信制御部12には、最後のクロックパルスを送出し終えた時点で、送信制御部11から送られてきた送信データとしての8ビットと、受信制御部12から送られてきた返送データとしての8ビットが書き込まれていることになり、このとき出力されるエラー信号が『1』であれば、送信データと返送データとが不一致であること、『0』であれば、送信データと返送データとが一致していることを示す。
よって、MPU10は、エラー信号が『1』であれば、通信エラーと判断して、ステップSP1に戻り、再度、シリアルデータの転送を行う。一方で、エラー信号が『0』であれば、MPU10は、転送が正常に終了したと判断して、転送を完了する。つまり、MPU10は、通信エラーがなくなるまで、シリアルデータの転送を繰り返す。
ところで、スレーブ装置3にデータをライトする場合、マスタ装置2からスレーブ装置3へのデータの転送は、アドレスと制御情報(ライト)でなるシリアルデータの転送と、ライトするデータでなるシリアルデータの転送とがセットで行われる。したがって、例えば、アドレスと制御情報(ライト)でなるシリアルデータの転送時に通信エラーが発生した場合、マスタ装置2のMPU10は、つづくライトするデータでなるシリアルデータの転送を一旦完了してから、再度、アドレスと制御情報(ライト)でなるシリアルデータと、ライトするデータでなるシリアルデータとを順に転送する。また、ライトするデータでなるシリアルデータの転送時に通信エラーが発生した場合、MPU10は、再度、アドレスと制御情報(ライト)でなるシリアルデータを転送したうえで、ライトするデータでなるシリアルデータを再転送する。
一方、スレーブ装置3からデータをリードする場合、スレーブ装置3によってリードされたデータが受信信号線5を介してマスタ装置2に送信される間、この受信信号線5をデータの返送に使用することはできなくなる。したがって、アドレスと制御情報(リード)でなるシリアルデータの転送時に通信エラーが発生した場合、MPU10は、スレーブ装置3によってリードされたデータを受信制御部12から受け取った後、再度、アドレスと制御情報(リード)でなるシリアルデータを転送する。
ところで、上述したように、本実施例の通信システム1では、通信エラーがなくなるまで、マスタ装置2からスレーブ装置3へのデータの転送を繰り返す為、例えば、通信エラーが発生すると、通信エラーがなくなるまでの間、スレーブ装置3のレジスタに、ビット誤りが生じたデータ(これをエラーデータと呼ぶ)が保持される状況が起こり得る。
このようなエラーデータが、そのままスレーブ装置3内部のモジュールの制御に用いられると、モジュールの動作が不安定になる恐れがある。そこで、通信システム1は、モジュールを制御する為にレジスタからデータが読み出される周期よりも、十分に短い時間でデータの転送処理を行う構成となっている。
例えば、モジュールを制御する為にレジスタから1秒ごとにデータを読み出す必要がある場合、通信システム1は、8ビットのシリアルデータの転送から返送までの転送処理を1秒間に4回以上実行できる速度で転送処理を行う。4回以上とする理由は、スレーブ装置3にデータをライトする場合、データの転送処理を2回連続で行う為、通信エラーによる再転送を含めると、レジスタからデータが読み出される周期の間にデータの転送処理を少なくとも4回実行する必要があるからである。
このように動作することで、通信システム1では、通信エラーが発生しても、レジスタからエラーデータが読み出されるより先に、レジスタに正常データを上書きすることができるので、エラーデータがモジュールの制御に用いられる状況を極力回避できる。ちなみに、スレーブ装置3側で制御されるモジュールは、例えばモータやヒータなどであり、シリアル通信で実現可能な通信速度(例えば数Mbps)と比べて十分長い周期で制御されるモジュールであるとする。
[1−4.まとめと効果]
ここまで説明したように、本実施例の通信システム1では、スレーブ装置3側に、マスタ装置2から受信して取り込んだ送信データをそのまま返送データとしてマスタ装置2に返送する回路(送信バッファ21)を組み込み、マスタ装置2側で、スレーブ装置3に転送した送信データの各ビットとスレーブ装置3から返送されてきた返送データの各ビットとを比較する。ここで、マスタ装置2側では、送信データと返送データとが1クロックパルス分ずれている為、返送データを1クロックパルス分(クロックパルス1回分)ずらすことにより、返送データの各ビットと送信データの各ビットとを対応させたうえで送信データと返送データとを比較する。そして、送信データと返送データとが一致しない場合には、通信エラーが発生しているとマスタ装置2側で判断して、再度、マスタ装置2からスレーブ装置3へ送信データを転送するようにした。こうすることで、スレーブ装置3側では、最終的に、ビット誤りのない正常なデータを取り込むことができる。
また、この通信システム1では、マスタ装置2側で、送信データの各ビットと返送データの各ビットとを比較して通信エラー(ビット誤り)を検出するようにしたことにより、パリティチェックと比べて、より確実に通信エラー(ビット誤り)を検出できる。
さらに、スレーブ装置3側には、取り込んだデータをそのまま返送データとしてマスタ装置2に返送する回路(送信バッファ21)が組み込まれているが、この回路は、取り込んだデータをラッチして出力するだけの簡易な回路であり、データの返送をハードウェアによって自動的に行うようになっている。ゆえに、本実施例のスレーブ装置3は、例えばCRCのような演算を行う回路が組み込まれている従来のスレーブ装置と比べて簡易な構成でなり、そのうえ通信エラーを検出する為の特別な処理をソフトウェアで行う必要がなく、低コストで信頼性の高いシステムを実現できる。
上述のように、本実施例の通信システム1によれば、簡易な構成でありながら、通信エラーを確実に検出することができる。
くわえて、通信システム1では、8ビットの送信データを転送するのに必要な時間(8クロックパルス分)に、1クロックパルス分を追加しただけの時間(9クロックパルス分)で、シリアルデータの転送から返送までの転送処理を完了できるので、通信エラーを検出する為にスレーブ装置3からマスタ装置2へデータを返送する仕組みでありながら、転送処理に要する時間の増加分を最小限(1クロックパルス分のみ)に抑えることができる。
[2.第2実施例]
次に、第2実施例について説明する。この第2実施例は、通信エラーの検出方法が第1実施例とは異なる実施例である。
[2−1.通信システムの構成]
図5に、第2実施例の通信システム100の構成を示す。この通信システム100も、例えば、プリンタなどの画像形成装置に組み込まれ、画像形成装置に実装されたデバイス間でシリアル通信を行う為のシステムである。通信システム100は、シリアルデータの送信側であるマスタ装置101と、シリアルデータの受信側であるスレーブ装置102と、これらを接続する2本の信号線103、104とで構成される。マスタ装置101は、例えば、画像形成装置の画像形成プロセスを実行するデバイスであり、スレーブ装置102は、例えば、画像形成装置の駆動系/機構系を制御するデバイスである。
信号線103は、マスタ装置101とスレーブ装置102との間でシリアルデータでなる送受信データS1を送受信する為のラインであり、以下、送受信信号線103と呼ぶ。信号線104は、送受信データS1の送受信のタイミングを同期させる為の転送クロックS2をマスタ装置101がスレーブ装置102へ送信する為のラインであり、以下、クロック信号線104と呼ぶ。
マスタ装置101は、MPU110と、送信制御部111と、受信制御部112と、データ比較部113と、トライステート送信バッファ114と、入力バッファ115とを有している。
MPU110は、スレーブ装置102へのデータのライト(書き込み)及びスレーブ装置102からのデータのリード(読み出し)を制御する。MPU110は、スレーブ装置102へ転送すべきデータを用意して、データの転送開始及び転送完了の処理を行う。送信制御部111は、MPU110から、転送すべきデータであるパラレルデータを受け取り、これを送信データS3としてデータ比較部113に送るとともにシリアルデータ(送受信データS1)に変換し、送信イネーブルS4を制御して転送クロックS2に同期させて1ビットずつ送受信信号線103を介してスレーブ装置102に送信する。さらに、このとき送信制御部111は、転送クロックS2をクロック信号線104を介してスレーブ装置102に送信するとともに、受信制御部112にも送る。その後、送信制御部111は、シリアルデータ(送受信データS1)を送信し終えると、転送完了を示す転送完了通知信号S5をMPU110に送る。
受信制御部112は、スレーブ装置102から送受信信号線103を介して送信されてくるシリアルデータ(送受信データS1)を転送クロックS2に同期させて1ビットずつ受信して取り込み、パラレルデータに変換して受信データS6としてデータ比較部113に送る。
データ比較部113は、送信制御部111から受け取ったパラレルデータ(すなわちスレーブ装置102に送信した送信データS3)と、受信制御部112から受け取ったパラレルデータ(すなわちスレーブ装置102から受信した受信データS6)とをビット毎に比較して、比較結果を示すエラー信号S7をMPU110に送る。
一方、スレーブ装置102は、受信制御部120と、送信制御部121と、ライトリード制御部122と、機能レジスタ123と、ミラーレジスタ124と、切替器125と、トライステート送信バッファ126と、入力バッファ127とを有している。
受信制御部120は、マスタ装置101から送受信信号線103を介して送信されてくるシリアルデータ(送受信データS1)を、クロック信号線104を介して送信されてくる転送クロックS2に同期させて1ビットずつ受信して取り込み、このシリアルデータ(送受信データS1)をパラレルデータに変換して、ライトリード制御部122に送るとともに、ミラーレジスタ124に書き込む(ライトする)。
送信制御部121は、機能レジスタ123又はミラーレジスタ124から読み出されたパラレルデータでなるレジスタデータS8をシリアルデータに変換し、送信イネーブルS9を制御してクロック信号線104を介して送信されてくる転送クロックS2に同期させて1ビットずつ送受信信号線103を介して送受信データS1としてマスタ装置101に送信する。
ライトリード制御部122は、選択信号S10により切替器125を制御することにより、機能レジスタ123の出力とミラーレジスタ124の出力の一方を、切替器125から送信制御部121に送るレジスタデータS8として選択するとともに、送信制御部121の送信を制御する。
機能レジスタ123は、ライトリード制御部122によってパラレルデータの読み書き(リード/ライト)が行われる。ミラーレジスタ124は、受信制御部120によってパラレルデータの読み書き(リード/ライト)が行われる。このミラーレジスタ124は、常に最後に書き込まれたデータ(詳しくは後述するが機能レジスタ123のアドレスと機能レジスタ123にライトするライトデータからなるデータ)を保持するようになっている。
通信システム100は、このような構成でなり、マスタ装置101とスレーブ装置102との間でシリアル通信を行うことで、スレーブ装置102へのデータのライト及びスレーブ装置102からのデータのリードを実行する。
[2−2.通信システムの動作]
次に、図6に示すタイミングチャートを用いて、マスタ装置101からスレーブ装置102にデータをライトするときの動作について詳しく説明する。
まず、前提として、スレーブ装置102内の機能レジスタ123及びミラーレジスタ124のアドレスは、15ビットで表されるものとする。ここでは、一例として、機能レジスタ123のアドレスを『0x0001』のうちの最上位ビット[15]を除く残りの15ビット[14:0](ビット[0]〜[14])とし、ミラーレジスタ124のアドレスを『0x0002』のうちの15ビット[14:0]とする。
また、機能レジスタ123のデータ幅は16ビットであり、マスタ装置101から機能レジスタ123にライトするデータ(これをライトデータと呼ぶ)としてスレーブ装置102に送信される16ビットのうち、上位8ビットは下位8ビットのビットイネーブルとなっている。つまり、上位8ビットは、下位8ビットのうちのどのビットを書き換えるかを示す書換情報となっている。
具体的な例を挙げると、例えば、ライトデータが『0x0300』であるとする。これを2進数で表記すると、『00000011 00000000』となる。この場合、上位8ビットのビット[1:0](ビット[0]〜[1]、ビット[0]は最下位ビット)がデータの書き換えを示す『1』であり、下位8ビットの対応するビット[1:0]が『0』であることから、このライトデータによって、機能レジスタ123のビット[1:0]が『0』に書き換えられる。このとき、機能レジスタ123のビット[7:2](ビット[2]〜[7])は更新されない。
また、例えば、ライトデータが『0xC0C0』であるとする。これを2進数で表記すると、『11000000 11000000』となる。この場合、上位8ビットのビット[7:6](ビット[6]〜[7])がデータの書き換えを示す『1』であり、下位8ビットの対応するビット[7:6]が『1』であることから、このライトデータによって、機能レジスタ123のビット[7:6]が『1』に書き換えられる。このとき、機能レジスタ123のビット[5:0](ビット[0]〜[5])は更新されない。
尚、機能レジスタ123の上位8ビット[15:8](ビット[8]〜[15])は、常に『0』であり、また、機能レジスタ123の初期値は、一例として、『0x00FF』となっている。
このように、通信システム100では、スレーブ装置102の機能レジスタ123にデータをライトする際、機能レジスタ123の各ビットを1度に全部書き換えるのではなく、所望のビットのみを書き換えるようになっている。これにより、通信システム100は、例えば、機能レジスタ123の各ビットの値によって、画像形成装置の各駆動部の動作を個別に制御するような場合に、所望の駆動部以外の動作はそのままに、所望の駆動部の動作のみをON/OFF制御するようなことができる。尚、ミラーレジスタ124のデータ幅は、機能レジスタ123のデータ幅の2倍の32ビットとなっている。
このような前提をふまえて、以下、マスタ装置101からスレーブ装置102にデータをライトするときの動作について説明する。まず、図6に示す時点T1において、MPU110は、機能レジスタ123にライトを行うべく、32ビットのパラレルデータ『0x03008001』を送信制御部111に送る。送信制御部111は、送信データS3として、パラレルデータ『0x03008001』をデータ比較部113に送る。
ここで、『0x03008001』の下位16ビット『0x8001』の最上位ビット[15]は、ライト/リードの指示を表すビットであり、この場合、『1』であるので、ライトを指示している。さらに、『0x8001』の残りの15ビット(ビット[14:0])は、機能レジスタ123のアドレス(『0x0001』の15ビット[14:0])を示している。また、『0x03008001』の上位16ビット『0x0300』は、ライトデータであり、上述したように、上位8ビットが下位8ビットのビットイネーブルとなっている。
つまり、『0x03008001』は、機能レジスタ123にライトデータ『0x0300』に基づいてライトすることを指示する送信データS3となっている。
その後の時点T2において、MPU110が送信制御部111に送信を指示すると、送信制御部111は、パラレルデータ『0x03008001』の下位16ビット『0x8001』をシリアルデータに変換し、送受信データS1として、転送クロックS2に同期させて出力する(つまりスレーブ装置102に送信する)。スレーブ装置102の受信制御部120は、マスタ装置101から送信されてくる送受信データS1を、転送クロックS2に同期させて受け取りつつ、16ビットのパラレルデータ『0x8001』に変換する。
その後の時点T3において、スレーブ装置102の受信制御部120は、パラレルデータ『0x8001』を、ライトリード制御部122に送るとともに、ミラーレジスタ124に書き込む。これにより、ミラーレジスタ124の下位16ビットに『0x8001』が格納される。
その後の時点T4において、マスタ装置101の送信制御部111は、パラレルデータ『0x03008001』の上位16ビット『0x0300』をシリアルデータに変換し、送受信データS1として、転送クロックS2に同期させてスレーブ装置102に送信する。ここで、スレーブ装置102の受信制御部120は、マスタ装置101から送られてくる送受信データS1を、転送クロックS2に同期させて受け取りつつ、16ビットのパラレルデータ『0x0300』に変換する。
その後の時点T5において、スレーブ装置102の受信制御部120は、パラレルデータ『0x0300』を、ライトリード制御部122に送るとともに、ミラーレジスタ124に書き込む。これにより、ミラーレジスタ124の上位16ビットに『0x0300』が格納される。この時点で、ミラーレジスタ124には、32ビットのパラレルデータ『0x03008001』、すなわちスレーブ装置102が送受信データS1として2回に分けて受信した送信データS3がそのまま格納されたことになる。
またこのとき、ライトリード制御部122が、パラレルデータ『0x8001』と『0x0300』に応じて、機能レジスタ123の値を書き換えることで、機能レジスタ123の値が『0x00FC』となる。
その後の時点T6において、マスタ装置101の送信制御部111は、スレーブ装置102のミラーレジスタ124に格納された送信データS3のリードを行う。すなわち、送信制御部111は、まず16ビットのパラレルデータ『0x0002』をシリアルデータに変換し、送受信データS1として転送クロックS2に同期させて出力する(すなわちスレーブ装置102に送信する)。
ここで、『0x0002』の最上位ビット[15]は、ライト/リードの指示を表すビットであり、この場合、『0』であるので、リードを指示している。さらに、『0x0002』の残りの15ビット(ビット[14:0])は、ミラーレジスタ124のアドレスを示している。つまり、『0x0002』は、ミラーレジスタ124からデータをリードすることを指示するデータとなっている。
また、スレーブ装置102の受信制御部120は、マスタ装置101から送られてくる送受信データS1を、転送クロックS2に同期させて受け取りつつ、16ビットのパラレルデータ『0x0002』に変換する。
その後の時点T7において、スレーブ装置102の受信制御部120は、パラレルデータ『0x0002』を、ライトリード制御部122に送る。ライトリード制御部122は、切替器125を制御してミラーレジスタ124の出力(32ビットのパラレルデータでなるリードデータ)をレジスタデータS8として選択するとともに、送信制御部121にデータの送信を指示する。これにより、送信制御部121には、ミラーレジスタ124からリードされた32ビットのパラレルデータ『0x03008001』(すなわちスレーブ装置102が送受信データS1として受信した送信データS3)がレジスタデータS8として送られることになる。
その後の時点T8において、送信制御部121は、レジスタデータS8の下位16ビットのパラレルデータ『0x8001』をシリアルデータに変換し、送受信データS1として転送クロックS2に同期させて出力する(すなわちマスタ装置101に送信する)。マスタ装置101の受信制御部112は、スレーブ装置102から送信されてくる送受信データS1を、転送クロックS2に同期させて受け取りつつ、16ビットのパラレルデータ『0x8001』に変換する。
その後の時点T9において、受信制御部112は、パラレルデータ『0x8001』を、受信データS6の下位16ビットとして、データ比較部113に送る。
その後の時点T10において、スレーブ装置102の送信制御部121は、レジスタデータS8の上位16ビットのパラレルデータ『0x0300』をシリアルデータに変換し、送受信データS1として転送クロックS2に同期させて出力する(すなわちマスタ装置101に送信する)。マスタ装置101の受信制御部112は、スレーブ装置102から送信されてくる送受信データS1を、転送クロックS2に同期させて受け取りつつ、16ビットのパラレルデータ『0x0300』に変換する。
その後の時点T11において、マスタ装置101の送信制御部111からMPU110へ送られる転送完了通知信号S5が、『0』から転送完了を示す『1』に更新されることにより、MPU110へ転送の完了が通知される。また、受信制御部112は、パラレルデータ『0x8001』及び『0x0300』を、受信データS6の下位16ビット及び上位16ビットとして(つまり『0x03008001』として)、データ比較部113に送る。
データ比較部113は、送信データS3と、受信データS6とを比較する。図5に示す例では、どちらも『0x03008001』である為、データ比較部113からMPU110へと送られるエラー信号S7は、ライトが正常に行われたことを示す『0』となる。これにより、MPU110は、正常にマスタ装置101からスレーブ装置102にデータがライトされたと認識して、ライトの動作を終了する。
このように、通信システム100では、マスタ装置101からスレーブ装置102にデータをライトする際に、マスタ装置101からスレーブ装置102に送受信データS1として送信した送信データS3に基づいて、マスタ装置101の機能レジスタ123へのライトを行うとともに、その送信データS3を、そのままミラーレジスタ124に書き込む。
さらに、マスタ装置101は、ミラーレジスタ124に書き込まれた送信データS3をレジスタデータS8として読み出させ、送受信データS1として受信する。そして、マスタ装置101は、スレーブ装置102から送受信データS1として受信した受信データS6(すなわちレジスタデータS8)と、スレーブ装置102へ送受信データS1として送信した送信データS3とを比較して、これらが一致していれば、データのライトが正常に行われたと認識するようになっている。
[2−3.ライト処理手順]
次に、マスタ装置101からスレーブ装置102にデータをライトするときのMPU110が実行する処理手順(これをライト処理手順と呼ぶ)について、図7に示すフローチャートを用いて詳しく説明する。
マスタ装置101のMPU110は、最初のステップSP100において、スレーブ装置102の機能レジスタ123に対するデータの書き込み(ライト)命令を発行する。つづくステップSP101において、MPU110は、転送完了通知信号S5をポーリングし、転送完了通知信号S5が転送がまだ完了していないことを示す『0』の場合は、引き続きこのステップSP101でポーリングを行い、転送が完了したことを示す『1』の場合は、このステップSP101で肯定結果を得て、続くステップSP102に移る。
ステップSP102においてMPU110は、エラー信号S7を確認する。ここで、エラー信号S7がライトが正常に行われなかったことを示す『1』の場合、MPU110は、再びステップSP100に戻り、再度、機能レジスタ123に対するデータの書き込み(ライト)命令を発行する。これに対して、エラー信号S7がライトが正常に行われたことを示す『0』の場合、MPU110は、ライト処理手順を終了する。
[2−4.まとめと効果]
ここまで説明したように、第2実施例の通信システム100では、スレーブ装置102側に、マスタ装置101から送受信データS1として受信した送信データS3に基づいてデータが書き込まれる機能レジスタ123とは別に、マスタ装置101から送受信データS1として受信した送信データS3がそのまま書き込まれるミラーレジスタ124を設け、マスタ装置101側で、スレーブ装置102に送信した送信データS3と、ミラーレジスタ124から読み出されて返送されてくる送信データS3である受信データS6とを比較する。
そして、送信データS3と受信データS6とが一致しない場合には、通信エラーが発生しているとマスタ装置101側で判断して、再度、マスタ装置101からスレーブ装置102へ送受信データS1を転送するようにした。こうすることで、スレーブ装置102側では、最終的に、機能レジスタ123に正常なデータを書き込むことができる。
また、この通信システム100では、マスタ装置101側で、送信データS3と受信データS6とを比較して通信エラー(ビット誤り)を検出するようにしたことにより、パリティチェックと比べて、より確実に通信エラー(ビット誤り)を検出できる。
さらに、スレーブ装置102側には、受信した送信データS3がそのまま書き込まれるミラーレジスタ124が組み込まれているが、このミラーレジスタ124は、受信した送信データS3を保持するだけの簡易な回路である為、例えばCRCのような演算を行う回路が組み込まれている従来のスレーブ装置と比べて簡易な構成でなり、そのうえ通信エラーを検出する為の特別な処理をソフトウェアで行う必要がなく、低コストで信頼性の高いシステムを実現できる。
上述のように、第2実施例の通信システム100についても、簡易な構成でありながら、通信エラーを確実に検出することができる。
くわえて、通信システム100では、スレーブ装置102が、機能レジスタ123とは別に設けたミラーレジスタ124に、受信した送信データS3をそのまま書き込み、これを受信データS6としてマスタ装置101が受信し、スレーブ装置102に送信した送信データS3と比較するようにした。
こうすることで、通信システム100のように、ビットイネーブル制御により、マスタ装置101からスレーブ装置102へ送信される送信データS3と、機能レジスタ123に実際に書き込まれたデータとが異なる場合でも、ミラーレジスタ124には常に送信データS3がそのまま保持されることになるので、機能レジスタ123のどのビットが書き換えられたのかを考慮する必要がなく、簡易な構成でありながら、より確実に通信エラー(ビット誤り)を検出できる。
[3.他の実施例]
[3−1.他の実施例1]
尚、上述した第1実施例では、通信エラーがなくなるまで、マスタ装置2からスレーブ装置3へのデータの転送を繰り返すようにして、例えば、データをスレーブ装置3のレジスタにライトする場合、スレーブ装置3側では、マスタ装置2から転送されてくるデータを、通信エラーの有無に関わらず、指定のレジスタにライトするようにした。これに限らず、スレーブ装置3側では、マスタ装置2から転送されてくるデータを、マスタ装置2側で通信エラー無しと判断された場合にのみ、指定のレジスタにライトするようにしてもよい。この場合、マスタ装置2は、データを転送するとき、例えば、9ビット目のダミーデータの次の10ビット目に、転送クロックに同期させて通信エラーの有無を示すエラー有無データを送信するようにする。このエラー有無データは、データ比較部13の出力(『0』又は『1』)を用いればよい。この場合、転送クロックは、10クロックパルス分転送されることになる。
スレーブ装置3では、アドレスと制御情報(ライト)とダミーデータとエラー有無データとでなる10ビットのデータを受信すると、受信制御部20が、例えば、これを図示しないバッファに保存する。次に、ライトするデータとダミーデータとエラー有無データとでなる10ビットのデータを受信すると、受信制御部20が、これを図示しないバッファに保存する。そして、最初に受信したデータの10ビット目のエラー有無データと、次に受信したデータの10ビット目のエラー有無データがともにエラー無しを示している場合にのみ、受信制御部20が、バッファに保存されているアドレスと制御情報(ライト)とでなる8ビットのデータと、ライトするデータでなる8ビットのデータとをレジスタ部23に送る。これにより、レジスタ部23が指定のレジスタにデータをライトする。このようにすれば、エラーデータがレジスタ部23の指定のレジスタにライトされてしまう状況を回避できる。
また、これに限らず、通信エラーの有無に関わらず、レジスタ部23の指定のレジスタにデータをライトするようにして、受信制御部20が、最初に受信したデータの10ビット目のエラー有無データと、次に受信したデータの10ビット目のエラー有無データがともにエラー無しを示している場合に、通信エラーがない旨をレジスタ部23に伝え、レジスタ部23が、通信エラーがない旨を伝えられた場合にのみ、レジスタにライトされたデータの読み出しを許可するようにしてもよい。また、第2実施例についても同様に、通信エラー無しと判断された場合にのみ機能レジスタ123にデータをライトするようにしてもよい。
尚、スレーブ装置3からデータをリードする場合も、スレーブ装置3側が、マスタ装置2側で通信エラー無しと判断された場合にのみ、指定のレジスタからデータをリードしてマスタ装置2に送信するようにしてもよい。この場合、スレーブ装置3では、アドレスと制御情報(リード)とダミーデータとエラー有無データとでなる10ビットのデータを受信すると、10ビット目のエラー有無データがエラー無しを示している場合にのみ、受信したアドレスと制御情報(リード)とでなる8ビットのデータをレジスタ部23に送る。これにより、レジスタ部23が指定のレジスタからデータをリードして、これを送信制御部22がマスタ装置2へ送信する。
[3−2.他の実施例2]
また、上述した第1実施例では、転送クロックのクロックパルスの変化タイミングである立ち下がりに同期させてシリアルデータを1ビットずつ転送及び返送するようにしたが、これに限らず、例えば、クロックパルスの変化タイミングである立ち上がりに同期させてシリアルデータを1ビットずつ転送及び返送するようにしてもよい。さらに、クロックパルスの立ち上がりと立ち下がりの両方に同期させてシリアルデータを1ビットずつ転送及び返送するようにしてもよい。立ち上がりと立ち下がりの両方に同期させる場合、同一周期の転送クロックであれば、立ち上がり又は立ち下がりのどちらかと同期させる場合と比べて、シリアルデータの通信速度が速くなる。
[3−3.他の実施例3]
さらに、上述した第1実施例では、8ビットの送信データ+1ビットの無効データでなる9ビットのシリアルデータを転送する場合について述べたが、これに限らず、送信データのビット数については、9ビット以上でもよく、また7ビット以下でもよい。さらに、8ビットの送信データに追加される無効データについても、例えば、2ビット以上であってもよい。尚、無効データを2ビット以上にする場合、スレーブ装置3の送信バッファ21の容量も2ビット以上にする必要がある。
[3−4.他の実施例4]
さらに、上述した第1実施例では、通信エラーがなくなるまで、マスタ装置2からスレーブ装置3へのデータの転送を繰り返すようにした。これに限らず、例えば、繰り返し回数が所定数に達したら、転送を中断して通信エラーが解除されない旨を、マスタ装置2が、所定の通知手段を介してユーザに通知したり、外部の装置に通知したりしてもよい。尚、この場合の所定数としては、例えば、モジュールの制御の為にスレーブ装置3のレジスタからデータが読み出される周期を基準にして設定すればよい。つまり、スレーブ装置3にデータをライトするには、1回のライトにつき2回の転送処理を連続して行うことになるが、例えば、2回の転送処理がそれぞれ5回繰り返されるとレジスタからデータが読み出される周期を超えてしまう場合、所定数を4に設定すればよい。また、第2実施例についても同様に、ライトの繰り返し回数が所定数に達したら、転送を中断するようにしてもよい。
[3−5.他の実施例5]
さらに、上述した第1実施例では、スレーブ装置3側で制御されるモジュールが、マスタ装置2及びスレーブ装置3間の通信速度(例えば数Mbps)と比べて十分長い周期で制御されるモジュールであるとしたが、これに限らず、例えば、レジスタから読み出されたデータが供給されてから所望の動作状態となるまでの時間が、マスタ装置2及びスレーブ装置3間の通信速度と比べて十分長いモジュールであってもよい。この場合、エラーデータがモジュールに供給されても、モジュールが異常な動作状態となる前に、正常データがモジュールに供給されれば、モジュールが異常な動作状態になることを防ぐことができる。このことは、第2実施例についても同様とする。
[3−6.他の実施例6]
また、上述した第1実施例では、相手側装置と通信する通信装置及び第1の通信装置の具体例であるマスタ装置2と、相手側装置及び第2の通信装置の具体例であるスレーブ装置3とからなる通信システム1に本発明を適用したが、これに限らず、本発明は、装置間でシリアル通信を行う様々なシステムに適用できる。
また、上述した第1実施例では、送信データと返送データとを比較して通信エラーの検出を行うエラー検出部の具体例として、XOR回路30とOR回路31とで構成されるデータ比較部13を用いたが、これに限らず、送信データと返送データとを比較できるものであれば、データ比較部13とは異なる構成のエラー検出部を用いてもよい。また、上述した実施例では、受信制御部12が、受信したシリアルデータの先頭のビットを取り込まないようにして、返送データを1クロックパルス分ずらしてデータ比較部13に送り、データ比較部13が送信データと返送データとを比較するようにしたが、これに限らず、受信制御部12により受信されたシリアルデータをデータ比較部13に送り、データ比較部13がシリアルデータの先頭のビットを取り込まないようにして、返送データを1クロックパルス分ずらして送信データと返送データとを比較するようにしてもよい。
[3−7.他の実施例7]
さらに、上述した第2実施例では、マスタ装置101からスレーブ装置102へデータをライトするときに、通信エラーがなくなるまで、マスタ装置101からスレーブ装置102へのデータの転送を繰り返すようにした。これに限らず、例えば、マスタ装置101がスレーブ装置102からデータをリードするときに、通信エラーがなくなるまで、スレーブ装置102からマスタ装置101へのデータの転送を繰り返すようにしてもよい。
この場合、マスタ装置101は、機能レジスタ123のアドレス及び機能レジスタ123からのリードを示す送信データS3を、データ比較部113に送るとともに、送受信データS1としてスレーブ装置102に送信する。スレーブ装置102は、この送受信データS1を、ライトリード制御部122に送るとともに、そのままミラーレジスタ124に書き込む。
マスタ装置101は、ミラーレジスタ124から読み出されたレジスタデータS8を送受信データS1として受信し、これを受信データS6としてデータ比較部113に送る。データ比較部113は、送信データS3と受信データS6とを比較して、エラー信号S7をMPU110に送る。MPU110は、エラー信号S7をもとに通信エラーが発生していると判断した場合には、再度、スレーブ装置102へ送受信データS1を送信する。
このようにすれば、ライト時だけでなく、リード時にも、通信エラー(ビット誤り)を検出することができる。
[3−8.他の実施例8]
さらに、上述した第2実施例の通信システム100においては、マスタ装置101とスレーブ装置102とを、送受信信号線103とクロック信号線104とで接続するようにした。これに限らず、送受信信号線103を、送信信号線と受信信号線とに分け、第1実施例と同様、マスタ装置101とスレーブ装置102とを、送信信号線、受信信号線、及びクロック信号線104の3本で接続するようにしてもよい。
[3−9.他の実施例9]
さらに、上述した第2実施例では、送信データS3及び受信データS6が32ビットで、マスタ装置101とスレーブ装置102との間では、送信データS3及び受信データS6を16ビットごとに分けて送受信データS1として送受信する通信システム100に本発明を適用した。これに限らず、送信データS3及び受信データS6を、そのまま32ビットの送受信データS1として送受信可能な通信システムに適用することもできる。また、これに限らず、送信データS3、受信データS6及び送受信データS1のビット数については、16ビットや32ビット以外のビット数であってもよく、本発明は、種々の通信システムに適用することができる。
[3−10.他の実施例10]
また、上述した第2実施例では、相手側装置と通信する通信装置及び第1の通信装置の具体例であるマスタ装置101と、相手側装置及び第2の通信装置の具体例であるスレーブ装置102とからなる通信システム100に本発明を適用したが、これに限らず、本発明は、装置間でシリアル通信を行う様々なシステムに適用できる。
また、上述した第2実施例では、送信データS3と返送データとしての受信データS6を比較して通信エラーの検出を行うエラー検出部の具体例として、データ比較部113を用いたが、これに限らず、送信データと返送データとを比較できるものであれば、データ比較部113とは異なる構成のエラー検出部を用いてもよい。また、上述した第2実施例では、スレーブ装置102に、第1のレジスタとしての機能レジスタ123と、記憶部及び第2のレジスタとしてのミラーレジスタ124を設けるようにしたが、これに限らず、第1のレジスタとして、機能レジスタ123とは異なるレジスタを設けるようにしてもよいし、記憶部及び第2のレジスタとして、ミラーレジスタ124とは異なる記憶部を設けるようにしてもよい。
[3−11.他の実施例11]
さらに、本発明は、上述した各実施例に限定されるものではない。すなわち本発明は、上述した各実施例の一部または全部を任意に組み合わせた実施例や、一部を抽出した実施例にもその適用範囲が及ぶものである。
本発明は、シリアル通信を行う装置で広く利用することができる。
1、100……通信システム、2、101……マスタ装置、2、102……スレーブ装置、4……送信信号線、5……受信信号線、6、104……クロック信号線、10、110……MPU、11、22、111、121……送信制御部、12、20、112、120……受信制御部、13、113……データ比較部、21……送信バッファ、23……レジスタ部、24、125……切替器、103……送受信信号線、122……ライトリード制御部、123……機能レジスタ、124……ミラーレジスタ。

Claims (16)

  1. 第1の通信装置と第2の通信装置との間でシリアル通信する通信方法であって、
    前記第1の通信装置が、第2の通信装置へ送信する送信データを保持するとともに、当該送信データを1ビットずつ前記第2の通信装置へ送信し、
    前記第2の通信装置が、前記第1の通信装置から送信されてくる前記送信データを1ビットずつ受信し、受信した送信データをそのまま記憶部に書き込み、当該記憶部に書き込まれた送信データを読み出し、返送データとして1ビットずつ前記第1の通信装置へ返送し、
    前記第1の通信装置が、前記第2の通信装置から返送されてくる返送データを1ビットずつ受信し、保持している前記送信データと受信した前記返送データとを比較することで通信エラーの検出を行う
    ことを特徴とする通信方法。
  2. 第1の通信装置と第2の通信装置との間でシリアル通信する通信方法であって、
    前記第1の通信装置が、前記第2の通信装置に送信する送信データを保持するとともに、当該送信データを転送クロックに同期させて1ビットずつ前記第2の通信装置へ送信し、
    前記第2の通信装置が、前記第1の通信装置から送信されてくる前記送信データを前記転送クロックに同期させて1ビットずつ受信して取り込み、取り込んだ送信データを当該送信データを取り込んだときの前記転送クロックの変化タイミングより所定回数後に発生した前記転送クロックの変化タイミングに同期させて1ビットずつ返送データとして前記第1の通信装置へ返送し、
    前記第1の通信装置が、前記第2の通信装置から返送されてくる返送データを前記転送クロックに同期させて1ビットずつ受信し、保持している前記送信データと受信した前記返送データとを前記転送クロックの変化タイミングに基づき前記所定回数ずらして比較することで通信エラーの検出を行う
    ことを特徴とする通信方法。
  3. 第1の通信装置と第2の通信装置とを有し、
    前記第1の通信装置は、
    前記第2の通信装置へ送信する送信データを保持するとともに、当該送信データを1ビットずつ前記第2の通信装置へ送信し、さらに、前記第2の通信装置から返送されてくる返送データを1ビットずつ受信し、保持している前記送信データと受信した前記返送データとを比較することで通信エラーの検出を行い、
    前記第2の通信装置は、
    前記第1の通信装置から送信されてくる前記送信データを1ビットずつ受信し、受信した送信データをそのまま記憶部に書き込み、当該記憶部に書き込まれた送信データを読み出し、前記返送データとして1ビットずつ前記第1の通信装置へ返送する
    ことを特徴とする通信システム。
  4. 前記第1の通信装置は、
    前記送信データと前記返送データとを比較して、前記送信データと前記返送データとが一致する場合に通信エラー無しと判断する一方で、前記送信データと前記返送データとが不一致の場合に通信エラー有りと判断し、通信エラー有りと判断した場合には、前記送信データを、再度、前記第2の通信装置に送信する
    ことを特徴とする請求項3に記載の通信システム。
  5. 前記第1の通信装置と前記第2の通信装置は、当該第1の通信装置と当該第2の通信装置との間でデータを送受信する為の送受信信号線と、データの送受信のタイミングを同期する為の転送クロックを前記第1の通信装置が前記第2の通信装置へ送信する為のクロック信号線との2つの信号線で接続されている
    ことを特徴とする請求項3又は4に記載の通信システム。
  6. 前記第1の通信装置は、
    前記第2の通信装置に設けられた第1のレジスタにデータを書き込む為の、当該第1のレジスタのアドレスと当該第1のレジスタに書き込むライトデータとで構成される前記送信データを保持するとともに、当該送信データを前記第2の通信装置に送信し、
    前記第2の通信装置は、前記第1のレジスタにくわえて第2のレジスタを有し、前記第1の通信装置から送信されてくる前記送信データに基づいて、前記第1のレジスタにデータを書き込むとともに、当該送信データをそのまま前記第2のレジスタに書き込み、前記第2のレジスタへの書き込みが完了した後、前記第2のレジスタに書き込まれた送信データを読み出し、前記返送データとして前記第1の通信装置へ返送する
    ことを特徴とする請求項3乃至5のいずれかに記載の通信システム。
  7. 前記ライトデータは、
    前記第1のレジスタのどのビットを書き換えるのかを示す書換情報と、当該書換情報により指定されたビットを書き換える為の値とで構成される
    ことを特徴とする請求項6に記載の通信システム。
  8. 第1の通信装置と第2の通信装置とを有し、
    前記第1の通信装置と第2の通信装置とが、第1の通信装置が第2の通信装置へシリアルデータを送信する為の送信信号線と、第1の通信装置が第2の通信装置からシリアルデータを受信する為の受信信号線と、シリアルデータの送受信のタイミングを同期する為の転送クロックを前記第1の通信装置が前記第2の通信装置へ送信する為のクロック信号線との3つの信号線で接続され、
    前記第1の通信装置は、
    前記転送クロックに同期させてシリアルデータでなる送信データを1ビットずつ前記第2の通信装置へ前記送信信号線を介して送信するとともに、当該送信データを保持し、さらに前記第2の通信装置から前記受信信号線を介して返送されてくるシリアルデータでなる返送データを前記転送クロックに同期させて1ビットずつ受信し、保持している前記送信データと受信した前記返送データとを前記転送クロックの変化タイミングに基づき所定回数ずらして比較することで通信エラーの検出を行い、
    前記第2の通信装置は、
    前記第1の通信装置から前記送信信号線を介して送信されてくる前記送信データを前記クロック信号線を介して送信されてくる前記転送クロックに同期させて1ビットずつ受信して取り込み、取り込んだ送信データを当該送信データを取り込んだときの前記転送クロックの変化タイミングより前記所定回数後に発生した前記転送クロックの変化タイミングに同期させて前記返送データとして前記第1の通信装置へ返送する
    ことを特徴とする通信システム。
  9. 前記第1の通信装置は、
    前記送信データと前記返送データとを比較して、前記送信データと前記返送データとが一致する場合に通信エラー無しと判断する一方で、前記送信データと前記返送データとが不一致の場合に通信エラー有りと判断し、通信エラー有りと判断した場合には、前記送信データを、再度、前記第2の通信装置に送信する
    ことを特徴とする請求項8に記載の通信システム。
  10. 前記第1の通信装置は、
    前記転送クロックのクロックパルスに同期させて前記送信データを1ビットずつ前記第2の通信装置へ送信するとともに、当該送信データを保持し、さらに当該送信データに続けて少なくとも1ビット以上の無効データを前記転送クロックのクロックパルスに同期させて前記送信信号線を介して1ビットずつ送信し、前記送信データと前記無効データを送信しつつ、前記送信データの各ビットを送信したタイミングから前記無効データのビット数と同数のクロックパルス分遅れたタイミングで前記第2の通信装置から返送されてくる前記返送データの各ビットを順番に受信し、前記送信データの各ビットと前記返送データの各ビットとを比較することで通信エラーの検出を行い、
    前記第2の通信装置は、
    前記第1の通信装置から送信されてくる前記送信データを前記転送クロックのクロックパルスに同期させて1ビットずつ受信して取り込み、さらに当該送信データに続けて送信されてくる前記無効データを前記転送クロックのクロックパルスに同期させて1ビットずつ受信し、前記送信データと前記無効データを受信しつつ、取り込んだ前記送信データの各ビットを、受信したタイミングから前記無効データのビット数と同数のクロックパルス分遅れたタイミングで順番に前記返送データとして前記第1の通信装置へ返送する
    ことを特徴とする請求項8又は9に記載の通信システム。
  11. 前記第1の通信装置から前記第2の通信装置3に送信される転送クロックは、前記送信データのビット数と前記無効データのビット数を足した数と同数のクロックパルスでなる
    ことを特徴とする請求項10に記載の通信システム。
  12. 前記第2の通信装置は、
    1ビットずつ受信して取り込んだ前記送信データを1ビットずつラッチして、前記転送クロックに同期させて1ビットずつ返送データとして出力するバッファを有している
    ことを特徴とする請求項8乃至11のいずれかに記載の通信システム。
  13. 前記無効データは、1ビット分のデータである
    ことを特徴とする請求項8乃至12のいずれかに記載の通信システム。
  14. 前記第1の通信装置は、
    前記通信エラーの検出結果を示すエラー有無データを、前記送信信号線を介して前記第2の通信装置に送信する
    ことを特徴とする請求項8乃至13のいずれかに記載の通信システム。
  15. 通信相手となる相手側装置と接続され、
    転送クロックに同期させて送信データを1ビットずつ前記相手側装置へ送信する送信制御部と、
    前記相手側装置から返送されてくる、前記相手側装置が受信してそのまま記憶部に書き込んだ後に当該記憶部から読み出された送信データでなる返送データを受信する受信制御部と、
    前記送信制御部から供給される前記送信データと、前記受信制御部から供給される前記返送データとを比較することで通信エラーの検出を行うエラー検出部と
    を有することを特徴とする通信装置。
  16. シリアルデータを送信する為の送信信号線と、シリアルデータを受信する為の受信信号線と、転送クロックを送信する為のクロック信号線との3つの信号線で通信相手となる相手側装置と接続され、
    前記転送クロックに同期させてシリアルデータでなる送信データを1ビットずつ前記相手側装置へ前記送信信号線を介して送信する送信制御部と、
    前記相手側装置から前記受信信号線を介して返送されてくる、前記相手側装置が受信して取り込んだ送信データでなる返送データを前記転送クロックに同期させて1ビットずつ受信する受信制御部と、
    前記送信制御部から供給される前記送信データと、前記受信制御部から供給される前記返送データとを前記転送クロックの変化タイミングに基づき所定回数ずらして比較することで通信エラーの検出を行うエラー検出部と
    を有することを特徴とする通信装置。
JP2015126767A 2014-11-27 2015-06-24 通信方法、通信システム及び通信装置 Pending JP2016111672A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014240121 2014-11-27
JP2014240121 2014-11-27

Publications (1)

Publication Number Publication Date
JP2016111672A true JP2016111672A (ja) 2016-06-20

Family

ID=56125075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015126767A Pending JP2016111672A (ja) 2014-11-27 2015-06-24 通信方法、通信システム及び通信装置

Country Status (1)

Country Link
JP (1) JP2016111672A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101948722B1 (ko) * 2017-08-30 2019-02-15 엘에스산전 주식회사 전력 기기 설정값 변경 방법
KR101949757B1 (ko) * 2017-08-30 2019-02-19 엘에스산전 주식회사 전력 기기 설정값 변경 방법
US10698468B2 (en) 2017-08-30 2020-06-30 Lsis Co., Ltd. Device and method for changing setting value of electric power equipment
CN112363763A (zh) * 2020-11-13 2021-02-12 山东云海国创云计算装备产业创新中心有限公司 数据处理方法、装置及计算机可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5467302A (en) * 1977-11-09 1979-05-30 Hitachi Ltd Counter device for bit error
JPS5955662A (ja) * 1982-09-24 1984-03-30 Fujitsu Ltd 計測デ−タ収集システムに於けるras機能動作時のデ−タ保証方法
JPH02274031A (ja) * 1989-04-15 1990-11-08 Fujitsu Ltd 通信異常処理方式
JPH06290160A (ja) * 1993-03-31 1994-10-18 Fujitsu Ten Ltd マイクロコンピュータ間のデータ通信方法及びマルチマイクロコンピュータシステム
US6353908B1 (en) * 1997-11-24 2002-03-05 Stmicroelectronics Gmbh Method of and circuit arrangement for digitally transferring bit sequences in selective manner
JP2008197752A (ja) * 2007-02-08 2008-08-28 Sharp Corp データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体
US20100153799A1 (en) * 2008-12-16 2010-06-17 Maroni Peter D Method and apparatus for loopback self testing
JP2012085222A (ja) * 2010-10-14 2012-04-26 Denso Corp 通信制御方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5467302A (en) * 1977-11-09 1979-05-30 Hitachi Ltd Counter device for bit error
JPS5955662A (ja) * 1982-09-24 1984-03-30 Fujitsu Ltd 計測デ−タ収集システムに於けるras機能動作時のデ−タ保証方法
JPH02274031A (ja) * 1989-04-15 1990-11-08 Fujitsu Ltd 通信異常処理方式
JPH06290160A (ja) * 1993-03-31 1994-10-18 Fujitsu Ten Ltd マイクロコンピュータ間のデータ通信方法及びマルチマイクロコンピュータシステム
US6353908B1 (en) * 1997-11-24 2002-03-05 Stmicroelectronics Gmbh Method of and circuit arrangement for digitally transferring bit sequences in selective manner
JP2008197752A (ja) * 2007-02-08 2008-08-28 Sharp Corp データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体
US20100153799A1 (en) * 2008-12-16 2010-06-17 Maroni Peter D Method and apparatus for loopback self testing
JP2012085222A (ja) * 2010-10-14 2012-04-26 Denso Corp 通信制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101948722B1 (ko) * 2017-08-30 2019-02-15 엘에스산전 주식회사 전력 기기 설정값 변경 방법
KR101949757B1 (ko) * 2017-08-30 2019-02-19 엘에스산전 주식회사 전력 기기 설정값 변경 방법
US10698468B2 (en) 2017-08-30 2020-06-30 Lsis Co., Ltd. Device and method for changing setting value of electric power equipment
CN112363763A (zh) * 2020-11-13 2021-02-12 山东云海国创云计算装备产业创新中心有限公司 数据处理方法、装置及计算机可读存储介质

Similar Documents

Publication Publication Date Title
JP5160100B2 (ja) データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体
JP6411480B2 (ja) CCIeプロトコルを介したエラー検出能力
US8401138B2 (en) Serial data receiver circuit apparatus and serial data receiving method
JP2017511044A (ja) エラー検出最適化を容易にするための共有バスを介したビット割振り
JP2016111672A (ja) 通信方法、通信システム及び通信装置
US10721022B2 (en) Communication apparatus, communication method, program, and communication system
US9461747B2 (en) Optical transceiver including separate signal lines in addition to an SPI bus between a processor device and a logic device
US10038865B2 (en) Communication system
EP3224979A1 (en) Error detection constants of symbol transition clocking transcoding
US20190213070A1 (en) Communication apparatus, communication method, program, and communication system
US10013374B2 (en) Bidirectional communication method between a master terminal and a slave terminal on a single transmission line
US8484546B2 (en) Information processing apparatus, information transmitting method, and information receiving method
WO2014180414A1 (zh) 基于管理数据输入输出多源协议的传输方法及装置
WO2012046634A1 (ja) 電子装置およびシリアルデータ通信方法
JP4906688B2 (ja) 制御信号通信方法、光トランシーバ装置
US12174778B2 (en) Transmission device and communication system
JP6227909B2 (ja) 代替制御装置、代替制御方法及び代替制御プログラム
JP2834094B2 (ja) 調歩同期式通信装置
CN105843756B (zh) 主机端及从属端之间的单线双向传输通讯方法
CN114880270B (zh) Spi设备及其数据传输方法
US20250370953A1 (en) Serial bus system
JP2017208713A5 (ja)
CN112702377A (zh) 一种数据流转换系统
JPH10207834A (ja) シリアル入出力回路
JP6440475B2 (ja) パラレル通信機器およびパラレル通信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181204

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190611