エンベデッドシステムスペシャリスト 2014年 午後1 問01
ICレコーダに関する次の記述を読んで、設問1~3に答えよ。
A社は、会話、音楽などのアナログ音声信号(以下、音声信号という)をモノラルのディジタル音声データ(以下、音声データという)で録音、再生するICレコーダの開発を行っている。ICレコーダのハードウェア構成を図1に示す。ICレコーダでは、音声データをフラッシュメモリに保存し、USB I/Fを介してPCへ転送及びPCから格納することができる。また、ラジオを受信することができ、周波数の選択はキー操作で行う。
〔録音機能〕
マイク又はラジオからの音声信号を、オーディオモジュールで音声データに変換し、フラッシュメモリに保存する。保存する際のファイル名は、録音開始時の時刻“年月日時分秒”とし、自動で付与する。時刻は、時刻設定機能を用いて利用者が変更できる。録音開始時には、LCDのバックライトを点灯し、録音中は録音時間をLCDに表示する。20秒間キー操作を行わないと、LCDのバックライトを消灯する。USB接続中は、録音できない。
〔再生機能〕
フラッシュメモリに保存した音声データを、オーディオモジュールで音声信号に変換し、スピーカで再生する。再生音量・速度・音程(以下、出力設定値という)は、再生中にキー操作で変更することができる。再生開始時には、LCDのバックライトを点灯し、再生中は再生時間をLCDに表示する。20秒間キー操作を行わないと、LCDのバックライトを消灯する。USB接続中は、再生できない。
〔レジューム機能〕
再生対象の音声データの先頭16バイトからチェックディジットを作成する。再生を停止すると、再生停止位置、出力設定値及びチェックディジットをレジューム情報として記憶する。各音声データの初回再生時にレジューム情報用のファイルを作成する。再生停止時にレジューム情報を書き込む。次回再生時に音声データからチェックディジットを再作成し、レジューム情報の値と一致した場合は、前回の再生停止位置から同じ状態で再生する。一致しなかった場合は、レジューム情報用のファイルを削除して再作成し、音声データの先頭から再生する。音声データを最後まで再生した場合は、再生停止位置を先頭にしてレジューム情報を更新する。
〔オーディオモジュールの機能〕
オーディオモジュールにはADC、DAC、再生と録音で共通に使う二つのバッファ(各バッファに1秒分の音声データを格納)が内蔵されている。オーディオモジュールで使用するドライバ関数とその処理、オーディオモジュールの動作を、表1に示す。

〔フラッシュメモリの記録領域〕
フラッシュメモリは、用途ごとに三つの記録領域に分かれている。各記録領域の用途とサイズを、表2に示す。
なお、USBで接続したPCからアクセスできるのは、音声データ記録領域だけである。

