共通インターフェースの概要

目次

1. シリアルポート

1.1 シリアルポートの概要

1.2 シリアルとパラレル

2.UART

3. TTLレベル

4.USB

5.RS-232

6.RS-485

7.SPI

8.IIC

9.IIS

10. できる

11. 1 ワイヤー

1. シリアルポート

1.1 シリアルポートの概要

シリアルインターフェースはシリアルポートと略称され、シリアル通信インターフェースとも呼ばれ、一般的にはCOMポートとも呼ばれる総称です。シリアル通信を使用するインターフェースをシリアルポートといい、シリアルポートはハードウェアインターフェースです。

1.2 シリアルとパラレル

 シリアル: コンピュータバスなどのデータチャネル上で、一度に1つのメタデータを送信し、上記の単一プロセスの通信方式を連続的に実行します。

  パラレル: パラレル ポート上で一度に数ビットのデータを送信することで通信が実行されるため、パラレルの速度はシリアルよりも高速です。

パラレル通信インターフェースの概略図
シリアル通信インターフェースの概略図

2.UART

2.1 UARTの概要

UARTとはUniversal Asynchronous Receiver/Transmitterの略で、Universal Asynchronous Receiver Transmitterです。UART は TTL レベルまたは RS-232 に接続できます。TTL レベルに接続された UART は一般的なシリアル ポートで、+5V はロジック "1" に相当し、0V はロジック "0" に相当します。UART が RS232/ に接続されている場合は、 RS485 変換チップを使用すると、データは RS232/RS485 規則に従って背面バス上に送信されます。UART はシリアル、非同期、全二重通信プロトコルであり、その動作原理は、送信データの各バイナリ ビットをシリアルに送信することです。UART通信プロトコルでは、信号線の状態がハイレベルの場合は「1」を表し、信号線の状態がローレベルの場合は「0」を表します。

2.2 UART データフォーマット

キャラクタは10ビット(スタートビット1ビット、データビット7ビット、チェックビット1ビット、エンドビット1ビット)で、データ通信フォーマットは下図のようになります。

UARTデータフォーマット

予備ビット:

UART プロトコルでは、バスがアイドル状態にあるとき、信号ラインのステータス ビット「1」がハイ レベルになり、現在のライン上でデータ送信がないことを示すと規定されています。

スタートビット:

通信が開始されるたびに、送信側は送信文字の始まりを示す論理「0」信号 (ローレベル) を送信します。バスはアイドル状態ではハイレベルになるため、通信を開始する際には、最初にアイドル状態とは明らかに異なる信号、つまりローレベルを送信します。

データビット:

スタート ビットの後に送信したいデータが入ります。データ ビットは 5、6、7、8、9 ビットなどで、ASCII コード (7 ビット) などの文字 (通常は 7 ビット) を構成し、拡張されたものになります。 BCDコード(8ビット)。最下位ビットが最初に送信され、最上位ビットが最後に送信されます。

パリティビット:

このビット (パリティ ビット) をデータ ビットに追加した後、データ送信の正しさを検証するには、「1」ビットの数が偶数 (偶数パリティ) または奇数 (奇数パリティ) である必要があります。チェックデジットは実際には調整の回数です。

  • 奇数パリティ:データビット内の「1」の数が偶数の場合、パリティビットは「1」、「1」の数が奇数の場合、パリティビットは「0」になります。
  • 偶数パリティ(偶数パリティ):データ内の「1」の数が偶数であればパリティビットは「0」、奇数であればパリティビットは「1」になります。

ストップビット:

文字データの終わりを示します。1 ビット、1.5 ビット、または 2 ビットの高レベルにすることができます。データは伝送路上で計時され、各デバイスには独自のクロックがあるため、通信中の 2 つのデバイス間で非同期が発生する可能性があります。したがって、ストップ ビットは転送の終了を知らせるだけでなく、コンピュータにクロックを修正する機会を与えます。ストップ

