自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 储能电池的两道“安全门”:GB 44240 与 GB/T 36276 到底什么关系?

相比2018版,新标准显著加严了安全测试条件:短路电阻由5mΩ变更为1mΩ,挤压力由13kN增至50kN,能量效率要求由85%提升至90%,并新增了过载性能、振动性能、液冷管路耐压性能、高海拔绝缘性能等6项安全测试要求。从国际视角看,GB 44240在参考IEC 62619、IEC 63056、UN38.3等国际标准的基础上,根据国内产业和技术现状进行了修改完善,并引入了过充电、浅刺、电池热失控等全新测试项目,整体试验项目和技术指标严于国际、国外标准。前者是安全准入门槛,后者是技术性能基准。

2026-10-12 11:56:02 184

原创 TestManager用法概述

-----------------------------simulation test case 不带baseline判断的Case。------------------------------Baseline test case 带baseline判断的Case。预期输出通过excel设置:sheet1 sheet2(其实输入也可以通过excel设置)-------------------------Test Case 子功能。----------------Test Suite 子系统。

2026-07-30 17:41:19 177

原创 Simulink 之Test Assessment 模块

在基于模型的测试中,我们经常面临这样一个问题:激励信号发出去了,模型也在跑,但结果对不对,谁来判?手动拉曲线、看数值不仅效率低下,还容易遗漏错误。Simulink 提供了 Test Assessment 模块,它就像一个不知疲倦的“自动判卷老师”,能够实时监控模型输出,自动判断测试是否通过。本文将从模块定位、界面、核心语法到实战案例,帮你全面掌握这个关键测试工具。在 Simulink Test 体系中,有两个极易混淆的模块:Test Sequence 和 Test Assessment。它们共用同一个编辑器

2026-07-30 16:36:53 192

原创 Simulink 之 Test Sequence 模块

当你双击 Test Sequence 模块时,会打开一个集成编辑器。这种机制让你能够精确控制信号在时间轴上的变化,非常适合生成周期性、逻辑切换或带延迟的测试序列。将完美输出预期的方波。如果想生成更复杂的多段信号,只需增加更多步骤并调整。假设需要给被测模型灌入一个周期为 4 秒的方波信号:先高电平(:当前激活步骤中的代码被执行(例如设置输出信号值)。:按从上到下的顺序检查该步骤对应的“过渡条件”。:仿真启动时,默认激活顶部第一个步骤。,则保持当前步骤,下一时刻继续执行。)2 秒,循环进行。

2026-07-30 15:53:03 217

原创 模型测试覆盖度

参考文章。

2026-07-30 14:07:33 200

原创 BMS 故障录波功能设计与实现

┌──────────── 故障录波 全流程 ────────────┐│ ││ 线程启动 → 加载元数据缓存(名称+单位) ││ ↓ ││ 每100ms循环: ││ 采样5个Sheet → 写环形缓冲区(只存值) ││ 检查28个点位跳变沿 → evaluate_trigger ││ 触发?→ 标记帧位置 → 继续记录10秒 ││ 10秒到 → 逐帧读环形缓冲区 ││ → 查缓存得名称/单位 ││ → 流式写入SQLite ││ → 清理>10条旧文件 ││ → 回到IDLE │。

2026-07-20 17:30:21 250

原创 一个 CAN 接口 UP 状态,如何把 100M 以太网拖到只剩 20M?

init/deinit 必须对称。和要成对出现,不能只管生不管埋。外设的"使能状态"是硬件级的,不随进程生命周期自动回收。即使进程死了,CAN 控制器、PHY、时钟、DMA 通道仍然处于活跃状态。CAN 总线是强物理层依赖的协议。缺少终端电阻和对端 ACK 不只是"通信失败"那么简单,它会触发控制器的错误恢复状态机,产生远超正常业务的硬件中断。嵌入式平台外设共享总线资源。

2026-07-15 16:58:44 378

原创 模型输出输出接口定义(Simulink Bus 定义与 Embedded Coder 代码生成)

