平成26年春期試験午後問題 問7

問7 組込みシステム開発

⇱問題PDF
園芸用自動給水器に関する次の記述を読んで,設問1~4に答えよ。
 G社は,園芸用自動給水器(以下,給水器という)を開発している。

〔給水器の概要〕
 給水器は庭に設置し,設定した時刻に庭の植物に霧状の水を噴射(以下,給水という)する。開発中の給水器の構成を,図1に示す。
pm07_1.png
 給水器は,給水ユニット(以下,ユニットという)を最大四つまで接続することができる。ただし,給水に必要な水圧を維持するために,同時に給水できるのは最大2ユニットまでである。給水器の給水設定は,操作パネルで行う。図2に示すように,操作パネルは表示部とキーから構成される。
pm07_2.png
 一つの給水設定では,ユニット番号,予約番号,給水を開始する時刻(以下,給水時刻という),給水を継続する時間(以下,給水時間という)を入力する(給水時間の単位は"分")。予約番号を指定することで,ユニットごとに1日最大4回まで給水することができる。また,給水時間は最大20分まで設定できる。

〔給水器の組込みソフトウェア〕
 給水器の組込みソフトウェアには,リアルタイムOSを用いる。タスクには,実行状態,実行可能状態,待ち状態及び休止状態があり,イベントドリブンによるプリエンプティブ方式で状態選移が行われる。各タスクの動作内容を,表1に示す。
pm07_3.png
 給水器では,同時に給水できるのは2ユニットまでなので,計数型セマフォを用いて次のように排他制御を行う。
  • 初期化タスクにおいて,セマフォの初期値をcに設定する。
  • 給水弁操作タスクにおいて,給水弁を開く操作の前にdを獲得する。獲得できたときは給水弁を開き,獲得できないときは獲得できるまで待ち状態に移行する。
〔操作パネルのキースキャン動作〕
 図3に示すキースキャン回路を用いて,操作パネルのキーを読み取る。この回路は給水器を制御するMCUに接続されており,MCUに内蔵されている4個の出力ポートで列を選択し,4個の入力ポートを読むことによって,16個のキーの状態を読み取る。
pm07_4.png
〔機能拡張の検討〕
 インターネットを経由して,外出先から給水器の設定を変更したり,状態を監視したりする機能を,給水器に追加することを検討した。この通信はインターネットを経由することから,"通信相手のeを行い,なりすましによる不正な給水器操作を防止する","通信内容が漏えいしないように,通信データをfする"などのセキュリティ対策が必要である。

設問1

〔給水器の組込みソフトウェア〕について,(1)~(3)に答えよ。
  • 表1中のabに入れる適切なタスク名を答えよ。
  • 全ての給水設定を記憶するのに必要な,不揮発性メモリのサイズは何バイトか。整数で答えよ。
  • 本文中のcdに入れる適切な字句を答えよ。

解答例・解答の要点

  • a:給水設定
    b:給水弁操作
  • 128
  • c:2
    d:アクセス権

解説

  • aについて〕
    給水設定タスクの説明には「キースキャンタスクからのキーコードを待ち…」とあります。よって、キースキャンタスクでキーが押されたと判断したときに、キーコードを通知する先は「給水設定」タスクとわかります。

    a=給水設定

    bについて〕
    給水時刻と現在時刻が一致したということは、給水を開始しなければなりません。給水弁を開いて、給水を開始する役割をもつタスクは「給水弁操作」なので、これを起動することになります。

    b=給水弁操作

  • 〔給水機の概要〕より、下記2点がわかります。
    • 給水器は、ユニットを最大4つまで接続することができる。
    • ユニットごとに1日最大4回まで給水することができる。
    また、表1の給水設定タスクの説明には「1つの給水設定は8バイト構成とする」とあります。したがって、全ての給水設定を記憶するのに必要な不揮発性メモリのサイズは、

     4ユニット×4回×8バイト=128バイト

    ∴128

  • cについて〕
    セマフォとは複数のプロセスが並行動作している状況で、共通資源(リソース)の排他制御をする仕組みです。基本となるセマフォは、セマフォ変数、P操作、V操作という3つの要素で構成されます。
    セマフォ変数
    現時点で利用可能な資源数を表す整数型の変数
    P操作
    セマフォ変数が0でなければ資源のアクセス権を獲得し、セマフォ変数の値を1だけ減らす
    V操作
    資源を解放し、セマフォ変数の値を1だけ増やす
    セマフォの値は同時に利用可能な資源数を表しています。本問の給水器は、同時に給水できるのは最大2ユニットまでですので、セマフォの初期値は「2」となります。

    c=2

    dについて〕
    セマフォ変数の値は利用可能な給水可能なユニット残数を表しています。給水弁操作ユニットでは給水弁を開ける前にセマフォの獲得を試みます。このとき、セマフォ変数の値によって動作が分岐します。
    セマフォ変数が2 または 1
    給水弁を開く
    セマフォ変数が0
    待ち状態に移行
    模範解答では「アクセス権」となっていますが、「セマフォ」や「使用権」といった語句でも問題ないはずです。

    ∴アクセス権

