串行总线:I2C、SPI和UART的区别(重要)
来源:互联网 发布:linux .gitignore文件 编辑:程序博客网 时间:2024/05/18 21:47
I2C、SPI和UART的区别:
(1)I2C:串行总线
芯片间串行传输总线;双工的同步数据传输;两线:串行数据线(SDA)和串行时钟线(SCL);多主控总线;当然任何时间点上只能有一个主控;每个设备都有唯一的地址;可以实现组网;
适合器件之间近距离、非经常性的数据传输;
用通用IO口模拟I2C总线,并实现双向传输,则需要一个输入输出口(SDA),还需要输出口(SCL);
例子:24C02芯片
(2)SPI:串行外设接口
同步串行通讯方式;三线同步总线:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI),{CS(片选)};可实现多个SPI设备互相连接;提供SPI串行时钟的SPI设备为主设备(至少有一个),其他设备为从设备;主从设备实现全双工通信;从设备较多时,可以增加从设备选择线;
线的功能介绍:
CS(片选):预先规定的使能信号(高电平和低电平),对该芯片的操作才有效,这使在同一总线上连接多个SPI设备成为可能;
负责通讯的三根线:
SPI数据是一位一位的传输;SCK提供时钟脉冲,SDI、SDO则基于此脉冲数完成数据传输;数据通过SDO线,数据在时钟上沿或下沿时改变,在紧接着的下沿或上沿被读取注意:SCK信号线只由主设备控制;
至少8次时钟信号的改变(上沿和下沿一次),就可以完成8位数据的传输。
普通串行通讯一次连续传送至少8位数据(1个字节),而SPI允许一位一位的传送,甚至可以暂停,因为SCK时钟线由主设备控制,当没有时钟跳变时,从设备不采集或传送数据;其输入和输出独立,故可同时完成数据的输入和输出。
用通用IO口模拟SPI总线,必须有输出口(SDO)和出入口(SDI),另一个口视实现的设备类型而定:
若实现主从设备,则需输入输出口;
若只实现主设备,则需输出口即可;
若只实现从设备,则需输入口即可。
例子:Nokia5110
(3)UART:通用异步收发器
单端,远距离传输;一般由波特率产生器、UART接收器、UART发送器组成;
用通用IO模拟UART总线,需要一个输入口和一个输出口;
串口通讯,按位发送和接收数据;一根线接收和一根线发送;距离可达1200m;
UART常用于控制计算机或其他串行设备的芯片,提供了RS-232数据终端设备接口
例子:静态显示
区别:(1)SPI和UART可以实现全双工,但I2C不行;
(2)I2C线少,技术麻烦,需要有双向IO的支持,并使用上拉电阻,抗干扰性弱,速度慢,用于近距离;UART需要固定波特率,两位数据的间隔要相等,而SPI无所谓,因为它有时钟的协议;SPI是规定好的通讯方式,传输速度快;
- 串行总线:I2C、SPI和UART的区别(重要)
- SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍
- SPI、I2C、UART三种串行总线协议的区别
- SPI、I2C、UART三种串行总线协议的区别
- SPI、I2C、UART三种串行总线协议的区别
- SPI、I2C、UART三种串行总线协议的区别
- SPI、I2C、UART三种串行总线协议的区别
- SPI、I2C、UART三种串行总线的区别
- SPI、I2C、UART三种串行总线协议的区别
- SPI、I2C、UART三种串行总线协议的区别
- SPI、I2C、UART三种串行总线的区别
- SPI、I2C、UART三种串行总线的区别
- SPI、I2C、UART三种串行总线协议的区别
- SPI、I2C、UART三种串行总线的区别
- SPI、I2C、UART三种串行总线协议的区别
- SPI、I2C、UART三种串行总线协议的区别
- SPI、I2C、UART三种串行总线协议的区别
- 转:SPI、I2C、UART、USART串行总线协议的区别
- html引入css文件的名字大小写问题
- maven之pom文件详解
- 转:mysql show processlist命令 详解
- BZOJ1260
- Wireless Network
- 串行总线:I2C、SPI和UART的区别(重要)
- ACdream 1213 Matrix Multiplication(矩阵相乘)
- 【并查集】UVALive3027 Corporative Network
- HBase基础知识(3):CRUD操作之删除方法
- 十、从头到尾彻底理解傅里叶变换算法、下
- ocr_yogurt.hdev识别酸奶盒保质期 相关例程学习
- Android Studio中编码(乱码)问题
- jffs2_scan_eraseblock()问题解决办法
- Android调试