当前位置: 首页 > news >正文

LLC开关电源开发:第四节,LLC软件设计报告

LLC源代码链接

数控全桥LLC开发板软件设计报告 

  • 1. LLC硬件及软件框架
  • 2. LLC软件设计
    • 2.1 工程文件说明
    • 2.2 LLC中断设计
      • 2.2.1 20us中断
      • 2.2.2 5ms中断
    • 2.3 LLC状态机设计
      • 2.3.1 初始化状态
      • 2.3.2 空闲状态
      • 2.3.3 软启动状态
      • 2.3.4 正常运行状态
      • 2.3.5 故障状态
    • 2.4 环路设计
      • 2.4.1 环路架构
      • 2.4.2 Burst控制
    • 2.5 故障和保护设计
      • 2.5.1 谐振电流保护
      • 2.5.2 过压保护
      • 2.5.3 过流保护
      • 2.5.4 欠压保护
  • 3. LLC软件设计计算书

LLC源代码链接

1. LLC硬件及软件框架

LLC控制硬件与软件架构
LLC主功率为全桥结构,PWM1A/B用以驱动全桥的低边与高边MOS管。控制器采样输出电流电压信号,环路计算实现输出不同输出电压电流的控制;采样滑动变阻器电压值,用以设定输出参考电压;比较器获取LLC原边电流,实现电流过大(电流异常)时快速关闭PWM,快速保护机器不损坏。

2. LLC软件设计

2.1 工程文件说明

文件名 介绍
main.c 主函数:主要用以配置初始化
ISR1.c 20us中断函数
ISR1.h 20us中断函数头文件
ISR2.c 5ms中断函数
ISR2.h 5ms中断函数头文件
Function.c 功能函数
Function.h 功能函数头文件
ISR1.c函数定义说明:
函数名 介绍
ISR_20US () 20us中断函数入口
ADCSample() 输出电压、电流、温度等采样函数
VILoopCtl() PI电压电流环函数
VILoopCtl2P3Z() 两零三极电压电流环函数
BurstCtl() Burst控制函数(轻载或空载情况)
RegReflash() PWM寄存器更新函数
FastProtection() 快速保护函数
ISR2.c函数定义说明:
函数名 介绍
ISR_200Hz 5ms中断函数入口
SlowP() 慢速保护函数
StateM() LLC状态机
VrefGet() 输出电压参考值获取函数
LEDShow() 状态显示灯控制函数
Function.c函数定义说明:
函数名 介绍
StateMInit () 初始化状态函数
StateMWait () 等待状态函数
StateMRise () 软启动状态函数
StateMRun () 正常运行状态函数
StateMErr () 故障状态函数
ValInit () 参数初始化函数
HwOpp() 谐振电流过大保护
SwOCP () 输出过流保护函数
SwUVP () 输出欠压保护函数
SwOVP () 输出过压保护函数
ShortOff () 输出短路保护
PWMEn() 开启PWM函数
PWMDis() 关闭PWM函数

2.2 LLC中断设计

程序运行有20us中断和5ms中断。其中20us中断优先级最高,主要对模块相关参数采样、电压电流环路计算及PWM寄存器更新、Burst控制、快速保护功能等;5ms中断优先级为较低,主要执行状态机运行和一些辅助保护功能。

2.2.1 20us中断

函数名: ISR_20US ()
软件在20us中断中对输出电压、输出电流、滑动变阻器电压等参数进行采样和求平均。根据所采样的电流电压值进行环路计算得到PWM周期量(频率量),并更新PWM周期寄存器。在空载或轻载的情况下使用Burst控制(打嗝控制)。同时比较器检测原边电流,当原边谐振电流较大时,比较器翻转,通过Tz信号快速关闭PWM,保护机器。

20us中断函数流程图

2.2.2 5ms中断

函数名:ISR_200Hz()
5ms中断优先级较低,运行包括LLC状态机,输出过压保护、输出过流保护、欠压保护等功能,获取滑动变阻器电压值转换成输出参考电压,同时根据LLC工作状态变更状态显示灯,其程序流程图如下图所示。

200Hz中断程序流程图

2.3 LLC状态机设计

LLC程序状态机运行周期为5mS,包括初始化状态、等待状态、软启动状态、正常运行状态、故障状态,各个状态之间跳转条件如下图所示。

