【基于单片机蓄电池容量测试系统设计11000字(论文)】_第1页
【基于单片机蓄电池容量测试系统设计11000字(论文)】_第2页
【基于单片机蓄电池容量测试系统设计11000字(论文)】_第3页
【基于单片机蓄电池容量测试系统设计11000字(论文)】_第4页
【基于单片机蓄电池容量测试系统设计11000字(论文)】_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机蓄电池容量测试系统设计摘要目前在对于单片机的应用较多,技术也较为成熟,所以更容易实现对电力的保护,也能够提前进行预防,对外界的物质干扰也会较大的提升。不仅在能够对接多种不同设备,也能够在不同大企业中能够应用,其中的变化也只是在合适度上进行选择。蓄电池在日常生活中随处可见的,但是电池的电量多少一直无人可知,利用单片机对蓄电池容量进行检查,能够会更好的获取蓄电池的电量情况,对于使用者也来说非常方便。本次主要研究在采用单片机的情况下检测蓄电池容量的管理系统,主要的研究内容在于:首先通过列举出检测蓄电池的方式,然后在检测方法适当的情况下选择系统所需要的功能。通过使用安时积分法完成对电量大小的判断,在根据放电状态下的电路和STC89C52RC单片机的控制使系统能够正常运行,然后在加入OLED12864显示电量和LTC2944检测电量的功能,该系统能够实时对线路中的电压、电流和电量进行检测,通过实验表明,本次的实验具有一定的研究意义和使用价值。关键字:蓄电池;单片机;容量监测;LTC2944目录TOC\o"1-3"\h\u2124摘要 I30811Abstract II23838第1章绪论 137631.1课题背景 277471.1.1背景 2304231.1.2国内外发展及方向 2150441.2国内外常用的SOC估算方法 47088第2章系统整体设计方案 7291252.1蓄电池容量测试系统的需求分析和选型 7184802.2系统整体设计架构 812637第3章硬件设计 1033853.1蓄电池充放电及保护模块的设计 10239203.2主控模块的设计 129233.3检测模块的设计 15179473.4显示模块的设计 19131273.5通信模块的设计 204780第4章软件设计 21289114.1IIC总线控制模块 21197804.2OLED液晶显示模块 22198664.3LTC2944监测模块 23236944.4RS485通信模块 2520479第5章总结与展望 27256535.1总结 27116885.2展望 272556参考文献 2810790致谢 29第1章绪论1.1课题背景1.1.1背景蓄电池作为一种供电方便、安全稳定的直流电源,在我们的日常生活和工业生产中应用广泛,因此对蓄电池的研究也是一直以来的热点,在工业生产中,得益于单片机在智能控制方面的应用,人们对基于单片机的蓄电池自动化测试系统也一直进行研究,其应用领域广阔,适用于现代工业文明阶段的使用,具有很强的实际应用价值和经济效益。研究表明影响蓄电池使用寿命的因素有很多,主要因素可归纳为其自身的设计结构特性、使用环境、具体的充放电放式、管理方法等。这些因素中影响蓄电池使用寿命的关键因素是充放电方式,其中充电方式对蓄电池的影响要大于放电方式,易导致蓄电池被错误的充电方式所损坏。这主要是由于蓄电池串联充电时,蓄电池组中每个电芯都不是完全相同的,这将导致容量较小的电池总是先充满而处于过充状态,过充电则会减少蓄电池的容量和寿命;同理放电时容量较小的电池总是先达到放电截止条件而处于过放状态,同样导致对蓄电池的损害,因此电池组经过多次充放电后,单体电芯间的差距会拉大,形成恶性循环,进而影响电池组的性能和寿命,威胁供电系统的安全性。正因为多种因素影响着蓄电池的寿命,所以国内外对于蓄电池剩余电量(SOC)监测的研究不仅仅表现在对SOC的监测,而集中表现在蓄电池管理系统(BMS)的研究中。而SOC作为充放电的重要判断参数,对BMS起到调节作用。在充电阶段,如果蓄电池容量过低,充电效率将会降低,变成限流充电,直至达到正常范围后才能快速充电。放电阶段,当电量较低时,即使在截止电量以上,甚至在20%SOC时,都可能限制功率输出,防止大电流造成系统触及停止电压,降低了供电系统的稳定性和可靠性。1.1.2国内外发展及方向(1)国外研究现状国际上的发达国家对于蓄电池管理系统BMS的研究起步较早,由美国最早提出BMS的概念,此后以美日德为代表的发达国家在此方面研究力度强,资金投入大,他们通过对蓄电池各种条件下,进行反复充放电测试,采集了大量有关蓄电池充放电的数据,并在此基础上对蓄电池进行建模,开发出针对不同种类蓄电池的管理系统,并通过优化已研发出多种商用管理系统。目前美国是BMS的领先者,以美国的特斯拉公司为例:在Tesla