設問1:ICレコーダの仕様について、(1)~(3)に答えよ。
設問1(1)
問題文を見る1回の録音処理は1秒以上掛かるので、連続して録音してもファイル名が衝突することはない。しかし、利用者が録音以外のある操作を行った後に録音すると、ファイル名が衝突する場合がある。ファイル名が衝突する場合の利用者の操作内容を、30字以内で述べよ。
模範解答
時刻設定で変更前の日時よりも過去の日時を設定した。
解説
解答の導き方
問われているのは、録音開始時刻を使って自動で付けるファイル名が、録音以外の操作によって重複するケースです。
まず、本文にはファイル名を「録音開始時の時刻“年月日時分秒”」として自動で付与するとあります。つまり、録音を始めた日時が同じ秒まで一致すると、ファイル名も同じになります。
通常どおり時刻が進んでいれば、1回の録音処理に1秒以上掛かるため、連続して録音しても開始時刻が同じ秒にはなりません。しかし、本文には「時刻設定機能を用いて利用者が変更できる」とあります。利用者が時刻を過去に戻すと、以前に録音したときと同じ日時に再び到達し、その時点で録音を開始した場合にファイル名が重複することがあります。
したがって、衝突につながる操作は、時刻設定で変更前の日時よりも過去の日時を設定することです。
誤りやすいポイント
- 連続録音ではファイル名が衝突しないという条件だけに注目し、時刻設定による時計の巻戻しを見落とすことがあります。
- 時刻を変更すれば必ず衝突すると考えるのは誤りです。過去の日時に戻した結果、以前に使った録音開始時刻と重なる場合に衝突します。
- ファイル名は録音日時ではなく、録音開始時の日時に基づいて付く点に注意してください。
FAQ
Q: なぜ通常の連続録音ではファイル名が衝突しないのですか?
A: 録音開始時刻は秒まで使われ、1回の録音処理に1秒以上掛かるため、時刻が通常どおり進めば開始時刻が同じ秒にならないからです。
A: 録音開始時刻は秒まで使われ、1回の録音処理に1秒以上掛かるため、時刻が通常どおり進めば開始時刻が同じ秒にならないからです。
Q: 時刻を未来に進める操作でも、同じ理由で衝突しますか?
A: 時刻を進めるだけでは過去に使った時刻に戻らないため、問題となるのは主に時計を過去へ戻す操作です。
A: 時刻を進めるだけでは過去に使った時刻に戻らないため、問題となるのは主に時計を過去へ戻す操作です。
Q: 過去の日時を設定すれば、必ずファイル名が重複しますか?
A: 必ずではありません。設定後の録音開始時刻が、以前に使った録音開始時刻と一致した場合に重複します。
A: 必ずではありません。設定後の録音開始時刻が、以前に使った録音開始時刻と一致した場合に重複します。
関連キーワード: タイムスタンプ、時刻設定、ファイル名、名前衝突
設問1(2)
問題文を見る音声データの再生時に、チェックディジットが一致するかどうか確認をしている。これは、利用者がPCからある操作を行うことによって一致しないケースが考えられるからである。チェックディジットが一致しない原因となる利用者の操作の内容を、30字以内で述べよ。
模範解答
PCから同じファイル名の別の音声データに置き換えた。
解説
解答の導き方
-
レジューム情報には、再生停止位置などに加えて、音声データの内容を確認するためのチェックディジットが保存されます。本文には「再生対象の音声データの先頭16バイトからチェックディジットを作成する」とあります。
-
次回再生時には、音声データからチェックディジットを作り直し、保存済みの値と比較します。つまり、音声データが以前と同じかどうかを確かめています。
-
USBで接続したPCからアクセスできるのは音声データ記録領域だけです。そのため、PCから音声データを別のデータに置き換えても、レジューム情報に保存された元のチェックディジットはそのまま残ります。特に、置き換えたデータのファイル名が元と同じなら、元の音声データに対応するレジューム情報との比較が行われます。
-
置き換えた音声データの先頭16バイトが元と異なる場合、作り直したチェックディジットはレジューム情報の値と一致しません。したがって、チェックディジットが一致しない原因となる操作は、PCから同じファイル名の別の音声データに置き換えることです。
誤りやすいポイント
- PCから音声データを変更できることだけでなく、レジューム情報は音声データとは別の記録領域に保存される点も押さえましょう。
- ファイル名を変える操作ではなく、同じファイル名のまま別の音声データに置き換える操作が問われています。
- チェックディジットは音声データ全体ではなく、本文にあるとおり先頭16バイトから作成されます。
FAQ
Q: なぜファイル名を同じにする必要があるのですか?
A: 元の音声データに対応するレジューム情報を残したまま、音声データだけを置き換える状況を作るためです。
A: 元の音声データに対応するレジューム情報を残したまま、音声データだけを置き換える状況を作るためです。
Q: チェックディジットが一致しないと、再生はどうなりますか?
A: 本文の仕様では、レジューム情報用のファイルを削除して再作成し、音声データの先頭から再生します。
A: 本文の仕様では、レジューム情報用のファイルを削除して再作成し、音声データの先頭から再生します。
Q: PCからレジューム情報も更新できますか?
A: PCからアクセスできるのは音声データ記録領域だけなので、レジューム情報は更新できません。
A: PCからアクセスできるのは音声データ記録領域だけなので、レジューム情報は更新できません。
関連キーワード: チェックディジット、レジューム情報、ファイル名、データ整合性、フラッシュメモリ
設問1(3)
問題文を見る利用者のキー操作で音声データを削除するとき、フラッシュメモリのレジューム情報も同時に削除する。このとき、当該レジューム情報が見つからない場合がある。その場合の音声データの状態を、25字以内で述べよ。
模範解答
当該音声データを一度も再生させていない状態
解説
解答の導き方
問われているのは、音声データを削除するときに対応するレジューム情報が見つからない場合、その音声データがどのような状態かです。
まず、レジューム情報用のファイルがいつ作られるかを確認します。本文には「各音声データの初回再生時にレジューム情報用のファイルを作成する。」とあります。つまり、録音しただけではレジューム情報用のファイルは作られず、その音声データを初めて再生したときに作られます。
したがって、音声データに対応するレジューム情報が見つからないのは、その音声データがまだ初回再生に至っておらず、一度も再生されていない場合です。
誤りやすいポイント
- レジューム情報は録音時に作成される、と考えないようにします。作成のタイミングは「各音声データの初回再生時」です。
- レジューム情報が見つからないことを、音声データ自体が存在しない状態と混同しないようにします。設問では音声データを削除するときの状態を尋ねています。
- 再生停止位置などの情報がまだ書き込まれていないことと、レジューム情報用のファイル自体がまだ作られていないことを区別します。
FAQ
Q: 録音した直後にレジューム情報用のファイルは作られますか?
A: いいえ。本文では、音声データの初回再生時に作成するとされています。
A: いいえ。本文では、音声データの初回再生時に作成するとされています。
Q: レジューム情報用のファイルが作られた後は、いつ情報が書き込まれますか?
A: 再生停止時に、再生停止位置や出力設定値などのレジューム情報が書き込まれます。
A: 再生停止時に、再生停止位置や出力設定値などのレジューム情報が書き込まれます。
関連キーワード: レジューム機能、フラッシュメモリ、ファイル管理、再生位置
設問2:ICレコーダのハードウェアについて、(1)~(3)に答えよ。
設問2(1)
問題文を見る図1中の(A)は、ラジオに対する制御を示すインタフェースである。(A)におけるラジオのON/OFF制御の他に、ラジオ放送の受信に必須な制御内容を答えよ。
模範解答
受信する周波数の選択
解説
解答の導き方
- 設問は、図1の(A)において、ラジオのON/OFF制御以外に必要な制御内容を尋ねています。したがって、ラジオの電源を入れるだけでは放送を受信できない理由を考えます。
- 問題文には、「周波数の選択はキー操作で行う」とあります。ラジオ放送を受信するには、電源のON/OFFに加えて、受信したい放送の周波数を選ぶ必要があります。
- そのため、(A)に必要な制御内容は、受信する周波数の選択です。
誤りやすいポイント
- ラジオのON/OFF制御だけで受信できると考えないようにします。電源を入れた後、受信対象の周波数を選ぶ制御も必要です。
- 音声信号をADCに入力することと、ラジオの受信周波数を選ぶことは別の処理です。設問が問うているのは後者です。
FAQ
Q: 周波数はなぜ選択する必要があるのですか?
A: 受信したい放送局に対応する周波数にラジオを合わせる必要があるためです。
A: 受信したい放送局に対応する周波数にラジオを合わせる必要があるためです。
Q: 周波数の選択はどのように行いますか?
A: 問題文では、キー操作で選択すると説明されています。
A: 問題文では、キー操作で選択すると説明されています。
Q: 図1の(A)は音声信号を伝える線ですか?
A: 設問ではラジオに対する制御を示すインタフェースとして扱われています。音声信号の経路とは区別して考えます。
A: 設問ではラジオに対する制御を示すインタフェースとして扱われています。音声信号の経路とは区別して考えます。
関連キーワード: 周波数選択、ラジオチューナ、制御インタフェース、入力制御
設問2(2)
問題文を見るICレコーダの仕様上の最大録音時間は何時間か。答えは小数点以下を切り捨てて、整数で求めよ。ここで、フラッシュメモリの音声データ記録領域は全て音声データに使えるものとし、録音形式は、サンプリング周波数が48kHz、量子化ビット数が16ビットで、圧縮によって12分の1のデータ量に圧縮できるものとする。また、1kHzは1,000Hz、1kバイトは1,000バイト、1Mバイトは1,000kバイトとする。
模範解答
137
解説
解答の導き方
最大録音時間は、音声データ記録領域の容量を、1秒当たりに保存される音声データ量で割って求めます。
まず、本文には録音形式が「サンプリング周波数が48kHz、量子化ビット数が16ビット」とあります。また、録音する音声データは「モノラル」です。したがって、圧縮前の1秒当たりのデータ量は、次のように求められます。
1バイトは8ビットなので、バイト単位に直すと次のとおりです。
ここで、ステレオのように2チャンネル分を計算する必要はありません。モノラルなので、1チャンネル分のデータ量です。
次に、本文には「圧縮によって12分の1のデータ量に圧縮できる」とあります。そのため、圧縮後の1秒当たりのデータ量は次のとおりです。
表2によると、音声データ記録領域のサイズは3,968 Mバイトです。問題文の単位の指定に従うと、1 Mバイトは1,000,000バイトなので、記録領域の容量は次のようになります。
この容量を1秒当たりのデータ量で割ると、録音できる秒数が求まります。
これを時間に直すには、1時間が3,600秒であることから、3,600で割ります。
最後に、求める時間は小数点以下を切り捨てるため、録音できる時間は137時間です。
誤りやすいポイント
- サンプリング周波数と量子化ビット数を掛けた値は、まずビット/秒になります。バイト/秒に直すには8で割ります。
- モノラルのデータ量を求めるため、ステレオのように2倍しないようにします。
- 「12分の1のデータ量」は、圧縮後の量が圧縮前の量の12分の1という意味です。12倍するのではありません。
- 1 Mバイトを1,000,000バイトとして計算します。問題文で単位の換算方法が指定されています。
- 最後に秒を時間へ換算し、指示どおり小数点以下を切り捨てます。
FAQ
Q: 48kHzを48,000Hzに換算するのはなぜですか?
A: 問題文で1kHzを1,000Hzとするためです。したがって、48kHzは1秒当たり48,000回のサンプリングを意味します。
A: 問題文で1kHzを1,000Hzとするためです。したがって、48kHzは1秒当たり48,000回のサンプリングを意味します。
Q: 圧縮によるデータ量の削減は、録音可能時間にどう影響しますか?
A: 1秒当たりの保存データ量が小さくなるため、同じ記録領域に保存できる時間は長くなります。
A: 1秒当たりの保存データ量が小さくなるため、同じ記録領域に保存できる時間は長くなります。
Q: なぜ最後に小数点以下を切り捨てるのですか?
A: 問題文が小数点以下を切り捨てるよう指定しているためです。137.77…時間の小数部分を残さず、整数時間にします。
A: 問題文が小数点以下を切り捨てるよう指定しているためです。137.77…時間の小数部分を残さず、整数時間にします。
関連キーワード: サンプリング周波数、量子化ビット数、データ圧縮率、データ容量、録音時間
設問2(3)
問題文を見る各ハードウェアの状態と各状態の動作電流を、表3に示す。フラッシュメモリに保存されている音声データを再生した場合の、再生開始から60秒間の平均消費電力(ミリW)を求めよ。答えは小数第1位を四捨五入して、整数で求めよ。ここで、音声データの録音時間は60秒以上あり、チェックディジットはレジューム情報の値と一致しているものとする。また、各ハードウェアの動作電圧は5Vであり、状態の切替え時間、切替え時の動作電流、及び表3以外の動作電流は無視できるものとする。さらに、再生中は、各ハードウェアが常時動作し、キー操作を行わないものとする。


