令和5年春期試験午後問題 問7
問7 組込みシステム開発
⇱問題PDF
位置通知タグの設計に関する次の記述を読んで,設問に答えよ。
位置通知タグの設計に関する次の記述を読んで,設問に答えよ。
広告
E社は,GPSを使用した位置情報システムを開発している。今回,超小型の位置通知タグ(以下,PRTという)を開発することになった。
PRTは,ペンダント,ブレスレット,バッジなどに加工して,子供,老人などに持たせたり,ペット,荷物などに取り付けたりすることができる。利用者はスマートフォン又はPC(以下,端末という)を用いて,PRTの現在及び過去の位置を地図上で確認することができる。
PRTの通信には,通信事業者が提供するIoT用の低消費電力な無線通信回線を使用する。また,PRTは本体内に小型の電池を内蔵しており,ワイヤレス充電が可能である。長時間の使用が要求されるので,必要な時間に必要な構成要素にだけ電力を供給する電源制御を行っている。
〔位置情報システムの構成〕
PRTを用いた位置情報システムの構成を図1に示す。 端末がPRTに位置情報を問い合わせたときの通信手順を次に示す。
〔PRTのハードウェア構成〕
PRTのハードウェア構成を図2に,PRTの構成要素を表1に示す。〔PRTの動作仕様〕
〔使用可能時間〕
電池を満充電後,PRTが機能しなくなるまでの時間を使用可能時間という。その間に放電する電気量を電池の放電可能容量といい,単位はミリアンペア時(mAh)である。PRTは放電可能容量が200mAhの電池を内蔵している。
使用可能時間,放電可能容量,PRTの平均消費電流の関係は,次の式のとおりである。
なお,PRTはメモリのデータの保持などで,表2の処理以外に0.01mAの電流が常に消費される。〔制御部のソフトウェア〕
最初の設計ではタイマーを二つ用いた。初期化処理で,120秒ごとに通知を出力する測位用タイマーを設定し,初期化処理完了後,サーバからの要求確認時刻を受信すると,40秒ごとに通知を出力する通信用タイマーを設定した。しかし,この設計では不具合が発生することがあった。
不具合を回避するために,タイマーを複数用いず,要求確認時刻を用いて40秒ごとに通知を出力するタイマーだけを設定した。このタイマーを用いて,図3に示すタイマー通知時のシーケンス図に従った処理を実行するようにした。
PRTは,ペンダント,ブレスレット,バッジなどに加工して,子供,老人などに持たせたり,ペット,荷物などに取り付けたりすることができる。利用者はスマートフォン又はPC(以下,端末という)を用いて,PRTの現在及び過去の位置を地図上で確認することができる。
PRTの通信には,通信事業者が提供するIoT用の低消費電力な無線通信回線を使用する。また,PRTは本体内に小型の電池を内蔵しており,ワイヤレス充電が可能である。長時間の使用が要求されるので,必要な時間に必要な構成要素にだけ電力を供給する電源制御を行っている。
〔位置情報システムの構成〕
PRTを用いた位置情報システムの構成を図1に示す。 端末がPRTに位置情報を問い合わせたときの通信手順を次に示す。
- 端末は,PRTの最新の位置を取得するための位置通知要求をサーバに送信する。サーバは端末からの位置通知要求を受信すると,通信事業者を介して,PRTと通信可能な基地局に位置通知要求を送信する。
- PRTは電源投入後,基地局から現在時刻を取得するとともに,サーバからの要求を確認する時刻(以下,要求確認時刻という)を受信する。以降の要求確認時刻はサーバから受信した要求確認時刻から40秒間隔にスケジューリングされる。PRTは要求確認時刻になると,基地局からの情報を受信する。
- 基地局は要求確認時刻になると,PRTへの位置通知要求があればそれを送信する。
- PRTは基地局からの情報に位置通知要求が含まれているかを確認する処理(以下,確認処理という)を行い,位置通知要求が含まれていると,基地局,通信事業者を介して,PRTの最新の位置情報をサーバに送信する。
- サーバはPRTから位置情報を受信し,管理する。サーバは端末と通信し,PRTの最新の位置情報,指定された時刻の位置情報を地図情報とともに端末に送信する。端末は,受信した位置情報及び地図情報を基に,PRTの位置を地図上に表示する。
〔PRTのハードウェア構成〕
PRTのハードウェア構成を図2に,PRTの構成要素を表1に示す。〔PRTの動作仕様〕
- 40秒ごとに確認処理を行い,基地局から受信した情報に位置通知要求が含まれている場合,測位中でなければ,測位を開始する。測位の完了後,PRTの位置を取得したら位置情報を作成する(以下,測位の開始から位置情報の作成までを測位処理という)。測位処理完了後,位置情報をサーバに送信する。また,測位の完了後,PRTの位置取得に失敗したときは,失敗したことをサーバに送信する。
- 120秒ごとに測位処理を行う。失敗しても再試行しない。
- 600秒ごとに未送信の位置情報をサーバに送信する(以下,データ送信処理という)。
〔使用可能時間〕
電池を満充電後,PRTが機能しなくなるまでの時間を使用可能時間という。その間に放電する電気量を電池の放電可能容量といい,単位はミリアンペア時(mAh)である。PRTは放電可能容量が200mAhの電池を内蔵している。
使用可能時間,放電可能容量,PRTの平均消費電流の関係は,次の式のとおりである。
使用可能時間 = 放電可能容量 ÷ PRTの平均消費電流
PRTが基地局と常に通信が可能で,測位が可能であり,基地局から受信した情報に位置通知要求が含まれていない状態における各処理の消費電流を表2に示す。表2の状態が継続した場合の使用可能時間はa時間である。なお,PRTはメモリのデータの保持などで,表2の処理以外に0.01mAの電流が常に消費される。〔制御部のソフトウェア〕
最初の設計ではタイマーを二つ用いた。初期化処理で,120秒ごとに通知を出力する測位用タイマーを設定し,初期化処理完了後,サーバからの要求確認時刻を受信すると,40秒ごとに通知を出力する通信用タイマーを設定した。しかし,この設計では不具合が発生することがあった。
不具合を回避するために,タイマーを複数用いず,要求確認時刻を用いて40秒ごとに通知を出力するタイマーだけを設定した。このタイマーを用いて,図3に示すタイマー通知時のシーケンス図に従った処理を実行するようにした。
広告
設問1
休止モードは最長で何秒継続するか答えよ。ここで,各処理の処理時間は表2に従うものとし,通信モジュール及び測位モジュールの電源オンオフの切替の時間,通信モジュールの通信時間は無視できるものとする。
解答例・解答の要点
39
解説
休止モードとは、表1の"制御部"の説明にあるようにCPUの動作モードの一つです。本問のCPUは「タイマー,測位,通信モジュールから通知を検出すると実行モードとなり,必要な処理が完了すると休止モードとなる」ので、求めるべき時間は、通知を検出後に必要な処理が完了してから、次の通知を検出するまでの最長の時間ということになります。〔位置情報システムの構成〕②より、「要求確認時刻はサーバから受信した要求確認時刻から40秒間隔にスケジューリングされる」とあるので、PRTに電源が投入された直後に40秒のタイマーが設定されると判断できます。〔PRTの動作仕様〕と〔位置情報システムの構成〕②③④より、40秒ごとにPRTが行う処理は次のとおりです。
- 基地局からの情報を受信する
- 基地局からの情報に位置通知要求が含まれているかを確認する(確認処理)
- (位置通知要求が含まれている場合)
- 測位中でなければ、測位を開始する(測位処理)
- 測位処理完了後、位置情報をサーバに送信する(送信処理)
(2)の"確認処理"だけが行われた場合、通知を検出した後1秒後に休止モードに戻ります。タイマーは、CPUの処理時間にかかわらず40秒ごとに通知を行うので、このとき次のタイマー通知が行われる(実行モードになる)のは休止モードになってから「40-1=39秒」後です。したがって、休止モードの最長は「39」秒となります。
∴39
広告
設問2
〔使用可能時間〕について,本文中のaに入れる適切な数値を,小数点以下を切り捨てて,整数で答えよ。
解答例・解答の要点
a:246
解説
〔aについて〕使用可能時間を求める式が与えられているので、式中の値を問題文から導きます。
放電可能容量は、本文中の「PRTは放電可能容量が200mAhの電池を内蔵している」より200mAhとわかります。mAh(ミリ・アンペア・アワー)は、バッテリー容量の表記に使われる単位で、1時間でバッテリーの容量全部を放電した場合にどれだけの電流を流せるかを表しています。本問の"200mAh"は、200mAの電流を1時間放電できる容量を表します。
PRTの平均消費電流は、表2の各処理の平均消費電流を合計して「0.1+0.5+0.2=0.8mA」、本文中の「PRTはメモリのデータの保持などで,表2の処理以外に0.01mAの電流が常に消費される」とあるので、この0.8mAに0.01mAを加えた「0.8+0.01=0.81mA」となります(常時0.01mAが消費される=平均消費電流0.01mA)。
算式に当てはめて、使用可能時間を計算します。
200[mAh]÷0.81[mA]=246.91…
(小数点以下を切り捨てて)246[時間]
∴a=246
広告
設問3
〔制御部のソフトウェア〕のタイマー通知時のシーケンス図について答えよ。
- 図3中のbに入れる適切な条件を答えよ。
- 図3中のc~eに入れる適切なメッセージ名及びメッセージの方向を示す矢印をそれぞれ答えよ。
解答例・解答の要点
- b:前回の送信から600秒経過又は位置通知要求あり
- cメッセージ名:受信要求
cメッセージの方向:←
dメッセージ名:測位可能通知
dメッセージの方向:→
eメッセージ名:通信可能通知
eメッセージの方向:→
解説
- 〔bについて〕
図3の凡例より空欄bに入るのは条件文であるとわかります。空欄bの条件を満たしたときに実行されるのは、通信モジュールによる送信処理なので、本文中より送信処理が行われる場面を探すと、以下の2つが該当します。- 40秒ごとの確認要求に位置通知要求が含まれるときの、位置情報の送信処理
- 600秒ごとの位置情報の送信処理
測位処理のシーケンスの条件文(前回の測位から120秒経過又は位置通知要求あり)を参考にすると、まずⅱの処理を実現するために「前回の送信から600秒ごと」という1つ目の条件が適切であることがわかります。
次にⅰの処理を実現する条件設定についてですが、位置通知要求を確認したときには、測位処理の成功・失敗にかかわらず、結果をサーバに送信することになっています。このため、2つ目の条件としては「位置通知要求あり」とすれば良いです。
したがって、空欄bにはこの2つの条件を or(又は)で連結した「前回の送信から600秒経過又は位置通知要求あり」が当てはまります。
"位置通知要求あり"の他に、"確認処理完了後"や"測位完了後"も条件の候補となるかと思います。シーケンス図を見ると確認処理の完了に続き、条件に応じて測位処理と送信処理が行われることになっているので、"確認処理完了後"というのはあってもなくても変わりません。また、"測位完了後"を条件として入れてしまうと、120秒ごとに行われる測位の度に送信処理が実行されることになり正しくありません。
∴b=前回の送信から600秒経過又は位置通知要求あり - 〔cについて〕
空欄cを含む一連の処理は確認処理を示しているので、空欄cは確認処理における制御メッセージの一つであるとわかります。表1の"通信モジュール"の説明より、確認処理は以下の手順で行われます。- 電源が供給されると、制御部に通信可能通知を送る
- 制御部から受信要求を受け付ける
- 制御部に受信結果通知を送る
∴c=受信要求、←
〔dについて〕
空欄dを含む一連の処理は測位処理を示しているので、空欄dは測位処理における制御メッセージの一つであるとわかります。表1の"測位モジュール"の説明より、測位処理は以下の手順で行われます。- 電源が供給されると、制御部に測位可能通知を送る
- 制御部から測位要求を受け付ける
- 制御部に測位結果通知を送る
∴d=測位可能通知、→
〔eについて〕
空欄eを含む一連の処理は送信処理を示しているので、空欄eは送信処理における制御メッセージの一つであるとわかります。表1の"通信モジュール"の説明より、送信処理は以下の手順で行われます。- 電源が供給されると、制御部に通信可能通知を送る
- 制御部から送信要求を受け付ける
- 制御部に送信結果通知を送る
∴e=通信可能通知、→
広告
設問4
〔制御部のソフトウェア〕について,タイマーを二つ用いた最初の設計で発生した不具合の原因を40字以内で答えよ。
解答例・解答の要点
通信モジュールとの通信と測位モジュールとの通信が同時に発生した (31文字)
解説
〔制御部のソフトウェア〕より、問われている原因は"タイマーを2つ用いた最初の設計では発生するが、1つのタイマーで図3のように設計した場合は発生しない"事象です。最初の設計では、120秒の測位タイマーと40秒の通信タイマーが用いられています。測位用タイマーの役割は、測位を行いその結果を制御部に通知することで、制御部との間で"測位可能通知"・"測位開始要求"・"測位結果通知"という3つのメッセージをやり取りします。一方、通信タイマーの役割は、基地局が送信する位置通知要求を処理することで、制御部との間で"通信可能通知"・"受信(送信)開始要求"・"受信(送信)結果通知"という5つのメッセージをやり取りします。
2つのタイマーはそれぞれ独立して通知を行うため、2つのタイマーを用いた場合、測位処理と確認処理が同時に実行される可能性があります。処理が同時に行われた場合、制御部と測位モジュール、制御部と通信モジュールの通信も同時にされることになります。表1の"通信ライン"には「通信モジュールとの通信と,測位モジュールとの通信が同時に行われると,そのときのデータは正しく送受信できずに破棄される」とあるので、同時処理により制御部との通信が正しく行われません。これが不具合の原因となります。
一つのタイマーで図3のように設計した場合、確認処理が終わってから測位処理が開始されるので、通信モジュール・測位モジュールとの通信は同時に発生せず、上記の不具合は発生しません。
したがって、「通信モジュールとの通信と測位モジュールとの通信が同時に発生した」ことが最初の設計で発生した不具合の原因となります。本文中の表現を抜き出して「通信モジュールとの通信と、測位モジュールとの通信が同時に行われた」としてもいいでしょう。
∴通信モジュールとの通信と測位モジュールとの通信が同時に発生した
広告
広告