令和5年度 春期 応用情報技術者試験 午後問題 問7 位置通知タグの消費電流計算とタイマー設計

テクノロジ組込み・IoT

この問題は2023(R5)春 応用情報技術者 午後に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

学習ガイド

GPSを使う超小型位置通知タグの省電力設計を扱う問題です。40秒・120秒・600秒の処理周期を一つの時間軸に置き、休止時間と平均消費電流を計算します。タイマーが重なったときに通信データが失われる理由もシーケンスから確認します。本文・表・図の根拠を行き来し、用語だけを暗記するのではなく、短い記述にも判断の理由を残して解答する手順を示します。

この記事で押さえる論点

  • 確認処理・測位処理・データ送信処理の周期と処理時間から休止モードの最長継続時間を求める
  • 各処理の平均消費電流と常時消費電流を合計して電池の使用可能時間を計算する
  • シーケンス図の条件ブロックとメッセージ(受信要求・測位可能通知・通信可能通知)を表1の仕様から補う
  • 独立した2つのタイマーが同時に発火したとき通信ラインで何が起きるかを推論する

問題本文

問7 位置通知タグの設計に関する次の記述を読んで,設問に答えよ。

E社は,GPSを使用した位置情報システムを開発している。今回,超小型の位置通知タグ(以下,PRTという)を開発することになった。
PRTは,ペンダント,ブレスレット,バッジなどに加工して,子供,老人などに持たせたり,ペット,荷物などに取り付けたりすることができる。利用者はスマートフォン又はPC(以下,端末という)を用いて,PRTの現在及び過去の位置を地図上で確認することができる。
PRTの通信には,通信事業者が提供するIoT用の低消費電力な無線通信回線を使用する。また,PRTは本体内に小型の電池を内蔵しており,ワイヤレス充電が可能である。長時間の使用が要求されるので,必要な時間に必要な構成要素にだけ電力を供給する電源制御を行っている。

〔位置情報システムの構成〕

PRTを用いた位置情報システムの構成を図1に示す。

図1 PRTを用いた位置情報システムの構成
図の説明テキスト

図1 PRTを用いた位置情報システムの構成
各構成要素の接続関係が示されている。

  • 「PRT」と「基地局」の間は「N」字型の線(無線通信)で結ばれている。
  • 「基地局」の下に「通信事業者」の枠があり、実線で接続されている。
  • 「通信事業者」の右に「インターネット」があり、実線で接続されている。
  • 「インターネット」の上に「サーバ」があり、実線で接続されている。
  • 「インターネット」の右に「端末」があり、実線で接続されている。

端末がPRTに位置情報を問い合わせたときの通信手順を次に示す。

  1. 端末は,PRTの最新の位置を取得するための位置通知要求をサーバに送信する。サーバは端末からの位置通知要求を受信すると,通信事業者を介して,PRTと通信可能な基地局に位置通知要求を送信する。
  2. PRTは電源投入後,基地局から現在時刻を取得するとともに,サーバからの要求を確認する時刻(以下,要求確認時刻という)を受信する。以降の要求確認時刻はサーバから受信した要求確認時刻から 40 秒間隔にスケジューリングされる。PRTは要求確認時刻になると,基地局からの情報を受信する。
  3. 基地局は要求確認時刻になると,PRTへの位置通知要求があればそれを送信する。
  4. PRTは基地局からの情報に位置通知要求が含まれているかを確認する処理(以下,確認処理という)を行い,位置通知要求が含まれていると,基地局,通信事業者を介して,PRTの最新の位置情報をサーバに送信する。
  5. サーバはPRTから位置情報を受信し,管理する。サーバは端末と通信し,PRTの最新の位置情報,指定された時刻の位置情報を地図情報とともに端末に送信する。端末は,受信した位置情報及び地図情報を基に,PRTの位置を地図上に表示する。

〔PRTのハードウェア構成〕

PRTのハードウェア構成を図2に,PRTの構成要素を表1に示す。

図2 PRTのハードウェア構成
図の説明テキスト

図2 PRTのハードウェア構成
ハードウェアの構成要素とその接続関係を示すブロック図。

  • 構成要素として「測位モジュール」「制御部」「通信モジュール」「電源部」がある。
  • 「測位モジュール」「制御部」「通信モジュール」は「通信ライン」で相互に接続されている。
  • 「制御部」からは「電源部」へ「制御信号」が接続されている。
  • 「電源部」からは太線が「測位モジュール」「制御部」「通信モジュール」のそれぞれに接続されている。
  • 注記として「太線は,電力供給線を示している。」と記述されている。