ビット数が多いほどデータ伝送は安定しますが、データ伝送速度は遅くなります。

3. TTLレベル

3.1 TTLレベルの概要

TTLとはTransistor-Transistor Logicの略で、レベルロジック、トランジスタ-トランジスタロジックの一種です。

3.2 標準TTLレベルロジック

ロジック1: ハイレベル、VCC(3.3V/5V)

ロジック0:ローレベル、GND(0V)

TTL レベルのデバイスの場合、入力電圧が 2V より高い場合はロジック 1 として認識され、入力ローレベルが 1.2V より低い場合はロジック 0 として認識されます。出力ハイレベルV_{oh}>2.4V、出力ローレベルV_{ol}<0.8V、入力ハイレベルV_{ih}>2.0V、入力ローレベルV_{il}<1.2V

3.3 USBからTTLへ

51 個のシングルチップ マイコンで遊んだ友人は、USB を TTL レベルに変換する CH340G モジュールを使用して HEX ファイルをダウンロードしたことがあるはずです。一般に、シングルチップマイコンのレベルはTTLレベルで、モジュールの内部チップはCH340Tです(図に示すように)(USB to TTLモジュール)

 CH340Tチップを使用した、USBからTTLレベルまでの回路図。

 注: CH340G と CH340T はどちらも USB-to-TTL レベルのチップですが、パッケージとピンが異なります。

 

3.4 TTLとMCU間の接続

TTLレベルのデバイス間の通信にはTXD、RXD、GNDの3本の信号線のみが必要で、マイコンとの接続は非常に簡単で、3.3Vマイコンは3.3Vに、5Vマイコンは5Vに接続されます。別電源、3.3Vと5Vは接続されていません。

MCUとTTL小型ボード間の接続概略図

4.USB

USBとは、Universal Serial Bus(Universal Serial Bus)の略称で、コンピュータと外部機器との接続・通信を標準化するために使用される外部バス規格で、PC分野で応用されているインターフェース技術であり、高速な伝送が特徴です。ホットプラグをサポートしており、プラグを抜いて複数のデバイスを接続できます。一般的な USB インターフェイスは次のとおりです。

最も一般的な Type-A USB インターフェイスは次のように定義されます。

5.RS-232

5.1 RS-232 の概要とレベルロジック

RS232はTTLのレベル論理とは異なり、負論理です。負の 12V は高レベルの論理 1 を表し、正の 12V は低レベルの論理 0 を表し、電圧にも標準範囲があります。

高レベル: ロジック 1、-15V ~ -3V。

ローレベル: ロジック 0、+3V ~ +15V

5.2 DB9 インターフェース定義

最も一般的な RS232 シリアル ケーブルは DB9 ピンで、最も一般的に使用される信号は RXD、TXD、および GND です。RS232 シリアル ポート ピンの定義は次のとおりです。

メスピン

ピンの機能 + 名前

オスピン

ピンの機能 + 名前

1

データキャリア検出

DCD

1

データキャリア検出

DCD

2

データ送信

テキサス州

2

データ受信

RXD

3

データ受信

RXD

3

データ送信

テキサス州

4

データ機器の準備

DSR

4

データ端末の準備

DTR

5

土地

GND

5

土地

GND

6

データ端末の準備

DTR

6

データ機器の準備

DSR

7

クリア送信

CTS

7

送信リクエスト

RTS

8

送信リクエスト

RTS

8

クリア送信

CTS

9

呼び出し音表示

RI

9

呼び出し音表示

RI

5.3 USBからRS-232へ

USB to RS-232 では、まず USB を TTL に変換し、次に TTL を RS232 に変換できます。現在、多くの USB - RS232 ケーブルがあり、変換回路がケーブル内に組み込まれています。USB to RS-232 に一般的に使用される 2 つのチップは、FT232 と SP213 です。

5.4 TTLとRS-232間の相互変換

MCU インターフェイスは通常 TTL レベルですが、232 レベルの周辺機器を接続する場合は、RS-232 モジュールに TTL を追加する必要があり、変換方向は双方向です。

