前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SPI协议简单介绍

SPI协议简单介绍

作者头像
全栈程序员站长
发布2022-11-04 16:50:45
1.4K0
发布2022-11-04 16:50:45
举报
文章被收录于专栏:全栈程序员必看

导言

SPI是串行扩展总线。

串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时系统的更改和扩充极为容易。

常用的串行扩展总线有:I2C(Inter IC Bus)总线、单总线(1-WIRE BUS)、SPI(Serial Peripheral Interface)总线及Microwire/PLUS等。

一、SPI协议

SPI总线是微控制器四线的外部总线。SPI没有明文标准,是一种事实总线,对通信操作的实现由芯片厂商和驱动开发者通过data sheet和application notes沟通实现的细节。SPI是四根信号线协议,如下:

SPI协议简单介绍
SPI协议简单介绍

SCLK:Serial Clock(Output from master);

MOSI:Master Output Slave Input(Outpt from Master);

MISO:Master Input Slave Output(Output from Slave);

SS:Slave Select(Active low,Output from Master);

二、 SPI协议通信

SPI是单主设备通信,总线中只有一个设备发起通信,能发起通信的设备称为主设备。当SPI主设备想读/写从设备时,首先拉低对应从设备的SS线SS是低电平有效);然后发送工作脉冲到时钟线上,在相应的脉冲时间上,主设备把信号发到MOSI实现写同时可以对MISO线采样实现读

三、SPI操作模式

SPI有四种操作模式:模式0、模式1、模式2、模式3。

这几个模式之间的区别是定义了在时钟脉冲的哪条边沿转换(toggles)输出信号,哪条边沿采样输入信号,还有时钟脉冲的稳定电平值(即时钟信号无效时是高还是低)。每种模式由两个参数描述,称为时钟极CPOL(clock polarity)与时钟期CPHA(clock phase)。

Mode = Bit[CPOL]Bit[CPHA]

CPOL=0表示 SCK在空闲状态时为0; CPOL=1表示 SCK在空闲状态时为1; CPHA=0表示 在SCK第一个边沿时输入输出数据有效; CPHA=1表示 在SCK第二个边沿时输入输出数据有效;

一般从器件的工作模式是固定的,主机要跟从机采用一样的工作模式,双方才能正常通信。如果有多个从设备,且从设备使用了不同的工作参数,那么主设备与不用的从设备通信时必须重新配置这些参数。

SPI协议简单介绍
SPI协议简单介绍

3.1 Mode0

Mode0时,CPOL=0,CPHA=0,SCK空闲状态为低电平,主机数据在每个上升沿被从机采样,数据输出同理。

SPI协议简单介绍
SPI协议简单介绍

3.2 Mode1

Mode1时,CPOL=0,CPHA=1,SCK空闲时为低电平,在SCK第二个边沿时数据有效,即SCK下降沿有效。

SPI协议简单介绍
SPI协议简单介绍

3.3 Mode2

Mode2时,CPOL=1,CPHA=0,SCK空闲时为高电平,在SCK第一个边沿时数据有效,即SCK下降沿有效。

SPI协议简单介绍
SPI协议简单介绍

3.4 Mode3

Mode3时,CPOL=1,CPHA=1,SCK空闲状态为高电平,主机数据在第二个边沿时有效,即每个上升沿被从机采样,数据输出同理。

SPI协议简单介绍
SPI协议简单介绍

四、SPI基本时序

SS为低电平时,表示对应的从机设备被使能,在每个SCK周期可以传输1Bit数据,采样时刻取决于器件支持的SPI mode,根据不同SPI器件的控制方法,在进行正式的数据读写操作前,一般需要先写入控制字,然后是寄存器地址和数据。

如下是FM25V05铁电存储器采用SPI模式0的写时序,SS(CS)被拉低,主机数据在每个上升沿被从机采样,Opcode是控制字,控制字采样结束后开始采样数据。

SPI协议简单介绍
SPI协议简单介绍

如下是FM25V05铁电存储器采用SPI模式0的读时序:

SPI协议简单介绍
SPI协议简单介绍

需要注意的是在SS下降沿和SCLK第一个边沿,或SS上升沿和SCLK最后一个边沿之间要留有一定的延迟时间,一般是0.5个SCLK周期。

参考:

【1】关于SPI协议,看这一篇文章就够了!-面包板社区

【2】总线I2C和SPI,工程师喜欢用哪一个?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/181639.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导言
  • 一、SPI协议
  • 二、 SPI协议通信
  • 三、SPI操作模式
    • 3.1 Mode0
      • 3.2 Mode1
        • 3.3 Mode2
          • 3.4 Mode3
          • 四、SPI基本时序
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档