状态机运行图
状态跳转条件如下:
 初始化状态至空闲状态:上电程序初始化后跳转。
 空闲状态至软启动状态:等待1.5S后自动跳转。
 软启动状态至正常运行状态:正常启动结束后。
 软启动状态至故障状态:启动过程中发生故障或保护。
 正常运行状态至故障状态:正常运行过程中发生故障或保护。
 故障状态至空闲状态:故障消除后自动跳转,模块自动恢复启动。

2.3.1 初始化状态

函数名:void StateMInit (void)
初上电程序进入初始化状态,完成程序运行相关参数的初始化配置,包括关闭PWM,关闭Burst功能,故障标志位清零,初始化输出电压参考为11.5V,设定输出最大限流值为4.5A。程序完成初始化后状态机进入空闲状态。

2.3.2 空闲状态

函数名:void StateMWait (void)
程序等待1.5秒后(等待母线上电后电压稳定),若故障标志位都为0(模块无故障),则状态至软启动状态,并初始化软启动子状态机标志位。

2.3.3 软启动状态

函数名:void StateMRise (void)
程序软启动状态机采用子状态机设计,由初始化、等待、启动、启动完成四个子状态构成。初始化阶段,设定LLC原边电流保护值,PWM的限定启动周期量(频率值),输出参考电压初始值。随后进入等待状态等待100ms,开启Burst功能和以最高频率发波。在软启动过程中,为了抑制启动过程原变谐振电流过大,启动从最高频率(最小周期量)开始启动,以最大死区启动,每隔5ms最大周期量限制值逐渐增加,即LLC运行的最低频率逐渐降低,死区逐渐减小。当PWM的最大周期量增加至MAX_PD,即对应的35kHz时,同时死区达到最小时,软启动结束,状态机跳转至运行状态。

软启动程序流程图

2.3.4 正常运行状态

函数名:void StateMRun (void)
该状态机内程序不处理任何内容,环路运行和各种保护通过中断函数处理

2.3.5 故障状态

函数名:void StateMErr (void)
当模块发生故障或需要保护时,如过压过流或过温保护等时,模块进入保护状态,关闭PWM和Burst功能,待故障清除后跳转至等待状态重新启动。

2.4 环路设计

2.4.1 环路架构

模块环路具有电流环和电压环两个环路,两个环路为内外环模式(电压环为快速环路,电流环为慢速环路)。正常在限流值范围内,电压环为主要工作环路,电流环为饱和输出状态(即电流环输出为零),电压环路的参考电压值为恒定值;当输出电流大于限流值时,电流环路开始动作,电流环路输出正量,通过去减小电压环路参考电压的方式,使输出电压降低,电流下降。

环路结构

2.4.2 Burst控制

函数名:BurstCtl ()
当模块输出等效负载太轻,LLC工作于最高频率输出依然不能达到参考设定的电流和电压,控制环路进入Burst控制模式。即当LLC控制频率率大于设定的最高频率时,关闭PWM;当小于最高频率时,重新打开PWM。
Burst控制程序流程图

2.5 故障和保护设计

2.5.1 谐振电流保护

函数名:HwOpp ()
当输出短路、突加大负载、会造成模块原边谐振电流瞬间快速增大。为防止瞬间增大的原边电流对功率半导体的电流击穿或瞬态结温过热,立即关闭PWM抑制原边电流快速增大。谐振电流保护采用控制器自身内设比较器设计,原边电流送进内设比较器的正输入端,控制器内部DAC产生比较器的负端比较参考值。当原边电流过大达到DAC设定的参考电压时,内设比较器输出发生翻转,该信号瞬间快速触发PWM的Tz(one shot)端,立即关闭PWM,Tz标志位置位。

2.5.2 过压保护

函数名:SwOVP ()
当检测到输出电压大于30.8V,且连续保持100ms,则判断为输出过压,关闭PWM和Burst功能,同时过压标志位置位,状态机跳转至故障状态。

2.5.3 过流保护

函数名:SwOCP()
当检测到输出电流大于4.5A,且连续保持500ms,则判断为输出过流,关闭PWM和Burst功能,同时过流标志位置位,状态机跳转至故障状态。当检测到过流标志位置位后(发生过流保护后),程序等待4秒后,清除过流状态位,等待重新启动。当连续发生10次过流重启失败后,判断为输出侧严重故障,禁止清除标志位,禁止再次重启。

