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

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

3天内不再提示

数字电压表设计教程之SPI协议详解

友晶FPGA ? 来源:友晶FPGA ? 2025-09-06 10:08 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1前言

SPI(Serial Peripheral Interface)是串行外设接口的缩写,SPI是一种高速、主从模式、全双工、同步的串行通信总线,由摩托罗拉公司(Motorola)于 20 世纪 80 年代提出,主要用于短距离内的芯片间通信,广泛应用于传感器、存储器、显示屏、ADC/DAC 等外设与微控制器MCU)的连接。

2SPI协议的基本特点

串行通信:一次发送1bit数据。

同步通信:通过时钟信号(SCLK)同步数据传输,发送方和接收方基于同一时钟工作。

全双工通信:数据可以同时双向传输(主设备发送的同时接收,从设备接收的同时发送)。

单主多从架构:通常由一个主设备(如 MCU)控制多个从设备(如传感器),从设备不能主动发起通信。

无地址机制:通过片选信号(CS/NSS)选择目标从设备,而非通过地址识别。

灵活的数据长度:数据传输位数可自定义(常见 8 位,也支持 16 位、32 位等)。

高速传输:速率通常可达几 Mbps 到几十 Mbps,具体取决于器件支持的最大时钟频率。

3SPI的信号线组成

