SPI与IIC通信协议比对篇

SPI与IIC通信协议比对篇目录一、SPI与IIC通信协议比对:二、SPI通信协议:(1)引脚简介(2)起始信号:标号①;停止信号:标号⑥(3)数据的有效性:②③④⑤(4)CPOL/CPHA及通讯模式三、IIC通信协议:(1)起始条件、停止条件(2)数据的有效性(3)主机写数据到从机(4)应答信号(ACK)与非应答信号(NACK)(5)字节格式(6)…

大家好,又见面了,我是你们的朋友全栈君。

目录

一、SPI 与 IIC 通信协议比对:

二、SPI 通信协议:

(1)引脚简介

(2)起始信号:标号 ①;停止信号:标号 ⑥ 

(3)数据的有效性:② ③ ④ ⑤

(4)CPOL/CPHA 及通讯模式

三、IIC 通信协议:

(1)起始条件、停止条件

(2)数据的有效性

(3)主机写数据到从机

(4)应答信号(ACK)与非应答信号(NACK)

(5)字节格式

(6)发送从机地址(SLAVE ADDRESS)的格式

(7)主机由从机中读数据

(8)通讯复合格式


一、SPI 与 IIC 通信协议比对:

SPI与IIC通信协议比对篇

二、SPI 通信协议:

SPI与IIC通信协议比对篇(图来自野火论坛,如侵即删)

(1)引脚简介

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

(2)起始信号:标号 ①;停止信号:标号 ⑥ 

标号①处, NSS 信号线,是 SPI 通讯的起始信号
标号⑥处, NSS 信号线,是 SPI 通讯的停止信号,表示本次通讯结束,从机的选中状态被取消。

(3)数据的有效性:② ③ ④ ⑤

  • SPI 使用 MOSI MISO 信号线来传输数据,使用 SCK 信号线进行数据同步。 MOSI及 MISO 数据线在 SCK 的每个时钟周期传输一位数据,且数据输入输出是同时进行的。数据传输时, MSB 先行或 LSB 先行并没有作硬性规定,但要保证两个 SPI 通讯设备之间使用同样的协定,一般都会采用图中的 MSB 先行模式。
  • 观察图中的② ③ ④ ⑤标号处, MOSI 及 MISO 的数据在 SCK 的上升沿期间变化输出,在 SCK 的下降沿时被采样
  • SPI 每次数据传输可以 8 16 位为单位,每次传输的单位数不受限制。

(4)CPOL/CPHA 及通讯模式

       上图中的时序只是 SPI 中的其中一种通讯模式,SPI 一共有四种通讯模式,它们的主要区别是总线空闲时 SCK 的时钟状态以及数据采样时刻主机与从机需要工作在相同的模式下才可以正常通讯,实际中采用较多的是“模式 0”与“模式 3”。

SPI与IIC通信协议比对篇

  • CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时
  • CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时
  • CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿
  • CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿
     

三、IIC 通信协议:

(1)起始条件、停止条件

SCL 线是电平时 SDA 线从电平向电平切换表示起始条件。

SCL 线是电平时 SDA 线从电平向电平切换表示停止条件。

SPI与IIC通信协议比对篇

(2)数据的有效性

SDA 线上的数据必须在时钟SCL线的高电平周期保持稳定 ;数据线的高或低电平状态只有在 SCL 线的时钟信号是低电平才能改变
SPI与IIC通信协议比对篇

(3)主机写数据到从机

SPI与IIC通信协议比对篇

  • S:起始条件
  • SLAVE ADDRESS:从机地址(从机地址可以是 7 位或 10 位)。
  • R/ ̄W:W代表写,R代表读,因为W上面有上划线,所以该位位低电平(即0)时,为写操作。
  • A从机发来应答(ACK)信号(有了应答信号才能接着进行下一步)。
  • DATA:要发送的数据(数据包的大小为 8 位)。
  • A/  ̄A从机发来应答(ACK)或非应答(NACK)信号(有了应答信号才能接着进行下一步)。
  • P:停止条件

(4)应答信号(ACK)与非应答信号(NACK)

  • 当设备(无论主从机)接收到 I2C 传输的一个字节数据或地址后,若希望对方继续发送数据,则需要向对方发送“应答(ACK)”信号,发送方会继续发送下一个数据;
  • 若接收端希望结束数据传输,则向对方发送“非应答(NACK)”信号,发送方接收到该信号后会产生一个停止信号,结束信号传输。

 应答信号    :主机发送完一个8位数据后,会等待从机的回答一个ACK信号就是SDA将会拉低

 非应答信号:主机发送完一个8位数据后,会等待从机的回答一个NACK信号就是SDA将会拉高

