応用情報技術者 2015年 春期 午後 問07
自動車用衝突被害軽減ブレーキシステムに関する次の記述を読んで、設問1~3に答えよ。
G社は、自動車用衝突被害軽減ブレーキシステム(以下、自動ブレーキという)を開発している。自動ブレーキ装着車両は、車体の前部に設置されているミリ波レーダ装置(以下、レーダという)によって、前を走行している車両との距離を測定し、衝突のおそれがあるときにブレーキ操作を行う。
自動ブレーキの動作環境を、図1に示す。

〔自動ブレーキの構成と動作〕
自動ブレーキの構成を、図2に示す。

自動ブレーキの処理手順は次のとおりである。
① 自動ブレーキ制御部(以下、制御部という)は、20 ミリ秒周期でレーダに測定開始信号を出力する。
② レーダは、測定開始信号が入力されると、前を走行している車両との距離測定を開始し、10 ミリ秒後に測定完了信号と距離データを制御部に出力する。
③ 制御部は、測定完了信号が入力されると、距離データを 0.01 m 単位で読み取り、相対速度を算出する。相対速度 s(m/秒)は、前回測定した距離 d1(m)、今回測定した距離 d2(m)及び経過時間(20 ミリ秒)を用いて、次の式で計算することができる。
④ 制御部は、衝突までの予測時間(以下、予測時間という)を算出する。予測時間 t(秒)は、次の式で算出することができる。
⑤ 制御部は、算出した予測時間によって次の処理を行う。
・予測時間が 0 秒以上 3 秒未満のとき、制御部は警告信号を出力し、表示パネルに警告を表示させる。
・予測時間が 0 秒以上 1.5 秒未満のとき、制御部は緊急ブレーキ信号を出力して、ブレーキを作動させる。
〔制御部の構成とタイマ割込みソフトウェア〕
制御部の MCU ブロック図を、図3に示す。

MCU は、クロック入力を 8 分周したクロックで内蔵されたタイマをダウンカウントし、カウント値が 0 になると CPU に割込みを発生させる。タイマ割込みソフトウェアは、次の割込みが 20 ミリ秒後に発生するようにタイマのカウント値を設定する。
タイマ割込みソフトウェアのフローバ図を、図4に示す。

