收藏 分享(赏)

嵌入式系统在蓄电池充电中和研究.doc

上传人:春华秋实 文档编号:2898954 上传时间:2018-09-29 格式:DOC 页数:25 大小:441KB
下载 相关 举报
嵌入式系统在蓄电池充电中和研究.doc_第1页
第1页 / 共25页
嵌入式系统在蓄电池充电中和研究.doc_第2页
第2页 / 共25页
嵌入式系统在蓄电池充电中和研究.doc_第3页
第3页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、.目录一. 设计题目 1二. 设计要求 1三. 设计的作用与目的 1四. 系统硬件设计 24.1 接口电路设计 .44.1.1 时钟电路及复位电路 .44.1.2 JTAG 调试接口电路 44.1.3 LCD 串行接口设计 .54.1.4 RS232 接口设计 .64.2 驱动电路的设计 .74.3 采样电路设计 .84.3.1 输入电压采样电路 .84.3.2 蓄电池端电压采样电路 .94.3.3 蓄电池充电电流采样电路 .94.3.4 蓄电池温度采样电路 104.4 保护电路设计 114.5 电源电路设计 12五. 系统软件设计 135.1 系统软件的总体结构 135.2 应用 C/OS

2、-II 的必要准备 135.2.1 定义任务优先级 135.2.2 定义任务栈空间 145.2.3 定义消息邮箱 14.5.2.4 C/OS -II 的基本函数 .14六. 系统仿真与调试 156.1 主控模块及其流程图 156.2 主任务模块及其流程图 176.2.1 A/D 采样模块软件仿真设计 176.2.2 充电模式仿真设计 176.4.4 LCD 显示任务模块及其流程图18七. 结论 20八. 嵌入式系统实习心得 21九. 参考文献 22.嵌入式系统在蓄电池充电中的应用研究1设计题目嵌入式系统在蓄电池充电中的应用研究2设计要求本文的主要目的是研究并设计一套蓄电池充电控制器,控制器的总

3、体功能和技术要求如下:(1) 充电系统的输入直流电压范围为 200650V;(2) 充电系统的直流输出电压范围为 060V,待充蓄电池组额定电压为 48V;(3) 充电系统的输出直流电流范围为 020A;(4) 充电系统的最大输出功率为 1200W;(5) 充电系统应根据蓄电池的荷电状态采用合适的充电方法对蓄电池进行充电;(6) 充电系统应具有完善的充电保护功能;(7) 充电系统应具有实时显示和监控的功能。3设计的作用与目的如何高效、快速、安全地对蓄电池进行充电控制,一直是人们关心的问题。虽然蓄电池问世至今已有 100 多年的历史,但是由于技术条件的限制,目前很多的充电器仍然采用传统的充电方式

4、。铅酸蓄电池作为一种可重复使用的储能设备得到了广泛的应用,但是充电一直是影响其使用寿命的关键问题。随着铅酸蓄电池在新能源开发中的广泛应用,对蓄电池的充电方法和充电装置都提出了新的要求:研究并设计一种快速、高效、安全的蓄电池充电系统成为一项很重要的任务。对蓄电池充电的改进可以从两个方面考虑,一是蓄电池的充电方法,二是蓄电池的充电装置。随着电力电子技术、微电子技术、计算机技术以及自动控制技术的发展,蓄电池的充电控制方法和充电装置的研究也越来越广泛,这两个方面的研究设计对光伏发电、电动汽车等新兴绿色环保产业的发展具有非常重要的意义。本文致力于研究并设计一种快速、安全、智能的蓄电池充电控制器。蓄电池的

5、充电过程主要分为激活充电、大电流快速充电、过充电和浮充电四个阶段。.这四个充电阶段是完全按照蓄电池的状态进行设置的,多模式充电控制策略考虑到蓄电池在实际使用过程中的荷电状态,根据蓄电池的荷电状态进行相应的充电控制,通过对蓄电池端电压的检测,确定采用何种充电模式,有效地维护了蓄电池的充电寿命。这种多模式的充电方法综合了恒流充电快速而安全、及时补偿蓄电池电量和恒压充电能够控制过充电以及在浮充状态保持蓄电池 100%电量的优点。这种充电控制策略能够实时检测充电情况并按预定的充电方案对蓄电池充电;通过对蓄电池荷电状态的分析与判断,选择合适的充电模式,激活充电能够有效地激活过放电蓄电池内部的活性物质,避

