基于单片机的蓄电池检测系统设计 下载本文

h) 工作温度范围为-40℃~+80℃。

3)DS2438内部结构框图

DS2438作为一款专门用于采集多种电池状态参数的集成芯片,其内部结构框图如图3.4所示:

图3.4 DS2438内部结构框图

由图3.4 DS2438内部结构框图可知DS2438由单总线接口、电压电流A/D转换器、温度传感器、时钟电路、40字节的EEPROM及与上述硬件相关的寄存器组成。其中的电压A/D转换器输入可以编程为由VDD电源端输入或VAD输入端输入,以满足VDD电源端及外部输入模拟量VAD的测量要求。 3.2.2 DS2438存储空间

1)DS2438存储结构

DS2438上的64字节的存储空间分成8页,每页8个字节,该内存空间从数据访问方式上可以分成RAM(高速暂存)和SRAMIEEPROM(非易失ROM)两部分。高速暂存RAM用于确保单总线通讯时的数据一致性:数据首先写入DS2438的高速暂存RAM,当数据被确认后,通过ROM复制命令将暂存页的数据写入到相应的SRAM/EEPROM保护空间中。DS2438的存储空间内包括一些特殊功能寄存器和供用户使用的存储单元,它们通常位于存储空间的第0页。

DS2438的存储空间的第1页为电流累加器、逝去时间计数器和电流补偿单元;第2页包括非易失性时间和充电时间标记;第3~7页是40字节的提供给用户使用的EEPROM,可用于保存用户数据。

2)DS2438寄存器

DS2438芯片的所有寄存器都映射到上述的存储器中,同时对DS2438的操作都是通过寄存器进行的。下面对存储器空间第0页中的特殊功能寄存器进行详细阐述。DS2438存储器第0页结构如表3.2所示。

表3.2 DS2438存储器第0页结构

字节序号 0 1 2 3 4 5 6 7 寄存器 名称 状态配置 温度低位 温度高位 电压低位 电压高位 电流低位 电流高位 阈值 DB7 X DB6 ADB ?266内容 DB5 NVB ?355读写DB2 EE 22易失 特性 非易失 非易失 非易失 非易失 非易失 非易失 非易失 易失 DB4 TB ?444DB3 AD ?533DB1 CA 0 DB0 IAD 0 特性 读 读 读 读 读 读 读 读/写 2?1S 227 2222 0 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 7 26 25 24 23 22 22 2 2 1911S TH2 S TH1 S 0 S 0 S 0 S 0 S 0 2 2 2 2 2 080080 a) 状态/标志寄存器

状态/标志寄存器决定了DS2438的工作状态,单片机通过对特殊功能寄存器

进行读/写操作,可实现DS2438的各种功能,因此在对其进行操作之前,必须对这一寄存器进行初始化,即对相应的控制位进行写操作。状态寄存器位于存储器00页的第0字节,该寄存器用于DS2438的功能控制,其中各位的默认值为1,含义如下:

ⅰ)IAD为电流A/D控制位。IAD=I,启用电流A/D和ICA,且以32Hz速率测量电流;IAD=0,禁用电流A/D和ICA;

ⅱ)CA为电流累加器配置位。CA=1,启用CCA/DCA存储数据且可从第7页恢复数据;CA=0,禁用CCA/DCA,第7页可用于普通EEPROM存储;

ⅲ)EE为隐蔽电流累加器位。EE=1,将CCA/DCA计数器数据隐蔽到EEPROM,电量每增加0.32,当前计数器加1:EE=0,CCA/DCA计数器数据将不隐蔽到EEPROM;

ⅳ)AD为电压A/D输入选择位。AD=1,电压A/D选择由VDD端输入;AD=0,电压A/D选择由VAD端输入;

ⅴ)TB为温度转换忙标志位。TB=1,温度转换正在进行;TB=0,温度转换结束;

ⅵ)NVB为非易失存储忙标志位。NVB=1,在从可擦除区复制到EEPROM的存储过程中;NVB=0,非易失存储空闲状态。一次EEPROM存储占用2~10ms;

ⅶ)为A/D转换标志位,ADB=1,电压A/D转换正在进行;ADB=0,转换结束或无测量。一次A/D转换占用约10ms;

ⅷ)X为不定位。 b) 电流寄存器 DS2438内含一个可有效测量流入、流出电池块电流的模数转换器,电流的测量是通过测量电流取样电阻RSENS两端的电压来间接测量流过电池的电流。采用10位ADC,其分辨率为O.005C,电流测量值的结果放在2字节的电流寄存器中,其中电流测量符号位S,用于指示充电或放电。

c) 电流积分累加寄存器

DS2438对电池剩余电量的测量是借助其内部的电流积分累加器(ICA)实现的。ICA存放的是流入、流出电池总电流的净累加值,因此,存储在这个寄存器内的值可用于计算电池的剩余电量。

d) 电压寄存器

存放采集的电压值。它的电压输入范围是0~10V,且电压ADC的输入,可通过状态/结构寄存器的AD位来选择由VDD输入或由VAD输入。电压A/D转换的结果放在2字节电压寄存器中,单位为mV。

e) 温度寄存器

存放采集的电池温度值。可在-55~+125℃范围内以0.03125℃的分辨率测量温度值,温度值为补码形式通过2字节温度寄存器输出。其中符号位S指示温度值为正或负;S=0,温度值为正;S=1,温度值为负。

f) 消逝时间记录寄存器

消逝时间记录寄存器记录相对于内部基准时间的电池充电完毕、其脱离系统