自動ブレーキには安全設計が求められるので、ウォッチドッグタイマを使って、タイマ割込みソフトウェアが動作しているかを周期的に監視する。
設問1:〔自動ブレーキの構成と動作〕について、(1)~(3)に答えよ。
(1)式中のa〜cに入れる適切な数値又は文字を答えよ。
模範解答
a:0.02
b:d2
c:s
解説
解答の論理構成
-
相対速度 の式
問題文は「相対速度 は、前回測定した距離 、今回測定した距離 及び経過時間(20 ミリ秒)を用いて、次の式で計算することができる。」と示し、式として
を提示しています。
・「20 ミリ秒」は 秒ですから、秒単位では 0.02。
よって a = 0.02 となります。 -
予測時間 の式
続いて「制御部は、衝突までの予測時間(以下、予測時間という)を算出する。予測時間 は、次の式で算出することができる。」とあり、式は
です。
衝突までの時間は「残り距離 ÷ 相対速度」で求めるのが物理の基本です。
・残り距離 ⇒ 今回測定した距離
・相対速度 ⇒ 直前に計算した
したがって b = d2、c = s となります。 -
まとめ
a:0.02、b:d2、c:s
誤りやすいポイント
- 20 ミリ秒をそのまま 20 と置いてしまい、単位変換を失念する。ミリ秒は必ず秒換算が必要です。
- 「残り距離」を前回値 と誤解する。衝突予測時点での実距離は今回測定の です。
- 相対速度 を分母に置くべきところを分子にしてしまう。時間=距離÷速度の形を思い出しましょう。
FAQ
Q: が 0.0 m に近い場合、分母が 0 になって誤動作しませんか?
A: 分母は であり距離ではありません。システムでは (停止状態)や極小値のときに別途保護ロジックを設けています。
A: 分母は であり距離ではありません。システムでは (停止状態)や極小値のときに別途保護ロジックを設けています。
Q: が負になるケースは考慮しなくて良いのですか?
A: 相手車両と離れていく場合(負値)は衝突の危険がないため、後段の判定条件(予測時間が 0 以上)で処理されない仕組みです。
A: 相手車両と離れていく場合(負値)は衝突の危険がないため、後段の判定条件(予測時間が 0 以上)で処理されない仕組みです。
Q: 相対速度計算を 20 ミリ秒ごとに行う理由は?
A: レーダの測定周期と MCU のタイマ割込み周期を一致させることで、常に最新の距離差分を用いた安定した速度推定が可能になるためです。
A: レーダの測定周期と MCU のタイマ割込み周期を一致させることで、常に最新の距離差分を用いた安定した速度推定が可能になるためです。
関連キーワード: 相対速度, 単位変換, 予測時間, ダウンカウントタイマ, ミリ波レーダ
設問1:〔自動ブレーキの構成と動作〕について、(1)~(3)に答えよ。
(2)相対速度sが負数になる場合の、自動ブレーキ装着車両を走行する車両との関係を、15字以内で述べよ。
模範解答
車間距離が広がっている。
解説
解答の論理構成
- 問題文には相対速度の定義が示されています。
引用:"s = \frac{d1 - d2}{a}"
ここで d1 は「前回測定した距離」、d2 は「今回測定した距離」です。 - 分子 d1 - d2 が正ならば前回より距離が短くなり、s は正(接近)になります。
逆に分子が負、すなわち d2 > d1 なら距離が長くなっています。 - 分母 a は正(経過時間20 ms)なので、d2 > d1 のとき相対速度 s は負になります。
- 距離が長くなるとは、衝突のおそれが低下し「車間距離が広がる」状態です。
したがって相対速度 s が負数の場合の関係は「車間距離が広がっている」。
誤りやすいポイント
- 相対速度の符号を逆に解釈し、「接近している」と答えてしまう。
- 距離データ d1・d2 の取得タイミングを取り違え、どちらが「前回」か混同する。
- 「負数=反対方向に走行」と誤読し、車両の進行方向まで言及してしまう。
FAQ
Q: なぜ分母が a であっても符号判断に影響しないのですか?
A: a は経過時間20 msで常に正なので、相対速度の符号は分子 d1 - d2 のみで決まります。
A: a は経過時間20 msで常に正なので、相対速度の符号は分子 d1 - d2 のみで決まります。
Q: 相対速度が0になる状況はどう解釈すればよいですか?
A: d1 と d2 が等しい場合で、車間距離が変化していない、つまり前車と同じ速度で走行している状態です。
A: d1 と d2 が等しい場合で、車間距離が変化していない、つまり前車と同じ速度で走行している状態です。
Q: 相対速度が大きな負数の場合、自動ブレーキは作動しませんか?
A: 距離が急速に伸びる状況なので衝突リスクは低く、予測時間 が大きくなるため緊急ブレーキ条件を満たしにくくなります。
A: 距離が急速に伸びる状況なので衝突リスクは低く、予測時間 が大きくなるため緊急ブレーキ条件を満たしにくくなります。
関連キーワード: 相対速度, 車間距離, 衝突回避, ミリ波レーダ
設問1:〔自動ブレーキの構成と動作〕について、(1)~(3)に答えよ。
(3)時速18km/hで走行している自動ブレーキ装着車両の前方に停止している車両がある。このとき、ブレーキが作動してから停止するまでの走行距離を6mとすると、停止している車両の何m前で停止することができるか。答えは小数第2位を切り上げ、小数第1位まで求めよ。ここで、測定周期及び測定に掛かる時間の影響は、無視できるものとする。
模範解答
1.5
解説
解答の論理構成
-
ブレーキが作動する条件
【問題文】に「予測時間が 0 秒以上 1.5 秒未満のとき、制御部は緊急ブレーキ信号を出力して、ブレーキを作動させる。」とある。したがって衝突までの残り時間がちょうど 1.5 秒 の時点でブレーキが開始されるものとみなす。 -
車両速度を m/s に換算
【小問説明】の速度は「時速18km/h」。
-
ブレーキ開始時点の車間距離
衝突まで残り 1.5 秒、速度 5 m/s なので
-
停止までに要する距離
【小問説明】に「ブレーキが作動してから停止するまでの走行距離を6m」とある。 -
停止後に残る距離
-
指定された端数処理
「答えは小数第2位を切り上げ、小数第1位まで求めよ」とあるが、計算値はすでに 1.5 m で第2位が 0 のため変化なし。
以上より、停止している車両の手前で停止できる距離は 1.5 m となる。
誤りやすいポイント
- 18 km/h を 18 m/s と誤って読み替え、車間距離を大きく過大計算してしまう。
- 「1.5 秒」を下限値と誤解し、0 秒〜1.5 秒未満の中の任意値で計算してしまう。
- 「小数第2位を切り上げ」を四捨五入と混同し、端数処理を誤る。
FAQ
Q: 停止している前車なので相対速度は車速と同じと考えてよいのですか?
A: はい。【問題文】では前方車両が「停止」と明記されているため、相対速度は自車の速度そのもの 5 m/s です。
A: はい。【問題文】では前方車両が「停止」と明記されているため、相対速度は自車の速度そのもの 5 m/s です。
Q: 測定周期や 10 ms の測定時間は計算に入れなくてよいのですか?
A: 【小問説明】に「測定周期及び測定に掛かる時間の影響は、無視できる」と指示されているので、本計算では考慮しません。
A: 【小問説明】に「測定周期及び測定に掛かる時間の影響は、無視できる」と指示されているので、本計算では考慮しません。
Q: 切り上げ指示があるのに 1.5 m のままで良いのはなぜですか?
A: 計算結果がちょうど 1.50…m で小数第2位が 0 だからです。切り上げても値は変わりません。
A: 計算結果がちょうど 1.50…m で小数第2位が 0 だからです。切り上げても値は変わりません。
関連キーワード: 停止距離, 相対速度, 予測時間, ダウンカウントタイマ, 安全設計
設問2:図4中の処理及び条件式について、(1)~(3)に答えよ。
(1)下線Aにおいて、タイマのカウント値に設定する値を10進数で答えよ。
ここで、割込み発生からタイマのカウント値設定までの処理時間は、無視できるものとする。
模範解答
20,000
解説
解答の論理構成
-
タイマに与えられるクロックを確認
【問題文】には「クロック入力(8 MHz)」と「クロック入力を 8 分周したクロックで内蔵されたタイマをダウンカウント」とあります。
➔ タイマクロック周波数すなわち 1 カウント = 1 µs です。 -
割込み周期の要求を確認
同じく【問題文】で「タイマ割込みソフトウェアは、次の割込みが 20 ミリ秒後に発生するようにタイマのカウント値を設定する」と明示されています。ここでは「割込み発生からタイマのカウント値設定までの処理時間は、無視できるものとする」とあるため、純粋に 20 ms 分のカウント値を考えればよいことになります。 -
必要カウント値の算出タイマは 1 µs ごとに 1 カウント減少するダウンカウンタなので、設定値はそのまま 20 000 となります。
-
結論
下線 A に設定すべきタイマのカウント値(10 進数)は 20,000 です。
誤りやすいポイント
- 8 MHz をそのまま用い、20 ms × 8,000,000 = 160,000 としてしまう。
- 20 ms を 2 ms/200 µs と単位変換ミスする。
- タイマがダウンカウンタであることを見落とし、+1 した値や -1 した値を設定してしまう。
- 割込み処理時間は無視してよいという条件を読み飛ばし、安全側にと過大・過少な値を設定する。
FAQ
Q: タイマがアップカウンタでも答えは変わりますか?
A: 単にカウント方向が逆になるだけで、1 µs ごとにカウントされる事実は同じです。20 000 回カウントさせる点は変わりません。
A: 単にカウント方向が逆になるだけで、1 µs ごとにカウントされる事実は同じです。20 000 回カウントさせる点は変わりません。
Q: 分周比が変更された場合、どのように計算しますか?
A: 基本式は「カウント値 = 目標時間 ÷(クロック周波数 ÷ 分周比)」です。例えば 4 分周なら 8 MHz ÷ 4 = 2 MHz、1 カウント 0.5 µs となります。
A: 基本式は「カウント値 = 目標時間 ÷(クロック周波数 ÷ 分周比)」です。例えば 4 分周なら 8 MHz ÷ 4 = 2 MHz、1 カウント 0.5 µs となります。
Q: 割込み処理に 100 µs かかる場合は補正が必要ですか?
A: 今回は「無視できる」と指定されていますが、実運用では処理時間分だけカウント値を減算して設定し、正確な周期を維持します。
A: 今回は「無視できる」と指定されていますが、実運用では処理時間分だけカウント値を減算して設定し、正確な周期を維持します。
関連キーワード: タイマ割込み, 分周器, クロック周波数, ダウンカウンタ
設問2:図4中の処理及び条件式について、(1)~(3)に答えよ。
(2)d、eに入れる適切な条件式を解答群の中から選び、記号で答えよ。
解答群
ア:0秒 ≦ t < 1.5秒
イ:0秒 ≦t < 3秒
ウ:1.5秒 ≦ t < 3秒
エ:t < 3秒
模範解答
d:イ
e:ア
解説
解答の論理構成
-
【問題文】は警告と緊急ブレーキの判断基準を次のように規定しています。
・「予測時間が 0 秒以上 3 秒未満のとき、制御部は警告信号を出力し、表示パネルに警告を表示させる。」
・「予測時間が 0 秒以上 1.5 秒未満のとき、制御部は緊急ブレーキ信号を出力して、ブレーキを作動させる。」 -
図4で d の分岐直後にある処理は「警告信号を出力」または「警告信号の出力を停止」です。
したがって d は上記1番目の基準「0 秒以上 3 秒未満」をそのまま条件式にすべきです。
解答群を見ると「イ:0秒 ≦t < 3秒」が対応します。 -
図4で e の分岐直後にある処理は「緊急ブレーキ信号を出力」です。
これは上記2番目の基準「0 秒以上 1.5 秒未満」に一致します。
解答群では「ア:0秒 ≦ t < 1.5秒」が該当します。 -
よって
・d = イ
・e = ア
となります。
誤りやすいポイント
- 「1.5 秒」~「3 秒」の範囲を警告と誤って考え、d に「ウ:1.5秒 ≦ t < 3秒」を選択してしまう。実際には 0 秒以上 3 秒未満全域で警告を出すため外れます。
- 0 秒未満の負値を条件に含めてしまうミス。式はすでに「0 秒以上」を前提にしているため、負値はそもそも不要です。
- 緊急ブレーキと警告の優先順位を逆に理解し、分岐の位置関係を取り違えるケース。図4では d が先に評価され、その後 e が評価される点に注意が必要です。
FAQ
Q: 警告と緊急ブレーキの条件が重複していますが、動作はどうなりますか?
A: 「0 秒以上 1.5 秒未満」は両方の条件に該当するため、警告信号と緊急ブレーキ信号の双方が出力される設計です。
A: 「0 秒以上 1.5 秒未満」は両方の条件に該当するため、警告信号と緊急ブレーキ信号の双方が出力される設計です。
Q: 予測時間が 3 秒以上の場合は何も出力しないのですか?
A: はい。【問題文】に該当する条件が無いため、警告も緊急ブレーキも発生しません。図4では「警告信号の出力を停止」して通常走行状態に戻るよう実装されています。
A: はい。【問題文】に該当する条件が無いため、警告も緊急ブレーキも発生しません。図4では「警告信号の出力を停止」して通常走行状態に戻るよう実装されています。
Q: 予測時間が負になることはありますか?
A: 相対速度の符号がプラス(距離が広がる)であれば理論上負になりますが、制御ソフトでは衝突の可能性なしと判断して範囲外扱いとするのが一般的です。本問題では負値の分岐は示されていません。
A: 相対速度の符号がプラス(距離が広がる)であれば理論上負になりますが、制御ソフトでは衝突の可能性なしと判断して範囲外扱いとするのが一般的です。本問題では負値の分岐は示されていません。
関連キーワード: ミリ波レーダ, 相対速度, 予測時間, タイマ割込み, ウォッチドッグタイマ
設問2:図4中の処理及び条件式について、(1)~(3)に答えよ。
(3)下線Bを行わないときに発生する不具合を、20字以内で述べよ。
模範解答
衝突を回避しても警告が止まらない。
解説
解答の論理構成
- 【問題文】の⑤に「予測時間が 0 秒以上 3 秒未満のとき、制御部は警告信号を出力し、表示パネルに警告を表示させる。」とあります。
- 図4では警告関連の分岐に
・Yes:警告信号を出力
・No :「B警告信号の出力を停止」
が示されており、この“停止”処理が下線Bです。 - もし下線Bを行わなければ、条件が「予測時間が 0 秒以上 3 秒未満」を外れて安全な状態に戻っても、以前に出力した警告信号が継続します。
- その結果、実際には衝突のおそれが解消されているのに警告表示が消えず、システムの信頼性とドライバの注意力を損ないます。
- 以上より不具合は「衝突を回避しても警告が止まらない」と導けます。
誤りやすいポイント
- 「予測時間が 0 秒以上 1.5 秒未満」の緊急ブレーキ条件と混同し、警告停止の必要性を見落とす。
- “警告信号を出力しない”と“出力を停止する”を同義と捉え、下線Bの意味を軽視してしまう。
- タイマ割込み周期「20 ミリ秒」と警告表示時間の関係を関連付けられず、連続割込みで警告が自動的にリセットされると誤解する。
FAQ
Q: 警告信号は毎周期で上書きされるのでは?
A: 制御部は出力ポートを通じて連続信号を保持します。停止処理を行わないとポート状態が変わらず、警告が残り続けます。
A: 制御部は出力ポートを通じて連続信号を保持します。停止処理を行わないとポート状態が変わらず、警告が残り続けます。
Q: “停止”を行わなくても次回 Yes 分岐で上書きされるのでは?
A: No 条件時に明示的に Low 出力へ切り替えなければ、前周期の High が維持されるため、警告表示は消えません。
A: No 条件時に明示的に Low 出力へ切り替えなければ、前周期の High が維持されるため、警告表示は消えません。
Q: 緊急ブレーキ後に警告が残っていても問題ないのでは?
A: 不要な警告はドライバの注意を削ぎ、真の危険時に警告が埋もれるリスクを生みます。安全設計上は速やかな解除が必須です。
A: 不要な警告はドライバの注意を削ぎ、真の危険時に警告が埋もれるリスクを生みます。安全設計上は速やかな解除が必須です。
関連キーワード: 予測時間, 警告信号, 出力ポート, 割込み処理, 状態保持
設問3:
ウォッチドッグタイマによって割込みを発生させる間隔(ミリ秒)として適切な数値を解答群の中から選び、記号で答えよ。
解答群
ア:5
イ:15
ウ:25
模範解答
ウ
解説
解答の論理構成
-
割込み処理の周期を確認
【問題文】には
・「制御部は、20 ミリ秒周期でレーダに測定開始信号を出力する。」
・「タイマ割込みソフトウェアは、次の割込みが 20 ミリ秒後に発生するようにタイマのカウント値を設定する。」
とあり、タイマ割込みは必ず 20 ミリ秒周期で動作します。 -
ウォッチドッグタイマ(WDT)の目的を整理
【問題文】「ウォッチドッグタイマを使って、タイマ割込みソフトウェアが動作しているかを周期的に監視する。」
⇒ 割込み処理が止まれば WDT 割込み(またはリセット)を発生させ、システムをフェールセーフ状態に導く仕組みです。 -
WDT タイムアウト値の要件
(1) 割込みが正常に動いているときは、毎回 WDT をリセット(図4末尾「ウォッチドッグタイマの初期値設定」)するため、タイムアウトしてはならない。
(2) 割込みが停止したときは、できるだけ早く異常検出したい。したがって
• 20 ミリ秒未満 → 正常動作でもタイムアウト(誤検出)。
• 20 ミリ秒より十分に長い値 → 異常検出が遅れる。
⇒ 最小で 20 ミリ秒より僅かに大きい値が最良。 -
解答群を照合
ア:5 ms(短すぎて常に誤検出)
イ:15 ms(同上)
ウ:25 ms(20 msより長いが最小)よって、最適なウォッチドッグタイマの割込み間隔は 「25 ミリ秒」、記号 「ウ」 が正解となります。
誤りやすいポイント
- 「安全だから短い方が良い」と考え、5 ms や 15 ms を選んでしまう。短すぎると正常動作でもタイムアウトします。
- “タイマ割込み=20 ms” の記載を見落とし、WDT の設定値を適当に選ぶ。
- WDT 割込みとタイマ割込みを混同し、両者のリセットタイミングを誤認する。
FAQ
Q: 25 ms では異常検出が遅くないですか?
A: 割込み周期 20 ms に対して 25 ms は 1.25 倍です。次回割込みが来なければ最長 25 ms で検出でき、リアルタイム制御として十分迅速です。
A: 割込み周期 20 ms に対して 25 ms は 1.25 倍です。次回割込みが来なければ最長 25 ms で検出でき、リアルタイム制御として十分迅速です。
Q: 20 ms ちょうどに設定してはいけませんか?
A: 20 ms ちょうどにするとクロック誤差や割込み遅延で正常時でも WDT がタイムアウトする危険があります。安全マージンを設けた 25 ms が適切です。
A: 20 ms ちょうどにするとクロック誤差や割込み遅延で正常時でも WDT がタイムアウトする危険があります。安全マージンを設けた 25 ms が適切です。
Q: 割込みが遅延した場合も 25 ms 以内に来れば問題ありませんか?
A: はい。25 ms 以内に割込みが実行され、図4の「ウォッチドッグタイマの初期値設定」が行われれば WDT はリセットされ、システムは継続動作します。
A: はい。25 ms 以内に割込みが実行され、図4の「ウォッチドッグタイマの初期値設定」が行われれば WDT はリセットされ、システムは継続動作します。
関連キーワード: ウォッチドッグタイマ, タイマ割込み, リアルタイム制御, フェールセーフ