表1 PRTの構成要素
図の説明テキスト

表1 PRTの構成要素

構成要素 説明
制御部 ・タイマー,CPU,メモリなどから構成され,PRT 全体の制御を行う。
・CPU の動作モードには,実行モード及び休止モードがある。実行モードでは命令の実行ができる。休止モードでは命令の実行を停止し,消費電流が最小となる。
・CPU は休止モードのとき,タイマー,測位モジュール,通信モジュールからの通知を検出すると実行モードとなり,必要な処理が完了すると休止モードとなる。
測位モジュール ・GPS 信号を受信(以下,測位という)して PRT の位置を取得し,位置情報を作成する。
・電力が供給され,測位可能になると制御部に測位可能通知を送る。
・制御部からの測位開始要求を受け取ると測位を開始する。測位の開始から 6 秒経過すると測位が完了して,測位結果(PRT の位置取得時の位置情報又は PRT の位置取得失敗)を測位結果通知として制御部に送る。
通信モジュール ・基地局との通信を行う。
・電力が供給され,通信可能になると制御部に通信可能通知を送る。
・制御部から受信要求を受け取ると,確認処理を行い,制御部へ受信結果通知を送る。
・制御部から送信要求を受け取ると,該当するデータをサーバに送信する。データの送信が完了すると,送信結果通知を制御部に送る。
通信ライン ・制御部と測位モジュールとの間,又は制御部と通信モジュールとの間の通信を行うときに使用する。
・通信モジュールとの通信と,測位モジュールとの通信が同時に行われると,そのときのデータは正しく送受信できずに破棄される。
電源部 ・制御部からの制御信号によって,測位モジュール及び通信モジュールへの電力の供給を開始又は停止する。

〔PRTの動作仕様〕

  • 40 秒ごとに確認処理を行い,基地局から受信した情報に位置通知要求が含まれている場合,測位中でなければ,測位を開始する。測位の完了後,PRTの位置を取得したら位置情報を作成する(以下,測位の開始から位置情報の作成までを測位処理という)。測位処理完了後,位置情報をサーバに送信する。また,測位の完了後,PRTの位置取得に失敗したときは,失敗したことをサーバに送信する。
  • 120 秒ごとに測位処理を行う。失敗しても再試行しない。
  • 600 秒ごとに未送信の位置情報をサーバに送信する(以下,データ送信処理という)。

〔使用可能時間〕

電池を満充電後,PRTが機能しなくなるまでの時間を使用可能時間という。その間に放電する電気量を電池の放電可能容量といい,単位はミリアンペア時(mAh)である。PRTは放電可能容量が 200 mAhの電池を内蔵している。

使用可能時間,放電可能容量,PRTの平均消費電流の関係は,次の式のとおりである。

使用可能時間=放電可能容量÷PRTの平均消費電流使用可能時間 = 放電可能容量 \div PRTの平均消費電流

PRTが基地局と常に通信が可能で,測位が可能であり,基地局から受信した情報に位置通知要求が含まれていない状態における各処理の消費電流を表 2 に示す。表 2 の状態が継続した場合の使用可能時間は a 時間である。

なお,PRTはメモリのデータの保持などで,表 2 の処理以外に 0.01 mAの電流が常に消費される。

表2 各処理の消費電流
図の説明テキスト

表2 各処理の消費電流

処理名称 周期(秒) 処理時間(秒) 処理中の消費電流(mA) 各処理の平均消費電流(mA)
確認処理 40 1 4 0.1
測位処理 120 6 10 0.5
データ送信処理 600 1 120 0.2

〔制御部のソフトウェア〕

最初の設計ではタイマーを二つ用いた。初期化処理で,120秒ごとに通知を出力する測位用タイマーを設定し,初期化処理完了後,サーバからの要求確認時刻を受信すると,40秒ごとに通知を出力する通信用タイマーを設定した。しかし,この設計では不具合が発生することがあった。

不具合を回避するために,タイマーを複数用いず,要求確認時刻を用いて40秒ごとに通知を出力するタイマーだけを設定した。このタイマーを用いて,図3に示すタイマー通知時のシーケンス図に従った処理を実行するようにした。

図3 タイマー通知時のシーケンス図
図の説明テキスト

