基于单片机的蓄电池检测系统设计.doc_第1页
基于单片机的蓄电池检测系统设计.doc_第2页
基于单片机的蓄电池检测系统设计.doc_第3页
基于单片机的蓄电池检测系统设计.doc_第4页
基于单片机的蓄电池检测系统设计.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的蓄电池检测系统设计1 引言蓄电池作为一种供电方便、安全可靠的直流电源广泛应用于电力、石化、通讯等领域,为获得较高的电压,常用多节蓄电池串联工作方式。由于单体蓄电池特性的差异,在运行一段时间后,电池组中个别电池性能变差,进而失效,造成电池组整体性能下降,导致整个系统的可靠性降低,且蓄电池是一种化学反映装置,内部的化学反映不易及时发现,因此有必要对蓄电池的运行状态进行实时在线监测。1.1 本课题研究的意义蓄电池作为一种化学电源,1860年普兰特首次发明了实用的蓄电池以来,蓄电池以其价格低廉、易于浮充使用、电能效率高、电源独立性好、可移动等优点被广泛应用于发电厂、变电站、邮电通讯系统、汽车、船舶、铁路客车等各个领域。随着经济的迅速发展,电力系统和通信系统发挥着越来越重要的作用,由蓄电池组、充电浮充电装置以及馈电支路开关和熔断器等组成的直流系统是发电厂、变电站和通信基站中的一个重要组成部分,其工作状况的好坏直接影响到电力系统和通信系统的安全、可靠和高效运行。而蓄电池组作为直流系统向外供电的唯一设备,为电力系统和通信系统中的信号装置、继电保护装置和控制装置等重要负载提供工作电源,其性能的好坏直接关系到电力系统和通信系统的安全可靠性。因此为了确保用电设备即使在交流电源全部中断的情况下也能正常安全连续运行,必须保证蓄电池组的运行状态性能良好,在发生火电中断时能够有足够的放电容量,所以重视和加强对蓄电池的维护工作,特别是对蓄电池实施实时在线监测意义重大。1.2 国内外发展状况随着科学技术的发展,特别是单片机和计算机在智能化控制方面的应用,以及在变电站综合自动化系统等方面研究的深入,关于蓄电池的自动化监测问题也提到日程上来。近几年以来,很多人开始研究蓄电池的自动化监测。蓄电池监测系统中,主要内容是对单电池电压的监测。其中,关于温度和电流的测量都属常规测量,而且在这些方面的测量技术都已成熟。在电压的测量方法上,对单个电压量的测量方法非常简单。其中,最关键的是如何测量电池组中串联在一起的单体电池电压。在解决如何测量单体电池电压问题上,人们进行了大量的研究工作。有人提出用继电器来切换电池组中的每只电池。用触点式继电器切换的缺点是:体积大、成本高、寿命短、速度慢,且其电压值计算比较麻烦;有人提出另外一种方法:在多路输入信号的选择上采用模拟开关进行选通,在模拟信号的转换上采用可编程定时器的v/f转换器。其中,在解决输入信号电压高于芯片的最大工作电压的问题上存在技术难点,且采用v/f 转换作为a/d转换器。其缺点是响应速度慢、在小信号范围内线性度差、精度低。关于在线测量单只电池电压的方法,还有人提出用光电隔离器件和大电解电容器构成采样,保持电路来测量蓄电池组中单只电池电压。此电路的缺点是:在a/d转换过程中,电容上的电压能发生变化,使其精度趋低,而且电容充放电时间及晶体管和隔离芯片等器件动作延迟等因素,决定采样时间长等缺点。国内研制并投产的zxj24/2-1型蓄电池组智能监测仪,采用浮动地技术测量蓄电池组中各单体电池电压,测量结果比较准确,但也存在模拟开关切换以及各器件的不一致性问题对浮动地的电位的影响,从而使测量结果偏差加大2。美国bms蓄电池监测系统技术发展于电力应用工业。1989年,美国电力研究所与国家电能研究公司合作,共同研究了无人值守场站(pbwc)铅酸蓄电池综合在线状态监测系统。经过4年的研究与开发,耗资200万美元,于1994年完成样机的现场试验。测定的参数包括:电池组电压、单体电压、(浮充电)维持电流、电池内部温度、电池组环境温度、电解液比重、电解液液面高度以及电极利用情况等。其方法是采用安装在每一只电池上的多传感器电池监测模块(叫“电池监测器”,是真空密封的)。这种模块通过光缆将状态数据传输到蓄电池组监测器,每一电池组监测器可监测256个单电池。远程控制中心通过modems和公用电话线对电池组监测器进行监测,可监测的电池组监测器的数量不受限制。控制中心pc机能定期查询所有运行组的监测器,下载并处理储存的数据,存储和显示电池状态及其趋势的信息,能获得每一节电池的参数。3其主要特征是运用特定传感器对电池组的每个电池进行独立监测。单电池电压的测量是使用传统的一个直接带有稳压的a/d转换器。电池组电压的测量是用一个与电池组连接的滑动变阻器和带有稳压参考的a/d转换器(由电池组供电)。电池组电流的测量用霍尔效应磁域传感器来测量。电池内部温度的测量通常是用直接与电池壁接触的固态集成电路温度传感器来测量,并且同外部环境如气流和阳光这样的热效应隔离。电池组温度的测量是用同样的装置来测量。为了描述电池组周围空气的平均温度,传感器一般位于电池组支架上。此项研究成果应用于电厂、变电站、通信、电动车辆及医疗等领域。关于bms蓄电池的监测有多种监测目的。因此,监测的重点也有差异,在监测的方法和手段上人们进行了大量的研究和探索。在圣巴巴拉某区的电车上,使用了vrla蓄电池作为电源。4同时在蓄电池上安装有bms蓄电池监测系统,以评价蓄电池的运行状况。bms能够向操作人员提供有关剩余电量的信息及电池性能接近极限状态时的报警状态。同样重要的是,为对电池状态进行分析和维护,将数据进行记录。这里使用的电池单电压是12v。此bms的数据采集系统包括16路单电压通道、测量一个显示电池温度及环境温度的4路温度通道、电池组电压和电流通道。a/d采样速率是每秒40个采样点,精度好于0.1%。电源供电部分使用了dc/dc变换器。此bms通过获得电池的数据来分析电池和车辆的运行状况。在韩国,有人研究光伏系统中的蓄电池状态的监测。铅酸蓄电池作为独立光伏系统的能量的储存设备,可防止过度放电和过度充电,对延长整个系统的服务寿命非常重要。蓄电池组的监测内容有:单电池电压、电池组电压、通过电池组的电流及电解液的比重等。每一个被选择的单电池电压使用一个便携式数据采集系统监测。这个系统中有一个20个通道的扫描器、一个数字多路选择器及一个笔记本电脑。电解液的比重是通过数字比重计测量。研究的监测系统不仅要监测以上这些内容,而且采用了一种“电流中断技术”,以测量电池组充电时电池的内部电阻。根据单电压和电流的关系,通过连续测量内部电阻以监测电池的老化趋势。5国外有人研究vms(vrla battery management system)阀控密封铅酸蓄电池管理系统。这个管理系统不是简单的监测蓄电池,而是设计成具有管理和控制蓄电池的功能。此系统的目的是改变蓄电池“恒压充电”的方法。因为恒压充电的方法不能满足不同蓄电池所需的不同充电电流。系统监测的内容包括:单电池电压、电池内部温度、放电电流及放电过程中测量电池组总电压。vms中包含了bms,它是在监测的基础上对蓄电池进行分析,并进行管理和控制。这样更有利于对蓄电池的维护,延长蓄电池使用寿命6。1.3 蓄电池组管理系统的功能蓄电池电池组监测系统要承担电池组的系统管理,一方面保证电池组的正常运做,显示电池的动态响应并及时报警,使操作人员随时都能掌握蓄电池的情况。另一方面要避免出现意想不到的各种事故。蓄电池电池组监测系统一般采用先进的微处理器进行控制,通过标准通讯接口和控制模块对电池组进行管理,它的基本功能包括以下几个方面的内容:1)蓄电池电池组管理监视电池组的双向的总电压和电流、电池组的温升,并通过液晶或其他显示装置,动态显示总电压、电流、温升的变化,避免电池组过放,使电池组不会受到人为的损坏。2)单节电池管理对电池组中的单节电池的管理,可以及时发现单节电池的电状态,对单节电池动态电压和温度的变化进行实时测量,以便及时发现单节电池存在的问题,并采取有效的防范措施。3)剩余电量的估计和故障诊断电池组监测系统应具有对剩余电量的估计和故障诊断的功能,能够有效地反应和显示剩余电量,可以早期预报动力电池组的故障和隐患。2 设计要求及系统框图2.1 控制要求ups电源是电力、通信、银行等行业的必备电源,要求其稳定可靠。蓄电池是ups系统的重要组成部分,它的优劣直接关系到整个ups系统的可靠性。精确预测蓄电池的临界失效期,对提高ups系统的可靠性具有重要意义。本设计是基于单片机的蓄电池在线监测电路系统的设计。其主要任务是完成蓄电池各个参数(电压、电流、温度、剩余电量)的采集,并且可以显示输出,当各参数超限时,产生声光报警。设计过程中要有理论的分析,选择合适的器件;运用protel绘制电路;编辑相应的程序;通过仿真器来测试系统的可行性;按照学校有关文件的要求完成毕业设计前期材料。2.2 系统框图 蓄电池监测系统最基本的作用是监测电池的工作状态:电池的电压、电流和温度,预测蓄电池soc,管理电池的工作情况,避免出现过放电、过热,对出现的故障应能及时报警,以便最大限度地利用电池的存储能力和循环寿命。根据系统的需求分析,设计主要分为两部分:数据采集和数据处理,这两部分都需要硬件和软件的相互配合才能完成。蓄电池的电压、电流及温度等数据参数经采样电路得到后送单片机,经单片机运算处理,进行lcd显示、与上位机通讯等操作。信号采样电路选用ds2438蓄电池监测专用芯片,对单体电池电压、电流、温度等信号参数进行测量;单片机通过连接的键盘,可以设置产生报警的限值,同时能够实现显示数据的切换;当参数值超限时,自动进行声光报警。设计中加入硬件看门狗电路,进行保护。结构框图如图2.1所示。电池电压、电流、温度等信号采集电路89c51 单 片 机键盘单元lcd显示电路声光报警输出单元串行通讯接口看门狗电路图2.1 系统框图本设计中模块单元的功能如下:1)单体电池电压、电流、温度等信号采集电路:将被监测的蓄电池单体电池的电压、温度等信号进行采集,并且送到单片机内;2)键盘单元:设定报警上下限值,并对显示内容进行切换;3)89c51单片机:对接收到的二进制信号进行相应的处理,并产生相应的控制信号;4)lcd显示电路:显示电压、电流、温度等参数值;5)报警输出单元:当所测数据超过上限值或低于下限值时,产生声光报警;6)串行通讯接口:实现与上位机的通信连接; 7)看门狗电路:对单片机系统进行保护。 3 系统硬件设计针对12v蓄电池系统进行设计,考虑到应尽量降低成本和避免复杂的硬件电路,主控器采用低功耗、高性能cmos8位单片机at89c51;信号采集单元采用专用的蓄电池监测芯片ds2438,芯片为单总线结构,大大简化了采样电路;工作所需要的+5v电源是通过蓄电池单体电压通过三端稳压器lm7805得到;显示器选用1602字符型液晶显示器;选用发光二极管和蜂鸣器实现报警输出,操作人员可以通过系统中的键盘来设定报警限值,以及显示数据的切换;看门狗电路选用x25045芯片;单片机可以将采集到的数据通过串行接口电路送到pc机进行数据显示。所以本设计硬件系统分为5个模块:单片机最小系统、信号采集电路、显示电路、声光报警与键盘电路、看门狗保护电路。下面对硬件电路作具体的设计。3.1 单片机最小系统at89c51单片机芯片内集成了计算机的基本功能部件,已具备了很强的功能。一块芯片就是外加振荡电路和复位电路就是一个完整的最小微机系统,连线图如图3.1所示。图3.1 最小系统接线图3.1.1 微处理器介绍本系统中的微控制器采用了at89c51,at89c51是美国atmel公司生产的,其内部包括一个8位的80c51微处理器(cpu)、256字节的数据存储器ram/sfr、4k程序存储器flash rom、4个8位并行i/o端口p0-p3、1个全双工uart的串行i/o口、两个16位的定时器/计数器、具有5个中断源两个中断优先级的中断控制系统、片内振荡器和时钟产生电路(石英晶体和微调电容需外接,最高允许振荡频率为24mhz),与8051相比,具有节电工作方式,其封装引脚图如图3.2所示,下面分类介绍其引脚。 图3.2 at89c51封装图1)电源引脚vcc和vssvcc(40脚):电源端,为5v。vss(20脚):接地端。2)时钟引脚xtal1、xtal2时钟引脚外接晶体与片内的反相放大器构成一个振荡器,它提供单片机的时钟控制信号。时钟引脚也可以外接晶体振荡器。xtal2(18脚):接外部晶体和微调电容的一端。在89c51片内它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体的固有频率。若须采用外部时钟电路,则该引脚悬空。xtal1(19脚):接外部晶体和微调电容的另一端。在片内,它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚输入外部时钟脉冲。3)控制引脚此类引脚提供控制信号,有的还具有复用功能。reset(9脚):当振荡器运行时,在此引脚外加上两个机器周期的高电平将使单片机复位。此引脚与vss引脚之间连接一个约10k的下拉电阻,与引脚之间连接一个约10f的电容,以保证可靠的复位。在单片机正常工作时,此引脚为0.5v的低电平。ale/prog(30脚):当访问单片机外部存储器时,ale(地址锁存器)输出脉冲的负跳沿用于16位地址的低8位的锁存信号。即使不访问外部存储器,ale端仍有正脉冲信号输出,此频率为时钟振荡频率的1/6。但是,每当访问外部数据存储器时(即从程序存储器取来movx类指令),在两个机器周期中ale只出现一次,即丢失一个ale脉冲。因此,严格来说,用户不能用ale做时钟源或定时。ale端可以驱动(吸收或输出电流)8个ttl负载。psen(29脚):此脚的输出是单片机访问外部存储器的读选通信号。在由外部存储器取指令(或常数)期间,每个机器周期psen两次有效。但在此期间,每当访问外部数据存储器时(即从程序存储器取来的指令是movx类指令),这两次有效的psen信号将不出现。psen可以驱动(吸收或输出电流)8个lsttl负载。ea/prog(31脚):当ea端保持高电平时,单片机访问内部flash rom程序存储器,当pc(程序计数器)值超过0fffh时,单片机将自动转向执行外部程序存储器内的程序。当ea接低电平时,则只访问外部程序存储器,而不管是否有内部程序存储器。4)i/o口引脚p0口:双向8位三态i/o口,此口为地址总线(低8位)及数据总线分时复用口,可带8个lsttl负载。p1口:8位准双向i/o口,可带4个lsttl负载。p2口:8位准双向i/o口,与地址总线(高8位)复用,可带4个lsttl负载。p3口:8位准双向i/o口,双工能复用口。p1口、p2口、p3口各i/o口线片内均有固定的上拉电阻,故称为准双向i/o口。p0口线内无固定上拉电阻,由两个mos管串接,即可开漏输出,又可处于高阻的“浮空”状态,故称为双向三态i/o口。3.1.2 复位电路复位电路采用了上电复位和手动复位相结合的方式。在通电瞬间,电容c通过电阻r2充电,rst端出现正脉冲,用以复位。只要电源的上升时间不超过1ms,就可以实现自动上电复位。手动复位就是通过按下按钮开关s,使单片机进入复位状态。3.1.3 振荡电路为满足需要,本振荡电路采用12mhz的晶体,与微调电容配合,外接于引脚xtal1和xtal2之间。3.2 信号采集单元本单元采用ds2438单总线智能电池监测芯片完成对电池当前各种信号状态的监测,包括当前电池的电压、电流、温度、剩余电量等参数。ds2438芯片能够自动采集这些信号参数,并将其放在srameeprom中, 51单片机根据需要发出命令读取这些参数,然后处理这些参数,软件编程比较困难,硬件电路的简单是以复杂的软件编程为代价的。3.2.1 ds2438芯片介绍ds2438是dallas公司推出的智能电池监视器芯片。该器件是为了解决便携式电子产品电池工作状志的实时监测而推出的,具有功能强大、体积小、硬件接线简单等优点。1) ds2438的管脚图及功能ds2438采用soic表面贴装封装形式,其外形及引脚排列如图3.3所示,表3.1说明了ds2438各引脚的功能。 图3.3 ds2438封装表3.1 ds2438引脚功能引脚号引脚名称功能描述1gnd接地2vsens+电池测量电流输入(+)3vsens-电池测量电流输出(-)4vad通用电压a/d输入端5vdd供电电压(2.410v)6,7nc悬空不接8dq数据输入输出、单总线、开漏2)ds2438的性能特点:a) 是单总线器件,仅用一根传输线便能实现电源与数据的双向传输;b) 芯片内部集成一13位的温度传感器,其分辨率可以达到o.03125;c) 具有10位的电流a/d转换器,可以实现对电池充放电电流的测量;d) 具有10位二通道的电压a/d转换器,可以实现对电池电压的测量;e) 芯片内部有40字节的用户存储器,方便用户存储信息;f) 芯片内部有逝去时间计时器,可以对电池充放电时间进行统计;g) 芯片内部具有充放电电流累加器,当芯片每27.46ms采样一次电池电流时,根据该值的正负加减入电流累加器寄存器中,并且还设置两个累加器分别就充电电流与放电电流进行累加;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页包括非易失性时间和充电时间标记;第37页是40字节的提供给用户使用的eeprom,可用于保存用户数据。2)ds2438寄存器ds2438芯片的所有寄存器都映射到上述的存储器中,同时对ds2438的操作都是通过寄存器进行的。下面对存储器空间第0页中的特殊功能寄存器进行详细阐述。ds2438存储器第0页结构如表3.2所示。 表3.2 ds2438存储器第0页结构字节序号寄存器 名称内容读写特性易失 特性db7db6db5db4db3db2db1db00状态配置xadbnvbtbadeecaiad读非易失1温度低位000读非易失2温度高位s读非易失3电压低位读非易失4电压高位000000读非易失5电流低位读非易失6电流高位sssssss读非易失7阈值th2th1000000读/写易失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存储占用210ms;)为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) 电压寄存器存放采集的电压值。它的电压输入范围是010v,且电压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芯片的电压测量范围为010v,因而需经精密电阻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.1f。由于vsens+和vsens-两管脚允许的输入电压范围为-122 mv+122 mv , 因此ds2438能测量的电流很小(毫安级) ,而电池组中的电流一般为十几个安培至几十个安培,需要电流传感器进行转换。系统采用了由lam公司生产的多量程电流传感器la-28np,原边电流提供了5a25a间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液晶显示器的引脚功能引脚号符号状态功能1vss电源地2vdd+5v逻辑电源3v0对比度控制,通过1k电阻接地4rs输入寄存器选择,1:数据;0:指令5r/w输入读写操作选择,1:读;0:写6e输入使能信号,高电平或是下降沿有效7d0三态数据总线(lsb)8d1三态数据总线9d2三态数据总线10d3三态数据总线11d4三态数据总线12d5三态数据总线13d6三态数据总线14d7三态数据总线(msb)15leda输入背光+5v有些液晶没有背光,有些引脚与此不同16ledk输入背光地线3)1602与单片机的接线1602液晶显示器与单片机的接线图如图3.6所示。 1602与单片机接线图3.3.2 上位机显示本系统测量数据可通过串口线将数据送到上位机进行显示,所以需要接口让单片机和上位机进行通信。目前,通信方式主要分为两种:串行通信(rs-232c、rs-422a、rs-485、usb)和并行通信。rs-232c标准定义了25根引线,对于一般的双向通信,只需使用串行输入rxd、串行输出txd和地线gnd。rs-232c标准的电平采用负逻辑,规定+3+15v之间的任意电平为逻辑“0”电平,-3-15v之间的任意电平为逻辑“1”电平,与ttl和cmos电平是不同的。在接口电路和计算机接口芯片中大都为ttl或cmos电平,所以在通信时,必须进行电平转换,以便与rs-232c标准的电平匹配,max232芯片可以完成电平转换这一工作。因为max232具有驱动能力,所以不需要外加驱动电路。采用max232接口的硬件接口电路如图3.7所示。 图3.7 串行通讯接口电路3.4 键盘与声光报警电路3.4.1 键盘电路设计键盘是单片机系统中的一个很关键的部分,它能实现向计算机输入数据、传送命令等功能,是人工干预计算机的主要手段。一般情况下,键盘是由一组规则排列的按键组成,一个按键实际上是一个开关元件。其主要功能是把机械上的通断转换为电气上的逻辑关系(0和1)。常见的种类有:独立式键盘和矩阵式键盘。独立式键盘的特点是每个按键单独占用一根i/o口线,每个按键工作不会影响其他i/o口线的状态,多用于所需按键不多的场合。在本系统中,设计需要用到09十个数字键,应采用矩阵式键盘。43键盘结构如下图3.8所示。 图3.8 键盘电路图中所示的列线通过电阻接+5v,当键盘上没有键闭合时,所有的行和列线断开,列线呈高电平。当键盘上某个键闭合,该键所对应的行线和列线短路。如果把列线接到微机的输入口,行线接到微机的输出口,那么在微机的控制下,使行线p2.3的输出为低电平,其余三根行线p2.4、p2.5、p2.6都为高电平,然后微机通过输入口读列线的状态,如果p2.0、p2.1、p2.2都为高电平,则p2.3这一行上没有闭合键,如果读出的行线状态不全为高电平,则为低电平的列线和行线p2.3的相交的键处于闭合状态;图9 44矩阵键盘结构如果p2.3的这一行上没有键闭合,接着使行线p2.4为低电平,其余行线为高电平。用同样的方法检查p2.4这一行上有没有闭合键,以此类推,最后使p2.6为低电平,其余行线为高电平,检查p2.6这一行上有无键闭合。这种逐行逐列地检查键盘状态的的过程称为对键盘的一次扫描。这是识别键盘最常用的方法,其控制方法即:先判断是否有键按下;如有,再判断哪一个键按下,并得到键码值,然后根据键码值转向不同的功能程序。3.4.2 声光报警电路作为可以进行蓄电池各个数据参数检测的设备,声光报警电路部分不可缺少,当检测到电池状态不在正常范围就应该通过声光方式发出警报,防止过放电引起的电池损害和发生的意外事故。其电路如图3.9所示。 图3.9 声光报警电路本设计中的声光报警部分包括蜂鸣器以及红、绿、黄、蓝四个led报警指示灯。单片机本身i/o的驱动能力不是很高,所以对蜂鸣器的驱动需要加入一个pnp三极管,这样能够使蜂鸣器的声音更加响亮,起到更好的报警作用。三极管基极的电路保证了只有在单片机输出低电平时,蜂鸣器才会发声,避免了误报警的发生。由于动态显示比静态显示更能吸引人的视线,所以本设计发光二极管采用动态闪烁方式,红色二极管闪烁代表电压检测超限,绿色二极管闪烁表示电流检测超限,黄色二极管闪烁表示温度检测超限,蓝色二极管闪烁表示剩余容量超限。无论哪种数据参数超限,蜂鸣器都产生声音报警。3.5 硬件看门狗电路微处理器在运行中会受到各种各样的干扰,如电源及空间电磁干扰,当其超过抗干扰极限时,就有可能引起微处理器死机或程序跑飞。尤其在实际应用环境中,更容易受到复杂干扰源的干扰影响。在系统中加入看门狗电路就可以很好的防止这类情况的发生。该系统中使用的是xicor公司生产的可编程看门狗定时器x25045。它集合了看门狗定时器、电源监测电路和512*8的串行eeprom。因而x25045具有以下功能:1)看门狗定时器:看门狗定时器对微控制器提供了独立的保护系统。当系统故障时,在可选的超时周期之后,x25045看门狗将从reset信号做出响应。用户可以从三个预置的值选择此周期。一旦选定,即使在电源周期变化之后,此周期也不变化。2)电源监测:利用x25045低vcc检测电路,可以保护系统,使之免受低电压状况的影响。当vcc降到最小vcc转换点时,系统复位。复位一直确保到vcc返回且稳定时为止。3)串行存储:x25045的存储器部分是coms的4096位串行eeprom,它内部按512*8来组织。x25045的特点是具有简单的三总线工作的串行外接口(spi)和软件协议。图3.10为芯片引脚图。 图3.10 x25045芯片引脚图各引脚含义如下:cs:片选输入 s0:串行输出sck:串行时钟输入 si:串行输入wp:写保护输入 reset:复位输出vcc:电源 vss:地因单片机没有spi接口,则必须通过移位方式实现单片机与x25043的通讯。图3.11为单片机与x25045的接口电路。 图3.11 硬件看门狗电路单片机的p3.4引脚与片选相连,它控制x25045的选通;p3.5引脚和x25045的串行输出相连,p3.3引脚与x25045的串行输入相连,这两个端口实现单片机与x25045的数据通讯。p3.2引脚与x25045的时钟输入相连,控制串行输入输出的时序。单片机的rst引脚与x25045的reset引脚相连,reset的复位信号可使单片机复位。硬件总原理图见篇末附图。4 系统软件设计系统硬件电路设计完成之后,就要进行软件的设计和调试。如果没有软件来控制硬件电路和外围设备,系统仍然是不完善的。在监控系统中,软件的编制需要符合以下基本要求:1) 易理解、易维护。通常是指软件系统容易阅读和理解,容易发现和纠正错误,容易修改和补充。由于检测控制系统的复杂性,设计人员很难在短时间内就对整个系统理解无误,应用软件的设计和调试不可能一次就完成,有些问题是在运行中逐步暴露出来的,这就要求编制的软件容易理解和完善。2) 实时性。实时性是监测控制系统的普遍要求,既要求系统及时相应外部事件的发生,并及时给出处理结果。3) 可测试性。检测控制系统软件的可测试性具有两方面的含义:其一是指比较容易地制定出测试准则,并根据这些准则对软件进行测定;其二是指软件设计完成后,首先在模拟环境下运行,经过静态分析和动态仿真运行,证明准确无误后才可以投入实际运行。4) 准确性。准确性对检测控制系统具有重要意义。系统中要进行大量运算,算法的正确性和准确性对控制结果有直接影响,因此在算法的选择、位数选择方面要适合要求。5) 可靠性。可靠性是检测控制软件最重要的指标之一,它要求两方面的意义:一试运行参数环境变化时,软件都能可靠运行并给出正确结果,也就是要求软件具有自适应性;二是工业环境极其恶劣,干扰严重,软件必须保证在严重干扰条件下也能可靠运行,这对检测控制系统尤为重要。4.1 开发语言和开发环境51单片机的编程语言常用的有两种,一种是汇编语言,一种是c语言。本设计中采用汇编语言编程,下面了解其基本概念和主要优点。汇编语言是单片机设计的基础语言。它的特点是使开发人员能够充分的对单片机硬件资源进行管理和操作。所谓汇编语言就是用助记符、符号和数字等来表示指令的程序语言,容易理解和记忆,与机器语言是一一对应的。它是为了弥补机器语言不易记忆,不易查错和不易修改而产生的一种低级语言。所谓程序设计就是用计算机能够识别的语言,把需要解决的问题的步骤描述出来单片机不像其他微型计算机有自己的系统软件,所有的单片机程序均需要用户自己设定程序。到目前为止,虽然已经有绝大部分的单片机都能够在一些高级语言环境下编程,但汇编语言也有许多优点是其他高级语言所不具有的。如:程序结构紧凑、占用的内存和cpu资源少;程序简短、执行速度快;与计算机内部硬件结构紧密、能充分发挥硬件的作用;实时性强、适用于实时检测控制系统9。汇编语言的程序设计步骤主要包括:分析问题、确定思路、画流程图、编写程序、程序调试。这些步骤在软件设计中将一一体现。本设计中的软件采用wave公司开发的编译系统进行编写,采用各个子模块组成整个程序。软件主要功能包括:设置系统初始状态、电池电压、电流、剩余电量的在线测量,温度的测量、报警的设定和串行通讯、键盘的扫描、电池状态显示、声光报警等。上述功能主要由:主程序模块、测量模块、键盘扫描模块、lcd显示模块、串口通信模块等来实现。4.2 主程序模块系统上电之后要对系统进行初始化设置,在初始化设置时主要对系统中用到的一些标志位和定时器进行设定,如果检查到报警值没有进行设置则设置报警值,对串口进行初始化等工作。在系统初始化之后要开启中断,开始扫描键盘,等待定时器的中断。具体框图如图4.1所示:开始调键盘输入子程序调显示子程序程序初始化调测量子程序调通讯子程序图4.1 主程序流程框图4.3 数据测量程序模块为了满足监测的实时性,本系统单片机采用定时中断的方式访问ds2438,进行电池参数采集。首先设置单片机的计数器为定时方式,开启计数器,定时长短可随需要灵活设定。然后单片机运行其它程序,等待定时中断的到来。定时中断发生之后进入中断服务程序,调用ds2438的控制操作程序,进行数据采集,并将采集来的数据进行处理和显示,最后重新初始化定时中断,返回。如图42所示:数据采集数据修正处理单总线读写ds2438开始程序初始化单总线器件初始化y报警输出超限否定时中断ynn数据显示定时器复位与上位机通讯结束图4.2 测量程序总流程图 4.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过程。如果该命令用于多节点系统,则必然发生数据冲突,因为每个从机设备都会响应该命令,从而无法识别正确的代码。)匹配rom55h:匹配rom命令后跟随64位rom代码,从而允许主机访问多节点系统中某个指定的从机设备,仅当从机完全匹配64位rom代码时才会响应主机,随后发出功能命令。其它设备将处于等待复位脉冲状态。)搜索romf0h:当系统初始上电时,主机必须找出总线上所有从机设备的rom代码,这样主机就能够判断出从机的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论