串口Communication与嵌入式system:一文详解各种Communication Interface

freeFree Technical Resource

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

串口Communication与嵌入式system:一文详解各种Communication Interface缩略图
🌐 This page is not yet available in English. Showing the Chinese version. Back to Chinese page.

在嵌入式system中,板上Communication Interface是指用于将各种集成电路与其他外围设备交互connect的Communication通路或总线。
UART、I2C、RS485 等普遍在用,对它们的认识可能模棱两可,本文把它们整理了一下。
UART通用异步收发器


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

串口Communication与嵌入式system:一文详解各种Communication Interface插图

UART是异步,全双工串口总线。它比同步串口复杂很多。有两根线,一根TXD用于send,一根RXD用于receive。
UART的串行data传输不需要使用时钟信号来同步传输,而是依赖于send设备和receive设备之间预定义的配置。
对于send设备和receive设备来说,两者的串行Communication配置应该设置为完全相同。

串口Communication与嵌入式system:一文详解各种Communication Interface插图1

●start位:表示data传输的开始,电平逻辑为“0” 。
●data bit:可能值有5、6、7、8、9,表示传输这几个bit 位data。一般取值为8,因为一个ASCII 字符值为8 位。
●奇偶check digit:用于receive方对receive到的data进行校验,校验“1” 的位数为偶数(even parity) 或奇数(odd parity),以此来校验data传送的正确性,使用时不需要此位也可以。
●stop bit:表示一帧data的End。电平逻辑为“1”。
●Baud rate:串口Communication时的速率,它用单位time内传输的binary代码的effective位(bit) 数来表示,其单位为每秒比特数bit/s(bps)。
如果用通用 IO 口模拟UART总线,则需一个输入口,一个输出口。
I2C总线

I2C总线是一种同步、半双工双向的两线式串口总线。它由两条总线组成:串行时钟线 SCL 和串行data线 SDA。
SCL线——负责产生同步时钟脉冲。
SDA线——负责在设备间传输串行data。
该总线可以将多个 I2C 设备connect到该system上。connect到 I2C 总线上equipment既可以用作主设备,也可以用作从设备。

串口Communication与嵌入式system:一文详解各种Communication Interface插图2

主设备负责控制Communication,通过对data传输进行初始化,来senddata并产生所需的同步时钟脉冲。从设备则是等待来自主设备的命令,并Response命令receive。
主设备和从设备都可以作为send设备或receive设备。无论主设备是作为send设备还是receive设备,同步时钟信号都只能由主设备产生。
如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。
SPI串行外设Interface

SPI总线是同步、全双工双向的4线式串行Interface总线。它是由“单个主设备+多个从设备”构成的system。
在system中,只要任意时刻只有一个主设备是处于激活状态的,就可以existence多个SPI主设备。常运用于ADConverters、EEPROM、FLASH、实时时钟、数字信号处理器和数字信号解码器之间实现Communication。

串口Communication与嵌入式system:一文详解各种Communication Interface插图3

为了实现Communication,SPI共有4条信号线,分别是:
●主设备出、从设备入(Master Out Slave In,MOSI):由主设备向从设备传输data的信号线,也称为从设备输入(Slave Input/Slave Data In,SI/SDI)。
●主设备入、从设备出(Master In Slave Out,MISO):由从设备向主设备传输data的信号线,也称为从设备输出(Slave Output/Slave Data Out,SO/SDO)。
●串行时钟(Serial Clock,SCLK):传输时钟信号的信号线。
●从设备选择(Slave Select,SS):用于选择从设备的信号线,低电平effective。
SPI 的工作时序模式由CPOL(Clock Polarity,时钟极性)和CPHA(Clock Phase,时钟相位)之间的相位关系决定。
CPOL 表示时钟信号的初始电平的状态,CPOL 为0 表示时钟信号初始状态为低电平,为1 表示时钟信号的初始电平是高电平。
CPHA 表示在哪个时钟沿采样data,CPHA 为 0 表示在首个时钟变化沿采样data,而CPHA 为1 则表示在第二个时钟变化沿采样data。
根据CPOL 和CPHA 的不同组合共有4 种工作时序模式:
●CPOL=0,CPHA=0
●CPOL=0,CPHA=1
●CPOL=1,CPHA=0
●CPOL=1,CPHA=1