6、免初始大电流快速充电对蓄电池造成损坏;大电流快速充电能够最大效率地补足蓄电池的电量;过充电能够能够使得蓄电池的电量接近 100%充满,最后的浮充电又能够补充蓄电池自身放电而损失的电量,进一步补充蓄电池的电量并延长蓄电池的使用寿命。本文根据充电系统的功能要求和技术指标,进行了总体方案设计。蓄电池充电控制器的控制方式采用基于时下最常用的嵌入式 ARM7 微处理器 LPC2292 的数字控制。充电系统采用多模式充电控制策略,分别为激活充电、大电流快速充电、过充电和浮充电四种模式。根据充电系统的总体方案,对充电控制器的硬件和软件进行了详细的设计与实现。硬件部分主要充电控制器的驱动电路,采样电路,保护电

7、路以及辅助电源的设计。软件部分主要包括介绍了 C/OS -II 实时操作系统在 ARM7 上的移植和各个软件模块包括A/D 采样、控制器数据的处理以及数据在 LCD 显示等程序的实现。4系统硬件设计本文的充电控制器以嵌入式作为平台,以 ARM7 LPC2292 为核心,由于该款芯片的片内外设功能丰富,能完成模拟量的采样转换、数据处理和控制调节、以及片内的定时器可产生占空比调节的 PWM 控制信号,完全能够实现蓄电池的充电控制,同时该单片机的 I/O 端口和异步串行通信接口能方便实现外接 LCD 显示和上位机的串行通信。充电控制器的硬件结构如图 4.1 所示。这种数字化的充电控制器满足了充电系统

8、输出可编程控制、具有数据通讯和显示、智能化控制等要求。下面将分别介绍充电控制器中复位电路、JTAG 接口、LCD 串行接口和 RS232 接口的硬件设计。.温度采样输入电压采样输出电压采样输出电流采样P W M 波输出R S 2 3 2 接口L C D 显示J T A G 程序下载调试复位电路L P C 2 2 9 2图 4.1 充电控制器硬件结构图本系统对 CPU 的特殊要求有以下几点:(1). 能提供至少 1 路独立的脉宽调制(PWM)输出(若不能提供,则系统的工作频率至少要求 100M 以上);(2). 有 4 个 8 位或者 10 位精度的 AD 转换器(现在也有不少单片机带有 AD

9、功能,但单买 AD 转换器会造成成本的提高);(3). 带有 CAN 总线控制器;(4). 具有 JTAG 接口;(5). 除以上之外,至少还需要 35 个普通 I/0 口。考虑以上条件,采用 ARM 公司 LPC2200 系列中的 2292 微控制芯片作为中央处理器。下表 4.1 给出 LPC2292 的管脚配置。表 4.1 LPC2292 的管脚配置端口号 引脚 I / O 类型 功能说明P 0 . 0P 0 . 1P 0 . 4P 0 . 2 8P 0 . 7P 0 . 6P 0 . 5P 0 . 2 7P 0 . 3 0P 0 . 2 9P 0 . 1 0 - P 0 . 1 7P 1

10、 . 2 7 - P 1 . 3 14 24 95 96 16 86 97 8 , 8 3 , 8 4 , 8 5 ,9 2 , 9 9 , 1 0 0 , 1 0 12 32 53 23 31 4 4 , 1 4 0 , 1 2 6 ,1 1 3 , 4 3OII / OI / OI / OIOIIIII / OR S 2 3 2 T X D 接口R S 2 3 2 R X D 接口C A 1 2 8 6 4 K R S 接口C A 1 2 8 6 4 K S I D 接口C A 1 2 8 6 4 K S C L K 接口P W M 波形输出C A 1 2 8 6 4 KD B 0 - D

