シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェース

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェース

在エンベデッド·イン系统中,板上通信インタフェース是指用于将各种集成电路与其他外围デバイス交互连接的通信通路或バス。
UART、I2C、RS485 等普遍在用,对它们的认识可能模棱两可,本記事把它们整理了一下。
UART通用异步收发器


UART口指的是一种物理接口形式(硬件)。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト

UART是异步,全二重シリアルポートバス。它比同步シリアルポート复杂很多。有2行目。,一根TXD用于送信,一根RXD用于受信。
UART的串行データ传输必要なし。使用时钟信号来同步传输,而是依赖于送信デバイス和受信デバイス之间预定义的設定。
对于送信デバイス和受信デバイス来说,两者的串行通信設定应该設定为完全相同。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト1

●スタート地点。:表示データ传输的开始,电平逻辑为“0” 。
●data bit:可能值有5、6、7、8、9,表示传输这几个bit ビット·データ。一般取值为8,因为一个ASCII 文字值为8 位。
●パリティ検査位:用于受信方对受信到的データ进行チェック,check“1” 的位数为偶数(even parity) 或奇数(odd parity),以此来チェックデータ传送的正确性,使用时必要なし。此位也可以。
●stop bit:表示一フレームデータ的结束。电平逻辑为“1”。
●Baud rate:シリアル通信时的速率,它用単位时间内传输的二进制代码的有效位(bit) 数来表示,其単位为每秒比特数bit/s(bps)。
もし用通用 IO 口模拟UARTバス,则需一个入力口,一个出力口。
I2Cバス

I2Cバス是一种同步、ハーフデュプレックス双向的两线式シリアルポートバス。它由两条バス组成:串行时钟线 SCL 和串行データ线 SDA。
SCL线——负责产生同步时钟脉冲。
SDA线——负责在デバイス间传输串行データ。
该バス可以将多个 I2C デバイス连接到该系统上。连接到 I2C バス上的デバイス既可以用作主デバイス,也可以用作从デバイス。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト2

主デバイス负责控制通信,経由对データ传输进行初期化,来送信データ并产生所需的同步时钟脉冲。从デバイス则是待機中来自主デバイス的命令,并レスポンス命令受信。
主デバイス和从デバイス都可以作为送信デバイス或受信デバイス。无论主デバイス是作为送信デバイスまだ受信デバイス,同步时钟信号都只能由主デバイス产生。
もし用通用IO口模拟I2Cバス,并実装双向传输,则需一个入力出力口(SDA),另外还需一个出力口(SCL)。
SPI串行外设接口

SPIバス是同步、全二重双向的4线式串行接口バス。它是由“单个主デバイス+多个从デバイス”构成的系统。
在系统中,只要任意时刻只有一个主デバイス是处于激活ステータス的,就可以存在多个SPI主デバイス。常运用于ADConverters、EEPROM、FLASH、实时时钟、数字信号処理器和数字信号解码器之间実装通信。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト3

为了実装通信,SPI共有4条信号线,分别是:
●主デバイス出、从デバイス入(Master Out Slave In,MOSI):由主デバイス向从デバイス传输データ的信号线,也称为从デバイス入力(Slave Input/Slave Data In,SI/SDI)。
●主デバイス入、从デバイス出(Master In Slave Out,MISO):由从デバイス向主デバイス传输データ的信号线,也称为从デバイス出力(Slave Output/Slave Data Out,SO/SDO)。
●串行时钟(Serial Clock,SCLK):传输时钟信号的信号线。
●从デバイス選択(Slave Select,SS):用于選択从デバイス的信号线,低电平有效。
SPI 的工作时序モード由CPOL(Clock Polarity,时钟极性)和CPHA(Clock Phase,时钟相位)之间的相位关系决定。
CPOL 表示时钟信号的初始电平的ステータス,CPOL 为0 表示时钟信号初始ステータス为低电平,为1 表示时钟信号的初始电平是高电平。
CPHA 表示在哪个时钟沿采样データ,CPHA 为 0 表示在首个时钟变化沿采样データ,而CPHA 为1 则表示在第二个时钟变化沿采样データ。
根据CPOL 和CPHA 的不同组合共有4 种工作时序モード:
●CPOL=0,CPHA=0
●CPOL=0,CPHA=1
●CPOL=1,CPHA=0
●CPOL=1,CPHA=1

UART、SPI、I2C比较

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト4

●I2C线更少,比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的サポート,而且使用上拉电阻,抗干渉能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
●SPI実装要简单一些,UART需要固定的ボーレート,就是说两ビット·データ的間隔要相等,而SPI则无所谓,因为它是有时钟的协议。
●I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比標準的SPI要少。
●UART一フレーム可以传5/6/7/8位,I2C必须是8位。I2C和SPI都从最高位开始传。
●SPI用片选信号選択スレーブ,I2C用アドレス選択スレーブ。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト5

RS232シリアル通信
传输线有两根,地线一根。电平是负逻辑:
-3V~-15V逻辑“1”,+3V~+15V逻辑“0”。
RS-232シリアル通信传输距离15米左右。可做到双向传输,全二重通讯,传输速率低20kbps 。
下图是DB9公头和母头的定义,一般用最多的是RXD、TXD、GND三个信号。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト6

TTL和RS-232互转
单片机接口一般是TTL电平,もし接232电平的外设,就需要加TTL转RS232的モジュール。如下图,可用芯片MAX232进行转换。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト7

