エンベデッドシステムスペシャリスト 2022年 午前2 問02
問題文
マイコンと、表に示す二つのセンサーとをI²Cで接続した。センサーからマイコンへのデータの読込みは、センサーアドレス、内部アドレス、センサーアドレスの順にアドレスを送信した後に行う。最初のセンサーアドレスは対象センサーアドレスを左に1ビットシフトして、LSBを0にしたものであり、二つ目のセンサーアドレスは対象センサーアドレスを左に1ビットシフトしてLSBを1にしたものである。4A、01、4Bの順にアドレスを送信したときにマイコンに読み込まれるデータはどれか。ここで、リスタートコンディションは自動的に行われるものとし、アドレスは16進数表記である。

選択肢
ア:X軸角速度
イ:X軸加速度
ウ:Y軸角速度(正解)
エ:Y軸加速度
🔒 解説は解答すると表示されます
I²Cのアドレス指定【午前2解説】
正解の理由
I²Cで送信するセンサーアドレスには、対象センサーのアドレスに加えて、書込みか読込みかを示すLSBが含まれます。
最初に送信された
4A は、LSBが 0 なので書込みを示します。これを1ビット右にシフトすると、対象センサーのアドレスは 25 です。表より、アドレス 25 はジャイロセンサーです。次に内部アドレス
01 を送信しているため、読み込むデータはジャイロセンサーの内部アドレス 01 に対応する「Y軸角速度」です。最後の 4B はLSBが 1 なので読込みを示し、同じジャイロセンサーからデータを読み込みます。したがって、読み込まれるデータは ウ です。
解法ステップ
- 最初のセンサーアドレス
4AのLSBを確認します。LSBは0なので、書込みを表します。 4Aを1ビット右にシフトします。4Aはセンサーアドレス25に書込みビットを付けた値です。- 表から、センサーアドレス
25はジャイロセンサーだと分かります。 - 内部アドレス
01を確認します。ジャイロセンサーの01は「Y軸角速度」です。 - 最後の
4BはLSBが1なので読込みを表します。よって、指定したデータをセンサーから読み込みます。
選択肢別の誤答解説
- ア:X軸角速度です。ジャイロセンサーを選べている点は合っていますが、内部アドレス
00に対応するデータです。問題では01が指定されています。 - イ:X軸加速度です。加速度センサーの内部アドレス
00に対応します。今回のセンサーアドレスは25なので、対象はジャイロセンサーです。 - ウ:Y軸角速度です。センサーアドレス
25のジャイロセンサーについて、内部アドレス01を読み込むため正解です。 - エ:Y軸加速度です。加速度センサーの内部アドレス
01に対応します。加速度センサーのアドレスは2Aであり、今回のアドレスとは異なります。
よくある誤解
4Aや4Bを、そのまま表のセンサーアドレスと照合してしまうことがあります。LSBの読書きビットを除いた値で照合します。- 最後のアドレスだけを見てセンサーを特定しようとすることがあります。
4Aと4Bは、同じセンサーに対する書込み・読込みの指定です。 - センサーアドレスと内部アドレスを混同しやすいです。センサーアドレスはどのセンサーか、内部アドレスはそのセンサー内のどのデータかを指定します。
補足コラム
4A と 4B は、2進数で見るとそれぞれ 01001010、01001011 です。異なるのは最下位ビットだけです。このビットが 0 なら書込み、1 なら読込みを表します。したがって、どちらも同じ7ビットのセンサーアドレス 25 を指定しています。FAQ
なぜアドレスが
対象センサーは変わらず、LSBだけが変わるためです。
4A から 4B に変わるのですか?対象センサーは変わらず、LSBだけが変わるためです。
4A は書込み、4B は読込みを表します。内部アドレス
センサー内部のデータ項目を指定しています。ジャイロセンサーでは
01 は何を指定していますか?センサー内部のデータ項目を指定しています。ジャイロセンサーでは
01 がY軸角速度に対応します。関連キーワード: I²C、センサーアドレス、内部アドレス、R/Wビット、LSB、リスタートコンディション

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

