串口通信协议
1、USART与UART的区别
USART为通用同步/ 异步收发器,UART为通用异步收发器;同步与异步的差别在于是否存在时钟线,同步通讯存在时钟线。
所以USART是否需要时钟线则看其工作模式,同步时需要时钟线
2、电平标准
主要有以下的几种电平标准,单片机开发中常用的是TTL电平标准,一般使用CH340等电平转换芯片实现USB转TTL,从而来实现单片机与PC端的通信。
3、USART关键参数
串口通讯的数据包由发送设备通过自身的 TXD 接口传输到接收设备的 RXD 接口。
协议层规定:规定了数据包的内容,它由启始位、主体数据、校验位以及停止位组成,通讯双方的数据包格式要约定一致才能正常收发数据,具体见下图
(1)波特率
在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率(Baud rate)。
在异步通讯中由于没有时钟信号,所以两个通讯设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码。
(2)停止位
每个字发送后,紧跟停止位,停止位可以选择“1、2、0.5、1.5”bit(0.5实际代表停止位高电平持续半个周期的时间)。
(3)校验位(根据前面的数据位中1的个数来决定校验位中的数值)
在有效数据之后,有一个可选的数据校验位。由于数据通信相对更容易受到外部干扰导致传输数据出现偏差,可以在传输过程加上校验位来解决这个问题。
1)奇校验(odd):有效数据和校验位中“ 1”的个数为奇数
2)偶校验(even) :有效数据和校验位中“ 1”的个数为偶数
3)0 校验(space):不管有效数据中的内容是什么,校验位总为“ 0”
4)1校验(mark):不管有效数据中的内容是什么,校验位总为“ 1”
5)无校验:即没有校验位的存在。
(4)字长度
有效数据加校验位的长度。
(5)起始位
由1个逻辑 0 的数据位表示,即低电平持续一个周期的时间。