嵌入式系统在蓄电池充电中应用研究报告.docx

上传人:b****3 文档编号:3689084 上传时间:2022-11-24 格式:DOCX 页数:21 大小:354.36KB
下载 相关 举报
嵌入式系统在蓄电池充电中应用研究报告.docx_第1页
第1页 / 共21页
嵌入式系统在蓄电池充电中应用研究报告.docx_第2页
第2页 / 共21页
嵌入式系统在蓄电池充电中应用研究报告.docx_第3页
第3页 / 共21页
嵌入式系统在蓄电池充电中应用研究报告.docx_第4页
第4页 / 共21页
嵌入式系统在蓄电池充电中应用研究报告.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

嵌入式系统在蓄电池充电中应用研究报告.docx

《嵌入式系统在蓄电池充电中应用研究报告.docx》由会员分享,可在线阅读,更多相关《嵌入式系统在蓄电池充电中应用研究报告.docx(21页珍藏版)》请在冰豆网上搜索。

嵌入式系统在蓄电池充电中应用研究报告.docx

嵌入式系统在蓄电池充电中应用研究报告

目录

一.设计题目1

二.设计要求1

三.设计的作用与目的1

四.系统硬件设计2

4.1接口电路设计4

4.1.1时钟电路及复位电路4

4.1.2JTAG调试接口电路4

4.1.3LCD串行接口设计5

4.1.4RS232接口设计6

4.2驱动电路的设计7

4.3采样电路设计8

4.3.1输入电压采样电路8

4.3.2蓄电池端电压采样电路9

4.3.3蓄电池充电电流采样电路9

4.3.4蓄电池温度采样电路10

4.4保护电路设计11

4.5电源电路设计12

五.系统软件设计13

5.1系统软件的总体结构13

5.2应用μC/OS-II的必要准备13

5.2.1定义任务优先级13

5.2.2定义任务栈空间14

5.2.3定义消息邮箱14

5.2.4μC/OS-II的基本函数14

六.系统仿真与调试15

6.1主控模块及其流程图15

6.2主任务模块及其流程图17

6.2.1A/D采样模块软件仿真设计17

6.2.2充电模式仿真设计17

6.4.4LCD显示任务模块及其流程图···································18

七.结论20

八.嵌入式系统实习心得21

九.参考文献22

嵌入式系统在蓄电池充电中的应用研究

1.设计题目

嵌入式系统在蓄电池充电中的应用研究

2.设计要求

本文的主要目的是研究并设计一套蓄电池充电控制器,控制器的总体功能和技术要求如下:

