历史上的今天
返回首页

历史上的今天

今天是:2025年06月21日(星期六)

2021年06月21日 | 单片机学习笔记之--SPI通信基础

2021-06-21 来源:eefocus

  SPI协议是由摩托罗拉公司提出的通讯协议,中文名即为串行外设接口。这是一种全双工的高速通讯总线,可支持同时输入输出。


  通讯引脚

  SPI使用3条通讯总线和1条片选线。

  MOSI:Master Output Slave Input,顾名思义,即主设备输出/从设备输入。数据从主机输出到从机,主机发送数据。

  MISO:Master Iutput Slave Onput,主设备输入/从设备输出,数据由从机输出到主机,主机接收数据。

  SCK:即时钟信号线,用于通讯同步。该信号由主机产生,其支持的最高通讯速率为fpclk/2,即所挂载总线速率的一半。如SPI2挂载在APB1总线上,则其最高速率为36MHz / 2 = 18MHz。类似木桶效应,两个设备之间通讯时,通讯速率受限于较低速的设备。

  NSS:即片选信号线,用于选择通讯的从设备,也可用CS表示。每个从设备都有一条独立的NSS信号线,主机通过将某个设备的NSS线置低电平来选择与之通讯的从设备。所以SPI通讯以NSS线电平置低为起始信号,以NSS线电平被拉高为停止信号。


  起始、停止信号

  

 

  图16-1

  如上图,编号1和6即为起始和停止信号的发生区域。NSS电平由高变低,则产生起始信号;NSS电平由低变高,则产生停止信号。从机检测到自己的NSS线电平被置低,则开始与主机进行通讯;反之,检测到NSS电平被拉高,则停止通讯。


  数据有效性

  MOSI和MISO线在SCK的每个时钟周期传输一位数据,开发者可以自行设置MSB或LSB先行,不过需要保证两个通讯设备都使用同样的协定。从图16-1看到,在SCK的上升沿和下降沿时进行触发和采样。


  SPI有四种通讯模式,在SCK上升沿触发,下降沿采样只是其中一种模式。四种模式的主要区别便是总线空闲时SCK的状态及数据采样时刻。这涉及到“时钟极性CPOL”和“时钟相位CPHA”,由CPOL和CPHA的组合而产生了四种的通讯模式。


  CPOL、CPHA

  CPOL:即在没有数据传输时,时钟的空闲状态的电平。

  CPHA:即数据的采样时刻。

  

 

  图16-2

  SPI_CR1寄存器的CPOL和CPHA位组合配置成四种时序关系,即四种通讯模式。


  如图16-2所示,如果CPOL被清0,则SCK在空闲状态保持低电平,反之被置1则保持高电平;如果CPHA位被清0,则在SCK每个时钟周期的第1个边沿(奇数边沿)进行数据位采样,反之被置1则在SCK每个时钟周期的第2个边沿(偶数边沿)采样。


  如下表所示的四种SPI通讯模式。

  

 

  有一点需要注意的是,主机和从机需要工作在相同的模式下才能正常通讯。


推荐阅读

史海拾趣

深圳杜因特(DOINGTER)公司的发展小趣事

在竞争激烈的电子行业中,杜因特始终将创新作为公司发展的核心动力。公司不断投入大量资源进行新产品的研发和技术创新,特别是在Super-Junction MOSFET和Super-Trench MOSFET等高端产品领域取得了显著成果。这些创新产品不仅满足了市场对高品质MOSFET的日益增长需求,还进一步巩固了杜因特在电子行业的技术领先地位。

ENSIGN公司的发展小趣事

ENSIGN不仅局限于照明领域,还积极向能源服务领域拓展。近年来,ENSIGN通过技术创新和战略合作,为客户提供定制化的电源解决方案。例如,在2009年,ENSIGN建成了新的工厂,并与多家本地供应、装配和测试组织建立了合作关系,以提供更高质量、更可靠的产品和服务。

DCX-CHOL Enterprises公司的发展小趣事

为了进一步拓展业务领域和提升竞争力,DCX-CHOL Enterprises开始积极探索跨界合作的可能性。公司与多家知名企业和研究机构建立了战略合作关系,共同开展技术研发和产品创新。通过跨界合作,DCX-CHOL Enterprises不仅获得了更多的技术支持和市场资源,还拓宽了视野和思路,为公司未来的发展注入了新的活力。同时,公司还积极参与行业协会和组织的活动,加强与其他企业的交流与合作,共同推动电子行业的发展和进步。

