【CANN】SPI通信、I2C通信

news2024/10/7 16:24:22

文章目录

  • 一、SPI通信
    • 1.SPI通信
    • 2.SPI通信原理
    • 3.CPOL时钟极性、CPHA时钟相位
  • 二、I2C通信
    • 1、I2C通信
    • 2、I2C通信原理
      • 2.1、I2C的起始和结束条件
      • 2.2、数据传送格式
  • 总结


一、SPI通信

1.SPI通信

SPI是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在== EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
SPI是一种
高速==的,全双工同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如MSP430单片机系列处理器。

SPI优点

  • 1):支持全双工通信

  • 2):通信简单

  • 3):数据传输速率快

SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:

  • (1)MOSI- SPI总线主机输出/从机输入(SPI Bus Master Output/Slave lnput)。
  • (2)MISO-SPI总线主机输入/从机输出( SPI Bus Master Input/Slave Output)。
  • (3)SCLK一时钟信号,由主设备产生。
  • (4)CS-从设备使能信号,由主设备控制Chip select) ,有的IC此pin脚叫SS。

2.SPI通信原理

SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(用于单向传输时,也就是半双工方式)。

注:有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI。

3.CPOL时钟极性、CPHA时钟相位

CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。

CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。

CPOL=1,CPHA=O:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,也就是SCLK由高电平到低电平的跳变。所以数据采集是在下降沿,数据发送是在上升沿。

CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。

在这里插入图片描述

在这里插入图片描述

二、I2C通信

1、I2C通信

I2C总线是Philips公司在八十年代初推出的一种串行、半双工的总线,主要用于近距离、低速的芯片之间的通信;I2C总线有两根双向的信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;I2C总线硬件结构简单,简化了PCB布线,降低了系统成本,提高了系统可靠性,因此在各个领域得到了广泛应用。
在这里插入图片描述

在这里插入图片描述

I2C总线可以通过外部连线进行在线检测,便于系统故障诊断和调试,故障可以立即被寻址,软件也有利于标准化和模块化,缩短开发时间。

I2C总线上可挂接的设备数量受总线的最大电容400pF限制。

串行的8位双向数据传输速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s。

总线具有极低的电流消耗,抗噪声干扰能力强,增加总线驱动器可以使总线电容扩大10倍,传输距离达到15m;兼容不同电压等级的器件,工作温度范围宽。

2、I2C通信原理

2.1、I2C的起始和结束条件

  • 起始条件:在SCL线是高电平时SDA线从高电平向低电平切换这个情况表示起始条件。
  • 停止条件:当SCL是高电平时SDA线由低电平向高电平切换表示停止条件。

如果连接到总线的器件合并了必要的接口硬件,那么用它们检测起始和停止条件十分简便﹔但是,没有这种接口的微控制器在每个时钟周期至少要采样SDA线两次来判别有没有发生电平切换。

在这里插入图片描述