Roadster电动汽车上使用了6831节单体电芯,如下图1-1所示,一个电池包由11个Module串联构成,1个Module由每9个电池砖串联构成,一个电池砖由每69节18650并联形成,而且它的BMS是分级管理,在每个电池砖上都设有电池监控板,当某节电芯出现问题时,可以更换模组,而监管如此庞大数量的电芯就需要功能强大的电气监控系统,这是目前大多数国家还无法达到的水平,并且特斯拉的BMS还配备了热管理系统、SOC检测系统等,用来保证蓄电池组充放电的安全与稳定。图1-1Tesla

Roadster电动汽车电池包结构图总结:在BMS的研究上,国际上以美国为首的发达国家研究起步早,BMS研究更趋成熟,得益于他们强大的科技基础,能使用较先进的技术管理蓄电池系统。(2)国内研究现状与发达国家相比,虽然我国的蓄电池管理系统起步晚,起点低,在精度、均衡控制、热管理等方面存在不足,但发展迅速。国内很早就开始重视蓄电池管理系统的研发,北京交通大学自1999年起就开始了蓄电池管理系统的研究,并设计出适应铅酸蓄电池、镍氢电池、锂电池等不同种类电池的蓄电池管理系统。并将蓄电池管理系统列入国家重点培养的七大战略性的新兴产业之一。得益于国家“十一五”和“863”计划的支持,我国在蓄电池管理方面已经取得了较大的进步,尤其在汽车电池管理系统方面,目前已接近国际领先水平。以电动汽车的BMS为例,仅是我国知名的BMS专业厂家就有深圳比亚迪、均胜电子、华霆动力、哈尔滨冠拓、亿能电子、深圳国新动力、河南环宇等等,其相关企业更是不胜枚举,可以说电动汽车的蓄电池管理系统在我国发展动力十足,近七年中国新能源汽车动力锂电池BMS市场规模如下图1-2所示图1-2近七年中国新能源汽车动力锂电池BMS市场规模数据来源:2020年GGII《2020年中国动力锂电池BMS行业分析报告》以国内新能源汽车引领者-比亚迪为例,它为油电混合汽车设计了分布式的BMS,其能够实现对动力电池组的电压、电流、温度等数据的采集,根据采集到的数据对电池组的剩余电量进行估算,并完成热管理、安全管理等。其它BMS厂家的系统也大致相同,均是通过对蓄电池组的数据采集,数据处理后进行控制和管理,甚至借助物联网进行远程控制,营造安全可靠的蓄电池工作环境。总结:对于BMS,国内外都在积极研究和优化该系统,目前发达国家尤其是美国,处于该领域领导者,我国虽起步晚,但得益于国家的扶持和推广以及巨大的需求市场,所以发展速度快,目前我国的电动汽车的BMS已达到国际前沿水平。1.2国内外常用的SOC估算方法SOC作为蓄电池容量管理系统中一项重要工作参数,其测量方法在国内外通用。目前常用的SOC检测方法有:开路电压法、放电法、电导(内阻)测量法、密度法、安时积分法、卡尔曼滤波算法、基于H无穷观测器估计法、库仑计法、j.神经网络算法等,具体如下:a.开路电压法由于蓄电池长期静置时,蓄电池的端电压与SOC有明确的对应关系,根据这一特性可以估算蓄电池的电量,这种方法在电池开路电压波动大的充放电初期有较好效果,但由于电池的电量和电压的关系不是线性的,蓄电池也存在浮压特性,需要等蓄电池停止工作一段时间稳定,所以这种测试方法既不精确,也不适合实时估算SOC,但简单方便,适合配合其它的测量方法使用。b完全放电和不完全放电测试法完全放电即百分之百的深度放电,将满电量的蓄电池接负载经过长时间放电至终止电压,具有容量测试准确可靠的优点,也是目前检测电池性能的较可靠方法之一。不过它的缺点也很突出,主要表现为:传统的完全放电普遍采用电阻丝进行放电,放电时间过长,需要进行人工操作,因此,程序繁琐,测量效率低,甚至完全放电的时间可以达到20h以上。与之相对应的是不完全放电,即对蓄电池进行百分之一到百分之五的浅度放电。该方法优点是测量时间比完全放电短,但缺点也很明显,测试精度低,无法准确测量蓄电池当前电量,仅能作为定性参考。c.电导(内阻)测量法该测量法是通过在蓄电池电极之间加上交流电计算出电池的电导,再通过测得的蓄电池电导值间接估算SOC,由于内阻与电量是非线性关系[6],在高于一半电量时,蓄电池内阻基本不变,在低电量情况下内阻变化明显,所以这种方法在高电量时无法估算SOC,在低电量时估算也不精确,只适合在低电量时做定性判断,无法做定量估算SOC。d.密度法密度法的原理是蓄电池的电解液浓度和其SOC有对应的关系[7],通过检查电解液的浓度就可估算出SOC。这种方法原理简单,但需要知道电解液浓度才能估算SOC,实际使用难度相对较大,不适用于非密封的蓄电池,因此实用性不强。而且测量准确度相对较低,不适合实时测量SOC。e.安时积分(库仑计数)法安时积分法是目前广泛使用的一种SOC估算方法,从字义上就能理解是时间与电流的积分,因此又称库仑计数法。f.卡尔曼滤波及其拓展算法卡尔曼滤波法,通过引入时域的概念,将动态过程用状态方程描述,将观测信息用测量方程描述,用前一时刻的估计值和当前时刻的观测值相互迭代,不断对状态变量的估算进行更新。在卡尔曼滤波算法的基础上延伸出来的各种算法,例如自适应扩展卡尔曼算法(AEKF)、基于H无穷观测器估计法等,在多个计算领域得到应用,也已成为动力电池剩余电量估计的新方法中最为主流的一种。g.神经网络算法在人工智能不停发展的背景下,估算SOC也应用了神经网络计算,理论上这种方法是估算SOC非常理想的方法。通过对样本数据的学习,神经网络可以避开现有基于电池内部物理化学反应所建立的不精准的数学模型,改进神经网络建立电池SOC预测模型,目前神经网络估算电池SOC有BP神经网络、Elman神经网络、RBF神经网络等。综上所述,对于蓄电池容量估算的方法,也在随着时代的进步,不断的提高精确度,也结合了现在的新技术如神经网络算法等,其中在工业应用中:开路电压法因简单方便而在对BMS要求不高的产品中广泛应用;安时积分法因有一定的精确度和装置的较易实现性,而在对SOC测量有一定精度要求的装置中广泛应用;卡尔曼滤波及其拓展算法则是在现代工业中能实现的精度最高的一种方法,在高科技产品中有广泛应用。而随着计算能力的不断提高,相信神经网络算法也将在未来的工业生产中大放异彩,得以广泛应用,相信SOC的估算值将越来越准确。第2章系统整体设计方案2.1蓄电池容量测试系统的需求分析和选型本次系统研发过程中主要分为三个模块:蓄电池类型模块、蓄电池管理模块、计算方式选择模块,选择方式如下:一:蓄电池类型模块:根据电解液的不同,蓄电池有很多分类,其中包含:锂离子电池、铅酸蓄电池、镍氢蓄电池、镍镉电池、镍锌蓄电池等等型号,其中部分蓄电池使用过程中放电量如下图2-1所展示,根据图形可得知,本次实验需要选择放电量高、使用寿命长、成本较小的、充电快的蓄电池较为合适。图2-1不同电池化学组成的典型放电曲线二:蓄电池管理模块:在选择管理系统前需要了解锂离子电池的一些特性:锂离子电池具有独特的物理和电化学性能,其中本身也属于高电压、高能量的充电电池。在人们的日常生活中应用较为广泛,同时锂离子电池的使用寿命较长,使用过程中不会造成环境污染。蓄电池一般在使用过程中都无法耐高温使用,因此蓄电池管理系统还需要温度检测模块。因此为了满足需求,蓄电池管理系统可选择为移动电源。三:蓄电池容量计算方式选择模块:通过采用开路电压发、放电法等多方式对蓄电池电量进行计算,在能力允许范围内可使用库仑计量的方式计算蓄电池容量较为符合。小结:根据以上分析,蓄电池类型选择锂电池,计算方式选择库仑计量方式,在系统中还需要加入电压检测模块和温度检测模块功能,可以实时对蓄电池的工作状态进行监控。系统再对电压、温度等模块检测中可以对数据进行存储,以方便后期分析电量和温度之间的关系,从而可以采用仿真软件建立模型。2.2系统整体设计架构系统主要采用单片机作为控制中心,其中单片机的型号可选择STC89C52RC,通过PC端对接USB端口能够直接实现程序编写、IIC总线和LTC2944库仑计量连接,此时系统工作状态下的电动为3.3V,可采用PCA9306转换器对电压进行调整,IIC总线与OLED12864显示屏进行连接能够实时显示出需要传输的数据;PC端除了能够编写程序,还行能够保护电路中的电压,当电路中电压为5V时,经过单片机后会使电压变为4.2V,蓄电池在工作状态下电压为3.7V,在放电过程中会将电压提升至5V,从而使接入的设备电压也为5V;整体系统结构图如下2-2所展示。图2-2整体系统架构

