基础知识
类型 | 特点 | 典型应用 |
单工 | 只支持在一个方向上传输 | |
半双工 | 两台设备双向传输,但是不能同时进行 | IIC |
全双工 | 二台设备间同时进行双向数据传输 | SPI / UART |
类型 | 特点 | 典型应用 |
同步 | 有时钟线,通信的字节传输是没有间隔的,通信传输效率高(但复杂)。 | SPI / IIC |
异步 | 无时钟线,采用固定的通信格式,数据以相同的帧格式传输,有起始位和结束位。传送的间隔是任意的 | 串口 |
类型 | 特点 | 典型应用 |
串行 | 一次一位,串行口传输方式为数据排成一行、一位一位送出接收也一样 | |
并行 | 一位(比特)时间内可传输一个字符,并行口传输8位数据一次送出 |
对比项 | UART | SPI | IIC |
信号线数目 | 3根:RX、TX、GND | 4根:SDO、SDI、SCLK、SS | 2根:SDA、SCLK |
设备从属关系 | 存在主从设备。SPI用片选信号选择从机 | 存在主从设备。IIC用地址选择从机。 | |
通信方式 | 全双工通信 | 全双工通信 | 半双工通信 |
通信速率 | 速度慢 | 比I2C总线要快,速度可达到几Mbps | I2C的速度比SPI慢 |
应用领域 |
1、UART常用于控制计算机与串行设备的芯片 2、就是我们经常所说的串口,基本都用于调试。 |
主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间 | I2C一般是用在同一个板子上的2个IC之间的通信 ,它可以替代标准的并行总线,连接各种集成电路和功能模块。 |
传输距离 | I2C需要有双向IO的支持,而且使用上拉电阻,抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信 | ||
通信特征 | 异步,一帧可以传5/6/7/8位 | 同步,SPI允许数据一位一位的传送,甚至允许暂停。从最高位开始传。 | 同步,电平信号,一次连续8bit。从最高位开始传 |
协议复杂度 | 结构比较复杂 | SPI实现要比UART简单,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。 | 协议比SPI复杂,但是连线比标准的SPI要少 |
对比 |
在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。 在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。 |