JP5444911B2 - 送受信制御装置、電子機器、データ送信方法及び制御プログラム - Google Patents

送受信制御装置、電子機器、データ送信方法及び制御プログラム Download PDF

Info

Publication number
JP5444911B2
JP5444911B2 JP2009172315A JP2009172315A JP5444911B2 JP 5444911 B2 JP5444911 B2 JP 5444911B2 JP 2009172315 A JP2009172315 A JP 2009172315A JP 2009172315 A JP2009172315 A JP 2009172315A JP 5444911 B2 JP5444911 B2 JP 5444911B2
Authority
JP
Japan
Prior art keywords
clock
data
bus
signal line
serial data
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.)
Expired - Fee Related
Application number
JP2009172315A
Other languages
English (en)
Other versions
JP2011028445A (ja
Inventor
正義 三原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009172315A priority Critical patent/JP5444911B2/ja
Publication of JP2011028445A publication Critical patent/JP2011028445A/ja
Application granted granted Critical
Publication of JP5444911B2 publication Critical patent/JP5444911B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、一又は複数のデバイスを動作させるためのクロック及びデータの送受信を制御する送受信制御装置及びその制御プログラムに関する。
近年、様々なメーカーが、マスターデバイス及びスレーブデバイス間のインタフェースとなるシリアルバスを備えた電子機器を提供しており、個々のデバイスの規格を網羅したインタフェースの実現が必須になっている。
このマスターデバイス(以下、マスターと称す)は、データ転送を可能にするクロックを生成すると共に、シリアルバス上のデータ転送を開始し、データ転送を終了するデバイスである。また、スレーブデバイス(以下、スレーブと称す)は、マスターからアドレスを指定されるデバイスであり、各バイトの長さを8ビットとしたデータをマスターから受信し、そのデータに応じた動作を行うデバイスである。
また、スレーブは、マスターから送信されるアドレス及びデータにおける各バイトが終了する度に、送信されたアドレス及びデータの受信が完了したことを通知するためのアクノリッジ(acknowledge:以下、ACKと称す)を生成してマスターに返信する。同様に、マスターは、スレーブから入力されるデータにおける各バイトが終了する度に、ACKを生成してデータの送信元であるスレーブに返信する。
このACKを返信するタイミングは、通常、図9(a)に示すように、マスターからスレーブに送信するデータにおける各バイト(BIT7〜BIT0)と、スレーブからマスターに送信するACKと、が重畳しないタイミングで返信される。
しかしながら、マスター及びスレーブを備えた電子機器は、内蔵する全てのマスター及びスレーブを一のメーカーにより設計及び製造するとは限らず、スレーブによるACKを返信するタイミングに許容範囲を持たせているのが現状である。
送受信制御装置は、デバイスからの応答信号の送信タイミングの基準となるクロックを生成し、バスのクロック信号線を介して、デバイスに当該クロックを送信するクロック生成部と、シリアルデータをバスのデータ信号線に送出後、クロックと、プルアップ抵抗によるバスの状態とに基づいて生成されるデバイスからの応答信号を検出した時間を算出する応答時間算出部と、応答時間算出部により算出した時間に基づき、シリアルデータの各バイトのフレームにおける、データ信号線に対するフレームの送出を完了するタイミングを調整するフレーム生成部と、を備える。
これに対し、従来のバス競合検出方式は、バスの電圧レベルの計測結果を取込んで一時記憶し、この記憶内容をシステムクロックサイクル毎に更新しつつ外部へ読出して、この読出し結果によりバスの競合状態を検出する(例えば、特許文献1参照)。
また、従来のバスファイト防止回路は、バスライン上にデータを夫々送出する出力バッファと、バスラインがフローティング状態にあるか否かを検出するフローティング検出回路とを備えている。このフローティング検出回路により、バスラインがフローティング状態でないと検出されている時かつ送出しようとするデータレベルが異なる時の間中、該当する出力バッファをディスイネーブルにしてデータを送出しないようにする(例えば、特許文献2参照)。
また、従来の出力回路は、イネーブル制御信号を第1の規定時間だけ遅らせる第1の遅延回路から出力される遅延信号によって、出力手段の出力状態をイネーブル状態からディセーブル状態へと切り替えるように制御する。また、従来の出力回路は、出力手段の出力状態をイネーブル状態からディセーブル状態へと切り替える制御を第2の規定時間で段階的に実施する手段を有する(例えば、特許文献3参照)。
特開昭63−208964号公報 特開平1−117541号公報 特開平10−320089号公報
しかしながら、従来のバス競合検出方式は、バスラインの電圧レベルとして、論理0と1との中間、又はハイ・インピーダンスを検出することで、バスファイトを検出する技術である。バスラインの電圧レベルとして、論理0と1との中間を検出するということは、バスファイトが既に発生していることを意味し、マスター及びスレーブ内の回路が破壊されることがある。
また、従来のバスファイト防止回路は、2つの出力コントロール信号が同時にアサートされることで、バスファイトが発生することを検出し、出力バッファをディスイネーブルにする。これに対し、出力コントロール信号に対して、バス信号自体のタイミングがずれた場合には、バスファイトが発生し、マスター及びスレーブ内の回路が破壊されることがある。
また、従来の出力回路は、イネーブル制御信号のタイミングを調整することにより、バスファイトを回避している。これに対し、従来のバスファイト防止回路と同様に、イネーブル制御信号に対して、バス信号自体のタイミングがずれた場合には、バスファイトが発生し、マスター及びスレーブ内の回路が破壊されることがある。
したがって、本発明は、デバイス内の回路の破壊を防止することができるマスターデバイス、電子機器、バス制御方法及び制御プログラムを提供するものである。
送受信制御装置は、デバイスからの応答信号を検出する検出部と、検出部による検出結果に基づき、シリアルデータの各バイトのフレームにおける、バスに対するフレームの送出を完了するタイミングを調整するフレーム生成部と、を備える。
開示の送受信制御装置によれば、デバイス内の回路の破壊を防止することができる。
第1の実施形態に係る電子機器の概略構成の一実施例を示すブロック図である。 I2Cバスにおけるデータ転送フォーマットの一実施例を示す説明図であり、(a)はライトアクセス時のデータ転送フォーマットを示し、(b)はリードアクセス時のデータ転送フォーマットを示す。 第1の実施形態に係る擬似フレームの一実施例を説明するための説明図であり、(a)は通常のフレームを示し、(b)は擬似フレームを示し、(c)はスタート・ビットに続く擬似フレームを示す。 第1の実施形態に係るバスファイトの回避方法の一実施例を説明するためのタイミングチャートであり、(a)は応答時間の算出方法を説明するためのタイミングチャートを示し、(b)は双方向バッファ部の制御方法を説明するためのタイミングチャートを示す。 図1に示す電子機器におけるセットアップの処理手順の一実施例を示すフローチャートである。 図1に示す電子機器におけるライトアクセス時の処理手順の一実施例を示すフローチャートである。 第2の実施形態に係る電子機器の概略構成の一実施例を示すブロック図である。 図7に示す電子機器における処理手順の一実施例を示すフローチャートである。 バスファイトを説明するためのタイミングチャートであり、(a)はバスファイトが発生していない状態を示し、(b)はバスファイトが発生している状態を示し、(c)はバスファイトの発生により信号がショートしている状態を示す。
ここで、本発明は多くの異なる形態で実施可能である。したがって、下記の実施形態の記載内容のみで解釈すべきではない。また、実施形態の全体を通して同じ要素には同じ符号を付けている。
実施形態では、主に装置について説明するが、いわゆる当業者であれば明らかな通り、本発明はコンピュータで使用可能なプログラム、方法としても実施できる。また、本発明は、ハードウェア、ソフトウェア、又は、ソフトウェア及びハードウェアの実施形態で実施可能である。
プログラムは、ハードディスク、CD−ROM(Compact Disc Read Only Memory)、DVD−ROM(Digital Versatile Disc Read Only Memory)、光記憶装置又は磁気記憶装置等の任意のコンピュータ可読媒体に記録できる。さらに、プログラムはネットワークを介した他のコンピュータに記録することができる。
(第1の実施形態)
以下の説明においては、情報処理手段の一例として、マスター10及びスレーブ20を用いて説明するが、他の情報処理手段にデータ転送を行う送受信装置であれば、「主」及び「副」の関係にない情報処理手段であってもよい。
図1において、電子機器100は、マスター10と、マスター10によりアドレスが指定されるデバイスである一又は複数(第1、第2、・・・、第k(kは自然数))のスレーブ20と、マスター10及び各スレーブ20間を接続するシリアルバス30とを備えている。
なお、本実施形態に係る電子機器100は、例えば、通信装置が挙げられ、マスター10として用いられるFPGA(Field Programmable Gate Array)と、スレーブ20として用いられる光モジュールとが、シリアルバス30に接続される。しかしながら、電子機器100は、シリアルバス30を介して、マスター10とスレーブ20との間で、シリアル通信を行うものであれば、通信装置に限られるものではない。例えば、CPU(Central Processing Unit)をマスター10とし、EEPROM(Erasable Programmable ROM)をスレーブ20とした電子機器や、通信用I/O(Input/Output)デバイス及びカメラ等の周辺デバイスをスレーブ20とした携帯電話機等が考えられる。
シリアルバス30は、データやアドレス等を伝送する信号線であるデータ信号線31と、マスター10からスレーブ20へのクロックを伝送する信号線であるクロック信号線32を備えている。また、データやアドレス等は、クロック信号線32を伝送するクロックに同期して、データ信号線31を伝送する。
なお、マスター10及びスレーブ20による複数のデバイスが、データ信号線31を介して、同時にデータを送信した場合には、複数のデバイス間に異常な電流が流れ、デバイスの破壊に繋がることになる。このため、データ信号線31は、データを送信しなければならないデバイス以外のデバイスによるデータの送信を、電気的に絶縁した状態(ハイ・インピーダンス(High-impedance:Hi−Z))にする。
また、マスター10又はスレーブ20における任意の入力端子に接続されている他のデバイスにおける全ての出力端子が同時にハイ・インピーダンスになると、入力端子は、電気的に何も接続されていないことと同様であり、デバイスを破壊する可能性がある。このため、データ信号線31は、100kΩ程度のプルアップ抵抗33を介して、正の電源電圧に接続し、データ信号線31を開放した場合に、H(Hight)の状態(以下、Hレベルと称す)になるように設定されている。
なお、シリアルバス30としては、例えば、フィリップス製のI2C(Inter-Integrated Circuit)バスが挙げられる。このI2Cバスは、データ信号線31及びクロック信号線32が双方向性を有し、各信号線に接続されたプルアップ抵抗33による並列抵抗を介して、正の電源電圧に接続されている。このため、データ信号線31及びクロック信号線32は、バスが開放されているときに両信号線ともHレベルになる。
マスター10は、シリアルバス30上のデータ転送を開始する機能と、データ転送のタイミングを取るクロックを生成する機能と、データ転送を終了する機能とを有するデバイスである。
マスター10は、大別すると、シリアルタイミング生成部11と、クロック生成部12と、フレーム生成部13と、応答信号受信部14とを備えている。
シリアルタイミング生成部11は、スレーブ20のアドレスを含むシリアルデータの生成に用いるクロック(シリアルデータ用クロック)を生成し、シリアルデータ生成部13aに出力する。また、シリアルタイミング生成部11は、マスター10内部の各構成要素による処理を同期させるタイミング信号を生成し、クロック生成部12、シリアルデータ生成部13a、双方向バッファ制御部13c及び応答信号受信部14に出力する。
クロック生成部12は、各スレーブ20からの応答信号であるACKの送信タイミングの基準となるクロックを生成し、クロック信号線32を介して、各スレーブ20内部のシリアルタイミング生成部にクロックを送信する。なお、各スレーブ20のシリアルタイミング生成部は、マスター10からのクロックに基づき、シリアルデータ用クロックを生成し、各スレーブ20内部のシリアルデータ生成部に出力する。
フレーム生成部13は、各スレーブ20に対して最初に送信するシリアルデータの第一バイトのフレームにおける、少なくとも最下位ビットを除く擬似フレームを生成する。また、フレーム生成部13は、生成した擬似フレームを、データ信号線31を介して、各スレーブ20に送信する。
ここで、擬似フレームを説明するにあたり、シリアルバス30としてI2Cバスを例に挙げ、マスター10及びスレーブ20間のデータ転送について、図2を用いて説明する。
I2Cバスのデータ転送は、マスター10がスレーブ20にデータを書き込む場合に、例えば、図2(a)に示す転送フォーマットが規定され、マスター10がスレーブ20からデータを読み込む場合に、例えば、図2(b)に示す転送フォーマットが規定されている。なお、マスター10は、これらの転送フォーマットにより、各スレーブ20との送受信を完了することで、各スレーブ20の運用が正常に開始され、電子機器100全体の運用が行われる。
図2(a)及び図2(b)に示すように、データ信号線31に送出される各バイトの長さは8ビット(BIT7、BIT6、・・・、BIT0)であり、1回のデータ転送で伝送できるバイト数に制限はない。また、各バイトの後には、アクノリッジ・ビット(ACK)がある。
また、図2(c)に示すように、データ信号線31を転送される各データ・ビット毎に一つのクロック(一クロック分)が、マスター10のクロック生成部12により生成され、クロック信号線32を介して、各スレーブ20に送信される。
なお、スレーブ20又はマスター10は、シリアルデータの各バイトの最下位ビット(BIT0)に対応するクロックの立ち上がりエッジ(又は立ち下がりエッジ)を認識して、ACKを返信する。また、クロックがHレベルの間は、データ信号線31の状態は一定でなければならず、データ信号線31がHレベルとL(Low)レベルとの間で状態を変更できるのは、クロック信号線32のクロックがLレベルのときに限られる。すなわち、図2(c)の最上段及び第二段目のタイミングチャートに示すように、一クロック分において、0(各ビットの立ち上がりエッジに対応)から四分の一周期(T/4)まではクロックがLレベルである。また、四分の一周期(T/4)から四分の三周期(3T/4)まではクロックがHレベルであり、四分の三周期(3T/4)から一周期(各ビットの立ち下がりエッジに対応)はクロックがLレベルである。
なお、図2(c)において、最上段は、マスター10のクロック生成部12により生成され、マスター10から各スレーブ20にクロック信号線32を介して伝送されるクロックを示している。また、第二段目は、マスター10からデータ信号線31に送出されるシリアルデータを示しており、バイト(BIT7〜BIT0)毎にデータ信号線31を占有し、各バイト間ではスレーブ20からのACKを受信するためにデータ信号線31を開放(Hi−Z)している。また、第三段目は、スレーブ20からデータ信号線31に送出されるシリアルデータを示しており、ACKを送信する度にデータ信号線31を占有し、各ACK間ではマスター10からデータを受信するためにデータ信号線31を開放(Hi−Z)している。また、最下段は、第二段目及び第三段目に示すシリアルデータによるデータ信号線31上のデータ転送の状態を示している。
I2Cバスの通信手順では、スタート(START)条件及びストップ(STOP)条件という固有の状態が発生する。このスタート条件は、クロック信号線32がHレベルのときに、マスター10がデータ信号線31をHレベルからLレベル(スタート・ビット)に変化させることで発生する。また、ストップ条件は、クロック信号線32がHレベルのときに、マスター10がデータ信号線31をLレベルからHレベル(ストップ・ビット)に変化させることで発生する。スタート条件が発生した後は、シリアルバス30がビジー状態になり、ストップ条件が発生した後は、シリアルバス30が開放され、シリアルバス30がフリー状態になる。
また、転送フォーマットは、図2(a)及び図2(b)に示すように、スタート・ビット(START)に続く、第一バイトとして、7ビットのスレーブ・アドレス(DEVICE ADDRESS)と1ビットのデータ方向ビット(READ/WRITE)とが規定されている。このデータ方向ビットは、「0」であればデータ送信(書き込み)を示し、「1」であればデータ要求(読み込み)を示す。すなわち、各スレーブ20は、7ビット・アドレスにより、マスター10がどのスレーブ20を選択するかを判断し、データ方向ビットにより、マスター10からのデータの送信又は要求を判断する。
なお、マスター10は、第一バイトに対するスレーブ20からのACKを受信することにより、スレーブ20における運用に必要な各種設定データを、スレーブ20に送信する。また、図2(a)及び図2(b)において、ワード・アドレス(WORD ADDRESS)は、スレーブ20内のアドレスを指定するためのアドレスデータである。
つぎに、本実施形態に係る擬似フレームについて、図3を用いて説明する。
シリアルデータの各バイトによる通常のフレームは、図3(a)に示すように、バイト長が8ビットであるフレームである。これに対し、本実施形態に係る擬似フレームは、通常のフレームに対して、少なくとも最下位ビット(BIT0)を除いたバイト長(例えば、図3(b)に示す7ビット)のフレームである。
特に、I2Cバスでは、スタート・ビットに続く第一バイトが、スレーブ20のアドレスを示す7ビット・アドレスと、スレーブ20に対するデータの送信又は要求を示すデータ方向ビットとに相当する。このため、擬似フレームとしては、図3(c)に示すように、データ方向ビットを除く、7ビット・アドレスを含むフレームとすることにより、スレーブ20のアドレスを指定したうえで、所望のスレーブ20に擬似フレームを送信することができる。
なお、シリアルデータの第一バイトに対するACKは、スタート・ビットに対応するクロックに続く8クロック目の立ち上がりエッジ(又は立ち下がりエッジ)に基づき、返信される。このため、擬似フレームは、極端に言えば、シリアルデータの第一バイトの全ビットを除いてもよい(第一バイトを受信状態としてもよい)。
しかしながら、I2Cバスでは、スタート・ビットに続く第一バイトが、スレーブ20のアドレスを示す7ビット・アドレスである。このため、スレーブ20を特定するためには、7ビット・アドレスを削除せずに、データ方向ビットのみを除く擬似フレームとすることが好ましい。
特に、ACKがシリアルデータの各バイトにおける最下位ビットより上位のビット(BIT7〜BIT1)に重畳することは、各バイトの最下位ビットに対応するクロックの立ち上がりエッジ(又は立ち下がりエッジ)を認識せずにACKを返信していることになる。すなわち、ACKがシリアルデータの各バイトにおける最下位ビットより上位のビットに重畳することは、シリアルバス30のインタフェースにおける明らかな規格違反であり、通常、バスファイトが生じる場合は、ACKが最下位ビットに重畳するものである。
なお、擬似フレームは、フレーム生成部13により生成されるが、より具体的には、フレーム生成部13が備える、シリアルデータ生成部13aと、双方向バッファ部13bと、双方向バッファ制御部13cとにより生成される。
また、フレーム生成部13は、応答信号受信部14による検出結果に基づき、シリアルデータの各バイトのフレームにおける、データ信号線31に対するフレームの送出を完了するタイミングを調整する。
応答信号受信部14は、スレーブ20からの応答信号を検出する検出部に相当し、スレーブ20からの応答信号であるACKを受信するブロックであり、サンプリングクロック生成部14aと、応答時間算出部14bとを備えている。
サンプリングクロック生成部14aは、クロック生成部12により生成されるクロックのクロック周波数より高いクロック周波数を有するサンプリングクロックを生成し、応答時間算出部14bに出力する。なお、サンプリングクロックは、クロック生成部12により生成されるクロックに対して高速にするほど、解像度が上がり、後述するACKによる電位レベルの変化点を検出する精度を高めることができる。例えば、シリアルバス30がI2Cバスの場合に、マスター10により生成されるクロックのクロック周波数を100kHz〜400kHzとする規格に対して、サンプリングクロックのクロック周波数を50MHz程度にすることで、充分な解像度を得ることができる。
応答時間算出部14bは、擬似フレームをデータ信号線31に送出し終えた時点から擬似フレームに対するスレーブ20からの応答信号を検出した時点までの応答時間を、サンプリングクロックに基づいて算出し、双方向バッファ制御部13cに出力する。
なお、本実施形態において、擬似フレームをデータ信号線31に送出し終えた時点(以下、応答時間の始点と称す)とは、マスター10が擬似フレームの最下位ビット(図3(b)であれば、BIT1)の立ち下がりエッジをデータ信号線31に送出した時点である。しかし、マスター10により管理されるものであれば、前述の最下位ビットの立ち下がりエッジをデータ信号線31に送出した時点に限定されない。例えば、最下位ビットの立ち下がりエッジをデータ信号線31に送出した直後に生成されるサンプリングクロックの立ち上がり又は立ち下がりを用いても良い。また、擬似フレームに対するスレーブ20からの応答信号を検出した時点(以下、応答時間の終点と称す)とは、後述するACKによる変化点を検出した時点である。
ここで、応答時間の算出方法について、図4(a)を用いて説明する。なお、図4(a)において、最上段は、マスター10からデータ信号線31に送出されるシリアルデータを示しており、擬似フレーム(BIT7〜BIT1)の最下位ビット(BIT1)の送出後はデータ信号線31を開放(Hi−Z)し、受信状態にしている。また、第二段目は、最上段に示すシリアルデータによるスレーブ20における受信データを示しており、最上段におけるハイ・インピーダンスはプルアップ抵抗33によりHレベルとしてスレーブ20に受信される。マスター10からデータ信号線31に送出されるシリアルデータがBIT0を含んでいないので、スレーブ20における受信データはBIT0を受信しない。しかし、説明の便宜上、第二段目においては、プルアップ抵抗33によりHレベルとなる箇所に、BIT0を表記している。また、第三段目は、サンプリングクロック生成部14aにより生成され、応答時間算出部14bに出力されるサンプリングクロックを示している。さらに、第四段目は、スレーブ20からデータ信号線31に送出されるシリアルデータを示しており、BIT0に対応するクロック(スタート・ビットに対応するクロックに続く8クロック目)の立ち上がりエッジ(又は立下りエッジ)を認識して、ACKを送信している。また、最下段は、第四段目に示すシリアルデータによるマスター10における受信データを示しており、ハイ・インピーダンスはプルアップ抵抗33によりHレベルとしてマスター10に受信される。
図4(a)に示すように、応答時間算出部14bは、サンプリングクロックにおける一のクロックの立ち上がりエッジを応答時間の始点に一致させて、この一のクロックからのサンプリングクロックのクロック数を積算し始める。そして、応答時間算出部14bは、HレベルからACK(Lレベル)への電位レベルの変化点を検出する(図4(a)ではサンプリングクロックの8クロック目の立ち上がりエッジ)。そして、応答時間算出部14bは、変化点を検出した時点におけるサンプリングクロックのクロック数の積算値(図4(a)では8個)を応答時間として算出する。
なお、応答時間の終点としてACKの立ち下がりエッジを検出することが理想であるが、図4(a)に示すように、ACKの立ち下がりエッジとサンプリングクロックの立ち上がりエッジとが一致するとは限らない。このため、前述したとおり、サンプリングクロックは、クロック生成部12により生成されるクロックに対して高速にするほど、ACKの立ち下がりエッジと、変化点を検出したサンプリングクロックの立ち上がりエッジとの間隔を狭めることができる。すなわち、ACKの立ち下がりエッジとサンプリングクロックの立ち上がりエッジとの誤差を小さくし、応答時間の精確な値を算出することができる。
シリアルデータ生成部13aは、シリアルデータを生成するブロックであり、例えば、パラレルデータとして書き込まれたデータを1ビットずつシリアルデータとして、双方向バッファ部13bに出力するパラレル・シリアル変換レジスタである。
双方向バッファ部13bは、双方向バッファ制御部13cからの制御信号に基づき、シリアルバス30のデータ信号線31に対するデータ転送の方向(送信方向、受信方向)を切り替える双方向バッファである。なお、双方向バッファ部13bは、データ信号線31を介して、各スレーブ20内部の双方向バッファ部に接続されている。
双方向バッファ制御部13cは、各スレーブ20に対して最初に送信するシリアルデータの第一バイトにおける、少なくとも最下位ビットで、双方向バッファ部13bを制御してデータ転送の方向を受信方向(=ハイ・インピーダンスの状態)にする。すなわち、双方向バッファ制御部13cは、シリアルデータ生成部13aにより生成された通常のフレームを擬似フレームとしてデータ信号線31に送出するために、双方向バッファ部13bを制御する。
また、双方向バッファ制御部13cは、応答時間算出部14bにより算出した応答時間に基づき、シリアルデータの各バイトのフレームにおける、データ信号線31に対するフレームの送出を完了するタイミングを調整する。すなわち、双方向バッファ制御部13cは、応答時間に基づき、双方向バッファ部13bから送信されるシリアルデータに対して、シリアルデータの各バイトの最下位ビットにおける、データ転送の方向を受信方向にするタイミングを調整する。
なお、応答時間算出部14bにより算出した応答時間は、スレーブ20毎に異なる場合があるため、双方向バッファ制御部13cは、各スレーブ20に対して算出した応答時間を、各スレーブの識別情報に対応付けて格納する応答時間格納部13dを備えている。
ここで、シリアルデータの各バイトの最下位ビットにおける、データ転送の方向を受信方向にするタイミングの調整について、図4(b)を用いて説明する。なお、図4(b)において、上段は、サンプリングクロック生成部14aにより生成され、応答時間算出部14bに出力されるサンプリングクロックを示しており、前述した図4(a)の第三段目のサンプリングクロックのクロック周波数と同一である。また、下段は、シリアルデータの各バイトの最下位ビットにおける、データ転送の方向を受信方向にするタイミングを調整して、バスファイトの発生を回避したデータ信号線31上のデータ転送の状態を示している。
図4(b)に示すように、双方向バッファ制御部13cは、シリアルデータの各バイトにおける最下位ビットの立ち上がりエッジに、サンプリングクロックにおける一のクロックの立ち上がりエッジを一致させる。そして、双方向バッファ制御部13cは、各バイトにおける最下位ビットの立ち下がりエッジが、算出した応答時間であるサンプリングクロックのクロック数の積算値を超えないように、最下位ビットをデータ信号線31に送出し続ける時間を調整する。例えば、算出したサンプリングクロックのクロック数が8個である場合に、双方向バッファ制御部13cは、図4(b)に示すように、サンプリングクロックの7クロック目の立ち上がりエッジにおいて、データ信号線31に対するデータ転送の方向を受信方向にする。
このように、フレーム生成部13は、シリアルデータ生成部13aにより生成される通常のフレームに対して、双方向バッファ部13b及び双方向バッファ制御部13cにより、データ転送の方向を切り替えるだけで、所望のフレームを簡易に生成することができる。
つぎに、本実施形態に係る電子機器100におけるバス制御方法について説明する。なお、以下の説明においては、シリアルバス30として、I2Cバスを用いた場合を例に挙げて説明する。
まず、電子機器100における通常の運用を開始する前に行う、各スレーブ20に対応する応答時間(サンプリングクロックのクロック数の積算値)を算出するセットアップについて、図5を用いて説明する。
電子機器100のユーザは、電子機器100の電源を入れて、マスター10及びスレーブ20を起動する(ステップS1)。
マスター10のシリアルタイミング生成部11は、シリアルデータ用クロックを生成して、シリアルデータ生成部13aに出力する。また、シリアルタイミング生成部11は、タイミング信号を生成して、クロック生成部12、シリアルデータ生成部13a、双方向バッファ制御部13c及び応答信号受信部14に出力する(ステップS2)。
クロック生成部12は、タイミング信号に基づき、クロックを生成し、クロック信号線32を介して接続する全てのスレーブ20に対して、共通のクロックを送信する(ステップS3)。
また、サンプリングクロック生成部14aは、タイミング信号に基づき、サンプリングクロックを生成し、応答時間算出部14bに出力する(ステップS4)。
シリアルデータ生成部13aは、指定したスレーブ20の7ビット・アドレスと、データ送信(書き込み)を示すデータ方向ビットとからなる第一バイトを生成し、双方向バッファ部13bに出力する(ステップS5)。すなわち、シリアルデータ生成部13aは、シリアルデータ用クロックに基づき、シリアルデータの第一バイトによる通常のフレームを生成し、双方向バッファ部13bに出力する。
双方向バッファ制御部13cは、クロック信号線32がHレベルのときに、データ信号線31をHレベルからLレベル(スタート・ビット)に変化させるように、双方向バッファ部13bを制御して、データ転送の方向を送信方向にする(ステップS6)。
双方向バッファ部13bは、スタート・ビットに続き、シリアルデータの第一バイトのうち7ビット・アドレスをデータ信号線31に送出する(ステップS7)。
そして、双方向バッファ制御部13cは、シリアルデータの第一バイトにおけるデータ方向ビットの立ち上がりエッジにおいて、データ転送の方向を送信方向から受信方向(=ハイ・インピーダンスの状態)に切り替える(ステップS8)。なお、スレーブ20は、プルアップ抵抗33により、Hレベルが入力されることになる。また、このとき、応答時間算出部14bは、サンプリングクロックにおける一のクロックの立ち上がりエッジを、送信方向から受信方向に切り替えるタイミングと一致させ、サンプリングクロックのクロックを積算し始める。
そして、アドレスを指定されたスレーブ20は、スタート・ビットに基づき、データ転送の開始を認識し、7ビット・アドレスに基づき、自デバイスが指定されたことを認識する(ステップS9)。
また、アドレスを指定されたスレーブ20は、スタート・ビットに対応するクロックに続く、8クロック目の立ち上がりエッジ(又は立ち下がりエッジ)に基づき、マスター10に対してACKを返信する(ステップS10)。
そして、マスター10の双方向バッファ部13bは、スレーブ20からのACKを受信すると、応答信号受信部14の応答時間算出部14bにACKを出力する(ステップS11)。
応答時間算出部14bは、HレベルからACK(Lレベル)への電位レベルの変化点を検出し、変化点を検出した時点におけるサンプリングクロックのクロック数の積算値を応答時間として算出する(ステップS12)。
そして、応答時間算出部14bは、算出した応答時間(サンプリングクロックのクロック数の積算値)を双方向バッファ制御部13cに出力する(ステップS13)。
双方向バッファ制御部13cは、入力された応答時間を、この応答時間の対象デバイスであるスレーブの識別情報に対応付けて、応答時間格納部13dに格納する(ステップS14)。
そして、マスター10は、クロック信号線32を介して接続する全てのスレーブ20に対して、擬似フレームを送信した否かを判断する(ステップS15)。
ステップS15において、全てのスレーブ20に対して擬似フレームを送信していないと判断した場合に、マスター10は、擬似フレームを送信していないスレーブ20のうち、一のスレーブ20のアドレスを指定し、前述したステップS5に戻る。
また、ステップS15において、全てのスレーブ20に対して擬似フレームを送信したと判断した場合には、処理を終了する。
つぎに、セットアップ終了後のマスター10及びスレーブ20間のシリアル通信について、図6を用いて説明する。なお、以下の説明においては、図2(a)に示す、マスター10から一のスレーブ20へのデータ送信(書き込み)を例に挙げて説明する。また、マスター10及びスレーブ20は、既に起動しており、マスター10からクロック信号線32を介して接続する全てのスレーブ20に対して、共通のクロックを送信しているものとする。
マスター10のシリアルデータ生成部13aは、シリアルタイミング生成部11からのシリアルデータ用クロックに基づき、4バイト(スレーブ・アドレス、ワード・アドレス、データ1、データ2)のシリアルデータを生成する。そして、シリアルデータ生成部13aは、シリアルデータのうち、指定したスレーブ20の7ビット・アドレスと、データ送信を示すデータ方向ビットとからなる第一バイトを、双方向バッファ部13bに出力する(ステップS101)。
双方向バッファ制御部13cは、指定したスレーブ20に対応する応答時間(サンプリングクロックのクロック数の積算値)を、応答時間格納部13dから参照する(ステップS102)。
また、双方向バッファ制御部13cは、クロック信号線32がHレベルのときに、データ信号線31をHレベルからLレベル(スタート・ビット)に変化させるように、双方向バッファ部13bを制御して、データ転送の方向を送信方向にする(ステップS103)。
そして、双方向バッファ部13bは、シリアルデータの第一バイトをデータ信号線31に送出し始める(ステップS104)。
そして、双方向バッファ制御部13cは、第一バイトの最下位ビットの立ち上がりエッジに、サンプリングクロックにおける一のクロックの立ち上がりエッジを一致させて、サンプリングクロックのクロック数を積算し始める(ステップS105)。
また、双方向バッファ制御部13cは、第一バイトの最下位ビットの立ち下がりエッジがステップS102で参照した応答時間を超えないように、データ転送の方向を送信方向から受信方向に切り替える(ステップS106)。
そして、アドレスを指定されたスレーブ20は、第一バイトの最下位ビットに対応するクロックの立ち上がりエッジ(又は立ち下がりエッジ)に基づき、マスター10に対してACKを返信する(ステップS107)。
マスター10の双方向バッファ部13bは、スレーブ20からのACKを受信すると、シリアルデータ生成部13aにACKを出力する(ステップS108)。
また、シリアルデータ生成部13aは、ACKの入力に基づき、次のバイトを双方向バッファ部13bに出力し、前述したステップS104〜ステップS108(第一バイトを、第二バイト、第三バイト又は第四バイトに読み替える)を繰り返す。
そして、双方向バッファ制御部13cは、クロック信号線32がHレベルのときに、データ信号線31をLレベルからHレベル(ストップ・ビット)に変化させるように、双方向バッファ部13bを制御して、データ信号線31を開放する(ステップS109)。これにより、マスター10は、一のスレーブ20へのデータ送信(書き込み)を終了する。
以上のように、本実施形態に係るマスター10は、フレーム生成部13が、応答信号受信部14による検出結果に基づき、シリアルデータの各バイトのフレームにおける、データ信号線31に対するフレームの送出を完了するタイミングを調整する。これにより、本実施形態に係るマスター10は、スレーブ20による応答信号を返信するタイミングが許容範囲を満たしていない場合であっても、バスファイトを発生させるがことなく、デバイス内の回路の破壊を防止できるという作用効果を奏する。
特に、本実施形態に係るマスター10は、電子機器100による通常の運用を開始する前に、スレーブ20に擬似フレームを送信し、スレーブ20からの応答信号の応答時間を算出する。そして、電子機器100による通常の運用において、マスター10は、算出した応答時間に基づき、シリアルデータの各バイトの最下位ビットにおけるデータ信号線31に対する送出時間を調整する。これにより、本実施形態に係るマスター10は、スレーブ20による応答信号を返信するタイミングが許容範囲を満たしていない場合であっても、バスファイトを一度も発生させるがことなく、デバイス内の回路の破壊を防止できるという作用効果を奏する。
また、本実施形態に係るマスター10は、複数のスレーブ20における応答信号の送信タイミングが異なる場合であっても、マスター10の回路を変更することなく、各スレーブ20による応答信号の送信タイミングに対応することができるという作用効果を奏する。
特に、マスター10の回路を変更することなく、各スレーブ20による応答信号の送信タイミングに対応することができるということは、マスター10又はスレーブ20の交換や回路の設計変更に伴う製造コストの増加を抑制できるという作用効果を奏する。
なお、本実施形態においては、各スレーブ20に対して最初に送信するシリアルデータの第一バイトにおけるフレームで擬似フレームを生成しているが、各スレーブ20に対して最初に送信するシリアルデータの第一バイトでなくてもよい。しかしながら、各スレーブ20に対して最初に送信するシリアルデータの第一バイトで擬似フレームを生成することは、バスファイトを完全に防止することができるために好ましい。
また、本実施形態においては、擬似フレームを用いてACKの応答時間を算出しているが、通常のフレームを用いてACKの応答時間を算出してもよい。この場合には、応答時間の始点が、マスター10が通常のフレームの最下位ビット(図3(a)であれば、BIT0)の立ち下がりエッジをデータ信号線31に送出した時点である。しかしながら、擬似フレームを用いてACKの応答時間を算出することは、ACKの応答時間を算出するためのフレームに対しても、バスファイトを防止することができるために好ましい。
また、以上の説明においては、シリアルバス30としてI2Cバスを例に挙げ、マスター10及びスレーブ20間のデータ転送について説明したが、シリアルバス30はI2Cバスに限られるものではなく、例えば、CPUバスにも本発明を適用することができる。また、データ転送に用いるバスの種別は、シリアルバス30に限られるものではなく、パラレルバスにも本発明を適用することができる。
(第2の実施形態)
図7において、本実施形態に係る電子機器100は、データ信号線31及びクロック信号線32とは別に、マスター10及び各スレーブ20間を接続し、マスター10から各スレーブ20に対してパワーオンリセットの制御を可能にする制御信号線34を備えている。
スレーブ20は、外部からの制御信号に基づき、自身の動作を停止するディセーブル機能を有する電源部20aを備えている。
マスター10は、応答時間算出部14bにより算出される応答時間が予め設定された範囲外である場合に、該当するスレーブ20を停止させる制御信号を、制御信号線34を介して、該当するスレーブ20の電源部20aに送信するスレーブ制御部15を備えている。なお、スレーブ制御部15は、予め設定された範囲としての閾値を保持している。
ここで、予め設定された範囲としては、例えば、フレーム生成部13が擬似フレームを7ビットのフレームとして生成するのであれば、クロック生成部12により生成されるクロックにおける一クロックの四分の一周期(T/4)より大きい範囲を設定する。これにより、応答時間が予め設定された範囲外である場合は、スレーブ20が擬似フレームを含む第一バイトの最下位ビットに対応するクロックの立ち上がりエッジを認識せずにACKを返信していることを意味する。すなわち、スレーブ20からの応答信号の応答時間が予め設定された範囲外である場合は、シリアルバス30のインタフェースにおける規格を違反するスレーブ20であることがわかる。
なお、予め設定された範囲としては、擬似フレームをnビット(0<=n<8,nは自然数)のフレームとして生成するのであれば、(1+4(7−n))T/4(Tは一クロック分の周期)より大きい範囲を、予め設定された範囲として設定することになる。
また、予め設定された範囲としては、サンプリングクロックのクロック数によって設定してもよい。例えば、図4(a)に示すサンプリングクロックの3クロック目の立ち上がりエッジが、クロック生成部12により生成されるクロックの立ち上がりエッジに一致しているのであれば、サンプリングクロックのクロック数が3個より多い範囲を設定する。
つぎに、本実施形態に係る電子機器100におけるバス制御方法について、図8を用いて説明する。
まず、マスター10の応答時間算出部14bは、前述した第1の実施形態におけるステップS12により算出した応答時間を、この応答時間の対象デバイスであるスレーブ20の識別情報と共に、スレーブ制御部15に出力する(ステップS201)。
スレーブ制御部15は、予め設定された範囲である閾値と入力された応答時間とを比較して、応答時間が予め設定された範囲内であるか否かを判断する(ステップS202)。
ステップS202において、入力された応答時間が予め設定された範囲内であれば、処理を終了する。
また、ステップS202において、入力された応答時間が予め設定された範囲外であれば、制御信号線34を介して、該当するスレーブ20の電源部20aに制御信号を送信する(ステップS203)。
そして、制御信号を送信されたスレーブ20は、電源部20aに対してディセーブル機能を発動させ、スレーブ20の電源を落とし(ステップS204)、処理を終了する。
以上のように、本実施形態に係る電子機器100においては、シリアルバス30のインタフェースにおける規格違反のスレーブ20を故障とみなして停止することで、規格違反のスレーブ20による誤動作を事前に防止することができるという作用効果を奏する。
特に、規格違反のスレーブ20は、マスター10に返信するACKが、マスター10からのシリアルデータの各バイトの最下位ビットより上位のビットに重畳する場合がある。このため、仮に、応答時間に基づき、シリアルデータの各バイトのフレームにおける、データ信号線31に対するフレームの送出を完了するタイミングを調整した場合には、シリアルデータの各バイトの少なくとも最下位ビットが送出されない状態となる。すなわち、マスター10は、規格違反のスレーブ20に対して、8ビットからなる正しいデータを送信できないことになる。
[付記] 以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1) 双方向性を有するバスを介してシリアルデータをデバイスに送信し、当該シリアルデータの各バイトに対する当該デバイスからの応答信号を受信する送受信制御装置において、前記デバイスからの応答信号を検出する検出部と、前記検出部による検出結果に基づき、前記シリアルデータの各バイトのフレームにおける、前記バスに対するフレームの送出を完了するタイミングを調整するフレーム生成部と、を備える送受信制御装置。
(付記2) プルアップ抵抗が接続された双方向性を有するバスを介してシリアルデータをデバイスに送信し、当該シリアルデータの各バイトに対する当該デバイスからの応答信号を受信する送受信制御装置において、前記デバイスからの応答信号の送信タイミングの基準となるクロックを生成し、前記バスのクロック信号線を介して、前記デバイスに当該クロックを送信するクロック生成部と、前記シリアルデータを前記バスのデータ信号線に送出後、前記クロックと、前記プルアップ抵抗による前記バスの状態とに基づいて生成される前記デバイスからの応答信号を検出した時間を算出する応答時間算出部と、前記応答時間算出部により算出した時間に基づき、前記シリアルデータの各バイトのフレームにおける、前記データ信号線に対するフレームの送出を完了するタイミングを調整するフレーム生成部と、を備える送受信制御装置。
(付記3) 付記2に記載の送受信制御装置において、前記フレーム生成部が、前記シリアルデータの各バイトのフレームよりも短い擬似フレームを生成し、前記バスのデータ信号線を介して、前記デバイスに当該擬似フレームを送信し、前記応答時間算出部が、前記擬似フレームを前記データ信号線に送出後、前記クロックと、前記プルアップ抵抗による前記バスの状態とに基づいて生成される前記デバイスからの応答信号を検出した時点までの時間を算出する送受信制御装置。
(付記4) 前記付記2又は3に記載の送受信制御装置において、前記フレーム生成部が、前記シリアルデータを生成するシリアルデータ生成部と、前記バスのデータ信号線に対するデータ転送の方向を切り替える双方向バッファ部と、前記シリアルデータ生成部により生成され、前記双方向バッファ部から送信されるシリアルデータのうち、前記デバイスに対して最初に送信するシリアルデータの第一バイトにおける少なくとも最下位ビットで、前記双方向バッファ部を制御して前記データ転送の方向を受信方向にする双方向バッファ制御部と、を備え、前記双方向バッファ制御部が、前記応答時間算出部により算出した時間に基づき、前記双方向バッファ部から送信されるシリアルデータに対して、当該シリアルデータの各バイトの最下位ビットにおける、前記データ転送の方向を受信方向にするタイミングを調整する送受信制御装置。
(付記5) 前記付記2乃至4のいずれかに記載の送受信制御装置において、前記クロック生成部により生成されるクロックのクロック周波数より高いクロック周波数を有するサンプリングクロックを生成するサンプリングクロック生成部を備え、前記応答時間算出部が、前記サンプリングクロック生成部により生成したサンプリングクロックに基づき、前記応答時間を算出する送受信制御装置。
(付記6) 前記付記3に記載の送受信制御装置において、前記シリアルデータの第一バイトが、前記デバイスのアドレスを示す7ビット・アドレスと、当該デバイスに対するデータの送信又は要求を示すデータ方向ビットとに相当し、前記擬似フレームが、前記データ方向ビットを除く、前記7ビット・アドレスを含むフレームである送受信制御装置。
(付記7) データ転送を可能にするクロックを生成し、データ転送を開始及び終了する第1のデバイスと、当該第1のデバイスによりアドレスが指定される第2のデバイスと、当該第1のデバイス及び第2のデバイス間を接続するプルアップ抵抗が接続された双方向性を有するバスと、を備える電子機器において、前記第1のデバイスが、前記クロックを生成し、前記バスのクロック信号線を介して、前記第2のデバイスに当該クロックを送信するクロック生成部と、前記シリアルデータを前記バスのデータ信号線に送出後、前記クロックと、前記プルアップ抵抗による前記バスの状態とに基づいて生成される前記第2のデバイスからの応答信号を検出した時間を算出する応答時間算出部と、前記応答時間算出部により算出した時間に基づき、前記シリアルデータの各バイトのフレームにおける、前記データ信号線に対するフレームの送出を完了するタイミングを調整するフレーム生成部と、を備える電子機器。
(付記8) 付記7に記載の電子機器において、前記第1のデバイス及び第2のデバイス間を接続する制御信号線を備え、外部からの制御信号に基づき、自身の動作を停止するディセーブル機能を有する電源部を前記第2のデバイスが備え、前記応答時間算出部により算出される時間が予め設定された範囲外である場合に、該当する第2のデバイスを停止させる制御信号を、前記制御信号線を介して、当該第2のデバイスの電源部に送信するスレーブ制御部を前記第1のデバイスが備える電子機器。
(付記9) 第1のデバイスが、データ転送を可能にするクロックを生成し、プルアップ抵抗が接続された双方向性を有するバスを介して、シリアルデータを第2のデバイスに送信し、第2のデバイスが、当該シリアルデータの各バイトに対する応答信号を前記第1のデバイスに返信するデータ送信方法において、前記第1のデバイスが、前記第2のデバイスからの応答信号の送信タイミングの基準となるクロックを生成し、前記バスのクロック信号線を介して、前記第2のデバイスに当該クロックを送信するクロック生成ステップと、前記第1のデバイスが、前記シリアルデータを前記バスのデータ信号線に送出後、前記クロックと、前記プルアップ抵抗による前記バスの状態とに基づいて生成される前記第2のデバイスからの応答信号を検出した時間を算出する応答時間算出ステップと、前記第1のデバイスが、前記応答時間算出ステップにより算出した時間に基づき、前記シリアルデータの各バイトのフレームにおける、前記データ信号線に対するフレームの送出を完了するタイミングを調整するタイミング調整ステップと、を有するデータ送信方法。
(付記10) プルアップ抵抗が接続された双方向性を有するバスを介してシリアルデータをデバイスに送信し、当該シリアルデータの各バイトに対する当該デバイスからの応答信号を受信する送受信制御装置のコンピュータを機能させる制御プログラムにおいて、コンピュータを、前記デバイスからの応答信号の送信タイミングの基準となるクロックを生成し、前記バスのクロック信号線を介して、前記デバイスに当該クロックを送信するクロック生成手段と、前記シリアルデータを前記バスのデータ信号線に送出後、前記クロックと、前記プルアップ抵抗による前記バスの状態とに基づいて生成される前記デバイスからの応答信号を検出した時間を算出する応答時間算出手段と、前記応答時間算出手段により算出した時間に基づき、前記シリアルデータの各バイトのフレームにおける、前記データ信号線に対するフレームの送出を完了するタイミングを調整するタイミング調整手段として機能させる制御プログラム。
10 マスター
11 シリアルタイミング生成部
12 クロック生成部
13 フレーム生成部
13a シリアルデータ生成部
13b 双方向バッファ部
13c 双方向バッファ制御部
13d 応答時間格納部
14 応答信号受信部
14a サンプリングクロック生成部
14b 応答時間算出部
15 スレーブ制御部
20 スレーブ
20a 電源部
30 シリアルバス
31 データ信号線
32 クロック信号線
33 プルアップ抵抗
34 制御信号線
100 電子機器

