JPH06324977A - データ転送方法 - Google Patents

データ転送方法

Info

Publication number
JPH06324977A
JPH06324977A JP5112860A JP11286093A JPH06324977A JP H06324977 A JPH06324977 A JP H06324977A JP 5112860 A JP5112860 A JP 5112860A JP 11286093 A JP11286093 A JP 11286093A JP H06324977 A JPH06324977 A JP H06324977A
Authority
JP
Japan
Prior art keywords
data
control line
controller
line
target
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
JP5112860A
Other languages
English (en)
Inventor
Hiroyuki Iizuka
裕之 飯▲塚▼
Takuya Nishimura
拓也 西村
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP5112860A priority Critical patent/JPH06324977A/ja
Priority to US08/242,441 priority patent/US5600803A/en
Priority to EP94107528A priority patent/EP0631239B1/en
Priority to DE69432726T priority patent/DE69432726T2/de
Publication of JPH06324977A publication Critical patent/JPH06324977A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 3線式シリアルバスを使用して複数のマイコ
ン間でデータ転送する際に、バスに接続するマイコンの
追加、削除が容易なデータ転送方法を提供する。 【構成】 コントローラは自身がデータ送信を行ってい
る間は制御線を低レベルに保つ。データ送信を行うター
ゲットは、制御線が低レベルに遷移してから自分自身の
データフレームの送信が終了するまで制御線上に低レベ
ルを出力する。コントローラは送信終了後制御線に高レ
ベルを出力して、制御線が低レベルのままであればター
ゲットのデータ送信に必要なクロックを出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、1チップのマイクロコ
ンピュータ(以下、マイコンと略記する)等の複数のデ
バイス間で、データ線,クロック線,制御線の3本の信
号線からなるシリアルデータバスを用いてデータフレー
ムを転送するデータ転送方法に関するものである。
【0002】
【従来の技術】データ転送の手法は、パラレルデータバ
スを用いたパラレル転送と、シリアルデータバス(以
降、シリアルバスと略記する)を用いたシリアル転送に
大別される。パラレル転送は高速のデータ転送に向いて
いるが、マイコンやIC等のデバイスのピン数の増大に
つながる。オーディオビデオ機器や家電機器で使用され
る1チップのマイコンは、転送速度の面からシリアル転
送で十分であるため、ピン数の削減につながるシリアル
転送を用いている。近年、機器の高機能化に伴い、ビデ
オテープレコーダやカメラ一体型ビデオのように、1つ
の機器の中に複数のマイコンが内蔵されるようになって
いる。これらのマイコンは独立して動作するのではく、
互いにシリアルバスを用いてデータ転送を行いながら動
作している。また、マイコンだけでなく、各種ICやL
SIもこのシリアルバスに接続可能である。
【0003】従来の3線式シリアルバスを用いたデータ
転送方法としては、特開平4−332065号公報「デ
ータ転送方法」がある。この公開公報によるデータ転送
方法ではデータ線とクロック線以外に、データ線を転送
中のデータがトークンなのかデータフレームなのかを示
す制御線を使用している。コントローラであるマイコン
は、制御線が高レベル(以下、ハイと略記する)の場合
にはシリアルバスに接続されているマイコンに順にトー
クンを配布する。トークンを受信してシリアルバスの使
用権を取得しデータフレームを送信しようとするマイコ
ンは、制御線を低レベル(以下、ロウと略記する)に駆
動することによってマスタとなり、シリアルバスを使用
することを他のマイコンに知らせる。制御線がロウに変
化すればコントローラはトークンの送信を停止し、デー
タフレームの転送に必要なクロックを出力する。マスタ
はこのクロックにしたがってデータフレームの転送を開
始する。マスタはデータフレームの転送が終了すると制
御線をハイに戻す。コントローラは制御線がハイに遷移
したことを検出し、再びトークンの配布を開始する。
【0004】この手法によれば、転送の衝突が発生しな
いと同時に、転送に際して変調を必要とせず、かつ、任
意のパターンのデータフレームを転送できるデータ転送
方法を提供している。
【0005】
【発明が解決しようとする課題】しかしながら、従来の
データ転送方法(特開平4−332065号公報)は以
下の課題を有していた。
【0006】従来のデータ転送方法では、コントローラ
がトークンを配布し、トークンを受信したマイコンのみ
がデータフレーム送信の権利を有する。従って、シリア
ルバスにデータフレームの送信を行うマイコンを追加す
る場合には、コントローラはマスタとなり得るマイコン
が追加されることを予め想定したトークン配布プログラ
ムを作成しておく必要がある。また、予想できないマス
タの追加が発生した場合にはコントローラのトークン配
布プログラムを修正しなければならない。また、従来の
データ転送方法では、データフレームの先頭でデータを
受信すべき1つ以上のスレーブをアドレスデータを用い
て指定し、これらのスレーブから受信応答が返された時
点でフレームの転送が完結する。従って、このシリアル
バスにスレーブ専用のマイコンを追加する場合には、ア
ドレスデータを変更する必要があった。また、アドレス
データを変更せずにスレーブマイコンを削除すれば転送
自体が成立しなくなる。即ち、従来のデータ転送方法で
はシリアルバスに接続されるマイコンの追加や削除が容
易に行えないという課題を有していた。
【0007】マイコンの追加や削除が容易に行える3線
式シリアルバスの例としては、特開昭63−58567
号公報「直列インターフェースシリアルバス方式」があ
る。この方式では、制御線が高レベルであることを確認
して制御線を低レベルに遷移させて識別コードを送出
し、受信した識別コードと送信した識別コードが一致し
た場合にデータの送信を行う。さらにデータの送信が終
了した段階で制御線を高レベルに戻す。この方式ではト
ークンを用いた調停は行わないため、シリアルバスへの
マイコンの追加や削除を容易に行うことができる。しか
しながら、複数のマイコンが同時に識別コードを送出し
て衝突が発生する可能性があるため、データ送信要求が
発生してから実際にデータ転送が終了するまでの時間で
ある転送遅れ時間の保証ができないという課題を有して
いた。特に、データ転送の頻度が高くなってくると衝突
の発生頻度が高くなり有効なデータ転送が行えなくなる
可能性が高い。
【0008】また、従来のデータ転送方法(特開平4−
332065号公報)では、効率的にデータ転送を行お
うとすれば、コントローラ以外のマイコン(以下、ター
ゲットと称す)が外部割り込み入力で制御線をモニタし
なければならないという課題を有していた。即ち、ター
ゲットが外部割り込みを用いずにシリアル受信割り込み
で制御線のレベルをチェックする場合には、シリアル受
信割り込みが発生してからレベルをチェックするまでの
間にマスタが制御線を操作すれば制御線のレベルを誤認
識する可能性がある。この誤認識を避ける手法として
は、マスタが1転送単位の転送が終了後一定期間以上経
過してから制御線の操作を行い、マスタ以外のマイコン
はシリアル受信割り込み発生後一定期間以内に制御線を
チェックするという手法が考えられる。すなわち、制御
線の操作タイミングを規定することによって、制御線の
誤認識を避ける。しかしながら、この手法は一定期間以
内に制御線をチェックする必要性から、他の割り込み処
理実行中でもシリアル受信割り込みを受け付けなければ
ならない。また、制御線の操作タイミングを決定するた
めにハードウェアタイマもしくはソフトウェアタイマが
必要となる。以上のように制御線の操作タイミングを規
定することによって誤認識を防ぐ手法はシステム設計上
の制限事項が多くなるため、ターゲットは外部割込み入
力で制御線のモニタをせざるを得なかった。
【0009】また、従来のデータ転送方法(特開平4−
332065号公報)では1フレームのデータ転送を行
う際に、トークンや、アドレスデータ、誤り検出コー
ド、受信応答データといった転送プロトコルを実現する
ための各種の制御データを送信しなければならなくデー
タ転送の効率が悪いといった課題を有していた。
【0010】本発明は上記従来の課題を解決するもの
で、データフレームの転送に際して転送の衝突が発生せ
ず、シリアルバスに接続されるマイコンの追加や削除が
容易に行うことができ、制御線のモニタに外部割込みを
必要とせず、データ転送の効率の良いデータ転送方法を
実現することを目的としている。
【0011】
【課題を解決するための手段】この目的を達成するため
に本発明のデータ転送方法は、コントローラは、制御線
が高レベルのときに制御線に低レベルの出力を開始した
後でデータフレームもしくは空フレームの送信を行う。
データフレームの送信要求を持つターゲットは、コント
ローラによって制御線が低レベルに保たれている間に制
御線上への低レベルの出力を開始する。コントローラ
は、データフレームもしくは空フレームの送信終了後の
単位クロックの出力タイミングで制御線への低レベルの
出力を終了しても制御線が低レベルのままであれば、再
度制御線への低レベルの出力を再開した後で前記単位ク
ロックの出力を行う。制御線に低レベルを出力している
ターゲットは、自身より送信順位の早い全てのターゲッ
トと前記コントローラが空フレームもしくはデータフレ
ームの送信を終了した後で単位クロックに同期してデー
タフレームの送信を開始し、データフレームの送信を終
了した後で次の単位クロックの出力タイミングまでに制
御線への低レベルの出力を停止する。コントローラは、
制御線が低レベルの期間に前記データ線上を転送された
全てのデータに対する誤り検出コードを算出し、制御線
が高レベルに遷移した後で前記誤り検出コードを送信す
る。全てのターゲットは、自身がデータ線上に送信した
データと受信したデータと受信した誤り検出コードとを
用いて転送エラーの有無を検出し、エラーを検出した場
合には少なくとも1ビット以上のエラー検出ビットを真
とした要求コードを送信する。
【0012】
【作用】本発明は上記した方法により、予め定められた
送信順位に従って制御線がロウのときに送信要求を持っ
た全てのマイコンが衝突をすることなくデータフレーム
の送信を行う。すなわち、シリアルバスに接続されるマ
イコン構成の変更を行う際には、全てのマイコンの送信
順位が異なるように各マイコンに送信順位を割り当てる
だけで良い。また、コントローラが単位クロックを出力
する直前に制御線のレベルを遷移させ、ターゲットは単
位クロックの入力直後に制御線のレベルをチェックする
と共に制御線へのロウの出力開始と出力停止を行う。ま
た、制御線がハイに戻った後、コントローラは制御線が
ロウのときにシリアルバス上を転送された全てのデータ
に対する誤り検出コードを送信し、誤り検出コードを受
信したターゲットは転送エラーの有無を判定し、転送エ
ラーが発生していた場合には転送エラーの検出を示す要
求コードを送信することによってデータフレームの送信
や受信を行ったマイコンに対して転送エラーを知らせ
る。
【0013】
【実施例】以下、本発明の一実施例について、図面を参
照しながら説明する。
【0014】まず、システム構成に関して説明する。図
1は本発明の一実施例のデータ転送方法を用いてデータ
転送を行うシステムのブロック図を示すものである。図
1において、マイコン10,11,12はデータ線1,
クロック線2,/BSY線3の3つの信号線からなるシ
リアルバスを介して互いに接続されている。データ線1
はシリアルデータを転送するための正論理の信号線で、
各マイコンのデータ入力ポート16とデータ出力ポート
17に共通に接続されている。データ出力ポート17は
複数のマイコンが同時に信号線を駆動しても良いよう
に、オープンドレイン形式の出力ポートである。マイコ
ン10はクロック線2にシリアルデータの入出力用のク
ロックをクロック出力ポート18から出力し、他のマイ
コンはクロック入力ポート15でこのクロックを受け取
る。/BSY線3は/BSY信号用の信号線である。/
BSY線3がハイの場合には何れのマイコンもデータフ
レームの転送を行っていない。また、/BSY線3がロ
ウの場合にはマイコン間でデータフレームもしくは空フ
レームの転送が行われている。/BSY信号は負論理の
信号であり、マイコン10,11,12は/BSY信号
入出力ポート14を介して/BSY線3に/BSY信号
を出力したり、他のマイコンが/BSY信号を出力して
いるかどうかをチェックする。/BSY線3にロウを出
力することは/BSY信号を出力することに等しい。ま
た、/BSY線3へのロウの出力を停止することは/B
SY信号の出力を終了することに等しい。以降の説明で
は、/BSY線3にロウを出力することを「/BSY信
号をアサートする」、また、/BSY線3へのロウの出
力を停止することを「/BSY信号をネゲートする」と
記述する。/BSY線3はマイコンにワイヤードオア接
続されているため、何れかのマイコンが/BSY信号を
アサートしていれば/BSY線3はロウとなる。
【0015】多くの1チップのマイコンは8ビット単位
でデータをシリアル転送する機能をハードウェアで実現
している。ここでは、このハードウェアをシフトバッフ
ァと呼ぶことにする。シフトバッファは送信バッファと
受信バッファの2つのシフトレジスタ及び周辺回路から
なり、マイコンの外部から供給されたクロック(以降、
外部クロックと称す)もしくはマイコンの内部で発生し
たクロック(以降、内部クロックと称す)でデータの入
力や出力を行う。送信バッファと受信バッファを1つの
シフトレジスタで兼用しているマイコンもある。シリア
ルデータを送信する場合にはクロックの立ち下がりで送
信バッファのMSBから順に送信し、シリアルデータを
入力する場合にはクロックの立ち上がりでMSBから順
に受信バッファに取り込む。
【0016】送信バッファから送信されるシリアルデー
タの出力ポートがデータ出力ポート17であり、受信バ
ッファへ入力されるシリアルデータの入力ポートがデー
タ入力ポート16である。クロック用のポートは入力と
出力が独立していなく、クロック入出力ポートがあるの
みである。このポートは、シフトバッファが内部クロッ
クでデータの転送を行う場合には出力ポートとして機能
し、外部クロックでデータの転送を行う場合には入力ポ
ートとして機能する。マイコン10はクロックを出力す
る必要があるため、内部クロックで動作し、他のマイコ
ン外部クロックで動作する。従って、クロック入出力ポ
ートは、マイコン10ではクロック出力ポート18とし
て機能し、他のマイコンではクロック入力ポート15と
して機能する。
【0017】次に、本実施例で使用する用語について説
明する。 「コントローラ」:シリアルバスに接続されたマイコン
の内、クロックを出力するマイコンをコントローラと呼
ぶ。コントローラはシステム内で1つだけ存在する。図
1のシステムではマイコン10がコントローラである。
以降の説明ではマイコン10をコントローラと記述す
る。
【0018】「ターゲット」:シリアルバスに接続され
たマイコンで、コントローラ以外のマイコンをターゲッ
トと呼ぶ。ターゲットは少なくとも1つはシリアルバス
に接続されている。図1ではマイコン11,マイコン1
2がターゲットである。以降の説明ではマイコン11,
マイコン12をそれぞれターゲット1,ターゲット2と
記述する。
【0019】「マスタ」:データフレームを送信するマ
イコンをマスタと呼ぶ。コントローラ,ターゲット1,
ターゲット2は何れもマスタになることができるが、複
数のマイコンが同時にマスタになることはない。
【0020】「スレーブ」:データフレームを受信する
マイコンをスレーブという。データフレームの転送はマ
スタからスレーブに対して行われる。システム内にはデ
ータフレームの送信を行わない「スレーブ専用マイコ
ン」を接続することが可能である。
【0021】「データフレーム」:各マイコンが送信す
る一連のデータ列をデータフレームという。データフレ
ームは1バイトのデータヘッダとユーザーデータからな
る。
【0022】「バイトクロック」:1バイトの転送に必
要なクロックをバイトクロックと呼ぶ。
【0023】「転送ユニット」:データ転送の最小単位
を転送ユニットと呼ぶ。1転送ユニット内で複数個のデ
ータフレームを転送することができる。1転送ユニット
は/BSY信号がロウの期間とハイの期間からなる。デ
ータフレームは/BSY信号がロウの期間に転送され
る。/BSY信号がハイの期間にはCHKバイト等の制
御用データが転送される。
【0024】次に、図2を用いてシリアルデータ,クロ
ック,/BSY信号の基本的なタイミングに関して説明
する。
【0025】図2はシリアルデータ,クロック,/BS
Y線のタイミング図である。図2(a)に示すように、
データ線1上を転送されるシリアルデータはクロックの
立ち下がりで1ビットずつ出力される。シリアルデータ
を取り込む場合はクロックの立ち上がりで取り込む。ク
ロックの周期はTaである。転送は8ビット単位で間欠
的に行う。8ビットデータの転送に必要な8個のクロッ
クをバイトクロックと定義する。図2(b)に示すよう
に、バイトクロックはTbの周期で間欠的に出力され
る。/BSY信号は転送ユニットの先頭でコントローラ
によってアサートされる。コントローラは/BSY信号
のアサート直後からバイトクロックを出力する。/BS
Y信号がアサートされている間はコントローラから1つ
以上バイトクロックが出力される。/BSY信号がロウ
の期間に各マイコンはデータフレームを送信することが
できる。/BSY信号のネゲートも、バイトクロックを
出力する直前に、コントローラによって行われる。/B
SY信号がハイの期間には通常は2つのバイトクロック
が出力される。/BSY線3の立ち下がりから次の立ち
下がりまでを転送ユニットと定義する。転送ユニット周
期はTcである。
【0026】次に、データ線1上を転送されるデータに
関して説明する。データ線1を転送されるデータの種類
を(表1)に示す。
【0027】
【表1】
【0028】ヘッダは/BSY信号がロウのときに転送
される1バイトのデータである。ヘッダの構成を図3に
示す。ヘッダは図3に示すように1ビットのパリティビ
ットと7ビットの送信IDからなる。MSBのパリティ
ビットは送信IDの偶数パリティである。また、送信I
Dは0〜127の値を取り得る。送信IDの値によって
ヘッダは(表2)に示す3種類に大別できる。
【0029】
【表2】
【0030】送信ID=0は将来の拡張用に予約してあ
り、実際には使われていない。送信ID=1〜126の
値を持つヘッダはデータヘッダと呼ばれ、データヘッダ
に引き続いてユーザーデータが転送される。送信ID=
127の値を持つヘッダは空ヘッダである。空ヘッダの
値はFFh(16進表記)となっている。
【0031】データヘッダとユーザーデータでデータフ
レームが構成される。データフレームの構成は図4に示
してある。データヘッダに引き続いて転送されるユーザ
ーデータは1バイトから32バイトの任意のバイト数を
取り得る。ユーザーデータのバイト数であるNは送信I
Dから定まる。データヘッダの値とユーザーデータのバ
イト数Nとの関連を図5に示す。図5に示したように、
データヘッダはその値によってグループAからグループ
Cの3つのグループに分類できる。図5において、×は
0であっても1であっても良い。グループAに属するデ
ータヘッダはbit6が0である。グループAのデータヘ
ッダは、下位5ビットでバイト数N−1を示している。
グループBに属するデータヘッダはbit6,bit5がそれ
ぞれ1,0である。グループBのデータヘッダは、下位
4ビットでバイト数N−1を示している。グループCに
属するデータヘッダはbit6,bit5がそれぞれ1,1で
ある。グループCのデータヘッダは、下位3ビットでバ
イト数N−1を示している。
【0032】データフレームの送信IDは1〜126の
値をとりうるため、本実施例では126種類のデータフ
レームを転送することができる。但し、図5で示したよ
うに送信IDが定まればユーザーデータのバイト数が特
定できる構成になっているため、ユーザーデータのバイ
ト数に関しては(表3)に示すような制限がある。
【0033】
【表3】
【0034】例えば、5バイトのユーザーデータのデー
タフレームはシステム内で8種類まで存在することがで
きる。(表4)にデータヘッダのグループ別一覧を示
す。
【0035】
【表4】
【0036】CHKバイト(表1を参照)はエラーチェ
ック用のバイトで、/BSY信がロウの期間に転送され
た全てのデータの各ビット毎の偶数パリティバイトであ
る。このバイトはコントローラが演算し、送信する。コ
ントローラは/BSY信号がロウの期間に転送された全
てのデータをバイト単位で排他的論理和演算を行い、演
算結果を/BSY信号の立ち上がり後最初のバイトクロ
ックで送信する。この演算に際しては、自身が送信した
データに関しては送信する前のデータを演算に使用す
る。また、ターゲットが送信したデータは、データ線1
を介して受信したデータを演算に使用する。
【0037】REQバイトはデータフレームの送信要求
等を行うためのデータで、上位ニブルと下位ニブルは同
一の値を持つ。このバイトはスレーブ専用マイコンも含
めて全てのマイコンが送信する。このバイトは他のバイ
トと異なり送信と受信を同時に行う必要がある。REQ
バイトのフォーマットを図6に示す。図6に示したよう
に、REQバイトは上位ニブルと下位ニブルが同一の値
となっている。
【0038】/ERビットが0の場合、/BSY信号が
ロウの期間に転送されたデータに転送エラーが発生した
ことを意味する。全てのマイコンは、/BSY線がロウ
の期間に転送されたデータのエラー検出を行わなければ
ならない。エラー検出は、(1)CHKバイトを用いた
データフレームのエラー検出と、(2)パリティビット
を用いたヘッダのエラー検出の2種類が存在する。前者
のエラー検出はコントローラが送信したCHKバイトを
用いて全てのターゲットが行う。また、後者のエラー検
出は全てのマイコンが行う。
【0039】何れかのエラーを検出したマイコンは/E
Rビットを0にしたREQバイトを送信する。該当の転
送ユニットでデータフレームの送信を行ったマイコン
は、このビットが1であることによって受信が正常に行
われたことを確認する。データエラー発生時に、再送す
るかしないかは各マイコンに任される。例えば、時刻デ
ータのように再送した場合には既に値が変わっているデ
ータに関しては再送せずに最新の値を送信する方が望ま
しい。また、マイコンの動作状態を示すデータのような
重要なデータに関しては再送する必要がある。
【0040】/NDRビットが0の場合、シリアルバス
に接続された何れかのマイコンがデータフレームの送信
要求を行っていることを示す。本実施例ではデータフレ
ーム内に含まれるユーザーデータの値が変化をした場合
にのみデータフレームの転送を行う。このような値が変
化したというイベントが発生した場合にのみデータフレ
ームの転送を行うのをイベント駆動型転送と呼ぶ。しか
しながらイベント駆動型転送を行っている際に特定のマ
イコンのリセットがかかり、内部に蓄えていた受信デー
タが失われてしまった場合、そのデータを送信するマイ
コンはそのデータの値が変わらない限りデータフレーム
の送信は行わないとすれば、リセットがかかったマイコ
ンの動作が保証されない。コントローラとターゲット
は、自身が受信すべきデータフレームが未受信の場合、
/NDRビットを0としたREQバイトを送信する。全
てのマイコンは、受信したREQバイトの/NDRビッ
トが0である場合には、/NDRビットが1であるRE
Qバイトを受信するまで自身が送信する全てのデータフ
レームを順に送信する。
【0041】次に、データフレームの送信順位に関して
説明する。各マイコンにはデータフレームもしくは空フ
レームを送信する送信順位が(表5)のように定められ
ている。
【0042】
【表5】
【0043】/BSY信号がロウに移行した後、送信順
位の早いマイコンから順にデータフレームの送信を行
う。データフレームの送信を行わないマイコンは1バイ
トの空フレームを送信することによって、データフレー
ムの送信を行わないことを宣言する。空フレームは1バ
イトの空ヘッダからなり、その値は前述したようにFF
h(16進表記)である。データ線1は正論理の信号線
であり、プルアップされているため、データを送信しな
ければ空ヘッダを送信したことになる。
【0044】各マイコンは自分より送信順位の早い全て
のマイコンが「フレームの送信を完了した場合」もしく
は「フレームを送信しないことを宣言した(空フレーム
を送信)場合」に次のバイトクロックからデータフレー
ムの送信を行うことができる。言い替えれば、送信順位
がKであるマイコンは/BSY線3がロウに遷移してか
ら、他のマイコンが送信した空フレームの個数とデータ
フレームの個数の合計がK個に達した場合、次のバイト
クロックでデータフレームの送信を開始することができ
る。
【0045】次に、/BSY信号のアサート/ネゲート
タイミングに関して説明する。コントローラは転送ユニ
ットの先頭で/BSY信号をアサートし/BSY線3を
ハイからロウに遷移させた後、データフレームもしくは
空フレームの送信を行う。データフレームの送信を行お
うとするターゲットは/BSY線3がロウに遷移したの
を確認してから、/BSY信号をアサートする。
【0046】データフレームの送信が終了したターゲッ
トは最終データの送信後直ちに/BSY信号をネゲート
する。この時点ではコントローラが/BSY信号をアサ
ートしているため、/BSY線3はロウに保たれたまま
である。
【0047】コントローラは自身がデータフレームもし
くは空フレームの送信が終了した後、バイトクロックも
しくはCHKバイトを送信する前に/BSY信号を一旦
ネゲートする。/BSY信号をネゲートしても/BSY
線3がロウに保たれている場合には、再び/BSY線3
にロウを出力した後バイトクロックを出力する。/BS
Y信号をネゲートした結果/BSY線3がハイに移行す
れば/BSY信号をネゲートしたままでCHKバイトを
送信する。
【0048】次に、実際のデータフレームの転送のタイ
ミング例に関して図7〜図10を参照しながら説明す
る。
【0049】図7〜図10はコントローラと2つのター
ゲットが接続されたシステムでのデータフレームの転送
タイミングの例である。図7は全てのマイコンがデータ
フレームの送信を行う場合の転送ユニットのタイミング
図、図8はコントローラとターゲット2がデータフレー
ムの送信を行う場合の転送ユニットタイミング図、図9
はターゲット1だけがデータフレームの転送を行う場合
の転送ユニットのタイミング図、図10は何れのマイコ
ンもデータ送信を行わない転送ユニットのタイミング図
である。図7〜図10においては説明を簡単にするため
にデータフレーム内に含まれるユーザーデータのバイト
数は2バイトとしている。また、図7〜図10におい
て、71はコントローラがクロック線2に出力するバイ
トクロックである。また、73,75,77はそれぞれ
コントローラ,ターゲット1,ターゲット2がデータ線
1上へ出力するデータで、データ線1上はこれらの各出
力がワイヤードオアされた信号が流れる。また、74,
76,78はそれぞれコントローラ,ターゲット1,タ
ーゲット2が/BSY線3上へ出力する/BSY信号で
ある。これらの信号は/BSY線3上でワイヤードオア
され、/BSY線3の信号レベルは72のようになる。
【0050】まず、図7において、コントローラは転送
ユニットの先頭で/BSY信号をアサートした後データ
ヘッダを送信する。ターゲット1,ターゲット2はデー
タフレームの送信要求があるので、このデータヘッダを
受信後直ちに/BSY信号をアサートする(時刻t
1)。この後、コントローラは2バイトのユーザーデー
タを送信してデータフレームの送信を終了させ、時刻t
2で一旦/BSY信号をネゲートする。この時点ではタ
ーゲット1とターゲット2が/BSY信号をアサートし
ているため、コントローラが/BSY信号をネゲートし
ても/BSY線3はロウに保たれたままである。従っ
て、コントローラは再び/BSY信号をアサートした後
バイトクロックを出力する。ターゲット1は自身より送
信順位の早いコントローラがデータフレームの送信を終
了しているので、このバイトクロックからデータフレー
ムの送信を開始する。ターゲット1はデータフレームの
送信が完了した後、時刻t3で/BSY信号をネゲート
する。この時点ではターゲット2とコントローラが/B
SY信号をアサートしたままであるので/BSY線3は
まだロウに保たれたままである。ターゲット2は時刻t
3で自身より送信順位の早いマイコンであるコントロー
ラとターゲット1がデータフレームの送信を終了してい
るので、次のバイトクロックからデータフレームの送信
を開始する。データフレームの送信が終わったターゲッ
ト2は時刻t5で/BSY信号をネゲートする。時刻t
6でコントローラは/BSY信号をネゲートし、/BS
Y線3がハイに遷移したことを確認するとCHKバイト
を送信する。CHKバイトは上述したように/BSY線
3がロウの期間にデータ線1上を転送された全てのデー
タをバイト単位で排他的論理和演算を行った演算結果で
ある。このCHKバイトを受信したターゲット1とター
ゲット2はCHKバイトを用いて転送されたデータの誤
り検出を行う。さらに、全てのマイコンは次のバイトク
ロックでREQバイトの送信を行う。REQバイトはデ
ータ線1上でワイヤードオアされ、その結果が各マイコ
ンに入力される。
【0051】仮に、このシリアルバスに他のマイコンが
追加され、その追加マイコンがデータフレームの送信を
行う場合でも、追加マイコンの送信順位をターゲット2
より大きくしておけばコントローラやターゲット1,2
のデータ出力と衝突することはなく送信することができ
る。コントローラはターゲットがデータフレームの送信
を行っている間はバイトクロックを出力する前に必ず他
のマイコンが/BSY信号の出力を行っているかチェッ
クしている。これはターゲットにリセット等の何らかの
異状事態が発生したために、/BSY信号がデータフレ
ームの転送途中でネゲートされていないかをチェック
し、異状があれば直ちに転送ユニットを終了させるため
である。
【0052】図8のタイミング図では、コントローラと
ターゲット2がデータフレームの転送を行う。コントロ
ーラの動作は図7と同じであるので説明は省略する。タ
ーゲット1はデータフレームの送信を行わないので、/
BSY線3がロウに遷移したのを検出しても/BSY信
号をアサートしない(時刻t11)。コントローラはデ
ータフレームの送信が終了した後の時刻t12で、一旦
/BSY信号をネゲートするが/BSY線3がロウのま
まであるので再び/BSY信号をアサートしてバイトク
ロックを出力する。このクロックに従ってターゲット1
は空ヘッダを送信する。空ヘッダは、上述したように、
その値はFFh(16進表記)であるので、実際にはタ
ーゲット1はデータ線1に何も送信しなくとも空ヘッダ
を送信したことになる。ターゲット2はコントローラと
ターゲット1がそれぞれデータフレームと空フレームを
送信したのを検出してデータフレームの送信を開始す
る。以降の動作は図7と同じであるので説明は省略す
る。
【0053】図9はターゲット1のみがデータフレーム
の転送を行う転送ユニットのタイミング図である。コン
トローラは/BSY信号をアサートした後、空ヘッダを
送信する。コントローラは空ヘッダの送信が終了した
後、時刻t21で/BSY信号をネゲートしても/BS
Y線3がロウであるのでバイトクロックの出力を行う。
ターゲット1はコントローラが空ヘッダを送信したのを
検出し、このバイトクロックに同期してデータフレーム
の送信を開始する。コントローラは自身がデータフレー
ムの送信を行わない場合でも、図9で示したように、転
送ユニットを開始させターゲットにデータフレームの送
信要求が発生していないかチェックする。
【0054】図10は何れのマイコンもデータフレーム
の転送を行わない場合のタイミング図である。コントロ
ーラは時刻t31で/BSY信号をアサートし、その
後、空ヘッダを送信する。ターゲット1,ターゲット2
は何れもデータフレームの送信要求を持っていないの
で、/BSY線3の立ち下がりを検出しても/BSY信
号をアサートしない。従って、時刻t32でコントロー
ラが/BSY信号をネゲートすると/BSY線3はハイ
に遷移してしまう。実際にはこの転送ユニットではデー
タフレームの転送は行われていないが、コントローラは
CHKバイトを送信し、時刻t33ではREQバイトの
送信を行う。
【0055】図7〜図10で示したように、各マイコン
はデータフレームの送信要求が発生した場合にのみデー
タフレームの転送を行うため、/BSY線3がロウの期
間にデータ線1上を転送されるデータのバイト数は転送
ユニットによって変化する。
【0056】次に、コントローラやターゲットが上述し
たデータフレーム転送を行う際に使用する割込み処理ル
ーチンに関して詳細に説明する。
【0057】図11はターゲットが行うシリアル転送割
り込みの処理ルーチン(以下、シリアル割り込み処理と
略記する)の概略フローチャートである。ターゲットは
1バイトの送信もしくは受信を行ったときにシリアル転
送割り込み(以下、シリアル割り込みと略記する)を発
生させ、図11に示した動作を行う。即ち、バイトクロ
ックが入力された直後に図11に示したシリアル割り込
み処理を実行する。
【0058】まず、ターゲットは立ち上げ後INTモー
ドの初期値として「リセット」が設定されている。IN
Tモードとはマイコンの内部メモリに記憶しておくステ
イタスであり、シリアル割込みが発生したときに、この
ステイタスを見てシリアル割込み処理ルーチンはどのよ
うな処理を行うべきかを判断する。立ち上げ時最初にシ
リアル割込みが発生すると、INTモードは「リセッ
ト」であるため、ステップ198を実行した後、ステッ
プ199に実行が移り、/BSY線3のレベルを検出す
る。ここで/BSY線3がロウだった場合、転送ユニッ
トの途中で立ち上がったことになる。従って、この転送
ユニットでは自分が受信すべきデータフレームが転送さ
れている可能性があるため、この転送ユニットを無効に
する必要がある。従って、ステップ215でREQバイ
トの/ERビットをクリアし、INTモードを「エラ
ー」に変更して(ステップ216)シリアル割込み処理
を終了する。この後、/BSY線3がロウに保たれてい
る間は、ステップ198,200,218,219,2
23の各条件判断を実行するだけで割込み処理ルーチン
を終了する。REQレジスタの/ERビットをクリアし
ておけば、後述するように、転送ユニットを無効にする
ことができる。また、立ち上げ時に/BSY線3がハイ
であった場合には、ステップ235でINTモードが
「NOP」に変更される。この後/BSY線3がロウに
遷移するまでINTモードは「NOP」のままである。
【0059】転送ユニットの先頭でコントローラが/B
SY線3をロウに遷移させてヘッダを送信した場合、タ
ーゲットはヘッダの受信割込みで図118の処理を行
う。ステップ200で/BSY線3の信号レベルの変化
が立ち下がりであることを検出し、送信要求がある場合
にはステップ201,202を実行して/BSY信号を
アサートする。その後、ステップ203で受信したヘッ
ダとパリティ演算用のレジスタであるCHKレジスタ
(図示せず)とで排他的論理和演算を行い、結果をCH
Kレジスタに書き込む。CHKレジスタは/BSY線3
の立ち下がりを検出した時点でクリアされている。その
後ステップ204,205,206で受信したヘッダ
が、空ヘッダなのか、受信すべきデータフレームのデー
タヘッダなのか、ヘッダエラーが発生していないかをチ
ェックする。
【0060】空ヘッダを受信していた場合、ステップ2
07で自身がデータフレームの送信を開始しても良いか
どうか判定する。この判定では、(1)自身が/BSY
信号をアサート中である。(2)自身より送信順位の高
いマイコンが全てデータフレームもしくは空フレームの
送信を終了している。の2つの条件が満たされているか
どうかを判定する。両者の条件が満たされていればステ
ップ208でINTモードを「送信中」に変更し、ステ
ップ209でこれから送信するデータとCHKレジスタ
内の値とを排他的論理和演算し、結果をCHKレジスタ
に書き込む。さらにステップ210で送信すべきデータ
を送信バッファに書き込む。ここで書き込まれたデータ
は、コントローラがターゲットにバイトクロックを供給
するとデータ線1へ出力される。
【0061】受信すべきデータフレームのデータヘッダ
を受信していた場合は、ステップ211で受信したデー
タヘッダをマイコン内部の退避領域へ保存しておく。さ
らにINTモードを「受信中」に変更し(ステップ21
2)、ステップ213で受信したデータヘッダからユー
ザーデータのバイト数を求め、その値を受信カウンタに
書き込んでおく。
【0062】ステップ206でヘッダのパリティチェッ
クを行い、受信したヘッダにヘッダにエラーが発生して
いた場合には、/BSY信号をネゲートし(ステップ2
14)、REQレジスタ(図示せず)の/ERビットを
クリアし(ステップ215)、INTモードを「エラ
ー」に変更し(ステップ216)、シリアル割込み処理
を終了する。また、ヘッダのパリティエラーが発生して
いなかった場合には、INTモードを「ヘッダ待ち」に
変更し(ステップ217)、ステップ213で受信カウ
ンタのセットを行う。
【0063】転送ユニットが始まって、2回目以降のシ
リアル割込みが発生したときに/BSY線3がロウであ
れば、ステップ218を実行する。INTモードが「ヘ
ッダ検出」であれば、受信バッファ内に受信しているデ
ータはデータヘッダもしくは空ヘッダであるのでステッ
プ203へジャンプしてヘッダの受信処理を行う。IN
Tモードが送信中であれば、自分自身がデータフレーム
の送信中であるため、ステップ220で送信が終了して
いるか、即ち、データフレームの最終バイトを送信済み
かどうかを判定する。送信が終了していなければ、ステ
ップ209,ステップ210を実行して、次のバイトク
ロックでデータを1バイト送信するように準備をしてお
く。一方、送信が終了していれば/BSY信号をネゲー
トする(ステップ221)。送信が終了した次のバイト
クロックの出力タイミングで/BSY線3がロウのまま
であれば、他のマイコンがヘッダを送信するのでステッ
プ222でINTモードを「ヘッダ検出」に変更してお
く。INTモードが「エラー」であった場合、何もしな
いで割込み処理ルーチンを終了する(ステップ22
3)。INTモードが「受信中」もしくは「ヘッダ待
ち」の場合には、ステップ224で受信したデータとC
HKレジスタで排他的論理和演算を行い、結果をCHK
レジスタに書き込んでおく。INTモードが「受信中」
であれば、ステップ226で受信バッファに受信してい
るデータをマイコン内部の退避領域へ保存する。さら
に、受信カウンタをデクリメントし(ステップ22
7)、ステップ228で受信カウンタが0になったかど
うか判定する。受信カウンタが0であれば、他のマイコ
ンのデータフレームの送信が終了しているので、ステッ
プ207へジャンプし、送信を開始しても良いかどうか
判定する。
【0064】シリアル割込みが発生したときに/BSY
線3がハイに遷移していることが検出できた場合、受信
バッファの中にはCHKバイトを受信している。この場
合、ステップ229で、受信したCHKバイトとCHK
レジスタの値を比較し、一致していれば転送エラーが発
生していないのでステップ231へ進む。一致していな
ければ/BSY線3がロウのときにデータ線1上を転送
されたデータにデータエラーが発生しているので、ステ
ップ230でREQレジスタの/ERビットをクリアし
ておく。ステップ231ではREQレジスタに保存され
ているREQバイトを送信バッファに書込む。このRE
Qバイトは、次のバイトクロックでデータ線1上に送信
される。さらに、ステップ232でINTモードを「R
EQチェック」に変更しておく。
【0065】INTモードが「REQチェック」である
ときにシリアル割込みがかかるときは、/BSY線3は
ハイのままのときである。このとき、受信バッファには
REQバイトを受信している。このREQバイトは全て
のマイコンが出力したREQバイトがデータ線1上でワ
イヤードオアされて受信バッファに入力される。従っ
て、何れか1つのマイコンがエラーを検出していれば/
ERビットが0となっている。ステップ233でまずI
NTモードがREQチェックであることを確認し、ステ
ップ234でアプリケーションプログラムへの送受信通
知を行う。具体的には転送ユニットが終了したことを示
す終了フラグをセットする。アプリケーションプログラ
ムは終了フラグがセットされていることで転送ユニット
の終了を知り、REQバイトの/ERビットが1であれ
ば、送信並びに受信が正常に行われているので退避領域
からの受信データフレームの読み出し等を行う。また、
/ERビットが0であれば、アプリケーションは退避領
域に保存してある受信したデータフレームを廃棄する。
ステップ235ではINTモードが「NOP」に変更さ
れる。通常は/BSY線3がハイの期間にはバイトクロ
ックは2つしか出力されないが、コントローラにノイズ
等でリセットがかかった場合、後述するように3つ以上
のバイトクロックがコントローラから出力される可能性
がある。これに対応するために、「NOP」というIN
Tモードが設けられている。
【0066】図12はコントローラが行うタイマ割り込
みの処理ルーチン(以下、タイマ割込み処理と略記す
る)の概略フローチャートである。コントローラはバイ
トクロックの出力を間欠的に行うためにタイマ割込みを
使用する。コントローラは内部のタイマーを利用して、
バイトクロックの出力間隔(Tb)毎に割込みを発生さ
せ、タイマ割込み処理の中でデータフレームの送信や受
信動作等を1バイトずつ行う。
【0067】タイマ割込み処理の先頭で、コントローラ
はステップ300を実行し現在のINTモードによって
各処理を実行する。リセット後、最初に立ち上がった時
点でINTモードは「リセット」に設定されている。従
って、まず最初にステップ301で/BSY線3の状態
をチェックする。システムが立ち上がった段階では通常
は/BSY線3はハイに保たれているため、ステップ3
02でダミーデータの出力を開始する。コントローラの
シフトバッファは内部クロックで動作しているため、送
信バッファにデータを書き込むだけで送信を開始する。
このダミーデータとは/ERビットと同一のビット位置
が0であるデータである。コントローラは立ち上げ後/
BSY線3がハイであれば2バイトのダミーデータを1
バイトずつ出力する。コントローラのみが/BSY信号
をアサートしている状態でコントローラにリセットがか
かった場合、/BSY信号はネゲートされ、/BSY線
3はハイとなる。この状態でコントローラが立ち上がる
と、転送ユニットの途中でコントローラが立ち上がった
ことになる。従って、/ERビットのビット位置が0と
なっているダミーデータを所定の間隔で2バイト出力す
ることにより、たとえ転送ユニットの途中でコントロー
ラにリセットがかかって/BSY信号がネゲートされて
も転送ユニットを無効にすることができる。ステップ3
01で/BSY線3がロウだった場合、ターゲットが/
BSY信号をアサートしているときにコントローラにリ
セットがかかったことが考えられる。この場合には、ス
テップ305でREQレジスタの/ERビットをクリア
し、INTモードを「エラー」に変更して(ステップ3
06)、バイトクロックの出力を開始する(ステップ3
07)。バイトクロックの出力はデータ線1上で全てが
ハイになるビットパターンであるFFh(16進表記)
を送信バッファに書き込むことによって実行される。こ
の場合、データを出力せずにバイトクロックのみを出力
したのと同じ動作となる。
【0068】ダミーデータを2バイト出力し終わると、
ステップ304でINTモードが「先頭」に変更され
る。従って、次にタイマ割込みが発生したときにはステ
ップ300を実行した後、ステップ308が実行され
る。ステップ308では/BSY信号をアサートするこ
とによって/BSY線3をロウに遷移させ、転送ユニッ
トを開始する。データフレームの送信要求がある場合に
はステップ313でINTモードを「送信中」に変更し
た後、ステップ304で最初に送信するデータであるデ
ータヘッダとCHKレジスタに対して排他的論理和演算
が施され、結果がCHKレジスタに書き戻される。CH
KレジスタはINTモードが「先頭」に変更された時点
でクリアされている。その後ステップ315で送信バッ
ファに送信するデータが書き込まれることによってデー
タフレームを構成するデータの1バイトの送信が始ま
る。この後、タイマ割込みがかかる度にステップ315
が実行されて1バイトずつデータフレームが送信され
る。データフレームを構成する最後のデータがステップ
315で送信バッファに書き込まれると、ステップ31
6で送信終了と判断され、ステップ312でINTモー
ドが「クロック出力」に変更される。データフレームの
送信要求が無い場合には、転送ユニットの先頭でステッ
プ310が実行されCHKレジスタに空ヘッダが代入さ
れる。さらに、ステップ311で空ヘッダが送信バッフ
ァに書き込まれ、空ヘッダの送信が開始される。続いて
ステップ312でINTモードが「クロック出力」に変
更される。
【0069】INTモードが「クロック出力」の状態で
タイマ割込みが発生すると、まずステップ317でIN
Tモードが「ヘッダ検出」に変更される。コントローラ
はこの時点ではデータフレームもしくは空フレームの送
信を完了しているので、ステップ318に進んで/BS
Y信号をネゲートし、ステップ319で/BSY線3の
レベルを検出する。/BSY信号をネゲートしても/B
SY線3がロウのままであれば、再び/BSY信号をア
サートして(ステップ320)、バイトクロックの出力
を開始する。このバイトクロックで送信順位がコントロ
ーラの次であるターゲットが空ヘッダもしくはデータヘ
ッダの送信を行う。データヘッダの受信処理はこの割込
み処理では行わず、次のタイマ割込み処理で行われる。
ステップ318〜ステップ325の一連の処理を、説明
を簡単にするために「終了チェックルーチン350」と
定義する。
【0070】次に、INTモードが「ヘッダ検出」でタ
イマ割込みが発生すると、ステップ331でまずヘッダ
エラーが発生していないかどうか検査する。もし、ヘッ
ダエラーが発生していればREQレジスタの/ERビッ
トをクリアし(ステップ332)、INTモードを「エ
ラー」に変更する(ステップ333)。INTモードが
「エラー」に変更されると、全てのターゲットが/BS
Y信号をネゲートするまで終了チェックルーチン350
を繰り返し実行する。ステップ331でヘッダエラーで
無かった場合、受信したヘッダが空ヘッダかどうかチェ
ックする。空ヘッダであった場合も終了チェックルーチ
ン350を実行することによりターゲットが/BSY信
号をネゲートしていないかどうかチェックする。また、
空ヘッダを受信した場合には、次にターゲットが送信す
るデータもヘッダであるのでINTモードは「ヘッダ検
出」のままである。受信しているヘッダがデータヘッダ
だった場合、ステップ335でデータヘッダヘッダから
データフレーム全体のバイト数、即ち、ユーザーデータ
のバイト数+1を求めこの値を受信カウンタに設定して
おく。さらに、データヘッダが受信すべきデータフレー
ムのデータヘッダかどうかをチェックし、受信すべきで
あればINTモードを受信中に(ステップ337)、受
信しなくとも良いのであればINTモードを「ヘッダ待
ち」に変更する(ステップ228)。INTモードが
「受信中」であればステップ326に進んで受信バッフ
ァに受信しているデータを退避領域に保存するが、「ヘ
ッダ待ち」であれば直接ステップ327へジャンプす
る。ステップ327では受信したデータを用いてパリテ
ィ演算を行い、ステップ328,329で受信カウンタ
をデクリメントしてターゲットのデータフレームの送信
が終了したかどうかチェックする。終了していればステ
ップ330でINTモードを「ヘッダ検出」に変更して
終了チェックルーチン350を実行する。終了していな
ければINTモードは変更せずに終了チェックルーチン
350を実行する。
【0071】終了チェックルーチン350のステップ3
19で、/BSY線3がハイになった場合には、ステッ
プ322で受信カウンタが0になっているかどうかチェ
ックする。0以外の数値であれば、ターゲットが規定バ
イト数のユーザーデータを送信せずに/BSY信号をネ
ゲートしているため、ステップ323で/ERビットを
クリアする。受信カウンタが0であれば直ちにCHKレ
ジスタの内容を送信バッファに書き込むことによってC
HKバイトの送信を開始する。INTモードが「エラ
ー」の場合にはステップ327の受信パリティ演算が行
われないため、ステップ324で送信を開始するCHK
バイトの値は正しい値ではない。しかしながらINTモ
ードが「エラー」の場合は、/ERビットがクリアされ
たREQバイトが送信されるので、支障はない。続いて
INTモードが「REQ受信」に変更されて割込み処理
を終了する。
【0072】INTモードがREQ受信でタイマ割込み
処理が開始されると、ステップ332でREQレジスタ
に保存されているREQバイトを送信バッファに書き込
むことによって、REQバイトの送信が開始される。こ
の後、INTモードを「REQ処理」に変更する(ステ
ップ341)だけでこのタイマ割込み処理は終了する。
【0073】次のタイマ割込みはINTモードが「RE
Q処理」で開始される。ステップ341で実行されるア
プリケーションへの送受信通知は図11のステップ23
4でターゲットが行う処理と同様である。この後、ステ
ップ342でINTモードを「NOP」に変更してタイ
マ割込み処理を終了する。
【0074】次のタイマ割込みはINTモードが「NO
P」で開始される。INTモードがNOPの場合にはバ
イトクロックの出力は行わない。即ち、ステップ343
でッ転送ユニット終了タイミングかどうかをチェック
し、次回のタイマ割込みからユニットを開始するタイミ
ングでINTモードを「先頭」に変更する(ステップ3
45)。
【0075】上述した実施例では、コントローラは一定
時間間隔でバイトクロックを出力するので、マスタとな
ったターゲットは必ず次のバイトクロックが出力される
までにデータを送信バッファに書き込んでおく必要があ
る。この書き込み操作が間に合わなかったことをコント
ローラに知らせて、バイトクロックの出力を遅らせる手
法について以下に説明する。
【0076】図13は1チップマイコン(例えば、MN
18888:松下電子工業株式会社製)のスタートコン
ディション付きシリアル転送のタイミング図であり、外
部クロック、かつ、スタートコンディション有りの条件
で転送を行う場合のタイミングを示している。シリアル
データの送信準備ができた段階(時刻t51)、すなわ
ち、内部のシフトレジスタに送信するデータが書き込ま
れた段階でデータ出力ポートはハイインピーダンス状態
からロウに移行する。この状態で外部からのクロック入
力が開始されると(時刻t52)、1バイトのデータが
MSBから順にデータ出力ポートより送信される。LS
Bの出力終了後(時刻t53)データ出力ポートはハイ
に移行する。さらに、所定期間経過すると再びデータ出
力ポートはハイインピーダンス状態に移行する(時刻t
54)。スタートコンディションは転送側と受信側でバ
イト単位の同期を取ることが本来の使用目的である。す
なわち、データの転送に先だって、クロック線がハイの
時にデータ線をロウに移行させることによって受信側は
クロックのカウンタをリセットし、結果として送信側と
受信側のバイト単位の同期を取ることが可能である。こ
のようにスタートコンディションは、ノイズによる転送
のビットずれを防ぐことを目的としている。このスター
トコンディションの機能を利用すれば、ターゲットはシ
フトバッファに転送データを書き込むだけでデータ線1
をロウに駆動することができる。
【0077】図13に示したタイミングでシリアル転送
を行うマイコンをターゲットとして使用する場合、デー
タ出力ポートが3値出力ポートとなっているため、デー
タ出力ポート17とデータ線1の間にオープンコレクタ
出力のゲートを入れる。
【0078】コントローラは終了チェックルーチン35
0のステップ320とステップ321の間でデータ線1
の状態をチェックし、ハイであればステップ321は実
行せずにタイマ割込み処理を終了するようにする。この
場合、次回タイマ割り込み処理では、終了チェックルー
チンのみを実行しなければならない。また、ロウに遷移
していればマスタであるターゲットはデータの送信準備
を完了しているのでバイトクロックの出力を開始する。
【0079】上述の手法は、スタートコンディションを
利用してコントローラがターゲットの送信準備完了をチ
ェックし、データの転送抜けを未然に防ぐ手法である。
【0080】次に、ターゲットの転送準備ができていな
い段階でバイトクロックがコントローラから出力された
ことをターゲット自身が検出する手法に関して説明す
る。シフトバッファには一般にクロック入力ポート15
から入力されたクロックの個数をカウントするカウンタ
がある。このカウンタは送信バッファにデータを書き込
むことによってクリアされ、クロックの立ち上がりでイ
ンクリメントする。1バイト分の転送クロック、即ち、
8個のクロックが入力された時点で再び0クリアされ
る。従って、シリアル割込みが発生した場合にはこのカ
ウンタは必ず0となっている。仮に、ビットクロックの
周期が10μsecであるとすれば、70μsecはこのカウ
ンタの値は0以外の値を示している。従って、ターゲッ
トはシリアル割込み処理を実行している間は、少なくと
も70μsecに1回はこのカウンタの値をチェックす
る。もし、割込み処理が終了するまでの間でカウンタの
値が0以外になれば、コントローラが次のバイトクロッ
クを出力したことになる。この場合、ターゲットは/B
SY信号をネゲートして転送を中止し、/ERビットが
0であるREQバイトを送信すれば転送ユニットを無効
にすることができる。
【0081】次に、誤り検出能力に関して説明する。本
実施例では、誤り検出にパリティチェックを使用してい
る。通常、パリティチェックは2箇所にビット誤りが発
生すれば検出は不可能である。例えば、バイト単位でパ
リティを作成すれば、同一ビット位置が2箇所誤れば検
出は不可能となる。本実施例でも、同一のデータフレー
ムで同一のビット位置に誤りが発生した場合には誤り検
出は不能であるが、異なるデータフレームの同一ビット
位置に誤りが発生した場合には誤り検出が可能である。
例えば、コントローラとターゲット1が同一の転送ユニ
ットでそれぞれデータフレームAとデータフレームBを
送信し、データフレームAで1ビットのビット誤りが発
生し、データフレームBではデータフレームAと同一の
ビット位置でビット誤りが発生したとする。各マイコン
は自身が送信したデータフレームは送信前のデータフレ
ームを、他のマイコンが送信したデータフレームはシリ
アルバスを介して受信したデータフレームを用いてCH
Kバイトを演算する。従って、各マイコンがCHKバイ
トの演算に使用するデータフレームは(表6)のように
なる。
【0082】
【表6】
【0083】コントローラとターゲット1は、それぞれ
1箇所誤りが発生しているデータ列を用いてCHKバイ
トを演算するため、両者の演算結果は同一となりビット
誤りを検出できない。これに対し、ターゲット2は2箇
所誤りが発生しているデータ列を用いてCHKバイトを
演算するため、その演算結果は、コントローラが送信し
たCHKバイトと一致しない。従って、ターゲット2は
/ERビットを0としたREQバイトを送信し、ターゲ
ット1とコントローラに対して転送エラーの発生を通知
することができる。このように本実施例では、複数のデ
ータフレームに対して1バイトのパリティチェックバイ
トを用いているにもかかわらず、各データフレームに1
バイトのパリティチェックバイトを付加したのと同様の
誤り検出能力を有している。
【0084】上述したように本実施例によれば、コント
ローラは、/BSY線3に/BSY信号をアサートした
後データフレームもしくは空フレームの送信を開始し、
データフレームの送信要求を持つターゲットは、コント
ローラによって/BSY線3がロウに保たれている間に
/BSY信号をアサートし、コントローラは/BSY信
号をネゲートしても/BSY線3がロウのままであれ
ば、/BSY線3がハイに移行するまで転送用クロック
を出力し、ターゲットは、自身より送信順位の早い全て
のターゲットとコントローラが空フレームもしくはデー
タフレームの送信を終了した後で転送用クロックに同期
してデータフレームの送信を開始し、データフレームの
送信を終了した後で/BSY信号をネゲートすることに
より、シリアルバスへのマイコンの追加や削除が容易に
行えると共に、データフレームの送信要求を持った全て
のマイコンが衝突すること無くデータフレームの転送を
行うことができる。
【0085】また、一転送単位のデータを転送するのに
必要な単位クロックを間欠的にコントローラから出力
し、コントローラが、データフレームもしくは空フレー
ムの送信終了後の単位クロックの出力タイミングで/B
SY信号をネゲートしても/BSY線3が低レベルのま
まであれば、再度/BSY信号をアサートしてから単位
クロックの出力を行い、ターゲットはデータフレームの
送信を終了した直後に/BSY信号をネゲートすること
により、/BSY線3のモニタに外部割込みを使用する
必要が無い。
【0086】また、コントローラは、自身がデータ線1
上に送信したデータとデータ線1から受信したデータを
用いて/BSY線3が低レベルの期間にデータ線1上を
転送された全てのデータに対する誤り検出コードを算出
し、/BSY線3が高レベルに遷移した後で誤り検出コ
ードを送信し、全てのターゲットは、自身がデータ線上
に送信したデータとデータ線から受信したデータと受信
した誤り検出コードとを用いて転送エラーの有無を検出
し、エラーを検出した場合には/ERビットを0とした
REQバイトを送信することにより、データフレーム毎
に誤り検出コードを付加したり、データフレーム毎に受
信応答する必要が無く効率的なデータフレーム転送が実
現できる。
【0087】また、データヘッダにはデータヘッダの転
送エラーを検出するエラー検出コードが付加されてお
り、ターゲットはデータヘッダの転送エラーを検出した
場合、/BSY信号をネゲートすることにより、エラー
が発生した場合に直ちに転送ユニットを終了し、無駄な
データ転送を防ぐことが可能となる。
【0088】また、コントローラとターゲットは、自身
が受信すべきデータフレームが未受信の場合、/NDR
ビットを0としたREQバイトを送信し、コントローラ
と全てのターゲットは、受信したREQバイトの/ND
Rビットが0である場合には、/NDRビットが1であ
るREQバイトを受信するまで自身が送信する全てのデ
ータフレームを順に送信することにより、イベント駆動
型転送でありながら、リセット等によって受信していた
データフレームを失った場合でも直ちに必要なデータフ
レームを受信することができる。
【0089】また、コントローラは、ターゲットが送信
したデータヘッダで示されるユーザーデータのデータ長
より少ないデータがターゲットから送信された時点で/
BSY線3が高レベルに戻った場合には、/ERビット
を0としたREQバイトを送信することにより、データ
フレームを送信しているターゲットにリセットがかかっ
た場合にデータフレーム転送を無効にすることができ
る。
【0090】また、ターゲットは、立ち上げ時に制御線
が低レベルであれば、エラー検出ビットを真とした要求
コードを送信することによって、リセットからの立ち上
げ時間にばらつきがあったとしても、確実にデータフレ
ーム転送ができる。
【0091】また、コントローラは立ち上げ時に立ち上
げ時に制御線が低レベルであれば、/BSY線3が高レ
ベルになるまでクロック線2にクロックを出力し、/E
Rビットを0としたREQバイトを送信し、立ち上げ時
に/BSY線3が高レベルである場合、/BSY信号を
アサートする前にエラー検出ビットを真とした要求コー
ドを少なくとも2回送信することにより、コントローラ
にリセットがかかった転送ユニットのデータ転送を確実
に無効にすることができる。
【0092】また、データフレームを送信するターゲッ
トは、データフレームを構成する一転送単位のデータの
送信準備が終了した段階でデータ線をロウに遷移させ、
コントローラは、データフレームもしくは空フレームの
送信終了後の単位クロックの出力タイミングでデータ線
が低レベルであり、かつ、/BSY信号をネゲートして
も/BSY線3がロウのままであれば再度/BSY信号
をアサートした後で単位クロックの出力を行うことによ
り、コントローラがターゲットのデータ送信準備完了を
確認してから単位クロックを出力できる。
【0093】なお、上記実施例ではシリアルバスに接続
するデバイスとしてマイコンを用いていたが、バスに接
続されるデバイスはマイコンに限定されない。例えば、
DSP等のLSIを接続することも可能である。
【0094】また、上記実施例では誤り検出コードとし
てパリティチェックコードを用いていたが、巡回符号等
の誤り検出コードを用いても良い。
【0095】また、上記実施例では、各マイコンには送
信順位を1つずつ割り当てていたが、1つのマイコンに
複数の送信順位を割り当て、1転送ユニットで同一のマ
イコンが複数のデータフレームを送信しても良い。
【0096】また、上記実施例では、バイトクロック周
期は一定としていたが、間欠的にバイトクロックが出力
されるのであれば一定である必要はない。例えば、デー
タヘッダの受信処理は受信カウンタの設定やデータヘッ
ダの判定処理等他のデータを受信した場合に比べて処理
時間が多くかかる可能性がある。従って、コントローラ
はデータヘッダを送信もしくは受信した場合には、ター
ゲットにより多くの処理時間が確保できるようにタイマ
割込みの周期を一時的に長くしても良い。
【0097】また、上記実施例ではコントローラのタイ
マ割込み処理はバイトクロックの出力完了を待たずに終
了し、次回のタイマ割込みで前回出力したバイトクロッ
クで転送されたデータの受信処理を行っていたが、タイ
マ割込み処理の中でバイトクロックの出力終了を待ち、
データの受信処理を行っても良い。また、バイトクロッ
クの出力をタイマ割込みで行い、受信処理はシリアル割
込み処理で行っても良い。
【0098】
【発明の効果】以上のように本発明は、コントローラ
は、制御線に低レベルの出力を開始した後でデータフレ
ームもしくは空フレームの送信を開始し、データフレー
ムの送信要求を持つターゲットは、コントローラによっ
て制御線が低レベルに保たれている間に制御線上への低
レベルの出力を開始し、コントローラは制御線への低レ
ベルの出力を終了しても制御線が低レベルのままであれ
ば、制御線が高レベルに移行するまで転送用クロックを
出力し、ターゲットは、自身より送信順位の早い全ての
ターゲットとコントローラが空フレームもしくはデータ
フレームの送信を終了した後で転送用クロックに同期し
てデータフレームの送信を開始し、データフレームの送
信を終了した後で制御線への低レベルの出力を停止する
ことにより、シリアルバスへのマイコンの追加や削除が
容易に行えると共に、データフレームの送信要求を持っ
た全てのマイコンが衝突すること無くデータフレームの
転送を行うことができるという効果が得られる。
【0099】また、一転送単位のデータを転送するのに
必要な単位クロックを間欠的にコントローラから出力
し、コントローラが、データフレームもしくは空フレー
ムの送信終了後の単位クロックの出力タイミングで制御
線への低レベルの出力を終了しても制御線が低レベルの
ままであれば、再度制御線への低レベルの出力を再開し
た後で単位クロックの出力を行い、ターゲットはデータ
フレームの送信を終了した直後に制御線への低レベルの
出力を停止することにより、制御線のモニタに外部割込
みを使用する必要が無いという効果が得られる。
【0100】また、コントローラは、自身がデータ線上
に送信したデータとデータ線から受信したデータを用い
て制御線が低レベルの期間にデータ線上を転送された全
てのデータに対する誤り検出コードを算出し、制御線が
高レベルに遷移した後で誤り検出コードを送信し、全て
のターゲットは、自身がデータ線上に送信したデータと
データ線から受信したデータと受信した誤り検出コード
とを用いて転送エラーの有無を検出し、エラーを検出し
た場合には少なくとも1ビット以上のエラー検出ビット
を真とした要求コードを予め定められたタイミングで送
信することにより、データフレーム毎に誤り検出コード
を付加したり、データフレーム毎に受信応答する必要が
無く効率的なデータフレーム転送が実現できるという効
果が得られる。さらに、本手法ではデータフレーム毎に
誤り検出コードを付加してデータ転送を行うのとほぼ同
等のエラー検出能力を有することができる。
【0101】また、データヘッダにはデータヘッダの転
送エラーを検出するエラー検出コードが付加されてお
り、ターゲットはデータヘッダの転送エラーを検出した
場合、制御線への低レベルの出力を行っていれば出力を
停止することにより、エラーが発生した場合に直ちに転
送ユニットを終了し、無駄なデータ転送を防ぐことがで
きるという効果が得られる。
【0102】また、コントローラとターゲットは、自身
が受信すべきデータフレームが未受信の場合、少なくと
も1ビット以上のデータフレーム要求ビットを真とした
要求コードを送信し、コントローラと全てのターゲット
は、受信した要求コードのデータフレーム要求ビットが
真である場合には、要求ビットが偽である要求コードを
受信するまで自身が送信する全てのデータフレームを順
に送信することにより、イベント駆動型転送でありなが
ら、リセット等によって受信していたデータフレームを
失った場合でも直ちに必要なデータフレームを受信する
ことができるという効果が得られる。また、このビット
を常に真としておけば、常時転送することになるため、
本データ転送方法は、イベント駆動型転送でありながら
常に転送を行うシステムとの整合性が高いデータ転送方
法であると言える。常に転送を行っているシリアルバス
をイベント駆動型転送に変更する際には、データフレー
ムの送受信を行う通信プログラムと、送信するデータフ
レームを決定するアプリケーションプログラムの双方を
変更する必要がある。これは、送信するデータフレーム
の内容に変化があったかどうかはアプリケーションプロ
グラムが判断するからである。常時データ転送を行って
いるシステムに本データ転送方法を導入する際には、要
求ビットを常に真としておくだけでアプリケーションプ
ログラムは何ら変更する必要が無い。
【0103】また、コントローラは、ターゲットが送信
したデータヘッダで示されるユーザーデータのデータ長
より少ないデータがターゲットから送信された時点で制
御線が高レベルに戻った場合には、エラー検出ビットを
真とした要求コードを送信することにより、データフレ
ームを送信しているターゲットにリセットがかかった場
合にデータフレーム転送を無効にすることができるとい
う効果が得られる。
【0104】また、ターゲットは、立ち上げ時に制御線
が低レベルであれば、エラー検出ビットを真とした要求
コードを送信することによって、リセットからの立ち上
げ時間にばらつきがあったとしても、確実にデータフレ
ーム転送ができるという効果が得られる。
【0105】また、コントローラは立ち上げ時に立ち上
げ時に制御線が低レベルであれば、制御線が高レベルに
なるまでクロック線にクロックを出力し、エラー検出ビ
ットを真とした要求コードを送信し、立ち上げ時に前記
制御線が高レベルである場合、制御線に低レベルを出力
する前にエラー検出ビットを真とした要求コードを少な
くとも2回送信することにより、コントローラにリセッ
トがかかった転送ユニットのデータ転送を確実に無効に
することができるという効果が得られる。
【0106】また、データフレームを送信するターゲッ
トは、データフレームを構成する一転送単位のデータの
送信準備が終了した段階でデータ線を低レベルに遷移さ
せ、コントローラは、データフレームもしくは空フレー
ムの送信終了後の単位クロックの出力タイミングでデー
タ線が低レベルであり、かつ、制御線への低レベルの出
力を終了しても制御線が低レベルのままであれば再度制
御線への低レベルの出力を再開した後で前記単位クロッ
クの出力を行うことにより、コントローラがターゲット
のデータ送信準備完了を確認してから単位クロックを出
力できるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施例におけるデータ転送方法を用い
てデータ転送を行うシステムの構成を示すブロック図
【図2】同実施例におけるシリアルデータ,クロック,
/BSY線の関係を示すタイミング図
【図3】同実施例におけるヘッダのフォーマットを示す
模式図
【図4】同実施例においてデータフレームの構成を示す
模式図
【図5】同実施例におけるデータヘッダの値とユーザー
データのバイト数Nとの関連を示す模式図
【図6】同実施例におけるREQバイトのフォーマット
を示す模式図
【図7】同実施例におけるデータフレームの転送タイミ
ング例を示したタイミング図
【図8】同実施例におけるデータフレームの転送タイミ
ング例を示したタイミング図
【図9】同実施例におけるデータフレームの転送タイミ
ング例を示したタイミング図
【図10】同実施例におけるデータフレームの転送タイ
ミング例を示したタイミング図
【図11】同実施例におけるターゲットが行うシリアル
転送割り込みの処理ルーチンの概略フローチャート
【図12】同実施例におけるコントローラが行うタイマ
割り込みの処理ルーチンの概略フローチャート
【図13】マイコンのスタートコンディション付きシリ
アル転送のタイミング図
【符号の説明】 1 データ線 2 クロック線 3 /BSY線 10,11,12, マイコン 14 /BSY信号入出力ポート 15 クロック入力ポート 16 データ入力ポート 17 データ出力ポート 18 クロック出力ポート

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 1つのコントローラと予め送信順位が定
    められている1つ以上のターゲットが、少なくともデー
    タフレームを構成するデータを一転送単位ずつシリアル
    転送する双方向のデータ線と、前記一転送単位のデータ
    を転送するのに必要な単位クロックを予め定められた出
    力タイミングで間欠的に前記コントローラから前記ター
    ゲットに供給するクロック線と、双方向の制御線との3
    本の信号線で互いに接続されており、 前記コントローラは、前記制御線が高レベルのときに前
    記制御線に低レベルの出力を開始した後でデータフレー
    ムもしくは空フレームの送信を前記単位クロックに同期
    して行い、 データフレームの送信要求を持つ前記ターゲットは、前
    記コントローラによって前記制御線が低レベルに保たれ
    ている間に前記制御線上への低レベルの出力を開始し、 前記コントローラは、データフレームもしくは空フレー
    ムの送信終了後の前記単位クロックの出力タイミングで
    前記制御線への低レベルの出力を終了しても前記制御線
    が低レベルのままであれば、再度前記制御線への低レベ
    ルの出力を再開した後で前記単位クロックの出力を行
    い、 前記制御線に低レベルを出力している前記ターゲット
    は、自身より前記送信順位の早い全ての前記ターゲット
    と前記コントローラが空フレームもしくはデータフレー
    ムの送信を終了した後で前記単位クロックに同期してデ
    ータフレームの送信を開始し、データフレームの送信を
    終了した後で次の単位クロックの出力タイミングまでに
    前記制御線への低レベルの出力を停止することを特徴と
    するデータ転送方法。
  2. 【請求項2】 データフレームを送信するターゲット
    は、データフレームを構成する一転送単位のデータの送
    信準備が終了した段階でデータ線を低レベルに遷移さ
    せ、 コントローラは、データフレームもしくは空フレームの
    送信終了後の単位クロックの出力タイミングで前記デー
    タ線が低レベルであり、かつ、前記制御線への低レベル
    の出力を終了しても前記制御線が低レベルのままであれ
    ば再度前記制御線への低レベルの出力を再開した後で前
    記単位クロックの出力を行い、 前記ターゲットは前記単位クロックに同期して前記一転
    送単位のデータを送信し、前記データの送信が終了した
    時点でデータ線を高レベルに遷移させることを特徴とす
    る請求項1記載のデータ転送方法。
  3. 【請求項3】 1つのコントローラと予め送信順位が定
    められている1つ以上のターゲットが、少なくともデー
    タフレームを構成するデータをシリアル転送する双方向
    のデータ線と、前記データ線上を転送されるデータの転
    送用クロックを前記コントローラから前記ターゲットに
    供給するクロック線と、双方向の制御線との3本の信号
    線で互いに接続されており、 前記コントローラは、前記制御線が高レベルの時に前記
    制御線に低レベルの出力を開始した後でデータフレーム
    もしくは空フレームの送信を開始し、データフレームも
    しくは空フレームの送信が終了した後で前記制御線への
    低レベルの出力を終了し、 データフレームの送信要求を持つ前記ターゲットは、前
    記コントローラによって前記制御線が低レベルに保たれ
    ている間に前記制御線上への低レベルの出力を開始し、 前記コントローラは、前記制御線への低レベルの出力を
    終了しても前記制御線が低レベルのままであれば、前記
    制御線が高レベルに移行するまで前記転送用クロックを
    出力し、 前記制御線に低レベルを出力している前記ターゲット
    は、自身より前記送信順位の早い全ての前記ターゲット
    と前記コントローラが空フレームもしくはデータフレー
    ムの送信を終了した後で前記転送用クロックに同期して
    データフレームの送信を開始し、データフレームの送信
    を終了した後で前記制御線への低レベルの出力を停止す
    ることを特徴とするデータ転送方法。
  4. 【請求項4】 空フレームは固定長の空ヘッダからな
    り、 データフレームは固定長のデータヘッダと可変長のユー
    ザーデータからなり、 前記データヘッダは前記ユーザーデータのデータ長と種
    類を示す情報が含まれており、 制御線に低レベルを出力しているターゲットは、前記ユ
    ーザーデータのデータ長を計数することによってデータ
    フレームの終了を検出し、データフレームと空フレーム
    の個数を計数することにより自身より前記送信順位の早
    い全ての前記ターゲットとコントローラが空フレームも
    しくはデータフレームの送信を終了したことを検出する
    ことを特徴とする請求項1または3記載のデータ転送方
    法。
  5. 【請求項5】 コントローラは、自身がデータ線上に送
    信したデータと前記データ線から受信したデータを用い
    て制御線が低レベルの期間に前記データ線上を転送され
    た全てのデータに対する誤り検出コードを算出し、制御
    線が高レベルに遷移した後で前記誤り検出コードを送信
    し、 全てのターゲットは、自身がデータ線上に送信したデー
    タと前記データ線から受信したデータと受信した前記誤
    り検出コードとを用いて転送エラーの有無を検出し、エ
    ラーを検出した場合には少なくとも1ビット以上のエラ
    ー検出ビットを真とした要求コードを予め定められたタ
    イミングで送信することを特徴とする請求項4記載のデ
    ータ転送方法。
  6. 【請求項6】 データヘッダにはデータヘッダの転送エ
    ラーを検出するエラー検出コードが付加されており、 コントローラはデータヘッダの転送エラーを検出した場
    合、エラー検出ビットを真とした要求コードを送信し、 ターゲットは前記データヘッダの転送エラーを検出した
    場合、制御線への低レベルの出力を行っていれば出力を
    停止し、エラー検出ビットを真とした要求コードを送信
    することを特徴とする請求項5記載のデータ転送方法。
  7. 【請求項7】 コントローラとターゲットは、自身が受
    信すべきデータフレームが未受信の場合、少なくとも1
    ビット以上のデータフレーム要求ビットを真とした要求
    コードを送信し、 前記コントローラと全ての前記ターゲットは、受信した
    前記要求コードの前記データフレーム要求ビットが真で
    ある場合には、前記データフレーム要求ビットが偽であ
    る要求コードを受信するまで自身が送信する全てのデー
    タフレームを順に送信することを特徴とする請求項5記
    載のデータ転送方法。
  8. 【請求項8】 コントローラは、ターゲットが送信した
    データヘッダで示されるユーザーデータのデータ長より
    少ないデータがターゲットから送信された時点で制御線
    が高レベルに戻った場合には、エラー検出ビットを真と
    した要求コードを送信することを特徴とする請求項5記
    載のデータ転送方法。
  9. 【請求項9】 ターゲットは、立ち上げ時に制御線が低
    レベルであれば、エラー検出ビットを真とした要求コー
    ドを送信することを特徴とする請求項5記載のデータ転
    送方法。
  10. 【請求項10】 コントローラは、立ち上げ時に制御線
    が低レベルである場合、前記制御線が高レベルになるま
    でクロック線にクロックを出力し、エラー検出ビットを
    真とした要求コードを送信し、 コントローラは、立ち上げ時に前記制御線が高レベルで
    ある場合、前記制御線に低レベルを出力する前にエラー
    検出ビットを真とした要求コードを少なくとも2回送信
    することを特徴とする請求項5記載のデータ転送方法。
