0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

瑞萨RA系列FSP库开发实战指南之SPI通讯协议的物理层和协议层简介

瑞萨嵌入式小百科 来源:野火电子 2026-02-04 08:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

RA芯片的SPI分为简单SPI和普通SPI,简单SPI就是SCI模块(Serial Communications Interface)中的SPI模式,它是使用串行总线来模拟SPI,而我们本章我们所要学习的是普通的SPI,是全功能的SPI,它在RA芯片内部实际存在的一个硬件SPI控制器模块。

22.1

SPI协议简介

SPI协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在ADC、LCD等设备与MCU间,要求通讯速率较高的场合。

瑞萨RA6M5芯片中,SPI外设可用作通讯的主机及从机,数据传输可达到最大的50Mbps速率,信号允许通过SPI操作(4线方法)或时钟同步操作(3-线方法),支持事件链接功能,并具有数据校验功能。

下面我们分别对SPI协议的物理层及协议层进行讲解。

22.1.1

SPI物理层

SPI通讯设备之间的常用连接方式见下图。

36524ba6-ffed-11f0-90a1-92fbcf53809c.png

SPI通讯使用3条总线及片选线,3条总线分别为SCK、MOSI、MISO,片选线,它们的作用介绍如下:

(1)从设备选择信号线(SlaveSelect):常称为片选信号线,也称为NSS、CS,以下用NSS表示。当有多个SPI从设备与SPI主机相连时,设备的其它信号线SCK、MOSI及MISO同时并联到相同的SPI总线上,当主机要选择从设备时,把该从设备的NSS信号线设置为低电平,该从设备即被选中,即片选有效,接着主机开始与被选中的从设备进行SPI通讯。所以SPI通讯以NSS线置低电平为开始信号,以NSS线被拉高作为结束信号。

(2)SCK(Serial Clock):时钟信号线,用于通讯数据同步。它由通讯主机产生,决定了通讯的速率,不同的设备支持的最高时钟频率不一样,如RA6M5的SPI时钟频率最大为fpclkA/2,两个设备之间通讯时,通讯速率受限于低速设备。

(3)MOSI(Master Output,Slave Input):主设备输出/从设备输入引脚。主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据,即这条线上数据的方向为主机到从机。

(4)MISO(Master Input,,Slave Output):主设备输入/从设备输出引脚。主机从这条信线读入数据,从机的数据由这条信号线输出到主机,即在这条线上数据的方向为从机到主机。

22.1.2

协议层

22.1.2.1

SPI基本通讯过程

SPI通讯的通讯时序,见下图:

36b8ad24-ffed-11f0-90a1-92fbcf53809c.png

图22‑18 EEPROM数据读取时序

这是一个主机的通讯时序。NSS、SCK、MOSI信号都由主机控制产生,而MISO的信号由从机产生,主机通过该信号线读取从机的数据。MOSI与MISO的信号只在NSS为低电平的时候才有效,在SCK的每个时钟周期MOSI和MISO传输一位数据。

以上通讯流程中包含的各个信号分解如下:

22.1.2.2

通讯的起始和停止信号

在上图SPI通讯时序中的标号1处,NSS信号线由高变低,是SPI通讯的起始信号。NSS是每个从机各自独占的信号线,当从机在自己的NSS线检测到起始信号后,就知道自己被主机选中了,开始准备与主机通讯。在标号6处,NSS信号由低变高,是SPI通讯的停止信号,表示本次通讯结束,从机的选中状态被取消。

22.1.2.3

数据有效性

SPI使用MOSI及MISO信号线来传输数据,使用SCK信号线进行数据同步。MOSI及MISO数据线在SCK的每个时钟周期传输一位数据,且数据输入输出是同时进行的。数据传输时,MSB先行或LSB先行并没有作硬性规定,但要保证两个SPI通讯设备之间使用同样的协定,一般都会采用图SPI通讯时序中的MSB先行模式。

观察图中的标号处,MOSI及MISO的数据在SCK的上升沿期间变化输出,在SCK的下降沿时被采样。即在SCK的下降沿时刻,MOSI及MISO的数据有效,高电平时表示数据“1”,为低电平时表示数据“0”。在其它时刻,数据无效,MOSI及MISO为下一次表示数据做准备。

SPI每次数据传输可以8位或16位为单位,每次传输的单位数不受限制。

22.1.2.4

CPOL/CPHA及通讯模式

SPI一共有四种通讯模式,它们的主要区别是总线空闲时SCK的时钟状态以及数据采样时刻,它们由CPOL与CPHA来决定。

时钟极性CPOL是指SPI通讯设备处于空闲状态时,SCK信号线的电平信号(即SPI通讯开始前、NSS线为高电平时SCK的状态)。CPOL=0时,SCK在空闲状态时为低电平,CPOL=1时,则相反。

时钟相位CPHA是指数据的采样的时刻,当CPHA=0时,MOSI或MISO数据线上的信号将会在SCK时钟线的“奇数边沿”被采样。当CPHA=1时,数据线在SCK的“偶数边沿”采样。

