发新帖我要提问
123
返回列表
打印

GD32F103C8T6的电池管理系统

[复制链接]
楼主: ADZ2016
手机看帖
扫描二维码
随时随地手机跟帖
41
ADZ2016|  楼主 | 2019-7-31 16:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
均衡系统软件设计通过C语言进行编程,采用嵌入式C语言进行模块化编程从而实现对整个均衡系统的编程控制工作。该均衡系统软件部分主要由电压采集模块初始化子程序、温度检测模块子程序、电流采集模块初始化子程序,均衡控制模块子程序、报警电路模块子程序、数据通信模块等程序组成。首先主要介绍主程序部分,接下来重点介绍GD32控制系统其余独立模块,包括电压采集部分、电流采集部分、温度检测部分、上位机显示部分、均衡模块部分、数据通信部分、报警电路部分等。

使用特权

评论回复
42
ADZ2016|  楼主 | 2019-7-31 16:23 | 只看该作者
每个DS18B20仅有3个I/O端口,其中仅有唯一的数据传送I/O端口负责与MCU之间的双向数据进行传输。MCU对DS18B20的访问必须经历三个步骤:(1)对DS18B20进行初始化与接口配置(2)对只读存储器ROM进行识别与读取(3)对数据存储器RAM进行温度读取工作。当系统开始运行之后,首先要对DS18B20进行复位设置,以免上次测量数据还未进行初始化从而影响测量数据的精确性。当温度采集芯片复位设置结束以后,均衡系统会发出搜寻DS18B20的命令,最后再发送RAM指令从而实现对温度数据的读取工作。本设计严格遵守单总线的传输时序,并选择了最高12bit分辨率,此时测量精度高达0.0625摄氏度。测温流程如图5.2所示。

使用特权

评论回复
43
ADZ2016|  楼主 | 2019-7-31 16:23 | 只看该作者
    电流数据采集首先需要均衡系统对电流采集芯片进行初始化设置,继而将所采集结
果送入主控芯片,通过芯片内置的12bit lus A/D转换器完成数据的读取工作。软件流程
如图5.3所示。

使用特权

评论回复
44
ADZ2016|  楼主 | 2019-7-31 16:24 | 只看该作者
当软件程序进入电压采集入口时,首先要对LTC6802工作状态进行初始化设置,此时LTC6802将开启A/D转换,并根据GD32的控制命令对电池进行电压读取工作,并将所采集数据结果传递给GD32。当电压数据读取结束之后,芯片将更新寄存器中电压值,并将所读取电压放入相应数组进行存储,电压采集流程图如图5.4所示。LTC6802驱动程序包括写配置寄存器,电池电压转换,读电压寄存器,经过该三步后,就可以从LTC6802中读取电压数值。写配置寄存器其实就是对LTC6802芯片进行初始化设置,比如转换时间、工作方式等;开始电压转换后,每一个分路分时进行电压采集;读电压寄存器就是从寄存器中读取电压值。需要注意的是,一次只能读一个字节(即8位),但是由于一个电压值要12位表示,所以要对读到的电压字节进行一定的整合,才能得到电池电压数值。

使用特权

评论回复
45
ADZ2016|  楼主 | 2019-7-31 16:30 | 只看该作者

使用特权

评论回复
46
ADZ2016|  楼主 | 2019-7-31 16:30 | 只看该作者

使用特权

评论回复
47
ADZ2016|  楼主 | 2019-7-31 16:32 | 只看该作者
虽然现在汽车领域通信协议有很多,但是应用范围最广、普及力度最大的还是要属CAN总线协议。CAN总线通常采用多主工作方式,网络上任何一节点都可以在任何时刻主动向网络请求发送报文。此外,节点还可以通过远程请求的方式要求某些节点发送相关报文,当多个节点同时向总线发送报文的时候,按显位覆盖隐文的原则决定报文的优先级,优先级低的节点则自动退出发送,而优先级最高的可以不受影响继续发送。而且在节点发生严重错误的情况下具有自动关闭的功能,从而大大减小了错误节点对总线上其他节点的影响。CAN总线节点数取决于总线的驱动电路,最多可达110个,报文标识符可达2032种(CAN2.OA,而扩展标准(CAN2.OB)的报文标识符几乎不受限制。CAN总线对于数据输送主要是利用CANH和CANL来进行的,CAN总线拓扑结构如图5.7所示,所有节点都通过CAN收发器连接到CANH和CANL,在CAN总线末尾处连接有12052电阻来保护数据免受伤害。

使用特权

评论回复
48
ADZ2016|  楼主 | 2019-7-31 16:32 | 只看该作者
当均衡控制系统上电以后首先要对SN65HVD230进行复位设置,复位的主要目的是让SN65HVD230进入到一个己知状态,迫使其进入配置模式。SN65HVD230必须在配置状态下设置位屏蔽、定时器、滤波器。以前的电池管理系统仅仅只需要测量电池的数据,对通信方面的要求则不像现在这么严格,其实一个完整的电池管理系统,不仅需要能够实时在线测量电池的工作数据,而且还应该包括实时进行数据传递以供人们方便、直观的进行查看。这样的BMS才是一个完整的电池管理系统。数据处理流程图如图5.8所示。

使用特权

评论回复
49
ADZ2016|  楼主 | 2019-7-31 16:33 | 只看该作者

使用特权

评论回复
50
ADZ2016|  楼主 | 2019-7-31 16:33 | 只看该作者

使用特权

评论回复
51
ADZ2016|  楼主 | 2019-7-31 16:33 | 只看该作者
在仿真过程中将预设电压差值,由于是对均衡主电路的原理进行验证,为了减少干扰因素,确保均衡效果仿真的有效性,对实际电路设计中的高精度电压采样与检测报警子系统进行了简化。Matlab/Simulink这种专用模块具有强大的功能,器内部给出了电路主要元器件,如电磁元件、开关器件、埋电池、二极管等的标准模型。这些模型具备了标准的外部特性且比较精确,因此在使用中,可以根据设计的参数要求选中所需要的元器件,并且自行定义该模型的关键参数即可实现准确地调用和系统模型的搭建工作,通过这种方式搭建的系统模型,不仅电路特性准确,而且结构简单,非常利于电路模拟,因此具有一定参考价值。本文选用Simulink自带电池原型作为本次仿真所用电池模型。根据所设计原理对三节单体电池进行仿真设计,当仿真启动后,由方波发生器直接产生PWM信号,忽略了实际电路中MOSFET驱动电路造成的电压变化,仿真原理图如图6.2所示。

使用特权

评论回复
52
ADZ2016|  楼主 | 2019-7-31 16:34 | 只看该作者
图6.3为单元内均衡单元内电感电流变化情况,图6.4为电池单元内单体电池电压变化情形。通过图6.4可以得知刚开始的时候三节电池差异较大,但经过一定均衡时间之后,差异性在逐渐缩小,这说明在单元内双向Buck-Boost电路均衡控制作用下单体电池间的差异得到了有效控制。

使用特权

评论回复
53
ADZ2016|  楼主 | 2019-7-31 16:34 | 只看该作者

使用特权

评论回复
54
goodluck09876| | 2019-7-31 16:41 | 只看该作者
请问做这个系统经过国家或者一些部门的认证吗?

使用特权

评论回复
55
ADZ2016|  楼主 | 2019-8-3 09:25 | 只看该作者
是需要国家相关部门认证的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则