11、 B 7 接口A D C 0 采样 ( 输入电压 )A D C 1 采样 ( 充电电压 )A D C 3 采样 ( 蓄电池温度 )A D C 2 采样 ( 充电电流 )J T A G 接口.4.1 接口电路设计4.1.1 时钟电路及复位电路LPC2000 系列 ARM7 微控制器可使用外部晶振或外部时钟源,内部 PLL 电路可调整系统时钟,使系统运行速度更快(CPU 最大操作时钟为 60MHZ)。本设计为提高系统反应速度,启用片内的 PLL 功能(使用此功能,则外部晶振的频率限定在 1025MHz)。振荡器工作在振荡模式下,由于片内集成了反馈电阻,只需在外部连接一个晶体和电容 Cx1、Cx2

12、就可形成基本模式的振荡。晶振选用 11.0592MHz,使串口波特率更精确。如图 4.2 所示。图 4.2 振荡模式下晶振连接复位电路采用上电复位电路,如图 4.3 所示。图 4.3 上电复位电路4.1.2 JTAG 调试接口电路JTAG 标准是一种国际标准测试协议 IEEE 1149.1,主要用于芯片内部测试及对系统进行仿真、调试。通过 JTAG 接口,可以对芯片内部的所有部件进行访问,因而是开.发调试的一种简洁高效的手段。LPC2292 处理器内置了串行 JTAG 接口,可通过此接口对片内 256K 的 FLASH 存储器进行编程以及程序的烧写和调试,给用户的开发带来极大的方便。接口电路如

13、图 4.4 所示。图 4.4 JTAG 调试接口4.1.3 LCD 串行接口设计本文采用的 LCD 型号为 CA12864K,该 LCD 内部的中文字型点阵控制器为 ST7920,可显示四行八列汉字,也可显示图形,内置 8192 个简体中文汉字(16 16 点阵)。LCD使用 3.3V 进行供电,LPC2292 与 LCD 的接口有并行和串行两种模式,可方便地实现 8 位、4 位并行接口或者串行接口数据传输,采用哪种模式由 LCD 中的 PSB 引脚控制, PSB 接高电平时选择并行模式,接低电平时选择串行模式。LPC2292 采用串行接口的方式与 LCD 进行连接,图 4.5 所示为 LCD

14、 串行接口。图 4.5 LCD 串行接口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 提供。充电控制器在运行中,时刻检测蓄电池的充电参数,对输入电压

15、、输出电压、输出电流和温度等信息进行数据处理和反馈控制调节的同时,通过串行接口将充电信息送入 LCD 中进行显示,实现了充电系统在运行中的实时显示和监控功能。表 4.2 LCD 各引脚定义及功4.1.4 RS232 接口设计RS232 接口是充电系统与上位机通信的重要工具,基于单片机控制的蓄电池充电系统能够方便地实现与上位机的通信,将充电过程中蓄电池的参数和控制数据传送至上位机。LPC2292 的通用串行通信接口(USCI)模块具有两组可同时使用的独立通道。异步通道(USCI_A) 支持 UART 模式、SPI 模式、IrDA 的脉冲成形以及 LIN 通信的自动波特率检测。同步通道 (USCI

16、_B)支持 和 SPI 模式。本充电控制器采用 UART 模式通过 2ICRS232 接口与上位机进行通信。RS232 接口硬件电路如图 4.6 所示。.图 4.6 RS232 接口原理图4.2 驱动电路的设计在充电系统中,驱动电路设计非常重要,驱动电路将直接影响到整个充电系统的工作性能和可靠性。在本充电系统中,对于 IGBT 驱动电路的设计有如下要求:(1) 动态驱动能力强,能为 IGBT 栅极提供具有陡峭前后沿的驱动脉冲。否则 IGBT 会在开通与关断过程中产生较大的开关损耗。(2) 能向 IGBT 提供适当的正向和反向栅极电压。IGBT 导通时,IGBT 的栅极正向栅极电压取+15V 左

17、右比较恰当;为了提高 IGBT 的关断耐压和抑制干扰的能力,IGBT 关断时在其栅极加-5 V 的反向电压即可让 IGBT 可靠截止。(3) IGBT 驱动电路必须能够实现控制电路与被驱动的 IGBT 栅极之间的电隔离。同时双管反激电路中,两个功率开关管不供地,因而两路驱动信号彼此间也需要电气隔离。(4) 驱动电路应尽量靠近 IGBT,使得驱动线路尽可能短,避免其他信号的干扰。本充电系统需要两路相互隔离的控制信号,其中一路隔离驱动电路如图 4.7 所示,图 4.7 中,三极管 D882 和 B772 构成了图腾柱输出,图腾柱输出能够增强控制信号的驱动能力,磁环变压器起到了信号隔离的作用。电容