... 更多字段要点结构体的字段名和数据类型就是全部信息,初始值0只占位,不起实际作用。用uint8uint16int16等定长整数类型,确保生成 C 代码时类型精确可控(对应uint8_tuint16_tint16_t。

2026-07-15 09:20:51 373

原创 RK3568常用指令

查看CPU温度:

2026-07-08 14:58:13 203

原创 电池二阶等效电路模型

在计算机仿真中,我们无法处理连续时间,只能处理离散的采样点。其动态行为可以用一个一阶微分方程来描述。以下代码是求 R0和R1、R2上电压的m脚本。随时间变化的解析解。:对于图中R和C并联的电路,当有电流。:这是上一时刻的残余电压在无外部电流(时间内,从零开始为新电容充上的电压。流入时,电容C两端的电压。:解这个微分方程,可以得到。:这是由当前时刻的恒定电流。,是决定电压变化快慢的。这个公式来源于对一个。

2026-07-07 06:01:42 247

原创 两轮BMS 电流标定策略

窗口=3 刚好能消灭单个尖峰。如果连续两个尖峰紧挨着,需要窗口=5——但 EMI 尖峰在物理上都是稀疏出现的,连续两个采样周期都中招的概率极低。窗口再大只会增加不必要的延迟。在 M0 上实现极为轻量。。无需数组、无需循环、无需乘除、无需浮点。延迟恒定 1 个采样周期(约 100ms),对 PMM(500ms 去抖)和 FDR(5-10s 确认窗口)完全透明。经过零点校准、增益校准、中值滤波之后,零电流时的残余误差约 ±50mA,加上 ADC 本底噪声约 ±30mA。

2026-07-06 11:27:13 262

原创 两轮车换电 BMS 的模拟前端中颖 SH367306 AFE 调试实录:两个关键问题与解决方案

问题表象根因解决思路I2C 寄存器翻转均衡/保护参数随机跳变EMI 通过辐射打翻寄存器三层容错:重试 → 回读验证 → 定时巡检修复电流零点温漂-20°C 时静止电流显示 -1.2APGA 输入失调电压的温度系数上电自学习 + 芯片温度查表补偿均衡时电压跳变充电末端电压锯齿波 ±50mV均衡电流经采样线产生压降分时调度 + 相邻通道交错均衡Cell1 系统性偏低Cell1 读数偏低 23mVB- 线电流回路阻抗压降工厂模式在线校准 + 运营模式固定补偿。

2026-07-05 22:46:32 168

原创 两轮车换电 BMS 的模拟前端中颖 SH367306 AFE 芯片详解

这是 SH367306 最"硬"的功能——完全不经过 MCU 软件。采样电阻电压 > SCV 阈值 (200mV ≈ 400A @ 0.5mΩ)│├─ 硬件延时 SCT (50μs) 去抖确认│├─ AFE 硬件自动清零 SCONF2.DSG_C → 断开放电 MOS│├─ FLAG1.SC 锁存置位│└─ ALARM 引脚输出中断信号 → MCU 进入 AfeIf_AlarmPin() ISR为什么是 50μs?太快(如 5μs)→ 正常负载突变的浪涌电流会误触发。

2026-07-05 22:27:03 316

原创 两轮BMS AFE SH367306 I2C 读写时序

SH367306 是两轮车 BMS 常用的 AFE 芯片,通过 I2C 与 MCU 通信。它的读写时序有一个反直觉的地方——读比写多了一步。

2026-07-05 20:41:17 231

原创 两轮BMS 电源模式管理 (PMM) 详解

基于量产 60V BMS(STM32F0 + SH367306 AFE),拆解 PMM 五大系统模式的定义、切换逻辑与联动关系。

2026-07-05 18:58:18 206

原创 两轮BMS 防打火策略详解

本文基于量产 60V BMS(STM32F0 + SH367306 AFE),拆解"防打火"的原理与软件实现。

2026-07-05 18:11:54 283

原创 两轮BMS 防盗策略

换电场景中电池是运营方资产,防盗模块负责识别电池是否被私自带走,并在判定后禁止放电。

2026-07-05 17:03:02 213

原创 两轮BMS 短路保护策略详解

基于量产 60V BMS(STM32F0 + SH367306 AFE),拆解短路保护从硬件触发到软件锁定的完整策略。

2026-07-05 16:01:01 232

原创 两轮BMS 限流机制详解:放电 PWM 斩波与充电通信协议

本文基于某量产两轮车 60V BMS 代码,拆解其放电限流(降功率)的完整执行链路。

2026-07-05 08:10:22 283

原创 电池模型与卡尔曼滤波

适用前提:已掌握安时积分+多源修正的SOC估算方法(如本工程SOCRENew中的实现),希望进一步了解基于模型的卡尔曼滤波方案。

2026-07-02 15:00:55 237

原创 LFP 主动均衡压差法策略

主动均衡搬得快,不需要定量。充电末期电压离开平台区后,压差就是可靠的失衡信号——比平均高就放、比平均低就充,偏差超 15mV 就搬,收敛到 5mV 就停。方案一那套膝点触发、库仑计数、NVM 持久化、跨周期迭代的复杂逻辑,本质是被动均衡 100mA 烧太慢逼出来的,主动均衡根本不需要。

2026-06-23 09:53:03 198

原创 LFP 充电末端库仑计数均衡策略

维度要点核心理念不在平台区硬算,等电芯自己走出平台区判断时机充电末端,膝点 ~3.40V 以上判断方法各电芯从膝点到截止的库仑计数差值 = 容量差 ΔCΔC 存储立即写入 NVM,掉电不丢执行时机ΔC 一旦确定,随时可均衡——充电、放电、静置均可唯一约束均衡板温度 ≤ 65°C执行方法按 ΔC 放电,纯库仑计数,不需要电压查 SOC收敛多轮充电迭代,每次末端校准 ΔC,逐步缩小直至收敛最大局限依赖周期性满充,长期浅充场景需补充其他策略。

2026-06-22 22:21:51 231

原创 消息队列使用梳理

两个生产者,一个消费者,一个消息队列。全局句柄(global.c:63)三、生命周期管理(rtu.c)3.1 创建 — (rtu.c:3540-3558)由 rtu.c 在 中调用。因为 rtu 进程启动最早,负责创建队列。四、生产者 1 — rtu.c(HMI 标定触发)位于 中(rtu.c:2796-2815)。当 HMI 通过串口2(Modbus RTU)写入标定点位时触发。触发条件:HMI 修改了点位值且 在标定范围内(如 20660~20674,10590 等)。发送模

2026-06-22 16:43:43 243

原创 共享内存操作梳理

shm_open → ftruncate → mmap → 写入数据 → 初始化进程间锁 → 常驻一次搬运:SQLite → 临时结构体 →memcpy进共享内存,之后再也不碰数据库进程间锁保证多个进程可以安全地并发读写名称约定是跨进程 attach 的唯一标识常驻不退出:用死循环维持共享内存生命周期,代价是清理代码不可达。

2026-06-22 15:24:53 176

原创 数据库操作梳理

项目说明数据库(可通过命令行参数覆盖)读写类型只读,无任何写入操作时机进程启动时一次性加载,之后立即关库连接模式open → 读5张表 → close。

2026-06-22 14:58:13 214

原创 BMS SOX 算法与架构深度总结

本文系统梳理储能 BMS 中 SOC/SOH/SOP/SOE 算法的设计思路、物理本质、工程落地细节,以及三层 BMS 架构(BAU/BCU/BMU)在直流侧并联与交流侧并联两种拓扑下的控制策略差异。

2026-06-17 11:57:40 767 1

原创 OpenBLT 移植指南

/ 宏定义被放在 plausibility.h 中作为默认值96002// USART30// 无校验11// Modbus 从站地址 = 1250250500500。

2026-06-13 16:40:08 253

原创 OpenBLT 嵌入式 BootLoader 技术解析

MCU 端:一个极简的 BootLoader 固件,常驻 Flash 头部PC 端:一个开箱即用的 GUI 上位机(MicroBoot)即使你完全没写过 BootLoader,也能在几小时内给 STM32 加上远程固件升级功能。问题OpenBLT 的答案BootLoader 怎么写?不需要从头写,改 blt_conf.h 几个宏就行上位机怎么写?自带 MicroBoot,编译即用走什么通信?Modbus RTU可配安全性?Seed/Key 握手 + 校验和完整性检查(可选)

2026-06-12 17:03:12 560 1

原创 BCU 存储方案设计

存储数据介质策略容量利用率寿命关键保障冻结帧W25Q128 闪存环形缓冲区,128B/帧,32帧/扇区100%>100年writeFlag 掉电保护运行数据4 副本轮转,sequence 序号判新256B>100年CRC + 多副本冗余配置参数双副本,先写备份再写主256B极长双副本 + 出厂默认系统信息双副本,出厂一次写入128B极长双副本只读冻结帧元数据单份+CRC,支持全盘重建16B极长全盘扫描重建能力核心设计哲学。

2026-06-12 10:10:06 211

原创 Modbus TCP 协议详解

优先选择 TCP:设备支持以太网、需要高速数据交互、远程监控、接入云平台。保留 RTU:现场只有串口设备、成本敏感、距离 < 1000 米且数据量小(如单台 PCS 与 BMS 内部通信)。实际项目中,很多设备同时支持两种接口。例如,BMS 主控板既有 RS-485 口(用于本地调试或与旧设备通信),又有以太网口(用于接入站控层网络)。协议简单但必须精确:帧结构、功能码、异常码是基础,必须牢记。与 RTU 的对比:理解两者差异有助于选型和问题定位。调试工具:推荐(模拟主站)、(模拟从站)、

2026-06-11 20:56:03 543

原创 Modbus RTU协议详解:从帧格式到功能码示例,一篇就够了

Modbus RTU简单、稳定、开放,是工业通信的必修课。帧结构:地址、功能码、数据、CRC(低字节在前)。时间间隔:帧内<1.5字符,帧间≥3.5字符。常用功能码:03读寄存器、06写单寄存器、16写多寄存器、01读线圈。CRC算法:多项式0xA001,初始0xFFFF,发送小端序。异常码:01~04的含义。物理层参数:9600-8-N-1最常见。最后留一道思考题:如果一帧数。

2026-06-11 10:25:10 887

原创 BCU 平台 Modbus 主机功能开发:液冷机组 & 消防传感器

BCU 硬件设计时未使用 UART 的 RTS 引脚,而是独立 GPIO 控制 ISO3082 的 DE/RE。内核 RS485 框架()依赖 RTS 自动切换,无法适配独立 GPIO 的场景。应用层控制虽然多了一次系统调用的开销,但灵活性更高。

2026-06-10 20:42:24 277

原创 BCU 平台 RS485 驱动适配:从 THVD1406 到 ISO3082

为什么不放内核层?BCU 硬件未使用 UART 的 RTS 引脚,而是独立 GPIO 控制 DE/RE。内核 RS485 框架依赖 RTS,无法适配。应用层控制更灵活。为什么用 sysfs 而不是 libgpiod?保持文件描述符打开,一次系统调用完成切换,性能足够OK3568 的 Linux 4.19 内核完全支持 sysfs GPIO无需额外链接 libgpiod,依赖更少tcdrain()为什么不能省略?UART 有硬件 FIFO(通常 64 字节),write()

2026-06-10 14:45:59 265

原创 FreeRTOS 移植到 STM32F407VETX 记录(五)

基于 STM32F407VETX + FreeRTOS V11.1.0 手动移植实战中遇到的每一个坑,反向整理成面试问题和答法。每个问题都按"面试官想听到什么"的结构组织:直接结论 → 原理 → 实战例子。

2026-06-09 23:35:31 218

原创 FreeRTOS 移植到 STM32F407VETX 记录(四)

数据流 →│ 采集物理量│ │ 保护逻辑 │ │ SOC/SOH │ │ CAN/UART ││ 写入cluster│ │ 控制接触器│ │ 纯计算 │ │ 可能阻塞 ││ 堆 4KB │ │ 堆 8KB │ │ 堆 32KB │ │ 堆 8KB │││HOUSEKEEP │ ← 最低优先级,后台杂务 ││ RTC+存储 │ ││ 堆 4KB │ │↑ │└─── IDLE (Prio 0) ─── 喂 IWDG + WFI ──────┘核心原则三条按数据流 + 安全级别切任务。

2026-06-09 23:28:41 204

原创 FreeRTOS 移植到 STM32F407VETX 记录(三)

基于 STM32F407VETX + FreeRTOS V11.1.0 手动移植实战总结编译器:arm-none-eabi-gcc,

2026-06-09 23:18:41 266

原创 FreeRTOS 移植到 STM32F407VETX 记录(一)

进入FreeRTOS官网下载源码(FreeRTOSv202411.00版本),下载不带LTS后缀的版本,这样的源码中带示例代码。基础工程:STM32CubeIDE 生成的 STM32F407VETX HAL 库工程。FreeRTOS 版本:V11.1.0(CM4F 移植层)FreeRTOS代码移植,还要把相关.h和.c包含进来。编译器:arm-none-eabi-gcc,

2026-06-09 23:07:26 210

原创 FreeRTOS 移植到 STM32F407VETX 记录(二)

根因 第 127 行:该宏将 FreeRTOS 中的 重命名为 。而 STM32 HAL 模板在 中也定义了 。两个 文件链接时产生重复定义。方案:注释掉 中的宏,在 的 中手动调用 FreeRTOS 和 HAL 两个 handler。文件:Core/Src/stm32f4xx_it.c文件:FreeRTOS/FreeRTOSConfig.h二、Phase 0:FPU 修复背景STM32F407 内部有硬件 FPU(Cortex-M4F)。FreeRTOS CM4F 移

2026-06-06 19:19:17 270

原创 OK3568 RTC 驱动适配与 Linux 系统时间管理总结

RTC 驱动的适配本质上是三件事:设备树——让内核知道 I2C3 上挂了什么芯片内核配置——把对应驱动编译进去(理解 RTC 与系统时间的关系——启动自动同步(hctosys)、运行中读写(hwclock)、断电保持(备份电池)整个过程中不需要自己写一行 RTC 驱动代码,内核社区已经做好了全部工作。你的应用程序只需要time()取系统时间即可,RTC 对上层透明。参考资料飞凌 OK3568-C 开发板资料前篇:OK3568 设备树适配 RX8010最后更新:2026-06-05。

2026-06-05 16:02:30 466

原创 AD7606B 使用总结报告

AD7606B 是 ADI(Analog Devices)公司推出的8 通道、16 位、同步采样模数转换器(ADC)特性规格通道数8 路同步采样分辨率16 bit输入范围±10V / ±5V(本系统使用±10V最大采样率200 kSPS(每通道)接口SPI 串行 / 并行数据输出模式1线(DOUTA) / 2线(DOUTA+DOUTB) / 4线(DOUTA~DOUTD)供电特性内置模拟前端、二阶抗混叠滤波器、片上基准源本系统基于AD7606B。

2026-06-05 09:27:07 317

STM32F407VET移植FreeRTOS

STM32F407VET移植FreeRTOS

2026-06-06

CAB500-C/SP5修改CAN波特率

CAB500-C/SP5修改CAN波特率

2026-05-25

OK3568 查看引脚应用情况

OK3568 查看引脚应用情况

2026-05-13

ISO15765-2英文原版

ISO15765-2英文原版资料,是学习UDS诊断必不可少的资料

2018-06-28

ISO15765-1

ISO15765-1英文原版,是学习汽车UDS诊断必不可少的资料

2018-06-28

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除