TTL と RS-232 間のレベル変換に最も一般的に使用されるチップは、MAX232 と SP232 です。

6.RS-485

6.1 RS-485の概要

RS-485 は RS232 と同様、シリアル通信規格であり、現在の規格名は TIA/EIA-485-A です。RS-485 は、RS-232 の通信距離と低速の欠点を補います。RS-485の速度は10Mbit/sに達し、理論上の通信距離は1200mに達します。

6.2 RS-485 レベルのロジック

RS-485 は差動伝送です。シングルチップマイコンを使用して RS-485 インターフェースデバイスを制御する場合は、CAN バスと同様のトランシーバーを使用する必要があります。例を下図に示します。

一般に、トランシーバは送信機と受信機で構成されます。トランシーバの典型的な機能ブロック図は次のとおりです。イネーブル信号の文字に横線が追加されている場合は、ロー レベルでアクティブであることを意味し、横線がないものはハイ レベルでアクティブであることを意味します。

RS-485トランシーバーの内部構造

このうち、A と B はバス、R はレシーバーの出力、RE はレシーバーのイネーブル信号、DE はトランスミッターのイネーブル信号、D はトランスミッターの入力です。

トランスミッタの場合、トランスミッタ イネーブル ピン DE が論理 High の場合、差動出力 A および B はデータ入力 D の論理状態に従います。D が論理 High になると、A が High になり、B が Low になります。この場合、V_{OD} = V_{A}-V_{B}として定義される差動出力電圧は正になります。D が Low の場合、出力状態は反転され、B は High になり、A は Low になり、V_{OD}負になります。DE が LOW の場合、両方の出力がハイ インピーダンスになります。この場合、D の論理状態は無関係です。

送信機真理値表

入力

有効

出力

出力

説明

D

B

H

H

H

L

積極的にバスを高速に駆動する

L

H

L

H

積極的にバスをローに駆動する

バツ

L

Z

Z

ドライブが無効になっています

バツ

開ける

Z

Z

ドライバーはデフォルトで無効になっています

開ける

H

H

L

デフォルトでバスをアクティブに駆動します

レシーバの場合、レシーバ イネーブル ピン RE がロジック ローの場合、レシーバはイネーブルになります。として定義される差動入力電圧が正でV_{ID}=V_{A}-V_{B}、正の入力しきい値 を超えるV_{IT+}と、レシーバ出力 R が High になります。V_{ID}負で負の入力閾値を下回る場合V_{IT-}、レシーバ出力 R は Low になります。VID が VIT+ と VIT- の間にある場合、出力は不定です。RE がロジック ハイまたはフローティングの場合、レシーバー出力はハイ インピーダンスとなり、VID の大きさと極性は独立します。

差動入力

有効

出力

説明

VID=VA-VB

RE

R

ホワイト+<WID

有効なバスハイを受信

白-<幅<白+

L

?

バス状態が不定

WID<白-

L

L

有効なバスローを受信

バツ

H

Z

受信機が無効になっています

バツ

開ける

Z

レシーバーはデフォルトで無効になっています

オープンサーキットバス

L

H

フェールセーフ高出力

短絡バス

L

H

フェールセーフ高出力

アイドル(終了)バス

L

H

フェールセーフ高出力

 5.3 TTL と RS-485 の変換

TTL を RS-485 に変換することは非常に一般的です。MAX485 など、非常に使いやすいトランシーバ チップも多数あります。一般に、MCU の GPIO は制御のために左側に接続されます。

5.4 RS-232 と RS-485 の変換

RS-232 と RS-485 を変換できます。1 つの方法は、RS-232 を TTL に変換し、次に TTL を RS-485 に変換することです。もちろん、RS-232 から RS-485 への変換をサポートするチップもあります。双方向変換。

7.SPI

7.1 SPIの概要

