一、 UART
1. UART概念
2. 并行通信和串行通信
并行通信就是一次性的传输8位数据,串行通信是一位一位的传输数据。优缺点自行搜索吧。
3. 单工通信和双工通信
4. 波特率
5. 通信格式
5.1 起始位作用:
数据线空闲的时候规定是高电平,如果发送0xFF,则发送的为1111 1111,如果没有起始位,则无法判断什么时候开始发送的,无法区分是空闲状态还是发送的数据。所以规定发送数据之前先发送一个低电平。
5.2 数据位
数据位 低电平代表0,高电平代表1,规定从数据的低位开始发送。可以发送5-8为数据(一个字节)。如果要发送多个字节,必须一个字节一个字节的发送,当一个字节发送完成后,必须重新发送起始位,然后再发送另一个字节。(原因后面解释,但同步通信的可以连续发送多个字节,如II2C等)
5.3 校验位
校验位是防止接收的数据有误,有奇偶校验,校验和,CRC循环冗余校验等方法。想了解的自行百度吧。
5.4 停止位
停止位表示串口发送一次数据或者接收一次数据的结束。
6. 波特率
当发送01和0011时,怎么区别呢,这就要体现出波特率的作用了。波特率时代表每秒发送的bit,如果波特率知道了,就能计算出发送1bit需要的时间。当接收数据时,开始计时,如果低电平的时间是1bit的时间,就代表接收了一个0,如果低电平的时间是2bit的时间,就代表接收了两个0,以此区别01还是0011。
为什么发送多个字节,必须一个字节一个字节的发送,当一个字节发送完成后,必须重新发送起始位,然后再发送另一个字节。
因为采用的是异步通信,发送方和接收方的时间是不一致的,两者之间会有误差。比如发送1bit需要1s,但是接收方只计算得到了0.9s,随着发送次数的累加,当接收了10个数据时,只计算得到了9s,这时会认为只有9个数据,就造成了误差。如果当一个字节发送完成后,必须重新发送起始位,这时候会重新计时,然后再发送另一个字节,不会造成累计误差。
二、RS232
232连接图
三、RS485
RS485使用差分信号,减少了噪声信号的干扰
延长了通信距离
信号电平较低,不易破坏其他芯片
电平与TTL电平兼容
同一总线上可以连接多个从机
四、IIC
4.1 IIC总线介绍
4.2 IIC总线通信协议
4.2.1 IIC的起始信号和结束信号
只有主机有权限发起一次通信或者结束一次通信。
4.2.2 IIC的数据传输与应答
4.3 IIC的时序(主机向从机发送数据,从机向主机发送数据,主机先向从机发送数据,然后从机再向主机发送数据)