见下图CPHA=0时的SPI通讯模式:

c4092626-00b6-11f1-90a1-92fbcf53809c.png

我们来分析这个CPHA=0的时序图。首先,根据SCK在空闲状态时的电平,分为两种情况。SCK信号线在空闲状态为低电平时,CPOL=0;空闲状态为高电平时,CPOL=1。

无论CPOL=0还是=1,因为我们配置的时钟相位CPHA=0,在图中可以看到,采样时刻都是在SCK的奇数边沿。注意当CPOL=0的时候,时钟的奇数边沿是上升沿,而CPOL=1的时候,时钟的奇数边沿是下降沿。所以SPI的采样时刻不是由上升/下降沿决定的。MOSI和MISO数据线的有效信号在SCK的奇数边沿保持不变,数据信号将在SCK奇数边沿时被采样,在非采样时刻,MOSI和MISO的有效信号才发生切换。

类似地,当CPHA=1时,不受CPOL的影响,数据信号在SCK的偶数边沿被采样,见下图CPHA=1时的SPI通讯模式:

c463f682-00b6-11f1-90a1-92fbcf53809c.png

由CPOL及CPHA的不同状态,SPI分成了四种模式,见下表:

SPI的四种模式

c4bba6e8-00b6-11f1-90a1-92fbcf53809c.png

SPI的四种模式

c4bba6e8-00b6-11f1-90a1-92fbcf53809c.png

主机与从机需要工作在相同的模式下才可以正常通讯,上图SPI通讯时序就是采用的模式1,而我们本次OLED的SPI通讯实验就是采用的是模式3。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 瑞萨
    +关注

    关注

    37

    文章

    22475

    浏览量

    90403
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1885

    浏览量

    100846
  • 物理层
    +关注

    关注

    1

    文章

    170

    浏览量

    35631
  • 通讯协议
    +关注

    关注

    10

    文章

    296

    浏览量

    21447

原文标题:SPI物理层及协议层——瑞萨RA系列FSP库开发实战指南(70)

文章出处:【微信号:瑞萨嵌入式小百科,微信公众号:瑞萨嵌入式小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RA系列FSP开发实战指南I2C通讯协议物理层和协议简介

    I2C通讯协议(Inter-Integrated Circuit)是由 Philips公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯
    的头像 发表于 01-21 10:10 3207次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>I2C<b class='flag-5'>通讯</b><b class='flag-5'>协议</b>的<b class='flag-5'>物理层</b><b class='flag-5'>和协议</b><b class='flag-5'>层</b><b class='flag-5'>简介</b>

    串口通讯协议简介

    ,最基本的是把它分为物理层和协议物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理
    发表于 08-12 06:30

    SPI协议及固件

    《STM32从零开始学习历程》@EnzoReventonSPI物理层相关链接:SPI协议SPI外设SP
    发表于 08-20 08:00

    浅析I2C物理层和协议

    I2C物理层的特点有哪些?I2C通讯设备之间的常用连接方式是什么?I2C协议的基本读写过程是怎样的?
    发表于 09-29 06:24

    浅析串口通讯协议物理层和协议

    什么是串口通讯?串口通讯协议物理层的结构是由哪些部分组成的?串口通讯协议
    发表于 10-22 09:30

    串口通讯协议物理层和协议看完你就懂了

    串口通讯协议物理层和协议看完你就懂了
    发表于 12-10 06:00

    IIC物理层是由哪些部分组成的

    物理层和协议物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。
    发表于 12-13 08:09

    物理层和协议两方面来了解I2C总线

    和时钟线SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速I2C总线一般可达400kbps以上。下面从物理层和协议两方面来了解I2CI2C物理层
    发表于 12-13 07:37

    STM32的IIC协议简介

    文章目录(一)IIC协议简介(二)物理层和协议简介(三)IIC
    发表于 01-05 06:13

    串口通讯协议与RS-232标准简介

    ,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通 讯方式输出调试信息。在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核和片上外设;STM32标准则是在寄存器与用户代码之间的软件
    发表于 02-15 06:03

    串口通信的物理层协议的相关资料推荐

    一.串口通信的物理层协议物理层规定了通讯系统的机械、电子特性(相当于规定了用嘴巴还是肢体交流)协议
    发表于 02-17 07:07

    串口通讯协议物理层和协议是什么样的?

    串口通讯协议物理层和协议是什么样的?
    发表于 02-18 07:30

    物理层的作用

    物理层的作用:物理层是提供数据传输的物理媒体,物理层协议是各种网络设备进行互连时必须遵守的最低层协议
    发表于 07-22 15:48 7128次阅读

    物理层及其协议

    物理层及其协议 物理层的定义
    发表于 07-22 15:50 1.2w次阅读

    《STM32从零开始学习历程》——SPI协议

    《STM32从零开始学习历程》@EnzoReventonSPI协议相关链接:SPI物理层SPI外设SP
    发表于 12-22 19:36 11次下载
    《STM32从零开始学习历程》——<b class='flag-5'>SPI</b><b class='flag-5'>协议</b><b class='flag-5'>层</b>