基于单片机的蓄电池监测系统设计.docx
《基于单片机的蓄电池监测系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的蓄电池监测系统设计.docx(16页珍藏版)》请在冰豆网上搜索。
基于单片机的蓄电池监测系统设计
河南科技大学
课程设计说明书
课程名称电气控制技术
题目基于单片机的蓄电池容量测试系统设计
学院农业工程学院__
班级__
学生姓名
指导教师___
日期2015年4月3日
专业课程设计任务书
班级:
农电112姓名:
唐聪杰学号:
111403010224
设计题目:
基于单片机的蓄电池容量测试系统设计
一、设计目的
熟悉专业课程设计的相关规程、规定,了解电力系统,电网设计数学模型的基本建立方法和相关算法的计算机模拟,熟悉相关电力计算的内容,巩固已学习的相关专业课程内容,学习撰写工程设计说明书,对电力系统相关状态进行模拟,对电网设计相关参数计算机计算设计有初步的认识。
二、设计要求
(1)通过对相应文献的收集、分析以与总结,给出相应项目分析,建立数学模型。
(2)通过课题设计,掌握电力系统计算机算法设计的方法和设计步骤。
(3)学习按要求编写课程设计报告书,能正确阐述设计方法和计算结果。
(4)学生应抱着严谨认真的态度积极投入到课程设计过程中,认真查阅相应文献以与实现,给出个人分析、设计以与实现。
三、设计任务
(一)设计内容
1.了解蓄电池容量测试原理;
2.设计基于单片机的蓄电池容量测试系统,包括软件和硬件;
3.利用protues软件对所设计系统进行仿真;
4.相关论文在学校图书馆中文数据库“万方数字化期刊”中查找。
(二)设计任务
1.建立相关算法、模型。
2.设计说明书,包括全部设计内容,对电力系统相关状态进行模拟。
3.总体方案图,仿真软件模拟波形图,计算相关参数。
四、设计时间安排
查找相关资料(2天)、确定总体方案,进行必要的计算。
(1天)、对电力系统相关状态进行模拟,计算相关参数,(2天)、
使用(MATLAB)等相关软件进行电路图系统图设计与仿真。
(2天)、撰写设计报告(2天)和答辩(1天)。
五、主要参考文献
[1]电力工程基础
[2]工厂供电,电力系统分析
[3]相关设计仿真软件手册,如(MATLAB)等。
[4]数学建模算法分析等
[5]电气工程设计手册等
[2]图书馆中文数据库“万方数字化期刊”其他相关网络资料
指导教师签字:
年月日
基于单片机的蓄电池容量测试系统设计
摘要
蓄电池作为一种供电方便、安全可靠的直流电源广泛应用于电力、石化、通讯等领域,为获得较高的电压,常用多节蓄电池串联工作方式。
由于单体蓄电池特性的差异,在运行一段时间后,电池组中个别电池性能变差,进而失效,造成电池组整体性能下降,导致整个系统的可靠性降低,且蓄电池是一种化学反映装置,内部的化学反映不易与时发现,因此有必要对蓄电池的运行状态进行实时在线监测。
因此为了确保用电设备即使在交流电源全部中断的情况下也能正常安全连续运行,必须保证蓄电池组的运行状态性能良好,在发生火电中断时能够有足够的放电容量,所以重视和加强对蓄电池的维护工作,特别是对蓄电池实施实时在线监测意义重大。
蓄电池监测系统中,主要内容是对单电池电压的监测。
其中,关于温度和电流的测量都属常规测量,而且在这些方面的测量技术都已成熟。
在电压的测量方法上,对单个电压量的测量方法非常简单。
其中,最关键的是如何测量电池组中串联在一起的单体电池电压。
在解决如何测量单体电池电压问题上,人们进行了大量的研究工作。
关键词:
蓄电池,检测系统,电压
第一章引言
1.1本课题研究的意义
铅酸蓄电池(LeadAcidBattery,LAB)作为一种化学电源,自1860年普兰特(Plante)首次发明了实用的蓄电池以来,尤其是近年来随着阀控式铅酸蓄电池(ValveRegulatedLAB,VRLAB)的出现,蓄电池以其价格低廉、易于浮充使用、电能效率高、电源独立性好、可移动等优点被广泛应用于发电厂、变电站、邮电通讯系统、汽车、船舶、铁路客车等各个领域。
蓄电池组作为直流系统向外供电的唯一设备,为电力系统和通信系统中的信号装置、继电保护装置和控制装置等重要负载提供工作电源,其性能的好坏直接关系到电力系统和通信系统的安全可靠性。
因此为了确保用电设备即使在交流电源全部中断的情况下也能正常安全连续运行,必须保证蓄电池组的运行状态性能良好,在发生火电中断时能够有足够的放电容量,所以重视和加强对蓄电池的维护工作,特别是对蓄电池实施实时在线监测意义重大。
1.2国内外发展状况
随着科学技术的发展,特别是单片机和计算机在智能化控制方面的应用,以与在变电站综合自动化系统等方面研究的深入,关于蓄电池的自动化监测问题也提到日程上来。
近几年以来,很多人开始研究蓄电池的自动化监测。
蓄电池监测系统中,主要内容是对单电池电压的监测。
其中,关于温度和电流的测量都属常规测量,而且在这些方面的测量技术都已成熟。
在电压的测量方法上,对单个电压量的测量方法非常简单。
其中,最关键的是如何测量电池组中串联在一起的单体电池电压。
在解决如何测量单体电池电压问题上,人们进行了大量的研究工作。
有人提出用继电器来切换电池组中的每只电池。
用触点式继电器切换的缺点是:
体积大、成本高、寿命短、速度慢,且其电压值计算比较麻烦;有人提出另外一种方法:
在多路输入信号的选择上采用模拟开关进行选通,在模拟信号的转换上采用可编程定时器的V/F转换器。
其中,在解决输入信号电压高于芯片的最大工作电压的问题上存在技术难点,且采用V/F转换作为A/D转换器。
其缺点是响应速度慢、在小信号范围内线性度差、精度低。
关于在线测量单只电池电压的方法,还有人提出用光电隔离器件和大电解电容器构成采样,保持电路来测量蓄电池组中单只电池电压。
此电路的缺点是:
在A/D转换过程中,电容上的电压能发生变化,使其精度趋低,而且电容充放电时间与晶体管和隔离芯片等器件动作延迟等因素,决定采样时间长等缺点。
国内研制并投产的ZXJ24/2-1型蓄电池组智能监测仪,采用浮动地技术测量蓄电池组中各单体电池电压,测量结果比较准确,但也存在模拟开关切换以与各器件的不一致性问题对浮动地的电位的影响,从而使测量结果偏差加大。
国外有人研究VMS(VRLABatteryManagementSystem)阀控密封铅酸蓄电池管理系统。
因为恒压充电的方法不能满足不同蓄电池所需的不同充电电流。
系统监测的内容包括:
单电池电压、电池内部温度、放电电流与放电过程中测量电池组总电压。
VMS中包含了BMS,它是在监测的基础上对蓄电池进行分析,并进行管理和控制。
这样更有利于对蓄电池的维护,延长蓄电池使用寿命。
1.3蓄电池组管理系统的功能
蓄电池电池组监测系统要承担电池组的系统管理,一方面保证电池组的正常运做,显示电池的动态响应并与时报警,使操作人员随时都能掌握蓄电池的情况。
另一方面要避免出现意想不到的各种事故。
蓄电池电池组监测系统通过标准通讯接口和控制模块对电池组进行管理,它的基本功能包括以下几个方面的内容:
1)蓄电池电池组管理
监视电池组的双向的总电压和电流、电池组的温升,并通过液晶或其他显示装置,动态显示总电压、电流、温升的变化,避免电池组过放,使电池组不会受到人为的损坏。
2)单节电池管理
对电池组中的单节电池的管理,可以与时发现单节电池的电状态,对单节电池动态电压和温度的变化进行实时测量,以便与时发现单节电池存在的问题,并采取有效的防范措施。
第二章设计要求与系统框图
2.1控制要求
UPS电源是电力、通信、银行等行业的必备电源,要求其稳定可靠。
蓄电池是UPS系统的重要组成部分,它的优劣直接关系到整个UPS系统的可靠性。
精确预测蓄电池的临界失效期,对提高UPS系统的可靠性具有重要意义。
本设计是基于单片机的蓄电池在线监测电路系统的设计。
其主要任务是完成蓄电池各个参数(电压、电流、温度、剩余电量)的采集,并且可以显示输出,当各参数超限时,产生声光报警。
设计过程中要有理论的分析,选择合适的器件;运用Protel绘制电路;编辑相应的程序;通过仿真器来测试系统的可行性;按照学校有关文件的要求完成毕业设计前期材料。
2.2系统框图
根据系统的需求分析,设计主要分为两部分:
数据采集和数据处理,这两部分都需要硬件和软件的相互配合才能完成。
蓄电池的电压、电流与温度等数据参数经采样电路得到后送单片机,经单片机运算处理,进行LCD显示、与上位机通讯等操作。
信号采样电路选用DS2438蓄电池监测专用芯片,对单体电池电压、电流、温度等信号参数进行测量;单片机通过连接的键盘,可以设置产生报警的限值,同时能够实现显示数据的切换;当参数值超限时,自动进行声光报警。
设计中加入硬件看门狗电路,进行保护。
本设计中模块单元的功能如下:
1)单体电池电压、电流、温度等信号采集电路:
将被监测的蓄电池单体电池的电压、温度等信号进行采集,并且送到单片机内;
2)键盘单元:
设定报警上下限值,并对显示内容进行切换;
3)89C51单片机:
对接收到的二进制信号进行相应的处理,并产生相应的控制信号;
4)LCD显示电路:
显示电压、电流、温度等参数值;
第三章系统软件设计
系统硬件电路设计完成之后,就要进行软件的设计和调试。
如果没有软件来控制硬件电路和外围设备,系统仍然是不完善的。
在监控系统中,软件的编制需要符合以下基本要求:
1)易理解、易维护。
通常是指软件系统容易阅读和理解,容易发现和纠正错误,容易修改和补充。
由于检测控制系统的复杂性,设计人员很难在短时间内就对整个系统理解无误,应用软件的设计和调试不可能一次就完成,有些问题是在运行中逐步暴露出来的,这就要求编制的软件容易理解和完善。
2)实时性。
实时性是监测控制系统的普遍要求,既要求系统与时相应外部事件的发生,并与时给出处理结果。
3)可测试性。
检测控制系统软件的可测试性具有两方面的含义:
其一是指比较容易地制定出测试准则,并根据这些准则对软件进行测定;其二是指软件设计完成后,首先在模拟环境下运行,经过静态分析和动态仿真运行,证明准确无误后才可以投入实际运行。
4)准确性。
准确性对检测控制系统具有重要意义。
系统中要进行大量运算,算法的正确性和准确性对控制结果有直接影响,因此在算法的选择、位数选择方面要适合要求。
5)可靠性。
可靠性是检测控制软件最重要的指标之一,它要求两方面的意义:
一试运行参数环境变化时,软件都能可靠运行并给出正确结果,也就是要求软件具有自适应性;二是工业环境极其恶劣,干扰严重,软件必须保证在严重干扰条件下也能可靠运行,这对检测控制系统尤为重要。
3.1开发语言和开发环境
51单片机的编程语言常用的有两种,一种是汇编语言,一种是C语言。
本设计中采用汇编语言编程,下面了解其基本概念和主要优点。
汇编语言是单片机设计的基础语言。
它的特点是使开发人员能够充分的对单片机硬件资源进行管理和操作。
所谓汇编语言就是用助记符、符号和数字等来表示指令的程序语言,容易理解和记忆,与机器语言是一一对应的。
它是为了弥补机器语言不易记忆,不易查错和不易修改而产生的一种低级语言。
所谓程序设计就是用计算机能够识别的语言,把需要解决的问题的步骤描述出来单片机不像其他微型计算机有自己的系统软件,所有的单片机程序均需要用户自己设定程序。
到目前为止,虽然已经有绝大部分的单片机都能够在一些高级语言环境下编程,但汇编语言也有许多优点是其他高级语言所不具有的。
如:
程序结构紧凑、占用的内存和CPU资源少;程序简短、执行速度快;与计算机内部硬件结构紧密、能充分发挥硬件的作用;实时性强、适用于实时检测控制系统[9]。
汇编语言的程序设计步骤主要包括:
分析问题、确定思路、画流程图、编写程序、程序调试。
这些步骤在软件设计中将一一体现。
本设计中的软件采用WAVE公司开发的编译系统进行编写,采用各个子模块组成整个程序。
软件主要功能包括:
设置系统初始状态、电池电压、电流、剩余电量的在线测量,温度的测量、报警的设定和串行通讯、键盘的扫描、电池状态显示、声光报警等。
上述功能主要由:
主程序模块、测量模块、键盘扫描模块、LCD显示模块、串口通信模块等来实现。
3.2主程序模块
系统上电之后要对系统进行初始化设置,在初始化设置时主要对系统中用到的一些标志位和定时器进行设定,如果检查到报警值没有进行设置则设置报警值,对串口进行初始化等工作。
在系统初始化之后要开启中断,开始扫描键盘,等待定时器的中断。
具体框图如图4.1所示:
3.3数据测量程序模块
为了满足监测的实时性,本系统单片机采用定时中断的方式访问DS2438,进行电池参数采集。
首先设置单片机的计数器为定时方式,开启计数器,定时长短可随需要灵活设定。
然后单片机运行其它程序,等待定时中断的到来。
定时中断发生之后进入中断服务程序,调用DS2438的控制操作程序,进行数据采集,并将采集来的数据进行处理和显示,最后重新初始化定时中断,返回。
如图4.2所示:
Y
3.3.1单总线的工作原理
DS2438与单片机的通信采用的单总线协议,单总线技术有3个显著的特点:
①单总线芯片通过一根信号线进行地址信息、控制信息与数据信息的传送,并通过该信号线为单总线芯片提供电源;②每个单总线芯片都有全球唯一的访问序列号,当多个单总线器件挂在同一单总线上时,对所有单总线芯片的访问都通过该惟一序列号进行区分:
⑨单总线芯片在工作过程中,不需要提供外接电源,而通过它本身具有的“总线窃电”技术从总线上获取电源。
为了较为全面地介绍单总线系统,将系统分为三个部分讨论:
硬件结构、命令序列和信号方式(信号类型和时序)。
1)单总线芯片硬件电路
顾名思义,单总线只有一根数据线,系统中的数据交换、控制都由这根线完成,大部分器件完全依靠从数据线上获得的电源供电,个别器件在许可的情况下由本地电源供电。
当数据线为高电平时,电荷存储在器件内部;当数据线为低电平时,器件利用这些电荷提供能量。
主机或从机通过一个漏极开路或三态端口连接至该数据线,以允许设备在不发送数据时能够释放数据总线,以便总线被其它设备所使用。
单总线采用线或配置,端口为漏极开路,硬件电路可参考图3.5信号采集模块。
2)单总线命令时序
当需要通过单总线访问单总线器件时,必须严格遵守单总线命令序列,如果出现序列混乱,则单总线器件不会响应。
典型的单总线命令序列为:
第一步,初始化;第二步,ROM命令;第三步,功能命令。
a)初始化
基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成。
应答脉冲使主机知道总线上有从机设备,且准备就绪。
b)ROM命令
当主机接收到单总线器件发回来的应答脉冲之后,就可以发出ROM命令,该命令与每个单总线器件设备的唯一64位ROM代码相关。
该代码在生产时就已经被固化在器件之中,如同器件的身份证一样。
通过该代码,主机可以指定对某一个单总线器件进行操作。
该ROM码中第一个字节表示族码,最后一个字节为CRC校验码。
从机设备可能支持5种ROM(实际情况与具体型号相关,这里通常以DS2438为例进行说明),每种命令的长度均为8位。
其所支持的5种ROM命令如下。
ⅰ)读ROM命令[33H](仅适用于单节点):
该命令仅适用于总线上只有一个从机设备。
它允许主机直接读出从机的64位ROM代码,而无须执行搜索ROM过程。
如果该命令用于多节点系统,则必然发生数据冲突,因为每个从机设备都会响应该命令,从而无法识别正确的代码。
ⅱ)匹配ROM[55H]:
匹配ROM命令后跟随64位ROM代码,从而允许主机访问多节点系统中某个指定的从机设备,仅当从机完全匹配64位ROM代码时才会响应主机,随后发出功能命令。
其它设备将处于等待复位脉冲状态。
ⅲ)搜索ROM[F0H]:
当系统初始上电时,主机必须找出总线上所有从机设备的ROM代码,这样主机就能够判断出从机的数目和类型。
主机通过重复执行搜索ROM循环(搜索ROM命令跟随着位数据交换),以找出总线上所有的从机设备。
如果总线只有一个从机设备则可以采用读ROM命令来替代搜索ROM命令。
在每次执行完搜索ROM循环后主机必须返回至命令序列的第一步(初始化)。
ⅳ)跳跃ROM[CCH](通常用于单节点):
采用该命令使得主机能同时访问总线上的所有从机设备,无须发出任何ROM代码信息。
这种命令通常用于不需要从机设备向主机发送信息。
值得注意,如果跳越ROM命令跟随的是读操作命令则该命令只能应用于单节点系统,否则将由于多个节点同时响应该命令而引起数据冲突。
ⅴ)报警搜索[ECH](仅用于少数单总线器件):
除那些设置了报警标志的从机响应外,该命令的工作方式完全等同于搜索ROM命令。
该命令允许主机设备判断那些从机设备发生了报警(如最近的测量温度过高或过低)。
等同搜索ROM命令一样,在完成报警搜索循环后,主机必须返回至命令序列的第一步。
c)功能命令
功能命令即主机控制某个单总线器件完成某一特定功能。
通常在主机发出ROM命令之后紧接着发出,常用的功能有读暂存器、写暂存器、复制暂存器、回读EEPROM等命令。
其他根据不同的单总线器件还有一些特定命令,DS2438的功能命令。
3)单总线通信的信号方式
与其他所有的数据通信传输方式一样,所有的单总线器件在数据传输过程中要求采用严格的通信协议,以保证数据的完整性。
单总线通信协议定义了如下几种信号类型,即复位脉冲、应答脉冲、写0、写1、读0和读1。
所有这些信号(除了应答脉冲以外)都由主机发出同步信号。
并且发送所有的命令和数据都是字节的低位在前,这一点与多数串行通信格式不同(多数为字节的高位在前)。
单总线通信协议中不同类型的信号都采用一种类似于脉宽调制的波形表示,逻辑“0”用较长的低电平持续周期表示,逻辑“1”用较长的高电平持续周期表示。
在主机初始化过程,主机通过拉低单总线至少480μs,以产生复位脉冲。
接着,主机释放总线,并进入接收模式。
当总线被释放后,4.7K上拉电阻将单总线拉高。
在单总线器件(从机)检测到上升沿后,等待15μs~60μs,接着通过拉低总线60μs~240μs以产生应答脉冲。
以下重点介绍写时隙和读时隙。
在写时隙期间,主机向单总线器件写入数据;而在读时隙期间,主机读入来自从机的数据。
在每一个时隙内总线只能传输一位数据。
无论是读时隙还是写时隙,它们都以主机驱动数据线为低电平开始,数据线的下降沿使从机触发其内部的延迟电路,使之与主机同步。
在写时隙内,该延迟电路决定从机采样数据线的时间窗口。
单总线通信协议中存在两种写时隙:
写0和写1。
主机采用写1时隙向从机写入1,而采用写0时隙向从机写入O。
所有写时隙至少需要60μs,且在两次独立的写时隙之间至少需要1μs的恢复时间。
两种写时隙均起始于主机拉低总线。
产生写1时隙的方式:
主机在拉低总线后,接着必须在15μs之内释放总线,由上拉电阻将总线拉至高电平:
产生写0时隙的方式:
在主机拉低总线后,只需在整个时隙期间保持低电平即可(至少60μs)。
在写时隙起始后15-60μs期间,单总线器件采样总线电平状态。
如果在此期间采样为高电平,则逻辑1被写入该器件;如果为0则写入逻辑0。
对于读时隙,单总线器件仅在主机发出读时隙时,才向主机传输数据,所以在主机发出读数据命令后,必须马上产生读时隙,以便从机能够传输数据。
所有读时隙至少需要60μs,且在两次独立的读时隙之间至少需要1μs的恢复时间。
每个读时隙都由主机发起,至少拉低总线1μs。
在主机发起读时隙之后,单总线器件才开始在总线上发送O或1。
若从机发送1,则保持总线为高电平;若发送0,则拉低总线。
当发送O时,从机在该时隙结束后释放总线,由上拉电阻将总线拉回至空闲高电平状态。
从机发出的数据在起始时隙之后,保持有效时间15μs,因此主机在读时隙期间必须释放总线,并且在时隙起始后的15μs之内采样总线状态。
3.3.2DS2438与单片机通讯
通常主机与单总线器件的通信都是通过初始化、写0、写1、读0、读1时序来的完成的。
单总线通信时,每次传送的数据或命令都由一系列时序信号组成。
单总线上共有四种基本时序信号:
复位信号、写1位、写0位和读信号。
发送字节命令可以通过多次调用这四种基本时序来实现。
设计中应保证指令执行时间小于或等于时序信号中的最小时间。
实现字节数据的读写后,我们就可以发送控制指令或内存指令了。
进行数据通信时,单片机对单总线器件操作时一般分为以下四个过程:
初始化器件、发送ROM命令、发送RAM命令、数据交换。
3.3.3系统对蓄电池各参数的检测
1)电压、电流、温度参数测量
DS2438采集到的数据参数均存放在蓄电池寄存器中,单片机通过单总线实现对该参数寄存器读取操作即能实现参数采集。
可以看出对电流的采集与对电压、温度的采集流程有些不同,那是因为DS2438对电流的采样是以每秒钟36.41次的速度对流入或者流出电流进行自动采集,而电压与温度不会自动采集,必须通过单片机发出电压、温度转换命令(采集命令)之后,才能对电压、温度的寄存器读取数据操作。
2)剩余电量检测
为了能够功能更加准确和科学的表征蓄电池的剩余电量,通常用荷电状态来表征蓄电池的剩余容量,即SOC(StateOfCharge),它是对蓄电池剩余容量状态的重要参数,SOC不能直接通过测量获得,它可用电流积分累加(ICA)寄存器的值求得。
DS2438对电池剩余电量的测量是借助其内部的电流积分累加器(ICA)实现的。
ICA寄存器的值是由DS2438定时自动测量电池电流后更改的,存放的是流入、流出电池总电流的净累加值,无需对其进行控制,只需单片机读出ICA寄存器的值,然后将读出的值代入公式,剩余电量=ICA/(2048*RSENS)(式中RSENS的单位为Ω),便可得到电池的剩余电量。
剩余电量检测的流程图见图4.6。
N
Y
在读取寄存器的值时,为防止读取错误,先要检查DS2438是否正在修改寄存器的内容,这可通过对状态/标志寄存器中的NVB位加以判断。
3.4显示电路子程序模块
3.4.11602液晶显示基本操作时序
1602有四种基本操作时序,主要有读状态:
输入为RS=L,R/W=H,E=H,输出为D0-D7=状态字;写指令:
输入为RS=L,R/W=L,E=高脉冲,D0-D7=指令码,输出无;读数据:
输入为RS=H,R/W=H,E=H,输出为D0-D7=数据;写数据:
输入为RS=H,R/W=L,E=高脉冲,D0-D7=数据,输出无。
3.4.21602指令说明
1602液晶模块内部的控制器共有11条控制指令,见表4.2。
表4.21602液晶屏指令说明
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移
0
0
0
0
0
1
S/C
R/L
6
置功能
0
0
0
0
1
DL
N
F
7
置字符发生存储器地址
0
0
0
1
字符发生存储器地址
8
置数据存储器地址
0
0
1
显示数据存储器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRAM或DDRAM
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
1602液晶显示器的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
3.4.31602标准字库
1602液晶模块内部的