\( \require{cancel} \)
earth
湘南理工学舎
[戻る]
2024/11/30

 豆知識

 マイコン回路と構成(2)


(technical term of CPU and Microcomputer, history)
 --目 次--
  • ♦マイコン・ブロック図
  • ♦周辺|I/O デバイス
  • ♦周辺|通信デバイス
  • ♦シリアル通信の基礎
  • ♦USBメモリ伝送
  • ♦通信関連規格
  • ♦周辺|A/Dコンバータ

  • ♦【閑話】
  • •インターネットとイーサネット

  • マイコン・ブロック図


     前回に続き, 今回はマイコンの CPU周辺デバイスについて学びましょう。
    まずは マイコン・ブロック図を記載しておきます。
    指数と対数
    fig1 マイコン・ブロック図

    周辺デバイス


     I/Oデバイス, 通信デバイス, A/Dコンバータについて説明します。

    ここで紹介する 「I/Oデバイス(PIO)」 と「通信デバイス(SIO)」はZ80ファミリーのデバイスです, 特別な配慮なしでZ80 CPUと接続できます。
    主要なCPU には周辺デバイスが用意され、また ワンチップマイコンではその周辺デバイスが搭載されていますから, 接続に気をつかうことはありません。
    I/O デバイス
    (PIO)
    指数と対数
    fig2 I/O ポート
    I/O (Input/Output) は 入力/出力 のこと, CPU の入力/出力より 負荷能力が高くなっています。
    LEDランプ, ミニチュアリレーなどはPIO で直接駆動可能です。
    PIO はポートが 2つ(PA, PB), それぞれ8点(8 bit), 合計16点 あります。
    ここではPAポートは入力, PBポートは出力としています。

    入力(PAポート)データを読む(入力)
    PAのスイッチ(SW)の状態を読む命令は "IN A,(PA)" : CPU はSW状態データを 読み, レジスタA入れる命令です。
    CPU はレジスタA の情報でPIO に接続しているSW の状態が把握できる
    ・SW がOFFの時,5Vになる⇒データは"1"
    ・SW がONの時, 0Vになる⇒データは"0"
    勘違いしやすいのが "SWがONの時⇒1" ですが, この回路では "SWがONの時⇒0" です。
    マイコンのソフト開発でも簡単な回路の知識が必要です。
    SWの状態データ "1111 1110" とすると "bit0 のみの SW がON", その他 "bit7----bit1のSWはOFF" の状態。

    出力(PBポート)データを書く(出力する)
    予備知識:
    デジタル回路ではトランジスタ(以下 Trと呼ぶ)の動きは簡単です, スイッチの ON/OFF と同じです。
    オープンコレクタとはTrの出力部のことで, スイッチと等価です。
    SWがONのすると電流が流れますね, 同じくTrがONすると電流が流れます。
    すなわち, TrのONスイッチの ON は同じ機能です。(上図参照)

    PB の ランプ,モータなど動作させる命令 "OUT (PB),A" : CPU のレジスタA のデータをI/O PBに書き込む命令
    以下のデータはレジスタAのものです。
    ・機器を動作させる時⇒データは"1"
    ・機器を停止させる時⇒データは"0"
    以下のデータはレジスタAのデータです。
    書き込みデータ"xxxxx 111"とすると接続している3つの機器が動作します。
    書き込みデータ"xxxxx 001"とすると"モータ停止","ブザー停止", "ランプ点灯"します。

    通信デバイス
    (SIO)
     下図は通信デバイス(SIO/serial input output) 周辺のブロック図です。
    Z80_SIO
    fig3 通信デバイス

    コンピュータで 通信とはシリアル通信のことです, "通信" を "伝送" とも言います…従い シリアル伝送 ということもあります。
    SIO は送受信部 2チャンネル あり, 下図の上部が 汎用的なチャンネル,下部は USBメモリ用のチャンネルになっています。
    SIO は「パラレルデータ\(\ \rightleftarrows\ \)シリアルデータ」 変換デバイスです, CPU は SIO を使うことで, CPUの通信負荷が分散され, CPUの高速化に繋がります。

    次に下図を簡単に説明します。
    調歩同期式
    fig4 送受信部とパラシリ変換
    以下 シリアルを「シリ」, パラレルを「パラ」と呼びます

    右の送信側は
    ①信号線8本のパラデータがメモリ(8bit)に入ります。
    ②そのパラデータをシリデータ変換(※1)して送信1本でシリアル送信します。
    左の受信側は
    ③シリデータ線を受信し, 8bitのパラデータに変換(※2)する。
    ④パラデータをメモリに入れ, データをSIOのデータピン(8個)への出力準備をする
    ⑤CPUの要求に対してデータをSIO はデータピンに出力する。
    注:送信側はシリデータには後述する制御ビットの「スタートビット, パリティビット, ストップビット」が付加しす。
    受信側はシリデータから制御ビットを取り除きます。
    また図にはないが 送信側と受信側に次のシフトレジスタがある:
    ※1:パラシリ変換はPISOシフトレジスタ。(Parallel-In, Serial-Out)
    ※2:シリパラ変換はSIPOシフトレジスタ。(Serial-In, Parallel-Out)

    シリアル通信の基礎

     マイコンボードの殆どはパラデータ, 例えばデータバスは専用線が8本あり, 8bitのデータはパラデータなので瞬時に送受信できます。
    シリデータは遠方との通信のとき, コスト減,省スペースのため, 送信1本・受信1本の2本線にしてデータを時分割(下図)にして送受信を行います。
    シリアル通信には電気的な仕様の他に これから述べる プロトコルと呼ばれる 通信するための取り決めが必要です。
    シリアル通信には "同期式(USART)" と "非同期式(調歩同期式)(UART)" の2種類あります。 USARTはクロック同期式, UART は非同期式でスタートビットとストップビットでタイミングをとる方式で 多くに使われています。
    またUARTには "送受信の専用の2本の信号線による"全二重通信" と 糸電話のように, 1本の信号線で通信の方向を切り替えて使う" 半二重通信 があります。
    半二重通信と全二重通信のイメージ:
    上図は「左が聞く←右が発声」の一方向の糸電話のイメージです。
    持ち替えて 方向を切り替えのを半二重通信といいます。
    切り替えを不要のため 2つの糸電話を 用意して使うのを全二重通信と言います。

    全二重通信は上図の"パラシリ変換と送受信"が2回線(互いに方向が逆)で構成される。
    ・UART:Universal Asynchronous Receiver Transmitter
    ・USART:Universal Synchronous & Asynchronous Receiver Transmitter

    シリデータには送りたいデータに制御ビットの「スタートビット, パリティビット, ストップビット」が付加されます。
    下図はデータ長8bit, スタートビット1bit, パリティビット1bit, ストップビット1bit のシリアルデータです。
    調歩同期式
    fig5 非同期式シリアルデータ
    シリアル通信では送信側と受信側の双方でプロトコル(通信の手順・その他ルール)を取り決めておく必要があります。
    ここから通信方式をUART(調歩同期式)ⓐ, 全二重通信ⓑ と決めて次を説明していきます。
    通信方式は決めたのでⓐⓑ, 次はその通信方式の各要素を決めていきます。
    決めることは通信速度, パリティビット, ストップビット, データ長です。
    データ長は8bit ,ストップビット1bit と決めて以下を説明します。
    1)通信速度:後述
    2)スタートビット:"0" 1ビット固定
    3)パリティビット:後述
    4)ストップビット:"1"「 1・1.5・2 」 ビット から選択
    5)データ長:5~8ビットの範囲で決める。(一般に7ビットか8ビット)

    パリティビット:
    伝送の正常を検査するため 付加されるビットのことです。 偶数パリティと奇数パリティ, またパリティビットなしも選択できます。
    奇数パリティは送信データ中の1の数が奇数となるように最後に0 か 1 を付加、また 偶数パリティはデータ中の1の数が偶数となるように最後に0 か 1 を付加するビットのことです。 受信側でパリティビットをチェックして異常であれば再送要求します。

    通信速度(ボーレート)
    シリアル通信の速度の単位:[bps](bit per second), "1秒毎に転送するビット数" です。
    一般的なボーレートは 9600bps, 19200bps, 38400bps, 57600bps, 115200bps です。
    通信距離が長くなるとき, ボーレートを低くします。(9600bpsで距離は15m程度です)
    注:これらの値はRS232C規格(後述)のインターフェースを備えた場合です。

    データ長
    一般にデータは 7bit のASCII(アスキー)コードが使われ… 数字,アルファベット,制御文字が扱えます。
    ASCIIコードにカタカナを付加したのが 8bit の "JIS8単位コード" です。
    データ長8bitにしても ASCIIコードが送れます。
    ASCIIコード=アスキーコード  (American Standard Code for Information Interchange)
    データと表記文字は以下を参照ください。
    ASCIIコード【参照先】 JIS8単位コード【参照先】

    USBメモリの高速伝送
     USBメモリの特徴は「大容量のデータ保存, 高速なデータ通信, 小型の本体とUSBコネクタ, パソコンと直結」です。
    ここでは高速なデータ通信に注目して説明していきます。
    指数と対数
    fig7 平衡型(差動型)伝送
    伝送速度は最大で, 規格USB2.0⇒"480Mbps", 規格USB3.0⇒"5000Mbps" の高速です。
    高速通信ができるのは以下の平衡伝送(差動方式)によるものです。
    1つの信号で "D+" と "D-" の2本の信号線を使い, 受信側はその電位差で信号を識別します。
    図の様に D+ とその反対の D- , 例えば "①:D+=5V なら, D-=0V" , "②D+=0V なら, D-=5V" です。
    受信側では ①=5-0=5=H, ②=0-5=-5=L
    同じ電路では同じレベルのノイズがのるから, 差動方式ではノイズはキャンセル(削除)できます。
    上図のようにノイズが乗ったときの電位差の V'は 正常な時の電位差の V と同じです。
    平衡伝送はRS422規格の技術であり, ノイズに強く, 高速通信に向いています。
    なお, USB3.0は 全二重方式, USB2.0 は 半2重方式 です。

    通信関連の規格

     ここでは常用される3つの規格の電気的な特徴ことについて紹介します。
    これらには専用のインターフェースIC が各社で作られています。

    RS232C:非平衡型伝送, 1:1通信
    規格では 最大出力電圧:±25V ,最小出力電圧:±5V~±15V
    わかり易くいうと⇒論理"0":+5~+25V 論理 "1":-5~-25V
    上記の如く電圧を高くしてノイズ対策したが抜本的な対策に至らなかった。
    逆に 電圧の立ち上がり時間により "通信速度が上げにくい" また "伝送距離の短い" ことが欠点です。
    規格の電圧に対し, 一般には±12~±6V であり, 最近では ±4V もある。
    RS232C に "D-Subコネクタ"が使われ, 通信制御信号のピン配列まで決められている。
    初期のパソコンには RS232C を標準装備していました。

    RS422 平衡型伝送, 1:1通信
    先に説明したUSB で採用している平衡型伝送です
    RS232Cの欠点を改良,ツイストペアの信号線による平衡型伝送でノイズに強い。
    平衡型伝送については上記を 【参照】して下さい。

    RS485 :マルチドロップ通信(1:N通信,N:N通信)
    RS422をバス方式のマルチドロップ(1:32)にした通信。
    マスタ1台に対してスレーブ32台接続して, 信号の衝突を防ぐため,スレーブはマスターの要求に応える方式。
    プロトコル次第ではN:N通信が可能です。
    その他の規格
    I²C(Inter-Integrated Circuit)
    マイコン(マスター)と複数の周辺デバイス(スレーブ)間のシリアル通信です。(※)
    信号線は2本
    SPI(Serial Peripheral Interface)(シリアル周辺機器インタフェース)
    用途は上記の(※)と同じ。
    信号線は3本か4本,I²Cよりも高速であるが,複雑である。
    CAN(Controller Area Network)
    車載用,センサーと共に用いられることが多い
    LIN(Local Interconnect Network)
    車載用,低速,アクセサリ(窓、ミラーなど)と共に用いられる
    FlexRay ("FlexRay Consortium"の団体が開発した技術)
    車載用,CANより高速で信頼性のある技術として注目されている、次世代車載ネットワーク。

    A/Dコンバータ

    A/Dコンバータは生活環境での温度, 湿度, 圧力, 水量などのアナログ量をコンピュータが識別できるデジタル量に変換するものです。
    ここでは分解能について説明して終わります。
    分割数はビットパターン数です, その逆数が分解能に相当します:
    以下はbit数とビットパターン数,逆数=分解能です:
    ・8bit=256 ・10bit=1024 ・12bit=4096
    ・8bit:\(\frac{1}{256}\x 100\)=0.390%(FS)
    ・10bit:\(\frac{1}{1024}\x 100\)=0.098%(FS)
    ・12bit:\(\frac{1}{4096}\x 100\)=0.024%(FS)
    (FS:Full Scale)"全ビットを使う"の意味あい
    温度測定範囲を-20℃~100℃(120deg)を例として
    分解能(最小測定温度):
    ・8bit:\(\s{\frac{1}{256}\x 120}\)=0.47deg
    ・10bit:\(\s{\frac{1}{1024}\x 120}\)=0.12deg
    ・12bit:\(\s{\frac{1}{4096}\x 120}\)=0.03deg
    これより一般に 10bit, 12bit で十分でしょう。
    …以上

    coffe

    [コーヒーブレイク/閑話]…お疲れさまでした

    興味のある方へ
    インターネットとイーサネット

    パソコン(PC)、ルータなどでLAN通信にはイーサネット(Ethernet)の規格が使われています。
    Ethernetは米ゼロックス社が1985年に特許登録,規格はIEEE802.3です。
    現 PC の多くは LANコネクタRJ45 が装備され, PC同士の通信の環境があります。
    イーサネットは、有線接続する際に用いられるLAN(ローカル エリア ネットワーク)の代表的な通信規格で, インターネットに接続するためにも使われます。
    PC同士の有線のネットワーク, インターネットとのネットワークにもイーサネットのボードが使われます。
    PC の多くはネットワークボードを内臓しています, これを LANボードまたはイーサネットボードとも呼んでいます。