mi_what3

  1. Home>
  2. エレクトロニクス豆知識>
  3. マイコンとは?>
  4. マイコンが扱う信号

マイコンが扱う信号

アナログ信号とデジタル信号とは

アナログ信号とデジタル信号について説明します。
アナログ信号とは連続的に変化する信号のことで、デジタル信号とは離散的(飛び飛び)な値を取る信号のことです。
アナログ信号とデジタル信号の波形例を下図に示します。

アナログ信号
アナログ信号の大きな特徴に『連続性を持つ』ことがあげられます。わかりやすく言い換えると、中間の値が無限に存在し、そして、グラフにすると一本の滑らかな線でつながる信号です。実は私たちの身の回りにはアナログ信号であふれています。
デジタル信号
デジタル信号の大きな特徴に連続性を持たないことがあげられます。専門的な言い方をすると離散的(飛び飛び)ともいいます。わかりやすく言い換えると、中間の値が存在せず、グラフにすると信号が連続的につながっていない信号です。そして重要な特徴として0と1しか存在していません。

アナログ信号とデジタル信号

デジタル信号が必要な理由

私たちの身の回りの信号はほとんどがアナログ信号です。アナログ信号とデジタル信号との間にはインターフェースとして特別な回路が必要です。なぜ、デジタル回路が用いられるかについて説明します。それは、デジタル信号を扱う回路(以下デジタル回路)は、アナログ信号を扱う回路(以下アナログ回路)に比べて、小型化や低消費電力化を実現できるからです。また、デジタル信号は劣化に強いというメリットもあります。
アナログ信号は前述のように中間の値を持つ信号です。アナログ信号を作る素子の微妙な変化(ばらつき)で信号がくずれる恐れがあります。素子の微妙な変化による影響を抑えるためには、素子のサイズをある程度大きくする必要があります。これは素子を小さくすることができないことを意味します。また、中間電圧を出し続けるためには常に電流を流し続ける必要があるうえ、消費電流を抑えようとすると回路が大きくなるといったトレードオフも顕在化します。
デジタル信号は、最大値か最小値の二値しか存在せず、素子のONかOFFで作り出せます。そのため素子に多少のばらつきがあったとしても大きな問題になりません。これは素子を小型化することができることを意味します。さらに、アナログ信号ではないため電流を流し続ける必要がなく、低消費電流化が可能になります。

アナログ回路とデジタル回路

信号の劣化についても説明します。アナログ信号は前述のように中間の値を持つ信号です。これは、1と0の間に0.3や0.75といった小数点以下の数字が存在することを意味しています。信号を保存する場合や、通信する場合を考えてください。たとえば保存する場合、0.75を保存したつもりが数年後に0.7になっていたら、もともとのデータは保存されたとは言えません。たとえば通信する場合、0.3を送ったつもりが0.4で届いたら、もともとのデータは送られたとは言えません。アナログ信号は劣化するという弱みがあります。
一方、デジタル信号は1か0しかありません。0.5付近にしきい値があり、0.5以上であれば1と判別され、0.5未満であれば0と判別されます。さきほどの例を振り返ってみます。1を保存したつもりが数年後に0.9になったとしても、しきい値0.5以上なので1と判別されます。0を送ったつもりが0.1で届いたとしても、しきい値0.5未満なので0と判別されます。このようにデジタル信号は劣化に強いという特徴があります。

この0と1しかないデジタル信号で情報を保存する方法として、0と1の組み合わせが挙げられます。たとえばASCIIという文字コードでアルファベットのaを0と1で表現してみると01100001となります。ASCIIだけでなく様々な文字コードが存在しています。文字コードだけでなく画像や音楽もすべて0と1の組み合わせで再現可能です。

アナログ信号とデジタル信号の再現性

マイコン内部の信号

マイコン内部は上記で述べたように再現性に優れるデジタル信号で処理をしています。しかし、私たちの身の回りの信号はほとんどがアナログ信号です。そのため、マイコンに入力する時は、アナログ⇒デジタル変換(A/D変換)を使って信号を変換し、デジタル信号にしてから演算など複雑な処理を行っていきます。その結果をマイコンからアナログ信号として出力する場合には、デジタル⇒アナログ変換(D/A変換)します。そのため、A/D変換やD/A変換はマイコンにとって重要な機能になります。

マイコン内部の信号

2進数と16進数

デジタル回路はすべてトランジスタで表現できます。トランジスタの出力状態はHかLとなり、H=”1”、L=”0”と表すと、回路の状態が2進数で表現できます。それによって数学的に表現できるようになるためデジタル回路は急速に発展を遂げました。このことから、デジタル信号を扱う上で2進数は非常に重要な数え方です。
私たちが普段から使う10進数の”0”から”7”までの数字を2進数で記述すると下記になります。

0=0b000
1=0b001
2=0b010
3=0b011
4=0b100
5=0b101
6=0b110
7=0b111

ここで”0b”のbはbinary(2進数)のbから来ており、2進数であることを宣言するための記号です。

2進数について

デジタル信号を扱う上でもう一つの重要な数え方に16進数があります。16進数は”0”~”F”で数字を数える方法です。では10進数の”0”から”15”までの数字を16進数で下記に記述します。

0=0x0
1=0x1
2=0x2
3=0x3
4=0x4
5=0x5
6=0x6
7=0x7
8=0x8
9=0x9
10=0xA
11=0xB
12=0xC
13=0xD
14=0xE
15=0xF

ここで”0x”のxはhexadecimal(16進数)から来ており、16進数であることを宣言するための記号です。

16進数について

2進数と16進数の変換

10進数で大きめの数字、たとえば255を2進数で記述すると、”0b11111111”となり、非常に長くなります。桁数も読み間違えやすくなります。ここで16進数を用いることで、”0xFF”となり、桁数を減らせます。間違いも減らすことができます。これが16進数を用いる理由です。

10進数ではなく16進数を用いる理由は、2進数から16進数への変換が簡単だからです。
たとえば、”0b0010110011111000”を16進数に変換する際、2進数を4bitずつ区切ってそれぞれを16進数に変換すれば簡単に変換可能です。上記の例では”0b 0010 1100 1111 1000”=”0x2AF8”となります。

2進数⇔16進数

無料ダウンロード ADコンバータの仕組みと応用

汎用マイコンデータシートダウンロード

micon_local

サイドナビ - エレクトロニクス豆知識

共通スタイル・スクリプト - エレクトロニクス豆知識