2.5.4 欠压保护

函数名:SwUVP ()
LLC正处于正常运行状态,当检测到输出电压小于10.8V,且连续保持100ms,则判断为输出欠压,关闭PWM和Burst功能,同时欠压保护标志位置位,状态机跳转至故障状态。
2.6 状态显示灯设计
状态显示描述如下:
绿灯 黄灯 红灯 状态描述
灭 灭 灭 机器掉电
亮 亮 亮 初始化状态/等待状态
亮 亮 灭 软启动过程
亮 灭 灭 正常运行状态
灭 灭 亮 故障或保护状态

3. LLC软件设计计算书

在这里插入图片描述
LLC源代码链接

相关文章:

LLC开关电源开发:第四节,LLC软件设计报告

LLC源代码链接 数控全桥LLC开发板软件设计报告  1. LLC硬件及软件框架2. LLC软件设计2.1 工程文件说明2.2 LLC中断设计2.2.1 20us中断2.2.2 5ms中断 2.3 LLC状态机设计2.3.1 初始化状态2.3.2 空闲状态2.3.3 软启动状态2.3.4 正常运行状态2.3.5 故障状态 2.4 环路设计2.4.1 环路…...

力扣85.最大矩形

力扣85.最大矩形 遍历所有行作为底边 做求矩形面积&#xff08;84. class Solution {public:int maximalRectangle(vector<vector<char>>& matrix) {if (matrix.empty()) return 0;int n matrix.size(),m matrix[0].size();int res0;vector<int> li…...

和琪宝的厦门之旅~

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 引言 承接去年国庆的遗憾&#xff0c;我们将这次的旅行城市定为厦门。 琪宝是下午四点左右到…...

4、MFC:菜单栏、工具栏与状态栏

菜单栏、工具栏与状态栏 1、菜单栏1.1 简介1.2 创建属性设置菜单消息成员函数 1.3 实例 2、工具栏2.1 简介工具栏属性2.2 创建消息CToolBar类的主要成员函数 2.3 实例 3、状态栏3.1 简介3.2 创建CStatusBar类状态栏创建 3.3 实例 1、菜单栏 1.1 简介 菜单在界面设计中是经常使…...

Java中的动态代理:原理与应用

Java中的动态代理&#xff1a;原理与应用 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在Java开发中&#xff0c;动态代理是一种强大且灵活的技术&#xff…...

DataWhale - 吃瓜教程学习笔记(二)

学习视频&#xff1a;第3章-一元线性回归_哔哩哔哩_bilibili 西瓜书对应章节&#xff1a; 3.1 - 3.2 一元线性回归 - 最小二乘法 - 极大似然估计 - 梯度 多元函数的一阶导数 - 海塞矩阵 多元函数的二阶导数 - 机器学习三要素...

[保姆级教程]uniapp自定义标签页切换组件

文章目录 导文样式改成动态列表切换点击效果加上点击自动滑动scroll-view加上切换组件效果 导文 unaipp自带的标签页和ui设计相差太大&#xff0c;直接修改组件比手写一个还麻烦&#xff0c;下面手写一个。 样式 先用scroll-view做一个滑动&#xff0c;不然多的话滑动不了。 &l…...

4种典型家庭教育方式,无论开始是哪一种,都会过渡到最后一种

家庭教育&#xff0c;是孩子教育的一个重要组成部分&#xff0c;事实上是对孩子影响最大的一种教育方式&#xff0c;绝大部分家庭教育都是由孩子的父母来完成的。 家庭教育的特点 家庭教育具有很明显的启蒙性、长期性、全面性。 1.启蒙性。我们的孩子对外部世界的认识和了解&am…...

[Django学习]查询过滤器(lookup types)

1.exact exact用于精确匹配字段的值。适用于需要精确查找某个字段值的场景。 Book.objects.filter(title__exactHarry Potter) 上面的查询会查找标题完全为“Harry Potter”的书籍。 2.iexact iexact忽略大小写地精确匹配字段的值。适用于需要忽略大小写进行精确匹配的场…...

异步开发的终极答案—协程