Claims (7)

  1. プルアップ抵抗が接続された双方向性を有するバスを介してシリアルデータをデバイスに送信し、当該シリアルデータの各バイトに対する当該デバイスからの応答信号を受信する送受信制御装置において、
    前記デバイスからの応答信号の送信タイミングの基準となるクロックを生成し、前記バスのクロック信号線を介して、前記デバイスに当該クロックを送信するクロック生成部と、
    前記シリアルデータを前記バスのデータ信号線に送出後、前記クロックと、前記プルアップ抵抗による前記バスの状態とに基づいて生成される前記デバイスからの応答信号を検出した時間を算出する応答時間算出部と、
    前記応答時間算出部により算出した時間に基づき、前記シリアルデータの各バイトのフレームにおける、前記データ信号線に対するフレームの送出を完了するタイミングを調整するフレーム生成部と、
    を備える送受信制御装置。
  2. 請求項1に記載の送受信制御装置において、
    前記フレーム生成部が、前記シリアルデータの各バイトのフレームよりも短い擬似フレームを生成し、前記バスのデータ信号線を介して、前記デバイスに当該擬似フレームを送信し、
    前記応答時間算出部が、前記擬似フレームを前記データ信号線に送出後、前記クロックと、前記プルアップ抵抗による前記バスの状態とに基づいて生成される前記デバイスからの応答信号を検出した時点までの時間を算出する送受信制御装置。
  3. 前記請求項1又は2に記載の送受信制御装置において、
    前記フレーム生成部が、
    前記シリアルデータを生成するシリアルデータ生成部と、
    前記バスのデータ信号線に対するデータ転送の方向を切り替える双方向バッファ部と、
    前記シリアルデータ生成部により生成され、前記双方向バッファ部から送信されるシリアルデータのうち、前記デバイスに対して最初に送信するシリアルデータの第一バイトにおける少なくとも最下位ビットで、前記双方向バッファ部を制御して前記データ転送の方向を受信方向にする双方向バッファ制御部と、
    を備え、
    前記双方向バッファ制御部が、前記応答時間算出部により算出した時間に基づき、前記双方向バッファ部から送信されるシリアルデータに対して、当該シリアルデータの各バイトの最下位ビットにおける、前記データ転送の方向を受信方向にするタイミングを調整する送受信制御装置。
  4. データ転送を可能にするクロックを生成し、データ転送を開始及び終了する第1のデバイスと、当該第1のデバイスによりアドレスが指定される第2のデバイスと、当該第1のデバイス及び第2のデバイス間を接続するプルアップ抵抗が接続された双方向性を有するバスと、を備える電子機器において、
    前記第1のデバイスが、
    前記クロックを生成し、前記バスのクロック信号線を介して、前記第2のデバイスに当該クロックを送信するクロック生成部と、
    前記シリアルデータを前記バスのデータ信号線に送出後、前記クロックと、前記プルアップ抵抗による前記バスの状態とに基づいて生成される前記第2のデバイスからの応答信号を検出した時間を算出する応答時間算出部と、
    前記応答時間算出部により算出した時間に基づき、前記シリアルデータの各バイトのフレームにおける、前記データ信号線に対するフレームの送出を完了するタイミングを調整するフレーム生成部と、
    を備える電子機器。
  5. 請求項4に記載の電子機器において、
    前記第1のデバイス及び第2のデバイス間を接続する制御信号線を備え、
    外部からの制御信号に基づき、自身の動作を停止するディセーブル機能を有する電源部を前記第2のデバイスが備え、
    前記応答時間算出部により算出される時間が予め設定された範囲外である場合に、該当する第2のデバイスを停止させる制御信号を、前記制御信号線を介して、当該第2のデバイスの電源部に送信するスレーブ制御部を前記第1のデバイスが備える電子機器。
  6. 第1のデバイスが、データ転送を可能にするクロックを生成し、プルアップ抵抗が接続された双方向性を有するバスを介して、シリアルデータを第2のデバイスに送信し、第2のデバイスが、当該シリアルデータの各バイトに対する応答信号を前記第1のデバイスに返信するデータ送信方法において、
    前記第1のデバイスが、前記第2のデバイスからの応答信号の送信タイミングの基準となるクロックを生成し、前記バスのクロック信号線を介して、前記第2のデバイスに当該クロックを送信するクロック生成ステップと、
    前記第1のデバイスが、前記シリアルデータを前記バスのデータ信号線に送出後、前記クロックと、前記プルアップ抵抗による前記バスの状態とに基づいて生成される前記第2のデバイスからの応答信号を検出した時間を算出する応答時間算出ステップと、
    前記第1のデバイスが、前記応答時間算出ステップにより算出した時間に基づき、前記シリアルデータの各バイトのフレームにおける、前記データ信号線に対するフレームの送出を完了するタイミングを調整するタイミング調整ステップと、
    を有するデータ送信方法。
  7. プルアップ抵抗が接続された双方向性を有するバスを介してシリアルデータをデバイスに送信し、当該シリアルデータの各バイトに対する当該デバイスからの応答信号を受信する送受信制御装置のコンピュータを機能させる制御プログラムにおいて、
    コンピュータを、前記デバイスからの応答信号の送信タイミングの基準となるクロックを生成し、前記バスのクロック信号線を介して、前記デバイスに当該クロックを送信するクロック生成手段と、前記シリアルデータを前記バスのデータ信号線に送出後、前記クロックと、前記プルアップ抵抗による前記バスの状態とに基づいて生成される前記デバイスからの応答信号を検出した時間を算出する応答時間算出手段と、前記応答時間算出手段により算出した時間に基づき、前記シリアルデータの各バイトのフレームにおける、前記データ信号線に対するフレームの送出を完了するタイミングを調整するタイミング調整手段として機能させる制御プログラム。
