IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> stm32之协议篇(IIC、SPI) -> 正文阅读

[嵌入式]stm32之协议篇(IIC、SPI)

目录

同步与异步:

发送模式:

IIC时序:

SPI工作原理:

SPI通信过程:

IIC和SPI的异同:


同步与异步:

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
??
异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

USART:通用同步和异步收发器
UART:通用异步收发器

当进行异步通信时,这两者是没有区别的。区别在于USART比UART多了同步通信功能(或者说多了一根时钟线)

发送模式:

UART:先发低位后发高位
IIC:先发高位后发低位
SPI:先发高位后发低位

IIC时序:

IIC时序:
开始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平。


停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。


应答信号:每当主机向从机发送完一个字节的数据,主机总是需要等待从机给出一个应答信号,以确认从机是否成功接收到了数据,从机应答主机所需要的时钟仍是主机提供的,应答出现在每一次主机完成8个数据位传输后紧跟着的时钟周期,低电平0表示应答,1表示非应答:

产生ACK应答:SCL在SDA一直为低电平期间完成低高电平转换

不产生应答:SCL在SDA一直为高电平期间完成低高电平转换

硬件IIC与软件IIC的区别
1. 硬件IIC用法比较复杂,模拟IIC的流程更清楚一些。

2. 硬件IIC速度比模拟快,并且可以用DMA

3. 模拟IIC可以在任何管脚上,而硬件只能在固定管脚上。

IIC的配置模式开漏与推挽的优缺点

主机如果使用了推挽,当主机释放SDA时(令SDA=1时),相当于SDA被接通到VCC,这时从机无法控制SDA为0;

主机如果使用了开漏,当主机释放SDA时(令SDA=1时),相当于SDA被悬空上拉到VCC,这时从机可以拉低SDA,使SDA=0,也可以释放SDA使SDA=1,这样从机才能发数据。


开漏输出:IIC就是利用引脚高阻态的特性,IIC总线上挂载多个从机,当从机不工作时输出高阻态,总线默认是高电平

SPI工作原理:


1、硬件为四根线
2、主机和从机都有一个人串行移位寄存器,主机通过SPI的串行移位寄存器写入一个字节发送一次传输
3、串行移位寄存器通过MOSI信号线将字节发送给从机,从机将自己的串行移位寄存器的内容通过MISO返回给主机,这样两个串行移位寄存器的内容被交换
4、外设的读写操作同步完成,只进行写操作,则忽略读操作;主机只进行从机的读操作,则主机须发送一个空字节给从机引发传输

SPI通信过程:

一个字节传送完成后无需应答即可开始下一个字节的传送;SPI总线采用同步方式工作,时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,(一个周期两个沿,第一个沿发送数据,第二个沿接收数据)完成一位数据传送,八个时钟周期即可完成一个字节数据的传送

CPOL=0,CPHA=0上升沿接数据,下降沿发数据空闲时,时钟线为低电平
CPOL=0,CPHA=1上升沿发数据,下降沿接数据空闲时,时钟线为低电平
CPOL=1,CPHA=0上升沿接数据,下降沿发数据空闲时,时钟线为高电平
CPOL=1,CPHA=1上升沿发数据,下降沿接数据空闲时,时钟线为高电平

CPHA = 0:表示从第一个跳变沿开始采样;

CPHA = 1:表示从第二个跳变沿开始采样。

跳变沿究竟是上升沿还是下降沿,这取决于 CPOL。

记住, CPHA 只决定是哪个跳变沿采样。

例如:
CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。

CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。

CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿。

CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。

IIC和SPI的异同:

相同点:
1、均采用串行、同步的方式
2、均采用TTL电平,传输距离和应用场景类似(不适合长距离通信)
3、均采用主从方式工作

不同点:
1、IIC为半双工,SPI为全双工
2、IIC有应答机制,SPI无应答机制
3、IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号寻址
4、IIC的时钟极性和时钟相位固定(空闲时SDA,SCL为高电平),SPI时钟极性和时钟相位可调

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:58:04  更:2022-10-08 20:59:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 16:48:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码