18、C3 为隔直电容, R1 为栅极驱动电阻,目的是防止电流尖峰引起的高频振荡。D1、D2 为稳压二极管 1N4744,通过 D1 和D2 可将驱动电路的输出电压箝位在15V。R2 和稳压二极管也可以提高 IGBT 的抗电压尖峰和抗干扰能力。在实际的系统控制中,LPC2292 输出的 PWM 控制信号经过电平转换后与硬件保护信号进行逻辑运算,逻辑运算后的 PWM 控制信号即为驱动电路的输入信号 .PWM1 和 PWM2,这两路控制信号分别送入两路独立的驱动电路中,经过驱动电路对控制信号进行隔离与放大,形成两路相互隔离的控制信号 DRV_G1 和 DRV_G2,这两路隔离的控制信号驱动功率开关管 I

19、GBT 的开通与关断。图 4.7 驱动电路原理图4.3 采样电路设计稳定可靠的充电系统要有完善的检测与保护电路,这样才能根据电路的反馈信息,及时调整控制信号,保证系统按预定的控制策略稳定运行,而且当系统发生故障时,可以及时停止充电系统的运行。4.3.1 输入电压采样电路该电路主要实现对系统输入电压的采样,如图 4.8 所示。因为 LPC2292 的 ADC 采样输入范围在 03.3V 之间,而系统的输入电压范围为 200V650V,因此将输入电压 inU由电阻分压得到调理后的输入电压采样,调理后的输入电压采样经过二极管的箝位和 RC 低通滤波后送入的采样输入端 ADC0。.图 4.8 输入电压

20、采样电路4.3.2 蓄电池端电压采样电路该电路主要实现蓄电池的端电压的采样,蓄电池的端电压在蓄电池的充电过程中极为重要,它反映了蓄电池的容量状态,并且系统的充电控制策略都是根据蓄电池的端电压进行判断的,蓄电池的端电压关系到充电系统采用何种充电模式对蓄电池进行充电。如果系统在充电初始时检测到蓄电池处于过放电状态,即蓄电池的端电压低于欠压阈值时,充电控制器需要对蓄电池进行小电流的激活充电,使蓄电池端电压恢复到可CUTOF接受快速充电的状态;蓄电池充电过程中,四种充电模式的相互切换都与蓄电池的端电压有关,因而对于蓄电池端电压的采样检测非常重要,蓄电池端电压检测电路的设计与输入电压采样电路相同,如图

21、4.9 所示。蓄电池端电压经过电阻分压后得到端电压采样,经过二极管箝位和电阻电容构成的低通滤波器后送入单片机的 ADC1 采样输入端。osampleU图 4.9 蓄电池端电压采样电路4.3.3 蓄电池充电电流采样电路蓄电池的充电电流对于蓄电池的充电控制最为关键,在本系统中,激活充电和大电流快速充电都需要进行恒流充电控制。因此采用霍尔电流传感器来检测蓄电池的充电电流,霍尔电流传感器的特点是可以实现电流的“无电位”检测。即测量电路不必接入被测电路即可实现电流检测,他们靠磁场进行耦合。因此,检测电路的输入、输出电路是完全隔离的。检测过程中,被测电路的状态不受检测电路的影响,检测电路也不受被测电路.的

22、影响。霍尔电流传感器的工作原理是基于霍尔效应,利用通电导线周围产生的磁场大小与流过导线的电流成正比,通过磁芯聚集感应到霍尔器件上,间接地检测出电流的大小。本系统采用的霍尔电流传感器型号为 HNC-050P,其测量范围为 075A,响应时间小于 1us ,采用15V 供电。转换比率为 1000:1。充电电流采样电路如图 4.10 所示。将输出电流从电流传感器的穿孔芯中穿入,电流传感器将电流缩小 1/1000,传感器的次级使用 100 的小电阻,将电流信号转换为电压信号 。再将该电压信号经过 RC 滤波电路后,然后将滤波后的电压信号 送入sI osampleILPC2292 的采样端口 ADC2

