(57)【要約】【課題】複数のブート手順を有し、かつ装置への悪意ある改ざんを防止。【解決手段】ＶＤＤに第一の端を接続され、入力端子が第二の端に接続され、該入力端子からのＩｎｐｕｔ  Ａ６００を受けて電源線ＶＤＤからの電力を第三の端にスイッチングするＮＭＯＳトランジスタ６０１と、ＮＭＯＳトランジスタ６０１の第三の端に接続され、スイッチングでＶＤＤから一定時間電圧が印加されると導通状態になる電気ヒューズ６０２と、電気ヒューズ６０２に一端を接続され、他端はアースされている抵抗６０３と、電気ヒューズ６０２と抵抗６０３との間に設けられた出力端子とを含む判定回路を備え、電源投入後、メモリ上に実行コードが存しないとき、判定回路の入力端子にＩｎｐｕｔ  Ａ６００を入力し、該入力時に出力端子からのＯｕｔｐｕｔ６０４の高低を判定し、Ｏｕｔｐｕｔ６０４が低の場合、シリアルインターフェースから実行コードを取得し起動する。【選択図】図６
2011180819.tif 000002
【特許請求の範囲】
【請求項１】
メモリとのインターフェース及びシリアルインターフェースを有し、該メモリ又は該シリアルインターフェースから実行コードを取得して起動するＣＰＵにおいて、
電源線に第一の端を接続され、入力端子が第二の端に接続され、該入力端子からの信号を受けて前記電源線からの電力を第三の端にスイッチングするＮＭＯＳトランジスタと、
該ＮＭＯＳトランジスタの前記第三の端に接続され、前記スイッチングで前記電源線から一定時間電圧が印加されると非導通状態から導通状態になる素子である電気ヒューズと、
該電気ヒューズに一端を接続され、他端はアースされている抵抗と、
前記電気ヒューズと前記抵抗との間に設けられた出力端子と、
を含む判定回路を備え、
電源投入後、前記メモリ上に前記実行コードが存しないとき、前記判定回路の前記入力端子に前記スイッチングのトリガとなる信号を入力し、該入力時に前記出力端子からの信号電圧の高低を判定し、該信号電圧が低の場合に、前記シリアルインターフェースから前記実行コードを取得して起動することを特徴とするＣＰＵ。
【請求項２】
前記判定回路は、前記入力端子のほかに、別途入力端子と、前記入力端子と前記別途入力端子からの入力をＡＮＤして前記ＮＭＯＳトランジスタの前記第二の端に受け渡すＡＮＤ回路と、前記別途入力端子への入力をオン・オフするスイッチとを備え、
前記スイッチをオフにすることで、前記入力端子に前記スイッチングのトリガとなる信号が入力された時の前記出力端子からの信号電圧が常に低となることを特徴とする請求項１に記載のＣＰＵ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のブート手順を有し、かつ第三者による装置への悪意ある改ざんを防止し得るＣＰＵに関する。
【背景技術】
【０００２】
携帯電話等の組み込み装置ではＣＰＵ（Central Processing Unit）がメモリから実行コードを読み取り、処理を実行している。また、ＦｌａｓｈメモリにはＣＰＵが実行するためのコードが記録されている。
【０００３】
Ｆｌａｓｈメモリは不揮発性のメモリで電源が切られている状態でもデータが消去されないメモリである。
【０００４】
Ｆｌａｓｈメモリには事前にデータを記録しておくことで、ＣＰＵに電源が投入され、リセットが解除されるとＣＰＵはＦｌａｓｈメモリから実行コードを読出し、コードにしたがって処理を進めていく。よって、Ｆｌａｓｈメモリにデータが記録されていなければＣＰＵは処理を進めることができない。事前にＦｌａｓｈメモリにデータを記録する方法としては、ＲＯＭライタによる書込みがあげられる。ＲＯＭライタはＦｌａｓｈメモリが装置基板に実装される前にデータを書き込むための機器である。
【０００５】
しかし、Ｆｌａｓｈメモリを含む部品を装置の基板へ実装する場合は一回のリフローにするのが一般的である（各部品ともリフロー回数に制限があるため）。
【０００６】
よって、Ｆｌａｓｈメモリだけを他の部品を実装した後に、後日実装しなおすということはないため、実装する日程に合わせて、事前にデータ書込みが完了しているＦｌａｓｈメモリを用意しなければならない。
【０００７】
また、ＲＯＭライタが書き込みをしたいＦｌａｓｈメモリへ対応していない場合は新たに開発しなければならないという不都合がある。そこでＣＰＵによってはメモリ以外のＵＡＲＴ(Universal Asynchronous Receiver Transmitter)のようなシリアルインターフェースからのブート（起動）もサポートしている。
【０００８】
例えば、ＴＩ（登録商標）社製ＯＭＡＰ（登録商標）３５３０ではメモリを使ったブートの他にＵＳＢやＵＡＲＴを使ったブートが可能である。この機能はＦｌａｓｈメモリに何も記録されていない場合に、ＵＳＢやＵＡＲＴを使ってＣＰＵをブートし、ブートしてからＦｌａｓｈメモリへＣＰＵを用いて記録させるための機能である。しかし、外部からＦｌａｓｈメモリへの書込みを可能としていると、携帯電話等の装置に本来記録されているべきデータが改ざんされる恐れがある。
【０００９】
特許文献１には、フラッシュメモリに記録されたブートプログラムをＣＰＵに実行させるコンピュータの起動システム及びデータ記憶装置の発明が開示されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００５−１０７９３８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１に開示されている発明は、フラッシュメモリにブートプログラムが記録されていない場合、装置を起動できないという問題点があった。
【００１２】
また、フラッシュメモリにブートプログラムが記録されている場合でも、他の媒体等によって自由に起動できるようにすると、第三者による装置に悪意のある改ざんをされるおそれがあった。
【００１３】
本発明は上記に鑑みてなされたもので、複数のブート手順を有し、かつ第三者による装置への悪意ある改ざんを防止し得るＣＰＵを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述の問題を解決するため、本発明に係るＣＰＵは、メモリとのインターフェース及びシリアルインターフェースを有し、該メモリ又は該シリアルインターフェースから実行コードを取得して起動するＣＰＵにおいて、電源線に第一の端を接続され、入力端子が第二の端に接続され、該入力端子からの信号を受けて前記電源線からの電力を第三の端にスイッチングするＮＭＯＳトランジスタと、該ＮＭＯＳトランジスタの前記第三の端に接続され、前記スイッチングで前記電源線から一定時間電圧が印加されると非導通状態から導通状態になる素子である電気ヒューズと、該電気ヒューズに一端を接続され、他端はアースされている抵抗と、前記電気ヒューズと前記抵抗との間に設けられた出力端子と、を含む判定回路を備え、電源投入後、前記メモリ上に前記実行コードが存しないとき、前記判定回路の前記入力端子に前記スイッチングのトリガとなる信号を入力し、該入力時に前記出力端子からの信号電圧の高低を判定し、該信号電圧が低の場合に、前記シリアルインターフェースから前記実行コードを取得して起動することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、複数のブート手順を有し、かつ第三者による装置への悪意ある改ざんを防止し得るＣＰＵを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第一の実施の形態に係る携帯電話等の組み込み装置のブロック図である。
【図２】本発明の第二の実施の形態に係る携帯電話等の組み込み装置のブロック図である。
【図３】本発明の第一の実施の形態の動作を示すフローチャートである。
【図４】本発明の第一の実施の形態の動作を示すフローチャートである。
【図５】本発明の第二の実施の形態におけるシリアルインターフェース又はＦｌａｓｈメモリのいずれでブート処理をするかを判定する回路図である。
【図６】本発明の第一の実施の形態におけるシリアルインターフェース又はＦｌａｓｈメモリのいずれでブート処理をするかを判定する回路図である。
【発明を実施するための形態】
【００１７】
[第一の実施の形態]
以下、図面を参照しながら、本発明の第一の実施の形態について詳細に説明する。ここで、図１は、本発明の第一の実施の形態に係る携帯電話等の組み込み装置のブロック図である。
【００１８】
携帯端末等である装置１００の中で、ＣＰＵ１０１はＦｌａｓｈメモリ１０３とＤＲＡＭ１０４に接続されている。Ｆｌａｓｈメモリ１０３は主に実行コード等が電源ＯＦＦの状態でも記録されている。そのため、ＣＰＵ１００は、Ｆｌａｓｈメモリ１０３及びＤＲＡＭ１０４とのインターフェースを備える。
【００１９】
ＣＰＵ１０１にはシリアルインターフェース１０２が組み込まれており、ＣＰＵ１０１はＦｌａｓｈメモリ１０３に記録されているブートコードもしくはシリアルインターフェース１０２から受信するデータによってブートできるものとする。
【００２０】
ＤＲＡＭ１０４は本発明とは直接関係ないが、ＣＰＵ１０１が起動するためのワーク領域として読み書き可能なＲＡＭとして図１に記載した。例えば、シリアルインターフェース１０２でブートする場合は、ＣＰＵ１０１はシリアルインターフェース１０２から受信したデータをＤＲＡＭ１０４へコピーし、ＤＲＡＭ１０４上で受信した実行コードを処理し、ブートすることが可能である。
【００２１】
図６は、本発明の第一の実施の形態におけるＣＰＵ１０１の内部にあって、シリアルインターフェース又はＦｌａｓｈメモリのいずれでブート処理をするかを判定する回路図である。
【００２２】
本実施の形態では、ＣＰＵ１０１はＦｌａｓｈメモリ１０３からのブート又はシリアルインターフェース１０２から受信したデータでブートするのだが、そのいずれのブート処理をするかを、図６の回路で判定するわけである。
【００２３】
図６によると、判定回路は、電源線であるＶＤＤに第一の端を接続され、入力端子が第二の端に接続され、該入力端子からの信号であるＩｎｐｕｔ  Ａ６００を受けて電源線からの電力を第三の端にスイッチングするＮＭＯＳトランジスタ６０１と、ＮＭＯＳトランジスタ６０１の第三の端に接続され、スイッチングで電源線ＶＤＤから一定時間電圧が印加されると非導通状態から導通状態になる素子である電気ヒューズ６０２と、電気ヒューズ６０２に一端を接続され、他端はアースされている抵抗６０３と、電気ヒューズ６０２と抵抗６０３との間に設けられた出力端子とを備える。
【００２４】
電気ヒューズ６０２は電圧を両端に印加することで非導通状態から一定時間で導通状態となる素子であり、いったん導通状態になると、電圧が印加されなくなっても、導通状態を維持する。
【００２５】
初期状態で電気ヒューズ６０２は非導通状態となっており、Ｉｎｐｕｔ  Ａ６００  ＝  Ｌｏｗ（低）の場合は非導通状態を維持するためＰｕｌｌＤｏｗｎ抵抗６０３により、出力端子からの信号であるＯｕｔｐｕｔ６０４は、Ｏｕｔｐｕｔ＝Ｌｏｗ（低）となる。ここでＮＭＯＳトランジスタ６０１をスイッチングのトリガとなる信号としてＩｎｐｕｔ  Ａ６００＝Ｈｉとなった場合、ＮＭＯＳトランジスタ６０１はＯＮとなり電源線であるＶＤＤから電流が流れ、一定時間後に電気ヒューズ６０２は導通状態となり、出力端子からの信号であるＯｕｔｐｕｔ６０４は、Ｏｕｔｐｕｔ  ＝  Ｈｉ（高）となる。
【００２６】
なお、Ｏｕｔｐｕｔ＝Ｌｏｗ（低）及び、Ｏｕｔｐｕｔ＝  Ｈｉ（高）は、出力端子からの信号の電圧の高低である。
【００２７】
[第一の実施の形態の動作の説明]
図３及び図４を用いて第一の実施の形態の動作の説明をする。ここで、図３及び図４は、第一の実施の形態の動作を示すフローチャートである。
【００２８】
図３によると、装置１００に電源が投入され（Ｓ３００）、ＣＰＵ１０１がリセット解除された（Ｓ３０１）後、ＣＰＵ１０１はメモリの０番地を読出し（Ｓ３０２）、実行コードが存在するならば（Ｓ３０３）順次コードを処理していき（Ｓ３０４）、装置は起動する（Ｓ３０５）。
【００２９】
ここでいうメモリの０番地とはＦｌａｓｈメモリの０番地を指す。よって、Ｆｌａｓｈメモリに実行可能なデータが記録されていない場合は、実行可能なデータが無い場合の処理に遷移する（Ｓ３０３）。
【００３０】
実行可能なデータがない場合は、図４の説明に記述する起動判定処理（Ｓ３０６）を実施する。起動判定処理（Ｓ３０６）の結果、一回目の起動か、一回目の起動ではないかを判断する（Ｓ３０７）。ここで、一回目の起動ではないと判断すると、起動はできない（Ｓ３０８）。これは、装置に悪意のある改ざんをされないための処置である。
【００３１】
起動判定処理（Ｓ３０６）の結果、一回目の起動と判断された場合、シリアルインターフェースによるブート処理に移り、シリアルインターフェースから実行可能なデータを受信し、装置は起動する（Ｓ３０９）。
【００３２】
次に図４を用いて、起動判定処理（Ｓ３０６）について説明する。起動処理判定がＳｔａｒｔ（Ｓ４００）した後、内部信号であるＩｎｐｕｔ  ＡをＨｉ状態にする（Ｓ４０１）。
【００３３】
図６に示すとおりＩｎｐｕｔ  Ａ＝ＨｉとなるとＯｕｔｐｕｔがＨｉかＬｏｗかいずれかの状態になる。Ｉｎｐｕｔ  ＡをＨｉ状態にした入力時のＯｕｔｐｕｔ６０４の状態を判定し（Ｓ４０２）、Ｏｕｔｐｕｔ＝Ｌｏｗと判定された場合は一回目の起動と判断する（Ｓ４０３）。
【００３４】
一回目の起動と判断された場合、一定時間経過後に電気ヒューズ６０２は非導通状態から導通状態へと変化する。
【００３５】
導通状態へ変化するとＯｕｔｐｕｔはＨｉ状態となるため、一回目の起動と判断した場合はＯｕｔｐｕｔ＝ＨｉとなるまでＷａｉｔし（Ｓ４０４）、電流を流し続けないためにＩｎｐｕｔ  ＡをＬｏｗとし（Ｓ４０６）、起動判定処理（Ｓ３０６）を終了する。
【００３６】
Ｏｕｔｐｕｔの判定処理（Ｓ４０２）にてＬｏｗとなった場合は、二回目以降の起動と判定し（Ｓ４０５）、一回目の起動と判定した場合と同様にＩｎｐｕｔ  Ａ＝Ｌｏｗとし（Ｓ４０６）、起動判定処理（Ｓ３０６）を終了する。
【００３７】
[第二の実施の形態]
開発途中では、シリアルインターフェース１０２におけるブートでＦｌａｓｈメモリ１０３への書込みを実施したい場合がある。例えば、誤ってＦｌａｓｈメモリ１０３を消去してしまった場合であるが、そのような場合、シリアルインターフェース１０２におけるブートが使用できる。
【００３８】
第一の実施の形態では、シリアルインターフェース１０２におけるブートは初めてＦｌａｓｈメモリ１０３へ書き込みをする場合となっているため、Ｆｌａｓｈメモリ１０３への書込み処理が終了した場合には電気ヒューズ６０２にてシリアルインターフェース１０２におけるブートを実施できないようにしていたが、ＣＰＵ１０１に外部から入力できるＰＩＮによる判定をつけることで、一回目のＦｌａｓｈメモリ１０３への書込み処理が完了しても、Ｆｌａｓｈメモリ１０３を消去すればＦｌａｓｈメモリ１０３に実行可能なデータが記録されていないので、シリアルインターフェース１０２を用いたブートが可能である。
【００３９】
図２は本発明の第二の実施の形態に係る携帯電話等の組み込み装置のブロック図である。図１と違い、ＣＰＵ１０１は外部からの入力ＰＩＮであるＩｎｐｕｔ  Ｂ２０１を備える。Ｉｎｐｕｔ  Ｂ２０１は装置１００上に配置したスイッチ２００にてＨｉ（高）若しくはＬｏｗ(低)又はオン若しくはオフの選択が可能とする。
【００４０】
Ｉｎｐｕｔ  Ｂ２０１＝Ｈｉ又はオンの場合は、第一の実施の形態の動作の説明と同じ結果が得られるが、Ｉｎｐｕｔ  Ｂ２０１＝Ｌｏｗの場合は常に第一の実施の形態の動作の説明における一回目の動作となり、Ｆｌａｓｈメモリ１０３に実行可能なデータが記録されていない場合は常にシリアルインターフェース１０２によるブートが可能となる。
【００４１】
よって開発時はＩｎｐｕｔ  Ｂ２０１  ＝  Ｌｏｗ又はオフとしておくことで、ＣＰＵ１０１内の電気ヒューズ６０２は導通することはない。
【００４２】
図５は第二の実施の形態におけるＣＰＵ１０１の内部にあって、シリアルインターフェース１０２又はＦｌａｓｈメモリ１０３のいずれでブート処理をするかを判定する回路図である。図６との違いは図２におけるＩｎｐｕｔ  Ｂ２０１と、Ｉｎｐｕｔ  Ａ６００とＩｎｐｕｔ  Ｂ２０１のＡＮＤをとるＡＮＤ素子５００が追加されている点である。ＡＮＤ素子５００は、Ｉｎｐｕｔ  Ａ及びＩｎｐｕｔ  Ｂの各入力をＡＮＤしてＮＭＯＳトランジスタ６０１の第二の端に受け渡す。
【００４３】
第一の実施の形態では内部信号であるＩｎｐｕｔ  Ａ６００の状態によって、電気ヒューズ６０２が導通状態になるかを決定していたが、第二の実施の形態ではそれに加え外部信号であるＩｎｐｕｔ  Ｂの状態とのＡＮＤを取る点が異なる。
【００４４】
Ｉｎｐｕｔ  Ａ＝Ｈｉとなった場合でも外部信号Ｉｎｐｕｔ  Ｂ＝Ｌｏｗ又はオフならば、電気ヒューズ６０２は導通されない。したがって、スイッチングのトリガとなる信号が入力された時、言い換えれば、Ｉｎｐｕｔ  Ａ＝Ｈｉの時、出力端子からの信号電圧であるＯｕｔｐｕｔ６０４が、常にＬｏｗ（低）となる。
【００４５】
ここでＦｌａｓｈメモリ１０３に実行可能なデータが記録されていない場合は、シリアルインターフェースブート処理となる。
【産業上の利用可能性】
【００４６】
本発明は、ＣＰＵを備えた携帯機器に用いることができる。
【符号の説明】
【００４７】
１００  装置
１０１  ＣＰＵ
１０２  シリアルインターフェース
１０３  Ｆｌａｓｈメモリ
１０４  ＤＲＡＭ
２００  スイッチ
２０１  Ｉｎｐｕｔ  Ｂ
５００  ＡＮＤ素子
６００  Ｉｎｐｕｔ  Ａ
６０１  ＮＭＯＳトランジスタ
６０２  電気ヒューズ
６０３  抵抗
６０４  Ｏｕｔｐｕｔ
【図１】
2011180819.tif 000003
【図２】
2011180819.tif 000004
【図３】
2011180819.tif 000005
【図４】
2011180819.tif 000006
【図５】
2011180819.tif 000007
【図６】
2011180819.tif 000008