SPI与IIC通信协议比对篇

(5)字节格式

发送到 SDA 线上的每个字节必须为 8 位,每次传输可以发送的字节数量不受限制,每个字节后必须跟一个响应位

(6)发送从机地址(SLAVE ADDRESS)的格式

SPI与IIC通信协议比对篇

从机地址(从机地址可以是 7 位或 10 位)一般是7位,再加上一位读/写位。具体见下面。

(7)主机由从机中读数据

SPI与IIC通信协议比对篇

  • S:起始条件
  • SLAVE ADDRESS:从机地址(从机地址可以是 7 位或 10 位)。
  • R/ ̄W:W代表写,R代表读,因为W上面有上划线,所以该位位低电平(即0)时,为写操作。
  • A主机发送应答(ACK)信号(有了应答信号才能接着进行下一步)。
  • DATA:要接收的数据(数据包的大小为 8 位)。
  • A/  ̄A主机发送应答(ACK)或非应答(NACK)信号(有了应答信号才能接着进行下一步)。
  • P:停止条件

(8)通讯复合格式

SPI与IIC通信协议比对篇

  • S:起始条件
  • SR:重复起始信号
  • SLAVE ADDRESS:从机地址(从机地址可以是 7 位或 10 位)。
  • R/ ̄W:W代表写,R代表读,因为W上面有上划线,所以该位位低电平(即0)时,为写操作。
  • A:应答(ACK)信号(有了应答信号才能接着进行下一步)。
  • DATA:要传输的数据(数据包的大小为 8 位)。
  • A/  ̄A:应答(ACK)或非应答(NACK)信号(有了应答信号才能接着进行下一步)。
  • P:停止条件

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134099.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • msfconsole安装命令_msfconsole实战

    msfconsole安装命令_msfconsole实战使用curlhttps://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb>msfinstall&&\chmod755msfinstall&&\./msfinstall安

    2025年9月23日
    5
  • ForkJoin使用「建议收藏」

    ForkJoin使用「建议收藏」Fork/Join框架是Java7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。Fork/Join框架要完成两件事情:  1.任务分割:首先Fork/Join框架需要把大的任务分割成足够小的子任务,如果子任务比较大的话还要对子任务进行继续分割  2.执行任务并合并结果:分割的子任务分别放到双端队列里,然后几个启动线程分别从双端队…

    2022年9月20日
    3
  • python3获取cookie(python默认用什么浏览器爬取)

    http://blog.csdn.net/pipisorry/article/details/47980653爬虫爬网站不免遇到需要登录的问题.登录的时候可能还会碰到需要填验证码的问题,有的验证码甚至是拖动拼图来完成的.虽然现在这些都有开源解决方案,但是假设现在主要的精力想要放在如何解析html,或者验证抓取算法上,而不是通过登录验证上,那么开源解决方案并不是最好的解决方案.更好

    2022年4月16日
    171
  • 安全日志审计系统服务器,日志审计服务器「建议收藏」

    安全日志审计系统服务器,日志审计服务器「建议收藏」日志审计服务器内容精选换一换本地使用远程桌面连接登录Windowsserver2012云服务器,报错:122.112…,服务器频繁掉线,Windows登录进程意外中断。系统资源不足或不可用。服务启动失败。通过VNC方式登录云服务器。单击打开服务管理,选择“管理工具>事件查看器>Windows日志>系统>筛选当前日志”。事件查看器在“事件级别”负载均…

    2022年6月4日
    105
  • spidermonkeys_嵌入式开发网站

    spidermonkeys_嵌入式开发网站
    利用SpiderMonkey进行嵌入式开发——学习总结
    关键词:SpiderMonkey                                          利用SpiderMonkey进行嵌入式开发——学习总结许峰2007/07/30最近在学习javascript引擎SpiderMonkey,学了一个星期了,终于有点眉目,现将学习经验记录下来,已被后用。
    一下将逐步记录我学习的过程。1、下载源文件以及编译
    在 http://ftp.mozilla

    2022年10月16日
    3
  • windows 批量杀掉进程_win7杀死进程

    windows 批量杀掉进程_win7杀死进程有时候由于病毒或其他原因,启动了一系列的进程,并且有时杀了这个,又多了那个。使用命令taskkill可将这些进程一下子全部杀光:C:\Users\NR>taskkill/F/imfrontpg.exe成功:已终止进程”FRONTPG.EXE”,其PID为3732。成功:已终止进程”FRONTPG.EXE”,其PID为24544。成功:已终止进程”FRO

    2025年12月10日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号