👆面包板社区DIY活动进行中!
动图来源:www.parlezvoustech.com
1、常见的硬件通信协议
?
串行通信协议
-
UART (Universal Asynchronous Receiver Transmitter)
:
SPI (Serial Peripheral Interface)
:
I2C (Inter-Integrated Circuit):
RS-232:
RS-485:
并行通信协议
-
PCI (Peripheral Component Interconnect ):
ATA/IDE (Advanced Technology Attachment/Integrated Drive Electronics):
SATA (Serial ATA):
无线通信协议
-
Bluetooth:
Wi-Fi (Wireless Fidelity):
Zigbee:
NFC (Near Field Communication):
工业通信协议
-
Modbus:
CAN (Controller Area Network):
PROFINET:
其他常见协议
-
USB (Universal Serial Bus):
HDMI (High-Definition Multimedia Interface):
Ethernet:
2、同步通信和异步通信
?
同步和异步通信是两种不同的数据传输方式,主要
区别在于对时钟信号的使用
。
同步通信
特点
:
优点
:
-
高效传输
:由于时钟同步,数据传输速率较高。
-
可靠性强
:时钟信号使数据的接收和发送更加精确。
缺点
:
应用场景
:
异步通信
特点
:
优点
:
-
简单性
:无需时钟线,减小了硬件复杂度。
-
灵活性
:适合低速、长距离通信。
缺点
:
应用场景
:
3、UART串口通信
?
UART(Universal Asynchronous Receiver/Transmitter,
通用异步收发传输器
)是一种用于串行通信的硬件设备。UART用于将数据串行地传输和接收,广泛应用于计算机与外围设备之间的数据通信。
1. 基础概念:
-
异步通信
: 没有时钟信号,发送方和接收方必须约定好波特率(传输速率)。
-
波特率
: 每秒传输的位数,一般有9600、115200等常见波特率。
-
数据帧结构
: 包括开始位、数据位、奇偶校验位(可选)和停止位。
2. 数据帧结构:
协议:数据包由
起始位、数据帧、奇偶校验位和停止位
组成。
A.
起始位
:先发出一个逻辑"0"的信号,表示传输字符的开始
B.
数据位
:紧接着起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符,从最低位开始传送。
C.
奇偶校验位:
数据位加上这一位后,使得"1"的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。
D.
停止位:
它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
E.
空闲位:
处于逻辑"1"状态,表示当前线路上没有资料传送。
F.
波特率:
衡量数据传送速率的指标。表示每秒钟传送的比特位。
3. 通信方式:
4. 实现方式:
5. 应用:
-
嵌入式系统
: 如单片机与传感器、模块之间的通信。
-
计算机外设
: 如与鼠标、键盘、调制解调器等的连接。
-
调试和编程
: 通过串口调试嵌入式设备或下载程序。
4、IIC通信
?
I²C(Inter-Integrated Circuit)是一种常用的串行通信协议,设计用于短距离互连低速设备。由
飞利浦公司
(现NXP)在20世纪80年代开发,I²C现在广泛应用于嵌入式系统中,用于连接微控制器、传感器、显示器和其他外围设备。
I²C 基本概念
I²C是一种多主从架构的双线串行总线系统,由
主设备和从设备
组成。通信通过两条线进行:
数据传输
I²C使用7位或10位地址进行设备寻址,传输数据以字节为单位,具体传输步骤如下:
-
起始条件(Start condition)
:
主设备拉低SDA线,然后拉低SCL线,表示通信的开始
。
-
地址传输
:主设备发送从设备的地址,并指示读/写操作。
-
数据传输
:主从设备之间的数据传输。每个字节后面都有一个确认位(ACK/NACK)。
-
停止条件(Stop condition)
:
主设备拉高SCL线,然后拉高SDA线,表示通信的结束
。
I²C设备地址
每个I²C从设备都有唯一的7位或10位地址。7位地址通常使用更广泛,实际传输时,地址会左移一位,最右边一位表示读/写操作(0表示写,1表示读)。
I²C通信协议
-
开始条件(Start Condition)
: 主设备将SDA从高电平拉到低电平,同时SCL保持高电平。
-
停止条件(Stop Condition)
: SCL为高电平时,SDA从低电平拉到高电平。
-
字节数据传输
: 每传输一个字节数据后,接收方需发送一个确认位(ACK)。
-
读/写操作
: 主设备发送设备地址的同时紧接着一个读/写位,0表示写,1表示读。
I²C优点
I²C缺点
5、SPI通信
?
SPI(Serial Peripheral Interface,串行外围设备接口)是一种用于
短距离通信
的同步串行通信协议。它由Motorola公司在20世纪80年代开发,广泛应用于嵌入式系统中,用于微控制器与传感器、存储设备、显示器以及其他外设的通信。
SPI 基本概念
-
MOSI(Master Out Slave In)
: 主设备输出,从设备输入。
-
MISO(Master In Slave Out)
: 主设备输入,从设备输出。
-
SCLK(Serial Clock)
: 时钟线,由主设备生成时钟信号。
-
SS/CS(Slave Select/Chip Select)
: 从设备选择线,由主设备控制,以选择具体的从设备。
数据传输
SPI是一种
全双工
通信协议,数据在时钟的控制下从主设备到从设备(通过MOSI),同时从从设备到主设备(通过MISO)。具体传输步骤如下:
-
-
-
-
-
SPI时钟相位和极性
SPI的时钟相位(CPHA)和时钟极性(CPOL)定义了数据采样的时机和时钟信号的初始状态。根据这两个参数,可以有四种模式:
CPOL—— 0 : SCLK空闲时低电平;1 : SCLK空闲时高电平
CPHA—— 0 : 奇数边沿采集数据; 1: 偶数边沿采集数据
-
CPOL = 0, CPHA = 0
: 时钟信号空闲时为低电平,在第一个上升沿采样数据。
-
CPOL = 0, CPHA = 1
: 时钟信号空闲时为低电平,在第一个下降沿采样数据。
-
CPOL = 1, CPHA = 0
: 时钟信号空闲时为高电平,在第一个下降沿采样数据。
-
CPOL = 1, CPHA = 1
: 时钟信号空闲时为高电平,在第一个上升沿采样数据。
SPI 优点
-
高速传输
:比I²C通信速率更高,适用于高数据速率的传输。
-
-
SPI 缺点
-
-
缺乏标准化
:不同设备的SPI实现可能有所差异,需要仔细阅读设备手册。
6、RS-232外部通信
?
RS-232(Recommended Standard 232)是一种
串行通信
标准,最初由EIA(Electronic Industries Association)在20世纪60年代制定。它广泛用于计算机与外围设备(如调制解调器、打印机和工业设备)之间的通信。尽管RS-232在现代消费电子产品中使用较少,但在工业自动化和某些专业设备中仍然非常重要。
RS-232 基本概念
RS-232为
异步串行、全双工通信
,
由电子工业协会(EIA)制定,是个人计算机上的通讯接口之一,通常以9个引脚(DB-9)出现,传输距离通常十几米。
RS-232 信号
RS-232接口定义了多种信号线,其中最常用的是:
-
TXD(Transmit Data)
: 发送数据线。
-
RXD(Receive Data)
: 接收数据线。
-
GND(Ground)
: 地线。
-
RTS(Request to Send)
: 请求发送。
-
CTS(Clear to Send)
: 清除发送。
-
DTR(Data Terminal Ready)
: 数据终端准备好。
-
DSR(Data Set Ready)
: 数据集准备好。
-
DCD(Data Carrier Detect)
: 数据载波检测。
-
RI(Ring Indicator)
: 振铃指示。
RS-232 电气特性
RS-232定义的信号电压如下(负逻辑):
-
逻辑1(标志位)
: -3V到-15V。
-
逻辑0(空闲位)
: +3V到+15V。
任何在-3V到+3V之间的电平都被视为不确定状态。
数据传输
RS-232使用异步通信,没有时钟信号。数据传输通过开始位、数据位、可选的校验位和停止位构成的数据帧进行:
-
起始位
: 通常为1位,表示数据传输的开始,逻辑低电平。
-
数据位
: 通常为5到8位,是实际传输的数据。
-
校验位
: 可选,用于错误检测,一般有奇校验和偶校验。
-
停止位
: 通常为1或2位,表示一帧数据的结束,逻辑高电平。
RS-232 传输速度
RS-232的波特率(传输速率)可以从300bps到115200bps不等,典型值有9600、19200、38400、57600和115200bps。
RS-232 应用
RS-232广泛应用于:
7、RS485通信
RS-485是一种用于
多点、差分信号传输的串行通信标准
,广泛应用于工业自动化、楼宇自动化和其他需要可靠
长距离数据传输
的应用中。与RS-232相比,RS-485具有更强的抗干扰能力和更长的传输距离。
RS-485 基本概念
差分信号
RS-485使用差分信号传输,它通过两根线(A和B)来传输数据。差分信号的优势在于:
多点通信
RS-485支持多点通信,即多个设备可以连接在同一总线上,常见的配置是主从模式。一个RS-485总线上可以连接多达32个设备,使用扩展器可以连接更多设备。
RS-485 电气特性