SPI简介

SPI全称是Serial Perripheral Interface,也就是串行外围设备接口。SPI是Motorola公司推出的一种同步串行接口技术,是一种高速,全双工的同步通信总线。SPI时钟频率相比IIC要高很多,最高可以工作在上百MHZ。
SPI以主从方式工作,通常是有一个主设备和一个或多个从设备,一般SPI需要4根线,但是也可以使用三根线(单向传输),这四根线如下:
1,CS/SS,Slave Select/Chip Select,这个是片选信号线,用于选择需要进行通信的从设备。IIC主机是通过发送从机设备地址来选择需要进行通信的从机设备的,而SPI主机不需要发送从机设备地址,直接将相应的从机设备片选信号拉低即可。
2,SCK,Serial Clock,串行时钟,和IIC的SCL一样,为SPI通信提供时钟。
3,MOSI/SDO,Master Out Slave In/Serial Data Output,简称主出从入信号线,这根数据线只能用于主机向从机发送数据,也就是主机输出,从机输入。
4,MISO/SDI,Master In Slave Out/Serial Data Input,简称主入从出信号线,这根数据线只能用户从机向主机发送数据,也就是主机输入,从机输出。

SPI通信都是由主机发起的,主机需要提供通信的时钟信号。主机通过SPI线连接多个从设备的结构如下图:
在这里插入图片描述

看一下SPI的内部简明图,如下:
在这里插入图片描述从图上可以看出,主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输。寄存器MOSI信号线将字节传给从机,从机也将自己的移位寄存器中的内容通过MISO信号线返回给主机。这样,两个移位寄存器中的内容就被交换。外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需要忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。

一般CPU/MPU的SPI接口有以下特点:
·可以同时发出和接收串行数据;
·可以当作主机或从机工作;
·提供频率可编程时钟;
·发送结束中断标志;
·写冲突保护;
·总线竞争保护等。

SPI有四种工作模式,通过串行时钟极性(CPOL)和相位(CPHA)的搭配来得到四种工作模式:
1,CPOL=0,串行时钟空闲状态为低电平。
2,CPOL=1,串行时钟空闲状态为高电平,此时可以通过配置时钟相位(CPHA)来选择具体的传输协议。
3,CPHA=0,串行时钟的第一个跳变沿(上升沿或下降沿)采集数据。
4,CPHA=1,串行时钟的第二个跳变沿(上升沿或下降沿)采集数据。

这四种工作模式如下图:
在这里插入图片描述
和IIC一样,SPI也是有时序图的,以CPOL=0,CPHA=0这个工作模式为例,SPI进行全双工通信的时序如下图:
在这里插入图片描述
可以看出SPI的时序图很简单,不像IIC那样还要分为读时序和写时序,因为SPI是全双工的,所以读时序和写时序可以一起完成。上图中,CS片选信号拉低,选中要通信的从设备,然后通过MOSI和MISO这两根数据线进行收发数据,MOSI数据线发出了0XD2这个数据给从设备,同时从设备也通过MISO线给主设备返回了0X66这个数据。这就是SPI的时序图。

F28335是一款微控制器,具备SPI外设功能。SPI(Serial Peripheral Interface)是一种串行外设接口,用于在微控制器和外部设备之间进行通信。SPI在F28335中使用两个中断向量,分别为SPIRXINTA和SPITXINTA。在非FIFO模式下,只使用SPIRXINTA中断,因为在SPI中,收发是同步的,收到一个数据的同时必然发出一个数据。而在FIFO模式下,可以同时使用两个中断。\[2\] 如果F28335的SPIA模块不够用,可以通过以下方法进行扩展: 1. 使用一主机多从机的方式,将DSP28335与多个SPI外设模块进行通信。 2. 使用普通GPIO口模拟SPI接口的时序。在上升沿时改变输出引脚的状态以模拟数据发送,在下降沿时读取输入引脚的电平状态以模拟数据输入。不过,使用GPIO口模拟SPI接口的速度会比较慢。\[3\] 需要注意的是,以上方法只是扩展SPI功能的一种思路,具体的实现方式还需要根据具体的应用场景和硬件条件进行选择和设计。 #### 引用[.reference_title] - *1* *2* [F28335第十一篇——串行外设接口(SPI)](https://blog.csdn.net/qq_17525633/article/details/103145686)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [DSP28335-SPI配置简介与应用—Demo1(无FIFO收发)和Demo2(中断收发)](https://blog.csdn.net/weixin_46943050/article/details/126335542)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值