(57)【要約】 【課題】  より短い時間でデータの転送を行えるようにする。【解決手段】  携帯端末１０は、Ｉ２Ｃバス１８で互いに接続されたチップ１２およびカメラセンサ１４を備え、マスタであるチップ１２からスレーブであるカメラセンサ１４へ、スレーブアドレス，レジスタアドレスおよび当該レジスタアドレスに書き込まれるバイトデータをセットにしてシリアル転送する際に、チップ１２は、単一のスレーブアドレス，単一のレジスタアドレスおよび複数バイトのデータを含むマルチバイトデータの態様でシリアル転送したり（Ｓ２９）、単一のスレーブアドレス，単一のレジスタアドレスおよび単一バイトのデータを含むシングルバイトデータの態様でシリアル転送したりする（Ｓ３３）。【選択図】  図１
2014032552.tif 000002
【特許請求の範囲】
【請求項１】
マスタからスレーブにアドレスおよび当該アドレスに書き込まれるデータを転送するデータ転送装置であって、
前記マスタに設けられ、前記スレーブにアドレスおよび複数のデータを含むマルチデータを転送する第１転送部、および
前記マスタに設けられ、前記スレーブにアドレスおよび単一のデータを含むシングルデータを転送する第２転送部を備える、データ転送装置。
【請求項２】
前記マルチデータに含まれるアドレスは、当該マルチデータに含まれる複数のデータのうち最初のデータが書き込まれるアドレスである、請求項１記載のデータ転送装置。
【請求項３】
前記スレーブに設けられ、前記シングルデータが転送されてきた場合には、当該シングルデータに含まれるアドレスに単一のデータを書き込む第１書き込み部、および
前記スレーブに設けられ、前記マルチデータが転送されてきた場合には、当該マルチデータに含まれるアドレスに最初のデータを書き込んだ後、当該アドレスをインクリメントしながら以降のデータを書き込んでいく第２書き込み部をさらに備える、請求項２記載のデータ転送装置。
【請求項４】
前記マスタに設けられ、転送すべきアドレスおよびデータを当該アドレスの連続性に基づいて前記マルチデータおよび前記シングルデータに振り分ける振り分け部をさらに備える、請求項１ないし３のいずれかに記載のデータ転送装置。
【請求項５】
前記振り分け部は、
アドレスが連続している区間に属する最初のセットからのアドレスと当該区間に属する全てのセットからの複数のデータとを前記マルチデータに振り分ける第１振り分け部、および
アドレスが連続している区間に属さないセットからのアドレスおよび単一のデータを前記シングルデータに振り分ける第２振り分け部を含む、請求項４記載のデータ転送装置。
【請求項６】
前記転送はＩ２Ｃ方式に従うシリアル転送である、請求項１記載のデータ転送装置。
【請求項７】
前記アドレスは、Ｉ２Ｃバス上での前記スレーブのアドレスと、前記スレーブがデータを書き込むレジスタのアドレスとを含む、請求項６記載のデータ転送装置。
【請求項８】
マスタからスレーブにアドレスおよび当該アドレスに書き込まれるデータを転送するデータ転送装置において、前記マスタのＣＰＵを、
前記マスタから前記スレーブにアドレスおよび複数のデータを含むマルチデータを転送する第１転送部、および
前記マスタから前記スレーブにアドレスおよび単一のデータを含むシングルデータを転送す第２転送部として機能させる、転送制御プログラム。
【請求項９】
マスタからスレーブにアドレスおよび当該アドレスに書き込まれるデータを転送するデータ転送装置によって行われる転送制御方法であって、
前記マスタから前記スレーブにアドレスおよび複数のデータを含むマルチデータを転送する第１転送ステップ、および
前記マスタから前記スレーブにアドレスおよび単一のデータを含むシングルデータを転送す第２転送ステップを含む、転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ転送装置ならびに転送制御プログラムおよび方法に関し、特にたとえば、マスタ・スレーブ間でデータの転送を行う、データ転送装置ならびに転送制御プログラムおよび方法に関する。
【背景技術】
【０００２】
従来のこの種の装置の一例であるカメラ付き携帯電話機が、特許文献１に開示されている。このカメラ付き携帯電話機では、電源立ち上げ時、本体制御部によってカメラモジュールの内部メモリ（カメラ用メモリ）に初期設定データが書き込まれる。
【特許文献１】特開２００５−１１０１５７号公報［H04N 5/232, H04B 7/26, H04M 1/00, 1/73］
【発明の概要】
【発明が解決しようとする課題】
【０００３】
一般に、マスタである本体制御部（ＣＰＵ，プロセッサ，チップなどと呼ばれる場合もある）と、スレーブであるカメラモジュール（カメラデバイス，カメラセンサ）との間は、Ｉ２Ｃ(Inter-Integrated Circuit)バス、つまりシリアルデータである初期設定データを伝送するＳＤＡとシリアルクロックを伝送するＳＣＬとの２本の信号線で接続されており、カメラ起動時、本体制御部からカメラモジュールに、初期設定データが１バイト単位で（以下、このような１バイト単位のデータを“バイトデータ”と呼ぶ）、スレーブとしてのカメラモジュールのアドレス（以下“スレーブアドレス”）およびカメラモジュール内のレジスタのアドレス（以下“レジスタアドレス”）を付加した状態で、Ｉ２Ｃ方式で（シリアルクロックに同期させて）転送される。
【０００４】
すなわち、上記文献のような背景技術では、スレーブアドレスおよびレジスタアドレスとバイトデータとをセットにしてシリアル転送するので（図８参照：後述）、カメラ起動時の転送データ量は、スレーブアドレスおよびレジスタアドレスをそれぞれ１バイトとすると、初期設定データ本体の３倍となる。このため、初期設定データの転送に時間がかかり、カメラ起動までの待ち時間が長い問題があった。
【０００５】
それゆえに、この発明の主たる目的は、新規な、データ転送装置ならびに転送制御プログラムおよび方法を提供することである。
【０００６】
この発明の他の目的は、より短い時間でデータの転送が行える、データ転送装置ならびに転送制御プログラムおよび方法を提供することである。
【課題を解決するための手段】
【０００７】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、この発明の理解を助けるために後述する実施形態との対応関係を示したものであって、この発明を何ら限定するものではない。
【０００８】
第１の態様は、マスタからスレーブにアドレスおよび当該アドレスに書き込まれるデータを転送するデータ転送装置であって、マスタに設けられ、スレーブにアドレスおよび複数のデータを含むマルチデータを転送する第１転送部、および、マスタに設けられ、スレーブにアドレスおよび単一のデータを含むシングルデータを転送する第２転送部を備える。
【０００９】
第１の態様では、マスタ（１２）からスレーブ（１４）にアドレスおよび当該アドレスに書き込まれるデータを転送するデータ転送装置（１０）は、第１転送部および第２転送部を含み、マスタに設けられた第１転送部がスレーブにアドレスおよび複数のデータを含むマルチデータを転送し（Ｓ２９）、マスタに設けられた第２転送部がスレーブにアドレスおよび単一のデータを含むシングルデータを転送する（Ｓ３３）。
【００１０】
第１の態様によれば、マルチデータには複数のデータに対して単一のアドレスしか含まれないので、アドレスの転送量が抑制され、より短い時間でデータの転送が行える。
【００１１】
第２の態様は、第１の態様に従属し、マルチデータに含まれるアドレスは、当該マルチデータに含まれる複数のデータのうち最初のデータが書き込まれるアドレスである。
【００１２】
第２の態様によれば、スレーブのマルチデータ書き込みに対応したデータ転送が行える。
【００１３】
第３の態様は、第２の態様に従属し、スレーブに設けられ、シングルデータが転送されてきた場合には、当該シングルデータに含まれるアドレスに単一のデータを書き込む第１書き込み部（Ｓ５１〜Ｓ５７）、および、スレーブに設けられ、マルチデータが転送されてきた場合には、当該マルチデータに含まれるアドレスに最初のデータを書き込んだ後、当該アドレスをインクリメントしながら以降のデータを書き込んでいく第２書き込み部をさらに備える（Ｓ５１〜Ｓ６３）。
【００１４】
第３の態様によれば、マスタからスレーブにデータをマルチデータおよび／またはシングルデータの態様で転送できる。
【００１５】
第４の態様は、第１ないし３のいずれかにの態様に従属し、マスタに設けられ、転送すべきアドレスおよびデータを当該アドレスの連続性に基づいてマルチデータおよびシングルデータに振り分ける振り分け部をさらに備える。
【００１６】
第４の態様では、振り分け部が、転送すべきアドレスおよびデータを、当該アドレスの連続性に基づいてマルチデータおよびシングルデータに振り分ける（１２ａ，Ｓ１３，Ｓ１７，Ｓ２７，Ｓ３１）。
【００１７】
第４の態様によれば、アドレスの連続性に注目して振り分けを行うことで、データから簡単にマルチデータおよび／またはシングルデータを構成できる。
【００１８】
第５の態様は、第４の態様に従属し、振り分け部は、アドレスが連続している区間に属する最初のセットからのアドレスと当該区間に属する全てのセットからの複数のデータとをマルチデータに振り分ける第１振り分け部（Ｓ１３，Ｓ１７，Ｓ２７）、および、アドレスが連続している区間に属さないセットからのアドレスおよび単一のデータをシングルデータに振り分ける第２振り分け部（Ｓ３１）を含む。
【００１９】
第５の態様によれば、アドレス連続区間に属する最初のセットからのアドレスと、当該区間の全セットからの複数のデータとでマルチデータが、アドレスが連続している区間に属さないセットからのアドレスおよび単一のデータでシングルデータが、それぞれ簡単に構成される。
【００２０】
第６の態様は、第１の態様に従属し、転送はＩ２Ｃ(Inter-Integrated Circuit)方式に従うシリアル転送である。
【００２１】
第６の態様によれば、一般的なシリアル転送方式であるＩ２Ｃ方式でも、マルチデータ／シングルデータの転送が行える。
【００２２】
第７の態様は、第６の態様に従属し、アドレスは、Ｉ２Ｃバス（１８）上でのスレーブのアドレスと、スレーブがデータを書き込むレジスタ（１４ａ）のアドレスとを含む。
【００２３】
第７の態様によれば、スレーブおよびレジスタの２種類のアドレスの転送量が抑制されるので、転送時間の短縮効果がより顕著となる。
【００２４】
第８の態様は、転送制御プログラム（３２）であって、マスタ（１２）からスレーブ（１４）にアドレスおよび当該アドレスに書き込まれるデータを転送するデータ転送装置（１０）において、マスタのＣＰＵを、マスタからスレーブにアドレスおよび複数のデータを含むマルチデータを転送する第１転送部（Ｓ２９）、およびマスタからスレーブにアドレスおよび単一のデータを含むシングルデータを転送す第２転送部（Ｓ３３）として機能させる。
【００２５】
第９の態様は、マスタ（１２）からスレーブ（１４）にアドレスおよび当該アドレスに書き込まれるデータを転送するデータ転送装置（１０）によって行われる転送制御方法であって、マスタからスレーブにアドレスおよび複数のデータを含むマルチデータを転送する第１転送ステップ（Ｓ２９）、およびマスタからスレーブにアドレスおよび単一のデータを含むシングルデータを転送す第２転送ステップ（Ｓ３３）を含む。
【００２６】
第８および第９の各態様によっても、第１の態様と同様に、より短い時間でデータの転送が行える。
【発明の効果】
【００２７】
この発明によれば、より短い時間でデータの転送を行える、データ転送装置ならびに転送制御プログラムおよび方法が実現される。
【図面の簡単な説明】
【００２８】
【図１】この発明の一実施例であるデータ転送装置の要部構成を示すブロック図である。
【図２】メインメモリの内容を示すメモリマップ図である。
【図３】カメラ設定データの一例を示す図解図である。
【図４】図３のカメラ設定データに基づく転送データを示す図解図であり、（Ａ）が第０〜５セットに対応するマルチバイトデータを、（Ｂ）が第６セットに対応するシングルバイトデータを、そして（Ｃ）が第７〜１３セットに対応するマルチバイトデータをそれぞれ示す。
【図５】チップ（本体ＣＰＵ）による転送制御処理の一部を示すフロー図である。
【図６】チップ（本体ＣＰＵ）による転送制御処理の他の一部を示すフロー図である。
【図７】カメラセンサによる書込み制御処理（マルチバイト対応）の一例を示すフロー図である。
【図８】図３のカメラ設定データに基づく従来のシングルバイト転送を示す図解図である。
【発明を実施するための形態】
【００２９】
図１には、カメラ付きの携帯端末１０の要部構成が示される。図１を参照して、この発明の一実施例である携帯端末１０は、本体ＣＰＵを含むチップ１２と、撮像素子（ＣＣＤ，ＣＭＯＳなど）およびその駆動回路など（図示せず）を含むカメラセンサ１４とを備える。
【００３０】
チップ１２およびカメラセンサ１４は、Ｉ２Ｃ(Inter-Integrated Circuit)バス１８つまりシリアルデータを伝送するＳＤＡとシリアルクロックを伝送するＳＣＬとの２本の信号線で互いに接続され、チップ１２がマスタとして、カメラセンサ１４はスレーブとして動作する。なお、Ｉ２Ｃバス１８には、他のデバイス２０（たとえばディスプレイ用のドライバやタッチパネル用のＩ／Ｆなど）もスレーブとして接続されてよい。
【００３１】
チップ１２には、シリアルデータであるカメラ設定データ４２（図２，図３参照：後述）をＩ２Ｃバス１８を通してカメラセンサ１４にシングルバイト(Single-Byte)および／またはマルチバイト(Multi-Byte)転送するためのバッファ１２ａが設けられ、カメラセンサ１４には、チップ１２から転送されてくるカメラ設定データ４２を保持するレジスタ１４ａが設けられる。
【００３２】
また、チップ１２にはメモリ１６が接続（または内蔵）されており、メモリ１６は、チップ１２が動作するためのプログラムやデータを記憶すると共に、チップ１２に必要な作業領域を提供する。
【００３３】
詳しくは、図２に示すように、メモリ１６はプログラム領域３０およびデータ領域４０を含み、プログラム領域３０には転送制御プログラム３２が、データ領域４０にはカメラ設定データ４２がそれぞれ記憶される。
【００３４】
転送制御プログラム３２は、チップ１２からカメラセンサ１４へのカメラ設定データ４２のＩ２Ｃバス１８を介したシリアル転送を制御するプログラムであり、図５および図６のフローチャートに対応する。カメラ設定データ４２は、カメラセンサ１４の起動時にレジスタ１４ａに書き込まれるべき各種の設定値（感度，露光時間，絞り量などの初期設定値ないしユーザ設定値）を示すデータであり、たとえば図３に示すような構造を有する。
【００３５】
図３を参照して、このカメラ設定データ４２は、第０〜第１３の計１４セット分のレジスタアドレスおよびバイトデータを含む。レジスタアドレスは、レジスタ１４ａのアドレスを示すデータであり、ここでは１バイトのデータ量を有する。バイトデータは、そのレジスタアドレスに書き込まれるべき１バイトのデータである。
【００３６】
このようなカメラ設定データ４２が、バッファ１２ａ内で、転送制御プログラム３２の制御下にあるチップ１２によって、レジスタアドレスが不連続となる位置、つまり第５セットおよび第６セットの間、および第６セットおよび第７セットの間の２か所で切り分けられ、その結果、図４（Ａ）に示すようなマルチバイトデータと、図４（Ｂ）に示すようなシングルバイトデータと、図４（Ｃ）に示すようなマルチバイトデータとが得られる。
【００３７】
図４（Ａ）のマルチバイトデータは、図３のカメラ設定データ４２を構成する第０〜第１３セットのうち、第１セットに含まれるレジスタアドレス（０ｘ１０）と、第０〜第５セットに含まれる６バイトのデータ（０ｘ００，０ｘ９０，０ｘ００，０ｘ８０，０ｘ７０および０ｘ０３）とを含む。第１〜第５セットのレジスタアドレス（０ｘ１１，０ｘ１２，０ｘ１３，０ｘ１４および０ｘ１５）は廃棄される。転送時、このようなマルチバイトデータの先頭に、カメラセンサ１４のスレーブアドレス（０ｘ７８）が付加される。
【００３８】
図４（Ｂ）のシングルバイトデータは、第６セットに含まれるレジスタアドレス（０ｘ１７）および１バイトのデータ（０ｘ２ｃ）を含む。転送時、このようなシングルバイトデータの先頭に、カメラセンサ１４のスレーブアドレス（０ｘ７８）が付加される。なお、これは、従来のシングルバイトデータ（図８参照：後述）と同様の構造である。
【００３９】
図４（Ｃ）のマルチバイトデータは、第７セットに含まれるレジスタアドレス（０ｘ２０）と、第７〜第１３セットに含まれる７バイトのデータ（０ｘ００，０ｘ０８，０ｘ００，０ｘ０ａ，０ｘ８０，０ｘ０６および０ｘ０８）とを含む。第８〜第１３セットのレジスタアドレス（０ｘ２１，０ｘ２２，０ｘ２３，０ｘ２４，０ｘ２５および０ｘ２６）は廃棄される。転送時、このようなマルチバイトデータの先頭に、カメラセンサ１４のスレーブアドレス（０ｘ７８）が付加される。
【００４０】
したがって、スレーブアドレスのデータ量を１バイトとすると、携帯端末１０では、カメラ設定データ４２をレジスタ１４ａ書き込むにあたって、チップ１２からカメラセンサ１４に（１＋１＋１×６）＋（１＋１＋１）＋（１＋１＋１×７）＝８＋３＋９＝２０バイトのデータが転送される。
【００４１】
ここで、比較のため、図３のカメラ設定データ４２に基づく従来のシングルバイト転送を図８に示す。従来のシングルバイト転送では、カメラ設定データ４２は、それぞれがレジスタアドレスおよび１バイトのデータを含む１４セットのシングルバイトデータに切り分けられ、さらに、各シングルバイトデータの先頭にカメラセンサ１４のスレーブアドレス（０ｘ７８）が付加される。したがって、スレーブアドレスのデータ量を１バイトとすると、従来の携帯端末では、カメラ設定データ４２をレジスタ１４ａに書き込むにあたって、（１＋１＋１）バイト×１４セット＝４２バイトのデータ転送が必要となる。
【００４２】
以上のようなマルチバイト／シングルバイト転送は、チップ１２（本体ＣＰＵ）が、メモリ１６に記憶された図２に示すようなプログラムおよびデータ（３２，４２）に基づいて、図５および図６に示すような転送制御処理を実行することにより実現される。このとき、転送先のカメラセンサ１４では、たとえば図７に示すような書き込み処理が実行される。
【００４３】
図５を参照して、チップ１２は、最初、ステップＳ１で、図３のセット番号に対応する変数ｉに初期値として０をセットし、また、現在のセット（第ｉセット）がカメラ設定データ４２の最後のセットか否かを示すフラグＦ（１は最後のセットであることを、０は最後のセットではないことを示す）にも０をセットする。次に、ステップＳ３で、バッファ１２ａに保持しているデータ（マルチバイトデータまたはシングルバイトデータ）のバイト数を示す変数Ｃに０をセットする。
【００４４】
こうして変数ｉ，フラグＦおよびカウンタＣに対する初期設定が完了すると、ステップＳ５に進み、メモリ１６のデータ領域４０に記憶されたカメラ設定データ４２から第ｉセットのレジスタアドレスおよびバイトデータを取得する。さらにステップＳ７で、次のセットつまり第（ｉ＋１）セットがあるか否かを判別する。ステップＳ７でＮＯであれば、ステップＳ２３でフラグＦに１をセットした後、ステップＳ２５（後述）に進む。
【００４５】
ステップＳ７でＹＥＳであれば、ステップＳ９に進んで、第ｉ〜第（ｉ＋１）セット間でレジスタアドレスが連続か否かをさらに判別する。ステップＳ９でＮＯであれば、ステップＳ２５（後述）に進む。
【００４６】
ステップＳ９でＹＥＳであれば、Ｃ＝０か否かを次のステップＳ１１で判別する。ステップＳ１１でＹＥＳ（バッファ１２ａに未だデータが記憶されていない状態）であれば、ステップＳ１３でバッファ１２ａに第ｉセット（アドレス連続区間に属する最初のセット：図３参照）のレジスタアドレスおよびバイトデータを格納し、さらにステップＳ１５でＣ＝２（これは、レジスタアドレスおよびバイトデータを格納した結果、バッファ１２ａに２バイトのデータが記憶されている状態を示す）とした後、ステップＳ２１に進む。
【００４７】
ステップＳ１１でＮＯ（バッファ１２ａに１バイト以上のデータが記憶されている状態）であれば、ステップＳ１７でバッファ１２ａに第ｉセット（アドレス連続区間に属する次のセット：図３参照）のバイトデータをさら格納（レジスタアドレスは廃棄）し、さらにステップＳ１９でカウンタＣをインクリメント（Ｃ＝Ｃ＋１）した後、ステップＳ２１に進む。
【００４８】
ステップＳ２１では、変数ｉをインクリメント（ｉ＝ｉ＋１）する。その後、ステップＳ５に戻って上記と同様の処理を繰り返す。
【００４９】
図６を参照して、ステップＳ２５では、Ｃ＞０か否かを判別する。ステップＳ２５でＹＥＳ（バッファ１２ａにデータが記憶されている状態）であれば、ステップＳ２７でバッファ１２ａに第ｉセット（アドレス連続区間に属する最後のセット：図３参照）のバイトデータを格納（レジスタアドレスは廃棄）した後、ステップＳ２９でＩ２Ｃバス１８を通じマルチバイト転送を行う。具体的には、バッファ１２ａ内に記憶されたマルチバイトデータ（図４（Ａ），図４（Ｃ）参照）の先頭にカメラセンサ１４のスレーブアドレスを付加し、これをＳＣＬのシリアルクロックに同期させつつＳＤＡでカメラセンサ１４へと転送する。その後、ステップＳ３５に進む。
【００５０】
ステップＳ２５でＮＯ（バッファ１２ａにデータが記憶されていない状態）であれば、ステップＳ３１でバッファ１２ａに第ｉセット（アドレス連続区間に属さないセット：図３参照）のレジスタアドレスおよびバイトデータを格納した後、ステップＳ３３でＩ２Ｃバス１８を通じシングルバイト転送を行う。具体的には、バッファ１２ａ内に記憶されたシングルバイトデータ（図４（Ｂ）参照）の先頭にカメラセンサ１４のスレーブアドレスを付加し、これをＳＣＬのシリアルクロックに同期させつつＳＤＡでカメラセンサ１４へと転送する。その後、ステップＳ３５に進む。
【００５１】
ステップＳ３５では、Ｆ＝０か否かを判別する。ステップＳ３５でＹＥＳであれば、ステップＳ３７で変数ｉをインクリメント（ｉ＝ｉ＋１）した後、ステップＳ３に戻って（カウンタＣを０にリセットした上で）上記と同様の処理を繰り返す。ステップＳ３５でＮＯであれば、このカメラ設定データ４２に関する転送制御処理を終了する。
【００５２】
以下、上記のフローを図３のカメラ設定データ４２を用いて検証する。まず、ｉ＝０の場合、ステップＳ７，Ｓ９，Ｓ１１の判別はいずれもＹＥＳであり、ステップＳ１３でバッファ１２ａに第０セットのレジスタアドレス（０ｘ１０）およびバイトデータ（０ｘ００）が格納され、ステップＳ１５でＣ＝２となる。その後、ステップＳ２１で変数ｉが０から１にインクリメントされる。
【００５３】
ｉ＝１の場合、ステップＳ７，Ｓ９の判別はＹＥＳであるが、ステップＳ１１の判別がＮＯとなり、ステップＳ１７でバッファ１２ａに第１セットのバイトデータ（０ｘ９０）が格納され、ステップＳ１９でカウンタＣが２から３にインクリメントされる。その後、ステップＳ２１で変数ｉが１から２にインクリメントされる。
【００５４】
ｉ＝２〜４の場合の処理は、ｉ＝１の場合と同様である。
【００５５】
ｉ＝５の場合、ステップＳ７の判別はＹＥＳであるが、ステップＳ９の判別がＮＯとなり、ステップＳ２５に移る。この時点でＣ＝６なので、ステップＳ２５の判別はＹＥＳであり、ステップＳ２７でバッファ１２ａに第５セットのバイトデータ（０ｘ０３）が格納される。こうして、図４（Ａ）に示すようなマルチバイトデータがバッファ１２ａに記憶される結果となり、次のステップＳ２９では、このマルチバイトデータの先頭にスレーブアドレスを付けたものがＩ２Ｃバス１８を通じてマルチバイト転送される。この時点でＦ＝０なので、ステップＳ３５の判別はＹＥＳであり、ステップＳ３７で変数ｉが５から６にインクリメントされた後、ステップＳ３でカウンタＣが０にリセットされる。
【００５６】
ｉ＝６の場合、ステップＳ７の判別はＹＥＳであるが、ステップＳ９の判別がＮＯとなり、ステップＳ２５に移る。この時点でＣ＝０なので、ステップＳ２５の判別はＮＯであり、ステップＳ３１でバッファ１２ａに第７セットのレジスタアドレス（０ｘ１７）およびバイトデータ（０ｘ２ｃ）が格納される。こうして、図４（Ｂ）に示すようなシングルバイトデータがバッファ１２ａに記憶される結果となり、次のステップＳ３３では、このシングルバイトデータの先頭にスレーブアドレスを付けたものがＩ２Ｃバス１８を通じてシングルバイト転送される。この時点でＦ＝０なので、ステップＳ３５の判別はＹＥＳであり、ステップＳ３７で変数ｉが６から７にインクリメントされた後、ステップＳ３でカウンタＣが０にリセット（結果的に０のまま維持）される。
【００５７】
ｉ＝７の場合、ステップＳ７，Ｓ９，Ｓ１１の判別はいずれもＹＥＳであり、ステップＳ１３でバッファ１２ａに第７セットのレジスタアドレス（０ｘ２０）およびバイトデータ（０ｘ００）が格納され、ステップＳ１５でＣ＝２となる。その後、ステップＳ２１で変数ｉが７から８にインクリメントされる。
【００５８】
ｉ＝８の場合、ステップＳ７，Ｓ９の判別はＹＥＳであるが、ステップＳ１１の判別がＮＯとなり、ステップＳ１７でバッファ１２ａに第８セットのバイトデータ（０ｘ８０）が格納され、ステップＳ１９でカウンタＣが２から３にインクリメントされる。その後、ステップＳ２１で変数ｉが８から９にインクリメントされる。
【００５９】
ｉ＝９〜１２の場合の処理は、ｉ＝８の場合と同様である。
【００６０】
ｉ＝１３の場合、ステップＳ７の判別がＮＯとなり、ステップＳ２３でＦ＝１となった後、ステップＳ２５に移る。この時点でＣ＝７なので、ステップＳ２５の判別はＹＥＳであり、ステップＳ２７でバッファ１２ａに第１３セットのバイトデータ（０ｘ８０）が格納される。こうして、図４（Ｃ）に示すようなマルチバイトデータがバッファ１２ａに記憶される結果となり、次のステップＳ２９では、このマルチバイトデータの先頭にスレーブアドレスを付けたものがＩ２Ｃバス１８を通じてマルチバイト転送される。この時点でＦ＝１なので、ステップＳ３５の判別はＮＯであり、以上で転送完了となる。
【００６１】
こうして、図３のカメラ設定データ４２は、図４（Ａ）〜図（Ｃ）に示すようなマルチバイトデータおよびシングルバイトデータに（連続するレジスタアドレスを廃棄しつつ）振り分けられ、Ｉ２Ｃバス１８を通じてそれぞれマルチバイト転送およびシングルバイト転送される。
【００６２】
一方、カメラセンサ１４では、チップ１２からＩ２Ｃバス１８を通じて上記のようなマルチバイトデータまたはシングルバイトデータが転送されてくるのを受け、たとえば以下のような書込み制御処理が実行される。
【００６３】
図７を参照して、カメラセンサ１４（の内蔵ＣＰＵ）は、最初、ステップＳ５１で、自己宛ての転送データがあったか否かを判別し、ここでＮＯであれば、所定の待機時間（たとえば０．１秒）を経て同様の判別を繰り返す。カメラセンサ１４自身のスレーブアドレスが付されたマルチバイトデータまたはシングルバイトデータが転送されてくると、ステップＳ５１でＹＥＳと判別し、ステップＳ５３に進む。
【００６４】
ステップＳ５３では、その転送データ（先頭に付されたスレーブアドレスは除く）から１バイト目（つまりレジスタアドレス）を抽出して“アドレス”にセットする。次のステップＳ５５では、転送データから２バイト目（つまり第１のバイトデータ）を抽出して、これをレジスタ１４ａ内の“アドレス”に対応する領域に書き込む。
【００６５】
次に、転送データにさらに次のバイトがあるか否かをステップＳ５７で判別し、ここでＮＯ（つまり転送データがシングルバイトデータ）であれば、ステップＳ５１に戻って上記と同様の処理を繰り返す。
【００６６】
ステップＳ５７でＹＥＳ（つまり転送データがマルチバイトデータ）であれば、ステップＳ５９で“アドレス”をインクリメントする。そしてステップＳ６１で、転送データから当該バイトを抽出して、これをレジスタ１４ａ内の“アドレス”に対応する領域にさらに書き込む。その後、転送データの全てのバイトを格納し終えたか否かをステップＳ６３で判別し、ここでＮＯであれば、ステップＳ５９に戻って上記と同様の処理を繰り返す。これにより、レジスタ１４ａに“アドレス”をインクリメントしながら第２以降のバイトデータが順次書き込まれていく。
【００６７】
転送データの全バイトがレジスタ１４ａに書き込まれて、ステップＳ６３の判別結果がＹＥＳになると、ステップＳ５１に戻り、次の転送データについて上記と同様の処理を繰り返す。
【００６８】
なお、図７の書き込み制御は一例であり、カメラセンサ１４に代えて、既存のマルチバイト書き込みに対応したカメラセンサを用いてもよい。つまり、図５および図６に示した転送制御は、転送先のカメラセンサがマルチバイト書き込みに対応したもの（オートインクリメント機能を有するもの）であれば、採用できる。
【００６９】
以上から明らかなように、この実施例の携帯端末１０は、Ｉ２Ｃバス１８で互いに接続されたチップ１２およびカメラセンサ１４を備え、マスタであるチップ１２からスレーブであるカメラセンサ１４へ、スレーブアドレス，レジスタアドレスおよび当該レジスタアドレスに書き込まれるバイトデータをセットにしてシリアル転送する際に、チップ１２は、単一のスレーブアドレス，単一のレジスタアドレスおよび複数バイトのデータを含むマルチバイトデータの態様でシリアル転送したり（Ｓ２９）、単一のスレーブアドレス，単一のレジスタアドレスおよび単一バイトのデータを含むシングルバイトデータの態様でシリアル転送したりする（Ｓ３３）。
【００７０】
ここで、マルチバイトデータに含まれるレジスタアドレスは、当該マルチバイトデータに含まれる複数バイトのうち最初のバイトのデータが書き込まれるレジスタアドレスである。
【００７１】
カメラセンサ１４は、シングルバイトデータが転送されてきた場合には、当該シングルバイトデータに含まれるレジスタアドレスに単一バイトのデータを書き込み（Ｓ５１〜Ｓ５７）、マルチバイトデータが転送されてきた場合には、当該マルチバイトデータに含まれるレジスタアドレスに最初のバイトのデータを書き込んだ後、当該アドレスをインクリメントしながら次のバイト以降のデータを書き込んでいく（Ｓ５１〜Ｓ６３）。
【００７２】
チップ１２は、シリアル転送すべきレジスタアドレスおよびバイトデータを、当該レジスタアドレスの連続性に基づいてマルチバイトデータおよびシングルバイトデータに振り分ける（１２ａ，Ｓ１３，Ｓ１７，Ｓ２７，Ｓ３１）ことで、マルチバイトデータおよび／またはシングルバイトデータを構成する。
【００７３】
具体的には、チップ１２は、アドレス連続区間に属する最初のセットからのレジスタアドレスと当該アドレス連続区間に属する全てのセットからの複数バイトのデータとをマルチバイトデータに振り分け（Ｓ１３，Ｓ１７，Ｓ２７）、アドレス連続区間に属さないセットからのレジスタアドレスおよび単一バイトのデータをシングルバイトデータに振り分ける（Ｓ３１）。なお、アドレス連続区間に属する２番目以降のセットからのレジスタアドレスは廃棄される（マルチバイトデータには振り分けられない）。こうして、アドレス連続区間に属する最初のセットからのアドレスと当該区間の全セットからの複数バイトのデータとでマルチバイトデータが、アドレスが連続している区間に属さないセットからのアドレスおよび単一バイトのデータでシングルバイトデータが、それぞれ簡単に構成される。
【００７４】
したがって、チップ１２からカメラセンサ１４に、たとえばカメラ設定データ４２をマルチバイトおよび／またはシングルバイトの態様でシリアル転送できる。マルチバイトデータには複数バイトのデータに対して単一のレジスタアドレスしか含まれないので、レジスタアドレスの転送量が抑制され、より短い時間でカメラ設定データ４２のシリアル転送が行える。これにより、カメラ起動までの待ち時間が短縮される。
【００７５】
なお、チップ１２・カメラセンサ１４間は、この実施例ではＩ２Ｃバス１８を用いて接続されたが、シリアル転送が可能なものであれば、Ｉ２Ｃ以外のバスを用いて接続されてもよい。バスの種類や接続形態によっては、マルチバイトデータやシングルバイトデータの先頭に付されるスレーブアドレスを省略してよい場合もあり得る。
【００７６】
また、この実施例では、チップ１２・カメラセンサ１４間でカメラ設定データ４２のマルチバイト／シングルバイト転送を行ったが、チップ１２と他のデバイス２０との間で各種データのマルチバイト／シングルバイト転送を行ってもよい。一般に、マスタ・スレーブの関係にあれば、どのようなデバイス間でもデータのマルチバイト／シングルバイト転送が行える。
【００７７】
また、この実施例では、データの転送は、バイト単位で行ったが、これに限らず、たとえばビット単位で行ったり、その他のデータ単位で行ってもよい。つまり、マスタ・スレーブの関係にある任意のデバイス間で、アドレスおよび複数のデータを含むマルチデータ、および／または、アドレスおよび単一のデータを含むシングルデータの転送が行える。
【００７８】
以上では、携帯端末１０について説明したが、この発明は、マスタからスレーブにアドレスおよび当該アドレスに書き込まれるデータをセットにしてシリアル転送するデータ転送装置、ないしはこれを備える各種の電子機器（特に携帯電話端末，スマートフォン，タブレットＰＣなどの携帯端末、あるいはディジタルスチル／ムービーカメラなど）に適用できる。
【符号の説明】
【００７９】
１０  …携帯端末
１２  …チップ（本体ＣＰＵ）
１２ａ  …バッファ
１４  …カメラセンサ
１４ａ  …レジスタ
１６  …メモリ
１８  …Ｉ２Ｃバス（ＳＣＬおよびＳＤＡ）
【図１】
2014032552.tif 000003
【図２】
2014032552.tif 000004
【図３】
2014032552.tif 000005
【図４】
2014032552.tif 000006
【図５】
2014032552.tif 000007
【図６】
2014032552.tif 000008
【図７】
2014032552.tif 000009
【図８】
2014032552.tif 000010