一、uart
1、波特率
波特率就是发送二进制数据位的速率,习惯上用 baud 表示,即我们发送一位二进制数据的持续时间=1/baud。在通信之前,单片机 1 和单片机 2 首先都要明确的约定好它们之间的通 信波特率,必须保持一致,收发双方才能正常实现通信。
2、uart串口通讯是什么
UART (Universal Asynchronous Receiver/Transmitter,即通用异步收发器)串行通信是单片机最常 用的一种通信技术,通常用于单片机和电脑之间以及单片机和单片机之间的通信。是一种串行、异步、全双工的通信协议。将所需传输的数据一位接一位地传输,在UART通讯协议中信号线上的状态位高电平代表’1’,低电平代表’0’。
3、串行通信
单片机有两个引脚是专门用来做 UART 串行通信的,它们分别叫做 RXD 和 TXD,由它们组成的通信接口就叫做串行接口,简称串口。
GND 表示单片机系统电源的参考地,TXD 是串行发送引脚,RXD 是串行接收引 脚。两个单片机之间要通信,首先电源基准得一样,所以我们要把两个单片机的 GND 相互 连接起来,然后单片机 1 的 TXD 引脚接到单片机 2 的 RXD 引脚上,即此路为单片机 1 发送 而单片机 2 接收的通道,单片机 1 的 RXD 引脚接到单片机 2 的 TXD 引脚上,即此路为单片 机 2 发送而单片机 1 接收的通道。这个示意图就体现了两个单片机相互收发信息的过程。
在串口通信中,一个数据流由10个数据位组成,包含1位起始位,7位有效数据位,1位奇偶校验位,1位停止位。uart串口信号线上空闲时常驻高电平,当检测到低电平下降沿时认为数据传输开始,到停止位时数据传输结束,一共10位数据位组成一个数据包。
起始位:通信线路上空闲时为“1”,当检测到“0”即下降沿时,认为数据传输开始
有效数据位:传输开始后传递的需要接收和发送的数据值,可以表示指令或数据
奇偶校验位:奇偶校验,通过来校验传输数据中“1”的个数为奇数个(奇校验)或偶数个(偶校验)来指示传输数据是否正确
停止位:数据传输结束,传输线恢复常“1”状态
二、IIC
1、IIC简介
IIC(Inter-Integrated Circuit)集成电路总线,它是一种串行通信总线,又叫I2C,使用多主从架构,由飞利浦公司在1980年推出的。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,一般可达400kbps 以上,属于半双工同步传输型总线。
2、IIC物理层
IIC总线的硬件,是由一根数据线SDA,一根时钟线SCL构成。不同的器件,都是并联接在这两条线上,I2C总线上的每个设备都自己一个唯一的地址,来确保不同设备之间访问的准确性。
- SDA(Serial data)是数据线
- SCL(Serial clock line)是时钟线
总线空闲的时候,SDA和SCL都是高电平。当其中一个设备拉低总线,整条线就全是低电平,器件与器件之间"与"关系。
3、IIC协议规则
在起始条件产生后,总线处于忙状态,由本次数据传输的主从设备独占,其他I2C器件无法访问总线;而在停止条件产生后,本次数据传输的主从设备将释放总线,总线再次处于空闲状态。