JP2004207942A - データ転送装置とデータ転送方法 - Google Patents
データ転送装置とデータ転送方法 Download PDFInfo
- Publication number
- JP2004207942A JP2004207942A JP2002373685A JP2002373685A JP2004207942A JP 2004207942 A JP2004207942 A JP 2004207942A JP 2002373685 A JP2002373685 A JP 2002373685A JP 2002373685 A JP2002373685 A JP 2002373685A JP 2004207942 A JP2004207942 A JP 2004207942A
- Authority
- JP
- Japan
- Prior art keywords
- data
- serial data
- bits
- bit
- data transfer
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Transfer Systems (AREA)
- Memory System (AREA)
- Dc Digital Transmission (AREA)
Abstract
【課題】転送するシリアルデータの状態遷移を低減し、消費電力を低減する。
【解決手段】データ転送装置1の送信データ反転手段2は、送信しようとする送信シリアルデータA1のL状態にあるビット数が、全ビット数の半分より大きい場合、送信シリアルデータA1を反転する。反転情報付加手段3は、反転したか否かを示す反転情報ビットCを送信シリアルデータA1に挿入する。反転情報抽出手段4は、受信した受信シリアルデータB1に挿入されている反転情報ビットCを抽出する。受信データ反転手段5は、反転情報ビットCに応じて、受信シリアルデータB1を反転する。
【選択図】 図1
【解決手段】データ転送装置1の送信データ反転手段2は、送信しようとする送信シリアルデータA1のL状態にあるビット数が、全ビット数の半分より大きい場合、送信シリアルデータA1を反転する。反転情報付加手段3は、反転したか否かを示す反転情報ビットCを送信シリアルデータA1に挿入する。反転情報抽出手段4は、受信した受信シリアルデータB1に挿入されている反転情報ビットCを抽出する。受信データ反転手段5は、反転情報ビットCに応じて、受信シリアルデータB1を反転する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明はデータ転送装置とデータ転送方法に関し、特にバスを介してデジタル信号をシリアル転送するデータ転送装置とバスを介してデジタル信号をシリアル転送するデータ転送方法に関する。
【0002】
【従来の技術】
CPUや周辺のデバイス間で行われるシリアル転送方式に、2線のラインでデータ転送を行うIIC(Inter Integrated Circuit)バス方式がある。IICバス方式は、アドレス・データライン、クロックラインの2線を備える。アドレス・データラインには、シリアルデータの転送先を示すデバイスのアドレス及び転送すべきシリアルデータが送出される。クロックラインには、アドレス、シリアルデータを適正に受信できるための同期クロックが送出される(例えば、特許文献1参照)。
【0003】
IICバス方式では、IICバスの静電容量が400pF以内であれば、最大3.4Mbpsの高速シリアル転送ができるようになっている。また、デバイスのIICバスを駆動する出力駆動回路は、オープンドレイン又はオープンコレクタで構成されており、複数のデバイスがIICバスに接続できるようになっている。そのため、IICバスには、プルアップ抵抗が接続される。
【0004】
IICバスは、容量性負荷を持つため、このプルアップ抵抗との組み合わせによっては、転送速度が低下してしまうことがある。特に、IICバスの容量性負荷は、IICバスに接続されるデバイスの数によって増大するため、著しく転送速度が低下してしまうことがある(例えば、特許文献2参照)。
【0005】
従って、大きな容量性負荷を有するIICバスを駆動するデバイスは、高速転送が行えるように、出力駆動回路のオープンコレクタ又はオープンドレインを構成するトランジスタに、大電流駆動のものを使用する。そのため、デバイスの出力駆動回路には、他の論理ゲート回路とは別の電源が供給されていることが多い。
【0006】
デバイスの出力駆動回路がCMOSで構成される場合、シリアルデータが一状態で静止したときの静止電力Psと、シリアルデータがH状態、L状態と遷移するときの動作電力Pdとの合計値が出力駆動回路の消費電力Ptとなる(Pt=Ps+Pd)。
【0007】
動作電力Pdは、トランジスタ内部の消費電力Piと出力負荷消費電力Plの和となる。シリアルデータがH状態、L状態と遷移する動作周波数f、出力負荷容量Cl及びトランジスタの内部等価容量Cpdとすると、動作電力Pdは、次の式(1)で表される。
【0008】
【数1】
Pd=Pi+Pl=(Cl+Cpd)・Vdd2・f…(1)
式(1)より、動作電力Pdは、動作周波数fが高くなる(データ遷移が高くなる)に従って大きくなる。例えば、3.4Mbpsのシリアルデータ転送を行った場合には、動作電力Pdは、十数〜数十mWになる。なお、IICバス方式以外のシリアル転送方式においても、一般に動作周波数が高くなれば消費電力も大きくなる。
【0009】
静止電力Psは、トランジスタのリーク電流Iddと、シリアルデータがL状態時のIICバスに接続されているプルアップ抵抗Rpに流れるシンク電流との電力和となる。プルアップ抵抗Rpが接続されている電源電圧をVdd、ローレベル(L状態)しきい値電圧をVolとすると、静止電力Psは、次の式(2)で表される。
【0010】
【数2】
Ps=Vdd・Idd+Vol・(Vdd−Vol)/Rp…(2)
リーク電流Iddは、一般に非常に小さいため静止電力Psの増大には影響しない。シンク電流は一般的に数mAあり、例えば、電源電圧Vdd,しきい値電圧Vol、プルアップ抵抗Rpの値によっては、静止電力Psは、数十mWになる。なお、バスにプルダウン抵抗が接続され、プルダウン方式のオープンコレクタ、オープンドレインの場合においても同様である。この場合、バスに出力される信号がハイレベル(H状態)のとき、プルダウン抵抗にシンク電流が流れる。
【0011】
【特許文献1】
特開平11−232207号公報(第2−3頁、第6図)
【特許文献2】
特表2002−508645号公報(段落番号〔0005〕)
【0012】
【発明が解決しようとする課題】
このように、転送するシリアルデータのL状態、H状態の遷移が多いと、消費電力が増加するという問題点があった。
【0013】
また、シリアルデータをバスに出力する出力駆動回路がオープンコレクタ又はオープンドレインの場合、シリアルデータの信号の状態によっては、バスに接続されているプルアップ抵抗、又はプルダウン抵抗にシンク電流が流れ、電力が消費されるという問題点があった。
【0014】
本発明はこのような点に鑑みてなされたものであり、シリアルデータのH状態又はL状態が占めるビット数を減らして、シリアルデータの状態遷移を低減し、消費電力を低減するデータ転送装置及びデータ転送方法を提供することを目的とする。
【0015】
また、シリアルデータのH状態又はL状態が占めるビット数を減らして、プルアップ抵抗又はプルダウン抵抗に流れるシンク電流を低減し、消費電力を低減するデータ転送装置及びデータ転送方法を提供することを目的とする。
【0016】
【課題を解決するための手段】
本発明では上記課題を解決するために、バスを介してデジタル信号をシリアル転送するデータ転送装置において、前記バスを介して送信しようとする送信シリアルデータにおいて、予め選択されたハイレベル又はロウレベルのいずれか一方を有するビット数が、全ビット数の半分より大きい場合、前記送信シリアルデータを反転する送信データ反転手段と、前記反転を実行したか否かを示す反転情報を前記送信シリアルデータに付加する反転情報付加手段と、を具備することを特徴とするデータ転送装置が提供される。
【0017】
このようなデータ転送装置によれば、送信しようとする送信シリアルデータのハイレベル又はロウレベルのいずれか一方を有するビット数が、全ビット数の半分より大きい場合、送信シリアルデータを反転するので、送信シリアルデータのハイレベル又はロウレベルが占めるビット数が減り、送信シリアルデータの状態遷移を低減する。
【0018】
また、バスにプルアップ抵抗が接続されている場合には、ロウレベルを有するビット数が、全ビット数の半分より大きいときに送信シリアルデータを反転することにより、送信シリアルデータのL状態が占めるビット数が減る。また、バスにプルダウン抵抗が接続されている場合には、ハイレベルを有するビット数が、全ビット数の半分より大きいときに送信シリアルデータを反転することにより、送信シリアルデータのH状態が占めるビット数が減る。よって、プルアップ抵抗、プルダウン抵抗に流れるシンク電流を低減する。
【0019】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明のデータ転送装置の原理を説明する原理図である。図に示すように、データ転送装置1は、送信データ反転手段2、反転情報付加手段3、反転情報抽出手段4、受信データ反転手段5、及びバス6を有している。データ転送装置1は、図示してないが、バス6を介して他のデータ転送装置とシリアルデータの転送を行う。なお、図1には、8ビットの送信しようとする送信シリアルデータA1,A2と、バス6を介して受信した8ビットの受信シリアルデータB1,B2が示してある。
【0020】
送信データ反転手段2は、送信しようとする送信シリアルデータA1の全ビット数に対し、予め選択されたL状態又はH状態にあるビット数が半分より多い場合、送信シリアルデータA1を反転する。ここでは、送信シリアルデータA1の全ビット数‘8’に対し、L状態にあるビット数が半分の‘4’より大きい場合に、送信シリアルデータA1を反転するとする。図1の送信シリアルデータA1では、L状態のビット数は‘6’であり、全ビット数の半分‘4’より大きい。従って、送信データ反転手段2は、送信シリアルデータA1を、送信シリアルデータA2に示すように反転する。これによって、送信データ反転手段2から出力される送信シリアルデータA2は、L状態のビット数が、全ビット数の半分を超えて出現することがない。
【0021】
反転情報付加手段3は、送信シリアルデータA1を反転したか否かを示す情報ビットを送信シリアルデータA2に挿入する。図1では、送信シリアルデータA1は反転されるので、送信シリアルデータA2に示すように、ビットD3,D4の間に、反転したことを示す反転情報ビットCが挿入されている。
【0022】
反転情報抽出手段4は、バス6を介して受信した受信シリアルデータB1に挿入されている情報ビットを抽出する。図1の受信シリアルデータB1においては、ビットD4,D5の間に反転情報ビットCが挿入されており、反転情報抽出手段4は、この反転情報ビットCを抽出する。
【0023】
受信データ反転手段5は、反転情報抽出手段4が抽出した反転情報ビットCに応じて、受信した受信シリアルデータB1を反転する。図1に示す反転情報ビットCが反転した旨を示す情報であれば、受信データ反転手段5は、受信シリアルデータB1を受信シリアルデータB2に示すように反転する。
【0024】
このように、送信しようとする送信シリアルデータの全ビット数に対し、L状態又はH状態にあるビット数が半分より大きい場合、送信シリアルデータを反転するようにし、反転したか否かを示す情報ビットを送信シリアルデータに挿入するようにした。そして、受信した受信シリアルデータに挿入されている情報ビットを抽出し、抽出した情報ビットに応じて、受信シリアルデータを元の適正な状態に戻すようにした。これにより、送信される送信シリアルデータは、H状態又はL状態に偏り、転送されるシリアルデータの状態遷移が減少し、消費電力の低減を図ることができる。
【0025】
次に、本発明のデータ転送装置をIICバスインターフェイスに適用した場合について説明する。
図2は、本発明のデータ転送装置の適用構成例である。図に示すように、IICバス方式のデータ転送装置11a〜11eは、IICバス12a,12bに接続されている。データ転送装置11aは、図示してないが、バス13を介して例えばCPUと接続されている。IICバス12a,12bは、プルアップ抵抗R1,R2を介して電源電圧Vddに接続されている。
【0026】
データ転送装置11a〜11eは、転送先アドレス及び転送データであるシリアルデータSDAをIICバス12aに出力する。また、データ転送装置11a〜11eは、シリアルデータSDAを同期して送受信するためのシリアルクロックSCLをIICバス12bに出力する。
【0027】
図2において、例えば、データ転送装置11aは、バス13を介してCPUからデータを受信したとする。データ転送装置11aは、CPUの指示に従い、受信したデータを所定のデータ転送装置11b〜11eに出力する。このとき、データ転送装置11aは、まずデータを転送すべきデータ転送装置11b〜11eを選択するため、転送先アドレスを示すシリアルデータSDAをIICバス12aに出力する。
【0028】
データ転送装置11aによって選択された(アドレス指定された)データ転送装置11b〜11eは、シリアルデータSDAを受信できることを示す受信許可信号を、IICバス12aを介してデータ転送装置11aに出力する。
【0029】
データ転送装置11aは、受信許可信号を受信すると、CPUから受信したデータをシリアルデータSDAとしてIICバス12aに出力する。
このようにして、データ転送装置11a〜11eは、IICバス12a,12bを介してシリアルデータ転送を行う。
【0030】
図3は、データ転送装置のブロック構成図である。
図に示すようにデータ転送装置11aは、例えば1チップの半導体によって構成され、アドレスレジスタ21、アドレスコンパレータ22、シフトレジスタ23,24、データビット検出回路25、NLBレジスタ26、符号制御回路27、クロックコントロール回路28、データコントロール回路29、及び符号ビット検出回路30を有している。なお、図2のデータ転送装置11b〜11eも上記と同じ回路構成を有する。
【0031】
アドレスレジスタ21は、IICバス12a,12bを介して、シリアルデータ転送をする相手(データ転送装置11b〜11e)を指定するためのアドレスが設定される。
【0032】
アドレスコンパレータ22は、データ転送装置11b〜11eから転送されるデータ転送装置11aを指定するアドレスが入力される。アドレスコンパレータ22は、入力されたアドレスと自分が持つアドレスとを比較し、一致していればIICバス12aに受信許可信号を出力する。
【0033】
シフトレジスタ23は、IICバス12aでシリアルデータ転送をしようとする8ビットのデータが設定される。この8ビットのデータは、例えば、バス13を介してCPUから出力される。シフトレジスタ23は、設定されたデータをシフトレジスタ24、データコントロール回路29に出力する。
【0034】
また、シフトレジスタ23は、シフトレジスタ24から出力されるデータを保持する。このとき、シフトレジスタ23は、符号ビット検出回路30から出力される信号に応じて、シフトレジスタ24のデータの各ビットを反転して保持する。
【0035】
シフトレジスタ24は、シフトレジスタ23から出力される8ビットのデータを保持し、システムクロック(内部の各回路を動作させるためのクロック)に同期してデータビット検出回路25にシフト出力する。また、シフトレジスタ24は、データコントロール回路29から出力されるデータを保持して、シフトレジスタ23にシフト出力する。なお、シフトレジスタ24は、保持したデータを最上位ビットから順にシフト出力していく。
【0036】
データビット検出回路25は、シフトレジスタ24がシフト出力する8ビットのデータの、L状態のビット数をカウントする。データビット検出回路25は、カウントしたL状態のビット数をNLBレジスタ26に保持する。NLBレジスタ26は、シリアルデータSDAとして出力される8ビットのデータの、L状態のビット数を保持するレジスタである。
【0037】
符号制御回路27は、NLBレジスタ26に記憶されているL状態のビット数に応じて、符号ビットSをデータコントロール回路29に出力する。符号制御回路27は、NLBレジスタ26に記憶されているL状態のビット数が、シリアルデータ転送をしようとするデータの全ビット数‘8’の半分‘4’より大きい場合、‘0’の符号ビットSを出力する。また、符号制御回路27は、NLBレジスタ26に記憶されているL状態のビット数が、シリアルデータ転送をしようとするデータの全ビット数‘8’の半分‘4’以下の場合、‘1’の符号ビットSを出力する。
【0038】
例えば、シフトレジスタ23に設定されたデータが‘00011001’の場合、L状態(0)のビット数は5である。従って、NLBレジスタ26には、‘5’が保持されている。NLBレジスタ26に保持されているL状態のビット数が‘5’で、全ビット数‘8’に対し半分を超えているので、符号制御回路27は、‘0’の符号ビットSをデータコントロール回路29に出力する。
【0039】
クロックコントロール回路28は、データコントロール回路29が出力するシリアルデータSDAを同期転送するためのシリアルクロックSCLをIICバス12bに出力する。クロックコントロール回路28のシリアルクロックSCLをIICバス12bに出力する出力段は、オープンコレクタ又はオープンドレインとなっている。
【0040】
また、クロックコントロール回路28は、シリアルクロックSCLと完全同期したシリアルデータ生成クロックSCK1をデータコントロール回路29に出力する。また、クロックコントロール回路28は、シリアルデータ生成クロックSCK1と位相のずれた符号挿入クロックSCK2をデータコントロール回路29に出力する。ここでは、符号挿入クロックSCK2は、シリアルデータ生成クロックSCK1に対して1/4周期遅延しているとする。
【0041】
また、クロックコントロール回路28は、シリアルクロックSCLをIICバス12bから受信する。クロックコントロール回路28は、受信したシリアルクロックSCLを符号ビット検出回路30に出力する。
【0042】
データコントロール回路29は、シフトレジスタ23に保持されている、シリアルデータ転送をしようとする8ビットのデータを、最上位ビットから順にシリアルデータ生成クロックSCK1に同期させ、シリアルデータSDAとしてIICバス12aに出力する。このとき、データコントロール回路29は、符号制御回路27から出力される符号ビットSに応じて、8ビットのデータをビットごとに反転する。データコントロール回路29は、符号ビットSが‘0’の場合データを反転し、‘1’の場合データを反転しない。
【0043】
例えば、シフトレジスタ23に、シリアルデータ転送をしようとする‘00011001’のデータが設定されているとする。このとき、L状態のビット数は、‘5’であるから、上記で説明したように、符号制御回路27は、‘0’の符号ビットSを出力している。従って、データコントロール回路29は、シフトレジスタ23のデータを反転した‘11100110’のデータを、シリアルデータSDAとしてIICバス12aに出力する。
【0044】
また、データコントロール回路29は、シリアルデータSDAをIICバス12aに出力するときに、データを反転したか否かを示す反転情報ビットをシリアルデータSDAに挿入する。反転した場合、‘0’の情報ビットCを挿入し、反転しなかった場合‘1’の情報ビットCを挿入する。
【0045】
データコントロール回路29は、出力しようとするシリアルデータSDAの、最初にL状態となったビット(L状態が継続する場合は、その最後のビット)とその次のH状態のビットとの間に情報ビットCを挿入する。すなわち、データコントロール回路29は、隣接するビットの状態が所定の状態遷移をした場合、そのビット間に情報ビットCを挿入する。このとき、データコントロール回路29は、情報ビットCの挿入位置に対応する、符号挿入クロックSCK2の1クロック間に、情報ビットCを挿入する。
【0046】
なお、データコントロール回路29は、出力しようとするシリアルデータSDAの全ビットがH状態である場合、最上位ビットとその隣接するビットとの間に情報ビットを挿入する。
【0047】
図4は、情報ビットの挿入を説明する図である。図4に示すように、シリアルデータ転送されるデータの各ビットは、シリアルデータ生成クロックSCK1の立下りで遷移するようシリアルに配置される。なお、データは、ビットD7からシリアル転送される。
【0048】
ここで、図のデータが、ビットD4で最初にL状態(L状態はビットD3に継続しない)になり、ビットD3でH状態になっているとすると、データコントロール回路29は、データのビットD4とビットD3の間における、符号挿入クロックSCK2の立上りから立下りの間(図に示すクロックCSEL)に、情報ビットCを挿入する。このようにして、情報ビットCを挿入したシリアルデータSDAを生成する。
【0049】
なお、符号挿入クロックSCK2を、シリアルデータ生成クロックSCK1の位相に対し1/4ずらすことにより、情報ビットCは、データのビットとビットの境の中央に挿入され、情報ビット及びその両側のビットは、シリアルデータSDAを受信するデータ転送装置によって、適切に認識されることが可能となる。
【0050】
また、データコントロール回路29は、IICバス12aを介して転送されてくるシリアルデータSDAを受信する。データコントロール回路29は、受信したシリアルデータSDAを、クロックコントロール回路28が受信したシリアルクロックSCLに同期して、1ビットずつシフトレジスタ24に出力する。
【0051】
符号ビット検出回路30は、データコントロール回路29が受信したシリアルデータSDAに含まれる情報ビットCを、クロックコントロール回路28が受信したシリアルクロックSCLに同期して検出する。
【0052】
符号ビット検出回路30は、シリアルデータSDAの各ビット状態を順に検出する。そして、符号ビット検出回路30は、隣接するビットの状態が所定の状態遷移をした場合、そのビット間におけるデータを検出する。ビット間におけるデータは、シリアルクロックSCLのビットの境となる立上り又は立下りに同期して検出される。
【0053】
例えば、転送されてくるシリアルデータSDAには、最初にL状態となったビット(L状態が継続する場合は、その最後のビット)とその次の隣接するH状態となったビットとの間に情報ビットが挿入されている。すなわち、符号ビット検出回路30は、シリアルデータSDAが、L状態からH状態に遷移した場合、その遷移したビット間のデータを情報ビットCとして検出する。
【0054】
図5は、情報ビット検出を説明する図である。図に示すように、‘11100110’のシリアルデータSDAが、データコントロール回路29に受信されたとする。なお、シリアルデータSDAは、ビットD7から順にデータコントロール回路29に受信される。
【0055】
符号ビット検出回路30は、図に示すように、シリアルクロックSCLの立上りでシリアルデータSDAのビット状態を検出する。
シリアルデータSDAのビットD2はH状態、その1つ前のビットD3はL状態である。従って、符号ビット検出回路30は、シリアルデータSDAがL状態からH状態に遷移したことによって、ビットD3とビットD2の境にある状態を検出する。符号ビット検出回路30は、シリアルデータSDAのビットD3とビットD2の境となるシリアルクロックSCLの立下りにおいて、情報ビットCを検出する。
【0056】
符号ビット検出回路30は、情報ビットCをシフトレジスタ23に出力する。上記で説明したように、シフトレジスタ23は、情報ビットCに応じて、シフトレジスタ24から出力されるシリアルデータSDAを反転し保持する。例えば、反転した旨を示す‘0’の情報ビットCが検出された場合、シフトレジスタ23は、シフトレジスタ24から出力されるシリアルデータSDAを反転して保持する。反転していない旨を示す‘1’の情報ビットCが検出された場合、シフトレジスタ23は、シフトレジスタ24から出力されるシリアルデータSDAを反転せずそのまま保持する。
【0057】
以下、図3のデータ転送装置11aの動作について説明する。まず、IICバス12a,12bに接続されている他のデータ転送装置11b〜11eにシリアルデータSDAを転送する場合について説明する。図6は、転送するデータの一例を示す図である。
【0058】
バス13を介して、例えば、CPUから転送すべきデータの転送先を示すアドレスがアドレスレジスタ21に設定される。
シフトレジスタ23には、転送すべきデータが設定される。転送すべきデータは、図6に示すように‘10000000’とする。設定されたデータは、シフトレジスタ24に出力され、さらにシフトレジスタ24からデータビット検出回路25に出力される。
【0059】
データビット検出回路25は、シフトレジスタ24からシフト出力されるデータのL状態にあるビット数をカウントする。データビット検出回路25は、カウントしたL状態のビット数をNLBレジスタ26に保持する。図6の例では、L状態(0)のビット数は、ビットD6〜D0の‘7’である。従って、データビット検出回路25は、NLBレジスタ26に‘7’の値を保持する。
【0060】
符号制御回路27は、NLBレジスタ26に保持されているL状態のビット数が、シリアルデータ転送をしようとするデータの全ビット数の半分より大きい場合、‘0’の符号ビットSを出力する。L状態のビット数が、シリアルデータ転送をしようとするデータの全ビット数の半分以下の場合、‘1’の符号ビットSを出力する。図6の例では、データの全ビット数‘8’の半分‘4’に対し、L状態のビット数は‘7’であるので、符号制御回路27は、‘0’の符号ビットSをデータコントロール回路29に出力する。
【0061】
データコントロール回路29は、符号制御回路27の符号ビットSに従って、シフトレジスタ23のデータを反転し、シリアルデータSDAとして、IICバス12aに出力する。このとき、データコントロール回路29は、シリアルデータSDAの、最初にL状態となったビット(L状態が継続する場合は、その最後のビット)とその次の隣接するビットとの間に情報ビットCを挿入する。図6の例では、データコントロール回路29は、データ‘10000000’を反転した‘01111111’をシリアルデータSDAとしてIICバス12aに出力するとともに、最初のL状態となるビットD7とその隣接するビットD6の間に(L状態はビットD7のみでビットD6に継続していない)、情報ビットCを挿入する。なお、図6の例では情報ビットCは、‘0’である。
【0062】
次に、他の一例について説明する。図7は、転送するデータの他の例を示す図である。図7に示すようにデータ転送装置11b〜11eに転送したいデータを‘00000000’とする。この場合、L状態のビット数は、‘8’であり、データの全ビット数‘8’の半分より大きいので、データコントロール回路29は、データ‘00000000’を反転した‘11111111’をシリアルデータSDAとして出力する。この場合、L状態が存在しないので、データコントロール回路29は、最上位ビットであるビットD7とその隣接するビットD6の間に情報ビットCを挿入する。なお、図7の例では情報ビットCは、‘0’である。
【0063】
以上から、シリアルデータ転送をしようとするデータにL状態が多い場合、反転して転送するので、H状態のデータが多く出力されることとなる。すなわち、シリアルデータのH状態からL状態、L状態からH状態への状態遷移数が減少し、消費電力の低減を図ることができる。
【0064】
また、H状態のデータが多く出力されることにより、図2で示したプルアップ抵抗R1,R2に流れるシンク電流が減り、消費電力の低減を図ることができる。
【0065】
なお、データコントロール回路29、クロックコントロール回路28が、プルダウン方式のオープンコレクタ又はオープンドレインの出力段を備えている場合、IICバス12a,12bには、プルダウン抵抗が接続される。従って、シリアルデータSDAがH状態のとき、シンク電流が流れる。よって、この場合、H状態のビット数が、全ビット数の半分より大きい場合に、転送しようとするシリアルデータを反転することによって、プルアップ抵抗R1,R2に流れるシンク電流を減らすことができ、消費電力の低減を図ることができる。
【0066】
次に、シリアルデータSDAを受信する場合について説明する。
データ転送装置11aは、IICバス12a,12bを介して、シリアルデータSDA及びシリアルクロックSCLが転送される。データ転送装置11aのデータコントロール回路29は、シリアルデータSDAを受信し、クロックコントロール回路28が受信するシリアルクロックSCLに同期して、シリアルデータSDAをシフトレジスタ24に出力する。
【0067】
符号ビット検出回路30は、データコントロール回路29が受信したシリアルデータSDAに含まれる情報ビットCを、シリアルクロックSCLに同期して検出する。
【0068】
符号ビット検出回路30は、シリアルデータSDAの各ビット状態を順に検出する。そして、符号ビット検出回路30は、最初のL状態(L状態が継続する場合は、その最後のビット)からH状態に状態遷移をした場合、そのビットの境におけるデータを検出する。
【0069】
例えば、図6で示す‘01111111’のシリアルデータSDAが受信されたとする。また、シリアルデータSDAに含まれる情報ビットCは‘0’であるとする。
【0070】
この場合、シリアルデータSDAの最初のL状態からH状態に遷移するビットは、ビットD7からビットD6である。従って、符号ビット検出回路30は、シリアルデータSDAのビットD7からビットD6の、シリアルクロックSCLの立下りにおけるビット状態を情報ビットCとして検出する。
【0071】
符号ビット検出回路30は、情報ビットCをシフトレジスタ23に出力する。シフトレジスタ23は、シフトレジスタ24から出力されるシリアルデータSDAを、情報ビットCに応じて反転し保持する。なお、上記で情報ビットCを‘0’と仮定したので、シフトレジスタ23は、シリアルデータSDAを反転して保持する。
【0072】
シフトレジスタ23に保持されたシリアルデータSDAは、バス13を介して、例えば、CPU等に転送される。
ここで、受信したシリアルデータSDAが‘11111111’の場合、シリアルデータSDAのL状態からH状態に遷移するビットはない。この場合、符号ビット検出回路30は、シリアルデータSDAのビットD7からビットD6の、シリアルクロックSCLの立上りにおけるビット状態を情報ビットCとして検出する。
【0073】
このように、送信しようとする送信シリアルデータの所定状態にあるビット数が、全ビット数の半分より多い場合、送信シリアルデータを反転するようにしたので、シリアルデータの状態遷移数が減り、電力消費の低減を図ることができる。
【0074】
また、転送しようとするシリアルデータが、プルアップ抵抗が接続されたバスに、プルアップ方式のオープンコレクタ又はオープンドレインによって駆動出力される場合においては、シリアルデータのL状態のビット数が、全ビット数の半分より多い場合に送信シリアルデータを反転することによって、プルアップ抵抗を流れるシンク電流が低減され、消費電力を低減することができる。また、転送しようとするシリアルデータが、プルダウン抵抗が接続されたバスに、プルダウン方式のオープンコレクタ又はオープンドレインによって駆動出力される場合においては、シリアルデータのH状態のビット数が、全ビット数の半分より多い場合に送信シリアルデータを反転することによって、プルダウン抵抗を流れるシンク電流が低減され、消費電力を低減することができる。
【0075】
なお、図3に示したデータ転送装置11aにおいて、1回に転送するシリアルデータSDAを8ビットとして、00h〜FFh(16進数)の256バイトを転送した場合、L状態のビットの数が、8ビットの半分である4ビットを超えて(5ビット以上)発生する率は、38/256≒15%となる。従来のIICバス方式で行われるシリアルデータ転送では、93/256≒36%となる。従って、本発明では、L状態時の消費電力を半分以下に低減することができる。
【0076】
また、H状態からL状態に遷移する回数は、図3に示したデータ転送装置11aにおいては、440回となる。従来のIICバス方式で行われるシリアルデータ転送では504回となる。従って、本発明では、シリアルデータの遷移が少なくなることで、消費電力を約13%低減することができる。
【0077】
また、上記IICバス方式を採用したシステムなど各データ転送装置に固有のアドレスが割り当てられるシステムにおいては、該アドレスを指定することによりデータ転送装置間で1対1のデータ転送が実行できるため、本発明に係る上記機能を持ったデータ転送装置と上記機能を持たないデータ転送装置とを共存させ、該機能を持ったデータ転送装置間において上記のようなデータ転送を実現することもできる。
【0078】
【発明の効果】
以上説明したように本発明では、送信しようとする送信シリアルデータのハイレベル又はロウレベルを有するビット数が、全ビット数の半分より大きい場合、送信シリアルデータを反転するようにしたので、送信シリアルデータの状態遷移が低減され、消費電力を低減することができる。
【0079】
また、バスにプルアップ抵抗が接続されている場合には、ロウレベルを有するビット数が、全ビット数の半分より大きいときに送信シリアルデータを反転することにより、また、バスにプルダウン抵抗が接続されている場合には、ハイレベルを有するビット数が、全ビット数の半分より大きいときに送信シリアルデータを反転することにより、プルアップ抵抗、プルダウン抵抗に流れるシンク電流を低減し、消費電力を低減することができる。
【図面の簡単な説明】
【図1】本発明のデータ転送装置の原理を説明する原理図である。
【図2】本発明のデータ転送装置の適用構成例である。
【図3】データ転送装置のブロック構成図である。
【図4】情報ビットの挿入を説明する図である。
【図5】情報ビット検出を説明する図である。
【図6】転送するデータの一例を示す図である。
【図7】転送するデータの他の例を示す図である。
【符号の説明】
1,11a〜11e……データ転送装置、2……送信データ反転手段、3……反転情報付加手段、4……反転情報抽出手段、5……受信データ反転手段、6,13……バス、12a,12b……IICバス、21……アドレスレジスタ、22……アドレスコンパレータ、23,24……シフトレジスタ、25……データビット検出回路、26……NLBレジスタ、27……符号制御回路、28……クロックコントロール回路、29……データコントロール回路、30……符号ビット検出回路、R1,R2……プルアップ抵抗。
【発明の属する技術分野】
本発明はデータ転送装置とデータ転送方法に関し、特にバスを介してデジタル信号をシリアル転送するデータ転送装置とバスを介してデジタル信号をシリアル転送するデータ転送方法に関する。
【0002】
【従来の技術】
CPUや周辺のデバイス間で行われるシリアル転送方式に、2線のラインでデータ転送を行うIIC(Inter Integrated Circuit)バス方式がある。IICバス方式は、アドレス・データライン、クロックラインの2線を備える。アドレス・データラインには、シリアルデータの転送先を示すデバイスのアドレス及び転送すべきシリアルデータが送出される。クロックラインには、アドレス、シリアルデータを適正に受信できるための同期クロックが送出される(例えば、特許文献1参照)。
【0003】
IICバス方式では、IICバスの静電容量が400pF以内であれば、最大3.4Mbpsの高速シリアル転送ができるようになっている。また、デバイスのIICバスを駆動する出力駆動回路は、オープンドレイン又はオープンコレクタで構成されており、複数のデバイスがIICバスに接続できるようになっている。そのため、IICバスには、プルアップ抵抗が接続される。
【0004】
IICバスは、容量性負荷を持つため、このプルアップ抵抗との組み合わせによっては、転送速度が低下してしまうことがある。特に、IICバスの容量性負荷は、IICバスに接続されるデバイスの数によって増大するため、著しく転送速度が低下してしまうことがある(例えば、特許文献2参照)。
【0005】
従って、大きな容量性負荷を有するIICバスを駆動するデバイスは、高速転送が行えるように、出力駆動回路のオープンコレクタ又はオープンドレインを構成するトランジスタに、大電流駆動のものを使用する。そのため、デバイスの出力駆動回路には、他の論理ゲート回路とは別の電源が供給されていることが多い。
【0006】
デバイスの出力駆動回路がCMOSで構成される場合、シリアルデータが一状態で静止したときの静止電力Psと、シリアルデータがH状態、L状態と遷移するときの動作電力Pdとの合計値が出力駆動回路の消費電力Ptとなる(Pt=Ps+Pd)。
【0007】
動作電力Pdは、トランジスタ内部の消費電力Piと出力負荷消費電力Plの和となる。シリアルデータがH状態、L状態と遷移する動作周波数f、出力負荷容量Cl及びトランジスタの内部等価容量Cpdとすると、動作電力Pdは、次の式(1)で表される。
【0008】
【数1】
Pd=Pi+Pl=(Cl+Cpd)・Vdd2・f…(1)
式(1)より、動作電力Pdは、動作周波数fが高くなる(データ遷移が高くなる)に従って大きくなる。例えば、3.4Mbpsのシリアルデータ転送を行った場合には、動作電力Pdは、十数〜数十mWになる。なお、IICバス方式以外のシリアル転送方式においても、一般に動作周波数が高くなれば消費電力も大きくなる。
【0009】
静止電力Psは、トランジスタのリーク電流Iddと、シリアルデータがL状態時のIICバスに接続されているプルアップ抵抗Rpに流れるシンク電流との電力和となる。プルアップ抵抗Rpが接続されている電源電圧をVdd、ローレベル(L状態)しきい値電圧をVolとすると、静止電力Psは、次の式(2)で表される。
【0010】
【数2】
Ps=Vdd・Idd+Vol・(Vdd−Vol)/Rp…(2)
リーク電流Iddは、一般に非常に小さいため静止電力Psの増大には影響しない。シンク電流は一般的に数mAあり、例えば、電源電圧Vdd,しきい値電圧Vol、プルアップ抵抗Rpの値によっては、静止電力Psは、数十mWになる。なお、バスにプルダウン抵抗が接続され、プルダウン方式のオープンコレクタ、オープンドレインの場合においても同様である。この場合、バスに出力される信号がハイレベル(H状態)のとき、プルダウン抵抗にシンク電流が流れる。
【0011】
【特許文献1】
特開平11−232207号公報(第2−3頁、第6図)
【特許文献2】
特表2002−508645号公報(段落番号〔0005〕)
【0012】
【発明が解決しようとする課題】
このように、転送するシリアルデータのL状態、H状態の遷移が多いと、消費電力が増加するという問題点があった。
【0013】
また、シリアルデータをバスに出力する出力駆動回路がオープンコレクタ又はオープンドレインの場合、シリアルデータの信号の状態によっては、バスに接続されているプルアップ抵抗、又はプルダウン抵抗にシンク電流が流れ、電力が消費されるという問題点があった。
【0014】
本発明はこのような点に鑑みてなされたものであり、シリアルデータのH状態又はL状態が占めるビット数を減らして、シリアルデータの状態遷移を低減し、消費電力を低減するデータ転送装置及びデータ転送方法を提供することを目的とする。
【0015】
また、シリアルデータのH状態又はL状態が占めるビット数を減らして、プルアップ抵抗又はプルダウン抵抗に流れるシンク電流を低減し、消費電力を低減するデータ転送装置及びデータ転送方法を提供することを目的とする。
【0016】
【課題を解決するための手段】
本発明では上記課題を解決するために、バスを介してデジタル信号をシリアル転送するデータ転送装置において、前記バスを介して送信しようとする送信シリアルデータにおいて、予め選択されたハイレベル又はロウレベルのいずれか一方を有するビット数が、全ビット数の半分より大きい場合、前記送信シリアルデータを反転する送信データ反転手段と、前記反転を実行したか否かを示す反転情報を前記送信シリアルデータに付加する反転情報付加手段と、を具備することを特徴とするデータ転送装置が提供される。
【0017】
このようなデータ転送装置によれば、送信しようとする送信シリアルデータのハイレベル又はロウレベルのいずれか一方を有するビット数が、全ビット数の半分より大きい場合、送信シリアルデータを反転するので、送信シリアルデータのハイレベル又はロウレベルが占めるビット数が減り、送信シリアルデータの状態遷移を低減する。
【0018】
また、バスにプルアップ抵抗が接続されている場合には、ロウレベルを有するビット数が、全ビット数の半分より大きいときに送信シリアルデータを反転することにより、送信シリアルデータのL状態が占めるビット数が減る。また、バスにプルダウン抵抗が接続されている場合には、ハイレベルを有するビット数が、全ビット数の半分より大きいときに送信シリアルデータを反転することにより、送信シリアルデータのH状態が占めるビット数が減る。よって、プルアップ抵抗、プルダウン抵抗に流れるシンク電流を低減する。
【0019】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明のデータ転送装置の原理を説明する原理図である。図に示すように、データ転送装置1は、送信データ反転手段2、反転情報付加手段3、反転情報抽出手段4、受信データ反転手段5、及びバス6を有している。データ転送装置1は、図示してないが、バス6を介して他のデータ転送装置とシリアルデータの転送を行う。なお、図1には、8ビットの送信しようとする送信シリアルデータA1,A2と、バス6を介して受信した8ビットの受信シリアルデータB1,B2が示してある。
【0020】
送信データ反転手段2は、送信しようとする送信シリアルデータA1の全ビット数に対し、予め選択されたL状態又はH状態にあるビット数が半分より多い場合、送信シリアルデータA1を反転する。ここでは、送信シリアルデータA1の全ビット数‘8’に対し、L状態にあるビット数が半分の‘4’より大きい場合に、送信シリアルデータA1を反転するとする。図1の送信シリアルデータA1では、L状態のビット数は‘6’であり、全ビット数の半分‘4’より大きい。従って、送信データ反転手段2は、送信シリアルデータA1を、送信シリアルデータA2に示すように反転する。これによって、送信データ反転手段2から出力される送信シリアルデータA2は、L状態のビット数が、全ビット数の半分を超えて出現することがない。
【0021】
反転情報付加手段3は、送信シリアルデータA1を反転したか否かを示す情報ビットを送信シリアルデータA2に挿入する。図1では、送信シリアルデータA1は反転されるので、送信シリアルデータA2に示すように、ビットD3,D4の間に、反転したことを示す反転情報ビットCが挿入されている。
【0022】
反転情報抽出手段4は、バス6を介して受信した受信シリアルデータB1に挿入されている情報ビットを抽出する。図1の受信シリアルデータB1においては、ビットD4,D5の間に反転情報ビットCが挿入されており、反転情報抽出手段4は、この反転情報ビットCを抽出する。
【0023】
受信データ反転手段5は、反転情報抽出手段4が抽出した反転情報ビットCに応じて、受信した受信シリアルデータB1を反転する。図1に示す反転情報ビットCが反転した旨を示す情報であれば、受信データ反転手段5は、受信シリアルデータB1を受信シリアルデータB2に示すように反転する。
【0024】
このように、送信しようとする送信シリアルデータの全ビット数に対し、L状態又はH状態にあるビット数が半分より大きい場合、送信シリアルデータを反転するようにし、反転したか否かを示す情報ビットを送信シリアルデータに挿入するようにした。そして、受信した受信シリアルデータに挿入されている情報ビットを抽出し、抽出した情報ビットに応じて、受信シリアルデータを元の適正な状態に戻すようにした。これにより、送信される送信シリアルデータは、H状態又はL状態に偏り、転送されるシリアルデータの状態遷移が減少し、消費電力の低減を図ることができる。
【0025】
次に、本発明のデータ転送装置をIICバスインターフェイスに適用した場合について説明する。
図2は、本発明のデータ転送装置の適用構成例である。図に示すように、IICバス方式のデータ転送装置11a〜11eは、IICバス12a,12bに接続されている。データ転送装置11aは、図示してないが、バス13を介して例えばCPUと接続されている。IICバス12a,12bは、プルアップ抵抗R1,R2を介して電源電圧Vddに接続されている。
【0026】
データ転送装置11a〜11eは、転送先アドレス及び転送データであるシリアルデータSDAをIICバス12aに出力する。また、データ転送装置11a〜11eは、シリアルデータSDAを同期して送受信するためのシリアルクロックSCLをIICバス12bに出力する。
【0027】
図2において、例えば、データ転送装置11aは、バス13を介してCPUからデータを受信したとする。データ転送装置11aは、CPUの指示に従い、受信したデータを所定のデータ転送装置11b〜11eに出力する。このとき、データ転送装置11aは、まずデータを転送すべきデータ転送装置11b〜11eを選択するため、転送先アドレスを示すシリアルデータSDAをIICバス12aに出力する。
【0028】
データ転送装置11aによって選択された(アドレス指定された)データ転送装置11b〜11eは、シリアルデータSDAを受信できることを示す受信許可信号を、IICバス12aを介してデータ転送装置11aに出力する。
【0029】
データ転送装置11aは、受信許可信号を受信すると、CPUから受信したデータをシリアルデータSDAとしてIICバス12aに出力する。
このようにして、データ転送装置11a〜11eは、IICバス12a,12bを介してシリアルデータ転送を行う。
【0030】
図3は、データ転送装置のブロック構成図である。
図に示すようにデータ転送装置11aは、例えば1チップの半導体によって構成され、アドレスレジスタ21、アドレスコンパレータ22、シフトレジスタ23,24、データビット検出回路25、NLBレジスタ26、符号制御回路27、クロックコントロール回路28、データコントロール回路29、及び符号ビット検出回路30を有している。なお、図2のデータ転送装置11b〜11eも上記と同じ回路構成を有する。
【0031】
アドレスレジスタ21は、IICバス12a,12bを介して、シリアルデータ転送をする相手(データ転送装置11b〜11e)を指定するためのアドレスが設定される。
【0032】
アドレスコンパレータ22は、データ転送装置11b〜11eから転送されるデータ転送装置11aを指定するアドレスが入力される。アドレスコンパレータ22は、入力されたアドレスと自分が持つアドレスとを比較し、一致していればIICバス12aに受信許可信号を出力する。
【0033】
シフトレジスタ23は、IICバス12aでシリアルデータ転送をしようとする8ビットのデータが設定される。この8ビットのデータは、例えば、バス13を介してCPUから出力される。シフトレジスタ23は、設定されたデータをシフトレジスタ24、データコントロール回路29に出力する。
【0034】
また、シフトレジスタ23は、シフトレジスタ24から出力されるデータを保持する。このとき、シフトレジスタ23は、符号ビット検出回路30から出力される信号に応じて、シフトレジスタ24のデータの各ビットを反転して保持する。
【0035】
シフトレジスタ24は、シフトレジスタ23から出力される8ビットのデータを保持し、システムクロック(内部の各回路を動作させるためのクロック)に同期してデータビット検出回路25にシフト出力する。また、シフトレジスタ24は、データコントロール回路29から出力されるデータを保持して、シフトレジスタ23にシフト出力する。なお、シフトレジスタ24は、保持したデータを最上位ビットから順にシフト出力していく。
【0036】
データビット検出回路25は、シフトレジスタ24がシフト出力する8ビットのデータの、L状態のビット数をカウントする。データビット検出回路25は、カウントしたL状態のビット数をNLBレジスタ26に保持する。NLBレジスタ26は、シリアルデータSDAとして出力される8ビットのデータの、L状態のビット数を保持するレジスタである。
【0037】
符号制御回路27は、NLBレジスタ26に記憶されているL状態のビット数に応じて、符号ビットSをデータコントロール回路29に出力する。符号制御回路27は、NLBレジスタ26に記憶されているL状態のビット数が、シリアルデータ転送をしようとするデータの全ビット数‘8’の半分‘4’より大きい場合、‘0’の符号ビットSを出力する。また、符号制御回路27は、NLBレジスタ26に記憶されているL状態のビット数が、シリアルデータ転送をしようとするデータの全ビット数‘8’の半分‘4’以下の場合、‘1’の符号ビットSを出力する。
【0038】
例えば、シフトレジスタ23に設定されたデータが‘00011001’の場合、L状態(0)のビット数は5である。従って、NLBレジスタ26には、‘5’が保持されている。NLBレジスタ26に保持されているL状態のビット数が‘5’で、全ビット数‘8’に対し半分を超えているので、符号制御回路27は、‘0’の符号ビットSをデータコントロール回路29に出力する。
【0039】
クロックコントロール回路28は、データコントロール回路29が出力するシリアルデータSDAを同期転送するためのシリアルクロックSCLをIICバス12bに出力する。クロックコントロール回路28のシリアルクロックSCLをIICバス12bに出力する出力段は、オープンコレクタ又はオープンドレインとなっている。
【0040】
また、クロックコントロール回路28は、シリアルクロックSCLと完全同期したシリアルデータ生成クロックSCK1をデータコントロール回路29に出力する。また、クロックコントロール回路28は、シリアルデータ生成クロックSCK1と位相のずれた符号挿入クロックSCK2をデータコントロール回路29に出力する。ここでは、符号挿入クロックSCK2は、シリアルデータ生成クロックSCK1に対して1/4周期遅延しているとする。
【0041】
また、クロックコントロール回路28は、シリアルクロックSCLをIICバス12bから受信する。クロックコントロール回路28は、受信したシリアルクロックSCLを符号ビット検出回路30に出力する。
【0042】
データコントロール回路29は、シフトレジスタ23に保持されている、シリアルデータ転送をしようとする8ビットのデータを、最上位ビットから順にシリアルデータ生成クロックSCK1に同期させ、シリアルデータSDAとしてIICバス12aに出力する。このとき、データコントロール回路29は、符号制御回路27から出力される符号ビットSに応じて、8ビットのデータをビットごとに反転する。データコントロール回路29は、符号ビットSが‘0’の場合データを反転し、‘1’の場合データを反転しない。
【0043】
例えば、シフトレジスタ23に、シリアルデータ転送をしようとする‘00011001’のデータが設定されているとする。このとき、L状態のビット数は、‘5’であるから、上記で説明したように、符号制御回路27は、‘0’の符号ビットSを出力している。従って、データコントロール回路29は、シフトレジスタ23のデータを反転した‘11100110’のデータを、シリアルデータSDAとしてIICバス12aに出力する。
【0044】
また、データコントロール回路29は、シリアルデータSDAをIICバス12aに出力するときに、データを反転したか否かを示す反転情報ビットをシリアルデータSDAに挿入する。反転した場合、‘0’の情報ビットCを挿入し、反転しなかった場合‘1’の情報ビットCを挿入する。
【0045】
データコントロール回路29は、出力しようとするシリアルデータSDAの、最初にL状態となったビット(L状態が継続する場合は、その最後のビット)とその次のH状態のビットとの間に情報ビットCを挿入する。すなわち、データコントロール回路29は、隣接するビットの状態が所定の状態遷移をした場合、そのビット間に情報ビットCを挿入する。このとき、データコントロール回路29は、情報ビットCの挿入位置に対応する、符号挿入クロックSCK2の1クロック間に、情報ビットCを挿入する。
【0046】
なお、データコントロール回路29は、出力しようとするシリアルデータSDAの全ビットがH状態である場合、最上位ビットとその隣接するビットとの間に情報ビットを挿入する。
【0047】
図4は、情報ビットの挿入を説明する図である。図4に示すように、シリアルデータ転送されるデータの各ビットは、シリアルデータ生成クロックSCK1の立下りで遷移するようシリアルに配置される。なお、データは、ビットD7からシリアル転送される。
【0048】
ここで、図のデータが、ビットD4で最初にL状態(L状態はビットD3に継続しない)になり、ビットD3でH状態になっているとすると、データコントロール回路29は、データのビットD4とビットD3の間における、符号挿入クロックSCK2の立上りから立下りの間(図に示すクロックCSEL)に、情報ビットCを挿入する。このようにして、情報ビットCを挿入したシリアルデータSDAを生成する。
【0049】
なお、符号挿入クロックSCK2を、シリアルデータ生成クロックSCK1の位相に対し1/4ずらすことにより、情報ビットCは、データのビットとビットの境の中央に挿入され、情報ビット及びその両側のビットは、シリアルデータSDAを受信するデータ転送装置によって、適切に認識されることが可能となる。
【0050】
また、データコントロール回路29は、IICバス12aを介して転送されてくるシリアルデータSDAを受信する。データコントロール回路29は、受信したシリアルデータSDAを、クロックコントロール回路28が受信したシリアルクロックSCLに同期して、1ビットずつシフトレジスタ24に出力する。
【0051】
符号ビット検出回路30は、データコントロール回路29が受信したシリアルデータSDAに含まれる情報ビットCを、クロックコントロール回路28が受信したシリアルクロックSCLに同期して検出する。
【0052】
符号ビット検出回路30は、シリアルデータSDAの各ビット状態を順に検出する。そして、符号ビット検出回路30は、隣接するビットの状態が所定の状態遷移をした場合、そのビット間におけるデータを検出する。ビット間におけるデータは、シリアルクロックSCLのビットの境となる立上り又は立下りに同期して検出される。
【0053】
例えば、転送されてくるシリアルデータSDAには、最初にL状態となったビット(L状態が継続する場合は、その最後のビット)とその次の隣接するH状態となったビットとの間に情報ビットが挿入されている。すなわち、符号ビット検出回路30は、シリアルデータSDAが、L状態からH状態に遷移した場合、その遷移したビット間のデータを情報ビットCとして検出する。
【0054】
図5は、情報ビット検出を説明する図である。図に示すように、‘11100110’のシリアルデータSDAが、データコントロール回路29に受信されたとする。なお、シリアルデータSDAは、ビットD7から順にデータコントロール回路29に受信される。
【0055】
符号ビット検出回路30は、図に示すように、シリアルクロックSCLの立上りでシリアルデータSDAのビット状態を検出する。
シリアルデータSDAのビットD2はH状態、その1つ前のビットD3はL状態である。従って、符号ビット検出回路30は、シリアルデータSDAがL状態からH状態に遷移したことによって、ビットD3とビットD2の境にある状態を検出する。符号ビット検出回路30は、シリアルデータSDAのビットD3とビットD2の境となるシリアルクロックSCLの立下りにおいて、情報ビットCを検出する。
【0056】
符号ビット検出回路30は、情報ビットCをシフトレジスタ23に出力する。上記で説明したように、シフトレジスタ23は、情報ビットCに応じて、シフトレジスタ24から出力されるシリアルデータSDAを反転し保持する。例えば、反転した旨を示す‘0’の情報ビットCが検出された場合、シフトレジスタ23は、シフトレジスタ24から出力されるシリアルデータSDAを反転して保持する。反転していない旨を示す‘1’の情報ビットCが検出された場合、シフトレジスタ23は、シフトレジスタ24から出力されるシリアルデータSDAを反転せずそのまま保持する。
【0057】
以下、図3のデータ転送装置11aの動作について説明する。まず、IICバス12a,12bに接続されている他のデータ転送装置11b〜11eにシリアルデータSDAを転送する場合について説明する。図6は、転送するデータの一例を示す図である。
【0058】
バス13を介して、例えば、CPUから転送すべきデータの転送先を示すアドレスがアドレスレジスタ21に設定される。
シフトレジスタ23には、転送すべきデータが設定される。転送すべきデータは、図6に示すように‘10000000’とする。設定されたデータは、シフトレジスタ24に出力され、さらにシフトレジスタ24からデータビット検出回路25に出力される。
【0059】
データビット検出回路25は、シフトレジスタ24からシフト出力されるデータのL状態にあるビット数をカウントする。データビット検出回路25は、カウントしたL状態のビット数をNLBレジスタ26に保持する。図6の例では、L状態(0)のビット数は、ビットD6〜D0の‘7’である。従って、データビット検出回路25は、NLBレジスタ26に‘7’の値を保持する。
【0060】
符号制御回路27は、NLBレジスタ26に保持されているL状態のビット数が、シリアルデータ転送をしようとするデータの全ビット数の半分より大きい場合、‘0’の符号ビットSを出力する。L状態のビット数が、シリアルデータ転送をしようとするデータの全ビット数の半分以下の場合、‘1’の符号ビットSを出力する。図6の例では、データの全ビット数‘8’の半分‘4’に対し、L状態のビット数は‘7’であるので、符号制御回路27は、‘0’の符号ビットSをデータコントロール回路29に出力する。
【0061】
データコントロール回路29は、符号制御回路27の符号ビットSに従って、シフトレジスタ23のデータを反転し、シリアルデータSDAとして、IICバス12aに出力する。このとき、データコントロール回路29は、シリアルデータSDAの、最初にL状態となったビット(L状態が継続する場合は、その最後のビット)とその次の隣接するビットとの間に情報ビットCを挿入する。図6の例では、データコントロール回路29は、データ‘10000000’を反転した‘01111111’をシリアルデータSDAとしてIICバス12aに出力するとともに、最初のL状態となるビットD7とその隣接するビットD6の間に(L状態はビットD7のみでビットD6に継続していない)、情報ビットCを挿入する。なお、図6の例では情報ビットCは、‘0’である。
【0062】
次に、他の一例について説明する。図7は、転送するデータの他の例を示す図である。図7に示すようにデータ転送装置11b〜11eに転送したいデータを‘00000000’とする。この場合、L状態のビット数は、‘8’であり、データの全ビット数‘8’の半分より大きいので、データコントロール回路29は、データ‘00000000’を反転した‘11111111’をシリアルデータSDAとして出力する。この場合、L状態が存在しないので、データコントロール回路29は、最上位ビットであるビットD7とその隣接するビットD6の間に情報ビットCを挿入する。なお、図7の例では情報ビットCは、‘0’である。
【0063】
以上から、シリアルデータ転送をしようとするデータにL状態が多い場合、反転して転送するので、H状態のデータが多く出力されることとなる。すなわち、シリアルデータのH状態からL状態、L状態からH状態への状態遷移数が減少し、消費電力の低減を図ることができる。
【0064】
また、H状態のデータが多く出力されることにより、図2で示したプルアップ抵抗R1,R2に流れるシンク電流が減り、消費電力の低減を図ることができる。
【0065】
なお、データコントロール回路29、クロックコントロール回路28が、プルダウン方式のオープンコレクタ又はオープンドレインの出力段を備えている場合、IICバス12a,12bには、プルダウン抵抗が接続される。従って、シリアルデータSDAがH状態のとき、シンク電流が流れる。よって、この場合、H状態のビット数が、全ビット数の半分より大きい場合に、転送しようとするシリアルデータを反転することによって、プルアップ抵抗R1,R2に流れるシンク電流を減らすことができ、消費電力の低減を図ることができる。
【0066】
次に、シリアルデータSDAを受信する場合について説明する。
データ転送装置11aは、IICバス12a,12bを介して、シリアルデータSDA及びシリアルクロックSCLが転送される。データ転送装置11aのデータコントロール回路29は、シリアルデータSDAを受信し、クロックコントロール回路28が受信するシリアルクロックSCLに同期して、シリアルデータSDAをシフトレジスタ24に出力する。
【0067】
符号ビット検出回路30は、データコントロール回路29が受信したシリアルデータSDAに含まれる情報ビットCを、シリアルクロックSCLに同期して検出する。
【0068】
符号ビット検出回路30は、シリアルデータSDAの各ビット状態を順に検出する。そして、符号ビット検出回路30は、最初のL状態(L状態が継続する場合は、その最後のビット)からH状態に状態遷移をした場合、そのビットの境におけるデータを検出する。
【0069】
例えば、図6で示す‘01111111’のシリアルデータSDAが受信されたとする。また、シリアルデータSDAに含まれる情報ビットCは‘0’であるとする。
【0070】
この場合、シリアルデータSDAの最初のL状態からH状態に遷移するビットは、ビットD7からビットD6である。従って、符号ビット検出回路30は、シリアルデータSDAのビットD7からビットD6の、シリアルクロックSCLの立下りにおけるビット状態を情報ビットCとして検出する。
【0071】
符号ビット検出回路30は、情報ビットCをシフトレジスタ23に出力する。シフトレジスタ23は、シフトレジスタ24から出力されるシリアルデータSDAを、情報ビットCに応じて反転し保持する。なお、上記で情報ビットCを‘0’と仮定したので、シフトレジスタ23は、シリアルデータSDAを反転して保持する。
【0072】
シフトレジスタ23に保持されたシリアルデータSDAは、バス13を介して、例えば、CPU等に転送される。
ここで、受信したシリアルデータSDAが‘11111111’の場合、シリアルデータSDAのL状態からH状態に遷移するビットはない。この場合、符号ビット検出回路30は、シリアルデータSDAのビットD7からビットD6の、シリアルクロックSCLの立上りにおけるビット状態を情報ビットCとして検出する。
【0073】
このように、送信しようとする送信シリアルデータの所定状態にあるビット数が、全ビット数の半分より多い場合、送信シリアルデータを反転するようにしたので、シリアルデータの状態遷移数が減り、電力消費の低減を図ることができる。
【0074】
また、転送しようとするシリアルデータが、プルアップ抵抗が接続されたバスに、プルアップ方式のオープンコレクタ又はオープンドレインによって駆動出力される場合においては、シリアルデータのL状態のビット数が、全ビット数の半分より多い場合に送信シリアルデータを反転することによって、プルアップ抵抗を流れるシンク電流が低減され、消費電力を低減することができる。また、転送しようとするシリアルデータが、プルダウン抵抗が接続されたバスに、プルダウン方式のオープンコレクタ又はオープンドレインによって駆動出力される場合においては、シリアルデータのH状態のビット数が、全ビット数の半分より多い場合に送信シリアルデータを反転することによって、プルダウン抵抗を流れるシンク電流が低減され、消費電力を低減することができる。
【0075】
なお、図3に示したデータ転送装置11aにおいて、1回に転送するシリアルデータSDAを8ビットとして、00h〜FFh(16進数)の256バイトを転送した場合、L状態のビットの数が、8ビットの半分である4ビットを超えて(5ビット以上)発生する率は、38/256≒15%となる。従来のIICバス方式で行われるシリアルデータ転送では、93/256≒36%となる。従って、本発明では、L状態時の消費電力を半分以下に低減することができる。
【0076】
また、H状態からL状態に遷移する回数は、図3に示したデータ転送装置11aにおいては、440回となる。従来のIICバス方式で行われるシリアルデータ転送では504回となる。従って、本発明では、シリアルデータの遷移が少なくなることで、消費電力を約13%低減することができる。
【0077】
また、上記IICバス方式を採用したシステムなど各データ転送装置に固有のアドレスが割り当てられるシステムにおいては、該アドレスを指定することによりデータ転送装置間で1対1のデータ転送が実行できるため、本発明に係る上記機能を持ったデータ転送装置と上記機能を持たないデータ転送装置とを共存させ、該機能を持ったデータ転送装置間において上記のようなデータ転送を実現することもできる。
【0078】
【発明の効果】
以上説明したように本発明では、送信しようとする送信シリアルデータのハイレベル又はロウレベルを有するビット数が、全ビット数の半分より大きい場合、送信シリアルデータを反転するようにしたので、送信シリアルデータの状態遷移が低減され、消費電力を低減することができる。
【0079】
また、バスにプルアップ抵抗が接続されている場合には、ロウレベルを有するビット数が、全ビット数の半分より大きいときに送信シリアルデータを反転することにより、また、バスにプルダウン抵抗が接続されている場合には、ハイレベルを有するビット数が、全ビット数の半分より大きいときに送信シリアルデータを反転することにより、プルアップ抵抗、プルダウン抵抗に流れるシンク電流を低減し、消費電力を低減することができる。
【図面の簡単な説明】
【図1】本発明のデータ転送装置の原理を説明する原理図である。
【図2】本発明のデータ転送装置の適用構成例である。
【図3】データ転送装置のブロック構成図である。
【図4】情報ビットの挿入を説明する図である。
【図5】情報ビット検出を説明する図である。
【図6】転送するデータの一例を示す図である。
【図7】転送するデータの他の例を示す図である。
【符号の説明】
1,11a〜11e……データ転送装置、2……送信データ反転手段、3……反転情報付加手段、4……反転情報抽出手段、5……受信データ反転手段、6,13……バス、12a,12b……IICバス、21……アドレスレジスタ、22……アドレスコンパレータ、23,24……シフトレジスタ、25……データビット検出回路、26……NLBレジスタ、27……符号制御回路、28……クロックコントロール回路、29……データコントロール回路、30……符号ビット検出回路、R1,R2……プルアップ抵抗。
Claims (8)
- バスを介してデジタル信号をシリアル転送するデータ転送装置において、
前記バスを介して送信しようとする送信シリアルデータにおいて、予め選択されたハイレベル又はロウレベルのいずれか一方を有するビット数が、全ビット数の半分より大きい場合、前記送信シリアルデータを反転する送信データ反転手段と、
前記反転を実行したか否かを示す反転情報を前記送信シリアルデータに付加する反転情報付加手段と、
を具備することを特徴とするデータ転送装置。 - バスを介してデジタル信号をシリアル転送するデータ転送装置において、
前記バスを介して受信された受信シリアルデータが原送信データの反転により生成されたものであるか否かを示す反転情報を含む前記受信シリアルデータから、前記反転情報を抽出する反転情報抽出手段と、
前記反転情報に応じて、前記受信シリアルデータを反転する受信データ反転手段と、
を具備することを特徴とするデータ転送装置。 - 前記バスを介して受信された前記反転情報を含む受信シリアルデータから、前記反転情報を抽出する反転情報抽出手段と、
前記反転情報に応じて、前記受信シリアルデータを反転する受信データ反転手段と、
をさらに具備することを特徴とする請求項1記載のデータ転送装置。 - 前記送信データ反転手段は、前記バスにプルアップ抵抗が接続されている場合には前記ロウレベルを有するビット数が前記全ビット数の半分より大きいときに前記送信シリアルデータを反転し、前記バスにプルダウン抵抗が接続されている場合には前記ハイレベルを有するビット数が前記全ビット数の半分より大きいときに前記送信シリアルデータを反転することを特徴とする請求項1又は3のいずれかに記載のデータ転送装置。
- 前記反転情報付加手段は、前記反転情報を前記送信シリアルデータのレベルが遷移するビット間に挿入することを特徴とする請求項1又は3のいずれかに記載のデータ転送装置。
- 前記反転情報抽出手段は、前記受信シリアルデータのレベルが遷移するビット間に挿入された情報を前記反転情報として抽出することを特徴とする請求項2又は3のいずれかに記載のデータ転送装置。
- バスを介してデジタル信号をシリアル転送するデータ転送方法であって、
前記バスを介して送信しようとする送信シリアルデータにおいて、予め選択されたハイレベル又はロウレベルのいずれか一方を有するビット数が、全ビット数の半分より大きい場合、前記送信シリアルデータを反転するステップと、
前記反転を実行したか否かを示す反転情報を前記送信シリアルデータに付加した上で、前記送信シリアルデータを前記バスへ送出するステップと、
を有することを特徴とするデータ転送方法。 - 前記バスを介して受信された前記反転情報を含む受信シリアルデータから、前記反転情報を抽出するステップと、
前記反転情報に応じて、前記受信シリアルデータを反転するステップと、
をさらに有することを特徴とする請求項7記載のデータ転送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002373685A JP2004207942A (ja) | 2002-12-25 | 2002-12-25 | データ転送装置とデータ転送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002373685A JP2004207942A (ja) | 2002-12-25 | 2002-12-25 | データ転送装置とデータ転送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004207942A true JP2004207942A (ja) | 2004-07-22 |
Family
ID=32811897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002373685A Pending JP2004207942A (ja) | 2002-12-25 | 2002-12-25 | データ転送装置とデータ転送方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004207942A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014022962A (ja) * | 2012-07-19 | 2014-02-03 | Fujitsu Ltd | 伝送装置及びデータ転送方法 |
US8677211B2 (en) | 2010-12-23 | 2014-03-18 | International Business Machines Corporation | Data bus inversion using spare error correction bits |
JP2015506039A (ja) * | 2011-12-14 | 2015-02-26 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 統合データマスキング、データポイズニング及びデータバス反転シグナリング |
CN110677450A (zh) * | 2018-07-02 | 2020-01-10 | 瑞萨电子株式会社 | 半导体器件和通信 |
-
2002
- 2002-12-25 JP JP2002373685A patent/JP2004207942A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677211B2 (en) | 2010-12-23 | 2014-03-18 | International Business Machines Corporation | Data bus inversion using spare error correction bits |
JP2015506039A (ja) * | 2011-12-14 | 2015-02-26 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 統合データマスキング、データポイズニング及びデータバス反転シグナリング |
JP2014022962A (ja) * | 2012-07-19 | 2014-02-03 | Fujitsu Ltd | 伝送装置及びデータ転送方法 |
CN110677450A (zh) * | 2018-07-02 | 2020-01-10 | 瑞萨电子株式会社 | 半导体器件和通信 |
US10880135B2 (en) | 2018-07-02 | 2020-12-29 | Renesas Electronics Corporation | Semiconductor device and communication |
CN110677450B (zh) * | 2018-07-02 | 2024-05-14 | 瑞萨电子株式会社 | 半导体器件和通信 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102328014B1 (ko) | 싱글 와이어 인터페이스를 포함하는 장치와 이를 포함하는 데이터 처리 시스템 | |
US7805621B2 (en) | Method and apparatus for providing a bus interface with power management features | |
US6345328B1 (en) | Gear box for multiple clock domains | |
US7843216B2 (en) | Techniques for optimizing design of a hard intellectual property block for data transmission | |
JP2013520081A (ja) | シリアル及びパラレル通信のためのハイブリッドインターフェイス | |
KR101441028B1 (ko) | 시리얼 i/o 버스트 게이팅을 이용한 저전력 serdes 아키텍처 | |
US20090121756A1 (en) | Pseudo-synchronous small register designs with very low power consumption and methods to implement | |
US20080136689A1 (en) | High speed serializer/deserializer transmit architecture | |
WO2005091544A1 (en) | Bit clock with embedded word clock boundary | |
WO2005091543A1 (en) | Architecture for bidirectional serializers and deserializer | |
US7545205B2 (en) | Low power on-chip global interconnects | |
JP2004207942A (ja) | データ転送装置とデータ転送方法 | |
US20110316581A1 (en) | Semiconductor device with bus connection circuit and method of making bus connection | |
US20050062501A1 (en) | Data transfer apparatus for serial data transfer in system LSI | |
US9054685B2 (en) | Programmable bus signal hold time without system clock | |
KR100980413B1 (ko) | 클럭 버퍼 및 이를 이용하는 반도체 메모리 장치 | |
EP3739463A1 (en) | Circuit for asynchronous data transfer | |
KR20160118902A (ko) | 싱글 와이어 인터페이스를 포함하는 장치와 이를 포함하는 데이터 처리 시스템 | |
JPH1185304A (ja) | クロック入力制御回路 | |
US10193646B2 (en) | Bandwidth extension for true single-phase clocked multiplexer | |
JP2004199580A (ja) | クロック制御回路およびインタフェース回路 | |
JP4221239B2 (ja) | クロック配線駆動回路 | |
JP2004318450A (ja) | バス制御装置 | |
JP3246454B2 (ja) | 同時双方向入出力回路及び信号転送方法 | |
CN116467241A (zh) | I2c唤醒电路、方法和电子装置 |