JP2009172315A 2009-07-23 2009-07-23 送受信制御装置、電子機器、データ送信方法及び制御プログラム Expired - Fee Related JP5444911B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009172315A JP5444911B2 (ja) 2009-07-23 2009-07-23 送受信制御装置、電子機器、データ送信方法及び制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009172315A JP5444911B2 (ja) 2009-07-23 2009-07-23 送受信制御装置、電子機器、データ送信方法及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2011028445A JP2011028445A (ja) 2011-02-10
JP5444911B2 true JP5444911B2 (ja) 2014-03-19

Family

ID=43637139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009172315A Expired - Fee Related JP5444911B2 (ja) 2009-07-23 2009-07-23 送受信制御装置、電子機器、データ送信方法及び制御プログラム

Country Status (1)

Country Link
JP (1) JP5444911B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9622069B2 (en) * 2014-05-21 2017-04-11 Qualcomm Incorporated Systems and methods for multiple network access by mobile computing devices
JP6340962B2 (ja) * 2014-07-07 2018-06-13 富士通株式会社 バス制御装置、データ転送システム、及びバス制御方法
EP3709177B1 (en) * 2019-03-13 2021-03-03 Axis AB Serial peripheral interface master

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207834A (ja) * 1997-01-17 1998-08-07 Mitsubishi Electric Corp シリアル入出力回路
JP2000010683A (ja) * 1998-06-26 2000-01-14 Hitachi Ltd 双方向電圧変換回路および情報処理装置
JP3344564B2 (ja) * 1998-12-07 2002-11-11 日本電気株式会社 双方向シリアルバスリピータ
US6253268B1 (en) * 1999-01-15 2001-06-26 Telefonaktiebolaget L M Ericsson (Publ) Method and system for multiplexing a second interface on an I2C interface
JP2003037596A (ja) * 2001-07-25 2003-02-07 Canon Inc 通信装置及び通信方法
JP4075554B2 (ja) * 2002-09-30 2008-04-16 富士電機機器制御株式会社 通信システム
JP4040654B2 (ja) * 2003-09-16 2008-01-30 富士通株式会社 通信制御回路および通信制御方法
DE602004026195D1 (de) * 2004-10-21 2010-05-06 Hewlett Packard Development Co Serielles Bussystem
JP2007019648A (ja) * 2005-07-05 2007-01-25 Seiko Epson Corp データ転送制御装置及び電子機器
JP2007164765A (ja) * 2005-11-15 2007-06-28 Matsushita Electric Ind Co Ltd Iicバス通信システム、スレーブ装置およびiicバス通信制御方法