23、进行模数转换。图 4.10 充电电流采样电路4.3.4 蓄电池温度采样电路蓄电池在充电过程中,由于极化现象的存在,蓄电池会有一定温升。温度过高,会直接影响充电效率,同时对电池损坏很大,缩短蓄电池的使用寿命。所以,在充电过程中电池温度是很重要的一个信息。在本充电系统中,过充电压和浮充电压都需要根据蓄电池的温度进行补偿,合理设置蓄电池的过充电压和浮充电压,能有效延长蓄电池的充电使用寿命。目前国内常用的温度传感器是热敏电阻,而该温度传感器是非线性传感器,在使用过程中必须外加补偿电路,因此电路复杂、体积较大。在本充电系统中,选用美国国家半导体公司的 LM35 系列精密温度传感器。其特点是:(1) 输出

24、电压与摄氏温度成线性比例关系,为 ,无需调整或校准;10/omVC(2) 精度较高;.(3) 工作电压范围为 430V;(4) 很低的输出阻抗,在负载电流为 1mA 时,仅为 0.1 ;LM35 的基本电路十分简单,在单电源 420V 工作电压时,测量温度范围为 到2oC,其输出电压为 ,即 时输出为 0mV,每升高 ,输出电压150oC01/omVC0o 1o增加 10mV。LM35 的电源供电模式有单电源和正负双电源模式,正负双电源的供电模式可提供负温度的测量,本系统采用 15V 单电源供电模式。图 4.11 温度采样电路温度采样电路如图 4.11 所示。在充电系统中,温度传感器的输出经过

25、二极管箝位和低通滤波后送入 LPC2292 的 ADC3 采样输入端,LPC2292 只需采样该端口即可得到蓄电池的环境温度。在充电过程中,LPC2292 内设置的过充电压和浮充电压根据检测到的蓄电池温度进行补偿,延长蓄电池的充电使用寿命。4.4 保护电路设计本充电系统具备完善充电保护功能。充电保护电路分别为输入过压保护、输出过压保护和输出过流保护。在图 4.12 中,保护电路产生的保护信号 Pro 与充电控制器产生的 PWM 控制信号PWM_O1、PWM_O2 进行逻辑运算,当保护电路发生保护时,保护信号 Pro 输出为低电平 0,此时 PWM1 与 PWM2 的输出均为低电平 0,这两个

26、PWM 控制信号经过两路独立驱动电路的隔离放大,控制功率开关管 IGBT 的关断,有效地保护了系统的运行。同时,各个保护电路中的发光二极管能够直观地显示系统的故障来源,方便了故障的排除。.图 4.12 保护信号与 PWM 信号逻辑运算4.5 电源电路设计电源为整个系统提供能量,是整个系统的基础。设计电源的过程,是各种因素互相权衡的过程,需要考虑的因素有:输出电压、电流、功率,输入电压、电流、安全因素,输出波纹,电磁兼容与 抗干扰,成本等。本开发平台采用直流供电。本控制系统的电源由 4 块串连的 12V 铅蓄电池提供,即供电电源电压为 48V。LPC2000 系列 ARM7 微控制器均要采用两种

27、电源,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 波产生模块;串行通

28、信控制模块;数据采样模块;LCD 显示模块。主控程序模块的功能是在运行任务前初始化各个功能模块,建立主任务,启动定时中断以及启动多任务的运行。主任务模块的功能是负责系统总体的逻辑与流程控制,协调、调度各任务功能模块,以实现对蓄电池充电控制器的内部的数据的处理及显示。5.2 应用 C/OS -II 的必要准备基于移植好的 C/OS -II 进行系统应用软件的设计,需要作以下必要的准备:定义任务的优先级、定义任务栈空间、定义消息邮箱。5.2.1 定义任务优先级根据系统软件的总体结构分析,创建具有不同优先级的 5 个任务:主任务Main_Task()、PWM 波产生任务 PWM_Task()、控制器

29、数据接收任务 Recv_Char_Task()、控制器数据处理任务 Pro_Data_Task()和 LCD 显示任务 DIS_Task(),它们的优先级分别是 12、14、16、18、20,即主任务的优先级最高,LCD 显示任务的优先级最低。具体源程序代码如下:#define Main_Task_PRIO 12#define PWM_Task_PRIO 14#define Recv_Char_Task_PRIO 16#define Pro_Data_Task_PRIO 18#define DIS_Task_PRIO 20.5.2.2 定义任务栈空间对于 C/OS -II 和绝大多数的可剥夺型

