三种通信模式SPI、UART、I2C它们的工作原理
发布网友
发布时间:2022-04-24 21:41
我来回答
共1个回答
热心网友
时间:2023-05-07 09:37
这三种通信模式都是串行总线。
SPI总线
MOTOROLA公司的SPI总线的基本信号线为3根传输线,即SI、SO、SCK。传输的速率由时钟信号SCK决定,SI为数据输入、SO为数据输出。采用SPI总线的系统如图8-27所示,它包含了一个主片和多个从片,主片通过发出片选信号-CS来控制对哪个从片进行通信,当某个从片的-CS信号有效时,能通过SI接收指令、数据,并通过SO发回数据。而未被选中的从片的SO端处于高阻状态。主设备通过产生移位时钟来发起通讯。通讯时,数据由SO
输出,SI
输入,数据在时钟的上升或下降沿由SO
输出,在紧接着的下降或上升沿由SI
读入,这样经过8/16
次时钟的改变,完成8/16
位数据的传输。
I2C总线
I2C(Inter-Integrated
Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C串行总线有两根信号线:一根双向的数据线SDA;另一根是时钟线SCL。所有接到I2C总线上的设备的串行数据都接到总线的SDA线,各设备的时钟线SCL接到总线的SCL。
I2C总线按字节传输,即每次传输8bits二进制数据,传输完毕后等待接收端的应答信号ACK,收到应答信号后再传输下一字节。等不到ACK信号后,传输终止。空闲情况下,SCL和SDA都处于高电平状态。
UART通信
UART:Universal
Asynchronous
Receiver/Transmitter,通用异步接收/发送装置。UART首先将并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,后面是5~8个数据位,一个可用的奇偶位和一个或几个高位停止位。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来与PC进行通信。