デジタル信号は、Hi(ハイ)とLo(ロー)の2値しか無い、っていうのは良く知られていますが、それって何ボルトにあたるのか知ってますか??
5Vの電源を使ったデジタル信号の場合、2種類の代表的な信号レベルがあります。
それが「CMOSレベル」と「TTLレベル」と言われる2種です。
どちらも「5Vの電源電圧を使う」と言う点は同じなのですが、信号がHiなのか?Loなのか?を判定する電圧が異なります。
*この、「Hi(Lo)を判定する電圧のことをスレッショルド(threshold)と言います。
それぞれのレベルのスレッショルドは以下のとおりです。
ここで、出力信号と入力信号でスレッショルドの電圧値が異なるのは、信号線のインピーダンス等による損失で、受信端に到着する電圧が変化しても、正常にHi、Loの識別が出来るようにするためのマージンです。
さて、ここで、仮に「出力信号はTTLレベル」、「入力信号はCMOSレベル」の組み合わせで信号を送ることを考えてみましょう。
出力側が「Hi」の信号を送りたいので、信号線に3.0Vの電圧をかけました。
ところが、入力側はCMOSレベルであるため、入力信号を「Hi」と認識するのは3.5V以上の時だけです。
この場合、出力側(TTLレベル)は「Hi」の信号を送っているのに、入力側(CMOSレベル)は、「Hi」と認識出来ない可能性があります。
(入力側(CMOSレベル)が「Lo」と認識するのは1.0V以下にも達していないため、「Hi」と認識するか「Lo」と認識するか分からない=どちらの可能性もある状態になります)
これでは正常な通信はできません。
なので、デジタル信号を伝送する場合は、出力側、入力側のスレッショルド電圧の規格を合わせてやる必要があります。
最近では、PCの中の回路などは、3.3V等の低電圧で動いていますが、外部機器等との通信には、まだ5V信号が良く使われています。このような回路を扱う場合は、送信側受信側で信号(電圧)規格が合っているかに配慮しましょう。