(1>充电系统的输入直流电压范围为200~650V;

(2>充电系统的直流输出电压范围为0~60V,待充蓄电池组额定电压为48V;

(3>充电系统的输出直流电流范围为0~20A;

(4>充电系统的最大输出功率为1200W;

(5>充电系统应根据蓄电池的荷电状态采用合适的充电方法对蓄电池进行充电;

(6>充电系统应具有完善的充电保护功能;

(7>充电系统应具有实时显示和监控的功能。

3.设计的作用与目的

如何高效、快速、安全地对蓄电池进行充电控制,一直是人们关心的问题。

虽然蓄电池问世至今已有100多年的历史,但是由于技术条件的限制,目前很多的充电器仍然采用传统的充电方式。

铅酸蓄电池作为一种可重复使用的储能设备得到了广泛的应用,但是充电一直是影响其使用寿命的关键问题。

随着铅酸蓄电池在新能源开发中的广泛应用,对蓄电池的充电方法和充电装置都提出了新的要求:

研究并设计一种快速、高效、安全的蓄电池充电系统成为一项很重要的任务。

对蓄电池充电的改进可以从两个方面考虑,一是蓄电池的充电方法,二是蓄电池的充电装置。

随着电力电子技术、微电子技术、计算机技术以及自动控制技术的发展,蓄电池的充电控制方法和充电装置的研究也越来越广泛,这两个方面的研究设计对光伏发电、电动汽车等新兴绿色环保产业的发展具有非常重要的意义。

本文致力于研究并设计一种快速、安全、智能的蓄电池充电控制器。

蓄电池的充电过程主要分为激活充电、大电流快速充电、过充电和浮充电四个阶段。

这四个充电阶段是完全按照蓄电池的状态进行设置的,多模式充电控制策略考虑到蓄电池在实际使用过程中的荷电状态,根据蓄电池的荷电状态进行相应的充电控制,通过对蓄电池端电压的检测,确定采用何种充电模式,有效地维护了蓄电池的充电寿命。

这种多模式的充电方法综合了恒流充电快速而安全、及时补偿蓄电池电量和恒压充电能够控制过充电以及在浮充状态保持蓄电池100%电量的优点。

这种充电控制策略能够实时检测充电情况并按预定的充电方案对蓄电池充电;通过对蓄电池荷电状态的分析与判断,选择合适的充电模式,激活充电能够有效地激活过放电蓄电池内部的活性物质,避免初始大电流快速充电对蓄电池造成损坏;大电流快速充电能够最大效率地补足蓄电池的电量;过充电能够能够使得蓄电池的电量接近100%充满,最后的浮充电又能够补充蓄电池自身放电而损失的电量,进一步补充蓄电池的电量并延长蓄电池的使用寿命。

本文根据充电系统的功能要求和技术指标,进行了总体方案设计。

蓄电池充电控制器的控制方式采用基于时下最常用的嵌入式ARM7微处理器LPC2292的数字控制。

充电系统采用多模式充电控制策略,分别为激活充电、大电流快速充电、过充电和浮充电四种模式。

根据充电系统的总体方案,对充电控制器的硬件和软件进行了详细的设计与实现。

硬件部分主要充电控制器的驱动电路,采样电路,保护电路以及辅助电源的设计。

软件部分主要包括介绍了μC/OS-II实时操作系统在ARM7上的移植和各个软件模块包括A/D采样、控制器数据的处理以及数据在LCD显示等程序的实现。

4.系统硬件设计

本文的充电控制器以嵌入式作为平台,以ARM7LPC2292为核心,由于该款芯片的片内外设功能丰富,能完成模拟量的采样转换、数据处理和控制调节、以及片内的定时器可产生占空比调节的PWM控制信号,完全能够实现蓄电池的充电控制,同时该单片机的I/O端口和异步串行通信接口能方便实现外接LCD显示和上位机的串行通信。

充电控制器的硬件结构如图4.1所示。

这种数字化的充电控制器满足了充电系统输出可编程控制、具有数据通讯和显示、智能化控制等要求。

下面将分别介绍充电控制器中复位电路、JTAG接口、LCD串行接口和RS232接口的硬件设计。

 

图4.1充电控制器硬件结构图

本系统对CPU的特殊要求有以下几点:

(1>.能提供至少1路独立的脉宽调制(PWM>输出(若不能提供,则系统的工作频率至少要求100M以上>;

(2>.有4个8位或者10位精度的AD转换器(现在也有不少单片机带有AD功能,但单买AD转换器会造成成本的提高>;

(3>.带有CAN总线控制器;

(4>.具有JTAG接口;

(5>.除以上之外,至少还需要35个普通I/0口。

考虑以上条件,采用ARM公司LPC2200系列中的2292微控制芯片作为中央处理器。

下表4.1给出LPC2292的管脚配置。

表4.1LPC2292的管脚配置

4.1接口电路设计

4.1.1时钟电路及复位电路

LPC2000系列ARM7微控制器可使用外部晶振或外部时钟源,内部PLL电路可调整系统时钟,使系统运行速度更快(CPU最大操作时钟为60MHZ>。

本设计为提高系统反应速度,启用片内的PLL功能(使用此功能,则外部晶振的频率限定在10~25MHz>。

振荡器工作在振荡模式下,由于片内集成了反馈电阻,只需在外部连接一个晶体和电容Cx1、Cx2就可形成基本模式的振荡。

晶振选用11.0592MHz,使串口波特率更精确。

如图4.2所示。

图4.2振荡模式下晶振连接

复位电路采用上电复位电路,如图4.3所示。

图4.3上电复位电路

4.1.2JTAG调试接口电路

JTAG标准是一种国际标准测试协议IEEE1149.1,主要用于芯片内部测试及对系统进行仿真、调试。

通过JTAG接口,可以对芯片内部的所有部件进行访问,因而是开发调试的一种简洁高效的手段。

LPC2292处理器内置了串行JTAG接口,可通过此接口对片内256K的FLASH存储器进行编程以及程序的烧写和调试,给用户的开发带来极大的方便。

接口电路如图4.4所示。

图4.4JTAG调试接口

4.1.3LCD串行接口设计

本文采用的LCD型号为CA12864K,该LCD内部的中文字型点阵控制器为ST7920,可显示四行八列汉字,也可显示图形,内置8192个简体中文汉字(16×16点阵>。

LCD使用3.3V进行供电,LPC2292与LCD的接口有并行和串行两种模式,可方便地实现8位、4位并行接口或者串行接口数据传输,采用哪种模式由LCD中的PSB引脚控制,PSB接高电平时选择并行模式,接低电平时选择串行模式。

LPC2292采用串行接口的方式与LCD进行连接,图4.5所示为LCD串行接口。

图4.5LCD串行接口

LCD的各引脚定义及功能如表4.2所示。

LCD与LPC2292的串行接口只需连接三个引脚:

RS、SID和SCLK。

LPC2292通过P0.10-P0.17口与LCD串行通信,P0.6接液晶的SCLK端,P0.4接液晶的RS端,P0.5接液晶的SID端。

将LCD的并口/串口选择引脚接地即为选择串行接口,RS为串行传输时的片选信号;SID为串行数据线,负责单片机往LCD的数据传输;SCLK为传输时的时钟信号,该时钟信号由LPC2292提供。

充电控制器在运行中,时刻检测蓄电池的充电参数,对输入电压、输出电压、输出电流和温度等信息进行数据处理和反馈控制调节的同时,通过串行接口将充电信息送入LCD中进行显示,实现了充电系统在运行中的实时显示和监控功能。

表4.2LCD各引脚定义及功

4.1.4RS232接口设计

RS232接口是充电系统与上位机通信的重要工具,基于单片机控制的蓄电池充电系统能够方便地实现与上位机的通信,将充电过程中蓄电池的参数和控制数据传送至上位机。

LPC2292的通用串行通信接口(USCI>模块具有两组可同时使用的独立通道。

异步通道(USCI_A>支持UART模式、SPI模式、IrDA的脉冲成形以及LIN通信的自动波特率检测。

同步通道(USCI_B>支持

和SPI模式。

本充电控制器采用UART模式通过RS232接口与上位机进行通信。

RS232接口硬件电路如图4.6所示。

图4.6RS232接口原理图

4.2驱动电路的设计

在充电系统中,驱动电路设计非常重要,驱动电路将直接影响到整个充电系统的工作性能和可靠性。

在本充电系统中,对于IGBT驱动电路的设计有如下要求:

(1>动态驱动能力强,能为IGBT栅极提供具有陡峭前后沿的驱动脉冲。

否则IGBT会在开通与关断过程中产生较大的开关损耗。

(2>能向IGBT提供适当的正向和反向栅极电压。

IGBT导通时,IGBT的栅极正向栅极电压取+15V左右比较恰当;为了提高IGBT的关断耐压和抑制干扰的能力,IGBT关断时在其栅极加-5V的反向电压即可让IGBT可靠截止。

(3>IGBT驱动电路必须能够实现控制电路与被驱动的IGBT栅极之间的电隔离。

同时双管反激电路中,两个功率开关管不供地,因而两路驱动信号彼此间也需要电气隔离。

(4>驱动电路应尽量靠近IGBT,使得驱动线路尽可能短,避免其他信号的干扰。

本充电系统需要两路相互隔离的控制信号,其中一路隔离驱动电路如图4.7所示,图4.7中,三极管D882和B772构成了图腾柱输出,图腾柱输出能够增强控制信号的驱动能力,磁环变压器起到了信号隔离的作用。

电容C3为隔直电容,R1为栅极驱动电阻,目的是防止电流尖峰引起的高频振荡。

D1、D2为稳压二极管1N4744,通过D1和D2可将驱动电路的输出电压箝位在±15V。

R2和稳压二极管也可以提高IGBT的抗电压尖峰和抗干扰能力。

在实际的系统控制中,LPC2292输出的PWM控制信号经过电平转换后与硬件保护信号进行逻辑运算,逻辑运算后的PWM控制信号即为驱动电路的输入信号PWM1和PWM2,这两路控制信号分别送入两路独立的驱动电路中,经过驱动电路对控制信号进行隔离与放大,形成两路相互隔离的控制信号DRV_G1和DRV_G2,这两路隔离的控制信号驱动功率开关管IGBT的开通与关断。

图4.7驱动电路原理图

4.3采样电路设计

稳定可靠的充电系统要有完善的检测与保护电路,这样才能根据电路的反馈信息,及时调整控制信号,保证系统按预定的控制策略稳定运行,而且当系统发生故障时,可以及时停止充电系统的运行。

4.3.1输入电压采样电路

该电路主要实现对系统输入电压的采样,如图4.8所示。

因为LPC2292的ADC采样输入范围在0~3.3V之间,而系统的输入电压范围为200V~650V,因此将输入电压

由电阻分压得到调理后的输入电压采样,调理后的输入电压采样经过二极管的箝位和RC低通滤波后送入的采样输入端ADC0。

图4.8输入电压采样电路

4.3.2蓄电池端电压采样电路

该电路主要实现蓄电池的端电压的采样,蓄电池的端电压在蓄电池的充电过程中极为重要,它反映了蓄电池的容量状态,并且系统的充电控制策略都是根据蓄电池的端电压进行判断的,蓄电池的端电压关系到充电系统采用何种充电模式对蓄电池进行充电。

如果系统在充电初始时检测到蓄电池处于过放电状态,即蓄电池的端电压低于欠压阈值

时,充电控制器需要对蓄电池进行小电流的激活充电,使蓄电池端电压恢复到可接受快速充电的状态;蓄电池充电过程中,四种充电模式的相互切换都与蓄电池的端电压有关,因而对于蓄电池端电压的采样检测非常重要,蓄电池端电压检测电路的设计与输入电压采样电路相同,如图4.9所示。

蓄电池端电压经过电阻分压后得到端电压采样

,经过二极管箝位和电阻电容构成的低通滤波器后送入单片机的ADC1采样输入端。

图4.9蓄电池端电压采样电路

4.3.3蓄电池充电电流采样电路

蓄电池的充电电流对于蓄电池的充电控制最为关键,在本系统中,激活充电和大电流快速充电都需要进行恒流充电控制。

因此采用霍尔电流传感器来检测蓄电池的充电电流,霍尔电流传感器的特点是可以实现电流的“无电位”检测。

即测量电路不必接入被测电路即可实现电流检测,他们靠磁场进行耦合。

因此,检测电路的输入、输出电路是完全隔离的。

检测过程中,被测电路的状态不受检测电路的影响,检测电路也不受被测电路的影响。

霍尔电流传感器的工作原理是基于霍尔效应,利用通电导线周围产生的磁场大小与流过导线的电流成正比,通过磁芯聚集感应到霍尔器件上,间接地检测出电流的大小。

本系统采用的霍尔电流传感器型号为HNC-050P,其测量范围为0~±75A,响应时间小于1us,采用±15V供电。

转换比率为1000:

1。

充电电流采样电路如图4.10所示。

将输出电流从电流传感器的穿孔芯中穿入,电流传感器将电流缩小1/1000,传感器的次级使用100Ω的小电阻,将电流信号转换为电压信号

再将该电压信号经过RC滤波电路后,然后将滤波后的电压信号

送入LPC2292的采样端口ADC2进行模数转换。

图4.10充电电流采样电路

4.3.4蓄电池温度采样电路

蓄电池在充电过程中,由于极化现象的存在,蓄电池会有一定温升。

温度过高,会直接影响充电效率,同时对电池损坏很大,缩短蓄电池的使用寿命。

所以,在充电过程中电池温度是很重要的一个信息。

在本充电系统中,过充电压和浮充电压都需要根据蓄电池的温度进行补偿,合理设置蓄电池的过充电压和浮充电压,能有效延长蓄电池的充电使用寿命。

目前国内常用的温度传感器是热敏电阻,而该温度传感器是非线性传感器,在使用过程中必须外加补偿电路,因此电路复杂、体积较大。

在本充电系统中,选用美国国家半导体公司的LM35系列精密温度传感器。

其特点是:

(1>输出电压与摄氏温度成线性比例关系,为

,无需调整或校准;

(2>精度较高;

(3>工作电压范围为4~30V;

(4>很低的输出阻抗,在负载电流为1mA时,仅为0.1Ω;

LM35的基本电路十分简单,在单电源4~20V工作电压时,测量温度范围为

,其输出电压为

,即

时输出为0mV,每升高

,输出电压增加10mV。

LM35的电源供电模式有单电源和正负双电源模式,正负双电源的供电模式可提供负温度的测量,本系统采用15V单电源供电模式。

图4.11温度采样电路

温度采样电路如图4.11所示。

在充电系统中,温度传感器的输出经过二极管箝位和低通滤波后送入LPC2292的ADC3采样输入端,LPC2292只需采样该端口即可得到蓄电池的环境温度。

在充电过程中,LPC2292内设置的过充电压和浮充电压根据检测到的蓄电池温度进行补偿,延长蓄电池的充电使用寿命。

4.4保护电路设计

本充电系统具备完善充电保护功能。

充电保护电路分别为输入过压保护、输出过压保护和输出过流保护。

在图4.12中,保护电路产生的保护信号Pro与充电控制器产生的PWM控制信号PWM_O1、PWM_O2进行逻辑运算,当保护电路发生保护时,保护信号Pro输出为低电平0,此时PWM1与PWM2的输出均为低电平0,这两个PWM控制信号经过两路独立驱动电路的隔离放大,控制功率开关管IGBT的关断,有效地保护了系统的运行。

同时,各个保护电路中的发光二极管能够直观地显示系统的故障来源,方便了故障的排除。

图4.12保护信号与PWM信号逻辑运算

4.5电源电路设计

电源为整个系统提供能量,是整个系统的基础。

设计电源的过程,是各种因素互相权衡的过程,需要考虑的因素有:

输出电压、电流、功率,输入电压、电流、安全因素,输出波纹,电磁兼容与抗干扰,成本等。

本开发平台采用直流供电。

本控制系统的电源由4块串连的12V铅蓄电池提供,即供电电源电压为48V。

LPC2000系列ARM7微控制器均要采用两种电源,I/O口工作电源为+3.3V,内核及片内外设供电电源为+1.8V。

温度传感器和驱动电路等又需要有+5V和+15V电源,所以整个系统的工作电压有+1.8V、+3.3V、+5V和+15V,因此采用稳压电源芯片7824、7815、1117-3.3、1117-1.8和1117-5产生所需电压,电路设计简单可靠,如图4.13所示。

图4.13系统电源电路

五.系统软件设计与实现

5.1系统软件的总体结构

根据系统总体设计的分析,其工作过程的各步骤被分配到几个具体的、独立的功能模块之中。

与之对应,该系统的应用软件分为6个模块:

主控程序模块;主任务模块;PWM波产生模块;串行通信控制模块;数据采样模块;LCD显示模块。

主控程序模块的功能是在运行任务前初始化各个功能模块,建立主任务,启动定时中断以及启动多任务的运行。

主任务模块的功能是负责系统总体的逻辑与流程控制,协调、调度各任务功能模块,以实现对蓄电池充电控制器的内部的数据的处理及显示。

5.2应用μC/OS-II的必要准备

基于移植好的μC/OS-II进行系统应用软件的设计,需要作以下必要的准备:

定义任务的优先级、定义任务栈空间、定义消息邮箱。

5.2.1定义任务优先级

根据系统软件的总体结构分析,创建具有不同优先级的5个任务:

主任务Main_Task(>、PWM波产生任务PWM_Task(>、控制器数据接收任务Recv_Char_Task(>、控制器数据处理任务Pro_Data_Task(>和LCD显示任务DIS_Task(>,它们的优先级分别是12、14、16、18、20,即主任务的优先级最高,LCD显示任务的优先级最低。

具体源程序代码如下:

#defineMain_Task_PRIO12

#definePWM_Task_PRIO14

#defineRecv_Char_Task_PRIO16

#definePro_Data_Task_PRIO18

#defineDIS_Task_PRIO20

5.2.2定义任务栈空间

对于μC/OS-II和绝大多数的可剥夺型内核而言,每个任务都需要分配自己的堆栈空间。

堆栈必须声明为OS_STK类型,并且由连续的内存空间组成。

每个任务的堆栈容量可以单独指定,为简化起见,本程序都定义成相同的容量。

用户可以静态地分配堆栈空间<在编译时分配),也可以动态地分配堆栈空间<在运行时分配)。

本次设计采用静态分配方式。

具体源程序代码如下:

OS_STKMain_Stack[STACKSIZE]={0,}。

OS_STKPWM_Stack[STACKSIZE]={0,}。

OS_STKRecv_Char_Stack[STACKSIZE]={0,}。

OS_STKPro_Data_Stack[STACKSIZE]={0,}。

OS_STKDIS_Stack[STACKSIZE]={0,}。

5.2.3定义消息邮箱

要使用消息邮箱,首先就要定义消息邮箱,消息邮箱的定义是通过OS_EVENT数据结构实现的。

μC/OS-II通过UCOS_II.H头文件中定义的OS_EVENT数据结构,维护一个事件控制块ECB的所有信息。

该结构中除了包含事件本身的定义外还定义了该事件的所有任务的列表。

每个信号量、消息邮箱、消息队列都分配到一个事件控制块ECB。

任务之间或任务和中断服务子程序之间的通信是通过事件控制块ECB(EventControlBlocks>实现的,即任务或中断服务子程序可以通过事件控制块ECB向另外的任务发送信号。

这里信号被看成是事件(Event>。

事件控制块ECB是用于实现下列功能函数的基本数据结构,如信号量、消息邮箱、消息队列等相应的功能函数。

OS_EVENT*Mbox1。

5.2.4μC/OS-II的基本函数

在应用软件中常用到OSInit(>、OSStart(>、OSTaskCreate(>、OSTimeDly(>、OSTaskDelReq(>等几个常用的μC/OS-II的函数,它们的特点和作用如下。

函数OSInit(>的功能是对μC/OS-II操作系统初始化。

在调用μC/OS-II的任何其他服务之前,μC/OS-II要求首先调用系统初始化函数OSInit(>。

OSInit(>初始化μC/OS-II所有的变量和数据结构,并建立空闲任务OS_TaskIdle(>。

函数OSStart(>的功能是启动多任务,将控制权交给μC/OS-II内核,开始运行多任务。

OSStart(>将判断所有建立的任务中哪一个任务是最重要的,即优先级最高,并开始运行这个任务。

在启动多任务OSStart(>之前,至少要先建立一个任务,否则应用程序就会崩溃。

函数OSTaskCreate(>的功能是建立任务。

如果要让μC/OS-II管理用户的任务,就必须先要建立任务,通过调用OSTaskCreate(>函数来实现。

任务可以在多任务调度开始前建立,也可以在其他任务的执行过程中建立。

在开始多任务调度之前,用户必须建立至少一个任务。

任务不能由中断服务程序

OSTaskCreate(>函数需要4个参数:

指向任务代码的指针;任务开始执行时,传递给任务参数的指针;分配给任务堆栈的栈顶指针;分配给任务的优先级。

这里在主控程序中建立主任务。

μC/OS-II提供一个可以被任务调用而将任务延时一段特定时间的功能函数OSTimeDly(>,这段时间的长短是由指定的时钟节拍的数目来确定的。

一旦调用该函数,通知μC/OS-II该任务本次运行已经结束,可以让下一个最高优先级的任务运行。

若没有函数OSTimeDly(>或类似的函数,则任务将是一个真正的无限循环,任何其他任务都没有运行的机会。

μC/OS–II建立的任务会占用一些内存缓冲区或信号量一类的资源。

此时如果另一个任务试图删除该任务,这些被占用的资源就会因为没有被释放而丢失,这将导致存储器漏洞,而这是任何嵌入式系统都无法接受的。

因此,要想办法让拥有这些资源的任务在使用完资源后,先释放资源

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1