30、内核而言,每个任务都需要分配自己的堆栈空间。堆栈必须声明为 OS_STK 类型,并且由连续的内存空间组成。每个任务的堆栈容量可以单独指定,为简化起见,本程序都定义成相同的容量。用户可以静态地分配堆栈空间(在编译时分配) ,也可以动态地分配堆栈空间(在运行时分配) 。本次设计采用静态分配方式。具体源程序代码如下:OS_STK Main_StackSTACKSIZE = 0, ;OS_STK PWM_StackSTACKSIZE = 0, ;OS_STK Recv_Char_StackSTACKSIZE = 0, ;OS_STK Pro_Data_StackSTACKSIZE = 0, ;OS_S

31、TK DIS_StackSTACKSIZE = 0, ;5.2.3 定义消息邮箱要使用消息邮箱,首先就要定义消息邮箱,消息邮箱的定义是通过 OS_EVENT 数据结构实现的。C/OS -II 通过 UCOS_II.H 头文件中定义的 OS_EVENT 数据结构,维护一个事件控制块 ECB 的所有信息。该结构中除了包含事件本身的定义外还定义了该事件的所有任务的列表。每个信号量、消息邮箱、消息队列都分配到一个事件控制块 ECB。任务之间或任务和中断服务子程序之间的通信是通过事件控制块 ECB(EventControl Blocks)实现的,即任务或中断服务子程序可以通过事件控制块 ECB 向另外的