SPI从器件一般需要4根线(也有3根线的,单工,只有接收或者只有发送),分别是MISO(主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、CS(片选)。

acd215d8-86d3-11f0-a18e-92fbcf53809c.png

4SPI寻址方式

当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号(高电平或者低电平,根据从机而定)表示选中该从设备。

ace64d0a-86d3-11f0-a18e-92fbcf53809c.png

5SPI的通信过程

SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高电平表示逻辑"1",低电平表示逻辑"0";一个字节传送完成后无需应答即可开始下一个字节的传送;SPI总线采用同步方式工作,时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或者上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送。

acf4630e-86d3-11f0-a18e-92fbcf53809c.png

如果参考了上面图片还不能明白SPI传输过程,可以继续参考如下动图:

ad068890-86d3-11f0-a18e-92fbcf53809c.gif

ad1ccfe2-86d3-11f0-a18e-92fbcf53809c.gif

6SPI的极性和相位

SPI总线有四种不同的工作模式,取决于时钟的极性(CPOL,Clock Polarity)和相位(CPHA,Clock Phase)这两个因素。

CPOL表示SCLK空闲时的状态:

CPOL=0,空闲时SCLK为低电平;

CPOL=1,空闲时SCLK为高电平;

CPHA表示采样时刻:

CPHA=0,每个周期的第一个时钟沿采样;

CPHA=1,每个周期的第二个时钟沿采样;

1 CPOL=0, CPHA=0

空闲时SCLK为低电平;每个周期的第一个时钟沿采样,也就是上升沿。

ad38777e-86d3-11f0-a18e-92fbcf53809c.png

注:*MSB表示前一帧的MSB。

2 CPOL=0, CPHA=1

空闲时SCLK为低电平;每个周期的第二个时钟沿采样。

ad4a71f4-86d3-11f0-a18e-92fbcf53809c.png

注:LSB*表示下一帧的LSB。

3.3 CPOL=1, CPHA=0

空闲时SCLK为高电平;每个周期的第一个时钟沿采样。

ad59a2be-86d3-11f0-a18e-92fbcf53809c.png

注:*MSB表示前一帧的MSB。

4 CPOL=1, CPHA=1

空闲时SCLK为高电平;每个周期的第二个时钟沿采样。

ad712d58-86d3-11f0-a18e-92fbcf53809c.png

注:LSB*表示下一帧的LSB。

需要说明的是,对于一个特定的从设备来说,一般在出厂时就会将其设计为某种特定的工作模式;我们在使用该设备时就必须保证主设备的工作模式和该从设备保持一致,否则是无法进行通信的;所以一般我们需要对主设备的CPOL和CPHA进行配置。

7I2C和SPI的异同

相同点:

均采用串行、同步的方式

均采用TTL电平,传输距离和应用场景类似

均采用主从方式工作

不同点:

I2C为半双工,SPI为全双工

I2C有应答机制,SPI无应答机制

I2C通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址

I2C的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可调

I2C速度慢,引脚少,SPI速度快,引脚多

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

    关注

    1648

    文章

    22143

    浏览量

    622577
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18175

    浏览量

    373343
  • 数字电压表
    +关注

    关注

    4

    文章

    197

    浏览量

    33696
  • SPI协议
    +关注

    关注

    0

    文章

    21

    浏览量

    8662

原文标题:04-基于FPGA和LTC2308的数字电压表设计-SPI协议详解

文章出处:【微信号:友晶FPGA,微信公众号:友晶FPGA】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    简易数字电压表的设计

    简易数字电压表的设计简易数字电压表可以测量0~5CV的8路输入电压值,并在4位LED数码管上轮流显示或单路选择显示。测量最小分辨率为0.01
    发表于 12-14 17:21

    数字电压表

    这个是数字电压表的设计(源程序是汇编语言)
    发表于 01-16 17:08

    求基于DAQ及LabVIEW的虚拟数字电压表的程序框图(有详解

    求基于DAQ及LabVIEW的虚拟数字电压表的程序框图(有详解
    发表于 06-09 21:43

    数字电压表

    请问AT89C51等单片机所制做成的数字电压表与ICL7107所制做成的数字电压表相比有什么优点?
    发表于 05-22 15:32

    数字电压表仿真

    数字电压表仿真
    发表于 05-31 22:27

    怎样去设计新型数字电压表

    新型数字电压表的工作原理是什么?怎样去设计新型数字电压表
    发表于 04-28 06:46

    数字电压表的VHDL设计与实现

    数字电压表的VHDL设计与实现 介绍数字电压表的组成及工作原理,论述了基于VHDL语言和FPGA芯片的数字系统的设计思想和实现过程。  关
    发表于 10-12 19:14 ?2037次阅读
    <b class='flag-5'>数字</b><b class='flag-5'>电压表</b>的VHDL设计与实现

    数字电压表的设计

    数字电压表的设计 设计内容与要求: 1)设计数字电压表电路;要求直流电压测量范围:0V~1.999V,0V~19.99V, 0V~199
    发表于 05-24 18:10 ?5793次阅读
    <b class='flag-5'>数字</b><b class='flag-5'>电压表</b>的设计

    基于ADC0832数字电压表

    基于ADC0832数字电压表基于ADC0832数字电压表
    发表于 01-11 16:59 ?239次下载

    数字电压表

    电子专业单片机相关知识学习教材资料——数字电压表
    发表于 08-08 17:19 ?0次下载

    电压表protues仿真 基于51数字电压表仿真设计 电压表程序

    电压表protues仿真 基于51数字电压表仿真设计 电压表程序设计
    发表于 01-14 22:32 ?242次下载

    数字电压表的设计方案汇总(六款数字电压表的设计原理图详解

    本文主要介绍了数字电压表的设计方案汇总(六款数字电压表的设计原理图详解)。利用单片机AT89C51与ADC0808设计一个
    发表于 02-08 17:32 ?8.5w次阅读
    <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>)

    数字电压表的原理与特点

    数字电压表(DVM,也称为数字多用表或简称DMM)是现代电子测量领域中不可或缺的一种测量仪器。与传统的模拟电压表相比,数字
    的头像 发表于 05-21 16:54 ?3895次阅读

    数字电压表概述_数字电压表的作用

    数字电压表(Digital Voltmeter,简称DVM)是一种采用数字化测量技术,将连续的模拟量转换成不连续、离散的数字形式并加以显示的电子仪器。以下是对
    的头像 发表于 01-28 14:14 ?1429次阅读

    数字电压表的主要指标_数字电压表由什么构成

     数字电压表的主要技术指标包括以下几个方面:   一、测量范围   测量范围指数字电压表可测量的电压区间。不同的
    的头像 发表于 01-28 14:19 ?1101次阅读