台湾诚阳(BC)公司的发展小趣事

随着国内市场的逐渐饱和,台湾诚阳(BC)公司开始积极寻求海外市场的发展机会。公司通过参加国际展会、与海外企业建立合作关系等方式,不断拓展国际市场。同时,公司还针对不同地区的市场需求,推出定制化的产品和服务,进一步提升了其在国际市场中的竞争力。

Gennum ( Semtech )公司的发展小趣事
确保所有元件都已正确安装,没有损坏或接错。
FILTRONETICS Inc公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,FILTRONETICS深知技术创新的重要性。公司加大了对研发的投入力度,成立了专门的研发部门和技术中心,致力于新技术、新材料和新工艺的研发和应用。同时,公司还积极关注环保和可持续发展问题,致力于生产绿色、环保的电子产品。通过不断的技术创新和可持续发展实践,FILTRONETICS不仅保持了技术领先地位,也为社会的可持续发展做出了贡献。

问答坊 | AI 解惑

关于proteus的教程和flash

今天好几天朋友问我proteus怎么用。我今天整理了一些proteus的一些教程, 资料发给大家,大家一同学习!一同进步吧!…

查看全部问答>

ARM 开发软件及实用工具介绍

ARM 开发软件及实用工具介绍一、编译器介绍 1、ADS1.2 ADS是ARM公司的集成开发环境软件,他的功能非常强大。他的前身是SDT,SDT是ARM公司几年前的开发环境软件,目前SDT早已经不再升级。ADS包括了四个模块分别是:SIMULATOR;C 编译器;实时调试器 ...…

查看全部问答>

读《把时间当作朋友》(三):上司真的很愚蠢吗

原文: 上司真的很愚蠢吗 ? 工作中经常遇到一些人抱怨老板或者上司愚蠢。可是,上司真的很愚蠢么?不排 除确实在有些情况下,上司很愚蠢——没有人十全十美。然而,更可能的解释是 这样的: 大多数情况下,一个人如果不做事的话,是不会暴 ...…

查看全部问答>

LED计价称典型应用电路

LED计价称典型应用电路 好东东,用芯海科技CSU1221做的,手快有手慢无,只放一周!   …

查看全部问答>

Alignment Error异常

异常位置:kernel.dll的CleanPagesInTheBackground函数,用KCall调用GetADirtyPage,在GetADirtyPage内部发生异常。 不用kitl时会发生异常,于是想用kitl仔细调试一下,结果加上kitl之后没有异常发生。很奇怪。 请问这是怎么回事呢?谢谢!…

查看全部问答>

有些指令长度超过cpu字长,cpu怎么来处理这些指令呢?

有些指令长度超过cpu字长,cpu怎么来处理这些指令呢?…

查看全部问答>

万利电子正式发布STLINK2的IAREWARMV5.x版本驱动程序

下载地址:http://www.manley.com.cn/web/Service_down.asp?down_lei=驱动程序和技术资料&lei2=资料下载&lei3=驱动程序和技术资料…

查看全部问答>

msp430f449 IO能不能耐5V电压?

msp430f449 IO能不能耐5V电压?看了好几个资料都没有说明呢?…

查看全部问答>

片外SRAM芯片IS61LV25616研究

IS61LV25616是ISSI公司的SRAM芯片,它的存储容量为16*256K,并具有高低选择信号. 特点如下: 1.高速访问时间8,10,12,15ns 2.CMOS低功郝操作 3.TTL兼容的接口电平 4.单电源3.3V供电 5.无时钟无刷新需求 6.三态输出 7.数据控制分为高,低字节 内 ...…

查看全部问答>

电子设计竞赛题目----飞行器控制思路与准备

本帖最后由 paulhyde 于 2014-9-15 03:21 编辑 1、先买一个四轴飞行器,尽可能大;测试它可以带多重的物体飞行;飞行时间多久; 2、解剖四轴驱动部分(电压调速还是PWM调速);确定驱动信号; 3、拆除飞行器上无用的部分,加装自己的控制板( ...…

查看全部问答>