応用情報技術者過去問題 平成31年春期 午後問7
⇄問題文と設問を画面2分割で開く⇱問題PDF問7 組込みシステム開発
家庭用浴室給湯システムに関する次の記述を読んで,設問1~3に答えよ。
G社は,家庭用浴室給湯システム(以下,浴室給湯システムという)を開発している。浴室給湯システムは,設定された給湯温度で浴槽に給湯を行う機能と,浴室に入った人が洗い場又は浴槽で動かなくなる事象(以下,異常事象という)を監視して,異常事象が発生したらブザーで同居人に知らせる機能をもつ。浴室給湯システムは,浴室内に設置されるリモコン,浴室の出入口に設置される出入りセンサ,及び浴室外に設置される給湯器で構成される。浴室給湯システムの構成を図1に,浴室給湯システムの構成要素の概要を表1に示す。〔出入りセンサの出力の確定方法〕
MCUは,出入りセンサの出力を1回の読出しでは確定せず,10ミリ秒周期で出力を読み出して,5回連続で同じ値が読み出せたときに確定し,その値を確定値とする。
〔リモコンの動作〕
〔リモコンのソフトウェア構成)
リモコンの組込みソフトウェアには,リアルタイムOSを使用する。異常事象の監視に関係する主なタスクの一覧を表2に示す。
G社は,家庭用浴室給湯システム(以下,浴室給湯システムという)を開発している。浴室給湯システムは,設定された給湯温度で浴槽に給湯を行う機能と,浴室に入った人が洗い場又は浴槽で動かなくなる事象(以下,異常事象という)を監視して,異常事象が発生したらブザーで同居人に知らせる機能をもつ。浴室給湯システムは,浴室内に設置されるリモコン,浴室の出入口に設置される出入りセンサ,及び浴室外に設置される給湯器で構成される。浴室給湯システムの構成を図1に,浴室給湯システムの構成要素の概要を表1に示す。〔出入りセンサの出力の確定方法〕
MCUは,出入りセンサの出力を1回の読出しでは確定せず,10ミリ秒周期で出力を読み出して,5回連続で同じ値が読み出せたときに確定し,その値を確定値とする。
〔リモコンの動作〕
- リモコンは,各ボタンによって操作を受け付け,給湯器に指示を送信する。
- 運転ボタンが押されたら給湯器の運転又は停止,給湯ボタンが押されたら給湯,給湯温度変更ボタンが押されたら給湯温度の変更というように,ボタンに応じた指示を給湯器に送信する。
- リモコンは,人の浴室の出入り及び異常事象を監視する。
- 人感センサの出力が1であれば,人が浴室に入ったと判定する。
- 人が浴室に入ったと判定した後,出入リセンサの確定値が1となった後で人感センサの出力が0となれば,人が浴室から出たと判定する。
- 人が浴室に入ったと判定した後,出入リセンサの確定値が1となる前に,人感センサの出力が連続して3分以上0であれば,異常事象と判定する。
- 異常事象と判定したら,いずれかのボタンが押されるまでブザーを鳴動する。
〔リモコンのソフトウェア構成)
リモコンの組込みソフトウェアには,リアルタイムOSを使用する。異常事象の監視に関係する主なタスクの一覧を表2に示す。
設問1
浴室給湯システムの仕様について,(1),(2)に答えよ。
- 次の記述中のa~cに入れる適切な字句を答えよ。
浴室給湯システムは,aセンサとbセンサを併用して異常事象を監視している。これは,aセンサだけでは,aセンサの出力が1の状態から連続して0となった場合において,人がcときの事象か,異常事象が発生したときの事象かを判別できないからである。 - リモコンが給湯器に指示を一つ送信するとき,シリアルI/Fにおける通信時間は何ミリ秒か。答えは小数第2位を切り上げて,小数第1位まで求めよ。ここで,1バイトのデータは10ビットで送信され,ソフトウェアの動作時間は考慮しなくてよいものとする。
解答入力欄
- a:
- b:
- c:
- o:ミリ秒
解答例・解答の要点
- a:人感
- b:出入り
- c:浴室から出た
- o:3.2
解説
- 〔a,bについて〕
本問のシステムには人感センサと出入りセンサしか使われていないので、空欄には2つのいずれかが入ります。
センサの出力が1の状態から連続して0となった場合に異常事象と判定されるのは人感センサの方なので、aには人感(センサ)、bには出入り(センサ)が入ります。
∴a=人感
b=出入り
〔cについて〕
人感センサは、人の動きを検出したときは1を、検出しなかったときは0を出力します。人感センサの出力は浴室内に人がいるかどうかにかかわらず行われるので、出入りセンサがなければ、浴室から出て浴室内に人がいなくなった場合にもセンサの出力が1の状態から連続して0となり、異常事象と判定されてしまいます。出入りセンサ単体では入室・退室のどちらかを判別できませんが、人感センサとの組み合わせによって浴室から出たことを判定できるようになっています。
本文中では、「人が浴室に入ったのか,浴室から出たのか判別できない」「浴室から出たと判定する」というように、人が浴室から出るイベントを"浴室から出た"と記載しているため、cには「浴室から出た」が入ります。
∴c=浴室から出た - 給湯器の仕様を読むと、各指示のデータ長はいずれも3バイトの固定長とあります。また、リモコンと給湯器を繋ぐシリアルI/Fの通信速度は9,600ビット/秒であるとわかります。本問では1バイトのデータは10ビットで送信されるとしているため、指示1つ当たりの通信時間は、
10ビット×3÷9,600ビット=3.125ミリ秒
本問では「小数点第2位を切り上げて,小数点第1位まで求めよ」という指示があるため「3.125→3.2ミリ秒」となります。
∴3.2
設問2
出入りセンサの出力と,出入り検出タスクの動作タイミングの例を図2に示す。図2について,(1),(2)に答えよ。
- 出入り検出タスクが,"出入り"を通知するタイミングを,(ア)~(テ)の記号で答えよ。
- 出入リ検出タスクが"出入り"を通知した後,出力を0で確定する最初のタイミングを,(ア)~(テ)の記号で答えよ。
解答入力欄
解答例・解答の要点
- (ク)
- (チ)
解説
出入りセンサは、人が浴室の出入口を横切っていることを検出している間は1を、それ以外の間は0を出力します。
- 出入り検出タスクは、確定値が1となったら"出入り"監視タスクに通知します。〔出入りセンサの出力の確定方法〕を読むと、MCUは、10ミリ秒周期で出入りセンサの出力を読みだして、5回連続で同じ値が読み出せたときに値を確定することがわかります。つまり、確定値が1となるので出入りセンサから読みだした値が5回以上連続して1となったときです。
図2の中で1が5回連続して読みだされたタイミングは(ク)です。∴(ク) - (1)と同じ考え方をすると、0が5回連続したタイミングが確定値が0となる時点です。図2の中で0が5回連続して読みだされたタイミングは(チ)です。∴(チ)
設問3
監視タスクの状態遷移を図3に示す。(1),(2)に答えよ。
- 図3中のdに入れる適切な遷移条件を,他タスクからの通知名を用いて20字以内で答えよ。
- 次の記述中のe,fに入れる適切な状態名を答えよ。
"空室"状態のときに,1人の人が浴室に入った。その後,別の1人の人が浴室に入った。このときの監視タスクの状態遷移は,"空室"→"e"→"f"→"在室"となった。
解答入力欄
- d:
- e:
- f:
解答例・解答の要点
- d:連続して361回"未検出"を受信 (16文字)
- e:在室
- f:未定
解説
- 〔dについて〕
監視タスクが"異常"を通知するのは、人が浴室に入った後、出入りセンサの確定値が1になる前(すなわち退室する前)に、人感センサの出力が連続して3分以上0であったときです。人感センサの出力は、人検出タスクによって500ミリ秒周期で読み出され、出力1ならば"検出"、出力0ならば"未検出"が監視タスクに通知されることになっています。監視タスク側では、"未検出"を連続して受信した回数を数えることで3分経過したか否かを判断することとなります。
「3分÷500ミリ秒=360回」ですから、"未検出"が360回通知されたら異常に遷移すると考えがちですが、最初に0を読みだしたのを1回目とすると、そこから3分間の経過をカウントする必要があるので3分を経過した時点は360に1を加えた361回目となります。∴d=連続して361回"未検出"を受信 - 〔eについて〕
"空室"の状態から1人の人が浴室に入ったときに起こる状態遷移を考えます。
人が浴室に入ると、出入り口を横切ることになるので、出入りセンサの確定値が1となり、出入り検出タスクから"出入り"の通知が監視タスクに送られます。しかし、"空室"のときに"出入り"を受信しても状態遷移は起こりません。次に、浴室内に人がいることで人感センサの出力が1になり、人検出タスクから"検出"の通知が監視タスクに送られます。状態遷移図を見ると"空室"のときに"検出"を受信した場合には"在室"に遷移することがわかります。
また、図3を見ると"空室"から遷移する先はそもそも"在室"しかないので、自ずと答えは決まります。
∴e=在室
〔fについて〕
"在室"のときに別の1人が浴室に入ったときに起こる状態遷移を考えます。
別の1人が浴室に入る際、出入り口を横切ることになるので、出入りセンサの確定値が1となり、出入り検出タスクから"出入り"の通知が監視タスクに送られます。状態遷移図を見ると"在室"のときに"出入り"を受信した場合には"未定"に遷移することがわかります。
また、"在室"から遷移する先は"未定"または"異常"のいずれかになります。"異常"は異常事象(人感センサの出力が3分以上連続して0)のときに遷移する状態ですので、消去法で"未定"になるとわかります。
その後、監視タスクは人感センサからの"検出"通知を受信し、再び"在室"状態に戻ることとなります。
∴f=未定