Uart串口通信协议、I2C通信协议

  • Post author:
  • Post category:其他


UART:通用异步收发传输器(universal asynchronous receiver/transmitter),具体实物表现为独立的模块化芯片,或是微处理器中的内部周边设备。

异步:uart

发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。–非阻塞

同步:spi、I2C

发送方发出数据后,等接收方发回相应以后才发下一个数据包的通讯方式。–阻塞

假设两部设备,uart是通过什么方式,让设备1接收到设备2发送的数据的?

发送端的uart将来自控制设备的并行数据转换为串行数据,以串行方式将其发送。

接收端的uart将串行数据转换为并行数据以用于接收设备的正常处理。以相同的波特兰发送和接受数据。

在传输过程中的数据包的形式,数据包:1bit的起始位,5~9bit数据位,0~1bit校验位(可有可无),1~2bir停止位。

波特率:Tx Rx必须相同 单位:/bps 每秒钟传输多少个比特位

常见的波特率有:9600,19200,38400,57600,115200

接收发送端的时钟频率不需要一样,但是波特率

接收发送端的时钟频率不需要一样,但是波特率需要一致:

50MHz发送频率:1/115200*50MHz个时钟周期传1bit

20MHz接收频率:1/115200*20MHz个时钟周期收1bit

I2C协议原理:

两线协议:SCL(serial clock)/SDA(serial data)

主从通讯模式,通讯双方有主从之分,多主多从。主机可发送可接收——SDA位为inout接口。每个从机有固定的地址,主机通过地址寻找对应从机。

协议内容:开始与停止条件(开始的时候SDA先降低,SCL后降低;结束的时候,SCL先拉高,SDA后拉高),I2C处于读/写,确保主机向正确的从机发送数据(器件地址),确保从机内部正确的寄存器接收数据(字地址),确保数据发送/接受正确数据。



版权声明:本文为Allcce原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。