(57)【要約】【課題】誤動作を抑制する。【解決手段】信号処理回路１００は、マイクロコントローラ２００と不揮発性メモリ１０２を備える。不揮発性メモリ１０２は、マイクロコントローラ２００のプロセッサ２０２が実行するプログラムを格納する。ローダ２０６は、不揮発性メモリ１０２からプログラムを読み出し、揮発性メモリ２０４に書き込む。ローダ２０６は、揮発性メモリ２０４に書き込まれたプログラムを不揮発性メモリ１０２に格納されるプログラムと比較し、異常を検出する比較器２２０を含む。【選択図】図２
2017207931.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
揮発性メモリと、
前記プロセッサが実行するプログラムを格納する不揮発性メモリと、
前記不揮発性メモリから前記プログラムを読み出し、前記揮発性メモリに書き込むローダと、
を備え、
前記ローダは、前記揮発性メモリに書き込まれた前記プログラムを前記不揮発性メモリに格納される前記プログラムと比較し、異常を検出する比較器を含むことを特徴とする信号処理回路。
【請求項２】
前記比較器は、異常を検出すると前記プロセッサをリセットすることを特徴とする請求項１に記載の信号処理回路。
【請求項３】
前記不揮発性メモリに格納されるプログラムは、エラー検出コードを含んでおり、
前記ローダは、前記不揮発性メモリから読み出した前記プログラムに含まれるエラー検出コードにもとづいて、通信エラーを検出するエラー検出器をさらに含むことを特徴とする請求項１または２に記載の信号処理回路。
【請求項４】
前記エラー検出器は、前記通信エラーを検出すると、前記ローダに前記プログラムの再ロードを促すことを特徴とする請求項３に記載の信号処理回路。
【請求項５】
前記エラー検出器は、前記通信エラーを検出すると前記プロセッサをリセットすることを特徴とする請求項３または４に記載の信号処理回路。
【請求項６】
プロセッサと、
揮発性メモリと、
前記プロセッサが実行するプログラムを格納する不揮発性メモリと、
前記不揮発性メモリから前記プログラムを読み出し、前記揮発性メモリに書き込むローダと、
を備え、
前記不揮発性メモリに格納されるプログラムは、エラー検出コードを含んでおり、
前記ローダは、前記不揮発性メモリから読み出した前記プログラムに含まれるエラー検出コードにもとづいて、通信エラーを検出するエラー検出器を含むことを特徴とする信号処理回路。
【請求項７】
前記エラー検出器は、前記通信エラーを検出すると、前記ローダに前記プログラムの再ロードを促すことを特徴とする請求項６に記載の信号処理回路。
【請求項８】
前記エラー検出器は、前記通信エラーを検出すると、前記プロセッサをリセットすることを特徴とする請求項６または７に記載の信号処理回路。
【請求項９】
前記プロセッサ、前記揮発性メモリおよび前記ローダは、第１半導体チップに集積化され、
前記第１半導体チップと前記不揮発性メモリが集積化される第２半導体チップは、ひとつのモジュールに内蔵されることを特徴とする請求項１から８のいずれかに記載の信号処理回路。
【請求項１０】
デバイスにバス電圧を供給するホストであって、
ケーブルが着脱可能に接続されるレセプタクルと、
前記バス電圧を生成する電源回路と、
前記電源回路の出力と前記レセプタクルの間に設けられるスイッチと、
前記デバイスと通信し、前記バス電圧の電圧レベルをネゴシエートするとともに、前記スイッチを制御する請求項１から９のいずれかに記載の信号処理回路と、
を備えることを特徴とするホスト。
【請求項１１】
ホストからバス電圧を受けるデバイスであって、
ケーブルが着脱可能に接続されるレセプタクルと、
前記バス電圧を受ける負荷回路と、
前記負荷回路の入力と前記レセプタクルの間に設けられるスイッチと、
前記ホストと通信し、前記バス電圧の電圧レベルをネゴシエートするとともに、前記スイッチを制御する請求項１から９のいずれかに記載の信号処理回路と、
を備えることを特徴とするデバイス。
【請求項１２】
不揮発性メモリと接続され、前記不揮発性メモリに格納されるプログラムを実行するマイクロコントローラであって、
プロセッサと、
揮発性メモリと、
前記不揮発性メモリから前記プログラムを読み出し、前記揮発性メモリに書き込むローダと、
を備え、
前記ローダは、前記揮発性メモリに書き込まれた前記プログラムを前記不揮発性メモリに格納される前記プログラムと比較し、異常を検出する比較器を含むことを特徴とするマイクロコントローラ。
【請求項１３】
前記比較器は、異常を検出すると前記プロセッサをリセットすることを特徴とする請求項１２に記載のマイクロコントローラ。
【請求項１４】
前記不揮発性メモリに格納される前記プログラムは、エラー検出コードを含んでおり、
前記ローダは、前記不揮発性メモリから読み出した前記プログラムに含まれるエラー検出コードにもとづいて、通信エラーを検出するエラー検出器をさらに含むことを特徴とする請求項１２または１３に記載のマイクロコントローラ。
【請求項１５】
前記エラー検出器は、前記通信エラーを検出すると、前記ローダに前記プログラムの再ロードを促すことを特徴とする請求項１４に記載のマイクロコントローラ。
【請求項１６】
前記エラー検出器は、前記通信エラーを検出すると前記プロセッサをリセットすることを特徴とする請求項１４または１５に記載のマイクロコントローラ。
【請求項１７】
不揮発性メモリと接続され、前記不揮発性メモリに格納されるプログラムを実行するマイクロコントローラであって、
プロセッサと、
揮発性メモリと、
前記不揮発性メモリから前記プログラムを読み出し、前記揮発性メモリに書き込むローダと、
を備え、
前記揮発性メモリに格納されるプログラムは、エラー検出コードを含んでおり、
前記ローダは、前記不揮発性メモリから読み出した前記プログラムに含まれるエラー検出コードにもとづいて、通信エラーを検出するエラー検出器をさらに含むことを特徴とするマイクロコントローラ。
【請求項１８】
前記エラー検出器は、前記通信エラーを検出すると、前記ローダに前記プログラムの再ロードを促すことを特徴とする請求項１７に記載のマイクロコントローラ。
【請求項１９】
前記エラー検出器は、前記通信エラーを検出すると前記プロセッサをリセットすることを特徴とする請求項１７または１８に記載のマイクロコントローラ。
【請求項２０】
ひとつの半導体チップに集積化されることを特徴とする請求項１２から１９のいずれかに記載のマイクロコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリおよびプロセッサを備えるマイクロコントローラに関する。
【背景技術】
【０００２】
さまざまな電子機器に、ＣＰＵ（Central Processing Unit）２を備える演算処理システムが用いられる。ＣＰＵ２が実行するプログラムおよび各種データは、ＲＯＭ（Read Only Memory）４ｐに格納される。図１（ａ）、（ｂ）は、本発明者が検討した演算処理システムのブロック図である。図１（ａ）の演算処理システム１ｒにおいて、ＲＯＭ（Read Only Memory）４ｐは、プロセッサ２のＣＰＵバス６に対応したパラレルインタフェースを備える。
【０００３】
近年、省スペース化、少ピン化の要求から、パラレルインタフェースのＲＯＭ４ｐからシリアルインタフェースのＲＯＭ４ｓへの置き換えが進んでいる。ＣＰＵ２はシリアルインタフェースのＲＯＭ４ｓに直接アクセスすることはできない。そこで図１（ｂ）の演算処理システム１ｓは、ＲＡＭ（Random Access Memory）８をさらに備える。ＲＡＭ８は、Ｉ２Ｃ（Inter IC）インタフェースやＳＰＩ（Serial Peripheral Interface）などのシリアルインタフェースを備えており、ＲＯＭ４ｓのデータは、一旦ＲＡＭ８に読み出され、ＣＰＵ２は、ＣＰＵバス６を介して、ＲＡＭ８に格納されるデータにアクセスする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１２９０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
図１（ｂ）のアーキテクチャでは、ＲＯＭ４ｓからＲＡＭ８にプログラムをロードする際に、何らかの通信エラーが生ずると、ＲＡＭ８に正しいプログラムを読み出すことができず、誤ったプログラムをＣＰＵ２が実行すると、システムが異常動作するという問題がある。
【０００６】
本発明は係る課題に鑑みてなされたものであり、そのある態様の例示的な目的のひとつは、誤動作を抑制可能なマイクロコントローラおよび信号処理回路の提供にある。
【課題を解決するための手段】
【０００７】
本発明のある態様は、信号処理回路に関する。信号処理回路は、プロセッサと、揮発性メモリと、プロセッサが実行するプログラムを格納する不揮発性メモリと、不揮発性メモリからプログラムを読み出し、揮発性メモリに書き込むローダと、を備える。ローダは、揮発性メモリに書き込まれたプログラムを不揮発性メモリに格納されるプログラムと比較し、異常を検出する比較器を含む。
【０００８】
この態様によると、揮発性メモリの故障および異常や、不揮発性メモリから揮発性メモリにプログラムをロードする際の通信エラー等に起因するプログラムの破壊を検出でき、誤動作を防止できる。
【０００９】
比較器は、異常を検出するとプロセッサをリセットしてもよい。これにより、システムを再起動し、プロセッサが壊れたプログラムを実行し続けるのを防止できる。
【００１０】
不揮発性メモリに格納されるプログラムは、エラー検出コードを含んでもよい。ローダは、不揮発性メモリから読み出したプログラムに含まれるエラー検出コードにもとづいて、通信エラーを検出するエラー検出器をさらに含んでもよい。
これにより、不揮発性メモリから揮発性メモリにプログラムをロードする際の通信エラーを検出でき、信頼性を高めることができる。
【００１１】
エラー検出器は、通信エラーを検出すると、ローダにプログラムの再ロードを促してもよい。エラー検出器は、通信エラーを検出するとプロセッサをリセットしてもよい。
【００１２】
本発明の別の態様もまた、信号処理回路である。この信号処理回路は、プロセッサと、揮発性メモリと、プロセッサが実行するプログラムを格納する不揮発性メモリと、不揮発性メモリからプログラムを読み出し、揮発性メモリに書き込むローダと、を備える。不揮発性メモリに格納されるプログラムは、エラー検出コードを含んでおり、ローダは、不揮発性メモリから読み出したプログラムに含まれるエラー検出コードにもとづいて、通信エラーを検出するエラー検出器を含む。
【００１３】
この態様によると、不揮発性メモリから揮発性メモリにプログラムをロードする際の通信エラーを検出でき、信頼性を高めることができる。
【００１４】
プロセッサ、揮発性メモリおよびローダは、第１半導体チップに集積化され、第１半導体チップと不揮発性メモリが集積化される第２半導体チップは、ひとつのモジュールに内蔵されてもよい。
「集積化」とは、回路の構成要素のすべてが半導体基板上に形成される場合や、回路の主要構成要素が一体集積化される場合が含まれ、回路定数の調節用に一部の抵抗やキャパシタなどが半導体基板の外部に設けられていてもよい。
【００１５】
本発明の別の態様は、デバイスにバス電圧を供給するホストに関する。ホストは、ケーブルが着脱可能に接続されるレセプタクルと、バス電圧を生成する電源回路と、電源回路の出力とレセプタクルの間に設けられるスイッチと、デバイスと通信し、バス電圧の電圧レベルをネゴシエートするとともに、スイッチを制御する信号処理回路と、を備えてもよい。
【００１６】
本発明の別の態様は、ホストからバス電圧を受けるデバイスに関する。デバイスは、ケーブルが着脱可能に接続されるレセプタクルと、バス電圧を受けて動作する負荷回路と、負荷回路の入力とレセプタクルの間に設けられるスイッチと、ホストと通信し、バス電圧の電圧レベルをネゴシエートするとともに、スイッチを制御する信号処理回路と、を備えてもよい。
【００１７】
本発明のさらに別の態様は、不揮発性メモリと接続され、不揮発性メモリに格納されるプログラムを実行するマイクロコントローラに関する。このマイクロコントローラは、プロセッサと、揮発性メモリと、不揮発性メモリからプログラムを読み出し、揮発性メモリに書き込むローダと、を備える。ローダは、揮発性メモリに書き込まれたプログラムを不揮発性メモリに格納されるプログラムと比較し、異常を検出する比較器を含む。
【００１８】
本発明のさらに別の態様もまた、マイクロコントローラである。このマイクロコントローラは、プロセッサと、揮発性メモリと、不揮発性メモリからプログラムを読み出し、揮発性メモリに書き込むローダと、を備える。揮発性メモリに格納されるプログラムは、エラー検出コードを含んでおり、ローダは、不揮発性メモリから読み出したプログラムに含まれるエラー検出コードにもとづいて、通信エラーを検出するエラー検出器をさらに含む。
【００１９】
マイクロコントローラは、ひとつの半導体チップに集積化されてもよい。
【００２０】
なお、以上の構成要素の任意の組み合わせや、本発明の構成要素や表現を、方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２１】
本発明のある態様によれば、誤動作を抑制できる。
【図面の簡単な説明】
【００２２】
【図１】図１（ａ）、（ｂ）は、本発明者が検討した演算処理システムのブロック図である。
【図２】第１の実施の形態に係る信号処理回路のブロック図である。
【図３】第２の実施の形態に係る信号処理回路のブロック図である。
【図４】第３の実施の形態に係る信号処理回路のブロック図である。
【図５】信号処理回路を備えるホストおよびデバイスのブロック図である。
【発明を実施するための形態】
【００２３】
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
【００２４】
本明細書において、「部材Ａが、部材Ｂと接続された状態」とは、部材Ａと部材Ｂが物理的に直接的に接続される場合のほか、部材Ａと部材Ｂが、電気的な接続状態に影響を及ぼさず、あるいは機能を阻害しない他の部材を介して間接的に接続される場合も含む。また、「部材Ｃが、部材Ａと部材Ｂの間に設けられた状態」とは、部材Ａと部材Ｃ、あるいは部材Ｂと部材Ｃが直接的に接続される場合のほか、電気的な接続状態に影響を及ぼさず、あるいは機能を阻害しない他の部材を介して間接的に接続される場合も含む。
【００２５】
（第１の実施の形態）
図２は、第１の実施の形態に係る信号処理回路１００のブロック図である。信号処理回路１００は、不揮発性メモリ１０２、プロセッサ２０２、揮発性メモリ２０４、ローダ２０６を備え、ひとつのパッケージ内に収容されている。たとえば不揮発性メモリ１０２は、ひとつの半導体チップに集積化され、プロセッサ２０２、揮発性メモリ２０４、ローダ２０６は、別の半導体チップに集積化される。プロセッサ２０２、揮発性メモリ２０４、ローダ２０６を含む回路ブロックを、マイクロコントローラ２００と称する。
【００２６】
プロセッサ２０２はＣＰＵ（Central Processing Unit）であり、プログラムを実行する。揮発性メモリ２０４は、ＲＡＭ（Random Access Memory）であり、プログラムおよびデータを一時的に格納する。プロセッサ２０２と揮発性メモリ２０４は、ＣＰＵバス２１０を介して接続される。不揮発性メモリ１０２は、ＥＥＰＲＯＭやフラッシュメモリであり、ＣＰＵ２０２が実行するプログラムを格納する。
【００２７】
ローダ２０６は、不揮発性メモリ１０２からプログラムを読み出し、揮発性メモリ２０４に書き込む。不揮発性メモリ１０２はシリアルインタフェースを備えており、不揮発性メモリ１０２とローダ２０６は、シリアルバス２０８を介して接続される。ローダ２０６は、一旦揮発性メモリ２０４に書き込んだプログラムを、読み戻す機能を備える。
【００２８】
ローダ２０６は、比較器２２０を含む。比較器２２０は、揮発性メモリ２０４に書き込まれたプログラムを読み戻し、不揮発性メモリ１０２に格納されるプログラムと比較し、異常を検出する。
【００２９】
以上が信号処理回路１００の構成である。続いてその動作を説明する。
【００３０】
比較器２２０は、ローダ２０６によるプログラムのロード動作の直後に、アクティブとなる。比較器２２０は、アクティブとなると、１ワードあるいは１バイト単位で、揮発性メモリ２０４および不揮発性メモリ１０２それぞれからプログラムの対応する部分を読み出し、一致、不一致を判定する。そして不一致が検出されると、異常と判定する。比較器２２０は、異常を検出するとリセット信号ＲＳＴをアサート（たとえばハイレベル）し、プロセッサ２０２をリセットする。
【００３１】
比較器２２０は、所定の周期ごとにアクティブとなってもよい。マイクロコントローラ２００は、所定の周期を測定するためのタイマー回路を内蔵してもよい。
【００３２】
以上が信号処理回路１００の動作である。
この信号処理回路１００によると、揮発性メモリ２０４の故障および異常や、プログラムをロードする際の通信エラー等に起因するプログラムの破壊を検出でき、誤動作を防止できる。
【００３３】
（第２の実施の形態）
図３は、第２の実施の形態に係る信号処理回路１００ａのブロック図である。信号処理回路１００ａは、図２の信号処理回路１００と同様に、不揮発性メモリ１０２、プロセッサ２０２、揮発性メモリ２０４、ローダ２０６ａを備え、ひとつのパッケージ内に収容されている。
【００３４】
不揮発性メモリ１０２に格納されるプログラムは、ＣＲＣ（Cyclic Redundancy Check）などのエラー検出コードを含んでいる。ローダ２０６ａはエラー検出器２２２を含む。エラー検出器２２２は、不揮発性メモリ１０２から読み出したプログラムに含まれるエラー検出コードにもとづいて、通信エラーを検出する。
【００３５】
エラー検出器２２２は、ローダ２０６ａがプログラムをロードするときにアクティブとなる。エラー検出器２２２は、通信エラーを検出すると、ローダ２０６ａにプログラムの再ロードを促す。再ロードの際には、より確実にプログラムをロードできるように、クロック周波数を低下させてもよい。所定回数、ロードに失敗すると、リセット信号ＲＳＴをアサートし、プロセッサ２０２をリセットしてもよい。
【００３６】
ローダ２０６ａは、プログラムからエラー検出コードを除去して、揮発性メモリ２０４に書き込むことが望ましい。これにより揮発性メモリ２０４の容量を節約できる。
【００３７】
以上が信号処理回路１００ａの構成である。続いてその動作を説明する。信号処理回路１００ａが起動すると、ローダ２０６ａが不揮発性メモリ１０２にアクセスし、プログラムを不揮発性メモリ１０２から読み出す。そしてエラー検出器２２２がアクティブとなり、ローダ２０６がプログラムを揮発性メモリ２０４に書き込む前に、通信エラーの有無が判定される。そして通信エラーが発生していない場合に、ローダ２０６ａは、プログラムを揮発性メモリ２０４に書き込む。
【００３８】
以上が信号処理回路１００ａの動作である。この信号処理回路１００ａによれば、揮発性メモリ２０４に対して、正しいプログラムを書き込むことができるため、信頼性を高めることができる。
【００３９】
（第３の実施の形態）
図４は、第３の実施の形態に係る信号処理回路１００ｂのブロック図である。信号処理回路１００ｂは、図２の信号処理回路１００と同様に、不揮発性メモリ１０２、プロセッサ２０２、揮発性メモリ２０４、ローダ２０６ｂを備え、ひとつのパッケージ内に収容されている。ローダ２０６ｂは、比較器２２０およびエラー検出器２２２を備える。
【００４０】
この信号処理回路１００ｂによれば、第１および第２の実施の形態の信号処理回路１００、信号処理回路１００ａの効果を得ることができ、信頼性をさらに高めることができる。
【００４１】
（用途）
図５は、信号処理回路１００（ａ，ｂ）を備えるホスト３００およびデバイス４００のブロック図である。デバイス４００は、スマートホン、タブレット端末、デジカメ、ポータブルオーディオプレイヤ、ラップトップコンピュータなどの電子機器である。ホスト３００は、ラップトップコンピュータやデスクトップコンピュータ、テレビなどの電子機器、あるいは充電アダプタである。ホスト３００とデバイス４００は、ケーブル５００を介して接続される。たとえばホスト３００およびデバイス４００は、ＵＳＢ（Universal Serial Bus）−ＰＤ（Power Delivery）規格に対応しており、ＵＳＢ  ＴｙｐｅＣに対応してもよい。
【００４２】
電子機器３００は、ケーブル５００を介して、デバイス４００にバス電圧ＶＢＵＳを供給する。ホスト３００は、レセプタクル３０２、電源回路３０４、スイッチ３０６、信号処理回路３０８を備える。レセプタクル３０２には、ケーブル５００が着脱可能に接続される。電源回路３０４は、デバイス４００に供給すべきバス電圧ＶＢＵＳを生成する。スイッチ３０６は、電源回路３０４の出力とレセプタクル３０２のＶＢＵＳピンの間に設けられる。信号処理回路３０８は、スイッチ３０６のオン、オフを制御する。
【００４３】
デバイス４００は、レセプタクル４０２、スイッチ４０４、負荷回路４０６、信号処理回路４０８を備える。レセプタクル４０２には、ケーブル５００が着脱可能に接続される。負荷回路４０６は、ＤＣ／ＤＣコンバータやバッテリの充電回路などを含み、ホスト３００からのバス電圧ＶＢＵＳを受ける。スイッチ４０４は、レセプタクル４０２と負荷回路４０６の入力端子の間に設けられる。信号処理回路４０８は、スイッチ４０４のオン、オフを制御する。
【００４４】
信号処理回路３０８と信号処理回路４０８は、ＣＣピンを介して接続されており、通信可能となっている。ＵＳＢ−ＰＤ規格では、ホスト３００とデバイス４００が通信可能を行い、バス電圧ＶＢＵＳの電圧レベルをネゴシエートする。具体的には、信号処理回路３０８は、ホスト３００がサポートするバス電圧のリストを保持している。ホスト３００とデバイス４００が接続されると、信号処理回路３０８は信号処理回路４０８に、リストを送信する。信号処理回路４０８は、リストの中から、負荷回路４０６に最適な電圧レベルを選択し、信号処理回路３０８に通知する。信号処理回路３０８は、信号処理回路４０８が選択したバス電圧ＶＢＵＳを生成するように、電源回路３０４に指示する。
【００４５】
信号処理回路３０８および信号処理回路４０８は、上述の信号処理回路１００（ａ，ｂ）で構成することができる。信号処理回路１００の用途は、ホスト３００やデバイス４００に限定されず、汎用的な用途で利用可能である。
【００４６】
実施の形態にもとづき、具体的な用語を用いて本発明を説明したが、実施の形態は、本発明の原理、応用を示しているにすぎず、実施の形態には、請求の範囲に規定された本発明の思想を逸脱しない範囲において、多くの変形例や配置の変更が認められる。
【符号の説明】
【００４７】
１００…信号処理回路、１０２…不揮発性メモリ、２００…マイクロコントローラ、２０２…プロセッサ、２０４…揮発性メモリ、２０６…ローダ、２０８…シリアルバス、２１０…ＣＰＵバス、２２０…比較器、２２２…エラー検出器、３００…ホスト、３０２…レセプタクル、３０４…電源回路、３０６…スイッチ、３０８…信号処理回路、４００…デバイス、４０２…レセプタクル、４０４…スイッチ、４０６…負荷回路、４０８…信号処理回路、５００…ケーブル。
【図１】
2017207931.tif 000003
【図２】
2017207931.tif 000004
【図３】
2017207931.tif 000005
【図４】
2017207931.tif 000006
【図５】
2017207931.tif 000007