模範解答
12
解説
解答の導き方
再生開始から60秒間の平均消費電力を求めるには、まず各ハードウェアの動作状態から平均電流を計算し、最後に電圧を掛けます。
-
再生中の各ハードウェアの状態を確認します。
MPUとRAMは表3で「常時」とされているので、それぞれ880マイクロA、170マイクロAです。音声データの再生ではフラッシュメモリに書き込まないため、「書込み時以外」の200マイクロAを使います。オーディオモジュールはD/A変換処理時の130マイクロA、アンプは出力時の380マイクロAです。ラジオは音声データの再生には使わないので、停止時の10マイクロAです。 -
LCDの60秒間の平均電流を求めます。
本文には、再生開始時にバックライトを点灯し、「20秒間キー操作を行わないと」消灯するとあります。キー操作を行わない条件なので、点灯は20秒間、消灯は残りの40秒間です。表3の電流から、LCDの平均電流は次のとおりです。 -
各ハードウェアの平均電流を合計します。
LCD以外は60秒間同じ状態で動作するため、表3の各電流とLCDの平均電流を合計します。これは2.4ミリアンペアです。 -
電圧を掛けて平均消費電力を求めます。
動作電圧は5Vなので、平均消費電力は次のとおりです。小数第1位を四捨五入しても、整数の答えは変わりません。
誤りやすいポイント
- LCDを60秒間ずっと点灯状態として計算しないようにします。キー操作がないため、点灯は再生開始後20秒間です。
- フラッシュメモリは音声データの再生中なので、書込み時の3,800マイクロAではなく、書込み時以外の200マイクロAを使います。
- オーディオモジュールは録音ではなく再生に使うため、A/D変換処理時ではなくD/A変換処理時の電流を使います。
- 電力の計算では、電流をミリアンペアに換算してから電圧を掛けます。
FAQ
Q: LCDの電流を平均するのはなぜですか?
A: 60秒間のうち点灯と消灯の状態が切り替わるためです。それぞれの状態の電流を、その状態が続く時間に応じて平均します。
A: 60秒間のうち点灯と消灯の状態が切り替わるためです。それぞれの状態の電流を、その状態が続く時間に応じて平均します。
Q: ラジオの電流を加えるのはなぜですか?
A: 表3にラジオの停止時の動作電流が示されているためです。再生中に停止していても、停止時の電流は消費電力に含めます。
A: 表3にラジオの停止時の動作電流が示されているためです。再生中に停止していても、停止時の電流は消費電力に含めます。
Q: フラッシュメモリの読出し専用の電流が表にない場合は、どの値を使いますか?
A: 表3では「書込み時」と「書込み時以外」に分かれているので、書込みをしていない読出し中は「書込み時以外」の値を使います。
A: 表3では「書込み時」と「書込み時以外」に分かれているので、書込みをしていない読出し中は「書込み時以外」の値を使います。
関連キーワード: 平均消費電力、平均電流、動作状態、時間加重平均、電力計算
設問3:ICレコーダのソフトウェアについて、(1)~(4)に答えよ。
ICレコーダのソフトウェアには、リアルタイムOSを用いる。ICレコーダの主要タスク一覧を、表4に示す。


