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处于读/写,确保主机向正确的从机发送数据(器件地址),确保从机内部正确的寄存器接收数据(字地址),确保数据发送/接受正确数据。