図3 タイマー通知時のシーケンス図
構成要素として「測位モジュール」「通信モジュール」「制御部」がある。右側に凡例があり、構成要素、メッセージ、活性区間、条件の表記法が示されている。凡例注記:「制御部の活性区間では、CPUは実行モードである。制御部以外の活性区間では、そのモジュールには電力が供給される。」
シーケンスは以下の3つの条件ブロックに分かれている。

  1. 【条件:前回の通信から40秒経過】
    制御部内で「通信モジュール電源オン」。
    通信モジュールから制御部へ「通信可能通知」。
    制御部から通信モジュールへ「c」。
    通信モジュールから制御部へ「受信結果通知」。
    制御部内で「通信モジュール電源オフ」。
  2. 【条件:前回の測位から120秒経過又は位置通知要求あり】
    制御部内で「測位モジュール電源オン」。
    制御部から測位モジュールへ「d」。
    制御部から測位モジュールへ「測位開始要求」。
    測位モジュールから制御部へ「測位結果通知」。
    制御部内で「測位モジュール電源オフ」。
  3. 【条件:b
    制御部内で「通信モジュール電源オン」。
    制御部から通信モジュールへ「e」。
    制御部から通信モジュールへ「送信要求」。
    通信モジュールから制御部へ「送信結果通知」。
    制御部内で「通信モジュール電源オフ」。

設問と解答・解説

設問1

休止モードは最長で何秒継続するか答えよ。ここで,各処理の処理時間は表 2に従うものとし,通信モジュール及び測位モジュールの電源オンオフの切替えの時間,通信モジュールの通信時間は無視できるものとする。

模範解答

39

配点 3

解説

タイマー通知は40秒周期で、通知後の確認処理には表2のとおり1秒かかります。位置通知要求がなく、120秒・600秒周期の処理にも当たらない回では、確認処理後から次の通知まで休止できるので、最長時間は 40 - 1 = 39 秒です。

設問1は,正答率が低かった。処理時間を正しく把握することは,ソフトウェア設計上重要なので,是非理解してほしい。

設問2

〔使用可能時間〕について,本文中の a に入れる適切な数値を,小数点以下を切り捨てて,整数で答えよ。

模範解答

246

配点 3

解説

表2の各処理の平均消費電流に、常時消費する0.01 mAを加えると、PRT全体では 0.1 + 0.5 + 0.2 + 0.01 = 0.81 mAです。放電可能容量200 mAhを割ると 200 ÷ 0.81 = 246.91… 時間となり、小数点以下を切り捨てて 246 時間です。

設問3

〔制御部のソフトウェア〕のタイマー通知時のシーケンス図について答えよ。

(1)

図3中の b に入れる適切な条件を答えよ。

模範解答

前回の送信から600秒経過又は位置通知要求あり

採点基準(配点 3点)

知識・理解度(内容)(2点)

  • 2: 「前回の送信から600秒経過」と「位置通知要求あり」の両方の条件を正しく記述している。
  • 1: どちらか一方の条件のみを記述している。
  • 0: 条件に関する記述がない、または誤っている。

論理性(構造)(1点)

  • 1: 2つの条件が「又は」などの論理和として正しく結合されている。
  • 0: 論理関係が不明確である、または「かつ」として結合されている。

解説

問題の解説

制御部のソフトウェアにおいて、タイマー通知時の処理が開始される条件を答える問題です。

  • 位置通知タグは定期的に位置情報を送信する必要があるため、「前回の送信から600秒経過」がひとつの起動条件となります。
  • さらに、外部からの要求に即座に応答するため、「位置通知要求あり」というイベントも条件に加わります。
  • どちらか一方が満たされた場合に処理を実行するため、これらを「又は」で結んだものが正答となります。

高得点のポイント

  • 定期的な動作条件である「前回の送信から600秒経過」を明記していること。
  • イベント駆動の条件である「位置通知要求あり」を含めていること。
  • 両方の条件を「又は(OR条件)」で正しく結合していること。

(2)

図3中の c に入れる適切なメッセージ名及びメッセージの方向を示す矢印を答えよ。

模範解答

受信要求,←

採点基準(配点 3点)

知識・理解度(内容)(2点)

  • 2: 「受信要求」というメッセージ名が正しく記述されている。
  • 1: メッセージ名が部分的に正しい、または意味が類似している。
  • 0: メッセージ名の記述がない、または誤っている。

論理性(構造)(1点)

  • 1: メッセージの方向を示す矢印「←」が正しく記述されている。
  • 0: 矢印の記述がない、または誤っている。

解説

問題の解説

シーケンス図におけるハードウェアモジュール間のメッセージ名と方向を答える問題です。

  • 制御部から通信モジュールに対して、必要なデータの受信を依頼するフェーズに該当します。
  • メッセージ名は 受信要求 となり、制御部から通信モジュールへ向けて送信されるため、矢印の方向は となります。

