基于CY68013A 的多通道USB 锂离子电池测量系统
仪器网 · 2012-07-14 23:42 · 56729 次点击
引言
近年来,随着通讯技术和电子信息技术的快速发展,以及便携式电子设备的广泛应用,人们对便携式电子设备的能源供应也提出越来越高的要求。为便携式电子设备提供可充式高性能电池,成为材料和能源行业亟待解决的问题之一。锂离子电池因为具有工作电压高、比能量大、循环寿命长、自放电率低、无记忆效应、无污染等特点,1990年问世以来,便得到极其迅猛的发展,并在航空航天、军事、通讯等方面有着广泛的应用前景。
锂离子电池虽然具有以上诸多优点,但是它又极容易损坏,如果不按照其充电特性进行充放电,它的循环寿命将大打折扣。同时,出于对锂离子电池充放电过程中安全可靠性的考虑和对其充放电效率研究,需要在电池的生产制造和检测过程中对其充放电电压、电流、温度以及电池的充放电时长等参数进行长时间不间断的测量和记录,目前这方面的研究尚鲜见文献报道。
针对上述问题,本文设计一种基于CY68013A芯片的多通道USB锂离子电池测量系统,该测量系统以CY68013A芯片为核心功能控制器件,以大容量的闪速存储器为存储媒体,并通过USB口与PC传输数据,由记录显示处理程序完成对测量信号的存取和分析,判断锂离子电池特性。该测量系统能够同时对所需测量的多路信号进行实时测量和检测,具有使用快速灵活、集成度高、体积小、可靠性高、功耗低、操作简单等特点,对军用、民用便携式电子设备测量和故障检测具有很高的实用价值,同时对该领域自动测试系统的研究和发展具有较大的借鉴作用。
1CY68013A简介
Cypress半导体公司的EZ-USBFX2系列芯片是最早符合USB2.0协议的微控制器,CY68013A是该公司EZ-USBFX2系列的低功耗版本EZ-USBFX2LP中的一员,它是一款高集成化的低功耗USB2.0微控制器,其芯片结构(见图1)
[attach]50520[/attach]
CY68013A集成以下特性:USB2.0收发器、串行接口引擎(SIE)、增强型8051微控制器和可编程的外围接口GPIF(GeneralProgrammableInterface);8051程序从内部RAM开始运行;4个可编程BULK/INTERRUPT/ISOCH-RONOUS端点;8位或16位外部数据接口;3.3V电源系统;矢量USB中断;独立的数据缓冲区供SETUP和DATA包控制传输;集成I2C控制器,频率可达100kHz或400kHz;4个FIFO,可与ASIC和DSP等无缝连接;专门的FIFO和GPIF自动矢量中断。
独创性的FX2LP结构使得数据传输速率超过53MBPS,使用增强型低价位8051核的56QFN小封装可达到USB2.0的最大传输速率。GPIF和主/从端点(Endpoint)FIFO(8位或16位数据总线),为ATA,UTOPIA,EPP,PCMCIA和大多数的DSP或微处理器等提供简单的连接接口。FX2LP完全兼容FX2系列芯片,并将代码/数据存贮器容量增大一倍,达到16KB,封装共有56SSOP、56QFN、100TQFP和128TQFP4种形式。CY68013A的控制程序可由PC通过USB装载,也可通过I2C总线上的EEPROM装载。系统上电后,USB内核首先检查I2C总线上是否有EEPROM,如果有,并且其第一位数据是0xC2,则EZUSBFX2将EEPROM中的内容全部拷贝到内部RAM中;否则应由PC机中的下载程序将运行程序装载到内部RAM中,然后重列举,并开始执行RAM中的固件程序。
2系统总体设计
测量系统的总体设计要求如下:(1)测量系统能对锂离子电池充放电过程中的工作电压、电流、温度和时间等参数进行高精度不间断测量和记录;(2)测量系统应具有单机工作或与计算机联机工作两种工作模式;(3)测量系统单机工作时可实时显示测量数据,并将测量数据记录于自身内存中,达到设定记录时间后,测量数据可通过USB传输到计算机中,依据测量数据得出电池工作曲线,并对其进行性能和质量分析;(4)测量系统与计算机联机工作时,可实时记录测量数据并绘制工作曲线,进行性能、质量分析。
测量系统的设计思路是通过AD转换器采集测量数据,USB接口与PC机建立通信,实现采集信息的上传或设备的功能设置,测量部分和控制器电气上隔离,减少不同测量通道间的干扰及控制器的干扰。测量系统由USB控制芯片、数据采集器、存贮器、按键和显示等部分组成(见图2)。
[attach]50521[/attach]
系统主控制器由CY68013A完成,主要实现参数设置、数据采集、数据的显示与储存以及与计算机的通信等功能。在单机工作时,可以通过系统自带的键盘和显示器对系统进行参数设置。设置包括通道采样开/关、通道工作方式(电压、电流或温度)、采样间隔(1s、2s、5s、10s等)、记录时间等。设置完成后参数自动保存并开始测量,测量结果存储于数据存储器中,并可由计算机在联机时读入显示分析。联机工作时,控制器负责接收计算机通过USB发来的控制命令,并作出响应,同时进行测量数据的采集和按规定格式上传测量数据,此时可由计算机对系统进行参数设置并自动保存。系统由四路独立的A/D转换器构成数据采集器。为保证各通道测量的独立性,各路A/D转换器在电气上完全隔离,每个通道的输入均可设置为电压、电流、温度或其它参数。当设置为电压输入时,直接接入被测电压进行测量;如要进行电流或温度测量时,只需在输入端接入相应的电流或温度转换模块即可,系统会自动更改显示和记录方式。A/D转换器选用TI公司的ADS1110,该转换器由一个带有可调增益的A/D转换器核、一个2.048V的电压基准、一个时钟振荡器和一个I2C接口组成,是精密的连续自校准A/D转换器。该转换器带有差分输入功能和高达16位的分辨率,设置简单,测量结果精确。ADS1110使用可兼容的I2C串行接口,在2.7V至5.5V的宽范围、单电源下工作。存储器包括程序存储器和数据存储器两部分。为使系统能够在单机状态下运行,必须将CY68013A的固件程序存放在与系统通过I2C相连的24C128中,上电后由CY68013A从24C128中读到内部RAM中。数据存储器用于保存大量的测试数据,系统采用流行的NAND结构FLASH作为数据存储器,该类型的存储器型号很多,根据系统存储要求,选用容量为256MBit的HY-27US08561M,该类芯片和微处理器接口简单,只需8条数据线和6~7条控制线,占用微处理器资源较少,可重复使用10万次以上,数据可保存10年,是目前使用最广的大容量存储器。测量系统自带的显示器由6位“米”字笔段式液晶显示器构成,可显示设置内容、工作状态和实时测量结果。
下面以第一路输入电路为例,对系统的测量电路进行说明(见图3)。将被测量电池接入VIN1输入端,信号经分压后进入ADS1110进行AD转换,转换结果通过隔离I2C电路隔离后,将三线I2C的SCL(时钟)、DAT_IN(数据输入)、DAT_OUT(数据输出)连接到CY68013A的I/O端口,通过软件编程即可对ADS1110进行设置和读取转换结果。图中通道选择段DAT_CA、DAT_CB两脚用于选择4路ADC;B1(B0505LS)是DC-DC隔离电源,用于给输入电路提供工作电压。
3系统软件设计
系统的软件设计由USB控制器CY68013A固
[attach]50522[/attach]
件程序设计和PC机应用程序设计两部分组成。
3.1固件程序设计
固件程序设计的主要功能是通过USB接口控制内核,使其自动执行大部分任务。本系统中固件程序主要完成测量系统的设置、数据的采集、存储、与外围电路进行数据传输,并且在PC机连接时通过USB将数据发送到PC机或对PC发出的控制命令作出响应。
基于USB的应用程序设计时,除要设计系统的功能部分程序外,还要调用EZ-USB软件包中提供的固件函数库。该固件函数库提供常量、数据结构、宏以及函数,用户可以很方便地使用EZ-USB的资源,用户在编写源程序时,只需在其程序中包含FX2.H和FX2REGS.H这两个头文件,并且链接EZUSB.LIB(EZUSB函数库对象程序代码)库就可使用该函数库。
CY68013A芯片内部集成4KB的内部FIFO,可以分成4个端点双缓冲区,即1个端点包括1个输入缓冲区和1个输出缓冲区,1个缓冲区的大小是512B,4个缓冲区的选择由FIFOADR的4个状态决定。在固件中,设计一个输入Endpoint2和一个输出Endpoint6,输入Endpoint2用于接收PC机发来的控制命令,输出Endpoint6用于向PC机发送采集数据及命令反馈信息。
Dscrptr.a51(USB描述符表)文件主要是对
芯片及Endpoint端口进行设置。其中对Endpoint2
和Endpoint6的设置如下:
;;EndpointDescriptor2
dbDSCR_ENDPNT_LEN
dbDSCR_ENDPNT
db02H;从计算机接收命令
dbET_BULK
db40H
db00H
db00H
;;EndpointDescriptor6
dbDSCR_ENDPNT_LEN
dbDSCR_ENDPNT
db86H;数据送往计算机
dbET_BULK
db40H
db00H
db00H
判断Endpoint2的FIFO缓冲区是否已满及其
处理程序如下:
if(!(EP2468STAT&bmEP2EMPTY))
{
AUTOPTRH2=MSB(&EP2FIFOBUF);
AUTOPTRL2=LSB(&EP2FIFOBUF);
HostCmnd=EXTAUTODAT2;
page_addw=EXTAUTODAT2&0x7F;
page_addw=page_addw