热点服务: 专业提供电子产品开发以及电路控制设计 专业工业电脑控制板设计和单片机控制板开发 专业设计研发步进电机驱动电路和电机控制装置 专业控制板开发 提供专业电子电路设计以及控制电路板开发 PCB电路板设计以及电路板控制系统开发 电路板设计制作和PCB贴片加工 提供专业电路板设计方案以及电路板加工生产 专业PCB设计抄板和贴片线路板加工生产 提供专业的单片机项目开发 提供专业的工业单片机开发和单片机系统设计 专业单片机产品开发和单片机程序设计 专业单片机电路设计以及单片机芯片机密 专业单片机解密以及单片机软件开发 专业设计研发直流电机驱动电路和步进电机控制板 专业车载空调驱动板开发生产 专业高品质高技术开发生产车载冰箱控制板 专业汽车冷却泵控制板研发与生产 专业新能源汽车电池散热泵驱动板研发生产 专业高品质高技术研发生产f鼓风机驱动板 高压无刷直流电机控制器 12V 60W 专业风机驱动板开研发与生产 低压无刷直流电机驱动板研发生产 专业汽车循环水泵控制板开发与生产 专业研发与生产车载压缩机驱动板 高技术高品质开发与生产直流无刷电机控制板 专业汽车散热泵驱动板开发与生产 专业汽车循环泵控制板研发生产 专业开发与生产汽车散热控制板 专业研发与生产汽车水泵控制板 专业汽车电水泵、汽车散热风扇类,风机水泵、直流无刷电机的控制板开发生产
您当前的位置: 首页 > 公司新闻 > 智能电池管理系统的设计与实现
发布日期:2012-02-13 发布人:FM

 

智能电池管理系统的设计与实现
摘要:设计与开发智能电池管理系统,提高电池的管理效率。利用下位机采集数据,与上位机通过MSComm控件通信,采用ODBC方式访问数据库。
关键词:智能电池; 上位机; 串口通信; 数据库
文献标识码A    中图分类号:TP311  
Abstract: It carries out design and development of intelligence battery management system to improve cell management efficiency.We utilize client computer to collect data ,communicate with host computer by applying Mscomm Control,adopt ODBC to realize access of database.
Key words:intelligence cell;host computer;serial communication ; database
 
1 引言
智能电池管理系统是一个能够对电池信息进行收集、传递、储存、分析的系统。随着计算机在智能电池中的普及应用,以及计算机技术的不断发展,智能电池管理系统也在不断发展。其作用主要表现在:1)提高电池的管理效益及经济效益;2)提高服务质量;3)提高电池的安全性。
2 系统设计
    智能电池管理系统的目标是能够及时、准确地反映智能电池的工作情况,提高电池的工作寿命,为用户提供迅速、高效的服务。系统采用C/S方式,分为两个部分:1) 数据的采集与控制,由下位机完成,可以采用单片机或PLC;2)后台处理,由上位机完成,一般采用PC机,通常还会涉及数据库的设计和管理。
经过需求分析,得出系统应该主要完成以下功能:1)电池信息采集;2)电池信息管理;3)电池信息显示;4)电池信息监测;5)系统参数设置。需要说明的是,信息显示是指以电压-时间等曲线形式显示电池信息,信息监测包括运行监测和容量检测及故障记录查询等部分,系统参数设置包括确定采集卡工作范围、运行参数设置以及充电器时间设置等内容。
根据实际情况分析并经过优化得到了系统的各个数据库表,有实时数据表、参数范围数据表、电池参数表等。举例如下:
 
 


 

作者简介:王晓东(1971-),男(汉族),湖北人,硕士,讲师。从事计算机应用与开发研究。
 
表1电池参数表

字段名
数据类型
可否为空
说明
ID
数字
NOT NULL
电池号(主键)
SERINUM
字符
NOT NULL
序列号
EDRL
数字
NULL
额定容量
DCXH
字符
NULL
电池型号
CCRQ
日期/时间
NULL
出厂日期
DYJZ
数字
NULL
电压校准
DLJZ
数字
NULL
电流校准

