基本概念
1.串行:只有一个数据线,bit(位)一个一个传输(本质传输的是电信号,高低电平代表0或1)
更常用(UART,IIC,SPI)
2.并行:多个数据线,bit(位)同时传输
优点:速度快
缺点:并行总线条数多,浪费资源,布线难度大,不同数据线在传输数据时数据之间存在干扰
3.单工通信:发送器和接收器之间的传递是单向的
4.双工:发送器和接收器可以互相传送数据
5.半双工:接受和发送不能同时进行,只有1根数据传输总线(例如IIC)
6.全双工:接受和发送可以同时传输,有2根数据传输总线(UART,SPI)
7.波特率(描述串口通信速度,单位bps(bit per second),即为每秒钟传输的二进制位数)
常见总线
1.串口-UART(同用异步收发器)
通用的串行、异步(发送和接受的时钟不一样)通信总线,该总线有两条数据线,可以实现全双工的发送和接收在嵌入式系统中常用于主机与辅助设备之间的通信。
串口通信原理
起始位:一次通信的开始(一个位的开始,那怕你要连续发8位,每次都要有起始位)
数据位:通过串口的数据内容
校验位:校验发送的数据的正确性(串口中常用奇偶校验)
停止位:此次通信的结束(是高电平)
(通信协议中指出:若总线不传输数据,应该把电平信号置为高电平;先发低位数据再发高位数据;串口最多发8位,避免累计误差)
如何区分1个1还是2个1(因为他们都是高电平):根据波特率判断时间。
2.IIC总线
串行、半双工总线。主要用于近距离、低速的芯片之间的通信。IIC总线有两根双向的信号线。一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步。IIC总线硬件结构简单,成本较低,因此在各个领域得到了广泛的应用。
IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机。主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,IIC也具备冲突检测和仲裁的功能来防止错误产生;每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机),总线上的器件增加和删除不影响其他器件正常工作;IIC总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器。
IIC通信过程
**1.**主机发送起始信号启用总线
**2.**主机发送一个字节数据指明从机地址和后续字节的传送方向(一个字节中包含7bit的从机地址和数据传输方向(0表示主机发送,1表示主机接受),在未停止之前,这个传输方向不能更改)
**3.**被寻址的从机发送应答信号回应主机(将自己的地址和主机发送的地址做比较,判断是否是自己需要作为从机应答)
**4.**发送器发送一个字节数据
**5.**接收器发送应答信号回应发送器
(循环步骤4、5)
**n.**通信完成后主机发送停止信号释放总线
2.SPI总线
SPI (Serial Per ipheral Interface) 是串行外设接口的缩写,SPI是一种
高速的、全双工、同步的串行通信总线;SPI采 用主从方式工作,一般有一个
主设备和一个或多个从设备; SPI需要至少4根线, 分别是MISO (主设备输入
从设备输出)、MOSI ( 主设备输出从设备输入)、SCLK (时钟)、CS (片选,用于寻址)
SPI使用引脚较少且布线方便,所以越来越多的芯片集成了这种通信协议;
寻址方式
当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选
线上发送使能信号(高电平或者低电平,根据从机而定)表示选中该从设备。
通信过程
SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高
电平表示逻辑‘1’,低电平表示逻辑‘0’ ;一个字节传送完成后无需
应答即可开始下一个字节的传送;SPI总线采 用同步方式工作,时钟线
在上升沿或下降沿时发送器向数据线上发送数据(MSB,最高位;LSB,最低为位),在紧接着的下降沿或
上升沿时接收器从数据线.上读取数据,完成一位数据传送,八个时钟周
期即可完成一个字节数据的传送;
极性和相位
SPI总线有四种不同的工作模式,取决于极性(CPOL)和相位(CPHL)这两个因素
CPOL表示SCLK空闲时的状态
CPOL=0,空闲时SCLK为低电平
CPOL=1,空闲时SCLK为高电平
CPHA表示采样时刻
CPHA=0,每个周期的第一个时钟沿采样
CPHA=1,每个周期的第二个时钟沿采样
需要说明的是,对于一个特定的从设备来说,一般在出厂时就会将
其设计为某种特定的工作模式:我们在使用该设备时就必须保证主设备
的工作模式和该从设备保持一致,否则是无法进行通信的;所以一般我
们需要对主设备的CPOL和CPHA进行配置;
IIC和SPI的对比
相同点
1.均采用串行同步的方式
2.均采用TTL电平(0,1这种高低电平,导致其传输距离较短),传输距离和应用场景类似
3.均采用主从方式工作
■不同点
- IIC为半双工,SPI为全双工
- IIC有应答机制,SPI无 应答机制
- IIC通过向总线广播从机地址来寻址(优点:节省引脚,节省资源;缺点:慢),SPI通过向对应从机发送使能电平连接从机(优点:相较于IIC快;缺点:占了引脚)
- IIC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可以自己设置
参考资料: https://www.bilibili.com/video/BV1q44y1d7dT/?p=15&share_source=copy_web&vd_source=3b4b6a7691b65142fba064b15503f0d6