概述
本文以单片机常用的最少3线的异步全双工串行通信为例介绍
名称解释
异步/同步
指双方的时钟是否是同一个(注意:判断依据不是是否相同频率)
同步需要单独引出一根时钟线用于同步时钟
即使是相同的厂家出产的相同批次的商品,本身也会存在误差,导致通信双方的时间计算出现误差,在数据量小时这个误差可以忽略不记
名称 | 解释 | 优势 | 劣势 |
---|---|---|---|
同步 | 时间计算准确,可以传输大量数据,速度较快 | 需要多使用1根线 | |
异步 | 接线简单,成本低 | 时间不准,速度不能过快 |
全双工/半双工/单工
是指同一时刻传输数据的方向
名称 | 同一时刻的方向 | 接线 |
---|---|---|
单工 | 单向(不能反向传输) | 一根 |
半双工 | 单向(可以在不同时刻反向传输) | 一般是一根 |
全双工 | 双向 | 至少2根 |
半双工可以在不同时刻分别由连接的两个或多个设备分时控制数据线来实现双向传输
串行/并行
按照同一时间传输的数据量区分
串行是每次传输一位数据,在不同时间
串行通信
并行通信是同一时刻传输多个数据
并行通信
编码规则
如图,空闲状态是高电平,当要发送数据时,会产生持续一个字节的低电平,之后按低到高发送数据,数据长度可选,之后是校验位,再经历停止位
数据长度
数据长度就是发送数据的位数
可以是5,6,7,8
波特率
指一个位的周期
也就是每一个位的持续时间
周期 = 1 / 波特率
起始位
占用1位,为低电平,表示开始串口通信
数据位
占用1位,传输数据,从数据的低位到高位发送
校验位
校验分两种校验
奇校验和偶校验
就是改变校验位的数据,使总共的数据中的高电平数量为奇数或偶数
例如:传输的数据为0b01011011 有5个高电平,如果是奇校验则校验位为低电平,如果是偶校验,则校验位为高电平
停止位
就是用来区分两个数据的最小间隔
可以选1,1.5,2位
根据波特率产生指定长度的高电平