RS422シリアル通信
RS-422有4根信号线:两根送信、两根受信和一根地线,是全二重通信。
它有一个主デバイス,其余为从デバイス,从デバイス之间不通信可能信,所以RS-422サポート点对多的双向通信。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト8

RS485シリアル通信
RS-485采用平衡送信和差分受信,因此具有抑制コモンモード干渉的能力。
采用两线半二重伝送,最大速率10Mb/s,电平逻辑是两线的电平差来决定的,提高抗干渉能力,传输距离长(几十米到上千米)。
+2V~+6V逻辑“1”,-2~-6V逻辑“0”。
TTL转成RS-485很常见,比如MAX485,参照电路如下

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト9

RE引脚:受信器出力使能(低电平有效)。
DE引脚:送信器出力使能(高电平有效)。可以直接経由MCU的IOポート控制。
TTL
エンベデッド·イン里面说的シリアルポート,一般是指UART口。4个pin(Vcc,GND,RX,TX),用TTL电平。
PC中的COM口即串行通信ポート。,简称シリアルポート。9个Pin,用RS232电平。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト10

serial port、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指电平標準(电信号)。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト11

单片机与PC通讯示意图如下:

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト12

CANバス

CAN是コントローラーは局域网络的简称,是一种能够実装分布式实时控制的串行通信网络。CANバス的功能复杂且智能。主要用于汽车通信。
CANバス网络主要挂在CAN_H和CAN_L,各个节点経由这两条线実装信号的串行差分传输,为了避免信号的反射和干渉,还需要在CAN_H和CAN_L之间接上120欧姆的終端抵抗。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト13

每一个デバイス既可做主デバイス也可做从デバイス。CANバス的通信距离可达10千米(速率低于5Kbps),速度可达1Mbps(通信距离小于40M)。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト14

CAN电平逻辑
CANバス采用"线与"的ルール进行バス仲裁,1&0为0,所以称0为显性,1为隐性。
从电位上看,因为规定高电位为0,低电位为1,同时发出信号时实际呈现为高电位,从现象上看就像0カバー了1,所以称0为显性,1为隐性。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト15

USB通信串行バス

USB接口最少有四根线,其中有两根是データ线,而すべての的USBデータ传输都是経由这2行目。完成。它的通信远比シリアルポート复杂的多。
两根データ线采用差分传输,即需要两根データ线配合才能传输一个bit,因此是ハーフデュプレックス通信,同一时间只能送信或者受信。
USB 规定,もし电压电平不变,代表逻辑1;もし电压电平变化,则代表逻辑0。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト16

USB转TTL
一般USB转シリアルポート都是用CH340G芯片。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト17

用シリアル通信比USB简单,因为シリアル通信没合意がある。。
SD卡
SD卡是一种存储卡,可用于手机作为内存卡使用。
エンベデッド·イン中,单片机与SD卡通信有2つのモデル:
●SPIバス通信モード
●SDバス通信モード

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト18

值得注意的是,SDバスモード中有4条データ线;SPIバスモード中仅有一条データ线(MOSI和MISO不能同时データの読み取り,也不能同时データの書き込み);
这样在エンベデッド·イン中,单片机与SD卡通信时采用SDバスモード比SPIバスモード速度快几倍。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト19

1-WIREバス
1-Wire由美国Dallas(达拉斯)公司推出,是一种异步ハーフデュプレックス串行传输。采用单根信号线,既传输时钟又传输データ,而且データ传输是双向的。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト20

单バス的データ传输速率一般为16.3Kbit/s,最大可达142 Kbit/s,通常情况下采用100Kbit/s以下的速率传输データ。
1-Wire线ポート为漏极开路或三态门的ポート,因此一般需要加上拉电阻Rp,通常选用5K~10KΩ
主要应用在:打印墨盒或医疗消耗品的识别;印刷电路板、配件及外设的识别和认证。
DMA直接存储器アクセス
DMA是STM32内的一个ハードウェアモジュール,它独立于CPU,在外围デバイス和内存之间进行データ传输,解放了CPU,可使CPU的效率大大提高。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト21

它可以高速アクセス外设、内存,传输不受CPU的控制,并且是双向通信。因此,使用DMA可以大大提高データ传输速度,这也是ARM架构的一个亮点——DMAバス控制。
DMA就相应于一条高速公路,专用、高速的特性。もし不使用DMA,也可以达到目的,只是达到目的的时间比较长。
EthernetEthernet
イーサネット(イーサネット)是目前应用最普遍的局域网技术。大家知道,イーサネット(イーサネット)接口可分为协议层和物理層は。
协议层是由一个叫MAC(Media Access Layer)コントローラーは的单一モジュール実装。
物理層は由两部分组成,即PHY(Physical Layer)和传输器。
目前很多主板的南桥芯片已包含了イーサネット(イーサネット)MAC控制功能,只是未提供物理層は接口。因此,需外接PHY芯片以提供イーサネット(イーサネット)的接入通道。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト22

网络变压器的作用是:
●耦合差動信号です,抗干渉能力更强
●变压器絶縁ネットワークケーブル端不同デバイス的不同电平,絶縁直流信号
イーサネット(イーサネット)接口参照电路,如下图所示。

シリアル通信与エンベデッド·イン系统:一文详解各种通信インタフェースイラスト23
Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.