(57)【要約】【課題】高速インターフェースを用いることなく、プログラムのダウンロードに要する時間を削減できる集積回路を提供する。【解決手段】スレーブデバイス２は、バーストモード時にマスターデバイス１からのプログラムを受信した場合、アドレスフィールドもデータフィールドとして扱われていると判断して、アドレスフィールド内のデータをもプログラムとして取り出す。また、スレーブデバイス２は、バーストモード時には、送信ＦＩＦＯ２２２を受信ＦＩＦＯ２２４の拡張用ＦＩＦＯとして用いる。【選択図】図１
2005056106.tif 000002
【特許請求の範囲】
【請求項１】
他の集積回路からプログラムをシリアル通信によりダウンロードして実行するＣＰＵを有する集積回路において、
前記他の集積回路から前記プログラムを含む受信データをダウンロードして受信した時に、特定モードに設定されている場合、当該受信データのフォーマットが変更されていると判断して、当該受信データから前記プログラムを取り出すインターフェース回路を有することを特徴とする集積回路。
【請求項２】
請求項１に記載の集積回路において、
前記インターフェース回路は、前記他の集積回路から前記プログラムを含む受信データを受信した時に、特定モードに設定されている場合、前記受信データのデータフィールドだけでなく当該データフィールド以外のフィールドにも前記プログラムが含まれていると判断して、当該受信データから前記プログラムを取り出すことを特徴とする集積回路。
【請求項３】
請求項１または２に記載の集積回路において、
前記インターフェース回路は、前記他の集積回路から送信される信号によって特定モードに設定されることを特徴とする集積回路。
【請求項４】
請求項１または２に記載の集積回路において、
前記ＣＰＵは、前記他の集積回路から送信されるコマンドによって前記インターフェース回路を特定モードに設定することを特徴とする集積回路。
【請求項５】
請求項１から４のいずれか１項に記載の集積回路において、
前記インターフェース回路は、
通常モード時には、前記他の集積回路に送信される送信データを蓄積する送信バッファと、
通常モード時には、前記他の集積回路から受信した受信データに含まれる前記プログラムを蓄積する受信バッファと、
通常モード時には、前記他の集積回路から受信した受信データに含まれる前記プログラムを受信バッファにのみ蓄積するよう制御し、特定モード時には、前記他の集積回路から受信した受信データに含まれる前記プログラムを前記送信バッファおよび前記受信バッファの双方に蓄積するよう制御するタイミング制御回路とを有することを特徴とする集積回路。
【請求項６】
第１の集積回路と、当該第１の集積回路からプログラムをシリアル通信によりダウンロードして実行するＣＰＵを具備する第２の集積回路とを有してなる情報処理装置において、
前記第２の集積回路は、前記第１の集積回路から前記プログラムを含む受信データをダウンロードして受信した時に、特定モードに設定されている場合、当該受信データのフォーマットが変更されていると判断して、当該受信データから前記プログラムを取り出すインターフェース回路を有することを特徴とする情報処理装置。
【請求項７】
請求項６に記載の情報処理装置において、
前記インターフェース回路は、前記第１の集積回路から前記プログラムを含む受信データを受信した時に、特定モードに設定されている場合、前記受信データのデータフィールドだけでなく当該データフィールド以外のフィールドにも前記プログラムが含まれていると判断して、当該受信データから前記プログラムを取り出すことを特徴とする情報処理装置。
【請求項８】
請求項６または７に記載の情報処理装置において、
前記インターフェース回路は、前記第１の集積回路から送信される信号によって特定モードに設定されることを特徴とする情報処理装置。
【請求項９】
請求項６または７に記載の情報処理装置において、
前記ＣＰＵは、前記第１の集積回路から送信されるコマンドによって前記インターフェース回路を特定モードに設定することを特徴とする情報処理装置。
【請求項１０】
請求項６から９のいずれか１項に記載の情報処理装置において、
前記インターフェース回路は、
通常モード時には、前記第１の集積回路に送信される送信データを蓄積する送信バッファと、
通常モード時には、前記第１の集積回路から受信した受信データに含まれる前記プログラムを蓄積する受信バッファと、
通常モード時には、前記第１の集積回路から受信した受信データに含まれる前記プログラムを、受信バッファにのみ蓄積するよう制御し、特定モード時には、前記第１の集積回路から受信した受信データに含まれる前記プログラムを、前記送信バッファおよび前記受信バッファの双方に蓄積するよう制御するタイミング制御回路とを有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル通信によりプログラム等のプログラムをダウンロードして実行するＣＰＵを有する集積回路、およびそのような集積回路を有する携帯電話、コンピュータ等の情報処理装置に関するものである。
【背景技術】
【０００２】
従来、ＣＰＵを内蔵したＬＳＩ等の集積回路では、ある機能を実現・追加する場合、その機能を実現・追加するためにＣＰＵで実行されるプログラムをマスクＲＯＭに格納していた。
【０００３】
しかしながら、近年、システムの複雑化、プログラムの大規模化に伴い、マスクＲＯＭ化した後に不具合が発生するリスクが大きくなっている。
【０００４】
そこで、この種の集積回路では、書き換え可能な不揮発メモリ（ＦＬＡＳＨメモリ）にプログラムを格納し、不具合が発生した場合にプログラムを書き換えにより更新することも行われている。
【０００５】
しかしながら、不揮発メモリは一般的に外付けとなるため、実装面積の増加およびコストアップなどが問題となる。
【０００６】
そのため、この種の集積回路では、当該集積回路内にＲＡＭを設け、上位の集積回路からダウンロードしたプログラムをＲＡＭに格納してから、ＣＰＵで実行することも行われている。
【０００７】
以下、シリアル通信によりダウンロードしたプログラムをＲＡＭに格納してからＣＰＵで実行する集積回路を有する従来の情報処理装置について説明する。
【０００８】
図２０を参照すると、本従来例の情報処理装置は、マスターデバイス８と、スレーブデバイス９とを有する。
【０００９】
マスターデバイス８は、ＣＰＵ８１と、マスターとなる同期式シリアルインターフェース（ＳＳＩ）８２とを有するＬＳＩである。
【００１０】
スレーブデバイス９は、マスターデバイス８からシリアル通信によりプログラムをダウンロードして実行可能なＣＰＵ９１を有するＬＳＩである。ＣＰＵ９１は、バス制御回路９５を介してＲＯＭ９３およびＲＡＭ９４に接続される。ＲＯＭ９３には、ダウンロードを実行するためのプログラムが格納される。ＲＡＭ９４は、マスターデバイス８からダウンロードされ、ＣＰＵ８１で実行されるプログラムおよびワークデータを格納するために使用される。
【００１１】
さらに、スレーブデバイス９は、通信路・制御信号線１０を介してマスターデバイス８と通信およびマスターデバイス８からのプログラムのダウンロードを行うための同期式シリアルインターフェース（ＳＳＩ）９２を有する。
【００１２】
ここで、スレーブデバイス９内の同期式シリアルインターフェース９２の構成について図２１を参照して説明する。
【００１３】
図２１を参照すると、本従来例に係る同期式シリアルインターフェース９２は、バス制御回路９５を介してＣＰＵ９１と接続されるバスインターフェース回路９２１と、送信側に配置された送信ＦＩＦＯ９２２および送信回路９２３と、受信側に配置された受信ＦＩＦＯ９２４および受信回路９２５と、通信処理に関する制御を行うタイミング制御回路９２６とを有する。
【００１４】
タイミング制御回路９２６は、ＣＰＵ９１からのデータをマスターデバイス８に送信する場合は、送信ＦＩＦＯ９２２および送信回路９２３を介してデータを送信する。一方、タイミング制御回路９２６は、マスターデバイス８からのデータを受信する場合は、マスターデバイス８から受信回路９２５により受信されたデータを受信ＦＩＦＯ９２４に蓄積する。なお、受信ＦＩＦＯ９２４に蓄積されたデータは、ＣＰＵ９１によりバスインターフェース回路９２１を介して読み出される。
【００１５】
以下に、本従来例の動作について説明する。ここでは、スレーブデバイス９が、チップセレクト（ＣＳ）、クロック（ＣＬＫ）、出力データ（ＳＤＯ）、入力データ（ＳＤＩ）用の４本の信号線を用いた４線同期式シリアル通信によりマスターデバイス８からプログラムをダウンロードする例について説明する。
【００１６】
図２２および図２３に、マスターデバイス８側の動作を説明するタイミングチャートを示す。なお、図２２および図２３において、ＣＳ、ＣＬＫ、ＳＤＯはそれぞれマスターデバイス８から出力されるチップセレクト、クロック、出力データを示し、図２３において、ＳＤＩはマスターデバイス８に入力される入力データを示す。
【００１７】
図２２および図２３を参照すると、マスターデバイス８からの出力データ（ＳＤＯ）のフォーマットは、アドレスや制御用のフィールド（以下、アドレスフィールドと称する。図２２および図２３では、８ビット分のフィールド）と、これに続くデータ用のデータフィールド（図２２および図２３では、８ビット分のフィールド）とに分かれている。なお、図２２は、マスターデバイス８からスレーブデバイス９へデータが転送される場合のタイミングチャートであり、図２３は、スレーブデバイス９からマスターデバイス８へデータの転送要求が送信される場合のタイミングチャートである。また、図示していないが、スレーブデバイス９からの出力データ（ＳＤＯ）のフォーマットも同様に、アドレスフィールドと、これに続くデータフィールドとに分かれている。
【００１８】
スレーブデバイス９は、受信回路９２５によりデータが受信された場合、そのデータのアドレスフィールドの設定に基づいて、マスターデバイス８からのデータを受信しようとしているのか、または、マスターデバイス８へデータを送信しようとしているのかを判定する。
【００１９】
具体的には、スレーブデバイス９側では、受信回路９２５は、データを受信すると、そのアドレスフィールドの内容をタイミング制御回路９２６に送る。タイミング制御回路９２６は、アドレスフィールドの設定に基づき、マスターデバイス８へデータを送信しようとしていると判定した場合、送信ＦＩＦＯ２２２から読み出したデータをデータフィールドに含めて送信回路２２３を介して送信する。一方、マスターデバイス８へデータを送信しようとしていると判定した場合、図２４に示すように、受信回路２２５により受信されたデータフィールド内のデータを受信ＦＩＦＯ２２４に蓄積する。なお、図２４において、ＣＳ、ＣＬＫ、ＳＤＩはそれぞれマスターデバイス８からスレーブデバイス９に入力されるチップセレクト、クロック、入力データを示し、受信ＦＩＦＯはスレーブデバイス９内の受信ＦＩＦＯ９２４に蓄積されるデータを示す。
【００２０】
このように装置間でプログラム等のデータを転送する技術としては、特許文献１〜３に開示された技術等が挙げられる。
【特許文献１】特開平０７−３１２６２７号公報
【特許文献２】特開２００１−１３４５４３号公報
【特許文献３】特開２００３−０２９８０９号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかしながら、従来の情報処理装置においては、プログラムのサイズが大きくなった場合に、下位の集積装置側でＵＡＲＴ（Universal Asynchronous Receiver Transmitter）などの一般的なインターフェースを用いてプログラムをダウンロードしようとすると、非常に時間がかかってしまう。また、高速にプログラムをダウンロードしようとすると、下位の集積装置側で専用の高速インターフェースを持つ必要がある。
【００２２】
また、従来の情報処理装置においては、図２４に示すように、１チップの転送において、１バイト分の意味の有るデータ（プログラム）しか転送できないため、スループットが低下してしまう。そのため、プログラムのダウンロードに要する時間がさらに長くなってしまう。
【００２３】
そこで、本発明の目的は、高速インターフェースを用いることなく、プログラムのダウンロードに要する時間を削減することができる集積回路、および情報処理装置を提供することにある。
【課題を解決するための手段】
【００２４】
上記目的を達成するために本発明の集積回路は、他の集積回路からプログラムをシリアル通信によりダウンロードして実行するＣＰＵを有する集積回路において、前記他の集積回路から前記プログラムを含む受信データをダウンロードして受信した時に、特定モードに設定されている場合、当該受信データのフォーマットが変更されていると判断して、当該受信データから前記プログラムを取り出すインターフェース回路を有することを特徴とする。
【００２５】
具体的には、前記インターフェース回路は、前記他の集積回路から前記プログラムを含む受信データを受信した時に、特定モードに設定されている場合、前記受信データのデータフィールドだけでなく当該データフィールド以外のフィールドにも前記プログラムが含まれていると判断して、当該受信データから前記プログラムを取り出すことを特徴とする。
【００２６】
なお、前記インターフェース回路は、前記他の集積回路から送信される信号によって特定モードに設定されることとしても良く、前記ＣＰＵは、前記他の集積回路から送信されるコマンドによって前記インターフェース回路を特定モードに設定することとしても良い。
【００２７】
さらに、前記インターフェース回路は、通常モード時には、前記他の集積回路に送信される送信データを蓄積する送信バッファと、通常モード時には、前記他の集積回路から受信した受信データに含まれる前記プログラムを蓄積する受信バッファと、通常モード時には、前記他の集積回路から受信した受信データに含まれる前記プログラムを受信バッファにのみ蓄積するよう制御し、特定モード時には、前記他の集積回路から受信した受信データに含まれる前記プログラムを前記送信バッファおよび前記受信バッファの双方に蓄積するよう制御するタイミング制御回路とを有することを特徴とする。
【００２８】
上記目的を達成するために本発明の情報処理装置は、第１の集積回路と、当該第１の集積回路からプログラムをシリアル通信によりダウンロードして実行するＣＰＵを具備する第２の集積回路とを有してなる情報処理装置において、前記第２の集積回路は、前記第１の集積回路から前記プログラムを含む受信データをダウンロードして受信した時に、特定モードに設定されている場合、当該受信データのフォーマットが変更されていると判断して、当該受信データから前記プログラムを取り出すインターフェース回路を有することを特徴とする。
【発明の効果】
【００２９】
以上説明したように本発明の集積回路においては、他の集積回路からプログラムをシリアル通信によりダウンロードして実行するＣＰＵと、他の集積回路からプログラムを含む受信データをダウンロードした時に、特定モードに設定されている場合、受信データのフォーマットが変更されていると判断して、受信データからプログラムを取り出すインターフェース回路とを設けた構成としている。
【００３０】
具体的には、インターフェース回路は、特定モードに設定されている場合、受信データのデータフィールドだけでなくデータフィールド以外のフィールドにもプログラムが含まれていると判断し、受信データからプログラムを取り出す。
【００３１】
したがって、他の集積回路側では、データフィールド以外のフィールドであって、通常はアドレスデータまたは制御データを格納するために使用されるフィールドにもプログラムを格納することが可能となる。そのため、大量のプログラムを一方的に転送する際に冗長度が無くなり、スループットが向上し、高速に転送することができる。
【００３２】
また、本発明の集積回路においては、上記のようなインターフェース回路を用いているため、一般的な同期式シリアルの通信方式を容易に拡張でき、ダウンロード専用の高速インターフェースを持つ必要がない。
【００３３】
さらに、本発明の集積回路においては、インターフェース回路において、送信バッファおよび受信バッファと、特定モード時には、受信データに含まれる前記プログラムを送信バッファおよび受信バッファの双方に蓄積するよう制御するタイミング制御回路とを設けた構成としている。
【００３４】
したがって、特定モード時には、送信バッファを受信バッファの拡張用バッファとして用いていることができるため、予め容量の大きな受信バッファを設けた構成と比較して、回路規模の削減を図ることができる。
【発明を実施するための最良の形態】
【００３５】
以下に、本発明を実施するための形態について図面を参照して説明する。
【００３６】
（第１の実施形態）
図１を参照すると、本発明の情報処理装置を携帯電話に適用した例が示されている。この情報処理装置は、マスターデバイス１と、プロトコルの処理を実行するスレーブデバイス２と、その他周辺機能の処理を実行するスレーブデバイス３とを有する。
【００３７】
さらに、図１に示した情報処理装置は、ＧＳＭ（Global System for Mobile Communications）方式のＲＦ部４と、Ｗ-ＣＤＭＡ（Wide-Band CDMA）方式のＲＦ部５と、アンテナ６とを有し、アンテナ６を介して、ＧＳＭまたはＷ-ＣＤＭＡのどちらか一方の通信方式で基地局（不図示）との間で通信を行う。
【００３８】
マスターデバイス１は、ＣＰＵ１１と、マスターとなる同期式シリアルインターフェース（ＳＳＩ）１２とを有するＬＳＩである。
【００３９】
スレーブデバイス２は、マスターデバイス１から同期式シリアル通信によりプログラムをダウンロードして実行可能なＣＰＵ２１を有し、複数の通信方式に対応したプロトコルＬＳＩである。ＣＰＵ２１は、バス制御回路２７を介してＲＯＭ２４およびＲＡＭ２５に接続される。ＲＯＭ２４には、ダウンロードを実行するためのプログラムが格納される。ＲＡＭ２５は、マスターデバイス１からダウンロードされ、ＣＰＵ２１で実行されるプログラムおよびワークデータを格納するために使用される。
【００４０】
また、スレーブデバイス２は、ＧＳＭ方式のベースバンド処理部２６と、Ｗ-ＣＤＭＡ方式のベースバンド処理部２３とを有し、ＣＰＵ２１で実行されるプログラムに応じてＧＳＭまたはＷ-ＣＤＭＡのどちらか一方または両方の通信方式に対応することが可能である。
【００４１】
さらに、スレーブデバイス２は、通信路・制御信号線７を介してマスターデバイス１と通信およびマスターデバイス１からのプログラムのダウンロードを行うための同期式シリアルインターフェース（ＳＳＩ）２２を有する。
【００４２】
スレーブデバイス３は、通信路・制御信号線７を介してマスターデバイス１と接続される電源制御用ＬＳＩや音源ＬＳＩなどである。
【００４３】
ここで、スレーブデバイス２内の同期式シリアルインターフェース２２の構成について図２を参照して説明する。
【００４４】
図２を参照すると、本実施形態に係る同期式シリアルインターフェース２２は、バス制御回路２７を介してＣＰＵ２１と接続されるバスインターフェース回路２２１と、送信側に配置された送信ＦＩＦＯ２２２および送信回路２２３と、受信側に配置された受信ＦＩＦＯ２２４および受信回路２２５と、通信処理に関する制御を行うタイミング制御回路２２６とを有する。
【００４５】
本実施形態に係る同期式シリアルインターフェース２２は、図２１に示した従来例とは異なり、マスターデバイス１により制御されるバースト（ＢＵＲＳＴ）信号の状態に応じて、マスターデバイス１からの受信データのフォーマットが変更されていると判断し、送信ＦＩＦＯ２２２を受信ＦＩＦＯ２２４の拡張用ＦＩＦＯとして動作するように切り替える。
【００４６】
具体的には、タイミング制御回路２２６は、４線同期式シリアル通信によりマスターデバイス１からデータを受信した時に、バースト信号がアクティブに設定されている場合には、アドレスや制御用のフィールド（以下、アドレスフィールドと称する）内のデータを送信ＦＩＦＯ２２２に蓄積し、これに続くデータフィールド内のデータを受信ＦＩＦＯ２２４に蓄積する。
【００４７】
また、タイミング制御回路２２６は、送信ＦＩＦＯ２２２および受信ＦＩＦＯ２２４が全て埋まった時に、バスインターフェース回路２２１を介してＣＰＵ２１に対して割り込み（ＩＮＴＥＲＲＵＰＴ）信号を送信する。ＣＰＵ２１は、タイミング制御回路２２６からの割り込み（ＩＮＴＥＲＲＵＰＴ）信号を受信すると、バスインターフェース回路２２１を介して送信ＦＩＦＯ２２２および受信ＦＩＦＯ２２４から受信データを読み込み、ＲＡＭ２５上のプログラムエリアに転送し、次の受信に備える。
【００４８】
このように、タイミング制御回路２２６は、バースト信号がアクティブに設定されている場合、アドレスフィールドもデータフィールドとして扱われていると判断して、アドレスフィールド内のデータをも意味のあるデータ（プログラム等）として取り出し、その後の処理を行っている。
【００４９】
したがって、マスターデバイス１は、従来例（図２２参照）とは異なり、図３に示すように、１チップの転送において、アドレスフィールドをもデータフィールドとして扱ってデータを転送することができる。そのため、全てのビットが意味のあるデータ（プログラム等）となり、アドレスフィールドの冗長分が無くなる。なお、図３において、ＣＳ、ＣＬＫ、ＳＤＩはそれぞれマスターデバイス１から出力されるチップセレクト、クロック、出力データを示す。
【００５０】
また、タイミング制御回路２２６は、４線同期式シリアル通信によるマスターデバイス１からのデータ受信時に、バースト信号が非アクティブに設定されている場合には、従来例と同様に、アドレスフィールドの設定に基づき、データフィールド内のデータを受信ＦＩＦＯ２２４に蓄積することのみを行う。
【００５１】
以下に、本実施形態の動作について説明する。ここでは、スレーブデバイス２が、４線同期式シリアル通信によりマスターデバイス１からプログラムをダウンロードする例について説明する。このとき、ダウンロードするプログラムは、スレーブデバイス２のリセット解除後または起動後に使用されるネットワークの種類に応じて、スレーブデバイス２で必要となるプロトコルスタック、信号処理プログラムなどである（後述する第２の実施形態、第３の実施形態でも同様）。
【００５２】
図４に、マスターデバイス１側の動作を説明するフローチャートを示し、図５および図６に、スレーブデバイス２側の動作を説明するフローチャートを示し、図７に、スレーブデバイス２側の動作を説明するタイミングチャートを示す。なお、図７において、ＣＳ、ＣＬＫ、ＳＤＩはそれぞれマスターデバイス８から入力されるチップセレクト、クロック、入力データを示し、受信ＦＩＦＯ、送信ＦＩＦＯはそれぞれ受信ＦＩＦＯ９２４に蓄積されるデータ、送信ＦＩＦＯ２２２に蓄積されるデータを示す。
【００５３】
図４を参照すると、マスターデバイス１側では、ＣＰＵ１１は、プログラムのダウンロード処理を開始する場合（ステップ４０１）、まず、バースト信号をアクティブに設定する（ステップ４０２）。
【００５４】
次に、ＣＰＵ１１は、プログラムの全データのうち、スレーブデバイス２内の送信ＦＩＦＯ２２２および受信ＦＩＦＯ２２２の容量分に相当する最初のデータを転送する（ステップ４０３）。このとき、ＣＰＵ１１は、アドレスフィールドをデータフィールドとして扱うこととして送信データのフォーマットを変更した上で、データを転送する。なお、本実施形態では、送信ＦＩＦＯ２２２および受信ＦＩＦＯ２２４の各々が１６バイトのＦＩＦＯであるものとし、ＣＰＵ１１は、トータルで３２バイト（１６ワード）分のデータを転送する。
【００５５】
次に、ＣＰＵ１１は、プログラムの全データの転送が完了しているか判定し（ステップ４０４）、全データの転送が完了していなければ、再度、１６ワード（３２バイト）分のデータを転送する。
【００５６】
ＣＰＵ１１は、プログラムの全データの転送が完了していれば、バースト信号を非アクティブに設定し（ステップ４０５）、スレーブデバイス２の処理時間を考慮して一定時間待機した後、スレーブデバイス２をリセットし（ステップ４０６）、ダウンロード処理を終了する（ステップ４０７）。
【００５７】
図５を参照すると、スレーブデバイス２側では、ＣＰＵ２１は、リセットが解除された時または起動時に（ステップ５０１）、ＲＯＭ２４上の起動用プログラムに基づく起動処理を行い、ＲＡＭ２５上のプログラムの有無を判定する（ステップ５０２）。ＣＰＵ２１は、ＲＡＭ２５上にプログラムが存在すれば、ＲＡＭ２５上のプログラムを実行する（ステップ５０３）。
【００５８】
ＣＰＵ２１は、ＲＡＭ２５上にプログラムが存在しなければ、ＲＯＭ２４上のダウンロード実行用のダウンロードプログラムを起動し、ダウンロードデータの受信待ち状態に移行する（ステップ５０４）。
【００５９】
図６を参照すると、スレーブデバイス２側では、図５のステップ５０４の状態で、マスターデバイス１からダウンロードデータを受信した場合（ステップ６０１）、タイミング制御回路２２６は、バースト信号がアクティブであるかを判定する（ステップ６０２）。タイミング制御回路２２６は、バースト信号がアクティブでない場合、マスターデバイス１からのデータは通常のデータ（アドレスフィールド内にプログラムが含まれていないデータ）であると判定し、通常の通信処理の制御を行う（ステップ６０３）。具体的には、タイミング制御回路２２６は、マスターデバイス１からのデータフィールド内のデータを受信ＦＩＦＯ２２４に蓄積することのみを行い、アドレスフィールド内のデータを送信ＦＩＦＯ２２２に蓄積することは行わない。
【００６０】
一方、タイミング制御回路２２６は、バースト信号がアクティブである場合、図７に示すように、マスターデバイス１からのアドレスフィールド内のデータを送信ＦＩＦＯ２２２に蓄積するとともに、これに続くデータフィールド内のデータを受信ＦＩＦＯ２２４に蓄積する。そして、タイミング制御回路２２６は、送信ＦＩＦＯ２２２および受信ＦＩＦＯ２２４が全て埋まった時に、ＣＰＵ２１に対する割り込み（ＩＮＴＥＲＲＵＰＴ）信号をアクティブに設定する。ＣＰＵ２１は、割り込み（ＩＮＴＥＲＲＵＰＴ）信号がアクティブに設定されると、送信ＦＩＦＯ２２２および受信ＦＩＦＯ２２４内のデータを読み出してＲＡＭ２５上のプログラムエリアに転送し（ステップ６０４）、プログラム有りフラグを設定する（ステップ６０５）。
【００６１】
その後、ＣＰＵ２１は、次のダウンロードデータの受信待ち状態に移行する（ステップ６０６）。
【００６２】
上述したように本実施形態においては、スレーブデバイス２において、バースト信号がアクティブに設定されている場合、アドレスフィールドもデータフィールドとして扱われていると判断して、アドレスフィールド内のデータをも意味のあるデータ（プログラム等）として取り出し、その後の処理を行っている。
【００６３】
したがって、マスターデバイス１は、アドレスフィールドおよびデータフィールドの双方に意味の有るデータ（プログラム）を含めてバースト的にスレーブデバイス２に転送することができるため、スループットが向上し、ダウンロード時間を短縮することができる（以下、この動作モードをバーストモードと示す）。
【００６４】
また、本実施形態においては、スレーブデバイス２において、バーストモード時には、送信ＦＩＦＯ２２２を受信ＦＩＦＯ２２４の拡張用ＦＩＦＯとして用いているため、予め容量の大きな受信ＦＩＦＯ２２４を設けた構成と比較して、回路規模の削減を図ることができる。
【００６５】
なお、本実施形態においては、アドレスフィールドをデータフィールドとして扱う例について説明したが、アドレスフィールドをそのままにして、データフィールド長を拡張（例えば、８ビットから１６ビットへ拡張）する場合も本発明に含まれる。
【００６６】
（第２の実施形態）
本実施形態の情報処理装置は、マスターデバイス１からスレーブデバイス２へのプログラムのダウンロード時に、マスターデバイス１とスレーブデバイス２との間でハンドシェイク処理を行うものである。
【００６７】
なお、本実施形態の情報処理装置は、第１の実施形態と比較して、スレーブデバイス２内の同期式シリアルインターフェース２２の内部構成が異なり、それ以外の構成は第１の実施形態と同様である。
【００６８】
図８を参照すると、本実施形態に係る同期式シリアルインターフェース２２は、図２に示した第１の実施形態とは異なり、タイミング制御回路２２６からマスターデバイス１に対する割り込み（ＩＮＴＲ）信号が追加されている。
【００６９】
割り込み（ＩＮＴＲ）信号は、ＣＰＵ７によりアクティブまたは非アクティブに設定されても良く、また、ハードウェアにより送信ＦＩＦＯ２２２および受信ＦＩＦＯ２２４が空である場合はアクティブ、空ではない場合は非アクティブと自動設定されても良い。ここでは、ＣＰＵ７により設定される例を示す。
【００７０】
以下に、本実施形態の動作について説明する。ここでは、スレーブデバイス２が、４線同期式シリアル通信によりマスターデバイス１からプログラムをダウンロードする例について説明する。
【００７１】
図９および図１０に、マスターデバイス１側の動作を説明するフローチャートを示し、図１１および図１２に、スレーブデバイス２側の動作を説明するフローチャートを示す。
【００７２】
図９を参照すると、マスターデバイス１側では、ＣＰＵ１１は、プログラムのダウンロード処理を開始する場合（ステップ９０１）、まず、バースト信号をアクティブに設定する（ステップ９０２）。
【００７３】
次に、ＣＰＵ１１は、アドレスフィールドをデータフィールドとして扱うこととして送信データのフォーマットを変更し、プログラムの最初の１６ワード（３２バイト）分のデータを転送し（ステップ９０３）、スレーブデバイス２からのダウンロード要求の受信待ち状態に移行する（ステップ９０４）。
【００７４】
図１１を参照すると、スレーブデバイス２側では、リセットが解除された時または起動時に（ステップ１１０１）、ＣＰＵ２１は、ＲＯＭ２４上の起動用プログラムに基づく起動処理を行い、ＲＡＭ２５上のプログラムの有無を判定する（ステップ１１０２）。ＣＰＵ２１は、ＲＡＭ２５上にプログラムが存在すれば、ＲＡＭ２５上のプログラムを実行する（ステップ１１０３）。
【００７５】
ＣＰＵ２１は、ＲＡＭ２５上にプログラムが存在しなければ、マスターデバイス１にダウンロード要求を行うために、マスターデバイス１に対する割り込み（ＩＮＴＲ）信号をアクティブに設定し（ステップ１１０４）、ダウンロードデータの受信待ち状態に移行する（ステップ１１０５）。
【００７６】
図１０を参照すると、マスターデバイス１側では、図９のステップ９０４の状態で、割り込み（ＩＮＴＲ）信号がアクティブに設定されてダウンロード要求を受信すると（ステップ１００１）、ＣＰＵ１１は、プログラムの全データの転送が完了したかを判定する（ステップ１００２）。
【００７７】
ＣＰＵ１１は、プログラムの全データの転送が完了していれば、バースト信号を非アクティブに設定し（ステップ１００３）、スレーブデバイス２の処理時間を考慮して一定時間待機した後、スレーブデバイス２をリセットし（ステップ１００４）、ダウンロード処理を終了する（ステップ１００５）。
【００７８】
一方、ＣＰＵ１１は、プログラムの全データの転送が完了していなければ、再度、１６ワード（３２バイト）分のデータを転送し（ステップ１００６）、ダウンロード要求の受信待ち状態に移行する（ステップ１００７）。
【００７９】
図１２を参照すると、スレーブデバイス２側では、図１１のステップ１１０５の状態で、マスターデバイス１からのダウンロードデータを受信した場合（ステップ１２０１）、ＣＰＵ２１は、マスターデバイス１に対する割り込み（ＩＮＴＲ）信号を非アクティブに設定する（ステップ１２０２）。
【００８０】
次に、タイミング制御回路２２６は、バースト信号がアクティブであるかを判定し（ステップ１２０３）、バースト信号がアクティブでない場合、通常の通信処理の制御を行う（ステップ１２０４）。
【００８１】
一方、タイミング制御回路２２６は、バースト信号がアクティブである場合、マスターデバイス１からのアドレスフィールド内のデータを送信ＦＩＦＯ２２２に蓄積するとともに、これに続くデータフィールド内のデータを受信ＦＩＦＯ２２４に蓄積する。そして、ＣＰＵ２１は、タイミング制御回路２２６により割り込み（ＩＮＴＥＲＲＵＰＴ）信号がアクティブに設定されると、送信ＦＩＦＯ２２２および受信ＦＩＦＯ２２４内のデータを読み出してＲＡＭ２５上のプログラムエリアに転送し（ステップ１２０５）、プログラム有りフラグを設定し（ステップ１２０６）、マスターデバイス１に対する割り込み（ＩＮＴＲ）信号をアクティブに設定する（ステップ１２０７）。
【００８２】
その後、ＣＰＵ２１は、次のダウンロードデータの受信待ち状態に移行する（ステップ１２０８）。
【００８３】
上述したように本実施形態においては、マスターデバイス１とスレーブデバイス２との間で、確実に１６ワード（３２バイト）単位でプログラムの受信確認を行うことができる。
【００８４】
（第３の実施形態）
本実施形態の情報処理装置は、マスターデバイス１からスレーブデバイス２へのプログラムのダウンロード時に、プログラムのサイズ、チェックサムを含めたダウンロードの正当性を判断する処理を行うことにより、ハードウェア的なバースト信号を不要とするものである。
【００８５】
なお、本実施形態の情報処理装置は、第１の実施形態と比較して、スレーブデバイス２内の同期式シリアルインターフェース２２の内部構成が異なり、それ以外の構成は第１の実施形態と同様である。
【００８６】
図１３を参照すると、本実施形態に係る同期式シリアルインターフェース２２は、図８に示した第２の実施形態とは異なり、スレーブデバイス２内のＣＰＵ２２が、マスターデバイス１内のＣＰＵ１１からのコマンドに基づきバスインターフェース回路２２１を経由してタイミング制御回路２２６に対してバースト信号を設定している。また、マスターデバイス１に対する割り込み（ＩＮＴＲ）信号は、ＣＰＵ７によりアクティブに設定され、マスターデバイス１からデータを受信したときにハードウェア的に非アクティブにクリアされる構成をとる。
【００８７】
以下に、本実施形態の動作について説明する。ここでは、スレーブデバイス２が、４線同期式シリアル通信によりマスターデバイス１からプログラムをダウンロードする例について説明する。
【００８８】
図１４および図１５に、マスターデバイス１側の動作を説明するフローチャートを示し、図１６、図１７および図１８に、スレーブデバイス２側の動作を説明するフローチャートを示し、図１９に、スレーブデバイス２側の動作を説明するタイミングチャートを示す。なお、図１９において、ＣＳ、ＳＤＯはそれぞれマスターデバイス１から出力されるチップセレクト、出力データを示し、ＩＮＴＲはスレーブデバイス２から出力される割り込み（ＩＮＴＲ）信号を示す。また、図１９において、出力データＳＤＯにおけるＡ、Ｄはそれぞれアドレスフィールド、データアドレスフィールドとして扱われるフィールドを示す。
【００８９】
図１６を参照すると、スレーブデバイス２側では、リセットが解除された時または起動時に（ステップ１６０１）、ＣＰＵ２１は、ＲＯＭ２４上の起動用プログラムに基づく起動処理を行い、ＲＡＭ２５上のプログラムの有無を判定する（ステップ１６０２）。
【００９０】
ＣＰＵ２１は、ＲＡＭ２５上にプログラムが存在すれば、プログラム有りのフラグをセットしてマスターデバイス１へ起動通知を発行し（ステップ１６０３）、ＲＡＭ２５上のプログラムを実行する（ステップ１６０４）。
【００９１】
一方、ＣＰＵ２１は、ＲＡＭ２５上にプログラムが存在しなければ、プログラム無しのフラグをセットしてマスターデバイス１へ起動通知を発行し（ステップ１６０５）、ダウンロードデータの受信待ち状態に移行する（ステップ１６０６）。
【００９２】
図１４を参照すると、マスターデバイス１側では、ＣＰＵ１１は、スレーブデバイス２にて発行された起動通知の内容に基づいてダウンロードが必要か否かを判定し、必要であればダウンロード処理を開始する（ステップ１４０１）。
【００９３】
ＣＰＵ１１は、プログラムのダウンロードに先立ち、ダウンロードされるプログラムの情報をスレーブデバイス２に送信する（ステップ１４０２、図１９の時刻ｔ１〜ｔ２間）。本実施形態では、ＣＰＵ１１は、プログラム全体のチェックサムと、３２バイトを１ブロックとした総転送ブロック数とをプログラム情報として設定する。さらに、ＣＰＵ１１は、これ以外にも転送先のアドレスなどをプログラム情報として設定することも可能である。
【００９４】
ＣＰＵ１１は、プログラム情報を送信した後に、スレーブデバイス２内の同期式シリアルインターフェース２２をバーストモードに設定するためのバースト設定コマンドをスレーブデバイス２に送信する（ステップ１４０３、図１９の時刻ｔ３）。
【００９５】
その後、ＣＰＵ１１は、スレーブデバイス２からのダウンロード要求の受信待ち状態に移行する（ステップ１４０４）。
【００９６】
図１８を参照すると、スレーブデバイス２側では、ＣＰＵ２１は、マスターデバイス１からバースト設定コマンドを受信した場合（ステップ１８０１）、バス制御回路２７を介して同期式シリアルインターフェース２２をバーストモードに設定する（ステップ１８０２）。
【００９７】
その後、ＣＰＵ２１は、マスターデバイス１に対する割り込み（ＩＮＴＲ）信号をアクティブに設定し（ステップ１８０３、図１９の時刻ｔ４、時刻ｔ８）、バースト設定コマンドの受信処理を終了する（ステップ１８０４）。
【００９８】
図１５を参照すると、マスターデバイス１側では、図１４のステップ１４０４の状態で、割り込み（ＩＮＴＲ）信号がアクティブに設定されてダウンロード要求を受信したとする（ステップ１５０１、図１９の時刻ｔ４）。
【００９９】
すると、ＣＰＵ１１は、アドレスフィールドをデータフィールドとして扱うこととして送信データのフォーマットを変更し、プログラムを１ブロック分転送し（ステップ１５０２、図１９の時刻ｔ５〜ｔ７間、ｔ９〜ｔ１１間）、全ブロックのプログラムの転送が完了したかを判定する（ステップ１５０３）。全ブロックの転送が完了していなければ、ダウンロード要求の受信待ち状態に移行する（ステップ１５０４）。
【０１００】
一方、ＣＰＵ１１は、全ブロックの転送が完了してれば、スレーブデバイス２の処理時間を考慮して一定時間待機した後（ステップ１５０５）、スレーブデバイス２をリセットし、ダウンロード処理を終了する（ステップ１５０６）。
【０１０１】
図１７を参照すると、スレーブデバイス２側では、図１６のステップ１６０６の状態で、マスターデバイス１からのダウンロードデータを受信した場合（ステップ１７０１）、タイミング制御回路２２６は、マスターデバイス１からのアドレスフィールド内のデータを送信ＦＩＦＯ２２２に蓄積するとともに、これに続くデータフィールド内のデータを受信ＦＩＦＯ２２４に蓄積する。ＣＰＵ２１は、タイミング制御回路２２６により割り込み（ＩＮＴＥＲＲＵＰＴ）信号がアクティブに設定されると、受信データをＲＡＭ２５上のプログラムエリアに転送する（ステップ１７０２）。
【０１０２】
次に、ＣＰＵ２１は、予めプログラム情報として通知されていた全ブロック数の受信が完了したかを判定し（ステップ１７０３）、完了していない場合はマスターデバイス１に対する割り込み（ＩＮＴＲ）信号をアクティブに設定し（ステップ１７０４、図１９の時刻ｔ８）、次のブロックのダウンロードデータの受信待ち状態に移行する（ステップ１７０５）。
【０１０３】
一方、ＣＰＵ２１は、全ブロック数の受信が完了している場合は、チェックサムの計算を行い、計算が正しいかを判定する（ステップ１７０６）。チェックサムの計算が正しければ、プログラム有りフラグを設定し（ステップ１７０７）、ダウンロード処理を終了し、リセット待ち状態に移行する（ステップ１７０８）。このとき、マスターデバイス１に対する割り込み（ＩＮＴＲ）信号をアクティブに設定していないため、マスターデバイス１側では、全ブロック数のダウンロードが行われたことを知ることができる（図１９の時刻ｔ１２）。
【０１０４】
また、ＣＰＵ２１は、チェックサムの計算が間違っている場合は、プログラム有りフラグを設定せずに、ダウンロード処理を終了する
上述したように本実施形態においては、プログラムのダウンロード時に、プログラムのサイズ、チェックサムを含む処理を行うため、ダウンロードの正当性の向上を図ることができる。
【図面の簡単な説明】
【０１０５】
【図１】本発明の情報処理装置を示す図である。
【図２】本発明の第１の実施形態に係る同期式シリアルインターフェースを示す図である。
【図３】本発明の第１の実施形態において、マスターデバイス側の動作の一例を説明するタイミングチャートである。
【図４】本発明の第１の実施形態において、マスターデバイス側の動作の一例を説明するフローチャートである。
【図５】本発明の第１の実施形態において、スレーブデバイス側の動作の一例を説明するフローチャートである。
【図６】本発明の第１の実施形態において、スレーブデバイス側の動作の他の例を説明するフローチャートである。
【図７】本発明の第１の実施形態において、スレーブデバイス側の動作の一例を説明するタイミングチャートである。
【図８】本発明の第２の実施形態に係る同期式シリアルインターフェースを示す図である。
【図９】本発明の第２の実施形態において、マスターデバイス側の動作の一例を説明するフローチャートである。
【図１０】本発明の第２の実施形態において、マスターデバイス側の動作の他の例を説明するフローチャートである。
【図１１】本発明の第２の実施形態において、スレーブデバイス側の動作の一例を説明するフローチャートである。
【図１２】本発明の第２の実施形態において、スレーブデバイス側の動作の他の例を説明するフローチャートである。
【図１３】本発明の第３の実施形態に係る同期式シリアルインターフェースを示す図である。
【図１４】本発明の第３の実施形態において、マスターデバイス側の動作の一例を説明するフローチャートである。
【図１５】本発明の第３の実施形態において、マスターデバイス側の動作の他の例を説明するフローチャートである。
【図１６】本発明の第３の実施形態において、スレーブデバイス側の動作の一例を説明するフローチャートである。
【図１７】本発明の第３の実施形態において、スレーブデバイス側の動作の他の例を説明するフローチャートである。
【図１８】本発明の第３の実施形態において、スレーブデバイス側の動作のさらに他の例を説明するフローチャートである。
【図１９】本発明の第３の実施形態において、スレーブデバイス側の動作を簡略化して説明するタイミングチャートである。
【図２０】本従来例の情報処理装置を示す図である。
【図２１】本従来例に係る同期式シリアルインターフェースを示す図である。
【図２２】本従来例において、マスターデバイス側の動作の一例を説明するタイミングチャートである。
【図２３】本従来例において、マスターデバイス側の動作の他の例を説明するタイミングチャートである。
【図２４】本従来例において、スレーブデバイス側の動作の一例を説明するタイミングチャートである。
【符号の説明】
【０１０６】
１    マスターデバイス
２，３    スレーブデバイス
４    ＲＦ部（ＧＳＭ方式）
５    ＲＦ部（Ｗ-ＣＤＭＡ方式）
６    アンテナ
７    通信路・制御信号線
１１    ＣＰＵ
１２    同期式シリアルインターフェース（ＳＳＩ）
２１    ＣＰＵ
２２    同期式シリアルインターフェース（ＳＳＩ）
２３    ベースバンド処理部（ＧＳＭ方式）
２４    ＲＯＭ
２５    ＲＡＭ
２６    ベースバンド処理部（Ｗ-ＣＤＭＡ方式）
２７    バス制御回路
２２１    バスインターフェース回路
２２２    送信ＦＩＦＯ
２２３    送信回路
２２４    受信ＦＩＦＯ
２２５    受信回路
２２６    タイミング制御回路
【図１】
2005056106.tif 000003
【図２】
2005056106.tif 000004
【図３】
2005056106.tif 000005
【図４】
2005056106.tif 000006
【図５】
2005056106.tif 000007
【図６】
2005056106.tif 000008
【図７】
2005056106.tif 000009
【図８】
2005056106.tif 000010
【図９】
2005056106.tif 000011
【図１０】
2005056106.tif 000012
【図１１】
2005056106.tif 000013
【図１２】
2005056106.tif 000014
【図１３】
2005056106.tif 000015
【図１４】
2005056106.tif 000016
【図１５】
2005056106.tif 000017
【図１６】
2005056106.tif 000018
【図１７】
2005056106.tif 000019
【図１８】
2005056106.tif 000020
【図１９】
2005056106.tif 000021
【図２０】
2005056106.tif 000022
【図２１】
2005056106.tif 000023
【図２２】
2005056106.tif 000024
【図２３】
2005056106.tif 000025
【図２４】
2005056106.tif 000026