我们在之前的文章中讲过,在并发场景下,传统的基于多线程的命令式开发模型虽然比较简单,但并发数高了之后资源占用较高,大量线程会阻塞;而响应式编程模式我们可以通过异步化处理提升系统资源的利用效率,但异步开发有违人的直觉,门槛比较高。作为成年人,我们肯定希望全都…...

构建高效的大数据量延迟任务调度平台

目录 引言系统需求分析系统架构设计 总体架构任务调度模块任务存储模块任务执行模块 任务调度算法 时间轮算法优先级队列分布式锁 数据存储方案 关系型数据库NoSQL数据库混合存储方案 容错和高可用性 主从复制数据备份与恢复故障转移 性能优化 水平扩展缓存机制异步处理 监控与…...

Python武器库开发-武器库篇之ThinkPHP 2.x 任意代码执行漏洞(六十三)

Python武器库开发-武器库篇之ThinkPHP 2.x 任意代码执行漏洞&#xff08;六十三&#xff09; PHP代码审计简介 PHP代码审计是指对PHP程序进行安全审计&#xff0c;以发现潜在的安全漏洞和风险。PHP是一种流行的服务器端脚本语言&#xff0c;广泛用于开发网站和Web应用程序。由…...

SQLite数据库(数据库和链表双向转换)

文章目录 SQLite数据库一、SQLite简介1、SQLite和MySQL2、基于嵌入式的数据库 二、SQLite数据库安装三、SQLite的常用命令四、SQLite的编程操作1、SQLite数据库相关API&#xff08;1&#xff09;头文件&#xff08;2&#xff09;sqlite3_open()&#xff08;3&#xff09;sqlite…...

React框架的来龙去脉,react的技术原理及技术难点和要点,小白的进阶之路

React 框架的来龙去脉&#xff1a;技术原理及技术难点和要点 1. React 的起源与发展 React 是由 Facebook 开发的一个用于构建用户界面的 JavaScript 库。它最初由 Jordan Walke 创建&#xff0c;并在 2013 年开源。React 的出现是为了解决在大型应用中管理复杂用户界面的问题…...

CPU飙升100%怎么办?字节跳动面试官告诉你答案!

小北说在前面 CPU占用率突然飙升是技术人员常遇到的一个棘手问题&#xff0c;它是一个与具体技术无关的普遍挑战。 这个问题可以很简单&#xff0c;也可以相当复杂。 有时候&#xff0c;只是一个死循环在作祟。 有时候&#xff0c;是死锁导致的。 有时候&#xff0c;代码中有…...

物理层(二)

2.2 传输介质 2.2.1 双绞线、同轴电缆、光纤和无线传输介质 传输介质也称传输媒体&#xff0c;是数据传输系统中发送器和接收器之间的物理通路。传输介质可分为:①导向传输介质&#xff0c;指铜线或光纤等&#xff0c;电磁波被导向为沿着固体介质传播:②)非导向传输介质&…...

C#——文件读取IO操作File类详情

文件读取操作 IO类 就是对应文件的操作的类I/O类 包含各种不同的类 用于执行各种文件操作&#xff0c;创建文件删除文件读写文件 常用的类: File处理文件操作的类 FilleStream用于文件当中任何位置的读写 File类 1.文件创建 File.Create() 在指定路径下创建…...

昨天gitee网站访问不了,开始以为电脑哪里有问题了

昨天gitee网站下午访问不了&#xff0c;开始以为是什么毛病。 结果同样的网络&#xff0c;手机是可以访问的。 当然就ping www.gitee.com 结果也下面那样是正常的 以为是好的&#xff0c;但就是访问www.gitee.com也是不行&#xff0c;后来用阿里云的服务器curl访问是下面情况&…...

深入理解适配器模式:Java实现与框架应用

适配器模式是一种结构型设计模式&#xff0c;它允许将一个类的接口转换成客户端希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的类可以协同工作。在本篇博客中&#xff0c;我们将详细介绍适配器模式&#xff0c;并演示如何在Java中实现它。最后&#xff0…...

跌倒识别:守护公共安全的AI技术应用场景-免费API调用

随着科技的不断进步&#xff0c;人工智能在各个领域的应用日益广泛&#xff0c;其中在公共安全领域&#xff0c;智能跌倒识别系统正逐渐成为守护人们安全的重要工具。本文将分享智能跌倒识别系统在不同场景下的应用及其重要性。 产品在线体验地址-API调用或本地化部署 AI算法模…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...