"); //-->
I2C、SPI、UART这三种通信总线都是在嵌入式领域非常常见的,目前主流的SOC芯片都内置了这三种总线的控制器,各种Sensor、Touch、蓝牙模块、WIFI模块等也都兼容这三种通信协议的1种以上。但是这三种总线通信协议差别却不是很大,所以在面试时也是面试官喜欢问的。
I2C:半双工、同步、串行传输,物理上只有两根线(SDA/SCL);传输数据必须8位8位的传输。
SPI:全双工、同步、串行传输,收发独立,传输速率高,但是没有指定的流控制,没有应答机制确认是否接收到数据。物理上4根线(CLK/SDI/SDO/CS),因为是全双工,并且不需要寻址,所以速度要比I2C快,但是占用的物理线的数量要比I2C多;通信时可以一位一位的传输数据。
UART:全双工、异步、串行传输,收发独立,UART总线并没有时钟线,所以需要提前约定对应的波特率,传输速度较慢,物理上4根线(VCC/TX/RX/GND),虽然速度慢,但是可用于不同主机间的通信,通常用于debug调试非常方便;传输时数据位可以5、6、7、8位。
单工、半双工、全双工单工:数据只能在一个方向上传输。
半双工:数据可以在两个方向上进行传输,但是同一时刻,只允许数据在一个方向上传输,相当于单工通信的分时复用。
全双工:数据可以同时在两个方向上传输,相当于两个单工通信的结合。
同步通信要求发收双方具有同频同相的同步时钟信号(一般共用一个时钟), 同步通信效率高。
异步通信的收发双方没有同步时钟,比如UART,收发双方仅仅是约定,你按照什么样的速率发,而我也按照这样的速率去接收,这样如果速度越快,那么信号宽度越窄,误差就越大,所以异步通信效率较低。
总结通信速度上,SPI最快,UART最慢;通信距离上,I2C和SPI通常用于片上通信,而UART通常用于设备间通信,比如PC机和我们要调试的产品设备。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
TMP101的典型连接
DS2465典型应用
基于STM32模拟UART串口通信
Diodes推出高效多相 SPI 增压控制器,实现稳健灵活的汽车头灯系统
MSP430与液晶显示器的串行接口方案
I2C规格
嵌入式系统硬件接口设计 下
MB95200H/210H系列LIN-UART的使用
嵌入式系统中的I2C总线时序
搞懂UART,李云龙给你讲透
智能温度传感器DS1620和SPI总线的接口电路图
低速串行总线调试-I2C译码
兆易创新推出GD25NE系列SPI NOR Flash
为什么选择UART(串口)作为调试接口,而不是I2C、SPI等其他接口
I2C总线协议V2.1
串口、COM口、UART口, TTL、RS-232、RS-485有啥区别
SPI接口与单片机接口原理图(STPM01与P89LPC94)
I2C Logic Selection Guide
32位微控制器学习系列二----UART
MCP2510,F149,SPI,CAN 大家帮看看MCP2510与F149-SPI接口的CAN实现程序
看时序图写I2C驱动,教你如何自己手撸非标I2C驱动函数
232-485转接口电路
TMP100的典型连接
兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
R8C/2B 串口1的相关问题想问大家
低速串行总线调试-SPI译码
蓝牙HCI-UART与并口的FPGA控制接口设计
集成电路(I2C)总线市场趋势、需求和创新2025-2035
嵌入式系统硬件接口设计 中
手把手教你学ARM-STM32 第四十一讲 STM32的SPI的工作原理(库函数)