IPA過去問ドリル

平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問3

テクノロジ/コンピュータ構成要素

8 ビットの方向レジスタ及びデータレジスタで構成される I/O ポートがあり,各ビットに LED が一つずつ負論理で接続されている。システム起動時に LED の不要な点灯を避けるための手続として,適切なものはどれか。ここで,レジスタに書き込む値は 16 進数で表現している。 方向レジスタ(ビット7〜0,リセット時の値は全ビット0。0:入力,1:出力) データレジスタ(ビット7〜0,リセット時の値は全ビット不定。0:点灯,1:消灯) (注:本サイトでは原問題の表を文字表記に変換しています)

出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問3

正解:イ

解説

各ビットに LED が負論理(0で点灯,1で消灯)で接続されている場合,システム起動時にリセットされた方向レジスタは全ビット0(入力)であり,データレジスタの値は不定です。このとき,もし先にデータレジスタが未確定の値のまま方向レジスタを出力に切り替えると,不定値がそのまま出力され,LED が意図せず点灯してしまう可能性があります。これを避けるには,まずポートが入力(LED 出力には影響しない)状態のうちに,データレジスタへ全て消灯を意味する値(FF,1:消灯)を書き込んで確定させ,その後で方向レジスタを出力(FF)に切り替えることで,出力が確定した「消灯」の状態になってから LED 駆動が有効になるようにします。

選択肢ごとの解説

  • 誤り。データレジスタに 00 を書き込むと全ビットが0(点灯)になり,方向レジスタを出力に切り替えた瞬間に全ての LED が点灯してしまうため,不要な点灯を避ける手順として適切ではありません。
  • 正しい。データレジスタに,全ビット消灯を意味する FF を先に書き込んでおき,その後で方向レジスタに FF を書き込んで出力に切り替えることで,出力有効化の瞬間には既に消灯状態が確定しており,LED の不要な点灯を避けられます。
  • 誤り。方向レジスタを先に FF(出力)にすると,その時点でデータレジスタの値がまだ不定のまま出力されるため,LED が意図せず点灯するおそれがあります。データレジスタを先に確定させる必要があります。
  • 誤り。方向レジスタを先に FF(出力)にすると,まだデータレジスタが不定値のままの状態で出力が有効になってしまうため,一瞬でも不要な点灯が発生するおそれがあります。データレジスタを先に確定させてから方向レジスタを切り替える必要があります。
エンベデッドシステムスペシャリストの過去問を演習モードで解く