系统实现时后台数据库采用了ACCESS 2000。
3 系统解决的技术关键
3.1下位机控制
下位机采用ATMEL公司的AT89C51单片机,它是一款低功耗高性能的CMOS8-bit微处理器,具有4K字节的EPROM。连接单片机的是RS485接口,连接PC的是RS232接口。
上位机与下位机采用多机通信方式,数据校验是系统通信中重要的部分。由于系统主要负责电池信息管理,不做控制,上位机下传的数据较少且为已知,因此直接检查传送数据的正确性。单片机传至PC机的数据较多,所以将发送数据块中所有数据的累加和作为数据块的校验和,PC机如果发现数据传输出错,则立即通知单片机重发。始终是下位机等待上位机呼叫,然后作出相应处理,只要上位机定时发送命令,就不会出现两边都等待的现象[1]
下位机向上位机发送数据的过程是,下位机先发送请求字0x05,上位机收到后发送响应字0x06,然后下位机发送启动字0x02,接着发送数据包,上位机收到数据后,再发送响应字,下位机收到响应字后,发送结束传送字0x04,本次通信正常结束。需要指出的是,在实际应用中有可能出现过长时间未响应的现象,可以设置一个阀值,当失败次数超过阀值,则退出通信,转入错误处理。
    编程环境是德国KEIL公司的μVision2,采用C51语言编程。主要内容是单片机初始化,等待PC发送命令,然后上传数据。代码举例如下:
void initial()//初始化函数
{ IP=0x10;//定义串口为高优先级中断
 IE=0x97;
 ………
 PCON|=0x80;//数据传输率设置
 TR1=1;//启动定时器1
SelectComm1=0;//设置通信从机
………}
void send(unsigned char *p,int i)//发送数据    
{ int j=0;
 for(j=0;j<=i-1;j++)
 { ACC=*(p+j);
    TB8=P;
SBUF=ACC;//发送数据
………
TI=0;}}
 
3.2串口通信
    上位机读取上传数据以及发送下行命令都是通过串口进行的,利用MSComm ActiveX控件完成。采用事件驱动方式,即利用MSComm控件的OnComm消息捕获并处理通信事件,通过MSComm对象的GetCommEvent函数获得通信事件编号,根据CommEvent属性值来执行不同的操作,对串口的读写则调用GetInput和SetOutput成员函数来完成[2]。需要指出的是,单片机处理速度比PC机慢,所以需要延迟一定时间再接收,才能保证所有信息接收完毕并存入缓冲区。代码举例如下:
void CBatteryDlg::OnCommMscomm()
{VARIANT vRsp;
 int nEvent,k;
 char *str;
 nEvent=m_Com.GetCommEvent();//得到事件编号
 switch(nEvent)
{case 2://表明接收缓冲区有数据
 k=m_Com.GetInBufferCount();//接收到的字符数目
   if(k>0)
{ ::sleep(3);//延迟
    vRsp=m_Com.GetInput();//读数据
    str=(char*)vRsp.parray->pvData;
}
………}}
3.3数据库访问
系统需要保存各种实时接收的电池信息,并实现以后的数据分析,利用数据库可以较好地解决这个问题。采用了MFC ODBC方式, CDatabase类提供对数据源的连接,CRecordSet类提供从数据源中提取出的记录集。通过DBGrid Control和Microsoft RemoteData Control这两个ActiveX控件协同工作,完成大量电池信息的网格化显示。
访问数据库的步骤是,首先建立ODBC连接,然后调用CRecordSet对象的Open成员函数建立记录集,与数据库的表对应,对表的增加、删除等操作由AddNew、Delete等成员函数实现,访问完成后调用Close成员函数关闭记录集[3]。部分代码如下:
if(!m_database.IsOpen())//确保数据库打开
m_database.Open(_T(“battery”));
CBatSet m_pSet(&m_database);//创建记录集
m_pSet.Open();
m_pSet.AddNew();//添加新记录
………
m_pSet.Update();//存入数据库
m_pSet.Requery();//重建记录集
if(!m_pSet.IsEOF())
 m_pSet.MoveLast();//移动到最后一条记录