設問3(1)
問題文を見る表4中のa、cに入れる適切な字句を答えよ。
模範解答
a:音声データ取得関数
c:チェックディジット
解説
解答の導き方
-
aは、録音中にオーディオモジュールから変換完了の割込み通知を受け取った後に呼び出す関数です。表1では、音声データ変換中に「1秒分の音声信号の変換が完了すると、MPUに割込み通知を送信する」とあります。したがって、この時点でオーディオモジュールのバッファには、1秒分の音声データが格納されています。
-
音声録音タスクは、その音声データを取得してファイル管理タスクに送る必要があります。表1の「音声データ取得」は、オーディオモジュールから「1秒分の音声データを取得する」処理で、取得後にバッファ内のデータを消去します。この処理に対応する関数がaに入るため、解答は「音声データ取得関数」です。
-
cは、レジューム情報タスクが音声データから作成し、レジューム情報の値と比較するものです。問題文では、再生対象の音声データの「先頭16バイトからチェックディジットを作成する」とあります。また、再生時には音声データからチェックディジットを再作成し、レジューム情報の値と一致するか確認します。
-
したがって、音声データから作成してレジューム情報と比較するcは「チェックディジット」です。
誤りやすいポイント
- 割込み通知を受け取ること自体と、音声データを取得する処理を混同しないようにします。割込み通知は変換完了を知らせるもので、データの取得には「音声データ取得」を使います。
- 音声データ変換開始関数と音声データ取得関数は役割が異なります。前者はA/D変換を起動し、後者は変換済みの1秒分のデータを受け取ります。
- cは再生停止位置や出力設定値ではありません。音声データとレジューム情報が対応しているかを確認するための値です。
FAQ
Q: 音声データ取得後にバッファ内のデータを消去するのはなぜですか?
A: 次に変換された音声データをバッファに格納できるようにするためです。取得済みのデータを残すと、新しいデータとの区別や格納に支障が出ます。
A: 次に変換された音声データをバッファに格納できるようにするためです。取得済みのデータを残すと、新しいデータとの区別や格納に支障が出ます。
Q: チェックディジットは再生停止位置を記録するための値ですか?
A: いいえ。再生停止位置はレジューム情報として別に記憶されます。チェックディジットは、音声データがレジューム情報を記録したときと同じデータかどうかを確認するために使います。
A: いいえ。再生停止位置はレジューム情報として別に記憶されます。チェックディジットは、音声データがレジューム情報を記録したときと同じデータかどうかを確認するために使います。
Q: チェックディジットが一致しない場合はどうなりますか?
A: 問題文では、レジューム情報用のファイルを削除して再作成し、音声データの先頭から再生するとされています。
A: 問題文では、レジューム情報用のファイルを削除して再作成し、音声データの先頭から再生するとされています。
関連キーワード: 割込み処理、バッファ、チェックディジット、レジューム機能、タスク間通信
設問3(2)
問題文を見る表4中のbに入れる処理内容を、20字以内で述べよ。
模範解答
b:次の1秒分の音声データを取得する。
解説
解答の導き方
再生開始時には、音声再生タスクが「再生開始位置から2秒分」の音声データを取得し、「音声データ格納関数を2回呼び出す」とあります。これは、オーディオモジュールにある二つのバッファへ、再生開始直後の音声データを準備する処理です。
各バッファには「1秒分の音声データ」を格納できます。再生が始まると、オーディオモジュールはバッファの音声データを音声信号に変換し、「1秒分の音声データの変換が完了すると、MPUに割込み通知を送信する」とあります。
この通知を受け取った時点で、バッファに入っていた1秒分のデータは再生済みです。音声を途切れずに再生するには、次に再生する分の音声データをファイル管理タスクから取得し、空いたバッファに格納する必要があります。したがって、bには、次の1秒分の音声データを取得する処理が入ります。
誤りやすいポイント
- bは、音声データを取得する処理です。取得したデータをバッファに格納する処理は、その後に別途「音声データ格納関数を呼び出す」と示されています。
- 再生開始時には2秒分を準備しますが、再生中は1秒分の変換完了ごとに、次の1秒分を補充します。開始時と再生中の処理を混同しないようにします。
- 割込み通知は、音声データ全体の再生完了ではなく、1秒分の変換完了を知らせるものです。
FAQ
Q: 再生開始時に2秒分を取得するのはなぜですか?
A: 二つのバッファに1秒分ずつ先行して用意し、再生開始直後にデータ不足が起きないようにするためです。
A: 二つのバッファに1秒分ずつ先行して用意し、再生開始直後にデータ不足が起きないようにするためです。
Q: 再生中に取得するデータも2秒分ですか?
A: いいえ。1秒分の変換完了通知ごとに、次の1秒分を取得して空いたバッファへ補充します。
A: いいえ。1秒分の変換完了通知ごとに、次の1秒分を取得して空いたバッファへ補充します。
Q: 取得した音声データは、取得後すぐに再生されますか?
A: 取得したデータは、まず音声データ格納関数によってバッファに格納され、その後オーディオモジュールで音声信号に変換されます。
A: 取得したデータは、まず音声データ格納関数によってバッファに格納され、その後オーディオモジュールで音声信号に変換されます。
関連キーワード: バッファリング、ダブルバッファ、割込み処理、音声データ転送、ストリーミング再生
設問3(3)
問題文を見る表4中に三つある下線①で、通知を受け取ったメインタスクが行う共通の処理を、20字以内で述べよ。
模範解答
表示タスクに表示情報を送信する。
解説
解答の導き方
表4では、下線①の通知先がいずれもメインタスクになっています。通知が届く場面は、録音中に音声データの変換が完了したとき、再生を開始したとき、再生中に音声データの変換が完了したときです。通知のきっかけは異なりますが、メインタスクが共通して行う処理を答える問題です。
本文には、録音中は録音時間を、再生中は再生時間をLCDに表示するとあります。また、表4ではメインタスクの処理として「表示情報を表示タスクに送信する」と示されています。録音や再生の進行に応じて表示を更新するため、通知を受けたメインタスクは、表示に必要な情報を表示タスクへ送ります。
したがって、共通の処理は「表示タスクに表示情報を送信する。」です。
誤りやすいポイント
- 通知のきっかけごとに別々の処理を答えようとしないことです。設問は、三つの通知に共通する処理を尋ねています。
- 音声データの取得や保存は音声録音タスクやファイル管理タスクの処理です。メインタスクの共通処理と混同しないようにします。
- LCDに直接表示するのは表示タスクです。メインタスクは、表示情報を表示タスクに送信します。
FAQ
Q: 三つの通知は、同じタイミングで発生するのですか?
A: いいえ。録音中の変換完了、再生開始、再生中の変換完了という異なるタイミングで発生します。設問では、それぞれの通知後にメインタスクが共通して行う処理を尋ねています。
A: いいえ。録音中の変換完了、再生開始、再生中の変換完了という異なるタイミングで発生します。設問では、それぞれの通知後にメインタスクが共通して行う処理を尋ねています。
Q: 表示タスクでは、どのような処理をしますか?
A: メインタスクから受け取った表示情報をLCDに表示し、メインタスクの指示に応じてバックライトを点灯・消灯します。
A: メインタスクから受け取った表示情報をLCDに表示し、メインタスクの指示に応じてバックライトを点灯・消灯します。
Q: 音声データの保存処理もメインタスクが行いますか?
A: いいえ。表4では、フラッシュメモリへの入出力はファイル管理タスクの処理とされています。
A: いいえ。表4では、フラッシュメモリへの入出力はファイル管理タスクの処理とされています。
関連キーワード: タスク間通信、イベント通知、リアルタイムOS、表示制御、状態管理
設問3(4)
問題文を見る表4中の下線②の処理を行う目的が二つある。一つは、音声信号を出力する際の出力設定値を決定するためである。もう一つの目的を、20字以内で述べよ。
模範解答
前回停止した位置から再生を行うため
解説
解答の導き方
-
下線②では、音声再生タスクがレジューム情報を取得します。本文には、再生を停止すると「再生停止位置、出力設定値及びチェックディジット」をレジューム情報として記憶するとあります。したがって、レジューム情報には出力設定値だけでなく、前回どこで再生を止めたかも含まれています。
-
設問では、レジューム情報を取得する目的の一つとして、出力設定値を決めることが示されています。もう一つの目的は、レジューム情報に含まれる再生停止位置を利用することです。
-
本文では、次回の再生時にチェックディジットが一致すれば、「前回の再生停止位置から同じ状態で再生する」と説明されています。つまり、レジューム情報を取得することで、前回止めた位置から再生を再開できます。
誤りやすいポイント
- 下線②の目的を、出力設定値を決めることだけで終わらせないようにします。設問は、もう一つの目的を尋ねています。
- チェックディジットの作成・比較は、音声データとレジューム情報が対応しているかを確認する処理です。もう一つの目的として答えるのは、再生停止位置の利用です。
- レジューム情報には再生停止位置、出力設定値、チェックディジットが含まれます。それぞれの役割を区別しましょう。
FAQ
Q: 前回停止した位置から再生できるのは、どの情報を使うからですか?
A: レジューム情報として保存された再生停止位置を使うためです。
A: レジューム情報として保存された再生停止位置を使うためです。
Q: チェックディジットが一致しない場合も、前回の停止位置から再生しますか?
A: いいえ。本文では、チェックディジットが一致しない場合、レジューム情報用のファイルを削除して再作成し、音声データの先頭から再生するとされています。
A: いいえ。本文では、チェックディジットが一致しない場合、レジューム情報用のファイルを削除して再作成し、音声データの先頭から再生するとされています。
Q: 出力設定値は、レジューム情報を取得するもう一つの目的ですか?
A: はい。前回の再生停止位置から再生することに加え、前回の出力設定値を使って再生するためです。
A: はい。前回の再生停止位置から再生することに加え、前回の出力設定値を使って再生するためです。
関連キーワード: レジューム機能、再生位置、チェックディジット、音声データ、出力設定値