32、任务发送信号。这里信号被看成是事件( 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 要求首先调用系统初始化函数 OSIn

33、it()。OSInit()初始化 C/OS-.II 所有的变量和数据结构,并建立空闲任务 OS_TaskIdle()。函数 OSStart()的功能是启动多任务,将控制权交给 C/OS -II 内核,开始运行多任务。OSStart() 将判断所有建立的任务中哪一个任务是最重要的,即优先级最高,并开始运行这个任务。在启动多任务 OSStart()之前,至少要先建立一个任务,否则应用程序就会崩溃。函数 OSTaskCreate()的功能是建立任务。如果要让 C/OS -II 管理用户的任务,就必须先要建立任务,通过调用 OSTaskCreate()函数来实现。任务可以在多任务调度开始前建立,也可以

34、在其他任务的执行过程中建立。在开始多任务调度之前,用户必须建立至少一个任务。任务不能由中断服务程序(ISR)来建立。OSTaskCreate() 函数需要 4 个参数:指向任务代码的指针;任务开始执行时,传递给任务参数的指针;分配给任务堆栈的栈顶指针;分配给任务的优先级。这里在主控程序中建立主任务。C/OS -II 提供一个可以被任务调用而将任务延时一段特定时间的功能函数OSTimeDly(),这段时间的长短是由指定的时钟节拍的数目来确定的。一旦调用该函数,通知 C/OS -II 该任务本次运行已经结束,可以让下一个最高优先级的任务运行。若没有函数 OSTimeDly()或类似的函数,则任务将

35、是一个真正的无限循环,任何其他任务都没有运行的机会。C/OS II 建立的任务会占用一些内存缓冲区或信号量一类的资源。此时如果另一个任务试图删除该任务,这些被占用的资源就会因为没有被释放而丢失,这将导致存储器漏洞,而这是任何嵌入式系统都无法接受的。因此,要想办法让拥有这些资源的任务在使用完资源后,先释放资源,再删除自己。C/OS II 是通过函数 OSTaskDelReq()完成该功能。发出删除任务请求的任务和打算被删除的任务都必须调用函数 OSTaskDelReq()。六系统仿真与调试6.1 主控模块及其流程图主控程序 Main()的作用是在运行任务前初始化 ARM 处理器,初始化操作系统,

36、初始化充电控制器的数据接收模块,初始化串口 UART0,初始化 LCD 控制器等,建立主任务,启动定时中断以及启动多任务的运行。主控程序 Main()的流程图详见图 6.1 所示。.图 6.1 主控程序流程图主控程序的源代码如下:void Main()Uart_Select(0);Lcd_Init();Lcd_clear(BLUE);ARMTargetInit();OSInit();OSTaskCreate(Main_Task,(void*)0,(OS_STK*)ARMTargetStart();OSStart();return ;函数 Lcd_Init()的功能是对 LCD 控制器初始化。函

37、数 Lcd_clear()的功能是对 LCD 显示器清屏。函数 Uart_Select(0) 的功能是选择 UART 通道 0。函数 ARMTargetInit() 的功能是对 ARM 处理器进行初始化。函数 ARMTargetStart()的功能是启动时钟节拍中断。.6.2 主任务模块及其流程图6.2.1 A/D 采样模块软件仿真设计LPC2292 片上集成了 8 路 10 位逐次逼近式 A/D 转换器,测量范围为 03.3V,10 位转换时间最快可达 2.44us。本蓄电池充电控制器需要采集的模拟信号包括:系统输入电压,蓄电池端电压,蓄电池充电电流,蓄电池温度。模拟量采集流程图如图 6.2

38、 所示。图 6.2 模拟量采集程序流程图6.2.2 充电模式的仿真设计第二章分析和介绍了本文的充电控制策略,该充电控制策略分为四个模式,激活充电、大电流快速充电、过充电和浮充电。下面详细介绍这四个模式控制的软件设计。本充电系统的待充蓄电池组的额定电压为 48V,额定容量为 100Ah。充电控制策略的软件流程如图 6.3 所示。.图 6.3 多模式充电控制流程图6.2.3 LCD 显示任务模块及其流程图LCD 显示任务 DIS_Task()的功能是实时显示控制器的输入电压和蓄电池的充电电压,充电电流以及蓄电池的充电温度。由于 LPC2292 自带 LCD 驱动功能,实际的程序设计中只需将显示屏初

39、始化完成,改变显示缓冲区内显示内容,LCD 控制器会自动通过专用 DMA 通道从内存中读取显示数据并刷新显示器,无需 CPU 和程序再进行干预。对 LCD 控制器进行初始化,其过程包括:初始化 LCD 端口;申请显示缓冲区,大小为 3202401 字节;初始化 LCD 控制寄存器,包括设置 LCD 分辨率、扫描速率、显示缓冲区等。LCD 的 ASCII 字符的显示原理与汉字字符的显示原理相同,不同的是一个 168 的ASCII 字符共需要 16 个字节表示。系统设计中拉丁字符及数字使用的是 ascii16x8 点阵字库,由于不含有颜色信息,每个字符占用 16x8bit 存储空间对应 16x8(

40、高 x 宽)像素显示空间。每个像素按照从左至右从上至下的方式排列。确定一个 ASCII 字符在字库中位置的公式为: Location = (*S) * 16; 汉字与 ASCII 码显示软件流程图见图 6.4.所示。图 6.4 汉字与 ASCII 码显示软件流程图.七结论面对当今社会资源匮乏,环境破环日益加重的局面,蓄电池的生产及投入使用在一定程度上缓解了社会这方面的压力。对蓄电池在充电过程中,蓄电池的各种不同的性能参数的具体不同的变化的研究分析,包括电压、电流、温度的不同的变化,通过这几个参数的变化能有效的了解蓄电池的所处于的实际充电状态。电力电子技术、现代控制理论的快速发展,为蓄电池充电系

41、统的发展提供了坚实的理论基础,同时集成电路技术和嵌入式系统的飞速发展,尤其是以单片机为代表的混合信号处理器为蓄电池充电控制技术的发展提供了广阔的前景。本文根据蓄电池充电系统的功能和技术要求,研制了一套基于嵌入式 ARM7 的数字控制充电系统。本文完成的工作主要有:(1)根据蓄电池充电系统的功能和技术要求,首先对蓄电池充电系统的总体方案进行了设计,分析对比了几种常用电气隔离型 DC/DC 变换器的优缺点,最后选择了双管反激变换器作为充电系统功率主电路的拓扑结构,通过对双管反激变换器工作原理的分析,证明了该电路拓扑具有功率开关管的电压应力小,控制简单,电路体积小等优点,体现了在高压输入应用场合的优

42、越性。在此基础上,本文对主电路的控制技术进行了论证分析,由于模拟控制的电路结构复杂,控制单一,无法满足蓄电池充电控制的要求,因而选择了数字控制的方式,并对 LPC2292 为核心的数字控制器进行详细的分析。(2)完成了充电系统硬件电路的设计与实现。硬件设计主要包括充电系统主电路、反激变压器、充电控制器、驱动电路、采样调理电路、保护电路以及辅助电源等。充电系统在运行中具有完善的保护功能,同时基于 LPC2292 的充电控制器还具有充电信息显示和人机交互等功能,发挥了嵌入式系统的数字控制的优势。(3)完成了充电系统的软件设计与实现。本文首先对系统的软件总体结构进行了划分,将系统软件分为主循环程序和

43、定时器中断服务程序两大部分,主程序负责完成系统的初始化和循环显示等功能,而对实时性要求比较高的充电控制等功能都在中断服务程序中进行。软件设计中详细介绍了 LPC2292 芯片产生 PWM 控制信号的过程、数字 PI 调节的工作原理以及多模式充电控制策略的软件设计,实现了充电系统的充电控制和实时显.示等软件设计。8嵌入式实习学习心得刚开始拿到这个课程设计题目的时候,自己感觉无从下手,自己只能拿出嵌入式的书,通过书本和电脑查阅资料,这个过程中,我对嵌入式系统这门课程有了一个更深的了解。这次课程设计是一个理论与实践结合的过程,让我明白理论知识往往是不够的,只有把所学的理论与实际行动相结合,才会提高自

44、己的综合实际能力和独立思考能力。在设计的过程中都会遇到很多的问题,但往往是一个小问题都会导致实验的失败,这就要花大量的时间去思索和改正,这是一个很艰辛的过程,但同时也是收获最大的过程。通过这次课程设计,我对嵌入式系统,铅蓄电池;充电控制器,等这次以前不熟悉的字眼都有了一个更加深刻的理解,这两个星期的实习下来,我认识到,不管什么课程,懂理论和能动手完全是两个概念,在平时的学习当中,一定要把理论和实践相结合起来,这样才更加有助于我们掌握知识。通过这两周的课程设计,我掌握了嵌入式操作系统,A/D 采样模块,数字滤波模块以及蓄电池的充电方式这些方面的知识,现在也基本上能看懂一些简单的接口电路,这个对我

45、以后工作或更加深入的学习嵌入式都提供了很大的帮助。.九参考文献1 陈慧玲. 延长独立光伏电站蓄电池使用寿命的措施探讨J. 蓄电池, 2005, 3: 106107.2 陈维, 沈辉. 太阳能光伏应用中的蓄电池研究J. 电池, 2006, 36(1): 6768.3 陈体衔. VRLA 蓄电池变电流间歇充电方法J. 电池. 1998, 28(6): 274277.4 赵健. 基于智能控制技术的铅酸蓄电池充电设备的研究D. 南京: 南京理工大学(硕 士),2008.5 张占松, 蔡宣三. 开关电源的原理与设计M. 电子工业出版社, 1998.6 胡江毅. 反激变换器的应用研究D. 南京: 南京航空

46、航天大学(硕士), 2003.7 封心歌. 高压双管反激变换器的设计J. 现代雷达, 2004, 26(6): 5762.8 高嵩, 曾国宏. 基于 68HC08MCU 的蓄电池充放电系统研究 J. 微计算机信息, 2009, 25(3):135137.9 徐曼正. 新型蓄电池原理与应用M. 北京: 人民邮电出版社, 200410 魏晓斌, 张磊, 谢楠. 阀控式铅酸蓄电池提前失效原因分析及对策J. 通信电源技术, 2009,26(2): 5456.11 周玲. 基于单片机控制的智能充电器设计D. 广西: 广西大学(硕士), 2006.12肖宾. 基于 ARM 的蓄电池管理系统的设计与实现D.西南科技大学,2007.13周得新,张向利C/OS -II 与嵌入式操作系统J.桂林电子工业学院学报,2000.12(4):35-3714 周立功等.ARM 嵌入式系统基础教程 M.北京航空航天大学出版社,2005 年15 徐满平. 基于 ARM7 嵌入式工业智能化多参数综合测控平台的研究. 西安电子科技.

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

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报