m_dbGrid.Refresh();//刷新DataGrid网格控件
m_pSet.Close();
m_database.Close();
3.4数据曲线绘制
电池信息显示模块主要是以图形化方式实时显示各类电池参数,例如电压-时间曲线、容量-时间曲线以及电池状态等,使操作员对电池的主要参数有一个直观的印象,跟踪其运行趋势。数据图形是不断更新的,需要动态绘制,把数据从实时数据表中读出,先存入缓冲区,由定时器控制曲线的更新频率,图形绘制需要最近不同时间段的多组数据,因此缓冲区要随着新的数据接收而更新。坐标应针对不同类型的参数做相应变换,才能保证曲线图形的精确显示,这主要依靠坐标映射来完成[4]。画图是通过重新定义OnPaint函数实现的,以下是部分代码:
void CdrawDlg::OnPaint( )
{ CWnd *pWnd=GetDlgItem(IDC_STATIC1);//获取窗口指针
 CDC *pDC=pWnd->GetDC( );//申请设备环境指针
 CRect r; 
 GetClientRect(r);//获取窗口客户尺寸
………
pDC->SetMapMode(MM_ISOTROPIC);//映射模式
pDC->SetWindowOrg(CPoint(50,50));
pDC->SetWindowExt(1000,1000);
pDC->SetViewportExt(r.right,-r.bottom);
pDC->SetViewportOrg(r.left,r.bottom);
CPen p1;
p1.CreatePen(PS_SOLID,1,RGB(0,0,255));//创建蓝色画笔
………}
4 结语
对智能电池信息管理系统的设计与实现作了详细的介绍,采用单片机控制、MSComm串口通信、MFC ODBC等技术,实现了电池信息的实时采集、显示、储存以及报警等功能,达到电池的智能化管理目标。经过测试运行,情况表明此系统操作方便,基本达到预期目的,为开发类似的监控管理软件提供了借鉴。
 
热点服务: 专业提供电子产品开发以及电路控制设计 专业工业电脑控制板设计和单片机控制板开发 专业设计研发步进电机驱动电路和电机控制装置 专业控制板开发 提供专业电子电路设计以及控制电路板开发 PCB电路板设计以及电路板控制系统开发 电路板设计制作和PCB贴片加工 提供专业电路板设计方案以及电路板加工生产 专业PCB设计抄板和贴片线路板加工生产 提供专业的单片机项目开发 提供专业的工业单片机开发和单片机系统设计 专业单片机产品开发和单片机程序设计 专业单片机电路设计以及单片机芯片机密 专业单片机解密以及单片机软件开发 专业设计研发直流电机驱动电路和步进电机控制板 专业车载空调驱动板开发生产 专业高品质高技术开发生产车载冰箱控制板 专业汽车冷却泵控制板研发与生产 专业新能源汽车电池散热泵驱动板研发生产 专业高品质高技术研发生产f鼓风机驱动板 高压无刷直流电机控制器 12V 60W 专业风机驱动板开研发与生产 低压无刷直流电机驱动板研发生产 专业汽车循环水泵控制板开发与生产 专业研发与生产车载压缩机驱动板 高技术高品质开发与生产直流无刷电机控制板 专业汽车散热泵驱动板开发与生产 专业汽车循环泵控制板研发生产 专业开发与生产汽车散热控制板 专业研发与生产汽车水泵控制板 专业汽车电水泵、汽车散热风扇类,风机水泵、直流无刷电机的控制板开发生产

友情连接:中山嘉科 | 无锡市鼎科电子有限公司 | Global Design Tech Co., Ltd. | Dingke Global Design Tech

关于我们 | 客户服务 | 联系我们 | 流量统计

©2014 All Right Reserved.版权所有 鼎科 电话:0510-81815570 0510-81816835 传真:0510-85215510 苏ICP备19024968号-1
E-mail:doris@ding-ke.com 地址:江办省无锡市新吴区清源路20号太湖国际科技园传感网大学科技园立业楼C511