第3章硬件设计3.1蓄电池充放电及保护模块的设计一般情况下锂电池工作状态下电压为3.7V,日常生活中常见的USB接口充电器工作状态下电压为5V,因此在该状态下单片机能正常运行,采用USB接口完成放电,其放电原理和安装方式可参考移动电源的设计。本次实验中需要在通电情况下实现采用系统管理,主要使用MicroUSB接口P2做为充电口对电路中的电压进行调整,通过USB接口对5V电压进行调整至4.2进行充电。蓄电池的管理芯片可采用SS4056型号的U10,U10的作用主要是对电路中的电路进行调整。芯片内部可对大电流进行检查,防止电流过大造成线路短路。使用U10时的电压为4.2V,也可采用添加电阻的方式进行调整。当电路中的电压只有1/10时,U10会自动断开充电,当电压等于0时,U10的功率达到最低状态,同时U10还能对电路中的温度进行检查。其中SS4056的电路图图下图3-1所展示。图3-1SS4056应用电路原理图USB端口大部分都只适用于小型设备进行使用。电压输出过程中电路采用DC/DC升压电路的方式,升压的过程中可采用CE8310CM系列的U11转换芯片,其中U11的主要作用是对蓄电池的电压进行升压,蓄电池传出时的电压为3.7V,经过U11后的电压为5V,同时还可以使用3脚对电压进行调整,满足系统的需求,U11的4脚会检测当前是否属于高电平状态,电路中的电压是否为5V,其中CE8310CM的电路图如下3-2所展示。图3-2CE8310CM应用电路原理图锂电池工作状态下,对电路起到保护作用的主要是DW01的U12和FS8205,DW01能对电路中的大电流进行预警,当发现电流超出设定值时,会减少蓄电池的使用寿命,其中U12能够实时对电路中的电流进行检测,判断当前状态下的锂电池是否正常工作。U12检测到锂电池的状态欠佳时,通过FS8205实现对电路进行开关。FS8205的实际使用数量可根据需求选择。其中锂电池电路如下图3-3所展示。图3-3锂电池保护电路当使用库伦计电量监测方式完成对数据的确认后,还需要检测此方式的数据是否正确,可通过电量、SOIC16-L(U6)、S8050(U5)和二极管的状态进行判断。当SW1处于开启状态时,U6的8脚和12脚会发出数据,然后通过U10进行判断,从而保护电路。此过程中U6的8脚也会将数据传输至U11的4脚,从而判断电压的使用状态。U6除了能够传输数据,还支持对电路中的电压进行检测,通过查看二极管的状态判断出电池的电量强弱。其中U6的电路如下图3-4所展示,蓄电池放电状态下的电路如图3-5所展示。图3-4SOIC16-应用电路图3-5蓄电池充放电及保护电路模块小结:蓄电池放电过程中会对自身的电路进行检测早已实现,目前使用效果较为明显,本次实验可采用此方式完成蓄电池的充电和放电操作。3.2主控模块的设计本次实验主要采用STC89C52RC型号的单片机,32个寄存器设置静态工作模式,耐久性较高的内存段。其中STC89C52RC的电路如下3-6所展示。图3-6STC89C52RC外围电路图本次实验中利用单片机进行管控的资源如下:单片机工作状态下VCC电压为5V,对单片机进行版本升级时,可采用VPP的方式接通电源。单片机工作状态下引脚的电压不能超过0.5V的低电平,当单片机进行恢复状态下需要连接按钮进行开关。通过管理工具和通信程序对TXD和RXD引脚进行管理,其中数据转发由TXD进行,RXD的作用是对信号进行传入。在电路中这两个引脚的位置不能发生改变。能够支持54路数字信息的传输,16路信号模拟输入,4路UART端口,16MHz晶体振荡器,USB接口,电源接口,ICSPheader,重启或恢复按键。当RST展现出高电平时,单片机会保持循序过程。每次恢复之后,单片机运行过程都会从第一条开始从新执行。片内模拟比较器-中断和引脚电平变化唤醒;单片机的特殊功能有上电复位和可编程的掉电检测。通过设计适当的rc值组合可以很容易的输出超过两个机器周期的高电平从而达到复位的目的。当运行程序发生异常情况时,系统将会自动上锁,为了解除这种模式,可以采用恢复出厂的方式。外接晶振以及电容和并联完成线路中信号放大的作用。系统数据需要随时进行保存,可使用USB的方式进行存取。其中USB工作状态下的电路如下图3-7所展示。图3-7USB转TTL程序烧录电路在使用管理工具进行烧录时,需要通过USB端口进行接入,然后将工具与设备进行连接,使其处于同网络状态下,然后在选择正在的文件。在使用管理工具时还需要查看PC端是否正常运行,无法运行状态下需要查看是否有驱动,安装驱动后PC端能够查找到USB-SERIALCH340(COM7)端口的名称。如下图3-8所展示。在PC端无法使用端口状态下,无法控制单片机进行烧录。图3-8COM端口驱动本次实验中使用的IIC总线是芯片内部结构连接的线路。目前IIC总线技术大多数出现在外部端口接入或者单片机内部,IIC总线的使用范围非常广泛,一般家用电器和通信设备中都能看到。IIC总线中还需要区别两种线:数据线SDA和时钟线SCL。数据线SDA和时钟线SCL的线路都是双向的,能够更好的适应数据传输。IIC总线中大多数的零件都需要与数据线SDA进行连接。IIC总线中对于输出能力要求非常高,当检测到内部只要存在低电平的情况,整个总线表现出的状态都是低电平。所以线路中必须加入电阻,从而保证数据线SDA和时钟线SCL的正常运转。实验中STC89C52RC单片机时主控制端,STC89C52RC需要完成线路中信号的传输功能或者数据终止功能,STC89C52RC也可之间和OLED12864等设备进行连接,其中不需要安装任何程序就可以直接控制设备的状态,STC89C52RC与IIC总线连接也能够减少线路中的复杂程度,但是一般情况下单片机的端口接入较少,可采用IO口的方式实现多设备接入。IIC总线未工作状态下,数据线SDA和时钟线SCL都属于高电平状态。时钟线SCL在一定时间内会对数据线SDA接入的设备进行时间同步。其中时钟线SCL作为主控制端,能够起到信号的发送和接收。系统内部进行数据转发过程时,一般都是高电平状态能够先收到数据,然后低电平状态的后接收到数据。IIC总线在通信网络中,数据格式和发送模式都需要遵守网络协议的规则。时钟线SCL处于低电平的状态时,数据可以进行改变,时钟线SCL处于高电平状态时,数据必须要保持稳定状态,否则数据的信息传输将会中断。其中单片机中的IIC总线格式如下图3-9所展示。图3-9单片机在IIC总线上的帧格式小结:STC89C52RC型号的单片机功能非常强大,在系统中起作用的是微处理器,能够对系统的数据进行处理和管控,控制单元通过对命令的判断和数据的分析给出所有运算的结果。3.3检测模块的设计本次实验中蓄电池内部结构非常复杂,其中使用蓄电池的过程中还需要关注到老化情况,温度变化,这些数据对于蓄电池的使用寿命有较大的影响,如果单单依靠容量判断电路中的数据和电压情况是非常不准确的,必须依靠相关算法进行计算。本文主要采用内置库仑的方式进行计算,能够更好的提高数据的准确性,同时还有助于减少系统的复杂程度。在使用库仑计量器对电量计算时,主要是计算LTC2944中的容量,通过接入蓄电池的正极和负极能够有效得到电路中的电流和电阻,然后在计算出电量的大小。其中工作原理如下:LTC2944对内部的电阻先做出检测,其中电压的变化范围在±50mV,此时能得到电量存在1%的差距,主要是因为在计算电压的过程中会自动使其变为0进行计算,从而使电压的数据与实际电压低,在使用库仑计量器时,会将数据再次降低,当使用LTC2944后,能够都数据进行检查,较大程度的使数据更加接近标准电量。系统工作状态下积分器会由高基准电平(REFHI)向低基准电平(REFLO)进行转变,开关的状态也会发生变化。通过观察这些变化能够确定极性。然后根据数据变化规律计算,随着积分器的变化,电量寄存器也会出现对应的变化数值。LTC2944内部结构电路如下图3-10所展示:图3-10LTC2944内部积分电路LTC2944的优点如下所展示:a.在电压符合范围内,可使用3.6V和6V的蓄电池,其中能够支持±50mV的变化;b.电量变化情况可使用动态范式,即可计算电池充电次数和电量情况;c.通过ADC能够更好的获取电池电压、电流和温度情况,分别如下图3-11、3-12、3-13所展示;图3-11测量电压时ADC的增益误差图3-12测量电流时ADC的增益误差图3-13温度误差随温度的变化d.电压、电流和充电次数计算误差在1%内;e.IIC结构方式采用/SMBus接口,在此方式下能够支持IIC总线,同时还能支持对电压、电流和温度进行限制;f.可采用化学方式测量蓄电池的电量;g.用户可根据实际情况采用仿真软件进行建模,然后在采用合适的算法得到SOC估算值。所以LTC2944芯片能够满足此次实验的需求,同时还能对接外部端口,方便日后对系统进行更改。LTC2944芯片的电路图如下图3-14所展示。图3-14LTC2944应用电路本次实验中使用的单片机型号为STC89C52RC,额定电压为5V,LTC2944的额定电压为3.3V,可在IIC总线中进行使用,同时还可以支持PCA9306的电压转换。PCA9306工作状态下的电压为1.2V-3.3V,并且符合本次实验的需求。PCA9306的电路图如下图3-14所展示。本次实验中基于LTC2944进行实验,其中还包含IIC总线的使用,IIC总线工作状态如下图3-15所展示。图3-15LTC2944对应IIC总线的应答时序小结:通过采用库仑计量芯片能够得到更加准确的数据信息,同时也符合本次实验中涉及的SOC方法,满足本次实验的需求。3.4显示模块的设计OLED内部设有发光二极管,与传统模式的LCD技术更加方便,并且OLED能够适应较为恶劣的环境使用。一般情况下OLED都会有两种工作模式:自动模式和手动模式,自动模式是指在提前设置好数值后,不会在去人为操作,根据系统判断需要显示的内容是否更新;手动模式是指人为在系统中操作进行更新。系统使用手动模式时,OLED显示通过调节节点的变化实现,不同的是显示内容变化的指令来源于人工,人在控制端发出命令,每一个节点在收到命令后给出回应。在OLED显示接收到指令后,会判断指令属于哪一种模式。其中OLED12864显示如下图3-16所展示,系统端发出命令,每一个节点在收到命令后给出回应。本次在使用OLED时主要选择支持IIC通信的类型,其中部分参数如下:分辨率为128x64,屏幕大小为1.3寸,额定电压为5V,内部使用芯片为SSD1306。其中本次实验OLED实际显示如下图3-17所展示;IIC工作模式对于数据如下图3-18所展示。图3-16OLED12864应用电路图3-17调试中的OLED12864图3-18OLED12864对应IIC总线的应答时序小结:OLED12864目前符合实验的需求,并且价格上较为合适,同时还支持IIC总线和单片机的需求。3.5通信模块的设计通信模块主要采用RS485和单片机之间进行信息传输,同时还可以采用接口或者串口的方式。在网络连通的状态下,在系统中可以使用RS485单元的方式连接网络。根据上位机能够获取到IP的方式和单元接口IP之间进行数据传输,其中RS485传输过程中抗干扰能力较强,信号接收能力也非常的好。然后采用单片机下发指令完成通信。指令主要的作用是在网络分配IP的情况下完成端口数据的交换,也可适用与系统操作。RS485中还包含有转换功能,其中转换器型号为MAX485,本次设计中1脚的位置为单片机RXD,4脚的位置为单片机TXD,两者之间可采用单片机完成通信;2脚和3脚都是作用于方向,但是两者还是有一些区别,例如2脚主要接收低电平信息,3脚主要接收高电平信息,当2脚和3脚进行连接时,不在对数据进行转发,此次两者都为低电平模式,同时也是MAX485