高得点のポイント

  • メッセージ名として「受信要求」を正しく記述していること。
  • メッセージの送信方向を示す矢印「←」を正確に示していること。

(3)

図3中の d に入れる適切なメッセージ名及びメッセージの方向を示す矢印を答えよ。

模範解答

測位可能通知,→

採点基準(配点 3点)

知識・理解度(内容)(2点)

  • 2: 「測位可能通知」というメッセージ名が正しく記述されている。
  • 1: メッセージ名が部分的に正しい、または意味が類似している。
  • 0: メッセージ名の記述がない、または誤っている。

論理性(構造)(1点)

  • 1: メッセージの方向を示す矢印「→」が正しく記述されている。
  • 0: 矢印の記述がない、または誤っている。

解説

問題の解説

シーケンス図において、測位モジュールから制御部に送られる状態通知のメッセージ名と方向を答える問題です。

  • 測位モジュールが起動し、位置情報を取得する準備が整ったことを制御部に伝える必要があります。
  • メッセージ名は 測位可能通知 であり、測位モジュールから制御部への通知であるため、矢印の方向は となります。

高得点のポイント

  • メッセージ名として「測位可能通知」を正しく記述していること。
  • メッセージの送信方向を示す矢印「→」を正確に示していること。

(4)

図3中の e に入れる適切なメッセージ名及びメッセージの方向を示す矢印を答えよ。

模範解答

通信可能通知,→

採点基準(配点 3点)

知識・理解度(内容)(2点)

  • 2: 「通信可能通知」というメッセージ名が正しく記述されている。
  • 1: メッセージ名が部分的に正しい、または意味が類似している。
  • 0: メッセージ名の記述がない、または誤っている。

論理性(構造)(1点)

  • 1: メッセージの方向を示す矢印「→」が正しく記述されている。
  • 0: 矢印の記述がない、または誤っている。

解説

問題の解説

シーケンス図において、通信モジュールから制御部に送られる状態通知のメッセージ名と方向を答える問題です。

  • 通信モジュールがネットワークへの接続を完了し、通信の準備が整ったことを制御部に伝えます。
  • メッセージ名は 通信可能通知 であり、通信モジュールから制御部への通知であるため、矢印の方向は となります。

高得点のポイント

  • メッセージ名として「通信可能通知」を正しく記述していること。
  • メッセージの送信方向を示す矢印「→」を正確に示していること。

設問3(1)は,正答率が低かった。周期的な動作だけを指摘して,位置通知要求があることを条件に入れていない解答が散見された。条件を明確にすることは不具合のない設計を行うための必須項目なので,十分に理解しておいてほしい。

設問4

〔制御部のソフトウェア〕について,タイマーを二つ用いた最初の設計で発生した不具合の原因を40字以内で答えよ。

模範解答

通信モジュールとの通信と測位モジュールとの通信が同時に発生した。

採点基準(配点 2点)

知識・理解度(内容)(1点)

  • 1: 通信モジュールとの通信、及び測位モジュールとの通信の2つの処理について言及している。
  • 0: 必要な要素が欠けている、または誤っている。

説得力(考察)(1点)

  • 1: それらが「同時に発生した(競合した)」ことが不具合の原因として論理的に述べられている。
  • 0: 同時発生に関する記述がない、または論理が破綻している。

解説

問題の解説

複数のタイマーを用いた初期設計において発生した不具合の根本的な原因を考察する問題です。

  • 通信モジュール用と測位モジュール用のそれぞれに独立したタイマーを持たせた結果、特定のタイミングで両者の処理が重なるリスクが生じます。
  • すなわち、通信モジュールとの通信と、測位モジュールとの通信が同時に発生(競合)したことが不具合の原因です。組込みシステムの設計においては、このような非同期イベントの同時発生時の挙動を正しく推測することが重要です。

高得点のポイント

  • 競合を起こした2つの要素(通信モジュールとの通信、測位モジュールとの通信)を明示していること。
  • それらが「同時に発生した」という事象の核心を捉えていること。
  • 制限文字数(40字以内)に従い、簡潔かつ過不足なくまとめられていること。

設問4は,正答率が平均的であった。“タイマーがずれる”,“電源がオフになる”などの解答が散見された。複数のタイマーが独立したときにどのような挙動となるかを推測し,提示してある問題点を組み合わせることで正答が導き出せる。システムの挙動の理解は,組込みシステムの設計上重要なので,是非理解を深めてほしい。