H27春 午後問7の最後の問題のウォッチドッグタイマ
広告
まんさん
(No.1)
H27春 午後問7の最後の問題で
ウォッチドッグタイマによる割込は、タイマの周期が20ミリ秒間隔なのでそれよりは長い25ミリ秒後。と解説にあります。
ただ、図4のタイマのカウント値設定のところが0ミリ秒、測定信号待ちが10ミリ秒あるので、ウォッチドッグタイマの初期値設定の時点ではタイマは10ミリ秒より大きく、20ミリ秒未満になっているかといます。
するとイの15ミリ秒でも正解ではと思ってしまいます。
どなたか教えて頂けないでしょうか。
ウォッチドッグタイマによる割込は、タイマの周期が20ミリ秒間隔なのでそれよりは長い25ミリ秒後。と解説にあります。
ただ、図4のタイマのカウント値設定のところが0ミリ秒、測定信号待ちが10ミリ秒あるので、ウォッチドッグタイマの初期値設定の時点ではタイマは10ミリ秒より大きく、20ミリ秒未満になっているかといます。
するとイの15ミリ秒でも正解ではと思ってしまいます。
どなたか教えて頂けないでしょうか。
2025.03.05 06:19
jjon-comさん
★AP プラチナマイスター
(No.2)
応用情報 平成27年 春期 午後 問7 設問3
https://www.ap-siken.com/kakomon/27_haru/pm07.html
いいえ、そのような正常動作している状態では
ウォッチドッグタイマはその機能を発揮していません。
キーワード検索したら、このサイトの掲示板に次の解説が見つかりました。
https://www.ap-siken.com/bbs/1702.html
https://www.ap-siken.com/kakomon/27_haru/pm07.html
> ウォッチドッグタイマの初期値設定の時点では
> タイマは10ミリ秒より大きく、20ミリ秒未満になっているかといます。
いいえ、そのような正常動作している状態では
ウォッチドッグタイマはその機能を発揮していません。
ウォッチドッグタイマを使って,タイマ割込みソフトウェアが動作しているかを周期的に監視する。
つまり、図4のフロー図が動作していない異常発生時のためにウォッチドッグタイマが設けられています。キーワード検索したら、このサイトの掲示板に次の解説が見つかりました。
https://www.ap-siken.com/bbs/1702.html
2025.03.05 11:43
まんさん
(No.3)
ご回答ありがとうございます。自分の理解力が乏しいのかと思うのですが、、、
0ミリ秒…図4フロー開始。割込タイマ20ミリ秒セット
10ミリ秒後…測定信号が返ってくる
10ミリ秒~20ミリ秒未満…ウォッチドッグタイマスタート(○ミリ秒カウント開始)①
20ミリ秒後…図4フロー2回目開始。割込タイマ20ミリ秒セット
25ミリ秒後②
30ミリ秒後…測定信号が返ってくる
35ミリ秒後③、④
30ミリ秒~40ミリ秒未満…ウォッチドッグタイマスタート(○ミリ秒カウント開始)
40ミリ秒後…図4フロー3回目開始。割込タイマ20ミリ秒セット
45ミリ秒後⑤
ウォッチドッグタイマ設定値が15ミリ秒だと②~③の間にウォッチドッグタイマがゼロになり、そのときフローが動いていなければリセットする。
25ミリ秒だと、フローが動いていれば④、動いていなければ
④~⑤の間にウォッチドッグタイマがゼロになり、、、
となるので、15ミリ秒でも25ミリ秒でも成り立つように思えるのです。
0ミリ秒…図4フロー開始。割込タイマ20ミリ秒セット
10ミリ秒後…測定信号が返ってくる
10ミリ秒~20ミリ秒未満…ウォッチドッグタイマスタート(○ミリ秒カウント開始)①
20ミリ秒後…図4フロー2回目開始。割込タイマ20ミリ秒セット
25ミリ秒後②
30ミリ秒後…測定信号が返ってくる
35ミリ秒後③、④
30ミリ秒~40ミリ秒未満…ウォッチドッグタイマスタート(○ミリ秒カウント開始)
40ミリ秒後…図4フロー3回目開始。割込タイマ20ミリ秒セット
45ミリ秒後⑤
ウォッチドッグタイマ設定値が15ミリ秒だと②~③の間にウォッチドッグタイマがゼロになり、そのときフローが動いていなければリセットする。
25ミリ秒だと、フローが動いていれば④、動いていなければ
④~⑤の間にウォッチドッグタイマがゼロになり、、、
となるので、15ミリ秒でも25ミリ秒でも成り立つように思えるのです。
2025.03.05 18:33
boyonboyonさん
★AP シルバーマイスター
(No.4)
タイマ割り込みソフトウェアは、20ミリ秒周期で割り込みを発生して、フロー図の動作をします。この中にあるウォッチドッグタイマの初期値設定もフローの中に含まれるので、20ミリ秒ごとにウォッチドッグタイマの初期値設定が実行されます。
正常に動いていればこれの繰り返しです。
もし、どこかに異常があり処理が滞るようなことがあれば、ウォッチドッグタイマの初期値設定の実行に遅れが出て、ウォッチドッグタイマが20ミリ秒を越えてくると思われます。
ですから、ウォッチドッグタイマによって割り込みを発生させる間隔としては、正常時の20ミリ秒を超える値を設定することになります。
正常に動いていればこれの繰り返しです。
もし、どこかに異常があり処理が滞るようなことがあれば、ウォッチドッグタイマの初期値設定の実行に遅れが出て、ウォッチドッグタイマが20ミリ秒を越えてくると思われます。
ですから、ウォッチドッグタイマによって割り込みを発生させる間隔としては、正常時の20ミリ秒を超える値を設定することになります。
2025.03.06 00:38
jjon-comさん
★AP プラチナマイスター
(No.5)
20ミリ秒周期でタイマ割込みソフトウェアを呼び出しているということは、図4 タイマ割込みソフトウェアのフロー全体は20ミリ秒未満で実行が終わると想定しているわけです。例えばこんな感じ。
初期値設定 タイマのカウント値設定
1ミリ秒後 測定開始信号を出力
測定完了信号待ち
11ミリ秒後 距離データd2の取得
12ミリ秒後 予測時間tの算出
13ミリ秒後 d1←d2
14ミリ秒後 判断分岐[ d ]と分岐処理
16ミリ秒後 判断分岐[ e ]と分岐処理
18ミリ秒後 ウォッチドッグタイマの初期値設定
19ミリ秒後 割込み復帰
ウォッチドッグタイマを15ミリ秒に設定したなら、
16ミリ秒後 判断分岐[ e ]と分岐処理
を実行する前に
だと判断され、実行はリセットされます。結果、緊急ブレーキ信号は出力されません。
こんな比喩を思いつきました。
危険な水中ダイビング作業中の人がいるとする。トラブルなく作業が進んでいるなら20秒間隔で何らかの反応を返してくれ、と規則を決めた。それを監視(watchdog、番犬)し続けて、もしも25秒間なにも反応がなかったら意識がなくなったと判断して助けに行くから、というイメージです。
15秒経過時点でしゃしゃり出て助けに行く必要はないのです。つまり、
初期値設定 タイマのカウント値設定
1ミリ秒後 測定開始信号を出力
測定完了信号待ち
11ミリ秒後 距離データd2の取得
12ミリ秒後 予測時間tの算出
13ミリ秒後 d1←d2
14ミリ秒後 判断分岐[ d ]と分岐処理
16ミリ秒後 判断分岐[ e ]と分岐処理
18ミリ秒後 ウォッチドッグタイマの初期値設定
19ミリ秒後 割込み復帰
ウォッチドッグタイマを15ミリ秒に設定したなら、
16ミリ秒後 判断分岐[ e ]と分岐処理
を実行する前に
> 図4のフロー図が動作していない異常発生時(No.2)
だと判断され、実行はリセットされます。結果、緊急ブレーキ信号は出力されません。
こんな比喩を思いつきました。
危険な水中ダイビング作業中の人がいるとする。トラブルなく作業が進んでいるなら20秒間隔で何らかの反応を返してくれ、と規則を決めた。それを監視(watchdog、番犬)し続けて、もしも25秒間なにも反応がなかったら意識がなくなったと判断して助けに行くから、というイメージです。
15秒経過時点でしゃしゃり出て助けに行く必要はないのです。つまり、
> いいえ、そのような正常動作している状態では
> ウォッチドッグタイマはその機能を発揮していません。(No.2)
2025.03.06 09:04
reqさん
(No.6)
この投稿は投稿者により削除されました。(2025.03.06 17:31)
2025.03.06 17:31
reqさん
(No.7)
■異常な場合
割り込み |-------------------| ←この間のうちに終わる
ウォッチドッグタイマ|------------------------| < 吠えなくていいか
■異常な時
割り込み |----------------------------- ←本来終わるべき時に終わってない(暴走)
ウォッチドッグタイマ|------------------------| < あかん!吠えよう!
というのがウォッチドッグタイマの役割ですので、
測定の割り込み処理の終了を期待するタイミングよりやや長めにとる必要があります。
これさえ分かっていれば、簡単にWDTに設定するタイミングを理解することができます。
割り込み |-------------------| ←この間のうちに終わる
ウォッチドッグタイマ|------------------------| < 吠えなくていいか
■異常な時
割り込み |----------------------------- ←本来終わるべき時に終わってない(暴走)
ウォッチドッグタイマ|------------------------| < あかん!吠えよう!
というのがウォッチドッグタイマの役割ですので、
測定の割り込み処理の終了を期待するタイミングよりやや長めにとる必要があります。
これさえ分かっていれば、簡単にWDTに設定するタイミングを理解することができます。
2025.03.06 17:34
まんさん
(No.8)
なるほど!納得できました!皆さん丁寧に教えてくださり本当にありがとうございます!
2025.03.11 05:39
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から40日経過したスレッドへの投稿はできません。
広告