关键词: 蓄电池 CAN总线 LPC935 传感器
1 引言
蓄电池在直流电力系统中一般有浮充和充放充两种工作方式,如图1所示。浮充电工作方式中蓄电池组以并联方式接到整流装置输出端(直流负载输入端),保证不间断地向负载供电,主要用于固定场所;充-放-充工作方式一般用于移动设备上,由于蓄电池组是由多块相同单体蓄电池串联而成,各单体蓄电池过充电、过放电或者放电不足均易引起电池故障,某个单体蓄电池的故障也会导致整个蓄电池组的故障及损坏。因此,必须通过在线实时检测蓄电池充放电各单体蓄电池的充放电电压、充放电时的温升、整个蓄电池组的充放电电流及充放电电压等参数, 找出损坏或性能显著降低的蓄电池,以保证直流电力系统稳定可靠。
因此,对于蓄电池组的检测应该采取分散采集、集中监控的方式。一般的检测采用的是RS-232或RS-485总线,但由于其为主从方式总线,检测终端无法主动地向上位机发送数据。本系统设计了非主从方式的CAN作为蓄电池组的分步式采集总线,使得检测系统具有高可靠性、可扩充性和实时性等优点。
2 系统的总体组成和工作原理
2.1 CAN总线介绍
CAN(Controller Area Network)是由德国BOSH公司为汽车的监测和控制系统设计的一款串行通信网络。CAN总线可以多主方式工作不分主从,可以点对点、点对多点及全局广播方式传送和接收数据,且具有非破坏性总线仲裁技术;以5kbps的方式通信距离最大可达10km,传输介质可用双绞线、同轴电缆或光纤;CAN总线采用短帧结构,每帧为8字节,保证了数据出错率极低,被公认为是最有发展前途的现场总线之一。
2.2 蓄电池检测系统总体设计
系统的总体设计框图如图2所示。24个单体检测单元分别检测蓄电池组的24节单体电池的电压和电流,各个检测单元的硬件结构十分相似,同时还有一个单独的检测单元用来检测蓄电池组整体的电压和电流。检测单元实时监测并向CAN总线发送数据,上位机接收各个检测单元的数据,并对数据进行分析、处理、存储、显示和打印,同时对单体电池的故障进行诊断和报警。
2.3 单体电池检测单元的设计
电池单体电压检测的功能是实现对单体电池电压和温度的检测和网络传输。该单元由电压信号变换、单片机系统、CAN总线接口和电源组成。该单元是基于CAN通信的电压检测模块,检测到的电压模拟信号经处理并数字化后,通过CAN总线传输给控制管理单元。单体电池检测单元的电路图如图3所示:
检测终端采集到蓄电池单体电压和温度信号后,进行放大,滤波、模/数转换和隔离后,送入单片机,单片机将通过CAN总线与上位机进行数据通信。
其中,检测电路采用串行接口的12位A/D转换器,采用周期小于20ms,通过光电隔离于单片机连接。单片机采用低功耗、小体积8位单片机LPC935。该单元用LED指示工作状态。通过带有串行接口的CAN控制器与单片机连接,CAN总线用于向上位机传输检测数据。单元内的隔离电源采用小型DC/DC模块电源。
2.4 检测系统的工作原理分析
各个检测单元将检测到的电流、电压和温度数据按CAN总线规范存储到CAN缓冲区,并启动发送命令将数据发送到CAN总线上,这些数据通过CAN总线向上位机进行发送。上位机的 CAN控制器将接收到的数据存储在缓冲器中,向上位机的CPU发送中断请求,若上位机响应中断,则接收这些数据并进行处理,将其转化成电压、电流和温度信号显示出来,同时还对这些信号进行一定的分析和诊断,若发现有异常情况,则发出警告信息(蜂鸣器响,红灯亮)。
3 单体检测单元节点电路的设计
3.1 温度采集电路
由于蓄电池的工作性能与温度有很大的关系,所以有必要采集到蓄电池的温度信息。系统对蓄电池温度进行循环检测,采集数据后,经放大、滤波和A/D转换并送到单片机,然后发送到CAN总线上。其温度采集电路如图4所示。其中运放A1提供一个恒压,电阻R3、R4、R6和热敏电阻R5组成一个桥路,经运放A2后差分输出。
3.2 电压采集电路
系统采集单体蓄电池的电压是相对电压,为了保证电压检测的准确性和不影响系统的工作,采用光电隔离器进行隔离。经运放后输入单片机。其电路结构如图5所示。
电压采样电路采用线性光耦隔离芯片TIL300,输入电压变化转化为电流变化,其内部呈现如下线性关系:
由组成的反馈回路可以得,输入电压与输出电压之间的线性关系为:
电流采样电路与电压采用电路结构类似,只是将电压信号通过电阻转化为电流信号后进行采集,本文不再赘述。
3.3 单片机与CAN总线连接电路
本系统的单片机选用为增强型51单片机LPC935,LPC932通过SPI总线与CAN控制器MCP2510连接,经过高速光电隔离器6N137后连到CAN收发器82C250上,82C250连接在CAN总线上,实行差分发送和差分接收[1]。具体电路图如图6所示。
4 系统通信软件的编制
系统软件包含自检程序、数显程序、滤被处理程序和通信程序等,其中通信程序是软件设计的核心和关键。通信程序主要由3部分构成,即初始化程序,发送程序和接收程序。
4.1 初始化程序
初始化程序包括单片机LPC935各口的状态初始设置、堆栈的初始设置、定时器的设置、存储器的初始化、中断的初始化、串口的初始化和CAN控制器初始状态的设置等。
通过对CAN控制器控制段中的寄存器写入控制字,从而确定CAN控制器的工作方式。本系统采用的CAN控制器为MCP2510,在系统复位模式下,单片机 LPC935要对MCP2510完成寄存器操作;写接收代码寄存器与接收屏蔽寄存器,确定节点要接收的信息ID;写总线定时寄存器,确定总线通讯波特率; 写输出控制寄存器,选择正常输出控制模式。
4.2 发送程序
数据从MCP2510发送到CAN总线是由其自动完成的。LPC935发送的过程是:
(1) 编辑所发送信息的标识ID,然后将帧信息存入外部数据存储器之中。
(2) LPC935开始查询CAN控制器的状态寄存器的传输缓冲区状态标志位,若为0,则将信息写入MCP2510的发送缓冲区之中,而后置命令寄存器TC位为1,发送该信息。
4.3 接收程序
CAN 控制器自动完成信息从CAN总线到CAN接收缓冲区的传递,LPC935接收程序只需从接收缓冲区读取要接收的信息即可。MCP2510每成功地接收1帧信息,就把该信息存入内部的FIFO中,并产生接收中断。LPC935响应中断后,将FIFO内的信息读入外部RAM中,然后再释放该信息所占用的 MCP2510缓冲区。
5 结束语
本文介绍了一种基于CAN总线的分步式蓄电池检测系统。本系统实时性好、检测精度高、易于扩展、抗干扰性好、适用性强。此外,为了对蓄电池的过充电和过放电进行保护,可以增加温度补偿电路。随着蓄电池使用的不断广泛,蓄电池的检测与维护技术将是电源技术研究的一个热点,基于CAN总线的分步式蓄电池检测系统有着十分明显的优点和实际应用价值。