UART、SPI、I2C比较

串口Communication与嵌入式system:一文详解各种Communication Interface插图4

●I2C线更少,比UART、SPI更为强大,但是Technology上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,抗干扰能力较弱,一般用于同一板卡上芯片之间的Communication,较少用于远距离Communication。
●SPI实现要简单一些,UART需要固定的Baud rate,就是说两位data的间隔要相等,而SPI则无所谓,因为它是有时钟的Protocol。
●I2C的速度比SPI慢一点,Protocol比SPI复杂一点,但是连线也比标准的SPI要少。
●UART一帧可以传5/6/7/8位,I2C必须是8位。I2C和SPI都从最高位开始传。
●SPI用片选信号选择从机,I2C用address选择从机。

串口Communication与嵌入式system:一文详解各种Communication Interface插图5

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

串口Communication与嵌入式system:一文详解各种Communication Interface插图6

TTL和RS-232互转
单片机Interface一般是TTL电平,如果接232电平的外设,就需要加TTL转RS232的模块。如下图,可用芯片MAX232进行转换。

串口Communication与嵌入式system:一文详解各种Communication Interface插图7

RS422串口Communication
RS-422有4根信号线:两根send、两根receive和一根地线,是全双工Communication。
它有一个主设备,其余为从设备,从设备之间不能Communication,所以RS-422支持点对多的双向Communication。

串口Communication与嵌入式system:一文详解各种Communication Interface插图8

RS485串口Communication
RS-485采用平衡send和差分receive,因此具有抑制共模干扰的能力。
采用两线半双工传输,最大速率10Mb/s,电平逻辑是两线的电平差来决定的,提高抗干扰能力,传输距离长(几十米到上千米)。
+2V~+6V逻辑“1”,-2~-6V逻辑“0”。
TTL转成RS-485很常见,比如MAX485,参考电路如下

串口Communication与嵌入式system:一文详解各种Communication Interface插图9

RE引脚:receive器输出使能(低电平effective)。
DE引脚:send器输出使能(高电平effective)。可以直接通过MCU的IO端口控制。
TTL
嵌入式里面说的串口,一般是指UART口。4个pin(Vcc,GND,RX,TX),用TTL电平。
PC中的COM口即串行通讯端口,简称串口。9个Pin,用RS232电平。

串口Communication与嵌入式system:一文详解各种Communication Interface插图10

串口、COM口是指的物理Interface形式(硬件)。而TTL、RS-232、RS-485是指电平标准(电信号)。

串口Communication与嵌入式system:一文详解各种Communication Interface插图11

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

串口Communication与嵌入式system:一文详解各种Communication Interface插图12

CAN总线

CAN是控制器局域网络的简称,是一种能够实现Distributed实时控制的串行Communication网络。CAN总线的Function复杂且智能。主要用于汽车Communication。
CAN总线网络主要挂在CAN_H和CAN_L,各个节点通过这两条线实现信号的串行差分传输,为了避免信号的反射和干扰,还需要在CAN_H和CAN_L之间接上120欧姆的终端电阻。

串口Communication与嵌入式system:一文详解各种Communication Interface插图13

每一A device既可做主设备也可做从设备。CAN总线的Communication距离可达10千米(速率低于5Kbps),速度可达1Mbps(Communication距离小于40M)。

串口Communication与嵌入式system:一文详解各种Communication Interface插图14

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

串口Communication与嵌入式system:一文详解各种Communication Interface插图15

USBCommunication串行总线

USBInterface最少有四根线,其中有两根是data线,而所有的USBdata传输都是通过这两根线Complete。它的Communication远比串口复杂的多。
两根data线采用差分传输,即需要两根data线配合才能传输一个bit,因此是半双工Communication,同一time只能send或者receive。
USB 规定,如果电压电平不变,代表逻辑1;如果电压电平变化,则代表逻辑0。