当前状态,如果需要实现对数据进行转发,可以将低电平转换为高电平模式,完成数据转发后在转换为低电平状态。5脚为电源低,8脚为电源,6脚和7脚的作用是完成

RS485的通信功能;为了使RS485更好的展示出自己的能力,可在A

与B之间添加电阻的方式进行提升。其中

RS485的电路图如下图3-19所展示:图3-19RS485应用电路小结:RS485通信在日常生活中应用较为广泛,主要原因是在抗干扰能力较强,传递数据能够满足家庭或者企业的需求。第4章软件设计本次课题的开发环境为C51编写语言。单片机为系统的主控芯片,从内部查看包含:显示模块、电量监测模块、通信模块。单机片内部的存储器有较大容量且高速运行,这样,可轻松地增加、升级设备;使用者编程更简单。4.1IIC总线控制模块程序在完成设计后,第一次运行时,需要查看程序会不会启动,其他模块是否能够正常运行,所有程序准备就绪后,程序会自动进入到下一步,其流程图图下图4-1所展示:图4-1主程序流程图头文件以及部分重要程序如下:#include<reg51.h>//由单片机作为控制端开始启动#include"codetab.h"#include"intrins.h"#include"LTC2943.h"//IO口实现IIC通信//#defineX_WIDTH 128#defineY_WIDTH 64sbitRS485_DIR=P1^7;//RS485方向#defineLTC2943_I2C_ADDRESS0x64#define Brightness 0xcf //OLED地址sbitSCL=P1^0;//对端口SCL进行定义sbitSDA=P1^1;//对端口SDA进行定义voidtimer0()interrupt1//定时器0开启{ TL0=0x00; //首次定时10ms TH0=0xDC; //重新定时 shan_count++; if(shan_count==100) //:灯有节奏的进行闪烁 { shan_count=0; } shan_js++; //闪烁时间重新定义 if(shan_js==25)//250ms闪烁一次 { shan_js=0; flag=!flag; }}4.2OLED液晶显示模块在单片机中最常用的是LED1602液晶显示屏。由于其主要消耗在其内部的电极和驱动IC上,使用采用液晶屏的方式显示出信息。液晶屏的选择方式较多,最好的是图形点阵液晶显示,此时实验中电路和程序都较为简单,所以显示屏的选择在价格上也需要适应,所以选择图形液晶显示。LCD显示屏电路如下图4-2所展示。图4-2OLED液晶显示模块流程图其中有关程序如下:voidOLED_WrCmd(unsignedcharIIC_Command)//OLED下发命令voidOLED_Fill(unsignedcharbmp_dat)//OLED显示voidOLED_WrDat(unsignedcharIIC_Data)//OLED数据导出voidOLED_Set_Pos(unsignedcharx,unsignedchary)//OLED单位设置oidOLED_CLS(void)//OLED恢复出厂voidOLED_Init(void)//OLED首次运行4.3LTC2944监测模块监控部分中主要由IIC地址进行控制,通过发送不同的指令和控制模式,从而得到信息参数、计算方式、返回参数,其中整体流程如下图4-3所展示。图4-3电量监测模块流程图其中有关程序如下:#defineAUTOMATIC_MODE_DISPLAY_DELAY500//自动获取参数之间的传递时间#defineSCAN_MODE_DISPLAY_DELAY10000//获取该模式下的参数传递时间voidsetup(){…delay(3000);LTC2943_write(LTC2943_I2C_ADDRESS,LTC2943_ACCUM_CHARGE_LSB_REG,0);LTC2943_write(LTC2943_I2C_ADDRESS,LTC2943_ACCUM_CHARGE_MSB_REG,0);}LTC2943_mode=LTC2943_AUTOMATIC_MODE|prescalar_mode|alcc_mode;ack|=LTC2943_write(LTC2943_I2C_ADDRESS,LTC2943_CONTROL_REG,LTC2943_mode);电量的计算方式为:floatcoulomb_charge;//数据换算coulomb_charge=1000*(float)(adc_code*LTC2943_CHARGE_lsb*prescalar*50E-3)/(resistor*4096);coulomb_charge=coulomb_charge*3.6f;return(coulomb_charge)floatmAh_charge;//mah计算mAh_charge=1000*(float)(adc_code*LTC2943_CHARGE_lsb*prescalar*50E-3)/(resistor*4096);return(mAh_charge);电压的计算方式为:floatvoltage;voltage=((float)adc_code/(65535))*LTC2943_FULLSCALE_VOLTAGE;return(voltage);电流的计算方式为:floatcurrent;current=(((float)adc_code-32767)/(32767))*((float)(LTC2943_FULLSCALE_CURRENT)/resistor);return(current);温度的计算方式为:floattemperature;//开氏温度temperature=adc_code*((float)(LTC2943_FULLSCALE_TEMPERATURE)/65535);return(temperature);floattemperature;//摄氏温度temperature=adc_code*((float)(LTC2943_FULLSCALE_TEMPERATURE)/65535)-273.15;return(temperature);功率的计算方式为:power=current*voltage;4.4RS485通信模块通信部分整体流程图图4-4所展示:图4-4RS485通信程序流程图sbitRS485_DIR=P1^7;//RS485方向bitflagTxd=0;//单一完成标志bitflagFrame=0;//完成返回数值voidConfigUART(unsignedintbaud)/*波特率设置*/externvoidUartAction(unsignedchar*buf,unsignedcharlen);voidUartRxMonitor(unsignedcharms)/*端口接入,ms-时间设定*/voidUartDriver()/*端口驱动检测*/voidUartWrite(unsignedchar*buf,unsignedcharlen)/*端口转发数据*/voidInterruptUART()interrupt4/*端口数据中断*/

第5章总结与展望5.1总结本次设计主要从单片机的角度对蓄电池管理系统进行分析,蓄电池发展现状和研究意义探究,在深入了解蓄电池的发展过程和实际意义后才能够明白设计方向和目的。在了解蓄电池的发展趋势及其设计方向之后,再对蓄电池的国内外发展状态进行总结与概括。国内外发展状况有助于我们了解蓄电池的技术发展情况,社会价值及其未来前景。本次实验由于能力和条件的限制,还有很多地方需要做出修改:(1)原理分析:本次研究的系统主要为测试系统,暂不作为实际操作系统使用,并且

温馨提示

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

评论

0/150

提交评论