基于dsPIC30F4011的氢燃料电池管理系统软硬件设计
2014-07-25韩冬林刘旸徐红亮
韩冬林,刘旸,徐红亮
(天津中德职业技术学院,天津300350)
基于dsPIC30F4011的氢燃料电池管理系统软硬件设计
韩冬林,刘旸,徐红亮
(天津中德职业技术学院,天津300350)
采用高性能数字信号控制器dsPIC30F4011和新型的电池组电压检测芯片LTC6803-3,完成了氢燃料电池管理系统的电池电压检测电路和管理系统主控电路硬件设计,开发了基于C语言的电池电压采集程序和管理系统主控程序,并且用样机验证了设计。
电池管理系统;氢燃料电池;dsPIC30F4011;LTC6803-3
随着燃料电池技术的发展,氢燃料电池逐渐被业界认识到在后备电源领域具有广阔的应用前景,被认为是取代蓄电池和柴油发电机作为后备电源的最有应用前景的新能源技术[1]。氢燃料电池是一种优质的清洁电源供电系统,电化学反应产生的唯一副产品就是纯净水,节能环保,完全避免了铅、硫酸以及其他酸性污染物的排放[2]。由于氢燃料电池本身是一个非常复杂的非线性电源系统,其输出电能特性不仅受到电池内部结构的影响,同时也受温度、气体压力、气体流量以及负载等因素的制约[3],所以氢燃料电池管理系统必须采用柔性化、可编程的软硬件设计方案,主控芯片需要具备多种数据总线通讯能力。dsPIC30F4011是美国Microchip公司生产的一款高性能数字信号控制器芯片,它由30 MIPS的16位MCU、单周期17位累乘器DSP内核、高速4通道同时采样A/D转换模块、SPI串行通讯模块、全双工USART异步通讯模块、控制器局域网CAN总线模块等主要功能模块构成[4]。基于dsPIC30F4011数字信号控制器,本文设计了一种氢燃料电池管理系统,采用C语言编程方式,实现了电池管理系统软硬件的多参数优化设计。
1 氢燃料电池电压检测电路设计
1.1 电池电压检测电路硬件设计
氢燃料电池管理系统需要检测每个电池单体的输出电压数据,并要求检测数据具备较高的实时性和准确性。本设计采用美国Linear公司的LTC6803-3作为电池组电压检测芯片,其应用电路系统框图如图1所示。每个芯片最多可检测12个电池单体电压,可以在13ms内完成一个系统所有电池的测量,最大总测量误差在0.25%以内[5],可以满足本设计对电压检测电路实时性和准确性的技术要求。
图1 LTC6803-3应用电路系统框图
本文设计的LTC6803-3检测电路原理图如图2所示,因为LTC6803-3芯片内部已经集成了一个多路输入复用器MUX和一个12位的高速A/D转换器,所以可将电池组的各个单体电压检测线CELL0~CELL12依次接至由L0~L12、R0~R12、C0~C12、DW0~DW12组成的输入滤波和输入保护电路,滤波和保护电路的输出端就可以直接接至LTC6803-3芯片的电池单体电压输入检测管脚C0~C12。
因为LTC6803-3芯片中的A/D转换数据需要主控制器由一个兼容的SPI串行通讯接口读出,所以选用美国Microchip公司的高性能数字信号控制器dsPIC30F4011芯片作为主控制器。dsPIC30F4011芯片内部的通讯接口资源非常丰富,不仅具有一个支持4种帧模式的高速SPI通讯接口模块,而且内嵌了2个带FIFO缓冲区的UART通讯模块和1个2.0B标准CAN总线模块[4]。因为图2中的dsPIC30F4011芯片(IC2)的SPI通讯管脚SDO1、SDI1和程序调试管脚PGD、PGC复用,所以本设计采用dsPIC30F4011芯片的通用I/O口RE2、RE3、RE4作为SCK、SDI、SDO管脚,用软件的方法产生SPI通讯接口信号。图2中的IC3、IC5、IC7组成隔离的UART通讯接口电路,IC4、IC6、IC8组成隔离的CAN总线通讯接口电路,电池电压检测电路可以通过UART通讯接口和CAN总线通讯接口与氢燃料电池管理系统主控电路实现数据通讯功能。
图2 LTC6803-3检测电路原理图
1.2 电池电压采集电路软件设计
因为图2中dsPIC30F4011芯片(IC2)的RE2、RE3、RE4、RE5管脚依次接至LTC6803-3芯片的SCKI、SDO、SDI、CSBI管脚,所以在软件设计上只需按照图3所示的LTC6803-3串行通讯接口时序[5],在RE2/SCK、RE4/SDO、RE5/CSB输出管脚上产生时序正确的控制脉冲序列SCKI、SDI、CSBI,就可以通过读取RE3/SDI输入管脚的电平信号状态值,实现主芯片dsPIC30F4011和电池组电压检测芯片LTC6803-3之间的SPI串口通讯功能。
图3 LTC6803-3串行通讯接口时序图
根据图3中LTC6803-3芯片串行通讯接口的时序要求,以dsPIC30F4011作为通讯主芯片,采用C语言编写的SPI总线读写程序如下:
#defineLTC6803_CSBLATEbits.
LATE5//RE5=CSB
#defineLTC6803_CLK LATEbits.LATE2//RE2=SCK
#defineLTC6803_MISOPORTEbits.RE3//RE3=MISO
#defineLTC6803_MOSILATEbits.LATE4//RE4=MOSI
unsigned char LTC6803_RDBUF;//读数据缓存单元
unsigned char LTC6803_WRBUF;//写数据缓存单元
unsigned char LTC6803_MISO_DATA;//MISO引脚电平数据缓存单元
unsigned char LTC6803_RDBUF,LTC6803_RDATA;
void SpiWrite(unsigned char byte)//写SPI总线函数
{unsigned char i;
LTC6803_CSB=0;//SPI片选线有效
LTC6803_WRBUF=byte;//装载入口参数
LTC6803_CLK=0;//SPI时钟线清零
for(i=0;i<8;i++)//设置8位循环
{if((LTC6803_WRBUF&0x80)==0x80)//查验LTC6803_WRBUF.7数据
{LTC6803_MOSI=HIGH;}//SPI主机数据输出线置位
else LTC6803_MOSI=LOW;//SPI主机数据输出线清零
delay(2);//延时2 μs子程序
LTC6803_CLK=HIGH;//SPI时钟线置位
LTC6803_WRBUF<<=1;//入口参数左移1位
delay(2);//延时2 μs子程序
LTC6803_CLK=LOW;//SPI时钟线清零
delay(2);//延时2 μs子程序
LTC6803_CSB=1;//SPI片选线无效
}
}
unsigned char SpiRead(void)//读SPI总线函数
{unsigned char i;
LTC6803_CSB=0;//SPI片选线有效
LTC6803_RDBUF=0;//读数据缓存单元清零
LTC6803CLK=LOW;//SPI时钟线清零
for(i=0;i<8;i++)//设置8位循环
{LTC6803_RDBUF<<=1;//读数据缓存单元左移1位
LTC6803CLK=HIGH;//SPI时钟线置位
LTC6803_MISO_DATA=LTC6803_MISO;//读取MISO引脚电平
if(LTC6803_MISO_DATA==1)//查验MISO引脚电平数据
{LTC6803_RDBUF|=0x01;//LTC6803_RDBUF.0位置1
}
delay(2);//延时2 μs子程序
LTC6803CLK=LOW;//SPI时钟线清零
delay(2);//延时2 μs子程序
LTC6803_CSB=1;//SPI片选线无效
}
LTC6803_RDATA=LTC6803_RDBUF;//8位数据保存
return LTC6803_RDATA;//将读取到的数据返回给调用程序
}
2 氢燃料电池管理系统主控电路设计
2.1 电池管理系统主控电路硬件设计
氢燃料电池主控系统构成如图4所示,以dsPIC30F4011作为主控芯片,因为dsPIC30F4011芯片内部集成了高速4通道同时采样A/D转换模块,该A/D转换模块最多可以支持9路模拟量输入通道(AN0~AN8),所以本设计将氢气进气压力1、氢气排气压力2、氧气进气压力3、氧气排气压力4、冷却水进口温度1、冷却水出口温度2等传感器的输出信号经隔离转换接口电路送入dsPIC30F4011芯片的AN0~AN5通道,再经A/D转换模块采样后转换为数字量,作为控制程序的入口参数。dsPIC30F4011芯片的输出口主要用于控制氢气进气阀V1、氢气侧排水阀V2、氧气进气阀V3、氧气侧排水阀V4等电磁阀的工作状态,除此之外,dsPIC30F4011的CAN总线模块用于实现与电池电压采集电路间的数据通讯,USART模块经RS485总线用于实现与SK70AE触摸屏间的人机接口通讯功能。
图4 氢燃料电池主控系统框图
2.2 电池管理系统主控电路软件设计
由式(1)可以得出结论:理想状态下,通过精确控制氢燃料电池的实际反应温度、氢气有效分压H2、氧气有效分压O2等变量的数值,就可以得到稳定的氢燃料电池单体电压输出。在电池管理系统主控电路软件设计中,采用检测氢气进气压力1、氢气排气压力2、氧气进气压力3、氧气排气压力4、冷却水进口温度1、冷却水出口温度2等传感器的实时数值,通过控制氢气进气阀V1、氢气侧排水阀V2、氧气进气阀V3、氧气侧排水阀V4等电磁阀的工作状态,实现对氢燃料电池的实际反应温度、氢气有效分压、氧气有效分压等自变量的精确控制,从而达到控制氢燃料电池堆内的单体电池电压输出的目标。
本设计采用的电池管理系统主控电路软件控制流程如图5所示。
图5 电池管理系统主控电路软件流程
3 系统实现
本文提出的基于dsPIC30F4011数字信号控制器的氢燃料电池管理系统样机采用模块化设计方案,分别设计了燃料电池电压检测电路板与电池管理系统主控电路板,由于采用了高集成度的数字信号控制器dsPIC30F4011芯片和新型的电池组电压检测芯片LTC6803-3,显著地降低了电路板的元器件数量,既降低了PCB的布线难度,又有效地提高了氢燃料电池管理系统的性能。图6(a)和图6(b)分别是燃料电池电压检测电路板和电池管理系统主控电路板的实物照片。
图6 氢燃料电池管理系统电路板实物图
4 结论
基于Nernst公式,本文设计的氢燃料电池管理系统样机采用了高性能的数字信号控制器dsPIC30F4011和新型的电池组电压检测芯片LTC6803-3,实现了对氢燃料电池运行状态实时精确调控的设计目标。通过对电池管理系统主控电路软件程序的优化,已经在由36个单体构成的氢燃料电池堆组件上,实现了4.6 kW的连续电功率输出,峰值电功率输出达到了5.0 kW。
[1]詹姆斯·拉米尼.燃料电池系统—原理·设计·应用[M].2版.朱红,译.北京:科学出版社,2006.
[2]张富刚,樊越甫,刘方,等.氢燃料电池在电力系统后备电源的应用研究[J].高压电器,2012(2):76-80.
[3]谢锐.氢燃料电池发电DC_DC电能变换研究[D].北京:北京化工大学,2012.
[4]Microchip Technology Inc.dsPIC30F family referencemanual[M].Arizona,United States ofAmerica:Microchip Technology Inc,2006.
[5]Linear Technology Corporation.LTC6803-1/LTC6803-3multicell battery stackmonitor[M].California,United States ofAmerica: Linear Technology Corporation,2011.
Design ofhydrogen fuel cellsmanagement system based on digital signal controller dsPIC30F4011
HAN Dong-lin,LIU Yang,XU Hong-liang
Usinghigh performance digital signal controller dsPIC30F4011 and new type of cells voltagemeasurement chip LTC6803-3,thehardware design of cells voltagemeasurement circuit andmain control circuit were completed. The cells voltagemeasurement slave programs and cellsmanagement systemmaster programs based on the C language were developed.At last,the design was verified by using prototype.
cellsmanagement system;hydrogen fuel cells;dsPIC30F4011;LTC6803-3
TM 91
A
1002-087 X(2014)10-1828-03
2014-02-27
韩冬林(1966—),男,天津市人,正高级工程师,主要研究方向为传感器与电控技术。