JP5112860A 1993-05-14 1993-05-14 データ転送方法 Pending JPH06324977A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP5112860A JPH06324977A (ja) 1993-05-14 1993-05-14 データ転送方法
US08/242,441 US5600803A (en) 1993-05-14 1994-05-13 Data transfer system and method using data bus having bi-directional serial data line, clock line and bi-directional control line
EP94107528A EP0631239B1 (en) 1993-05-14 1994-05-16 Serial data transfer method and system
DE69432726T DE69432726T2 (de) 1993-05-14 1994-05-16 Verfahren und System zur seriellen Datenübertragung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5112860A JPH06324977A (ja) 1993-05-14 1993-05-14 データ転送方法

Publications (1)

Publication Number Publication Date
JPH06324977A true JPH06324977A (ja) 1994-11-25

Family

ID=14597347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5112860A Pending JPH06324977A (ja) 1993-05-14 1993-05-14 データ転送方法

Country Status (4)

Country Link
US (1) US5600803A (ja)
EP (1) EP0631239B1 (ja)
JP (1) JPH06324977A (ja)
DE (1) DE69432726T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014017657A (ja) * 2012-07-09 2014-01-30 Denso Corp 電子制御装置
JP2020145525A (ja) * 2019-03-04 2020-09-10 富士電機株式会社 スレーブ通信装置、システム、及びマスタ通信装置

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2139583T3 (es) * 1992-08-19 2000-02-16 Siemens Nixdorf Inf Syst Sistema multiprocesador con memorias cache.
US6061794A (en) * 1997-09-30 2000-05-09 Compaq Computer Corp. System and method for performing secure device communications in a peer-to-peer bus architecture
US6178471B1 (en) 1998-07-21 2001-01-23 International Business Machines Corporation Method of sharing buffers for the streaming of unchanged data
US6434650B1 (en) * 1998-10-21 2002-08-13 Intel Corporation Apparatus and method for multiplexing bi-directional data onto a low pin count bus between a host CPU and co-processor
JP2000293485A (ja) * 1999-04-08 2000-10-20 Matsushita Electric Ind Co Ltd 通信インターフェース
EP1050826A1 (en) * 1999-05-05 2000-11-08 Motorola, Inc. Method for operating a communication system on a serial bus
FR2795256A1 (fr) * 1999-06-15 2000-12-22 Koninkl Philips Electronics Nv Systeme de transmission, recepteur, emetteur et dispositif d'interface pour interfacer un systeme parallele avec un emetteur recepteur de type data-strobe
US6457078B1 (en) * 1999-06-17 2002-09-24 Advanced Micro Devices, Inc. Multi-purpose bi-directional control bus for carrying tokens between initiator devices and target devices
DE10030358A1 (de) 2000-06-21 2002-01-03 Heidenhain Gmbh Dr Johannes Verfahren und Vorrichtung zur seriellen Datenübertragung zwischen einem Positionsmesssystem und einer Verarbeitungseinheit
FR2812146B1 (fr) * 2000-07-21 2003-01-17 Alliance Pour Les Technologies Composants programmables et systemes pour des communications en full-duplex entre un maitre et plusieurs esclaves
EP1237090A1 (en) * 2001-02-28 2002-09-04 Alcatel Serial peripheral interface master device, a serial peripheral interface slave device and a serial peripheral interface
DE10224311B4 (de) * 2002-05-31 2004-07-08 Siemens Ag Verfahren und Vorrichtung zur seriellen Datenübertragung
EP1473638B1 (en) * 2003-04-28 2008-07-23 Texas Instruments Incorporated Terminal management bus
US7065593B2 (en) * 2003-12-17 2006-06-20 Tellabs Petaluma, Inc. Centralized, double bandwidth, directional, shared bus communication system architecture
US7308516B2 (en) * 2004-04-26 2007-12-11 Atmel Corporation Bi-directional serial interface for communication control
JP4600509B2 (ja) * 2008-04-22 2010-12-15 セイコーエプソン株式会社 送受信システム並びにマスターデバイス
DE102011007437A1 (de) * 2010-11-15 2012-05-16 Continental Teves Ag & Co. Ohg Verfahren und Schaltungsanrodnung zur Datenübertragung zwischen Prozessorbausteinen
CN109117410B (zh) * 2018-08-07 2020-11-24 国网上海市电力公司 一种基于通用异步串行通信接口的高精度对时方法
CN114116583B (zh) * 2021-11-17 2022-08-26 德力西(杭州)变频器有限公司 双芯片的串行通信方法和具有双芯片的系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5868346A (ja) * 1981-10-18 1983-04-23 Toshiba Corp デ−タ伝送システム
JPS6358567A (ja) * 1986-08-28 1988-03-14 Nec Corp 直列インタフエ−スバス方式
DE3751609T2 (de) * 1986-09-01 1996-07-04 Nippon Electric Co Datenprozessor mit Hochgeschwindigkeitsdatenübertragung.
JPH04332065A (ja) * 1991-05-08 1992-11-19 Matsushita Electric Ind Co Ltd データ転送方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014017657A (ja) * 2012-07-09 2014-01-30 Denso Corp 電子制御装置
JP2020145525A (ja) * 2019-03-04 2020-09-10 富士電機株式会社 スレーブ通信装置、システム、及びマスタ通信装置

