目录
串口通信
(全双工,异步)
通信线:
VCC:高电平
GND:低电平
TX:发送引脚
RX:接收引脚
1设备与2设备互联:VCC接VCC,GND接GND,1的TX接2的RX,1的RX接2的TX(交叉连接)
电平标准:
电平标准是1和0的表达方式,是人为规定的电压与数据的关系。
TTL电平:+3.3V或+5V表示1,0V表示0
RS232电平:-3V~-15V表示1,+3V~+15V表示0
RS485电平:两线压差+2V~+6V表示1,-2V~-6V表示0(差分信号)
波特率:
串口通信的速率(每秒传输数据的位数)
因为是异步通信,所以需要规定双方通信的速率。
若波特率为4800,则发送一位的时间就是1s/4800
若波特率为9600,则发送一位的时间就是1s/9600
若波特率为115200,则发送一位的时间就是1s/115200
空闲时:高电平
起始位:
标志一个数据帧的开始,规定为低电平。即产生一个下降沿。表示传输开始。
数据位:
8位,1为高电平,0位低电平,低位先行。
若要发送0x0F,首先转化为2进制:00001111,然后低位先行:发送 D1~D7:11110000
校验位:
用来判断数据是否出错。
奇校验:8位数据位+1位校验位=奇数个1
偶校验:8位数据位+1位校验位=偶数个1
但是当两位数据同时出错,奇偶校验就检测不出。此时需要使用CRC校验,之后会更新。
停止位:
用于数据间隔,固定为高电平。恢复空闲状态。
可以配置,可以选择1位,1.5位,2位。一般都使用1位。
完整的数据帧:
举例:
发送0x55,无校验
- 空闲状态高电平~~起始位:低电平,产生下降沿,表示数据帧开始。~~0x55转为二进制,即为10101010,低位先行:10101010.~~停止位:高电平
发送0x55,偶校验
空闲状态高电平~~起始位:低电平,产生下降沿,表示数据帧开始。~~0x55转为二进制,即为10101010,低位先行:10101010.~~校验位:一共是偶数个1,所以校验位置0~~停止位:高电平