的精确时刻,便于用户了解电池的使用情况,正确地使用和维护电池。

3.2.3 数据采集板电路

信号采集板电路包括四部分:+5V工作电源、电压采集、电流采集和DS2438单片机通讯电路。其电路图如图3.5所示。

图3.5 信号采集模块 1)+5V工作电源电路

每节蓄电池都有自己独立的采集板,蓄电池电压经LM7805三端稳压芯片稳压滤波后输出5V电压,给自身的采集板提供电源。

2)电压采集电路

蓄电池在浮充状态下电压为12.8V,充电是电压最大可达到16V左右,而DS2438芯片的电压测量范围为0~10V,因而需经精密电阻R3、R4分压,再通过R5、C10滤波电路滤波后输入DS2438的VAD,当DS2438接收到单片机发出的电压转换命令时,片内ADC转换器将对VAD管脚上的电压进行数字转换,转换时间为2 ms左右。转换的结果将被保存在两字节的电压寄存器中。当单片机发出读取数据的指令时,测量的数据即从DS2438的DQ端传送出去。因为DS2438其分辨率为0.01V,所以蓄电池的实际电压可由下式计算得出:U=电压寄存器的值*0.01 *(1 + R3/R4)(单位为V)。

3)电流采集电路

串联工作的电池组流经每个电池的电流是相同的, 电流测量只需要一个采集板。在DS2438中,电流是通过测量外部传感电阻两端的电压来实现的。外部传感电阻R7接于 Vsens+ 和Vsens-两管脚间 ,同时,Vsens-端接R6、C11低通滤波电路, 用以消除尖峰电流的干扰,其中R6=100kΩ,C11 =0.1μF。

由于Vsens+和Vsens-两管脚允许的输入电压范围为-122 mV~+122 mV , 因此DS2438能测量的电流很小(毫安级) ,而电池组中的电流一般为十几个安培至几十个安培,需要电流传感器进行转换。系统采用了由LAM公司生产的多量程电流传感器LA-28NP,原边电流提供了5A~25A间5种选择,可通过不同的接线方式灵活设置,副边电流为25mA ,采样电阻R7取4.7Ω。实际电流=±(K*电流寄存器的绝对值)/R7*4096 ,K为互感器变比,±取决于电流寄存器的符号位。

4)DS2438与单片机通讯电路 单片机采用8位的AT89C51,单片机与采样板之间采用单总线通信SBC(Single Bus Communication)解决方案。

由SBC构成的单总线通信系统为主从结构,单片机作为主机,多片DS2438作为节点(从机),总线由一根信号线组成,既可传输时钟,又能双向传输数据。在该总线上可以挂接多个测控对象。这种单总线技术具有线路简单,硬件开销少,便于总线扩展和维护等优点。其传输速率可达到110Kbit/s,在不扩充的情况下,总线距离最远可达到600m,经扩充以后可达到2500m。

由于各监测板不共地,所以发送和接收的信号都需经中速光电耦合器6N135

进行隔离,由于DS2438输出电流较小,不能驱动光电耦合器,故增加了驱动/缓冲器74LS07。DS2438的数据输出端DQ为漏极开路,所以需增加上拉电阻R7。数字信号在传输过程中抗干扰能力强,因此提高了测量精度。各检测板并行工作,可以同时监测电池组中的各单体蓄电池的状态。

3.3 显示电路设计

本设计中采用两种方式进行显示:液晶显示和上位机显示。其中液晶显示选择用1602液晶显示器,可以直观地显示出当前被测电池的电压、电流、温度及剩余电量,除能显示数字外还可以显示汉字。同时用户可根据需要,利用AT89C51的UART串口,通过串口线与上位机相连,利用上位机显示,使人机界面变得更加友好。当被测电池状态过警戒线时,智能系统通过蜂鸣器发出声音报警,同时显示中也会给出警示信号,提示用户做出相应的处理。下面对两种显示方式分别进行介绍。

3.3.1 1602液晶显示

液晶显示器LCD(Liquid Crystal Display)是一种被动发光型的显示器,即液晶本身并不发光,而是利用液晶经过处理后能改变光线通过方向的特性,而达到白底黑字或黑底白字或者蓝底白字显示的目的。液晶显示器具有体积小、重量轻、分辨率高、功耗低、抗干扰能力强、驱动电压低等优点,因此被广泛地应用在智能仪器、数字仪表、控制系统及人类生活的各种显示领域中。

1)1602液晶显示的特点 a) 1602液晶显示器为若干个5*8或5*11的点阵显示字符。每个点阵块为一个字符位,字符间距和行距都为一个点的宽度;

b) 1602液晶主控制驱动电路为HDD4780或其他全兼容电路,如SED278(SEIKOEPSON),KS0066(SAMSUNG),NJU6408(NER JAPN RADIO);

c) 具有字符发生器的ROM可显示192种字符(160个5*7点阵式字符和32个5*10点阵字符);

d) 具有64个字符的自定义字符的RAM,可自定义8个5*8点阵字符或4个5*11点阵字符;

e) 具有80个字节的RAM; f) 单+5V电源供电。

2)1602液晶显示器引脚功能 1602工作过程可简析为:液晶显示模块经数据总线接收外部微处理器MCU发来的指令和数据,并存入内部的指令和数据寄存器中,在这些指令的控制下,行、列驱动器对128*64点阵的LCD显示屏进行控制,从而实现所需信息的显示。1602液晶显示模块的各外部引脚名称、功能和用法见表3.3。

表3.3 1602液晶显示器的引脚功能

引脚号 1

符号 VSS

状态

功能 电源地