2.2、数据传送格式

  • (1)字节传送与应答:每一个字节必须保证是8位长度。数据传送时,送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。
    在这里插入图片描述
  • (2)数据帧格式:12C总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据信号。在起始信号后必须传送一个从机的地址(7位),第8位是数据的传送方向位(R/,用“0”表示主制发送数据(T), “1”表示主机接收数据(R)。每次数据传送总是由主机产生的终止信号结束。但是,若主机希望继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信号对另一从机进行寻址。

在总线的一次数据传送过程中,可以有以下几种组合方式:

  • 1.主机向从机发送数据,数据传送方向在整个传送过程中不变
    在这里插入图片描述

  • 2.主机在第一个字节后,立即由从机读数据
    在这里插入图片描述

  • 3.在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向位正好反相。
    在这里插入图片描述


总结

以上就是SPI通信、I2C通信的相关知识点,希望对你有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1204325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

@Async注解的坑

问题描述 一个方法调用另一个方法(该方法使用Async注解)在同一个类文件中,该注解会失效! 问题复现 TestAsyncController 类 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Async; im…

el-table解决数据过少小于高度有留白的问题

问题:给el-table设置个高度,高度为500px,之后就添加如下4条数据,那么底部就没数据,直接就空白了,本文章就是为了解决这个问题,如果底部留白那么就添加几条空数据就行了.如果数据已达到高度了那么就不会留白了 1.效果 这个空列可以根据高度来决定添加几个空格子去铺满列表&…

基于头脑风暴算法优化概率神经网络PNN的分类预测 - 附代码

基于头脑风暴算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于头脑风暴算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于头脑风暴优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

数字三角形模型 笔记

方格取数 走两次的最大值 f[k][i1][i2]来表示 k i1 j1 i2 j2; 每一个状态可由四种状态转换来,分别为 第一条路走下,第二条路走下 第一条路走下,第二条路走右 第一条路走右,第二条路走下 第一条路走右,第二条…

一文了解多线程实现交替执行

本文已收录于专栏 《Java》 目录 背景介绍实现方式总结提升 背景介绍 有一个需求是要求多个线程去执行任务,需要每个线程都执行一次之后再继续执行,也就是说每个线程交替去执行任务。举个例子来说,有两个线程,一个输出字母&#x…

全球步入VUCA时代,FinOps如何成为云计算下一个关键性机会?

科技云报道原创。 俗话说,省下来的就是利润。在全球都处于VUCA的时代,更是如此。 近年来,随着云计算的广泛应用,云成本管理成为企业关注的重点。FinOps(云成本优化)作为一种新兴的云成本管理方式,吸引了行…

基于蝴蝶算法优化概率神经网络PNN的分类预测 - 附代码

基于蝴蝶算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于蝴蝶算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于蝴蝶优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络的光滑…

成都爱尔周进院长解析高度近视可能引发哪些疾病

当代各类人群面对电脑、手机屏幕的时长显著增加,导致用眼过度、疲劳,视觉质量下降,近视人群越来越多。而当父母有一方为高度近视甚至可能将近视遗传给孩子。 目前,全球近视人数约25亿,中国近视人群人数多达6亿。据预测…

Unity--互动组件(Button)

1.组件的可交互 2.组件的过渡状态 3.组件的导航 4.组件的Event Button “”组件的可交互:“” Interactable: 该组件是否可点击(设置为false时,将禁用交互,并且过渡状态将设置为禁用状态);…

基于RK3568的跑步机方案

I 方案简介 一、跑步机的来历 跑步机是家庭及健身房常备的健身器材,而且是当今家庭健身器材中最简单的一种,是家庭健身器的最佳选择。1965年北欧芬兰唐特力诞生了全球第一台家用的跑步机,设计师根据传速带的原理改变而成。 二、…

对红黑树的理解与实现(C++实现)

认识红黑树 在看到此篇文章之前最好还是先了解一下左右旋也就是AVL树的插入数据该如何处理。AVL树的插入详解-CSDN博客 红黑树,也属于是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是红色(red)…

小程序中如何设置多门店/多人/多商品价格库存等复杂场景设置

有些商家希望打造小程序平台,在这个平台上有多个商家入驻,他们分别售卖自己的商品。而有些商家有多个连锁店,连锁店的商品都是一样的,但不同的连锁店有不同的库存和价格。这些业务在采云小程序中是怎么支持的呢?下面具…

office365 outlook邮件无法删除

是否遇到过,office365邮件存储满了,删除邮件无法删除,即便用web方式登录到outlook,删除邮件当时是成功的,但一会儿就回滚回来了,已删除的邮件,你想清空,最后清理后还是回到原样。 请…

curl(八)时间和环境变量以及配置

一 时间 ① --connect-timeout 连接超时时间 ② -m | --max-time 数据最大传输时间 -m&#xff1a; 限制curl 完成时间(overall time limit)-m,--max-time <seconds> 整个交互完成的超时时间场景&#xff1a; 通过设置-m参数,可以避免请求时间过长而导致的超时错误…

纯CSS实现魔法渐变边框卡片

如图所示&#xff0c;这是一个很炫酷的卡片效果&#xff0c;关键效果在于卡片的边框呈渐变色变化着&#xff0c;在网页中有这样一个卡片相信可以极大的增强用户体验交互。本次文章将解读如何使用纯CSS实现这个炫酷的卡片效果。 基于上面的动图可以分析出以下是本次实现的主要几…

如何计算掩膜图中多个封闭图形的面积

import cv2def calMaskArea(image,idx):mask cv2.inRange(image, idx, idx)contours, hierarchy cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)for contour in contours:area cv2.contourArea(contour)print("图形的面积为", area) image是…

中国银行模拟器app,用java设计框架,图片网上找的,提供代码,仅供娱乐

回执单生成器的Java程序需要涉及到一些基本的Java编程技能&#xff0c;包括创建类、处理用户输入和格式化输出。下面是一个简单的示例代码&#xff0c;用于生成一个简易的回执单。这个程序将接收用户的输入&#xff0c;然后生成一个格式化的回执单。 请注意&#xff0c;这个示…

查看包是由哪个依赖引入的

问题&#xff1a;在Maven项目中&#xff0c;如何查看某个包是由pom.xml文件的哪个依赖引入的&#xff1f; 示例&#xff1a; mvn dependency:tree -Dverbose -Dincludesjakarta.validation:jakarta.validation-api或者&#xff1a; mvn dependency:tree -Dincludesvelocity:…

【python自动化】Playwright基础教程(十)元素拖拽元素坐标获取网页源码元素内文本

【python自动化】Playwright基础教程&#xff08;十&#xff09;元素拖拽&元素坐标&获取网页源码&元素内文本 本文目录 文章目录 【python自动化】Playwright基础教程&#xff08;十&#xff09;元素拖拽&元素坐标&获取网页源码&元素内文本playwright…

链表题(3)

链表题 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 本篇内容继续给大家带来链表的一些练习题 链表分割 知识点&#xff1a; 编程基础 链表…