SPIとはSerial Peripheral Interface(Serial Peripheral Interface)の略で、高速全二重同期通信バスです。SPIの速度はIICよりも高く、一般に数十Mbpsに達します。異なるデバイスが動作します。ホストとしてのスレーブとホストとしてのスレーブの速度は通常異なります。

7.2 信号線

SPIは通常4線式(4線式)で全二重通信が可能です。

SCK : シリアルクロック

MOSI: マスターは信号を送受信します (マスター出力、スレーブ入力)。

MISO : マスター送受信信号 (マスター入力、スレーブ出力)

CS/CS : チップセレクト信号(Slave Select)

クロック信号を生成するデバイスをマスターと呼び、マスターとスレーブ間で送信されるデータはマスターが生成するクロックに同期します。SPI インターフェイスはマスターを 1 つだけ持つことができますが、スレーブは 1 つ以上持つことができます。マスターからのチップ選択信号は、スレーブを選択するために使用され、通常はローレベルのアクティブ信号です。ハイにプルされると、スレーブは SPI バスから切断されます。複数のスレーブを使用する場合、マスターは各スレーブを個別に提供する必要がありますチップセレクト信号。

7.3 SPIデータ送信

SPI 通信を開始するには、マスターがクロック信号を送信し、CS 信号を有効にしてスレーブを選択する必要があります。SPI は全二重インターフェイスであり、マスターとスレーブはそれぞれ MOSI ラインと MISO ラインを通じて同時にデータを送信できます。SPI通信中は、データの送受信が同時に行われます。SPI インターフェイスにより、ユーザーはデータのサンプリングやシフトのためにクロックの立ち上がりエッジまたは立ち下がりエッジを柔軟に選択できます。

7.4 クロック極性とクロック位相

SPI では、マスターはクロック極性とクロック位相を選択できます。アイドル状態の間、CPOL ビットはクロック信号の極性を設定します。アイドル状態とは、CS が High で送信開始時に Low に遷移する期間と、CS が Low で送信終了時に High に遷移する期間を指します。CPHA ビットはクロック位相を選択します。データは、CPHA ビットの状態に応じて、クロックの立ち上がりエッジまたは立ち下がりエッジを使用してサンプリングおよび/またはシフトされます。マスターはスレーブの要件に従ってクロック極性とクロック位相を選択する必要があります。CPOL ビットと CPHA ビットの選択に応じて、4 つの SPI モードが利用可能です。

SPIモード CPOL 洗う アイドル状態のクロック極性 データのサンプリングおよび/またはシフトのクロック位相
0 0 0 低レベル データは立ち上がりエッジでサンプリングされ、立ち下がりエッジでシフトアウトされます。
1 0 1 低レベル データは立ち下がりエッジでサンプリングされ、立ち上がりエッジでシフトアウトされます。
2 1 1 上級 データは立ち下がりエッジでサンプリングされ、立ち上がりエッジでシフトアウトされます。
3 1 0 上級 データは立ち上がりエッジでサンプリングされ、立ち下がりエッジでシフトアウトされます。

これら 4 つのモードでのデータ送信をそれぞれ以下に紹介します。転送の開始と終了は緑色の点線で示され、サンプリングエッジはオレンジ色の点線で示され、シフトエッジは青色の点線で示されます。これらの画像は参考用です。SPI 通信を正常に実行するには、製品のデータシートを参照して、デバイスのタイミング仕様が満たされていることを確認する必要があります。

SPI モード 0、CPOL=0、CPHA=0: CLK アイドル状態 = Low、データは立ち上がりエッジでサンプリングされ、立ち下がりエッジでシフトアウトされます。

 

SPI模式1,CPOL=0,CPHA=1:CLK空闲状态=低电平,数据在下降沿采样,并在上升沿移出

 

SPI模式2,CPOL=1,CPHA=1:CLK空闲状态=高电平,数据在下降沿采样,并在上升沿移出

 

SPI模式3,CPOL=1,CPHA=0:CLK空闲状态=高电平,数据在上升沿采样,并在下降沿移出

