(57)【要約】【課題】通信線の数を削減して回路規模を縮小すると共に、通信負荷の軽い簡易型の通信方式を実現する。【解決手段】メインＣＰＵ２３からサブＣＰＵ２５への制御線については、高速性を落とさないようにデータ線の他にクロック線を設け、クロック同期式のパケット送信形式を採用する一方、サブＣＰＵ２５からメインＣＰＵ２３への制御線については、通信の高速性を犠牲にし、クロック線を削除してデータ線のみを設ける。メインＣＰＵ２３は、１バイト目がインデックス番号、２バイト目がデータ値、３バイト目がチェックサムからなるパケットデータをサブＣＰＵ２５に送信する。一方、サブＣＰＵ２５は、インデックス番号及びチェックサムを確認し、通信エラーの有無を示すアクノリッジ・ビットをメインＣＰＵ２３に返信する。【選択図】  図５
2005018160.tif 000002
【特許請求の範囲】
【請求項１】
第１の制御手段と第２の制御手段とを有し、該第１の制御手段と該第２の制御手段との間で、上記第１の制御手段から上記第２の制御手段への単方向のクロック線及び第１のデータ線と、上記第２の制御手段から上記第１の制御手段への単方向の第２のデータ線とを用いてシリアルデータ通信を行うデータ通信装置であって、
上記第１の制御手段は、固定長のデータ及びエラーチェック用データからなるパケットデータを、上記クロック線のクロックに同期させて、上記第１のデータ線を介して上記第２の制御手段に伝送する伝送手段を有し、
上記第２の制御手段は、受信した上記パケットデータの上記エラーチェック用データを確認し、通信エラーがあった旨及び／又はなかった旨を上記第２のデータ線を介して上記第１の制御手段に返信する返信手段を有する
ことを特徴とするデータ通信装置。
【請求項２】
上記伝送手段は、上記第２の制御手段から通信エラーがあった旨が返信された場合、又は上記パケットデータを伝送してから規定時間内に上記第２の制御手段から通信エラーがなかった旨が返信されない場合に、再度同一のパケットデータを上記第２の制御手段に伝送することを特徴とする請求項１記載のデータ通信装置。
【請求項３】
上記データは、第１の固定長のインデックス番号と第２の固定長の真のデータ値からなることを特徴とする請求項１記載のデータ通信装置。
【請求項４】
上記返信手段は、受信中の上記パケットデータの上記インデックス番号を確認し、該インデックス番号が所定の範囲外である場合に、通信エラーがあった旨を上記第１の制御手段に返信し、
上記伝送手段は、上記パケットデータの伝送中に上記第２の制御手段から上記通信エラーがあった旨が返信されると、再度同一のパケットデータを上記第２の制御手段に伝送する
ことを特徴とする請求項３記載のデータ通信装置。
【請求項５】
上記第２の制御手段は、上記真のデータ値に対応して設けられた記憶手段を有し、
上記真のデータ値が上記第２の固定長よりも長い場合、上記伝送手段は、上記真のデータ値を上記第２の固定長の複数の部分データに分割すると共に所定の順序で上記インデックス番号を与え、該所定の順序で上記複数の部分データを上記第２の制御手段に伝送し、
上記第２の制御手段は、最後の部分データを受信するまで、該真のデータ値に対応する記憶手段を更新しない
ことを特徴とする請求項３記載のデータ通信装置。
【請求項６】
第１の制御手段と第２の制御手段との間で、上記第１の制御手段から上記第２の制御手段への単方向のクロック線及び第１のデータ線と、上記第２の制御手段から上記第１の制御手段への単方向の第２のデータ線とを用いてシリアルデータ通信を行うデータ通信方法であって、
上記第１の制御手段が、固定長のデータ及びエラーチェック用データからなるパケットデータを、上記クロック線のクロックに同期させて、上記第１のデータ線を介して上記第２の制御手段に伝送する伝送工程と、
上記第２の制御手段が、受信した上記パケットデータの上記エラーチェック用データを確認し、通信エラーがあった旨及び／又はなかった旨を上記第２のデータ線を介して上記第１の制御手段に返信する返信工程と
を有することを特徴とするデータ通信方法。
【請求項７】
上記返信工程にて上記第２の制御手段から通信エラーがあった旨が返信された場合、又は上記パケットデータを伝送してから規定時間内に上記第２の制御手段から通信エラーがなかった旨が返信されない場合に、再度同一のパケットデータを上記第１の制御手段から上記第２の制御手段に伝送する再送工程をさらに有することを特徴とする請求項６記載のデータ通信方法。
【請求項８】
上記データは、第１の固定長のインデックス番号と第２の固定長の真のデータ値からなることを特徴とする請求項６記載のデータ通信方法。
【請求項９】
受信中の上記パケットデータの上記インデックス番号を確認し、該インデックス番号が所定の範囲外である場合に、通信エラーがあった旨を上記第２の制御手段から上記第１の制御手段に返信する受信中返送工程と、
上記パケットデータの伝送中に上記第２の制御手段から上記通信エラーがあった旨が返信された場合に、再度同一のパケットデータを上記第１の制御手段から上記第２の制御手段に伝送する伝送中再送工程と
をさらに有することを特徴とする請求項８記載のデータ通信方法。
【請求項１０】
上記第２の制御手段は、上記真のデータ値に対応して設けられた記憶手段を有し、
上記真のデータ値が上記第２の固定長よりも長い場合、上記伝送工程では、上記真のデータ値を上記第２の固定長の複数の部分データに分割すると共に所定の順序で上記インデックス番号を与え、該所定の順序で上記複数の部分データを上記第２の制御手段に伝送し、
上記第２の制御手段は、最後の部分データを受信するまで、該真のデータ値に対応する記憶手段を更新しない
ことを特徴とする請求項８記載のデータ通信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、第１の制御手段と第２の制御手段との間でシリアルデータ通信を行うデータ通信装置及びその方法に関する。
【０００２】
【従来の技術】
近年、マイクロコンピュータやＬＳＩ（Ｌａｒｇｅ−Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）等（以下、「ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）」と総称する。）を要する商品開発において、商品のパフォーマンス向上の目的で、搭載デバイスが追加又は変更されることが多くなってきている。その際、日頃から使用実績のあるＣＰＵでは制御ポートが不足してしまうことも少なくない。しかしながら、概して日程が厳しいソフトウェア開発環境において新規ＣＰＵを採用することは、検証性やソフトウェア移植時の作業効率面からリスクが非常に大きい。したがって、ソフトウェア資産を迅速且つ安全に再利用するためにも、ＣＰＵの変更は極力避けることが望ましい。
【０００３】
このような状況下においては、使用実績のあるＣＰＵに対し、さらにもう１チップ使用実績のあるＣＰＵを追加し、２ＣＰＵの構成でシステムを実現する考えが通常である。しかしながら、コスト面の都合上、追加ＣＰＵとして比較的低コストで低パフォーマンスのＣＰＵ（８ビット／８ＭＨｚなど）を採用せざるを得ない状況も少なくない。このような低パフォーマンスのＣＰＵは、あらゆる処理において期待する処理速度が得られないのが現状であるため、２ＣＰＵ間の通信仕様は充分に熟慮されたものでないとシステムは破綻をきたしてしまう。
【０００４】
ところで、２ＣＰＵ間通信において、通信線の数は通信方式を大きく決定付ける。この通信方式は、パケットサイズが柔軟に変更でき、高速且つ信頼性が高く、安価なハードウェア構成で実現できるものが望ましい。
【０００５】
従来の技術の中でこのような条件を満たす通信方式としては、図１７に示すように、１方向当たりクロック線（ＣＬＯＣＫ）、データ線（ＤＡＴＡ）及びラッチ線（ＬＡＴ）の３線を１セットとして、双方向で合計６線の通信線を用いるのが一般的である。このような６線式の通信方式では、図１８のタイミングチャートに示すように、送信側がクロックに同期させて１パケット分のデータを送信する。１パケット分のデータを送信すると、ラッチ線の信号レベルを所定時間ローレベルからハイレベルに変化させ、パケットデータの終了を表す。なお、受信側では、クロックの立ち上がりでデータを取り込む。
【０００６】
しかしながら、熟慮の結果得られた最適な回路構成においても、全通信線に対してレベルシフタ回路等のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）が必要な場合も起こり得る。その場合、通信線の数が直接、コスト面や回路面積に悪影響を及ぼしてしまい、物理的な制限があるハードウェア設計において非常な不利な条件となる。
【０００７】
このような理由から、例えば下記特許文献１では、クロック同期用信号線、シリアルデータ通信用信号線及び返信信号用信号線を用いた３線式の通信方式が提案されている。
【０００８】
【特許文献１】
特開平１１−２８９３１８号公報
【０００９】
【発明が解決しようとする課題】
しかしながら、この特許文献１に記載の技術では、双方向のデータ線を用いると共にクロック線を送信側と受信側とで共有しており、さらに通信エラーを判定するために、同一データを２度送信しなければならない通信方式であったため、より簡易型の通信方式が望まれていた。
【００１０】
本発明は、このような従来の実情に鑑みて提案されたものであり、通信線の数を削減して回路規模を縮小すると共に、通信負荷の軽い簡易型の通信方式を実現するデータ通信装置及びその方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上述した目的を達成するために、本発明に係るデータ通信装置は、第１の制御手段と第２の制御手段とを有し、該第１の制御手段と該第２の制御手段との間で、上記第１の制御手段から上記第２の制御手段への単方向のクロック線及び第１のデータ線と、上記第２の制御手段から上記第１の制御手段への単方向の第２のデータ線とを用いてシリアルデータ通信を行うデータ通信装置であって、上記第１の制御手段は、固定長のデータ及びエラーチェック用データからなるパケットデータを、上記クロック線のクロックに同期させて、上記第１のデータ線を介して上記第２の制御手段に伝送する伝送手段を有し、上記第２の制御手段は、受信した上記パケットデータの上記エラーチェック用データを確認し、通信エラーがあった旨及び／又はなかった旨を上記第２のデータ線を介して上記第１の制御手段に返信する返信手段を有するものである。
【００１２】
また、上述した目的を達成するために、本発明に係るデータ通信方法は、第１の制御手段と第２の制御手段との間で、上記第１の制御手段から上記第２の制御手段への単方向のクロック線及び第１のデータ線と、上記第２の制御手段から上記第１の制御手段への単方向の第２のデータ線とを用いてシリアルデータ通信を行うデータ通信方法であって、上記第１の制御手段が、固定長のデータ及びエラーチェック用データからなるパケットデータを、上記クロック線のクロックに同期させて、上記第１のデータ線を介して上記第２の制御手段に伝送する伝送工程と、上記第２の制御手段が、受信した上記パケットデータの上記エラーチェック用データを確認し、通信エラーがあった旨及び／又はなかった旨を上記第２のデータ線を介して上記第１の制御手段に返信する返信工程とを有するものである。
【００１３】
このようなデータ通信装置及びその方法では、第１の制御手段から第２の制御手段への制御線については、高速性を落とさないようにデータ線の他にクロック線を設け、クロック同期式のパケット送信形式を採用する一方、第２の制御手段から第１の制御手段への制御線については、通信の高速性を犠牲にし、クロック線を削除してデータ線のみを設けている。
【００１４】
【発明の実施の形態】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００１５】
先ず、本発明に係るデータ通信装置及びその方法が適用される前提となるデータ通信装置の概略構成を図１に示す。この図１は、ＣＰＵを搭載するデータ通信装置としてオーディオレシーバアンプを例としたものである。図１に示すように、入力切替部１０に入力されたデジタルオーディオ信号は、ＤＩＲ（Ｄｉｇｉｔａｌ  Ｉｎｔｅｇｒａｔｅｄ  Ｒｅｃｅｉｖｅｒ）１１で変復調が施され、ＰＣＭ（Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）信号となる。このＰＣＭ信号は、デコーダ１４でデコードされ、その出力信号はＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１５で音場処理が施される。一方、図１の入力切替部１２に入力されたアナログオーディオ信号は、ＡＤＣ（Ａｎａｌｏｇ−Ｄｉｇｉｔａｌ  Ｃｏｎｖｅｒｔｅｒ）１３でデジタルのＰＣＭ信号に変換され、デコーダ１４でデコードされた後、ＤＳＰ１５で音場処理が施される。
【００１６】
音場処理が施されたＰＣＭ信号は、デジタルアンプ１７１〜１７４で増幅された後、スピーカ・リレー１８１〜１８４を介して、それぞれサラウンドバックライトチャンネル（ＳＢＲ），サラウンドバックレフトチャンネル（ＳＢＬ），サラウンドライトチャンネル（ＳＲ），サラウンドレフトチャンネル（ＳＬ），センターチャンネル（Ｃ），フロントライトチャンネル（ＦＲ），フロントレフトチャンネル（ＦＬ）に対応するスピーカ２２１〜２２７から出力される。また、音場処理が施されたＰＣＭ信号は、ＤＡＣ（Ｄｉｇｉｔａｌ−Ａｎａｌｏｇ  Ｃｏｎｖｅｒｔｅｒ）１９でアナログオーディオ信号に変換されアナログアンプ２０で増幅された後、プリアウト・リレー２１を介して、サブウーファーチャンネル（ＳＷ）に対応するスピーカ２２８から出力される。以上の処理は、全てメインＣＰＵ２３によって制御される。
【００１７】
ここで、図１のデジタルアンプ１７１〜１７４及びスピーカ・リレー１８１〜１８４を含むブロック２４とそれ以外のブロックとの間には３５Ｖ程度のＤＣ（Ｄｉｒｅｃｔ  Ｃｕｒｒｅｎｔ）オフセット（電位差）が発生する場合があり、この場合には、ブロック２４を制御するに際して、全ての制御線でレベル・シフタ回路１６１〜１６４を要する。また、図１のデータ通信装置における新規デバイスはブロック２４のみであり、それ以外のブロックは既存のソフトウェアの変更で制御できるものとする。
【００１８】
このとき、ブロック２４以外のブロックについては、従来から使用実績のあるメインＣＰＵ２３と、そのメインＣＰＵ２３に実装されてきたソフトウェアとを使用することが望ましい。このときのメインＣＰＵ２３の制御範囲を図２に示す。図２に示すように、パネルインターフェース（Ｉ／Ｆ）ブロック３０、ディスプレイブロック３１、バックアップブロック３２、フラッシュアップデートブロック３３、アナログＡＶブロック３４、デジタルオーディオブロック３５といった各ブロックは、メインＣＰＵ２３によって制御されている。なお、この時点で、図１のブロック２４を制御するための制御用のポートは、既に５本しか残っていないものとする。
【００１９】
ここで、図１のブロック２４は、２チャンネル分のデジタルアンプ１７及びスピーカ・リレー１８が１組となる系を４組持つ構成となっている。この１組分のデジタルアンプ１７及びスピーカ・リレー１８の詳細な構成を図３に示す。図３に示すように、ゲイン制御部４０は、メインＣＰＵ２３からの指示により、ＤＳＰ１５（図１）から供給されたＰＣＭデータに対してゲイン制御を行い、ＰＷＭ（Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）信号に変換する。一方、ＤＡＣ４１は、ＣＰＵ２３での音量調整指示に対応して可変直流電圧を生成し、電源制御部４２は、この直流電圧に対応して左右チャンネルのＨＩＣ（Ｈｙｂｒｉｄ  ＩＣ）４３１，４３２に安定化した直流電源を供給する。ＨＩＣ４３１，４３２は、電源制御部４２から供給される直流電源をＰＷＭ信号に基づいてオンオフ制御し、電源にオーディオ信号成分を重畳させる。そしてローパスフィルタ（ＬＰＦ）４４１，４４２は、それぞれＨＩＣ４３１，４３２で発生した高周波成分を除去してオーディオ信号成分のみを抽出する。
【００２０】
この図３において、ゲイン制御部４０及びＤＡＣ４１には、メインＣＰＵ２３からの通信用として、クロック線（ＣＬＯＣＫ）、データ線（ＤＡＴＡ）、ラッチ線（ＬＡＴ）が接続されており、ＨＩＣ４３１，４３２には、メインＣＰＵ２３からのイネーブル信号用及びメインＣＰＵ２３への温度情報用の制御線（ＥＮＡＢＬＥ，ＴＥＭＰＲＡＴＵＲＥ）が接続されている。そして、スピーカ・リレー１８には、左右チャンネルのリレー信号用の制御線（Ｌｃｈ  ＲＥＬＡＹ，  Ｒｃｈ  ＲＥＬＡＹ）が接続されている。このように、２チャンネル分のデジタルアンプ１７及びスピーカ・リレー１８の１組毎に１０本のＣＰＵ制御線が必要とされるが、上述の通り、メインＣＰＵ２３において図１のブロック２４を制御するための制御用のポートは既に５本しか残っていないため、メインＣＰＵ２３のみによってブロック２４の全てを制御することはできない。
【００２１】
ところで、ソフトウェア面ではソフトウェアの再利用化、ハードウェア面では回路面積とコストの削減は最重要項目の１つである。したがって、以上の状況下では、メインＣＰＵ２３に対して、さらに図１のブロック２４専用のサブＣＰＵを追加する方針が賢明である。この際、サブＣＰＵの配置に関しては、図１のレベル・シフタ回路１６の個数を抑える効果を期待して、ＤＣオフセットが存在するブロック２４と同じ電位系に配置させるのがよいと判断できる。
【００２２】
以上述べた内容を考慮した本実施の形態におけるデータ通信装置１の概略構成を図４に示す。図４に示すように、データ通信装置１は、メインＣＰＵ２３（第１の制御手段）とサブＣＰＵ２５（第２の制御手段）とを有しており、サブＣＰＵ２５は、メインＣＰＵ２３との通信に基づき、デジタルアンプ１７１〜１７４及びスピーカ・リレー１８１〜１８４を含むブロック２４とスピーカ２２１〜２２７とを制御する。なお、メインＣＰＵ２３とサブＣＰＵとの間にはＤＣオフセット（電位差）が発生する場合があり、この場合には、全ての制御線においてレベル・シフタ回路１６を要する。
【００２３】
ここで、メインＣＰＵ２３とサブＣＰＵ２５との間の通信では、後述するように制御線の数を削減し、通信負荷の軽い簡易型の通信方式を採用しているため、例えば３２ビット／３３ＭＨｚといった高パフォーマンスのメインＣＰＵ２３と比較して、サブＣＰＵ２５としては、例えば８ビット／８ＭＨｚといった低コスト、低パフォーマンスのＣＰＵを採用することができる。
【００２４】
メインＣＰＵ２３とサブＣＰＵ２５との間の通信のハードウェア構成を図５に示す。図５に示すように、メインＣＰＵ２３からサブＣＰＵ２５への制御線は、高速性を落とさないようにデータ線の他にクロック線を設け、クロック同期式のパケット送信形式を採用している。一方、サブＣＰＵ２５からメインＣＰＵ２３への通信で最低限必要な情報は、メインＣＰＵ２３からの通信データに対するアクノリッジ・ビット、及び制御ハードウェアの異常検知を示す本体表示用情報であり、どちらの情報も通信の高速性が多少犠牲になっても、通信の破綻をきたす可能性は低い。そこで、サブＣＰＵ２５からメインＣＰＵ２３への制御線については通信の高速性を犠牲にし、クロック線を削除してデータ線のみを設けている。なお、メインＣＰＵ２３からサブＣＰＵ２５への制御線についても、サブＣＰＵ２５からメインＣＰＵ２３への制御線についても、ハードウェアのコスト、回路面積にさらに有利になるようにラッチ線を設けていない。
【００２５】
このように、双方向で合計３線の通信線を用いることにより、双方向で合計６線の通信線を用いる従来の通信方式と比較してハードウェア規模を縮小することができる。特に、メインＣＰＵ２３とサブＣＰ２５との間には前述したようにＤＣオフセットが発生することがあり、この場合には、全制御線にレベル・シフタ回路等を設ける必要があるが、制御線の本数を削減することにより、このレベル・シフタ回路等の数も削減することができ、ハードウェアのコスト、回路面積の見地からさらに有利になる。
【００２６】
ここで、上述したように、本実施の形態ではラッチ線を設けていないが、その代わりにパケット毎のデータ長を固定とし、パケット毎のデータの終了を知ることができるようにしている。
【００２７】
具体的には、各パケットデータを３バイト固定とし、それぞれ１バイト目でインデックス番号、２バイト目でデータ値、３バイト目でチェックサム（エラーチェック用データ）を表す。ここで、１バイト目のインデックス番号は、ボリューム値を調整するチャンネル等を示すための情報である。また、３バイト目のチェックサムは、パケット受信終了時に通信エラーを判断するための情報であり、インデックス番号（１バイト目）＋データ値（２バイト目）の値で定義する。
【００２８】
なお、制御内容によっては、２バイト目に配置すべきデータ値が１バイト以上必要になる場合がある。例えば、図４に示すデータ通信装置１において、サブＣＰＵ２５が制御するデジタルアンプ１７の制御データとしてボリューム値の定義が必要となるが、データ通信装置１におけるこのボリューム値の可変範囲は０．５ｄＢステップ刻みで−∞ｄＢ、−１１５．０ｄＢ、・・・、＋３０．０ｄＢの値をとり得る。これらのボリューム値に対して、レベルの小さい値から順にステップ番号を与えれば、１バイト（２５６通り）以上のデータが必要になる。
【００２９】
そこで、本実施の形態では、２バイト以上の多バイトデータについては、最上位バイトから順にインデックス番号を与え、所定の順序、例えば最上位バイトから順に（インデックス番号の小さい順に）サブＣＰＵ２５に送信する。一方、サブＣＰＵ２５は、多バイトデータの場合には、指定されるインデックス番号の最下位バイトのデータでない限り、該多バイトデータに対応するハードウェア制御ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、図示せず）を更新させない。
【００３０】
本実施の形態におけるインデックス番号の一例を以下の表１に示す。この表に示すように、メインボリュームは２バイト必要であるため、上位１バイトをインデックス番号０、下位１バイトをインデックス番号１とし、この順序でサブＣＰＵ２５に送信される。また、インデックス番号が２乃至９の場合には各チャンネルのボリューム値が送信され、インデックス番号が１０、１１の場合には、それぞれ指定チャンネルのミュート、及びスピーカ・リレーのオンオフのコマンドが送信される。なお、この場合、チャンネルはビット列で指定される。
【００３１】
【表１】
2005018160.tif 000003
【００３２】
このようなパケットデータをメインＣＰＵ２３からサブＣＰＵ２５に送信する場合のタイミングチャートを図６に示す。図６に示すように、メインＣＰＵ２３は、例えばクロック周期が２００μｓのクロックに同期させて１バイト目のデータを送信し、１クロック周期経過後に２バイト目のデータを送信し、同様にして３バイト目のデータを送信する。なお、サブＣＰＵ２５は、クロックの立ち上がりでデータを取り込む。
【００３３】
一方、サブＣＰＵ２５からメインＣＰＵ２３にパケットデータを送信する場合のタイミングチャートを図７に示す。図７に示すように、サブＣＰＵ２５は、パケット毎のデータの開始（ｓｔａｒｔ  ｃｏｎｄｉｔｉｏｎ）を表す例えば２．４ｍｓのローレベルの後、１バイト目のデータを送信する。この際、“１”であるビットは例えば１．２ｍｓのハイレベルで表現され、“０”であるビットは例えば０．６ｍｓのハイレベルで表現される。なお、各ビット間には０．６ｍｓのローレベルが介在する。同様にして、サブＣＰＵ２５は、２バイト目、３バイト目のデータを送信し、パケットデータの送信が終了すると、パケットデータの終了（ｓｔｏｐ  ｃｏｎｄｉｔｉｏｎ）を表す１０ｍｓ以上のハイレベルが続く。
【００３４】
以下、上述したパケットの使用を前提として、３線式の簡易型通信方式について説明する。
【００３５】
ボリューム値変更などのユーザ操作によりサブＣＰＵ２５の制御データが変化し、更新データが存在する場合に、メインＣＰＵ２３とサブＣＰＵ２５との間で行われる通信の動的な推移を図８に示す。ここで、この図８は、メインＣＰＵ２３からサブＣＰＵ２５に更新データＡ，Ｂに基づくパケットデータＡ，Ｂを送信し、パケットデータＡの通信が成立したものの、パケットデータＢの通信が不成立であった場合について説明するものである。なお、メインＣＰＵ２３から見て、通信の成立・不成立は、サブＣＰＵ２５からのアクノリッジ・ビット（ＡＣＫ  ＢＩＴ）の有無で判定される。
【００３６】
更新データＡがある場合、メインＣＰＵ２３は、パケットデータＡをサブＣＰＵ２５に送信する。サブＣＰＵ２５は、メインＣＰＵ２３からのパケットデータＡに対して、３バイト目に配置されるチェックサムの値から通信の成立状況を判断し、チェックサム値が正しければアクノリッジ・ビットをメインＣＰＵ２３に返信する。
【００３７】
また、更新データＢがある場合、メインＣＰＵ２３は、パケットデータＢをサブＣＰＵ２５に送信し、サブＣＰＵ２５は、メインＣＰＵ２３からのパケットデータＢに対して、３バイト目に配置されるチェックサムの値から通信の成立状況を判断する。この場合、チェックサム値が誤っているため、サブＣＰＵ２５はメインＣＰＵ２３にアクノリッジ・ビットを返信しない。メインＣＰＵ２３は、パケットデータを送信した後、規定時間内にサブＣＰＵ２５からアクノリッジ・ビットが返信されない場合には通信エラーと判断し、アクノリッジ・ビットが返信されるまでリトライをかけ、パケットデータＢをサブＣＰＵ２５に再送する。
【００３８】
なお、通信が不成立となる条件は、通信線が電気的なノイズによりデータが化けてしまう場合が殆どであるが、サブＣＰＵ２５のデバイス制御の負荷を大きくしてしまった場合は、デバイス制御中であるため受信拒否の処理を余儀なくさせてしてしまう場合も考え得る。
【００３９】
ところで、上述の例では、パケットデータの３バイト目に配置されるチェックサム値を用いて、すなわち全パケットデータの受信終了後に通信エラーか否かを判定しているが、図４に示したような構成の場合、ボリューム値を変えても音量が変わらないなど、２ＣＰＵ間の通信エラーの状況が直接的にシステムの応答に現れてしまう。したがって、通信エラー時にはさらに早いタイミングでリカバリー処理を行うことが望まれる。ここで、通信で必要なデータは有限個であるため、パケットデータのインデックス番号も有限個となる。したがって、このインデックス番号に対しても範囲チェックを行うことで通信エラーか否かを判定することができる。
【００４０】
上述と同様に、ボリューム値変更などのユーザ操作によりサブＣＰＵ２５の制御データが変化し、更新データが存在する場合に、メインＣＰＵ２３とサブＣＰＵ２５との間で行われる通信の動的な推移を図９に示す。ここで、この図９は、メインＣＰＵ２３からサブＣＰＵ２５に更新データＡ，Ｂに基づくパケットデータＡ，Ｂを送信し、パケットデータＡの通信が成立したものの、パケットデータＢのインデックス番号が所定の範囲外であり、通信が不成立であった場合について説明するものである。
【００４１】
更新データＡがある場合、メインＣＰＵ２３は、パケットデータＡをサブＣＰＵ２５に送信する。サブＣＰＵ２５は、メインＣＰＵ２３からのパケットデータＡに対して、１バイト目に配置されるインデックス番号の値と３バイト目に配置されるチェックサムの値とから通信の成立状況を判断し、インデックス番号が所定の範囲内にあり、且つチェックサムの値が正しければ、アクノリッジ・ビットをメインＣＰＵ２３に返信する。
【００４２】
また、更新データＢがある場合、メインＣＰＵ２３は、パケットデータＢをサブＣＰＵ２５に送信し、サブＣＰＵ２５は、メインＣＰＵ２３からのパケットデータＢに対して、先ず１バイト目に配置されるインデックス番号の値から通信の成立状況を判断する。この場合、インデックス番号の値が所定の範囲外であるため、サブＣＰＵ２５は、全パケットデータの受信が終了する前に、メインＣＰＵ２３にアクノリッジ・ビットを返信する。メインＣＰＵ２３は、パケットデータの送信中にサブＣＰＵ２３からアクノリッジ・ビットが返信された場合には通信エラーと判断し、直ちにパケットデータＢをサブＣＰＵ２５に再送する。
【００４３】
メインＣＰＵ２３からサブＣＰＵ２５へのパケットデータの通信が成立した場合のタイミングチャートを図１０に示す。図１０に示すように、メインＣＰＵ２３は、例えばクロック周期が２００μｓのクロックに同期させて１バイト目のデータを送信し、１クロック周期経過後に２バイト目のデータを送信し、同様にして３バイト目のデータを送信する。サブＣＰＵ２５は、全パケットデータの受信が終了すると、例えば０．３ｍｓだけハイレベルからローレベルへと変化させて、アクノリッジ・ビットを返信する。
【００４４】
一方、メインＣＰＵ２３からサブＣＰＵ２５へのパケットデータのうちインデックス番号が所定の範囲外であり、通信が不成立であった場合のタイミングチャートを図１１に示す。図１１に示すように、メインＣＰＵ２３は、例えばクロック周期が２００μｓのクロックに同期させて先ず１バイト目のデータを送信する。サブＣＰＵ２５は、１バイト目のインデックス番号を受信し、その値が所定の範囲外である場合には、例えば０．３ｍｓだけハイレベルからローレベルへと変化させて、アクノリッジ・ビットを返信する。メインＣＰＵ２３は、サブＣＰＵ２５からアクノリッジ・ビットが返信されると、クロックを一時的に停止させる。そして、メインＣＰＵ２３は、所定時間経過後に再びクロックを開始し、再度１バイト目のデータから送信を行う。
【００４５】
この図１０と図１１とを比較して分かる通り、１バイト目のインデックス番号の値で通信エラーか否かを判定することにより、通信エラー時のリカバリー処理を早期に行うことができる。
【００４６】
なお、上述の例では、パケットデータの通信が成立した場合に例えば０．３ｍｓだけハイレベルからローレベルへと変化させて、アクノリッジ・ビットを返信するものとして説明したが、通信が不成立であった場合にも不成立であった旨を示すアクノリッジ・ビットを返信するようにしても構わない。この場合、例えば成立と不成立とでローレベルの長さを変えることで、メインＣＰＵ２３において両者を区別することができる。
【００４７】
以上説明した２ＣＰＵ間の通信処理について、図１２、図１３のフローチャートに示す。
【００４８】
先ず、メインＣＰＵ２３からサブＣＰＵ２５にパケットデータを送信する際の処理について、図１２のフローチャートに示す。この図１２では、メインＣＰＵ２３がサブＣＰＵ２５へ送信する全データに対してそれぞれ送信ミラーバッファを持たせ、個々のインデックス番号において両者のデータ間に差分が発生した場合、この差分検索で指定したインデックス番号のデータを上述したパケットの形式でサブＣＰＵ２５に送信するものとする。ここで、通信データの変更は、メインＣＰＵ２３側の制御範囲内である操作系のデバイス入力（図４のパネルインターフェース部３０）により行われる。
【００４９】
始めに図１２のステップＳ１において、メインＣＰＵ２３は、ＲＡＭ（図示せず）と送信ミラーバッファとを比較し、指定インデックス番号のデータに変化があるか否かを判別する。指定インデックス番号のデータに変化がない場合（Ｎｏ）にはステップＳ２でインデックス番号を更新してステップＳ１に戻り、変化がある場合（Ｙｅｓ）にはステップＳ３に進む。
【００５０】
次にステップＳ３において、メインＣＰＵ２３は、指定インデックス番号のパケットデータを１バイト目から順に送信し、続くステップＳ４において、パケットデータ送信終了前にサブＣＰＵ２５からアクノリッジ・ビットが返信されたか否かを判別する。このステップＳ４において、アクノリッジ・ビットが返信された場合（Ｙｅｓ）、すなわちサブＣＰＵ２５で１バイト目のインデックス番号の値が所定の範囲外であると判断された場合には、ステップＳ５で送信データをクリアし、ステップＳ３に戻ってリトライ処理を行う。一方、ステップＳ４において、アクノリッジ・ビットが返信されていない場合（Ｎｏ）にはさらにパケットデータの送信を続け、ステップＳ６に進む。
【００５１】
ステップＳ６において、メインＣＰＵ２３は、パケットデータの送信が終了したか否かを判別し、３バイト目まで送信が終了していない場合（Ｎｏ）にはステップＳ４に戻り、終了している場合（Ｙｅｓ）にはステップＳ７で送信データをクリアする。
【００５２】
ステップＳ８では、メインＣＰＵ２３は、サブＣＰＵ２５からアクノリッジ・ビットが返信されたか否かを判別する。このステップＳ８において、アクノリッジ・ビットが返信されていない場合（Ｎｏ）にはステップＳ９に進み、規定時間経過したか否かが判別される。ステップＳ９において、規定時間経過していない場合（Ｎｏ）にはステップＳ１０で待ち時間カウンタをデクリメントし、ステップＳ８に戻る。一方、規定時間経過している場合にはステップＳ３に戻ってリトライ処理を行う。ステップＳ８においてアクノリッジ・ビットが返信されている場合（Ｙｅｓ）には、ステップＳ１１で送信したパケットデータを指定インデックス番号の送信ミラーバッファにコピーし、ステップＳ１２でインデックス番号を更新して、ステップＳ１に戻る。
【００５３】
次に、上述のようにメインＣＰＵ２３からサブＣＰＵ２５にパケットデータが送信された場合のサブＣＰＵ２５の処理について、図１３のフローチャートに示す。
【００５４】
始めに図１３のステップＳ２０において、サブＣＰＵ２５は、パケットデータの１バイト目のインデックス番号を受信したか否かを判別し、受信していない場合（Ｎｏ）にはステップＳ２０の判別を繰り返し、受信した場合（Ｙｅｓ）にはステップＳ２１に進む。
【００５５】
次にステップＳ２１において、サブＣＰＵ２５は、インデックス番号が所定の範囲内であるか否かを判別しる。ここで、インデックス番号が所定の範囲外である場合（Ｎｏ）にはステップＳ２２でメインＣＰＵ２３にアクノリッジ・ビットを送信し、さらにステップＳ２３で受信データをクリアしてステップＳ２０に戻る。一方、インデックス番号が所定の範囲内である場合（Ｙｅｓ）にはステップＳ２４に進む。
【００５６】
続いてステップＳ２４において、サブＣＰＵ２５は、パケットデータの３バイト目のチェックサムを受信したか否かを判別し、受信していない場合（Ｎｏ）にはステップＳ２４の判別を繰り返し、受信した場合（Ｙｅｓ）にはステップＳ２５に進む。
【００５７】
ステップＳ２５では、サブＣＰＵ２５は、チェックサムの値が正しいか否かを判別し、誤っている場合（Ｎｏ）にはステップＳ３１で受信データをクリアしてステップＳ２０に戻る。一方、チェックサムの値が正しい場合（Ｙｅｓ）にはステップＳ２６でメインＣＰＵ２３にアクノリッジ・ビットを送信し、ステップＳ２７で受信したデータを指定インデックス番号の受信ミラーバッファにコピーする。
【００５８】
ステップＳ２８では、サブＣＰＵ２５は、受信したデータが多バイトデータであるか否かを判別し、多バイトデータである場合（Ｙｅｓ）にはステップＳ２９に進み、多バイトデータでない場合（Ｎｏ）にはステップＳ３０に進む。
【００５９】
ステップＳ２９では、サブＣＰＵ２５は、最下位バイトのデータであるか否かを判別し、最下位データである場合（Ｙｅｓ）にはステップＳ３０に進み、最下位データでない場合（Ｎｏ）にはステップＳ３１で受信データをクリアしてステップＳ２０に戻る。
【００６０】
ステップＳ３０では、サブＣＰＵ２５は、指定インデックス番号のハードウェア制御ＲＡＭ（図示せず）を更新し、ステップＳ３１で受信データをクリアしてステップＳ２０に戻る。
【００６１】
以上、メインＣＰＵ２３が通信バス上のマスタとなっている場合について説明したが、サブＣＰＵ２５が通信バス上のマスタとなっている場合には、上述したように通信の高速性が要求されない。
【００６２】
サブＣＰＵ２５が制御ハードウェアの異常を検出した場合に、サブＣＰＵ２５とメインＣＰＵ２３との間で行われる通信の動的な推移を図１４に示す。ここで、この図１４は、サブＣＰＵ２５からメインＣＰＵ２３にパケットデータＡを送信したものの通信が不成立であり、パケットデータＡを再送する場合について説明するものである。なお、サブＣＰＵ２５から見て、通信の成立・不成立は、メインＣＰＵ２３からのアクノリッジ・パケット（ＡＣＫ  パケット）の有無で判定される。
【００６３】
サブＣＰＵ２５は、パケットデータＡをメインＣＰＵ２３に送信し、メインＣＰＵ２３は、サブＣＰＵ２５からのパケットデータＡに対して、３バイト目に配置されるチェックサムの値から通信の成立状況を判断する。この場合、チェックサム値が誤っているため、メインＣＰＵ２３はサブＣＰＵ２５にアクノリッジ・ビットを返信しない。サブＣＰＵ２５は、パケットデータを送信した後、規定時間内にメインＣＰＵ２３からアクノリッジ・パケットが返信されない場合には通信エラーと判断し、アクノリッジ・パケットが返信されるまでリトライをかけ、パケットデータＡをメインＣＰＵ２３に再送する。
【００６４】
この場合の２ＣＰＵ間の通信処理について、図１５、図１６のフローチャートに示す。
【００６５】
先ず、サブＣＰＵ２５からメインＣＰＵ２３にパケットデータを送信する際の処理について、図１５のフローチャートに示す。
【００６６】
始めに図１５のステップＳ４０において、サブＣＰＵ２５は、制御ハードウェアに異常があるか否かを判別する。ハードウェアに異常がない場合（Ｎｏ）にはステップＳ４０の判別を繰り返し、異常がある場合（Ｙｅｓ）にはステップＳ４１に進み、インデックス番号を指定してパケットデータを１バイト目から順に送信する。
【００６７】
続いてステップＳ４２において、サブＣＰＵ２５は、パケットデータの送信が終了したか否かを判別し、３バイト目まで送信が終了していない場合（Ｎｏ）にはステップＳ４２の判別を繰り返し、終了している場合（Ｙｅｓ）にはステップＳ４３で送信データをクリアする。
【００６８】
ステップＳ４４では、サブＣＰＵ２５は、メインＣＰＵ２３からアクノリッジ・パケットが返信されたか否かを判別する。このステップＳ４４において、アクノリッジ・ビットが返信されていない場合（Ｎｏ）にはステップＳ４５に進み、規定時間経過したか否かを判別する。ステップＳ４５において、規定時間経過していない場合（Ｎｏ）にはステップＳ４６で待ち時間カウンタをデクリメントし、ステップＳ４４に戻る。一方、規定時間経過している場合にはステップＳ４１に戻ってリトライ処理を行う。ステップＳ４４においてアクノリッジ・パケットが返信されている場合（Ｙｅｓ）には、ステップＳ４７で送信したパケットデータを指定インデックス番号の送信ミラーバッファにコピーし、ステップＳ４０に戻る。
【００６９】
次に、上述のようにサブＣＰＵ２５からメインＣＰＵ２３にパケットデータが送信された場合のメインＣＰＵ２３の処理について、図１６のフローチャートに示す。
【００７０】
始めに図１６のステップＳ５０において、メインＣＰＵ２３は、パケットデータの３バイト目のチェックサムを受信したか否かを判別し、受信していない場合（Ｎｏ）にはステップＳ５０の判別を繰り返し、受信した場合（Ｙｅｓ）にはステップＳ５１に進む。
【００７１】
ステップＳ５１では、メインＣＰＵ２３は、チェックサムの値が正しいか否かが判別され、誤っている場合（Ｎｏ）にはステップＳ５５で受信データをクリアしてステップＳ５０に戻る。一方、チェックサムの値が正しい場合（Ｙｅｓ）にはステップＳ５２でサブＣＰＵ２５にアクノリッジ・パケットを送信し、ステップＳ５３で受信したデータを指定インデックス番号の受信ミラーバッファにコピーする。
【００７２】
ステップＳ５４では、メインＣＰＵ２３は、指定インデックス番号のハードウェア制御ＲＡＭを更新し、ステップＳ５５で受信データをクリアしてステップＳ５０に戻る。
【００７３】
以上説明したように、本実施の形態におけるデータ通信装置１によれば、メインＣＰＵ２３からサブＣＰＵ２５への制御線としては、高速性を落とさないようにデータ線の他にクロック線を設ける一方で、サブＣＰＵ２５からメインＣＰＵ２３への制御線については通信の高速性を犠牲にし、クロック線を削除してデータ線のみを設ける３線式の通信方式を採用しているため、双方向で合計６線の通信線を用いる従来の通信方式と比較してハードウェア規模を縮小することができる。特に、メインＣＰＵ２３とサブＣＰ２５との間には前述したようにＤＣオフセットが発生することがあり、この場合には、全制御線にレベル・シフタ回路等を設ける必要があるが、制御線の本数を削減することにより、このレベル・シフタ回路等の数も削減することができ、ハードウェアのコスト、回路面積の見地からさらに有利になる。
【００７４】
さらに、このような３線式の簡易型の通信方式を採用しているため、低コスト、低パフォーマンスのＣＰＵをサブＣＰＵ２５として採用することができる。
【００７５】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【００７６】
例えば、上述の実施の形態では、１バイト目がインデックス番号、２バイト目がデータ値、３バイト目がチェックサムを表すものとして説明したが、これに限定されるものではなく、インデックス番号とデータ値とを例えば１バイトで表すようにしても構わない。
【００７７】
また、上述の実施の形態では、データ通信装置としてオーディオレシーバアンプを例に挙げて説明したが、これに限定されるものではなく、あるデバイスブロック制御（メカ制御等）をあるＣＰＵに委ね、別のＣＰＵ（本体表示用等）との連携動作（２ＣＰＵ間通信）でシステムの動作を実現させるものには何にでも適用可能である。
【００７８】
【発明の効果】
以上詳細に説明したように、本発明に係るデータ通信装置は、第１の制御手段と第２の制御手段とを有し、該第１の制御手段と該第２の制御手段との間で、上記第１の制御手段から上記第２の制御手段への単方向のクロック線及び第１のデータ線と、上記第２の制御手段から上記第１の制御手段への単方向の第２のデータ線とを用いてシリアルデータ通信を行うデータ通信装置であって、上記第１の制御手段は、固定長のデータ及びエラーチェック用データからなるパケットデータを、上記クロック線のクロックに同期させて、上記第１のデータ線を介して上記第２の制御手段に伝送する伝送手段を有し、上記第２の制御手段は、受信した上記パケットデータの上記エラーチェック用データを確認し、通信エラーの有無を上記第２のデータ線を介して上記第１の制御手段に返信する返信手段を有するものである。
【００７９】
また、本発明に係るデータ通信方法は、第１の制御手段と第２の制御手段との間で、上記第１の制御手段から上記第２の制御手段への単方向のクロック線及び第１のデータ線と、上記第２の制御手段から上記第１の制御手段への単方向の第２のデータ線とを用いてシリアルデータ通信を行うデータ通信方法であって、上記第１の制御手段が、固定長のデータ及びエラーチェック用データからなるパケットデータを、上記クロック線のクロックに同期させて、上記第１のデータ線を介して上記第２の制御手段に伝送する伝送工程と、上記第２の制御手段が、受信した上記パケットデータの上記エラーチェック用データを確認し、通信エラーの有無を上記第２のデータ線を介して上記第１の制御手段に返信する返信工程とを有するものである。
【００８０】
このようなデータ通信装置及びその方法によれば、第１の制御手段から第２の制御手段への制御線については、高速性を落とさないようにデータ線の他にクロック線を設け、クロック同期式のパケット送信形式を採用する一方、第２の制御手段から第１の制御手段への制御線については、通信の高速性を犠牲にし、クロック線を削除してデータ線のみを設けた３線式の通信方式を採用しているため、双方向で合計６線の通信線を用いる従来の通信方式と比較してハードウェア規模を縮小することができる。特に、第１の制御手段と第２の制御手段との間にＤＣオフセットが発生する場合には、全制御線にレベル・シフタ回路等を設ける必要があるが、制御線の本数を削減することにより、このレベル・シフタ回路等の数も削減することができ、ハードウェアのコスト、回路面積の見地からさらに有利になる。
【図面の簡単な説明】
【図１】本発明に係るデータ通信装置及びその方法が適用される前提となるデータ通信装置の概略構成を説明する図である。
【図２】図１における既存ＣＰＵの制御範囲を説明する図である。
【図３】１組分のデジタルアンプ及びスピーカ・リレーの詳細な構成を説明する図である。
【図４】本実施の形態におけるデータ通信装置の概略構成を説明する図である。
【図５】メインＣＰＵとサブＣＰＵとの間の通信のハードウェア構成を説明する図である。
【図６】パケットデータをメインＣＰＵからサブＣＰＵに送信する場合のタイミングチャートである。
【図７】パケットデータをサブＣＰＵからメインＣＰＵに送信する場合のタイミングチャートである。
【図８】サブＣＰＵの制御データが変化し、更新データが存在する場合に、メインＣＰＵとサブＣＰＵとの間で行われる通信の動的な推移を説明する図である。
【図９】サブＣＰＵの制御データが変化し、更新データが存在する場合に、メインＣＰＵとサブＣＰＵとの間で行われる通信の動的な推移を説明する図である。
【図１０】メインＣＰＵからサブＣＰＵへのパケットデータの通信が成立した場合のタイミングチャートである。
【図１１】メインＣＰＵからサブＣＰＵへのパケットデータのうちインデックス番号が所定の範囲外であり、通信が不成立であった場合のタイミングチャートである。
【図１２】メインＣＰＵからサブＣＰＵにパケットデータを送信する際の処理を説明するフローチャートである。
【図１３】メインＣＰＵからパケットデータが送信された場合のサブＣＰＵの処理を説明するフローチャートである。
【図１４】サブＣＰＵが制御ハードウェアの異常を検出した場合に、サブＣＰＵとメインＣＰＵとの間で行われる通信の動的な推移を説明する図である。
【図１５】サブＣＰＵからメインＣＰＵにパケットデータを送信する際の処理を説明するフローチャートである。
【図１６】サブＣＰＵからパケットデータが送信された場合のメインＣＰＵの処理を説明するフローチャートである。
【図１７】従来のメインＣＰＵとサブＣＰＵとの間の通信のハードウェア構成を説明する図である。
【図１８】メインＣＰＵとサブＣＰＵとの間でパケットデータを送信する場合のタイミングチャートである。
【符号の説明】
１  データ通信装置、１０，１２  入力切替部、１１  ＤＩＲ、１３  ＡＤＣ、１４  デコーダ、１５  ＤＳＰ、１６，１６１〜１６４  レベルシフタ回路、１７，１７１〜１７４  デジタルアンプ、１８，１８１〜１８４  スピーカ・リレー、１９  ＤＡＣ、２０  アナログアンプ、２１  プリアウト・リレー、２２１〜２２７  スピーカ、２３  メインＣＰＵ、２５  サブＣＰＵ
【図１】
2005018160.tif 000004
【図２】
2005018160.tif 000005
【図３】
2005018160.tif 000006
【図４】
2005018160.tif 000007
【図５】
2005018160.tif 000008
【図６】
2005018160.tif 000009
【図７】
2005018160.tif 000010
【図８】
2005018160.tif 000011
【図９】
2005018160.tif 000012
【図１０】
2005018160.tif 000013
【図１１】
2005018160.tif 000014
【図１２】
2005018160.tif 000015
【図１３】
2005018160.tif 000016
【図１４】
2005018160.tif 000017
【図１５】
2005018160.tif 000018
【図１６】
2005018160.tif 000019
【図１７】
2005018160.tif 000020
【図１８】
2005018160.tif 000021