Also Published As

Publication number Publication date
EP0631239A3 (en) 1998-04-01
DE69432726T2 (de) 2004-04-15
EP0631239A2 (en) 1994-12-28
EP0631239B1 (en) 2003-05-28
US5600803A (en) 1997-02-04
DE69432726D1 (de) 2003-07-03

Similar Documents

Publication Publication Date Title
JPH06324977A (ja) データ転送方法
US11010327B2 (en) I3C point to point
JPH04332065A (ja) データ転送方法
EP0051332A1 (en) Two-wire bus-system comprising a clock wire and a data wire for interconnecting a number of stations
JP2001274862A (ja) 2つの電子的バス局間でデータをシリアル伝送する方法及び、その方法で使用するバス局
CN108369565A (zh) 通信装置、通信方法、程序、以及通信系统
CN112445744B (zh) I2c通信
JP3832733B2 (ja) ポーリング装置および通信装置
CN115794699B (zh) 基于spi通信的数据写入方法、电子终端及存储介质
CN113190479B (zh) 处理器与1553b总线控制器的数据交互方法
JP2000231539A (ja) データ転送システムおよびデータ転送方法
JP3638769B2 (ja) 通信制御装置
JP2007517327A (ja) 受信したシリアル転送アライメントシーケンスのレートの検証
US12248365B2 (en) Error handling for a mixed mode RFFE bus
US20030196130A1 (en) Prompt resynchronization for a serial interface
US20020099890A1 (en) Apparatus and method for processing interruptions in a data transmission over a bus
TW202533558A (zh) 能夠促進控制訊框傳輸的電子裝置及其方法
US20060136635A1 (en) Very little multi master bus
JPH1174893A (ja) データ通信装置およびその通信方法
CN121336194A (zh) 串行数据总线上的错误状况的检测和恢复
JPH05289990A (ja) データ転送方法
CN121311880A (zh) 对串行数据总线的卡死的数据线路的检测
KR970009750B1 (ko) 하이파이 버스 인터럽트 요청기의 상태 제어방법
JPS63228855A (ja) 通信制御装置
EP1128272A1 (en) Method for the serial transfer of data between two electronic bus stations and bus station for use in said method