Also Published As

Publication number Publication date
JP2011028445A (ja) 2011-02-10

Similar Documents

Publication Publication Date Title
US7509446B2 (en) IIC bus communication system capable of suppressing freeze of IIC bus communication due to a noise and method for controlling IIC bus communication
WO2017061330A1 (ja) 通信装置、通信方法、プログラム、および、通信システム
JP2008197752A (ja) データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体
US20080177918A1 (en) Method and apparatus for controlling timing of state transition of serial data line in 12c controller
US9001950B2 (en) Information processing apparatus, serial communication system, method of initialization of communication therefor, and serial communication apparatus
US7705687B1 (en) Digital ring oscillator
JP2008539499A (ja) ダイナミックi2cスレーブデバイスアドレスデコーダ
JP2016004388A (ja) 通信システム及び電子回路
JP5444911B2 (ja) 送受信制御装置、電子機器、データ送信方法及び制御プログラム
US9323605B2 (en) Measured value transmitting device
US10977206B2 (en) Data communication device and method for data communication
US9660617B2 (en) Semiconductor apparatus
US20180137079A1 (en) Inter-integrated circuit bus arbitration system capable of avoiding host conflict
US11901961B2 (en) Interface circuit, memory controller and method for calibrating signal processing devices in an interface circuit of a memory controller
KR102214496B1 (ko) 캘리브레이션 회로 및 이를 포함한 반도체 장치
US9495315B2 (en) Information processing device and data communication method
JP6673021B2 (ja) メモリおよび情報処理装置
JP2005234976A (ja) 記憶装置
US10289498B2 (en) Memory device system
CN107957969B (zh) 判定设备连接状态及设备类型的方法
KR20210153407A (ko) 에러정정동작 및 에러체크동작을 수행하기 위한 전자장치
TWI802335B (zh) 介面電路、記憶體控制器及用以校正於記憶體控制器之介面電路內之複數訊號處理裝置之方法
US7826402B2 (en) Signal transfer systems and methods
JP6110799B2 (ja) 入力回路
US20210297283A1 (en) Master slave communication system capable of reducing manufacturing cost, electronic device, control method for master slave communication system, and control method for electronic device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130712

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131209

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees