(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサーと、
前記マイクロプロセッサーの電源およびリセットの少なくともいずれかを制御する制御信号を生成して出力することによって、前記マイクロプロセッサーの電源およびリセットの少なくともいずれかを制御するプログラム可能な論理回路デバイスと、
前記マイクロプロセッサーが前記プログラム可能な論理回路デバイスの回路構成データを書き換えている間、前記プログラム可能な論理回路デバイスから出力される前記制御信号を遮断する信号遮断部と、を有する、電子装置。
【請求項２】
前記プログラム可能な論理回路デバイスは、
書き換え可能な不揮発メモリを内蔵し、当該書き換え可能な不揮発メモリに前記回路構成データを格納することを特徴とする請求項１に記載の電子装置。
【請求項３】
前記マイクロプロセッサーは、
前記プログラム可能な論理回路デバイスの回路構成データの書き換えが完了した後、前記信号遮断部を、前記制御信号の遮断を解除するよう制御し、
前記信号遮断部が前記制御信号の遮断を解除した後、前記電子装置全体を初期化することを特徴とする請求項１または２に記載の電子装置。
【請求項４】
前記マイクロプロセッサーは、
通常動作モードおよびＰＬＤ書き換え動作モードの２つの動作モードを備え、
前記動作モードがＰＬＤ書き換え動作モードのとき、前記プログラム可能な論理回路デバイスの回路構成データを書き換える一方で、
前記動作モードが通常動作モードのとき、前記プログラム可能な論理回路デバイス以外の他のデバイスに対してリード／ライトを実行することを特徴とする請求項１〜３のいずれか１項に記載の電子装置。
【請求項５】
前記他のデバイスとしての記憶部と、
前記動作モードに応じて前記プログラム可能な論理回路デバイスおよび前記記憶部のうちのいずれかを選択する選択部と、をさらに有することを特徴とする請求項４に記載の電子装置。
【請求項６】
前記信号遮断部は、
前記制御信号を入力し、前記マイクロプロセッサーに出力するトライステートバッファを備え、
前記動作モードがＰＬＤ書き換え動作モードのとき、前記トライステートバッファがハイインピーダンス状態となるため、前記制御信号は、前記マイクロプロセッサーから遮断され、
前記動作モードが通常動作モードのとき、前記トライステートバッファが導通状態となるため、前記制御信号は、前記マイクロプロセッサーに入力されることを特徴とする請求項４または５に記載の電子装置。
【請求項７】
前記トライステートバッファには、前記プログラム可能な論理回路デバイスに電力を供給する電源と同じ電源から電力が供給されることを特徴とする請求項６に記載の電子装置。
【請求項８】
前記トライステートバッファの出力端子には、プルアップ抵抗またはプルダウン抵抗が接続され、
前記トライステートバッファがハイインピーダンス状態である場合、前記マイクロプロセッサーの動作が継続されるように、前記出力端子がプルアップまたはプルダウンされることを特徴とする請求項６または７に記載の電子装置。
【請求項９】
前記トライステートバッファの入力端子には、プルアップ抵抗またはプルダウン抵抗が接続され、
前記制御信号が不安定である場合に前記マイクロプロセッサーの動作が開始されないように、前記入力端子がプルアップまたはプルダウンされることを特徴とする請求項６〜８のいずれか１項に記載の電子装置。
【請求項１０】
前記トライステートバッファのイネーブル端子には、プルアップ抵抗またはプルダウン抵抗が接続され、
前記トライステートバッファがイネーブル状態となるように、前記イネーブル端子がプルアップまたはプルダウンされることを特徴とする請求項６〜９のいずれか１項に記載の電子装置。
【請求項１１】
前記信号遮断部は、
前記制御信号を入力し、前記マイクロプロセッサーに出力するアナログスイッチを備え、
前記動作モードがＰＬＤ書き換え動作モードのとき、前記アナログスイッチがハイインピーダンス状態となるため、前記制御信号は、前記マイクロプロセッサーから遮断され、
前記動作モードが通常動作モードのとき、前記アナログスイッチが導通状態となるため、前記制御信号は、前記マイクロプロセッサーに入力されることを特徴とする請求項４または５に記載の電子装置。
【請求項１２】
前記アナログスイッチには、前記プログラム可能な論理回路デバイスに電力を供給する電源と同じ電源から電力が供給されることを特徴とする請求項１１に記載の電子装置。
【請求項１３】
前記アナログスイッチの出力端子には、プルアップ抵抗またはプルダウン抵抗が接続され、
前記アナログスイッチがハイインピーダンス状態である場合、前記マイクロプロセッサーの動作が継続されるように、前記出力端子がプルアップまたはプルダウンされることを特徴とする請求項１１または１２に記載の電子装置。
【請求項１４】
前記アナログスイッチの入力端子には、プルアップ抵抗またはプルダウン抵抗が接続され、
前記制御信号が不安定である場合に前記マイクロプロセッサーの動作が開始されないように、前記入力端子がプルアップまたはプルダウンされることを特徴とする請求項１３に記載の電子装置。
【請求項１５】
前記アナログスイッチのイネーブル端子には、プルアップ抵抗またはプルダウン抵抗が接続され、
前記アナログスイッチがイネーブル状態となるように、前記イネーブル端子がプルアップまたはプルダウンされることを特徴とする請求項１４に記載の電子装置。
【請求項１６】
前記制御信号が不安定である場合であって、前記プログラム可能な論理回路デバイスが前記マイクロプロセッサーの電源を制御する場合、
前記アナログスイッチの前記入力端子のプルアップ抵抗および前記出力端子のプルダウン抵抗、または、前記アナログスイッチの入力端子のプルダウン抵抗および前記出力端子のプルアップ抵抗とは、前記プログラム可能な論理可能デバイスによって前記マイクロプロセッサーの動作が開始されない論理レベルに前記制御信号が出力されるように決定されることを特徴とする請求項１４または１５に記載の電子装置。
【請求項１７】
前記制御信号は、ＬＶＴＴＬのハイレベルまたはローレベル出力、あるいはオープンコレクターによるハイインピーダンス出力のいずれかであることを特徴とする請求項１４〜１６のいずれか１項に記載の電子装置。
【請求項１８】
マイクロプロセッサーと、
前記マイクロプロセッサーの電源およびリセットの少なくともいずれかを制御する制御信号を生成して出力することによって、前記マイクロプロセッサーの電源およびリセットの少なくともいずれかを制御するプログラム可能な論理回路デバイスと、を備えた電子装置の前記プログラム可能な論理回路デバイスの回路構成データを書き換える方法であって、
前記プログラム可能な論理回路デバイスの書き換え用の回路構成データを取得する段階と、
前記マイクロプロセッサーが前記プログラム可能な論理回路デバイスの回路構成データを書き換える段階と、
前記マイクロプロセッサーが前記プログラム可能な論理回路デバイスの回路構成データを書き換えている間、前記制御信号を遮断する段階と、を有する、書き換え方法。
【請求項１９】
前記プログラム可能な論理回路デバイスの回路構成データを書き換える段階の後に、
前記制御信号が遮断された状態で、書き換えられた回路構成データを読み出して検証する段階をさらに有することを特徴とする請求項１８に記載の書き換え方法。
【請求項２０】
前記検証する段階の後に、
前記制御信号の遮断を解除する段階と、
前記電子装置全体を初期化する段階と、
をさらに有することを特徴とする請求項１９に記載の書き換え方法。
【請求項２１】
前記プログラム可能な論理回路デバイスの回路構成データを書き換える段階の後、かつ前記制御信号の遮断を解除する段階の前において、
前記プログラム可能な論理回路デバイスをリセットする段階と、
前記プログラム可能な論理回路デバイスのリセットを解除する段階と、
前記制御信号の挙動を確認する段階と、をさらに有することを特徴とする請求項２０に記載の書き換え方法。
【請求項２２】
前記マイクロプロセッサーに請求項１８〜２１のいずれか１項に記載の書き換え方法を実行させるように構成される、書き換えプログラム。
【請求項２３】
請求項２２に記載の書き換えプログラムを記録したコンピューター読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム可能な論理回路デバイスを備えた電子装置および書き換え方法に関する。
【背景技術】
【０００２】
プログラム可能な論理回路デバイス（以下、ＰＬＤとも称する）は、たとえばＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）のように、一旦、デバイス内部の論理回路を決定すると変更できない論理回路デバイスとは異なり、デバイス内部の論理回路を繰り返し変更できる論理回路デバイスである。
【０００３】
近年のＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）では、ユーザーが所望の論理回路の構成をパーソナルコンピューターなどの端末上で編集し、当該論理回路の構成に関する情報をコンフィグレーションデータとして読み込んでデバイス内部に論理回路を構成することができるようになってきている。
【０００４】
たとえば、特許文献１には、ＰＬＤとマイクロプロセッサー（以下、ＭＰＵとも称する）とを備え、遠隔のコントロール・センターによりコンフィグレーションデータを書き換えるオンボード書き換えシステムが開示されている。
【０００５】
ところが、フラッシュメモリ内蔵型のＰＬＤを備えるオンボード書き換えシステムにおいて、ＭＰＵ（Ｍｉｃｒｏ−Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）がＰＬＤを書き換えている間は、ＰＬＤの出力端子の状態が一般に不定となる。したがって、ＰＬＤがＭＰＵの電源やリセットを制御する構成である場合、コンフィグレーションデータをＭＰＵから書き換えることができないか、あるいは正常に書き換えることができないおそれがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１２３１４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、上記問題に鑑みてなされたものである。したがって、本発明の目的は、ＰＬＤがＭＰＵの電源やリセットを制御する構成である場合に、ＰＬＤのコンフィグレーションデータをＭＰＵから正常に書き換えられる、ＰＬＤを備えた電子装置および書き換え方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明の上記目的は、下記によって達成される。
【０００９】
（１）マイクロプロセッサーと、前記マイクロプロセッサーの電源およびリセットの少なくともいずれかを制御する制御信号を生成して出力することによって、前記マイクロプロセッサーの電源およびリセットの少なくともいずれかを制御するプログラム可能な論理回路デバイスと、前記マイクロプロセッサーが前記プログラム可能な論理回路デバイスの回路構成データを書き換えている間、前記プログラム可能な論理回路デバイスから出力される前記制御信号を遮断する信号遮断部と、を有する、電子装置。
【００１０】
（２）前記プログラム可能な論理回路デバイスは、書き換え可能な不揮発メモリを内蔵し、当該書き換え可能な不揮発メモリに前記回路構成データを格納することを特徴とする上記（１）に記載の電子装置。
【００１１】
（３）前記マイクロプロセッサーは、前記プログラム可能な論理回路デバイスの回路構成データの書き換えが完了した後、前記信号遮断部を、前記制御信号の遮断を解除するよう制御し、前記信号遮断部が前記制御信号の遮断を解除した後、前記電子装置全体を初期化することを特徴とする上記（１）または（２）に記載の電子装置。
【００１３】
（４）前記マイクロプロセッサーは、通常動作モードおよびＰＬＤ書き換え動作モードの２つの動作モードを備え、前記動作モードがＰＬＤ書き換え動作モードのとき、前記プログラム可能な論理回路デバイスの回路構成データを書き換える一方で、前記動作モードが通常動作モードのとき、前記プログラム可能な論理回路デバイス以外の他のデバイスに対してリード／ライトを実行することを特徴とする上記（１）〜（３）のいずれか１つに記載の電子装置。
【００１４】
（５）前記他のデバイスとしての記憶部と、前記動作モードに応じて前記プログラム可能な論理回路デバイスおよび前記記憶部のうちのいずれかを選択する選択部と、をさらに有することを特徴とする上記（４）に記載の電子装置。
【００１５】
（６）前記信号遮断部は、前記制御信号を入力し、前記マイクロプロセッサーに出力するトライステートバッファを備え、前記動作モードがＰＬＤ書き換え動作モードのとき、前記トライステートバッファがハイインピーダンス状態となるため、前記制御信号は、前記マイクロプロセッサーから遮断され、前記動作モードが通常動作モードのとき、前記トライステートバッファが導通状態となるため、前記制御信号は、前記マイクロプロセッサーに入力されることを特徴とする上記（４）または（５）に記載の電子装置。
【００１６】
（７）前記トライステートバッファには、前記プログラム可能な論理回路デバイスに電力を供給する電源と同じ電源から電力が供給されることを特徴とする上記（６）に記載の電子装置。
【００１７】
（８）前記トライステートバッファの出力端子には、プルアップ抵抗またはプルダウン抵抗が接続され、前記トライステートバッファがハイインピーダンス状態である場合、前記マイクロプロセッサーの動作が継続されるように、前記出力端子がプルアップまたはプルダウンされることを特徴とする上記（６）または（７）に記載の電子装置。
【００１８】
（９）前記トライステートバッファの入力端子には、プルアップ抵抗またはプルダウン抵抗が接続され、前記制御信号が不安定である場合に前記マイクロプロセッサーの動作が開始されないように、前記入力端子がプルアップまたはプルダウンされることを特徴とする上記（６）〜（８）のいずれか１つに記載の電子装置。
【００１９】
（１０）前記トライステートバッファのイネーブル端子には、プルアップ抵抗またはプルダウン抵抗が接続され、前記トライステートバッファがイネーブル状態となるように、前記イネーブル端子がプルアップまたはプルダウンされることを特徴とする上記（６）〜（９）のいずれか１つに記載の電子装置。
【００２０】
（１１）前記信号遮断部は、前記制御信号を入力し、前記マイクロプロセッサーに出力するアナログスイッチを備え、前記動作モードがＰＬＤ書き換え動作モードのとき、前記アナログスイッチがハイインピーダンス状態となるため、前記制御信号は、前記マイクロプロセッサーから遮断され、前記動作モードが通常動作モードのとき、前記アナログスイッチが導通状態となるため、前記制御信号は、前記マイクロプロセッサーに入力されることを特徴とする上記（４）または（５）に記載の電子装置。
【００２１】
（１２）前記アナログスイッチには、前記プログラム可能な論理回路デバイスに電力を供給する電源と同じ電源から電力が供給されることを特徴とする上記（１１）に記載の電子装置。
【００２２】
（１３）前記アナログスイッチの出力端子には、プルアップ抵抗またはプルダウン抵抗が接続され、前記アナログスイッチがハイインピーダンス状態である場合、前記マイクロプロセッサーの動作が継続されるように、前記出力端子がプルアップまたはプルダウンされることを特徴とする上記（１１）または（１２）に記載の電子装置。
【００２３】
（１４）前記アナログスイッチの入力端子には、プルアップ抵抗またはプルダウン抵抗が接続され、前記制御信号が不安定である場合に前記マイクロプロセッサーの動作が開始されないように、前記入力端子がプルアップまたはプルダウンされることを特徴とする上記（１３）に記載の電子装置。
【００２４】
（１５）前記アナログスイッチのイネーブル端子には、プルアップ抵抗またはプルダウン抵抗が接続され、前記アナログスイッチがイネーブル状態となるように、前記イネーブル端子がプルアップまたはプルダウンされることを特徴とする上記（１４）に記載の電子装置。
【００２５】
（１６）前記制御信号が不安定である場合であって、前記プログラム可能な論理回路デバイスが前記マイクロプロセッサーの電源を制御する場合、前記アナログスイッチの前記入力端子のプルアップ抵抗および前記出力端子のプルダウン抵抗、または、前記アナログスイッチの入力端子のプルダウン抵抗および前記出力端子のプルアップ抵抗とは、前記プログラム可能な論理可能デバイスによって前記マイクロプロセッサーの動作が開始されない論理レベルに前記制御信号が出力されるように決定されることを特徴とする上記（１４）または（１５）に記載の電子装置。
【００２６】
（１７）前記制御信号は、ＬＶＴＴＬのハイレベルまたはローレベル出力、あるいはオープンコレクターによるハイインピーダンス出力のいずれかであることを特徴とする上記（１４）〜（１６）のいずれか１つに記載の電子装置。
【００２７】
（１８）マイクロプロセッサーと、前記マイクロプロセッサーの電源およびリセットの少なくともいずれかを制御する制御信号を生成して出力することによって、前記マイクロプロセッサーの電源およびリセットの少なくともいずれかを制御するプログラム可能な論理回路デバイスと、を備えた電子装置の前記プログラム可能な論理回路デバイスの回路構成データを書き換える方法であって、前記プログラム可能な論理回路デバイスの書き換え用の回路構成データを取得する段階と、前記マイクロプロセッサーが前記プログラム可能な論理回路デバイスの回路構成データを書き換える段階と、前記マイクロプロセッサーが前記プログラム可能な論理回路デバイスの回路構成データを書き換えている間、前記制御信号を遮断する段階と、を有する、書き換え方法。
【００２８】
（１９）前記プログラム可能な論理回路デバイスの回路構成データを書き換える段階の後に、前記制御信号が遮断された状態で、書き換えられた回路構成データを読み出して検証する段階をさらに有することを特徴とする上記（１８）に記載の書き換え方法。
【００２９】
（２０）前記検証する段階の後に、前記制御信号の遮断を解除する段階と、前記電子装置全体を初期化する段階と、をさらに有することを特徴とする上記（１９）に記載の書き換え方法。
【００３０】
（２１）前記プログラム可能な論理回路デバイスの回路構成データを書き換える段階の後、かつ前記制御信号の遮断を解除する段階の前において、前記プログラム可能な論理回路デバイスをリセットする段階と、前記プログラム可能な論理回路デバイスのリセットを解除する段階と、前記制御信号の挙動を確認する段階と、をさらに有することを特徴とする上記（２０）に記載の書き換え方法。
【００３１】
（２２）前記マイクロプロセッサーに上記（１８）〜（２１）のいずれか１つに記載の書き換え方法を実行させるように構成される、書き換えプログラム。
【００３２】
（２３）上記（２２）に記載の書き換えプログラムを記録したコンピューター読み取り可能な記録媒体。
【発明の効果】
【００３３】
本発明によれば、ＭＰＵは、ＰＬＤのコンフィグレーションデータを書き換えている間、ＭＰＵの電源およびリセットを制御するＭＰＵ制御信号を遮断するので、ＰＬＤのコンフィグレーションデータをＭＰＵから正常に書き換えられる。
【図面の簡単な説明】
【００３４】
【図１】本発明の第１の実施形態におけるＰＬＤを備えた電子装置の概略構成を示すブロック図である。
【図２】本発明の第１の実施形態におけるＰＬＤを備えた電子装置の動作の概略を説明するためのフローチャートである。
【図３】本発明の第１の実施形態におけるコンフィグレーションデータの書き換え手順について説明するフローチャートである。
【図４】本発明の第２の実施形態におけるＰＬＤを備えた電子装置の概略構成を示すブロック図である。
【図５】本発明の第３の実施形態におけるＰＬＤを備えた電子装置の概略構成を示すブロック図である。
【発明を実施するための形態】
【００３５】
以下、添付した図面を参照して本発明のＰＬＤを備えた電子装置の実施形態を説明する。なお、図中、同一の部材には同一の符号を用いた。
【００３６】
（第１の実施形態）
図１は本発明の第１の実施形態におけるＰＬＤを備えた電子装置の概略構成を示すブロック図である。図１に示すように、本実施形態の電子装置１００は、ＰＬＤ１０、ＰＬＤクロック生成部２０、リセットＩＣ３０、ＭＰＵ４０、ＭＰＵクロック生成部５０、バッファー回路６０および電源ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）７０を有する。これらの構成要素は、配線８０〜８９により電気的に接続されている。
【００３７】
ＰＬＤ１０は、ＭＰＵ４０の電源のオン／オフおよびリセットを制御するプログラム可能な論理回路デバイスである。ＰＬＤ１０は、コンフィグレーションデータ（回路構成データ）を格納するフラッシュメモリ（書き換え可能な不揮発メモリ）を内蔵し、ポート１、ポート２、ポート５、ＪＴＡＧポート、第１および第２リセットポートの各端子を有する。
【００３８】
ポート１およびポート２の各端子は、バッファー回路６０の入力１端子および入力２端子に各々配線８１，８２を介してそれぞれ接続され、ポート５端子は電源ＩＣ７０の電源監視端子に配線８８を介して接続される。また、ＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）ポート端子は、ＭＰＵ４０の汎用Ｉ／Ｏポート端子に配線８０を介して接続される。また、第１リセットポート端子はリセットＩＣ３０に配線８７を介して接続され、第２リセットポート端子はＭＰＵ４０のポート４端子に配線８９を介して接続される。
【００３９】
なお、本実施形態のＪＴＡＧポートは、テストアクセスポートの標準ＩＥＥＥ１１４９．１に準拠している。ＪＴＡＧは、当初、集積回路や基板の検査に用いられていた規格であるが、近年は検査目的のみならず、コンフィグレーションデータの書き換えなどＣＰＬＤやＦＰＧＡにアクセスする手段としても使用されている。
【００４０】
本実施形態の電子装置１００には、当該電子装置１００の外部の図示しない電源（たとえば電源電圧３．３Ｖ）によって電力が供給される。当該電源は、ＰＬＤ１０および当該ＰＬＤ１０にＰＬＤ用クロック信号を供給するＰＬＤクロック生成部２０に電力を供給する。
【００４１】
本実施形態のＰＬＤ１０は、電源ＩＣ７０のイネーブルを制御するための電源制御信号を生成し、ポート１端子から出力する。電源制御信号は、バッファー回路６０の入力１端子に入力される。
【００４２】
また、ＰＬＤ１０は、ポート５端子に入力される電源ＩＣ７０の電源監視信号に基づいて、電源ＩＣ７０の電源出力端子から配線８５に出力される電源電圧が適切な電圧となっていることを確認する。また、ＰＬＤ１０は、ＭＰＵ４０のリセットを制御するためのリセット制御信号を生成し、ポート２端子から出力する。リセット制御信号は、バッファー回路６０の入力２端子に入力される。
【００４３】
ＰＬＤクロック生成部２０は、発振器または振動子を備え、ＰＬＤ用クロック信号を生成する。ＰＬＤクロック生成部２０のクロック出力端子は、ＰＬＤ１０のクロック入力端子に接続されている。なお、図１において、ＰＬＤクロック生成部２０のクロック出力端子、ＰＬＤ１０のクロック入力端子、およびＰＬＤクロック生成部２０とＰＬＤ１０との間の配線の図示を省略している。
【００４４】
リセットＩＣ３０は、上記電源からＰＬＤ１０に電力の供給が開始された後に、上記ＰＬＤ用クロック信号の波形が安定するまで所定時間ＰＬＤ１０をリセットする。
【００４５】
ＭＰＵ４０は、ＰＬＤ１０のコンフィグレーションデータの書き換えデータを取得し、ＰＬＤ１０のフラッシュメモリに格納された既存のコンフィグレーションデータを上記書き換えデータに書き換える。ＭＰＵ４０は、汎用マイクロプロセッサーであり、電源入力、リセットポート、汎用Ｉ／Ｏポート、ポート３およびポート４の各端子を有する。電源入力端子は配線８５を介して電源ＩＣ７０の電源出力端子に接続され、リセットポート端子はバッファー回路６０の出力２端子に配線８４を介して接続される。また、汎用Ｉ／Ｏポート端子は、ＰＬＤ１０のＪＴＡＧポート端子に配線８０を介して接続される。また、ポート３端子はバッファー回路６０のイネーブル端子に配線８６を介して接続され、ポート４端子はＰＬＤ１０の第２リセットポート端子に配線８９を介して接続される。
【００４６】
本実施形態では、ＭＰＵ４０は、取得したコンフィグレーションデータの書き換えデータを汎用Ｉ／Ｏポート端子から出力し、ＪＴＡＧプロトコルでＰＬＤ１０のＪＴＡＧポート端子に送信する。
【００４７】
ＭＰＵ４０には、ＭＰＵクロック生成部５０が接続されている。ＭＰＵクロック生成部５０は、発振器または振動子を備え、ＭＰＵ用クロック信号を生成する。上記発振器は、ＭＰＵ４０と同じ電源で動作する。また、上記振動子の場合は、ＭＰＵ４０の端子から電圧が印加されることで上記振動子が発振を開始する。ＰＬＤ１０は、ＭＰＵ４０への各電源投入タイミングとＭＰＵクロック生成部５０のクロック安定出力を待ち合わせてからリセットを解除する。なお、図１において、ＭＰＵクロック生成部５０のクロック出力端子、ＭＰＵ４０のクロック入力端子、およびＭＰＵクロック生成部５０とＰＬＤ１０との間の配線の図示を省略している。
【００４８】
ＭＰＵ４０には各デバイスのインタフェース用の複数の電源（ＩＯ電源）が接続される。上記電源の電源電圧は、たとえば３．３Ｖ、１．８Ｖ、１．５Ｖ、１．２Ｖである。したがって、ＰＬＤ１０は、上記電源ごとにオン／オフの制御信号を出力することが望ましい。しかしながら、ＭＰＵ４０に電源投入シーケンスが無い場合は、すべての電源を同時にオン／オフ制御してもよい。
【００４９】
また、ＭＰＵ４０が起動する前（リセット状態）では、ＭＰＵ４０のポート３端子はハイインピーダンス（以下、ＨｉＺと称する）状態で電気的にはフローティング状態である。そのため、たとえばバッファー回路６０のイネーブルが負論理の場合、プルダウン抵抗（不図示）によってＭＰＵ４０のポート３端子が論理固定される。
【００５０】
バッファー回路６０は、信号遮断部として機能し、ＰＬＤ１０によってＭＰＵ４０を制御するＭＰＵ制御信号を遮断する。本実施形態では、当該ＭＰＵ制御信号は、ＭＰＵ４０の電源を制御する電源制御信号およびリセットを制御するリセット制御信号を含む。ＭＰＵ制御信号は、ＬＶＴＴＬなどの「ハイレベル（ｈｉｇｈ  ｌｅｖｅｌ）」または「ローレベル（ｌｏｗ  ｌｅｖｅｌ）」出力またはオープンコレクターによるＨｉＺ出力のいずれかであることが好ましい。
【００５１】
バッファー回路６０は、イネーブル／ディセーブル制御可能な１入力１出力のスイッチング素子を２つ備え、イネーブル、入力１、入力２、出力１および出力２の各端子を有する。上記スイッチング素子は、たとえばトライステートバッファ、アナログスイッチなどである。バッファー回路６０がイネーブル状態である場合、出力１端子には入力１端子に入力された電源制御信号が出力され、出力２端子には入力２端子に入力されたリセット制御信号が出力される。
【００５２】
一方、バッファー回路６０がイネーブル状態ではない場合、すなわちディセーブル状態の場合、出力１端子および出力２端子は、ＨｉＺ状態となり電気的にフローティング状態となる。本実施形態では、バッファー回路６０のイネーブルは負論理であり、バッファー回路６０のイネーブル端子に「ローレベル」のバッファーイネーブル信号が入力された場合にイネーブル状態となる。一方、イネーブル端子に「ハイレベル」のバッファーイネーブル信号が入力された場合にディセーブル状態となる。
【００５３】
出力１端子は、電源ＩＣ７０のイネーブル端子に接続され、配線８３に電源制御信号を出力する。また、出力２端子は、ＭＰＵ４０のリセットポート端子に接続され、配線８４にリセット制御信号を出力する。
【００５４】
本実施形態では、上記出力１端子および出力２端子がＨｉＺ状態となったときでも電源ＩＣ７０がイネーブル状態を維持し、ＭＰＵ４０にリセットがからないようにするため、出力１端子および出力２端子が「ローレベル」または「ハイレベル」に論理固定される。たとえば、本実施形態のように電源ＩＣ７０のイネーブルが正論理であり、ＭＰＵ４０のリセットが負論理である場合、プルアップ抵抗（不図示）によって上記出力１端子および出力２端子が論理固定される。なお、上記プルアップ抵抗には、電源ＩＣ７０の電源電圧と同じ電圧が印加されることが好ましい。
【００５５】
また、バッファー回路６０の入力１端子および入力２端子には、プルアップ抵抗またはプルダウン抵抗が接続されていてもよい。たとえばＰＬＤ１０に初めてリセットがかかったときなどＭＰＵ制御信号が不安定である場合、電源を投入しないか、あるいはリセットがかかるように入力１端子および入力２端子をプルアップまたはプルダウンしてＭＰＵ４０の動作を開始させないことが好ましい。
【００５６】
なお、バッファー回路６０がスイッチング素子としてアナログスイッチを備える場合、バッファー回路６０がイネーブル状態のとき入力側と出力側が導通するので、入力側および出力側のプルアップ抵抗／プルダウン抵抗が信号線上で接続されることになる。したがって、アナログスイッチの入力端子のプルアップ抵抗／プルダウン抵抗と、出力端子のプルアップ抵抗／プルダウン抵抗とは、それぞれの抵抗値で定まる抵抗比によって、ＭＰＵ制御信号が、ＭＰＵ４０の動作が開始されない論理レベルになるように決定される。
【００５７】
電源ＩＣ７０は、ＭＰＵ４０に電力を供給するためのＩＣであり、イネーブル、電源監視、および電源出力の各端子を有する。上記イネーブル端子に入力される電源制御信号がアクティブであり電源ＩＣ７０がイネーブル状態であるとき、電源出力端子を通じてＭＰＵ４０に必要な電力が供給される一方で、イネーブル状態ではないとき、ＭＰＵ４０には電力は供給されない。
【００５８】
本実施形態では、電源監視端子は、電源出力端子の端子電圧が所定電圧になっている旨を出力し、ＰＬＤ１０のポート５端子に供給する。上述のように、出力１端子および出力２端子がＨｉＺ状態となったときでも電源ＩＣ７０がイネーブル状態を維持し、ＭＰＵ４０にリセットがからないようにするため、出力１端子および出力２端子はプルアップされている。
【００５９】
次に、図２を参照して、以上のとおり構成される本実施形態の電子装置１００の動作の概略について説明する。図２は本発明の第１の実施形態におけるＰＬＤを備えた電子装置の動作の概略を説明するためのフローチャートである。
【００６０】
図２に示すように、まず、ＰＬＤ１０を起動する（ステップＳ１０１）。具体的には、ＰＬＤ１０に電子装置１００の外部の電源から電力が供給される。本実施形態では、ＰＬＤ１０に供給される電源電圧は、たとえば３．３Ｖである。また、本実施形態では、ＰＬＤ１０にクロック信号を供給するためのＰＬＤクロック生成部２０にも上記電源から電力が供給される。
【００６１】
ＰＬＤ１０に電力およびＰＬＤクロック信号の供給が開始されると、ＰＬＤ１００は動作を開始する。ところが、ＰＬＤクロック生成部２０へ電力の供給が開始された直後は、生成されるＰＬＤクロック信号の波形が安定しないことが予想されるので、ＰＬＤ１０はリセットＩＣ３０によってＰＬＤクロック信号が安定するまでリセットされる。そして、ＰＬＤクロック信号が安定する所定時間が経過した後、リセットが解除されてＰＬＤ１０の起動が完了する。
【００６２】
次に、ＭＰＵを起動する（ステップＳ１０２）。具体的には、ＰＬＤ１０の起動が完了すると、ＰＬＤ１０はポート１端子から電源制御信号を配線８１に出力する。電源ＩＣ７０は、バッファー回路６０を介して上記電源制御信号をイネーブル端子に入力する。そして、電源ＩＣ７０は、上記電源制御信号が入力されるとＭＰＵ４０に対して電力の供給を開始する。
【００６３】
また、電源ＩＣ７０は、上記電源制御信号が入力され、電源出力端子が所定電圧になると、電源監視端子から電源監視信号を出力する。ＰＬＤ１０は、ポート５端子に上記電源監視信号を入力し、電源ＩＣ７０から配線８５に出力された電圧が所定電圧となっていることを確認する。
【００６４】
さらに、ＰＬＤ１０は、ポート２端子からリセット制御信号を配線８２に出力する。ＭＰＵ４０は、リセットポート端子からリセット制御信号を入力し、リセット状態となる。
【００６５】
ＰＬＤ１０は、上記電源監視信号を入力してから内蔵タイマーにより計時を開始し、所定時間が経過した後、リセット制御信号をインアクティブにしてＭＰＵ４０のリセットを解除する。そして、ＭＰＵ４０は、図示しないＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納されているソフトウェアプログラムを読み込んで所定の動作を開始する。以下のＰＬＤコンフィグレーションデータを書き換える手順は、上記ＲＯＭに格納されている書き換えプログラムをＭＰＵ４０が実行することによって実現される。
【００６６】
次に、ＰＬＤコンフィグレーションデータを書き換える（ステップＳ１０３）。ＭＰＵ４０は、ＰＬＤ１０のフラッシュメモリに格納されているコンフィグレーションデータを書き換える。以下、図３を参照して、本実施形態においてコンフィグレーションデータを書き換える手順についてより具体的に説明する。図３は、本実施形態におけるコンフィグレーションデータの書き換え手順について説明するフローチャートである。
【００６７】
図３に示すように、まず、ＰＬＤコンフィグレーションデータを受信する（ステップＳ２０１）。ＭＰＵ４０は、図示しないＬＡＮ、ＵＳＢなどの外部インタフェースからＰＬＤ１０の書き換え用コンフィグレーションデータを受信する。
【００６８】
次に、ＰＬＤ書き換え動作モードに移行する（ステップＳ２０２）。ＭＰＵ４０は、アプリケーションソフトの実行を停止して、動作モードを通常動作モードからＰＬＤ書き換え動作モードに切り替える。
【００６９】
次に、ＭＰＵ制御信号を電気的に遮断する（ステップＳ２０３）。ＭＰＵ４０は、ポート３端子から配線８６に出力するバッファーイネーブル信号をインアクティブにしてバッファー回路６０の出力１端子および出力２端子をＨｉＺ状態にする。これにより、ＰＬＤ１０からバッファー回路６０を介して電源ＩＣ７０に出力される電源制御信号と、バッファー回路６０を介してＭＰＵ４０に出力されるリセット制御信号とがＰＬＤ１０の制御下から切り離される。
【００７０】
このように、バッファーイネーブル信号がインアクティブになると、バッファー回路６０の出力１端子および出力２端子は、ＨｉＺ状態となる。本実施形態では、バッファー回路６０の出力１端子および出力２端子は、たとえば外付けのプルアップ抵抗によって「ハイレベル」に論理固定されている。電源ＩＣ７０のイネーブルは正論理であり、電源制御信号が「ハイレベル」に論理固定されるので、ＭＰＵ４０への電源供給が継続される。同様に、本実施形態では、ＭＰＵ４０のリセットは、負論理であり、ＭＰＵリセット信号が「ハイレベル」に論理固定されるので、ＭＰＵ４０にはリセットがかからず、ＭＰＵ４０は動作を継続する。
【００７１】
次に、ＰＬＤのコンフィグレーションデータを書き換える（ステップＳ２０４）。ＭＰＵ４０は、上記書き換え用コンフィグレーションデータを汎用Ｉ／Ｏポート端子からＪＴＡＧプロトコルでＰＬＤ１０のＪＴＡＧポート端子に送信する。ＰＬＤ１０は、内蔵のフラッシュメモリに格納されたコンフィグレーションデータを上記書き換え用コンフィグレーションデータに書き換える。
【００７２】
次に、ＰＬＤのコンフィグレーションデータを検証する（ステップＳ２０５）。ＰＬＤ１０は、書き換えられたコンフィグレーションデータをＪＴＡＧポート端子からＭＰＵ４０の汎用Ｉ／Ｏポート端子にＪＴＡＧプロトコルで送信する。ＭＰＵ４０は、汎用Ｉ／Ｏポート端子で受信したＰＬＤ１０のコンフィグレーションデータを上記書き換え用コンフィグレーションデータと比較することにより検証する。検証の結果、ＰＬＤ１０のコンフィグレーションデータに誤りがある場合は、ステップＳ２０４の処理を再度実行するか、あるいはエラーコードを出力したり、ＭＰＵ４０に対して割り込みを発生させたりすることができる。
【００７３】
ＰＬＤ１０は、コンフィグレーションデータが書き換えられた後、すぐに動作を開始することができる。あるいは、コンフィグレーションデータが書き換えられた後にＭＰＵ４０のポート４端子から配線８９に出力されるＰＬＤリセット信号がインアクティブになった直後から動作を開始するように構成することもできる。
【００７４】
そして、ＰＬＤ１０は上記ステップＳ１０２のＭＰＵ４０の起動処理を実行する。ここで、上述のとおりバッファー回路６０がインアクティブ状態であるので、ＰＬＤ１０からのＭＰＵ制御信号は電気的に切り離されているものの、出力１端子および出力２端子はプルアップ抵抗により「ハイレベル」に論理固定されている。したがって、電源ＩＣ７０はイネーブル状態を維持し、電源ＩＣ７０の電源出力端子は所定の電源電圧を出力する。その結果、ＰＬＤ１０は、電源ＩＣ７０の電源監視端子から出力される電源監視信号によってＭＰＵ４０の起動処理が通常通り実施されていると判断する。
【００７５】
なお、ＰＬＤ１０で実行されるＭＰＵ４０の起動シーケンスでは、ＭＰＵ４０のリセット制御も行なわれている。したがって、上記起動シーケンスが完了する前にＭＰＵ４０のポート３端子から「ローレベル」を出力にして、バッファー回路６０をイネーブルにすると、ＭＰＵ４０自身にリセットがかかってしまう。その場合は、ＰＬＤ１０にはリセットがかからず、ＭＰＵ４０のみがリセットにより初期化されるため、ＰＬＤ１０とＭＰＵ４０の初期化が適切に同期できないため、好ましくない。
【００７６】
次に、ＭＰＵ制御信号の遮断を解除する（ステップＳ２０６）。ＭＰＵ４０は、ＰＬＤ１０によるシーケンスが完了するまでの時間を待ち合わせたのち、ポート３端子から出力するバッファーイネーブル信号をアクティブにしてバッファー回路６０をイネーブル状態に戻す。
【００７７】
次に、通常動作モードに移行する（ステップＳ２０７）。ＭＰＵ４０は、ＰＬＤ１０の動作モードをＰＬＤ書き換え動作モードから通常動作モードに切り替える。
【００７８】
次に、システム全体を初期化する（ステップＳ２０８）。ＭＰＵ４０は、ポート４端子から出力するＰＬＤ１０のＰＬＤリセット信号をアクティブにすることで電子装置１００全体を初期化する。
【００７９】
このように、図３に示す本実施形態のＰＬＤのコンフィグレーションデータを書き換える方法では、まず、ＰＬＤ１０の書き換え用のコンフィグレーションデータを取得する。そして、バッファー回路６０がＭＰＵ４０の電源およびリセットを制御するＭＰＵ制御信号を遮断した上で、ＭＰＵ４０は、ＰＬＤ１０のコンフィグレーションデータを書き換える。
【００８０】
以上のとおり、本実施形態の電子装置１００および書き換え方法は下記の効果を奏する。
【００８１】
ＭＰＵ４０は、ＰＬＤ１０のコンフィグレーションデータを書き換えている間、ＭＰＵ４０の電源およびリセットを制御するＭＰＵ制御信号を遮断するので、ＰＬＤ１０のコンフィグレーションデータをＭＰＵ４０から正常に書き換えられる。
【００８２】
（第２の実施形態）
第２の実施形態の電子装置は、第１の実施形態の電子装置の構成に加えて、通常動作モード時にＭＰＵがリード／ライトするメモリを有する。以下では、第１の実施形態と同一の構成については説明を省略する。
【００８３】
図４は、第２の実施形態におけるＰＬＤを備えた電子装置の概略構成を示すブロック図である。図４に示すように、本実施形態の電子装置１００は、セレクター９０およびメモリ９５を有する。なお、図４において、ＰＬＤクロック生成部、リセットＩＣおよびＭＰＵクロック生成部の図示を省略している。
【００８４】
セレクター９０は、ＭＰＵ４０の汎用Ｉ／Ｏポートからのデータを入力し、ＰＬＤ１０のＪＴＡＧポートまたはメモリ９５のデータＩ／Ｏポートに対して出力する。セレクター９０は、ポートＡ、ポートＢ、ポートＣおよびセレクトの各端子を有する。ポートＡ端子はＭＰＵ４０の汎用Ｉ／Ｏポート端子に接続され、ポートＢ端子はＰＬＤ１０のＪＴＡＧポート端子に接続され、ポートＣ端子はメモリ９５のデータＩ／Ｏポート端子に接続され、セレクト端子はＭＰＵ４０のポート３端子に接続される。
【００８５】
メモリ９５は、図示しないＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭなどの記憶デバイスを備える。通常動作モードでは、セレクター９０によってＭＰＵ４０の汎用Ｉ／Ｏポート端子とメモリ９５のデータＩ／Ｏポート端子との間が接続される。ＭＰＵ４０は、メモリ９５へソフトウェアプログラムやデータを書き込んだり、メモリ９５からソフトウェアプログラムやデータを読み出したりする。
【００８６】
一方、ＰＬＤ書き換え動作モードでは、ＭＰＵ４０は、バッファー回路６０をディセーブルにするとともに、セレクター９０によってＭＰＵ４０の汎用Ｉ／Ｏポート端子とＰＬＤ１０のＪＴＡＧポート端子との間を接続する。ＭＰＵ４０は、第１の実施形態におけるＰＬＤコンフィグレーションデータの書き換えの手順と同様に、ＰＬＤ１０のコンフィグレーションデータの書き換えおよび電子装置１００全体の初期化を実行する。
【００８７】
ＭＰＵ４０の汎用ＩＯポートは、通常動作モード時はメモリ９５とのインタフェースをエミュレートしてリード／ライトを実行し、ＰＬＤ書き換え動作モード時はＪＴＡＧプロトコルをエミュレートしてＰＬＤ１０のコンフィグレーションデータを書き換える。
【００８８】
このように、本実施形態では、通常動作モードにおいて、ＭＰＵ４０がメモリ９５に対してリード／ライトを実行できるように、ＭＰＵ４０の汎用Ｉ／Ｏポート端子とメモリ９５のデータＩ／Ｏポート端子との間が接続される。一方、ＰＬＤ書き換え動作モードでは、ＭＰＵ４０がＰＬＤ１０のコンフィグレーションデータを書き換えられるように、バッファー回路６０がディセーブルされるとともに、ＭＰＵ４０の汎用Ｉ／Ｏポート端子とＰＬＤ１０のＪＴＡＧポート端子との間が接続される。
【００８９】
以上のとおり、本実施形態の電子装置１００および書き換え方法は、第１の実施形態の効果に加えて下記の効果を奏する。
【００９０】
ＭＰＵ４０は、動作モードに応じてＰＬＤ１０とメモリ９５とのいずれかに汎用Ｉ／Ｏポートのアクセス先を変更できるので、汎用Ｉ／Ｏポートを増設する必要はない。
【００９１】
（第３の実施形態）
第３の実施形態では、第１の実施形態の電子装置の構成に加えて、ＭＰＵがＰＬＤのポート１端子およびポート２端子の出力を確認する構成を有する。以下では、第１の実施形態と同一の構成については説明を省略する。
【００９２】
図５は、第３の実施形態におけるＰＬＤを備えた電子装置の概略構成を示すブロック図である。図５に示すように、本実施形態では、ＭＰＵ４０はポート６端子およびポート７端子を有し、それぞれＰＬＤ１０のポート１端子およびポート２端子に接続されている。
【００９３】
本実施形態では、第１の実施形態と同様の手順でＭＰＵ４０の汎用ポートからＰＬＤ１０のＪＴＡＧポートにＪＴＡＧプロトコルでコンフィグレーションデータの書き換えデータを送信する。ＭＰＵ４０は、ＰＬＤ１０のコンフィグレーションデータを書き換えた後に当該データを検証する。そして、ＭＰＵ４０は、ポート４端子からＰＬＤリセット信号を出力してＰＬＤ１０をリセットし、ＰＬＤ１０のリセットに十分な時間が経過した後、リセットを解除する。
【００９４】
ＭＰＵ４０は、リセットを解除してからＰＬＤ１０のポート１端子およびポート２端子から出力される信号の論理とそれらのタイミングとが適切か否かを確認することにより、ＰＬＤ１０のコンフィグレーションデータの書き換えが適切に実行さたか否かを確認する。
【００９５】
このように、本実施形態では、ＭＰＵ４０の起動に関わる電源およびリセットシーケンスをポート６端子およびポート７端子を通じて直接的に確認する。
【００９６】
以上のとおり、本実施形態の電子装置１００および書き換え方法は、第１および第２の実施形態の効果に加えて下記の効果を奏する。
【００９７】
ＭＰＵ４０の起動に関わる電源およびリセットシーケンスをポート６端子およびポート７端子を通じて直接的に確認し、ＭＰＵ４０が起動できなくなる場合を事前に検出して再度ＰＬＤ１０の書き換えを実施できる。したがって、ＭＰＵ４０がＰＬＤ１０のコンフィグレーションデータの書き換えに失敗しても、ＭＰＵ４０が起動できなくなる事態を回避することが可能となる。
【００９８】
以上のとおり、実施形態において、本発明のＰＬＤを備えた電子装置について説明した。しかしながら、本発明は、その技術思想の範囲内において当業者が適宜に追加、変形、および省略することができることはいうまでもない。
【００９９】
たとえば、上述の第１〜第３の実施形態では、ＰＬＤがＭＰＵの電源およびリセットを制御する場合について説明した。しかしながら、本発明はＰＬＤがＭＰＵの電源およびリセットを制御する場合に限定されず、ＰＬＤが種々のデバイスの電源およびリセットを制御する場合に適用できる。
【０１００】
また、上述の第１〜第３の実施形態では、ＰＬＤがＭＰＵの電源およびリセットの両方を制御する場合について説明した。しかしながら、本発明は、ＰＬＤがＭＰＵの電源およびリセットの両方を制御する場合に限定されず、ＰＬＤがＭＰＵの電源およびリセットの少なくともいずれかを制御する場合にも適用できる。
【０１０１】
また、上述の第２の実施形態では、通常動作モードにおいてＭＰＵの汎用Ｉ／Ｏポートのアクセス先がメモリである場合について説明した。しかしながら、本発明は、通常動作モードにおいてＭＰＵの汎用Ｉ／Ｏポートのアクセス先がメモリである場合に限定されず、通常動作モードにおいてＭＰＵの汎用Ｉ／Ｏポートのアクセス先が他のデバイスである場合にも適用できる。
【符号の説明】
【０１０２】
１０  ＰＬＤ、
２０  ＰＬＤクロック生成部、
３０  リセットＩＣ、
４０  ＭＰＵ、
５０  ＭＰＵクロック生成部、
６０  バッファー回路、
７０  電源ＩＣ、
８０〜８９  配線、
９０  セレクター、
９５  メモリ。
【図１】
0006036719.tif 000002
【図２】
0006036719.tif 000003
【図３】
0006036719.tif 000004
【図４】
0006036719.tif 000005
【図５】
0006036719.tif 000006