(57)【要約】【課題】ユーザ側ルーチンにおけるオーバーフロー時間の設定に影響を与えることなく、所定の領域に対応するルーチンを組み込む。【解決手段】ＣＰＵ３０におけるプログラムカウンタ２０の値と所定の領域のアドレスとを比較する実行アドレス検出部１２と、プログラムカウンタ２０の値が所定の領域内に入ったことを実行アドレス検出部１２が示す場合に第１のオーバーフロー時間がセットされるタイマカウント部１５と、プログラムカウンタ２０の値が所定の領域を外れたことを実行アドレス検出部１２が示す場合にタイマカウント部１５をクリアする要求信号を生成するカウンタクリア制御部１４と、を備える。【選択図】図１
2010191616.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置におけるプログラムカウンタの値と所定の領域のアドレスとを比較する実行アドレス検出部と、
前記プログラムカウンタの値が前記所定の領域内に入ったことを前記実行アドレス検出部が示す場合に第１のオーバーフロー時間がセットされるタイマカウント部と、
前記プログラムカウンタの値が前記所定の領域を外れたことを前記実行アドレス検出部が示す場合に前記タイマカウント部をクリアする要求信号を生成するカウンタクリア制御部と、
を備えることを特徴とするウォッチドッグタイマ。
【請求項２】
前記第１のオーバーフロー時間は、前記中央処理装置が前記所定の領域中のプログラムを実行する場合の実行時間に比べて長いことを特徴とする請求項１記載のウォッチドッグタイマ。
【請求項３】
前記タイマカウント部に対してオーバーフロー時間を設定するオーバーフロー時間設定部を備え、
前記オーバーフロー時間設定部は、前記プログラムカウンタの値が前記所定の領域外にあることを前記実行アドレス検出部が示す場合に、前記第１のオーバーフロー時間より短い第２のオーバーフロー時間をセットすることを特徴とする請求項１または２記載のウォッチドッグタイマ。
【請求項４】
前記第１のオーバーフロー時間の設定を許可する設定許可レジスタを備えることを特徴とする請求項１または２記載のウォッチドッグタイマ。
【請求項５】
中央処理装置におけるプログラムカウンタの値と所定の領域のアドレスとを比較するステップと、
前記比較の結果、前記プログラムカウンタの値が前記所定の領域内に入ったことを示す場合に第１のオーバーフロー時間をタイマカウント部にセットするステップと、
前記比較の結果、前記プログラムカウンタの値が前記所定の領域を外れたことを示す場合に前記タイマカウント部をクリアする要求信号を生成するステップと、
を含むことを特徴とするウォッチドッグタイマの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウォッチドッグタイマとその制御方法に係り、特に、マイクロコントローラに用いられるウォッチドッグタイマにおけるオーバーフロー時間の設定技術に係る。
【背景技術】
【０００２】
マイクロコントローラ（マイクロコンピュータ）などでは、プログラムの実行の際にプログラムの暴走を検出するためにウォッチドッグタイマが一般的に用いられる。このようなウォッチドッグタイマに関し、最適なタイマ初期化許可期間が異なる複数のイベントが存在する場合でも、確実にマイクロコントローラの暴走を検出することが可能なウォッチドッグタイマの制御回路が特許文献１において記載されている。このような制御回路によれば、マイクロコントローラが複数の処理時間の異なるイベントを実行する場合でも、マイクロコントローラが実行するイベントに応じたウォッチドッグタイマの最適な初期化許可期間を選択して、確実にマイクロコントローラの暴走を検出でき、マイクロコントローラの信頼性を向上させることができる。このようなウォッチドッグタイマでは、オーバーフロー時間の設定は、一定の値に設定され、その値は、通常、数十ｍｓ〜数百ｍｓである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−６７２２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以下の分析は本発明において与えられる。
【０００５】
組み込みタイプのマイクロコントローラでは、例えばフラッシュメモリの書き込みや消去のルーチンは、マイクロコントローラと共にユーザに提供され、ユーザのルーチンに組み込まれる。ウォッチドッグタイマのオーバーフロー時間は、通常のルーチンでは数十ｍｓ〜数百ｍｓであるのに対し、フラッシュメモリの書き込みや消去のルーチンでは、処理時間がかかり、例えば数Ｓ以上に設定する必要がある。したがって、オーバーフロー時間がユーザの設定値である数十ｍｓ〜数百ｍｓのままであると、フラッシュメモリの書き込みや消去のルーチン中においてウォッチドッグタイマのオーバーフローが発生してしまい、フラッシュメモリの書き込みや消去を適切に行うことができない。このため、ユーザのルーチンに影響を与えることなく、フラッシュメモリの書き込みや消去などの特別なルーチンを提供しようとする場合、ユーザ側でオーバーフロー時間の設定を変更しない限り、特別なルーチンを組み込むことができなくなってしまう。
【課題を解決するための手段】
【０００６】
本発明の１つのアスペクト（側面）に係るウォッチドッグタイマは、中央処理装置におけるプログラムカウンタの値と所定の領域のアドレスとを比較する実行アドレス検出部と、プログラムカウンタの値が所定の領域内に入ったことを実行アドレス検出部が示す場合に第１のオーバーフロー時間がセットされるタイマカウント部と、プログラムカウンタの値が所定の領域を外れたことを実行アドレス検出部が示す場合にタイマカウント部をクリアする要求信号を生成するカウンタクリア制御部と、を備える。
【０００７】
本発明の他のアスペクト（側面）に係るウォッチドッグタイマの制御方法は、中央処理装置におけるプログラムカウンタの値と所定の領域のアドレスとを比較するステップと、比較の結果、プログラムカウンタの値が所定の領域内に入ったことを示す場合に第１のオーバーフロー時間をタイマカウント部にセットするステップと、比較の結果、プログラムカウンタの値が所定の領域を外れたことを示す場合にタイマカウント部をクリアする要求信号を生成するステップと、を含む。
【発明の効果】
【０００８】
本発明によれば、所定の領域のアドレスのプログラムに対して設定されるオーバーフロー時間を他の領域に対し設定されるオーバーフロー時間とは無関係に設定可能である。したがって、ユーザ側ルーチンにおけるオーバーフロー時間の設定に影響を与えることなく、所定の領域に対応するルーチンを組み込むことができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施例に係るウォッチドッグタイマの構成を示すブロック図である。
【図２】実行アドレス検出部の構成を示すブロック図である。
【図３】実行アドレス検出部のより詳細の構成を示す図である。
【図４】オーバーフロー時間設定部のより詳細の構成を示す図である。
【図５】ＣＰＵのアドレス空間においてウォッチドッグタイマの設定に係る動作を模式的に示す図である。
【図６】ウォッチドッグタイマの動作を表すタイミングチャートである。
【発明を実施するための形態】
【００１０】
本発明の実施形態に係るウォッチドッグタイマ（図１の１０）は、中央処理装置（図１の３０）におけるプログラムカウンタ（図１の２０）の値と所定の領域のアドレスとを比較する実行アドレス検出部（図１の１２）と、プログラムカウンタの値が所定の領域内に入ったことを実行アドレス検出部が示す場合に第１のオーバーフロー時間がセットされるタイマカウント部（図１の１５）と、プログラムカウンタの値が所定の領域を外れたことを実行アドレス検出部が示す場合にタイマカウント部をクリアする要求信号を生成するカウンタクリア制御部（図１の１４）と、を備える。
【００１１】
第１のオーバーフロー時間は、中央処理装置が所定の領域中のプログラムを実行する場合の実行時間に比べて長いことが好ましい。
【００１２】
タイマカウント部に対してオーバーフロー時間を設定するオーバーフロー時間設定部（図１の１３）を備え、オーバーフロー時間設定部は、プログラムカウンタの値が所定の領域外にあることを実行アドレス検出部が示す場合に、第１のオーバーフロー時間より短い第２のオーバーフロー時間をセットすることが好ましい。
【００１３】
第１のオーバーフロー時間の設定を許可する設定許可レジスタ（図１の１１）を備えるようにしてもよい。この設定許可レジスタを禁止状態にセットすることで、プログラムカウンタの値が所定の領域内にあるか否かに係らずタイマカウント部のオーバーフロー時間を第２のオーバーフロー時間とすることができる。
【００１４】
以上のようなウォッチドッグタイマによれば、所定の領域のアドレスのプログラムに対して設定される第１のオーバーフロー時間を他の領域に対し設定される第２のオーバーフロー時間とは無関係に設定可能である。したがって、他の領域に存在するユーザ側ルーチンにおけるオーバーフロー時間の設定に影響を与えることなく、所定の領域に対応するルーチンを組み込むことができる。
【００１５】
以下、実施例に即し、図面を参照して詳しく説明する。
【実施例１】
【００１６】
図１は、本発明の第１の実施例に係るウォッチドッグタイマの構成を示すブロック図である。図１において、ウォッチドッグタイマ１０は、設定許可レジスタ１１、実行アドレス検出部１２、オーバーフロー時間設定部１３、カウンタクリア制御部１４、タイマカウント部１５を備える。
【００１７】
設定許可レジスタ１１において、プログラムカウンタ２０の値Ｐｃが特定領域にある場合に特定領域用オーバーフロー時間をタイマカウント部１５に設定するか否かの情報がＣＰＵ３０によって設定される。設定許可レジスタ１１は、タイマカウント部１５に特定領域用オーバーフロー時間を設定する場合には、設定許可信号Ｓｐをアクティブとして実行アドレス検出部１２およびオーバーフロー時間設定部１３に出力する。
【００１８】
実行アドレス検出部１２は、特定領域開始アドレスおよび特定領域終了アドレスを表す領域情報Ａｉと、プログラムカウンタ２０の値ＰｃとをＣＰＵ３０から入力する。そして、プログラムカウンタ２０の値Ｐｃが特定領域内の値である場合、実行領域信号Ｓａをアクティブとしてオーバーフロー時間設定部１３に出力する。また、設定許可信号Ｓｐがアクティブであって、プログラムカウンタ２０の値Ｐｃが特定領域内に入った場合および特定領域から外れた場合に、カウンタクリア要求信号Ｒｃをアクティブとしてカウンタクリア制御部１４に出力する。
【００１９】
オーバーフロー時間設定部１３において、通常領域用オーバーフロー時間および特定領域用オーバーフロー時間を表すオーバーフロー時間情報ＴｏｖがＣＰＵ３０によって設定される。オーバーフロー時間設定部１３は、実行領域信号Ｓａおよび設定許可信号Ｓｐがアクティブである場合に特定領域用オーバーフロー時間をオーバーフロー時間信号Ｓｏｔとしてタイマカウント部１５に出力し、実行領域信号Ｓａおよび設定許可信号Ｓｐの少なくとも一方がアクティブではない場合に通常領域用オーバーフロー時間をオーバーフロー時間信号Ｓｏｔとしてタイマカウント部１５に出力する。
【００２０】
カウンタクリア制御部１４は、ＣＰＵ３０からクリア命令Ｃｌあるいは実行アドレス検出部１２からカウンタクリア要求信号Ｒｃが入力された場合にカウンタクリア信号Ｃｃをタイマカウント部１５に出力する。
【００２１】
タイマカウント部１５は、カウンタクリア信号Ｃｃによってクリアされた後、ウォッチドッグタイマ用のクロック信号ＷＤＴのパルスをカウントし、カウント値がオーバーフロー時間信号Ｓｏｔに相当する値に達したならばオーバーフロー信号ＳｏｖをＣＰＵ３０に出力する。
【００２２】
ＣＰＵ３０は、オーバーフロー信号Ｓｏｖによって割り込み等を発生し、プログラム暴走に対応する処理、例えばリセット処理等を行う。
【００２３】
次に、実行アドレス検出部１２の詳細について説明する。図２は、実行アドレス検出部の構成を示すブロック図である。また、図３は、実行アドレス検出部のより詳細の構成を示す図である。図２、図３において、実行アドレス検出部１２は、領域情報保持部２１、実行領域検出部２２、カウンタクリア要求生成部２５を備え、実行領域検出部２２は、アドレス一致検出部２３、領域移動検出部２４を備える。
【００２４】
領域情報保持部２１は、ＣＰＵ３０から出力される領域情報Ａｉである特定領域開始アドレスＡｄ１および特定領域終了アドレスＡｄ２を保持する。
【００２５】
アドレス一致検出部２３は、比較器ＣＭＰ１、ＣＭＰ２、ＡＮＤ回路ＡＮＤ１を備える。比較器ＣＭＰ１は、プログラムカウンタ２０の値Ｐｃと特定領域開始アドレスＡｄ１とを比較し、Ｐｃ≧Ａｄ１であるならば、ＨレベルをＡＮＤ回路ＡＮＤ１の一方の入力端に出力する。比較器ＣＭＰ２は、プログラムカウンタ２０の値Ｐｃと特定領域終了アドレスＡｄ２とを比較し、Ｐｃ≦Ａｄ２であるならば、ＨレベルをＡＮＤ回路ＡＮＤ１の他方の入力端に出力する。ＡＮＤ回路ＡＮＤ１は、Ａｄ１≦Ｐｃ≦Ａｄ２の場合に実行領域信号Ｓａをアクティブ（Ｈレベル）としてオーバーフロー時間設定部１３および領域移動検出部２４に出力する。すなわち、アドレス一致検出部２３は、プログラムカウンタ２０の値Ｐｃが特定領域開始アドレスＡｄ１および特定領域終了アドレスＡｄ２の間にあるか否かを検出し、間にある場合、すなわち特定領域にある場合、実行領域信号Ｓａをアクティブとしてオーバーフロー時間設定部１３および領域移動検出部２４に出力する。
【００２６】
領域移動検出部２４は、フリップフロップ回路ＦＦ１、ＡＮＤ回路ＡＮＤ２、ＡＮＤ３、ＯＲ回路ＯＲ１を備える。フリップフロップ回路ＦＦ１は、クロック信号ＷＤＴによって実行領域信号Ｓａをラッチし、ＡＮＤ回路ＡＮＤ２の一方の入力端に出力する。また、フリップフロップ回路ＦＦ１は、出力信号を論理反転してＡＮＤ回路ＡＮＤ３の一方の入力端に出力する。ＡＮＤ回路ＡＮＤ２は、他方の入力端に実行領域信号Ｓａの論理反転信号を入力し、ＯＲ回路ＯＲ１の一方の入力端に出力する。ＡＮＤ回路ＡＮＤ３は、他方の入力端に実行領域信号Ｓａを入力し、ＯＲ回路ＯＲ１の他方の入力端に出力する。ＯＲ回路ＯＲ１は、出力信号をカウンタクリア要求生成部２５に出力する。すなわち、領域移動検出部２４は、実行領域信号Ｓａがインアクティブからアクティブになったことおよびアクティブからインアクティブになったこと、すなわちプログラムカウンタ２０の値Ｐｃが特定領域に入ったことおよび特定領域から外れたことを検出し、カウンタクリア要求生成部２５に出力する。
【００２７】
カウンタクリア要求生成部２５は、ＮＡＮＤ回路ＮＡＮＤ１を備える。ＮＡＮＤ回路ＮＡＮＤ１は、一方の入力端にＯＲ回路ＯＲ１の出力信号を入力し、他方の入力端に設定許可信号Ｓｐを入力してカウンタクリア要求信号Ｒｃとして出力する。すなわち、カウンタクリア要求生成部２５は、設定許可信号Ｓｐがアクティブであって、プログラムカウンタ２０の値Ｐｃが特定領域に入った場合および特定領域から外れた場合に、カウンタクリア要求信号Ｒｃをアクティブ（Ｌレベル）としてカウンタクリア制御部１４に出力する。
【００２８】
次に、オーバーフロー時間設定部１３に詳細について説明する。図４は、オーバーフロー時間設定部のより詳細の構成を示す図である。図４において、オーバーフロー時間設定部１３は、オーバーフロー時間情報保持部２６、オーバーフロー時間選択部２７を備える。
【００２９】
オーバーフロー時間情報保持部２６は、ＣＰＵ３０から出力されるオーバーフロー時間情報Ｔｏｖである特定領域用オーバーフロー時間Ｔ１および通常領域用オーバーフロー時間Ｔ２を保持する。通常領域用オーバーフロー時間Ｔ２は、例えば数十ｍｓ〜数百ｍｓである。特定領域用オーバーフロー時間Ｔ１は、Ｔ２より長く、例えば数ｓである。
【００３０】
オーバーフロー時間選択部２７は、ＡＮＤ回路ＡＮＤ４、セレクタＳＥＬ１、レジスタＲＥＧを備える。ＡＮＤ回路ＡＮＤ４は、一方の入力端に実行領域信号Ｓａを入力し、他方の入力端に設定許可信号Ｓｐを入力し、出力をセレクタＳＥＬのセレクタ信号とする。セレクタＳＥＬは、実行領域信号Ｓａおよび設定許可信号Ｓｐがアクティブ（Ｈレベル）の場合に特定領域用オーバーフロー時間Ｔ１を選択し、実行領域信号Ｓａおよび設定許可信号Ｓｐの少なくとも一方がインアクティブ（Ｌレベル）の場合に通常領域用オーバーフロー時間Ｔ２を選択して、レジスタＲＥＧに出力する。レジスタＲＥＧは、クロック信号ＷＤＴによってセレクタＳＥＬの出力信号をラッチしてオーバーフロー時間信号Ｓｏｔとして出力する。
【００３１】
次に、ＣＰＵ３０の動作について説明する。図５は、ＣＰＵのアドレス空間においてウォッチドッグタイマの設定に係る動作を模式的に示す図である。図５において、ＣＰＵ３０は、通常領域Ａ２でプログラム実行中に特定領域Ａ１でのプログラム実行が必要となった場合、例えばジャンプ命令やサブルーチンコール命令によって、プログラムカウンタ２０の値ＰｃをＪ１のように移動させる。この時、ウォッチドッグタイマ１０は、プログラムカウンタ２０の値Ｐｃが特定領域Ａ１に入ったことで、タイマカウント部１５をクリアして特定領域用オーバーフロー時間Ｔ１をタイマカウント部１５に設定する。この場合、特定領域用オーバーフロー時間Ｔ１は、特定領域Ａ１中のプログラム（ルーチン）の実行期間よりも長い時間とする。その後、ＣＰＵ３０は、特定領域Ａ１中のプログラムを実行する。同時にタイマカウント部１５は、クロック信号ＷＤＴをカウントして行く。
【００３２】
ＣＰＵ３０は、特定領域Ａ１中のプログラムの実行を終了した場合、例えばジャンプ命令やリターン命令によって、プログラムカウンタ２０の値ＰｃをＪ２のように移動させる。この時、ウォッチドッグタイマ１０は、プログラムカウンタ２０の値Ｐｃが特定領域Ａ１から外に出たことでタイマカウント部１５をクリアして通常領域用オーバーフロー時間Ｔ２をタイマカウント部１５に設定する。その後、ＣＰＵ３０は、通常領域Ａ２中のプログラム（ルーチン）を実行する。この場合もタイマカウント部１５は、クロック信号ＷＤＴをカウントして行く。
【００３３】
もし、ウォッチドッグタイマ１０がオーバーフロー（タイマカウント部１５がオーバーフロー信号Ｓｏｖを出力）したならば、ＣＰＵ３０は、オーバーフロー信号Ｓｏｖによって割り込み等を発生し、プログラム暴走に対応した処理、例えばリセット処理等を行う。
【００３４】
以上説明したウォッチドッグタイマ１０の特定領域におけるオーバーフロー時間の設定動作は、設定許可レジスタ１１が許可状態にセットされている場合に有効である。図６は、ウォッチドッグタイマの動作を表すタイミングチャートである。
【００３５】
図６（Ａ）は、設定許可レジスタ１１が許可状態にセットされる場合を示す。図６（Ａ）において、タイミングｔ０でプログラムカウンタ２０の値Ｐｃが特定領域Ａ１に入った、すなわち実行領域信号Ｓａがアクティブ（Ｈレベル）となったとする。タイミングｔ０の次のクロックタイミングであるタイミングｔ１において、カウンタクリア要求信号Ｒｃをアクティブ（Ｌレベル）としてタイマカウント部１５をクリアして特定領域用オーバーフロー時間Ｔ１をタイマカウント部１５に設定する。その後、タイマカウント部１５は、クロック信号ＷＤＴによってカウントアップして行く。また、カウンタクリア要求信号Ｒｃは、タイミングｔ１の次のクロック信号ＷＤＴのタイミングであるタイミングｔ２において、インアクティブ（Ｈレベル）となる。
【００３６】
タイミングｔ３の直前でプログラムカウンタ２０の値Ｐｃが特定領域Ａ１外となった、すなわち実行領域信号Ｓａがインアクティブ（Ｌレベル）となったとする。タイミングｔ３において、カウンタクリア要求信号Ｒｃをアクティブ（Ｌレベル）としてタイマカウント部１５をクリアして通常領域用オーバーフロー時間Ｔ２をタイマカウント部１５に設定する。その後、タイマカウント部１５は、クロック信号ＷＤＴによってカウントアップして行く。また、カウンタクリア要求信号Ｒｃは、タイミングｔ３の次のクロック信号ＷＤＴのタイミングであるタイミングｔ４において、インアクティブ（Ｈレベル）となる。
【００３７】
図６（Ｂ）は、設定許可レジスタ１１が禁止状態にセットされる場合を示す。図６（Ｂ）において、タイミングｔ０でプログラムカウンタ２０の値Ｐｃが特定領域Ａ１に入った、すなわち実行領域信号Ｓａがアクティブ（Ｈレベル）となったとする。タイミングｔ０の次のクロックタイミングであるタイミングｔ１において、設定許可信号Ｓｐはインアクティブ（Ｌレベル）であるので、カウンタクリア要求信号Ｒｃは、インアクティブ（Ｈレベル）のまま変化しない。したがって、通常領域用オーバーフロー時間Ｔ２がタイマカウント部１５に設定されたままである。その後、タイマカウント部１５は、クロック信号ＷＤＴによってカウントアップして行く。
【００３８】
タイミングｔ３の直前でプログラムカウンタ２０の値Ｐｃが特定領域Ａ１外となった、すなわち実行領域信号Ｓａがインアクティブ（Ｌレベル）となったとする。タイミングｔ３において、設定許可信号Ｓｐはインアクティブ（Ｌレベル）であるので、カウンタクリア要求信号Ｒｃはインアクティブ（Ｈレベル）のまま変化しない。タイミングｔ３前と同様にタイマカウント部１５は、クロック信号ＷＤＴによってカウントアップして行く。
【００３９】
以上のように設定許可レジスタ１１を禁止状態にセットすることで、プログラムカウンタ２０の値Ｐｃが特定領域Ａ１内にあるか否かに係らずタイマカウント部１５のオーバーフロー時間は、通常領域用オーバーフロー時間Ｔ２となる。このような設定許可レジスタ１１を設けることで、プログラムが暴走した場合であっても、設定許可レジスタ１１を許可状態にセットすることが実行されない限り、特定領域用オーバーフロー時間Ｔ１は変更されることがなく、特定領域Ａ１に対応して組み込まれるルーチンの信頼性が高まる。
【００４０】
なお、前述の特許文献等の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００４１】
１０  ウォッチドッグタイマ
１１  設定許可レジスタ
１２  実行アドレス検出部
１３  オーバーフロー時間設定部
１４  カウンタクリア制御部
１５  タイマカウント部
２０  プログラムカウンタ
２１  領域情報保持部
２２  実行領域検出部
２３  アドレス一致検出部
２４  領域移動検出部
２５  カウンタクリア要求生成部
２６  オーバーフロー時間情報保持部
２７  オーバーフロー時間選択部
３０  ＣＰＵ
ＡＮＤ１〜ＡＮＤ４  ＡＮＤ回路
ＣＭＰ１、ＣＭＰ２  比較器
ＦＦ１  フリップフロップ回路
ＮＡＮＤ１  ＮＡＮＤ回路
ＯＲ１  ＯＲ回路
ＲＥＧ  レジスタ
ＳＥＬ１  セレクタ
【図１】
2010191616.tif 000003
【図２】
2010191616.tif 000004
【図３】
2010191616.tif 000005
【図４】
2010191616.tif 000006
【図５】
2010191616.tif 000007
【図６】
2010191616.tif 000008