"); //-->
嵌入式工程师在做串口通信调试工作的时候,会经常用到I2C、SPI、UART这3条总线,I2C、SPI、UART这三种通信总线在嵌入式领域很常见,目前主流的SOC芯片都内置了这三种总线的控制器,各种Sensor、Touch、蓝牙模块、WIFI模块等也都兼容这三种通信协议的1种以上。那么这三条通信总线有什么区别呢?工业物联网无线通信专业厂商为您一一细说——
I2C:半双工、同步、串行传输,物理上只有两根线(SDA/SCL);传输数据必须8位8位的传输。
I2C串口通信传输步骤
1.在SCL线为高电平时,主机通过将SDA线从高电平切换到低电平来启动总线通信;
2.主机向总线发送要与之通信的从机的7位或10位地址,以及读/写位;
3.每个从机将主机发送的地址与其自己的地址进行比较。如果地址匹配,则从机通过将SDA线拉低一位返回一个ACK位。如果主机的地址与从机的地址不匹配,则从机将SDA线拉高。
4.主机发送或接收数据帧;
5.传输完每个数据帧后,接收设备将另一个ACK位返回给发送方,以确认已成功接收到该帧;
6.随后主机将SCL切换为高电平,然后再将SDA切换为高电平,从而向从机发送停止条件。
SPI:全双工、同步、串行传输,收发独立,传输速率高,但是没有指定的流控制,没有应答机制确认是否接收到数据。物理上4根线(CLK/SDI/SDO/CS),因为是全双工,并且不需要寻址,所以速度要比I2C快,但是占用的物理线的数量要比I2C多;通信时可以一位一位的传输数据。
SPI串口通信传输步骤:
1.主机输出时钟信号;
2.主机拉低SS/CS引脚,激活从机;
3.主机通过MOSI将数据发送给从机;
4.如果需要相应,则从机通过MISO将数据返回给从机。
UART:全双工、异步、串行传输,收发独立,UART总线并没有时钟线,所以需要提前约定对应的波特率,传输速度较慢,物理上4根线(VCC/TX/RX/GND),虽然速度慢,但是可用于不同主机间的通信,通常用于debug调试非常方便;传输时数据位可以5、6、7、8位。
UART串口通信传输步骤:
1.发送UART从数据总线并行接收数据;
2.发送UART将起始位、奇偶校验位和停止位添加到数据帧;
3.整个数据包从发送UART串行发送到接收UART。接收UART以预先配置的波特率对数据线进行采样;
4.接收UART丢弃数据帧中的起始位、奇偶校验位和停止位;
5.接收UART将串行数据转换回并行数据,并将其传输到接收端的数据总线。
单工、半双工、全双工
单工:数据只能在一个方向上传输。
半双工:数据可以在两个方向上进行传输,但是同一时刻,只允许数据在一个方向上传输,相当于单工通信的分时复用。
全双工:数据可以同时在两个方向上传输,相当于两个单工通信的结合。
同步通信和异步通信
同步是阻塞模式,异步是非阻塞模式。
同步通信要求发收双方具有同频同相的同步时钟信号(一般共用一个时钟),同步通信效率高。
异步通信的收发双方没有同步时钟,比如UART,收发双方仅仅是约定,你按照什么样的速率发,而我也按照这样的速率去接收,这样如果速度越快,那么信号宽度越窄,误差就越大,所以异步通信效率较低。
综上所述,工业物联网无线通信专业厂商要说的是I2C、SPI、UART这三条总线在通信速度上,SPI最快,UART最慢;通信距离上,I2C和SPI通常用于片上通信,而UART通常用于设备间通信,比如PC机和我们要调试的产品设备。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
动图,秒懂总线的通信原理
usb转232电路
集成电路(I2C)总线市场趋势、需求和创新2025-2035
学习STM32单片机,绕不开的串口
硬件干货|RS485通信协议详解
新系列串口EEPROM内置唯一ID码,适合设备识别、溯源和可持续性应用
利用基于SMBus总线的智能温度控制器组成控制风扇转速的三种方式
USB转并口、串口电路图(ch341).
请教VXWORKS中串口收发通讯程序的问题(老站转)
ESIE 2026:MPS发布储能BMS全栈芯片方案 以技术创新破解产业核心痛点
基于SMBus总线的智能温度控制器MAX6641的典型应用电路
[转帖]Vxworks串口驱动编写实例解读
电脑串口、并口连接线大全
基于SPI总线的高精度压力测试系统(高精度集成压力信号调理器MAX1457)
高速PCB设计指南之七
基于PCI 总线的高速数据采集系统
一文读懂|CAN总线为何要加终端电阻
嵌入式系统中的I2C总线时序
请教有关pci总线相关知识
基础知识之CAN总线
DSP虚拟I2C总线软件包的设计及应用实例
基于CAN总线的电池管理系统结构框图
vxworks中编写串口驱动?(老站转)
53年后,惠普于1972年推出的总线标准获得了稳定的Linux驱动——通用接口总线拥有惊人的8 MB/s带宽
总线控制RGB前置放大器TDA4887PS