設問2

〔操作パネルのキースキャン動作〕について,(1),(2)に答えよ。
  • あるキーを押したときの,P0~P3 の出力値に対する P4~P7 の入力値を表2に示す。このときの押されたキーを,図2のキー名称で答えよ。
    pm07_5.png
  • 図3中のダイオードは,出力ポートP0~P3の短絡を防止するためのものである。ダイオードがない場合に,短絡する要因となるキー操作を,15字以内で述べよ。

解答例・解答の要点

  • 6
  • 複数のキーを同時に押す (11文字)

解説

  • キースキャン回路はスイッチを格子状の配線にした回路で、出力ポートから1(H:ハイレベル)を出力し、そのときの入力ポートの値をスキャンすることで各スイッチのON/OFFを判断するものです。本問のキースキャン回路では、MCUから出力ポートP0~P3に順次1を出力し、スイッチが押されていれば通電により対応する入力ポートの値が1になるという具合です。

    表2は上から1行ごとに次のように見ます。
    • P0をハイレベル(=1)にしても、P4~P7は変化なし
    • P1をハイレベル(=1)にしたら、P5がハイレベル(=1)になった
    • P2をハイレベル(=1)にしても、P4~P7は変化なし
    • P3をハイレベル(=1)にしても、P4~P7は変化なし
    本問では入力ポートのうち値が1になっているP5に注目します。出力ポートP1=1のときに、あるキーを押下することでP5=1となったのですから、図3の回路図でP5とP1の線が交わる「6」が押されたと判断できます。

    ∴6
    pm07_6.png
  • 例えば、P0=1の場合にP1~P3のいずれかが1となるとに短絡(ショート)が発生します。短絡が発生すると定格以上の電流が流れるので出力ポートが破損する恐れがあります。ダイオードは電流の流れを一方向にする装置で、過電流が出力ポートに流れるのを防止します。

    キースキャン回路で短絡が起こるのは、「設定開始」と「7」「8」「9」のいずれかを同時に押下するなどのように、同じ行に配置されている複数のキーを同時に押したときです。
    pm07_7.png
    ∴複数のキーを同時に押す

設問3

給水中に,他の予約番号の給水時刻になり,連続して給水が行われた。そこで給水設定時に,同一ユニットの設定済給水時刻から60分以内の給水時刻を,設定できないようにしたい。この処理はどのタスクに追加するのがよいか。タスク名を答えよ。

解答例・解答の要点

給水設定

解説

操作パネルで確定キーが押されると、給水設定タスクは入力された給水設定を給水スケジュールタスクに通知すると同時に、不揮発メモリに記憶します。このとき、不揮発性メモリの記憶内容を参照し、同一ユニットの設定済給水時刻から60分以内の給水時刻が入力された場合にはエラーを出すようにすればよいと考えられます。

∴給水設定

設問4

〔機能拡張の検討〕について,本文中のefに入れる適切な字句を答えよ。

解答例・解答の要点

e:機器認証
f:暗号化

解説

efについて〕
セキュリティ上の脅威と対策として以下のものがあります。
pm07_8.png
認証にはデジタル署名等の仕組みが使用され、暗号化には公開鍵暗号方式等の仕組みが使用されます。

[e]はなりすまし対策ですから通信相手の「認証」が入ります。[f]は通信内容の漏えい対策ですから「暗号化」が入ります。

e=機器認証
 f=暗号化
模範解答

Pagetop