什么是总线协议(通信协议):
总线其实就是两个模块之间通信的线路
协议是遵循的规则
总线协议就是两个模块在通信线路上传输信息需要遵守的规则,双方按照协议来收发信息
总线本质就是一些导线或者电线。
作用:用于在计算机不同部件之间去传输数据或者信息。
总线传输的本质是传输一些高低电平的信号(即电信号)
通信:用于不同计算机之间进行数据或信息交互的时候使用
UART
Universal Asynchronous Receiver Transmitter 即通用异步收发器,是一种通用的串行、异步通信总线。该总线有两条数据线,可以实现全双工的发送和接收。在嵌入式系统中常用于主机与辅助设备之间的通信。
UATR:是一种总线协议/通信协议
串口协议(UART):--》点对点通信(只有收发双方)
并行和串行
并行通信(八个位同时发送)
串行通信(八个位按顺序一个一个发送)
单工和双工
单工: 数据传输只支持数据在一个方向上传输
半双工: 允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;
全双工:允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。
只有一条数据线一般是半双工(如iic),如果有两条数据线一般是全双工(如串口、SPI)
波特率
波特率用于描述UART通信时的通信速度,其单位为bps(bit per second)即每秒钟传送的bit的数量
波特率每秒钟传输的码元
比特率每秒钟传送的二进制位(bit)的数据
如果发送方发送01或 0011(时序图时一样的)
接收方如果确定是哪一个呢--》通过掐时间(即波特率:规定每一秒钟发送多少个数据)
UART帧格式
串口协议规定:数据线在空闲时为高电平
此规定决定了串口收发数据时起始位一般为0,否则区分不了什么时候为数据位的开始。
串口协议规定:发送数据时一般先发低位再发高位
串口一次可以发5-8位(只是我们习惯性认为是8位,因为我们学习时,遇到的基本都是8位)
串口一次最多只能发送一个字节(为什么这么规定:防止累积误差的发生)
如果想要发送10个字节,必须得是一个字节一个字节发送。
前一个字节到停止位后再去发起始位,重复这个过程。
硬件连接
同步通信和异步通信
同步通信: 带时钟同步信号传输。
-SPI,IIC通信接口
异步通信:不带时钟同步信号。
-UART(通用异步收发器),单总线
UART控制器
一般情况下处理器中都会集成UART控制器
我们使用UART进行通信时候只需对其内部的相关寄存器进行设置即可
串口控制器本质就是一个硬件电路 里面就有自己发送器和接收器
我们如何去控制外围设备呢?
通过对内部的相关寄存器进行设置即可
串口只定义收发时序,没定义高低电平具体是多少(这时我们看到下一讲RS232、RS485)。
RS232、RS485电气层/物理层协议--》依赖于串口,收发器还是串口,编程时还是用UART
提高抗干扰能力、提高传输距离、提高传输速度