今回は平成19年度 機械科目 B問題18を解説します。分解能2〔mV〕のD-A変換器について、ユニポーラ・コード、オフセット・バイナリ・コード、バイポーラ・コード(2の補数)という3種類のコード方式それぞれの出力電圧を求める(a)と、逆に指定の出力電圧を得るためのディジタル入力量を求める(b)の問題です。
ユニポーラ・コードはV=0.002d、オフセット・バイナリ・コードはV=0.002(d-2048)、バイポーラ・コードは正の範囲でV=0.002d、負の範囲でV=-0.002(4096-d)という3つの直線式を使い分けます。(b)ではこれらの式を10進入力dについて逆算し、最後に16進数に変換します。
平成19年度 機械科目 B問題18:問題文と選択肢
まずは、実際の試験問題を確認してみましょう。

電験3種 機械科目 【情報】 平成19年度 B問題18
分解能が2〔mV〕のD-A変換器について,図を参考にして,次の(a)及び(b)に答えよ。
(a) 12ビットのディジタル入力量の(000)16を0〔V〕の出力電圧として,正の電圧のみを扱うユニポーラ・コードによるD-A変換器の場合,ディジタル入力量の(9C4)16は,(ア)〔V〕の出力電圧になる。ディジタル入力量の(000)16から(FFF)16の範囲で,(800)16を0〔V〕の出力電圧とし,(000)16側を負,(FFF)16側を正とするオフセット・バイナリ・コードによるD-A変換器の場合,出力電圧の範囲は,(イ)〔V〕となる。また,2の補数を用いて正負の電圧を扱うバイポーラ・コードによるD-A変換器では,ディジタル入力量の(A24)16は,(ウ)〔V〕の出力電圧になる。上記の記述中の空白箇所(ア),(イ)及び(ウ)に当てはまる数値として,正しいものを組み合わせたのは次のうちどれか。
(b) このD-A変換器がユニポーラ・コードのD-A変換器の場合,出力電圧1.250〔V〕を得るためのディジタル入力量は,(エ)となる。このD-A変換器がオフセット・バイナリ・コードのD-A変換器の場合,出力電圧1.250〔V〕を得るためのディジタル入力量は,(オ),出力電圧-1.250〔V〕を得るためのディジタル入力量は,(カ)となる。このD-A変換器が2の補数によるバイポーラ・コードのD-A変換器の場合,出力電圧-1.250〔V〕を得るためのディジタル入力量は,(キ)となる。上記の記述中の空白箇所(エ),(オ),(カ)及び(キ)に当てはまる数値として,正しいものを組み合わせたのは次のうちどれか。
(ア) (イ) (ウ) (1) 4.968 -4.094〜4.096 -3.000 (2) 4.968 -4.094〜4.096 -2.998 (3) 5.000 -4.096〜4.096 -3.000 (4) 5.000 -4.096〜4.094 -2.998 (5) 5.000 -4.096〜4.094 -3.000
(エ) (オ) (カ) (キ) (1) (271)16 (A71)16 (58F)16 (D8F)16 (2) (271)16 (271)16 (58F)16 (58F)16 (3) (271)16 (A71)16 (D8F)16 (58F)16 (4) (625)16 (271)16 (D8F)16 (D8F)16 (5) (625)16 (A71)16 (D8F)16 (D8F)16
出題のポイント:分解能2 mVと3つのコード

12ビット入力は0〜4095、分解能2 mVは1段当たり0.002 Vです。ユニポーラは0から単調増加、オフセット・バイナリは(800)₁₆を0 Vとして単調増加、2の補数によるバイポーラは(7FF)₁₆と(800)₁₆の間で正から負へ折り返します。
ポイント解説:入力コードと電圧の対応

D-A変換器には出力の扱い方によって複数のコード方式があります。ユニポーラ・コードは正の電圧のみ、オフセット・バイナリ・コードは中央値を0Vとして正負両方、バイポーラ・コード(2の補数)は2進数の折り返し構造で正負を表します。
3種類のコード方式について、0 Vに対応する入力と端点を確認し、それぞれの直線式を正しく立てることがポイントです。
問題の解説:計算結果をまとめて照合

STEP1 (a)(ア)ユニポーラ・コードの出力電圧を求める
分解能2mVより,V1=0.002×d〔V〕(dは10進入力)。(9C4)16=9×16²+12×16+4=2500なので,
$$V_1=0.002\times2500=5.000\ \text{V(ア)}$$
STEP2 (a)(イ)オフセット・バイナリ・コードの出力範囲を求める
(800)16=2048を中心に,V2=0.002×(d-2048)〔V〕。
d=0((000)16)のとき V2=0.002×(0-2048)=-4.096V。d=4095((FFF)16)のとき V2=0.002×(4095-2048)=4.094V。
よって出力範囲は-4.096〜4.094V(イ)。
STEP3 (a)(ウ)バイポーラ・コードの出力電圧を求める
(A24)16=10×16²+2×16+4=2596は(800)16以上なので負の数として扱い,V3=-0.002×(4096-d)。
$$V_3=-0.002\times(4096-2596)=-3.000\ \text{V(ウ)}$$
以上より(ア)5.000(イ)-4.096〜4.094(ウ)-3.000の組合せである(5)が(a)の正解です。
STEP4 (b)(エ)ユニポーラ・コードで1.250Vを得る入力を求める
d=V1/0.002=1.250/0.002=625(10進)。16進数に変換すると(271)16(エ)。
STEP5 (b)(オ)(カ)オフセット・バイナリ・コードの入力を求める
d=V2/0.002+2048の式より,1.250Vのとき d=1.250/0.002+2048=2673=(A71)16(オ)。
-1.250Vのとき d=-1.250/0.002+2048=1423=(58F)16(カ)。
STEP6 (b)(キ)バイポーラ・コードで-1.250Vを得る入力を求める
負の式4096-d=-V3/0.002より d=V3/0.002+4096=-1.250/0.002+4096=3471=(D8F)16(キ)。
以上より(エ)(271)16(オ)(A71)16(カ)(58F)16(キ)(D8F)16の組合せである(1)が(b)の正解です。
答え:(a)-(5),(b)-(1)
💡 覚え方
ユニポーラ=V=0.002d。オフセット・バイナリ=V=0.002(d-2048)。バイポーラ(2の補数)=正の範囲でV=0.002d,負の範囲でV=-0.002(4096-d)。この3つの直線式を使い分けるのが最大のポイント。
⚠️ よくある間違い
オフセット・バイナリとバイポーラ・コードの式を混同しない(オフセット・バイナリは(800)16を中心に単調増加,バイポーラは(800)16で不連続にジャンプする折り返し構造)。16進変換の際のケタ数(12ビット=3桁の16進数)を間違えないこと。
まとめ
| (a)(ア) ユニポーラ | 5.000 V |
| (a)(イ) オフセットバイナリ範囲 | -4.096〜4.094 V |
| (a)(ウ) バイポーラ | -3.000 V |
| (b)(エ) ユニポーラ入力 | (271)16 |
| (b)(オ)(カ) オフセットバイナリ入力 | (A71)16 / (58F)16 |
| (b)(キ) バイポーラ入力 | (D8F)16 |
| 答え | (a)-(5),(b)-(1) |
▼あわせて解きたい関連問題
・コンピュータの5大装置とICメモリの正誤判定:【機械】平成27年度B問題18
・マイクロプロセッサのサイクルタイムと動作周波数:【機械】令和5年度上期B問題18

コメント