我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1005|回复: 4

[业界/制造] SPI接口详细介绍

[复制链接]

该用户从未签到

39

主题

35

回帖

0

积分

二级逆天

积分
0

终身成就奖

发表于 2020-9-25 10:21:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1. 概述
SPI = Serial Peripheral Interface,是串行外围设备接口,是一种高速,全双工,同步的通信总线。常规只占用四根线,节约了芯片管脚,PCB的布局省空间。现在越来越多的芯片集成了这种通信协议,常见的有EEPROM、FLASH、AD转换器等。
    [li]优点:[/li]
支持全双工,push-pull的驱动性能相比open-drain信号完整性更好
支持高速(100MHz以上);
协议支持字长不限于8bits,可根据应用特点灵活选择消息字长;
硬件连接简单;
    [li]缺点:[/li]
相比IIC多两根线;
没有寻址机制,只能靠片选选择不同设备;
没有从设备接受ACK,主设备对于发送成功与否不得而知;
典型应用只支持单主控;
相比RS232 RS485和CAN总线,SPI传输距离短;

2. 硬件结构
SPI总线定义两个及以上设备间的数据通信,提供时钟的设备为主设备Master,接收时钟的设备为从设备Slave;
    [li]信号定义如下:[/li]
SCK : Serial Clock 串行时钟
MOSI : Master Output, Slave Input 主发从收信号
MISO : Master Input, Slave Output 主收从发信号
SS/CS : Slave Select 片选信号
    [li]电路连接如下:[/li]
单个主设备和单个从设备:

                               
登录/注册后可看大图

单个主设备和多个从设备,通过多个片选信号或者菊花链方式实现:

                               
登录/注册后可看大图

3. 寄存器类型
Motorola定义的SPI寄存器包括:
SPI Control Register 1 (SPICR1)    控制寄存器1
SPI Control Register 2 (SPICR2)    控制寄存器2
SPI Baud Rate Register (SPIBR)    波特率寄存器
SPI Status Register (SPISR)            状态寄存器  (只读   其余均可读可写)
SPI Data Register (SPIDR)              数据寄存器
通过往寄存器中写入不同的值,设置SPI模块的不同属性。

4. SPI传输模式
通过设置控制寄存器SPICR1中的CPOLCPHA位,将SPI可以分成四种传输模式。
CPOL,即Clock Polarity,决定时钟空闲时的电平为高或低。对于SPI数据传输格式没有显著影响。
1 = 时钟低电平时有效,空闲时为高
0 = 时钟高电平时有效,空闲时为低
CPHA,即Clock Phase,定义SPI数据传输的两种基本模式。
1 = 数据采样发生在时钟(SCK)偶数(2,4,6,...,16)边沿(包括上下边沿)
0 = 数据采样发生在时钟(SCK)奇数(1,3,5,...,15)边沿(包括上下边沿)

四种模式如下图所示:
先看第一列两张图(CPHA = 0),采样发生在第一个时钟跳变沿,即数据采样发生在SCK奇数边沿;再看第二列(CPHA =1),采样发生在第二个时钟跳变沿,即数据采样发生在SCK偶数边沿
第一行两张图,第二行两张图(CPOL = 1),SCK空闲状态为高电平。

                               
登录/注册后可看大图

主从设备进行SPI通讯时,要确保它们的传输模式设置相同。
其中mode0mode3最为常见,SPI接口的flash中均会有标注。
5. 读写操作
    [li]标准SPI读写为例[/li]

                               
登录/注册后可看大图

片选---读指令---地址---数据读出


                               
登录/注册后可看大图

片选---写指令---地址---数据写入

    [li]Dual I/O Fast Read Sequence Diagram  双路IO[/li]

                               
登录/注册后可看大图

    [li]Quad I/O Fast Read Sequence Diagram  四路IO[/li]

                               
登录/注册后可看大图

与IIC一样,是一种最常见的板内芯片间的串行接口。
回复

使用道具 举报

  • TA的每日心情
    开心
    2024-9-7 09:00
  • 签到天数: 2 天

    [LV.1]初来乍到

    0

    主题

    4981

    回帖

    3456

    积分

    二级逆天

    积分
    3456

    终身成就奖社区居民优秀斑竹奖

    QQ
    发表于 2020-9-25 18:40:32 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-5-27 18:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    600

    回帖

    1057

    积分

    二级逆天

    积分
    1057

    终身成就奖

    发表于 2020-9-26 08:07:14 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    6218

    回帖

    8731

    积分

    二级逆天

    积分
    8731

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2020-9-27 08:13:43 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-11-7 10:22
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    44

    主题

    5762

    回帖

    1万

    积分

    三级逆天

    积分
    10059

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2020-9-27 08:28:31 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    每日签到,有金币领取。


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    ( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表