本文章主要为了总结下各协议的区别,一方面为了面试,总有些面试官爱问,烦死人,总结的不一定正确,如有错误请指正。
UART通信:
1.三根线 (rx,tx,gnd);
2.全双工 :发送接收可以同时。
3.波特率
4.发送数据长度限制8位
5.没有应答机制,但有奇偶校验位。
6.只允许1对1通信。
7.异步通信。
8.小于20Kbps
SPI通信:
1.三根线(SDO,SDI,SCLK)1对1传输可以省CS.
2.全双工:这里的全双工可串口还不同,不能同时收发。SCLK由主机控制,从机不能主动给主机发数据。感觉类似半双工。
3.数据发送位数没有要求,而且可以中断发送然后续上。
4.一个上降沿+上升沿为1个数据。
5.没有应答机制,也没有硬件校验机制。
6.可以1主多从,靠CS片选使能。
7.同步通信。
8.速度可达几Mbps
IIC通信:
1.两根线(SDA,SCL)
2.半双工,同步通信。
3.速率100K~3Mbps.
4.有ACK应答。1主多从。
5.SCL高电平读取数据,低电平可以改变数据。
6.数据长度限制8位。
7.有地址位,以及传送方向位,方向位来决定是主机发送还是接受数据。