8. IIC

8.1 IIC概述

IIC是Inter Integrated Circuit的简称,是一种串行同步半双工总线。IIC总线是一个多向控制总线,多个器件可以同时挂载到一条总线上。每个连接在总线上的设备都是通过唯一的地址和其他器件通信的,主机和从机可以可以互换。

8.2 硬件连接

IIC有两条总线:SDA(串行数据线)和SCL(串行时钟线)。两条线都是双向线路,都通过一个电流源或者上拉电阻连接到正的电源电压,当总线空闲时,这两条线路都被拉高为高电平。如图,设备的数据线都连接到SDA,时钟线都连接到SCL。

8.3 通信协议

主机和从机的概念,主机是负责整个系统的任务协调与分配,从机一般是通过接收主机的指令从而完成某些特定任务。主机和从机之间通过总线连接,进行通信。

IIC是半双工的协议,也就是指在发送数据的同时不能接收数据,在接收数据的同时不能发送数据,发送和接收数据必须在时间上分开。

8.3.1 数据的有效性

SDA线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变。如图,IIC总线的位传输。

8.3.2 起始和停止位

在IIC总线中,总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。起始和结束信号总是由朱设备产生,即意味着从设备不可以主动通信,所有的通信都是从主设备发起的。主机可以发出询问的命令,然后等待从机设备通信。

起始和结束信号的产生条件:总线在空闲的状态时,SCL和SDA默认都是保持着高电平状态。

起始位:当SCL为高电平时,SDA电平状态发生由高到低的跳变,产生一个下降沿。

终止位:当SCL为高电平时,SDA由低到高的跳变,产生一个上升沿。

8.3.3 字节格式

IIC总线数据传输是以字节为单位,必须是8位。每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。首先传输的是数据的最高位(MSB)。如果从机要完成一些其他功能后才能接收或者发送下一个完整的数据字节,可以使时钟线SCL保持低电平迫使主机进入等待状态,当从机准备好接收下一个字节并释放时钟线SCL后,数据传输继续。如果从设备不能接收到主设备发送的数据,从设备将回传一个非应答位(非应答位:延时一段时间默认回传一个非应答信号)。也就是说从机应答主机,低电平0表示应答,高电平1表示非应答。

8.3.4 读过程

{ID_Address+REG_Address}+{ID_Address+R_REG_Data}

1. 产生start信号

2. 传送器件地址(写ID_Address),ACK。

3. 传送字地址(写REG_Address),ACK。

4. 再次产生产生start信号。

5. 再传送一次器件地址,ACK。

6. 读取一个字节的数据,读数据最后结束前无应答ACK信号。

7. 产生stop信号。

从时序图上可以看出,IIC读时序要写两次器件地址,首先传送器件地址到总线上找到器件,然后写入寄存器地址,也就是word address找到需要读取数据的地址,但并不是真正的写入数据所以叫作dummy write(假写),然后再传输一个器件地址后开始读数据。

8.3.5 写过程

ID_Address,REG_Address,W_REG_Data

1. 产生start位

2. 传送器件地址ID_Address,器件地址的最后一位为数据的传输方向位。R/W,低电平0表示主机往从机写数据(W),1表示主机从从机读数据(R)。ACK应答。

3. 传送写入器件寄存器地址,即数据要写入的位置。同样ACK。

4. 传送要写入的数据。ACK应答。

5. 产生stop信号

IIC协议在读写数据时,总要发送器件地址,这里要注意,不是主机给从机发送地址,而是主机给地址总线上发送地址,挂IIC总线上的所有从机都能收到地址。如果发过来的地址和自己的地址匹配上了,从机就会给主机一个应答,这样就建立了一个通信。IIC协议一次只能有一对设备或器件进行通信。

9. IIS

9.1 IIS概述