串口Communication与嵌入式system:一文详解各种Communication Interface插图16

USB转TTL
一般USB转串口都是用CH340G芯片。

串口Communication与嵌入式system:一文详解各种Communication Interface插图17

用串口Communication比USB简单,因为串口Communication没有Protocol。
SD卡
SD卡是一种存储卡,可用于手机作为内存卡使用。
嵌入式中,单片机与SD卡Communication有两种模式:
●SPI总线Communication模式
●SD总线Communication模式

串口Communication与嵌入式system:一文详解各种Communication Interface插图18

值得注意的是,SD总线模式中有4条data线;SPI总线模式中仅有一条data线(MOSI和MISO不能同时读data,也不能同时写data);
这样在嵌入式中,单片机与SD卡Communication时采用SD总线模式比SPI总线模式速度快几倍。

串口Communication与嵌入式system:一文详解各种Communication Interface插图19

1-WIRE总线
1-Wire由美国Dallas(达拉斯)公司推出,是一种异步半双工串行传输。采用单根信号线,既传输时钟又传输data,而且data传输是双向的。

串口Communication与嵌入式system:一文详解各种Communication Interface插图20

单总线的data传输速率一般为16.3Kbit/s,最大可达142 Kbit/s,通常情况下采用100Kbit/s以下的速率传输data。
1-Wire线端口为漏极开路或三态门的端口,因此一般需要加上拉电阻Rp,通常选用5K~10KΩ
主要应用在:打印墨盒或医疗消耗品的识别;印刷电路板、配件及外设的识别和认证。
DMA直接存储器访问
DMA是STM32内的一个硬件模块,它独立于CPU,在外围设备和内存之间进行data传输,解放了CPU,可使CPU的效率大大提高。

串口Communication与嵌入式system:一文详解各种Communication Interface插图21

它可以高速访问外设、内存,传输不受CPU的控制,并且是双向Communication。因此,使用DMA可以大大提高data传输速度,这也是ARM架构的一个亮点——DMA总线控制。
DMA就相应于一条高速公路,专用、高速的特性。如果不使用DMA,也可以达到目的,只是达到目的的time比较长。
Ethernet以太网
以太网是目前应用最普遍的局域网Technology。大家知道,以太网Interface可分为Protocol层和物理层。
Protocol层是由一个叫MAC(Media Access Layer)控制器的单一模块实现。
物理层由两部分组成,即PHY(Physical Layer)和传输器。
目前很多主板的南桥芯片已包含了以太网MAC控制Function,只是未提供物理层Interface。因此,需外接PHY芯片以提供以太网的接入通道。

串口Communication与嵌入式system:一文详解各种Communication Interface插图22

网络变压器的作用是:
●耦合差分信号,抗干扰能力更强
●变压器隔离网线端不同设备的不同电平,隔离直流信号
以太网Interface参考电路,如下图所示。

串口Communication与嵌入式system:一文详解各种Communication Interface插图23
Technology术语(共 4 个)—— 点击展开
RS485工业常用的差分串行Communication标准,支持多点Communication
RS232点对点串行Communication标准,常用于短距离设备Communication
Baud rate串行Communication每秒传输符号数,Modbus RTU常用9600/19200
串口计算机与外部设备进行串行Communication的物理Interface
来源/Tools信息 —— 点击展开
来源 Modbus Chinese Network(modbus.cn) —— China leadingModbuscommunication protocol technical community Category ModbusRelated文章 字数 3879 字 · 阅读约 10 分钟 更新 2024-05-07 永久链接 https://www.modbus.cn/25121.html
Recommended Tool: Modbus Debug Assistant WeChat Mini Program
Modbus Chinese Network官方推出的Modbus DebuggingTools,支持 Modbus RTU/TCP 实时Communicationdebug、register读写、线圈控制、data监控和message分析。 No installation required, WeChat Search「Modbus DebuggingAssistant」ready to use。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
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 *.