首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 【应用解决方案】沃虎隔离SPI解决方案

    隔离SPI主流方案通过电气隔离与差分信号传输构建起抗干扰的"防护墙".隔离SPI通过变压器或电容耦合实现电气隔离,可承受数百伏甚至千伏级的电压差。 在BMS中,电池组高压侧与低压侧MCU之间必须隔离,传统方案需4通道数字隔离器,而isoSPI仅需一个小型变压器即可完成隔离,极大降低成本。 1.拓扑结构介绍 我们SPI方案摒弃传统并行总线的臃肿线束,采用隔离SPI拓扑结构,将每块SPI从板与相邻板卡精密串联,形成从电芯模组到终端BMU的"数字神经链"。 隔离核心:Bms隔离变压器系列 作为SPI电气隔离的"心脏",沃虎提供S12、S125、S068三大系列。 防护与执行:TVS与MOS管的协同防护 TVS防护器件:在AFE输入端与SPI总线接口处部署TVS阵列,钳位电压<40V,响应时间<1ps,有效抑制电池包内继电器切换产生的浪涌与ESD冲击。

    6210编辑于 2026-01-30
  • 来自专栏云深之无迹

    低速协议系列:SPI.4(历史)

    居然都第 4 篇了(第三篇是 FPGA 串并这个,为了观看体验换了位置),先回忆一下我们的工作有哪些? 帧结构完全自定义 SPI 设备协议完全各厂商自定:8 bit,16 bit,24 bit,连续流,带 CRC,不带 CRC 所以: SPI 是“物理通道”,不是“协议层” 为什么后来没人去标准化 SPI 但是SPI 的价值就在于: “不约束” SPI 为什么没有仲裁(Arbitration)? 答案并不是“忘了设计”,而是: SPI 从结构上就不是一个需要仲裁的共享总线系统。 什么是仲裁? SPI 是“中心化控制模型” SPI 架构是: 单一控制源被动响应节点 它是: 严格的主从系统 不像 I²C: 多个可能的主动节点 SPI 中Slave 永远不能主动发起通信。 为什么 SPI 特别适合高速数据流? 因为没有地址机制,不需要帧开销,不需要 ACK 等待,没有仲裁延迟,时钟可以连续,这使得:SPI 可以做纯数据流接口。 如果 SPI 有地址,会影响什么?

    15010编辑于 2026-03-03
  • 来自专栏数字积木

    SPI总线传输的4种模式

    Copy CPOL配置SPI总线的极性 CPHA配置SPI总线的相位 极性和相位,这么专业的名词,非常难理解。我们不妨从时序图入手,了解极性和相位的效果。 SPI总线的极性 极性,会直接影响SPI总线空闲时的时钟信号是高电平还是低电平。 如下图: SPI总线的相位 一个时钟周期会有2个跳变沿。而相位,直接决定SPI总线从那个跳变沿开始采样数据。 4种模式 CPOL 和 CPHA 的不同组合,形成了SPI总线的不同模式。

    2.2K30编辑于 2021-12-13
  • 来自专栏小锋学长生活大爆炸

    STM32F4 SPI DMA

    STM32F4 SPI DMA 自己整理(存储器到外设模式) SPI结构体 typedef struct { uint16_t SPI_Direction; /*设置SPI 的单双向模式 */ ); GPIO_PinAFConfig(GPIOB,GPIO_PinSource3,GPIO_AF_SPI1); GPIO_PinAFConfig(GPIOB,GPIO_PinSource4, DMA 用于SPI传输的DMA模块如下: // 初始化用于SPI2_TX DMA访问的DMA1流4通道0 #define DISP_SCAN_DATA_CNT (24 * 3 * 2 (SPI2, SPI_I2S_DMAReq_Tx, ENABLE); // 启用DMA传输请求 DMA_Cmd(DMA1_Stream4, ENABLE (DMA1_Stream4, DMA_IT_TCIF4); } } DMA ISR目前没有被使用(我确实打算用它做一些无关的事情),但TIM4 ISR基本上控制了整个显示。

    2.7K41发布于 2020-09-24
  • 来自专栏技术杂货店

    JDBC【4】-- SPI底层原理解析

    前面已经讲过SPI的基本实现原理了,demo也基本实现了,再来说说SPI。 http://aphysia.cn/archives/jdbcspi [20201124235140.png] 背景:SPI是什么? SPI,即是Service Provider Interface,是一种服务提供(接口实现)发现机制,可以通过ClassPath路径下的META-INF/Service文件查找文件,加载里面定义的类。 这就需要SPI,可以查找到接口的实现,对其进行操作。 用两个字解释:解耦。 再简单点说?

    63700发布于 2020-11-28
  • 来自专栏勇哥编程游记

    温习 SPI 机制 (Java SPI 、Spring SPI、Dubbo SPI

    正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。 1 Java SPI 示例 本节通过一个示例演示 Java SPI 的使用方法。首先,我们定义一个接口,名称为 Robot。 4 Java SPI 机制的缺陷 通过上面的解析,可以发现,我们使用 JDK SPI 机制的缺陷 : 不能按需加载,需要遍历所有的实现,并实例化,然后在循环中才能找到我们需要的实现。 5 Spring SPI 机制 Spring SPI 沿用了 Java SPI 的设计思想,Spring 采用的是 spring.factories 方式实现 SPI 机制,可以在不修改 Spring com.courage.platform.sms.demo.service.impl.FamilyTestService,com.courage.platform.sms.demo.service.impl.WorkTestService 4、 6 Dubbo SPI 机制 基于 Java SPI 的缺陷无法支持按需加载接口实现类,Dubbo 并未使用 Java SPI,而是重新实现了一套功能更强的 SPI 机制。

    96110编辑于 2024-10-29
  • 来自专栏技术杂货店

    JDBC【4】-- SPI技术底层实现源码解析

    前面已经讲过SPI的基本实现原理了,demo也基本实现了,再来说说SPI。 背景:SPI是什么? SPI,即是Service Provider Interface,是一种服务提供(接口实现)发现机制,可以通过ClassPath路径下的META-INF/Service文件查找文件,加载里面定义的类。 这就需要SPI,可以查找到接口的实现,对其进行操作。用两个字解释:解耦。 再简单点说?

    65420编辑于 2022-02-15
  • 来自专栏安富莱嵌入式技术分享

    H7-TOOL通过SPI接口脱机烧录SPI Flash操作说明,支持1拖4

    采用下图的方式一(这两种方式都已经支持): 1、先看拖烧录操作说明,熟悉下基本操作,SPI Flash的操作也是一样的。 TOOL有两个SPI Flash的转接板, 详情在此贴有介绍:http://www.armbbs.cn/forum.php? mod=viewthread&tid=105407 我们这里使用1拖4转接板。 使用这个转接板,下面所有模式都支持: 2、比如我们要实现1拖4脱机烧录,我们就可以将要烧录的四片SPI Flash芯片都放到1拖4转接板中,然后TOOL进入1拖4界面: 3、我们这里烧录4片 W25Q128,TOOL上位机的配置如下: 4、点击开始烧录按钮: 注意事项: 如果出现校验失败等问题,可以考虑加大这里的延迟参数,范围1-

    1.1K30发布于 2021-06-02
  • 来自专栏后端码匠

    理解事务的4隔离级别

    数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。 Serializable 序列化 Serializable 是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。 但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。 值得一提的是:大多数数据库默认的事务隔离级别是Read committed,比如Sql Server , Oracle。 Mysql的默认隔离级别是Repeatable read。

    12.9K32发布于 2021-08-19
  • 来自专栏Java项目实战

    Java SPI | Dubbo SPI |Spring SPI有什么区别

    Java SPI是JDK自带的一种SPI机制,它通过在META-INF/services目录下的配置文件中指定接口的实现类来实现。 Java SPI只能加载到类路径下的实现类,不支持动态添加和删除实现类。 是Apache Dubbo框架自带的一种SPI机制,它在Java SPI基础上进行了扩展,支持动态添加和删除实现类。 Dubbo SPI的实现代码示例如下: 定义接口 @SPI("default") public interface MyService { void doSomething(); } 实现接口 是Spring框架自带的一种SPI机制,它通过在META-INF/spring.factories文件中指定实现类来实现。

    1.6K20编辑于 2023-03-31
  • 来自专栏瓜大三哥

    SPI

    SPI 通信原理很简单,它是以主从方式进行工作,通常有一个主设备和一个或多个从设备,至少需要4根线(支持全双工)工作,分别为 MISO(主入从出),MOSI(主出从入),SCLK(时钟),SS(片选)。 Standard-SPI 基本的 SPI 协议也被称为 Standard-SPI,Standard-SPI 是串行通信协议,数据是逐位进行传输,在 SCLK 的边沿进行 MOSI 和 MISO 的传输。 Dual-SPI 由于在实际应用中较少使用全双工模式,因此为了能够充分利用数据线,引入了 Dual-SPI 和 Quad-SPI ,在 Dual-SPI 协议中,MOSI、MISO 数据线被重命名为 SD0 Quad-SPI 由于同时使用四根数据线进行传输,一个时钟周期可以传输4 bit数据,因此可以在 Dual-SPI 基础上将吞吐率提高一倍。 ? SCK串行时钟线空闲是为高电平,数据在SCK时钟的下降沿被采样,数据在SCK时钟的上升沿切换 方式4 CPOL= 1,CPHA=1。

    2.4K20发布于 2020-07-24
  • 来自专栏全栈程序员必看

    spi总线协议及spi时序图详解_奔创spi

    上个章节我们讲解了spi接口定义,今天我们更加深入讲解下spi协议时序图和spi四种模式的用法。 刚开始接触单片机开发时,最怕就是看时序图,对于我来说就是奇怪的知识。 一、spi四种模式详解 在讲时序图之前,我们先要了解spi的四种模式,不同的模式采集数据的方式不一样。 一般内置SPI功能的单片机上,都有两个寄存器配置位CPOL和CPHA。 CPOL和CPHA合体就形成了SPI四种模式。 声明:部分图片源自网络,并非原创哈。 下面再分析下4种模式的区别,比较重要。 个跳变沿(下降沿)采样 3.模式2(CPOL=1,CPHA=0) CPOL = 1:空闲时是高电平,第1个跳变沿是下降沿,第2个跳变沿是上升沿 CPHA = 0:数据在第1个跳变沿(下降沿)采样 4. 如果不懂,先从开头继续看,这4种模式是后面分析整体时序图的前提。 二、spi时序图详解 看到这里恭喜你,你马上就能彻底攻破SPI协议了。 Spi时序图,最好的方式就是通过实际应用去学习。

    11.2K20编辑于 2022-11-07
  • 来自专栏狗哥的 Java 世界

    MySQL 的 4隔离级别,你了解么?

    隔离性。一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 持续性。 3、Mysql的四种隔离级别 SQL标准定义了4隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 (4) Serializable(可串行化) 这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是在每个读的数据行上加上共享锁。 在MySQL中,实现了这四种隔离级别,分别有可能产生问题如下所示: ? 4、测试Mysql的隔离级别 下面,将利用MySQL的客户端程序,我们分别来测试一下这几种隔离级别。 (4)将A的隔离级别设置为可串行化(Serializable) ? A:启动事务,此时数据为初始状态 ?

    55020发布于 2019-10-17
  • 来自专栏Java项目实战

    Spring SPI

    本文将通过Spring SPI的案例,给大家介绍如何设计一个简单但又强大的SPI扩展机制。 SPI(Service Provider Interface)是一种常用的扩展机制,它通过不改变原有系统的情况下,允许添加新的功能模块。 Spring就是利用SPI实现了许多可配置和可替换的设计,比如动态代理,资源加载等功能通过SPI进行扩展。 所以,在设计可扩展组件时,使用SPI提供的接口和默认实现可以帮助我们快速搭建出一个“开放-关闭”和“可配置”的系统框架。这也是Spring之所以如此流行的一个重要原因。 总结来说:定义一个标准接口和一个默认实现作为SPI的基础通过配置从 SPI 中动态加载完整的实现类实现类实例通过接口进行调用操作实现无侵入性的拓展能力当然,SPI还有一些缺点,比如行为不一致、难以升级等

    50610编辑于 2023-11-27
  • 来自专栏Howl同学的学习笔记

    SPI机制

    SPI SPI ( Service Provider Interface),是JDK提供的一种服务发现机制。 那么SPI的出现可用于动态地启用框架扩展和替换组件,其常见应用: 数据库驱动加载接口实现类的加载 日志门面接口实现类加载 Spring中servlet3.0规范对ServletContainerInitializer jar包要在classpath中 使用java.util.ServiceLoder动态装载实现模块,它通过扫描META-INF/services目录下的配置文件找到实现类的全限定名,把类加载到JVM SPI com.howl.spi.impl.Dog 1.4 使用SPI机制 public class main { public static void main(String[] args) { JDBC的SPI解析 下面从源码的角度解析SPI机制在JDBC中的使用 2.1 以前我们使用jdbc的流程 public class Demo { public static void main

    1.5K40发布于 2020-05-08
  • 来自专栏程序员备忘录

    SPI浅析

    SPI全称Service provider interface,是一种服务发现机制。 所以说SPI所说的灵活的扩展,不外乎接口、父类以及虚类的情况。So demo来了。 */ public interface MySpi { void show(); } 实现类1 package com.example.demo.spi.imp; import com.example.demo.spi.MySpi 接口类路劲的文件,并将具体的实现类的路径放入其中,如图所示: 在创建好这些类和文件之后,我们需要将我们的spi实现类用起来,所以这块我们要编写主要的调用类。 在jdbc中链接的初始化就采用了spi机制。 说到这里,我们就了解了spi到底是个啥了,我们也可以通过java类中的静态代码进行潜移默化的一些事。

    1.6K10编辑于 2022-08-11
  • 来自专栏全栈程序员必看

    mysql隔离级别为什么设置为可重复读_隔离性的4个级别

    用的是可重复读而不是read committed:在 5.0之前只有statement一种格式,而主从复制存在了大量的不一致,故选用repeatable 4.为什么默认的隔离级别都会选用read commited 而在已提交读隔离级别下,只锁行;在已提交读隔离级别下,引入了半一致性读(semi-consistent)特性增加了update操作的并发性能。 Mysql默认的事务隔离级别是可重复读(Repeatable Read),那互联网项目中Mysql也是用默认隔离级别,不做修改么? 不是的,我们在项目中一般用读已提交这个隔离级别! what! Read作为默认的隔离级别呢? 而在RC隔离级别下,不存在间隙锁,其他事务是可以插入数据! ps:在RC隔离级别下并不是不会出现死锁,只是出现几率比RR低而已! 缘由二:在RR隔离级别下,条件列未命中索引会锁表!

    1.2K10编辑于 2022-10-01
  • 来自专栏物联网知识

    什么是SPI通信?怎样进行SPI通信?

    SPI特点 可以同时发出和接收串行数据; 可以当作主机或从机工作; 提供频率可编程时钟; 发送结束中断标志; 写冲突保护; 总线竞争保护; 传输速度快 SPI 物理层 SPI总线是一种4线总线,因其硬件功能很强 STM32 的 SPI 特性及架构 STM32F1 的 SPI 功能很强大,SPI 时钟最高可以到 18Mhz,支持 DMA,可以配置为 SPI协议或者 I2S 协议。 = SPI2; // SPI2 SPI1_Handler.Init.Mode=SPI_MODE_MASTER; //设置 SPI 工作模式,设置为主模式 SPI1_Handler.Init.Direction =SPI_DIRECTION_2LINES; //设置 SPI 单向或者双向的数据模式:SPI 设置为双线模式 SPI1_Handler.Init.DataSize=SPI_DATASIZE_8BIT ; //设置SPI单向或者双向的数据模式:SPI设置为双线模式 SPI2_Handler.Init.DataSize=SPI_DATASIZE_8BIT; //设置SPI的数据大小

    3.9K40编辑于 2022-12-03
  • 来自专栏用户6590312的专栏

    SPI标准

    SPI 要遵循的标准: 一个目录: classpath下:META-INF/services 一个配置文件: 上面的目录下,满足: 文件名是扩展的接口的全名 文件内部内容是实现接口的实现类 文件的编码必须为

    1.1K20发布于 2021-01-12
  • 来自专栏Java

    Java SPI

    概述SPI全称Service Provider Interface,即服务提供者接口,是Java的一种扩展机制。通过该机制,Java应用可以发现和使用对接口的外部实现。 这些由外部服务(通常是一个jar包,包含具体的实现类)提供实现的接口即被称为SPI,该外部服务即被称为Service Provider(服务提供者). Service Provider提供的jar包应位于classpath中,需提供一个配置文件,放在jar包的META-INF/services目录下,该配置文件名称为SPI的全限定接口名,文件中列出一个至多个具体实现类的全限定类名 举例说明Java中的数据库连接驱动接口 java.sql.Driver,是一个SPI,不同的数据库厂商会提供各自的实现,例如Oracle提供的实现包含在ojdbc8包中,如下图,该包的META-INF/ 其核心是一个LinkedHashMap属性(用来缓存SPI的实现类,key为实现类的全限定类名,value为实现类对象),和一个LazyIterator内部类(用来遍历和加载实现类)。

    35910编辑于 2024-08-02
领券