IIS是Inter-IC-Sounder的简写,飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。在飞利浦公司的IIS标准中,即规定了硬件接口规范,也规定了数字音频数据的格式。特点是效率高,适合传送音频。IIS是个相对来时简单的接口协议,没有地址和片选机制。(需要注意的是数字音频不能直接驱动扬声器,必须要通过DAC转换成模拟音频,才能发出声音。)

9.2 IIS硬件连接

(1)串行时钟(SCLK)

也叫位时钟(BCLK),每个脉冲对应数字音频的一位数据,以左右双通道音频为例,SCLK频率=2*采样频率*采样位数。

(2)帧时钟(LRCK)

也叫字时钟(WS),用来选择左右声道,LRCK频率=采样频率,LRCK=0,左声道,LRCK=1,右声道。

LRCK可以在串行时钟的上升沿或下降沿改变,而且左右声道不一定要对称,比数据位最高位MSB早一个时钟改变,这一个时钟周期可以存储前一帧后清空,为一下帧数据准备。

(3)数据信号(SD)

串行音频数据用二进制补码表示,最高位数据固定在LRCK变化后SCLK第二个时钟,发送端的数据有效位数和接收端的数据有效位数可以不同。

(4)串行时钟、帧时钟由主设备或外部时钟提供,从设备接收位时钟与帧时钟

(9.3)操作模式

根据SD数据相对于LRCK和SCLK的位置不同,IIS的操作模式分为三种:标准IIS模式(飞利浦规定模式)、左对齐模式(较少使用)和右对齐模式(也叫日本格式)。

(3.1)标准IIS模式

标准IIS模式是左对齐模式数据信号再延迟一个时钟位变化来的,左右通道的数据MSB都是在WS变化后第二个SCLK上升沿有效。时序如下所示:

(3.2)左对齐模式

左詰めモードのデータの MSB は SCLK に対して 1 クロック遅れません。左揃えフォーマットの左および右チャネル データの MSB は、WS エッジが変化した後の SCLK の最初の立ち上がりエッジで有効になります。タイミング図は次のとおりです。

 (3) 右寄せモード

日本語フォーマット、sony フォーマットとも呼ばれ、具体的な配置を次の図に示します。

受信デバイスは、送信するデータのワード長を事前に知っておく必要があります。

左右アライメント モードの WS クロックのハイ レベルは左チャネル、ロー レベルは右チャネルであることに注意してください。これは、標準の IIS とはまったく逆です。

SCK = サンプリング レート (48K、44.1K、16K など) x ワード長 (16 ビット、24 ビット、32 ビット) x 2 (左右のチャンネル)

MCLK/SCK = 384、256 など、どれがサポートされているかについてはマニュアルを参照する必要があります。

IIS インターフェイスは、主に 2 チャネルのデータを送信する際に使用されます。

10. できる

完璧になるために

11. 1 ワイヤー

11. 1 1-WIRE の概要

シングルバスとは、米国DALLAS社が導入した周辺シリアル拡張バス技術で、SPIやIICのシリアルデータ通信方式とは異なり、1本の信号線でクロックとデータの両方を伝送し、データ伝送は双方向です。

11.2 1-WIRE ブロック図

これは典型的な 1-WIRE ブロック図で、マイクロプロセッサと 1-WIRE デバイスの間にワイヤが 1 本だけあることがわかります。

MCU がロジック 1 を送信すると、バスはインバータを介してロジック 0 を提示し、ロジック 0 は 1-WIRE デバイスのインバータを介してロジック 1 を受信します。

MCU がロジック 0 を送信すると、バスはインバータを介してロジック 1 を送信し、ロジック 1 は 1-WIRE デバイスのインバータを介してロジック 0 を受信します。

同様に、1-WIRE デバイスがロジック 1 を送信すると、Tx の NMOS がオンになり、バスはロジック 0 を示し、MCU は MCU Rx のインバータを介してロジック 1 を受信します。

ロジック 0 が送信されると、NMOS はオフになり、バスはロジック 1 を示し、MCU はロジック 0 を受信します。

おすすめ

転載: blog.csdn.net/panpan_jiang1/article/details/125193133