Changes between Version 3 and Version 4 of Watch_dog_for_RPi
- Timestamp:
- May 22, 2015 1:24:25 PM (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Watch_dog_for_RPi
v3 v4 1 = RPi用のウォッチドックタイマ の使い方 =1 = RPi用のウォッチドックタイマー の使い方 = 2 2 3 3 [https://www.switch-science.com/catalog/2253/ Raspberry Pi Model B用ウォッチドッグ基板] 販売ページ … … 6 6 [[BR]] 7 7 [[BR]] 8 === ウォッチドックタイマーとは === 9 ウォッチドッグタイマー (watchdog timer) はメインの処理とは独立したハードウェアタイマー(時間計測器)です。[[BR]] 8 10 11 一般的に、このタイマーはメイン処理から定期的に更新されるように設定します。 この場合、メインのプログラムがハングアップなどの不正な状態に陥りタイマーが更新されなくなると、タイマーに設定された時間をオーバーフローします(タイムアウト)。 このタイムアウトを利用して、システムに例外処理を発生させ、システム全体の耐障害性を高める仕組みの一つです。[[BR]] 12 13 例外処理の方法には、ハングアップしたシステムを正常動作に戻すことを目的として、システムをリセットする(リセット)、電源切断によりシステムを強制停止させる(シャットダウン)、電源を切断した後に再投入する(リブート)、などがあります。[[BR]] 14 15 16 ---- 9 17 == ◆ 特徴 == 10 18 - Raspberry Piにウォッチドッグ機能(以下WD機能)を追加する電源供給基板 … … 13 21 - 異常を検出したときは、Raspberry Piへの電源供給を一時停止し、電源再投入してRaspberry Piの再起動を促す。 14 22 [[BR]] 15 23 ---- 16 24 == ◆ Raspberry Pi Model B用ウォッチドッグ基板のハードウェア == 17 25 - 右下のDCジャックは5V入力専用 … … 21 29 [[Image(Watch_dog_for_RPi_04_Function.jpg)]] 22 30 [[BR]] 23 31 ---- 24 32 == ◆ Raspberry Pi Model B+用ウォッチドッグ基板のハードウェア == 25 33 - 右下のDCジャックは5V入力専用 … … 30 38 [[Image(Watch_dog_for_RPi_BP_04_Function.jpg)]] 31 39 [[BR]] 32 40 ---- 33 41 == ◆ マイコンのウォッチドッグプログラムの状態遷移 == 42 [[Image(prog_state.jpg)]] 43 === 各ステート時のLEDの光り方 === 34 44 - WD_default時には、ステートLEDが約2.56秒に1回点滅 35 45 - WD_Active時には、ステートLEDが約0.32秒に1回LED点滅 36 46 - WD_ReBoot時には、ステートLEDが約0.08秒に1回LED点滅 37 [[Image(prog_state.jpg)]]38 47 [[BR]] 48 ---- 49 == ◆ 使用方法 == 50 ウォッチドッグ基板は、初期状態でGPIO17を監視しながら上記の状態遷移を自動で繰り返すので、特に設定することはありません(タイマー時間は固定です)。唯一LEDの点灯だけは標準で消灯となっているので、用途に合わせてジャンパをショートしてください。その場合、マイコンの状態がLEDに反映されます。[[BR]] 39 51 40 == ◆ 使用方法 == 41 ウォッチドッグ基板は、初期状態でGPIO17を監視しながら上記の状態遷移を自動で繰り返すので、特に設定することはありません。唯一LEDの点灯だけは標準で消灯となっているので、用途に合わせてジャンパをショートしてください。その場合、マイコンの状態がLEDに反映されます。[[BR]] 52 '''Raspberry Pi側で準備する事は、ブートアップして準備が整ったら、監視ポート(標準ではGPIO17)に約4秒ごとにパルス信号を出すプログラムを走らせる事です'''。このパルスを出すプログラムは、メインのプログラムでも専用のプログラムでも(あるいは両方でも)可能です。[[BR]] 42 53 43 '''Raspberry Pi側で準備する事は、ブートアップして準備が整ったら、監視ポート(標準ではGPIO17)の信号を4秒以内に1回トグルするプログラムを走らせ続ける事です。'''マイコンは最初にトグルエッジを5回検出すると、自動的にウォッチドッグ動作を有効にし、それ以降、異常検出のための監視を続けます。(初期トグルの間隔は無制限)[[BR]]54 ウォッチドック基板のマイコンは、パルスの立下りエッジを5回検出すると自動的にウォッチドッグ動作を有効にし、それ以降、異常検出のためのポートの監視を続けます(初期化パルスの検出)。この時の初期化パルスの間隔には時間制限はありません。[[BR]] 44 55 45 トグルをするプログラムは、メインのプログラムでも専用のプログラムでも(あるいは両方でも)可能です。エッジは0.1秒~5秒未満に1回検出できれば不規則な間隔であっても単独のエッジとみなされます。よって監視ポートを0.1秒~5秒未満に1回トグルし続ければリブートはかかりません。なおトグルの間隔は、余裕を見て0.5秒~4秒程度に設定する事をお勧めします。[[BR]]56 ウォッチドッグが有効になってからも、監視ポートに特定時間に1回パルスを出し続ければ、ウォッチドッグカウンターが更新されてリブートはかかりません。パルスは0.1秒~5秒未満に1回検出できれば有効で、この間隔が不規則であってもウォッチドッグカウンターは更新されます。なおパルスの間隔は、余裕を見て0.5秒~4秒程度に設定する事をお勧めします。[[BR]] 46 57 47 もしGPIO17を利用出来ない場合は、他のGPIOピンを監視ポートにすることも可能です。その時は、基板上のGPIO17のジャンパをカットし、利用したいポートのジャンパをショートしてください。同時にRaspberry Pi側の 出力もそのポートに変更してください。[[BR]]58 もしGPIO17を利用出来ない場合は、他のGPIOピンを監視ポートにすることも可能です。その時は、基板上のGPIO17のジャンパをカットし、利用したいポートのジャンパをショートしてください。同時にRaspberry Pi側のパルス出力もそのポートに変更してください。[[BR]]