基于单片机的太阳能电池数据采集系统设计
基于单片机的太阳能数据采集系统设计I 本科生毕业设计 ( 论文 ) 学 院 : 专 业 :学 生:指导教师:完成日期 年 月基于单片机的太阳能数据采集系统设计II 本科生毕业设计(论文)基于单片机的太阳能电池数据采集系统设计Design of Data Acquisition System for Solar Cell Based on MCU 总 计: 22 页公 式: 7 个插 图 : 14 幅基于单片机的太阳能数据采集系统设计III 本 科 毕 业 设 计(论文)基于单片机的太阳能电池数据采集系统设计Design of Data Acquisition System for Solar Cell Based on MCU 学 院(系) :专 业:学 生 姓 名:学 号:指 导 教 师(职称) :评 阅 教 师:完 成 日 期:基于单片机的太阳能数据采集系统设计IV 基于单片机的太阳能电池数据采集系统设计电气工程及其自动化专业[摘 要] 本设计根据太阳能电池测试原理和电子电路的相关知识,选用合适的电子元器件设计了能够完成数据采集任务的硬件电路, 主要包括温度信号采集单元、 光强信号采集单元、电压及电流信号采集单元、模数转换单元和串口通信单元等部分。用单片机 C语言编写了与硬件电路相配合的软件程序, 控制硬件电路完成数据采集任务, 数据采集部分与 PC机之间通过串口进行的数据传输。[关键词] 太阳能电池;单片机;数据采集;串口通信;可视化集成编程系统开发软件Design of Data Acquisition System for Solar Cell Based on MCU Electrical Engineering and Automation Specialty Abstract: According to the test principle of the solar cell and the related knowledge about electronic circuit, we have chose suitable electronic components to design a hardware circuit, which can complete the task of data acquisition. This hardware circuit includes temperature data acquisition unit, light intensity signal acquisition unit, voltage and current signal acquisition unit, analogue to digital conversion unit and serial communication unit, and so on. We have used C programming language to compile software program coordinated with the data acquisition hardware circuit, and to control hardware circuit to complete the task of data acquisition. The serial communication can be work between data acquisition section and personal computer through serial port . Key words: Solar cell; microprogrammed control unit ; data acquisition; serial communication; MATCOM 基于单片机的太阳能数据采集系统设计V 目 录1 引言 . 1 1.1 设计背景 . 1 1.2 课题研究内容及意义 . 1 2 太阳能电池数据采集原理 . 2 2.1 太阳能电池的工作原理 . 2 2.2 太阳能电池的等效电路 . 3 2.2 太阳能电池的伏安特性曲线 . 4 2.3 太阳能电池的测试方法 . 5 3 太阳能电池数据采集部分硬件电路设计 . 5 3.1 数据采集部分硬件电路 . 5 3.2 电压电流信号采集单元 . 7 3.3 固态继电器单元 . 8 3.4 温度信号采集单元 . 9 3.5 光强信号采集单元 . 9 3.6 步进电机单元 10 3.7 电源电路单元 10 3.8 串口通信单元 11 4 太阳能电池数据采集部分软件设计 . . 11 4.1 系统主程序软件设计 11 4.2 温度信号采集子程序 12 4.3 A/D 转换部分子程序 . 13 4.4 太阳能电池数据显示部分设计及结果 14 结束语 . . 16 参考文献 . . 17 附录 . . 18 致谢 . . 22 基于单片机的太阳能电池数据采集系统设计1 1 引言1.1 设计背景能源是人类赖以生存的物质基础,是现代文明的重要保证,可靠、安全的能源供给和清洁、 高效的能源利用是实现经济社会发展的基本保证。 工业现代化所需要的主要能源,如石油、煤、天然气等又都是不可再生能源。因此,能源战略都被世界各国当做其经济发展战略的重要组成部分。随着世界经济的高速发展以及工业化程度的不断提高,世界各国对能源的需求一直保持着强劲的增长势头, 能源问题已经越来越成为制约全球各国经济和社会发展的重要因素之一。化石能源的减少以及使用化石能源对气候和生态环境产生的负面影响越来越明显,研究开发清洁的可再生能源成为世界各国实现经济和社会可持续发展的重要战略。 由于太阳能所具有的取之不尽、 用之不竭的特点, 太阳能光伏发电成为最有发展前景的一种新能源技术, 世界各国纷纷投入人力物力研究开发太阳能光伏发电技术, 将太阳能光伏发电产业做为解决能源和环境问题的战略产业加以重点支持, 使全球太阳能光伏发电产业得以迅猛发展。世界各国尤其是发达国家政府都把太阳能发电称为朝阳产业,希望把这一产业作为实现本国可持续发展的重要措施, 制定了一系列支持和促进本国光伏发电产业发展的政策,对世界光伏产业的发展起到了积极地推动作用,全球光伏发电市场正在迅速扩大,光伏发电正在成为全球的一大热点。我国对太阳能电池的研究始于 1958 年。我国于 1971 年发射的东方红二号卫星上首次成功地利用了太阳能电池, 在 80 年代以前我国的光伏工业尚处于雏形。 在“六五”,和“七五”期间, 光伏工业和光伏市场开始得到国家的支持, 使太阳能电池工业得到了一定的发展,在许多领域得到应用。原国家计委于 2002 年启动的“西部省区无电乡通电计划”大大刺激了我国光伏工业的发展, 太阳能电池应用也取得了一些进展。 我国实施了很多重大光伏项目, 这些项目对我国光伏市场和光伏产业的发展都起到了积极地推动作用。 这些项目包括: 中国政府的“光明工程”先导项目, 中国和加拿大合作的“ CIDA太阳能农村通电项目”,国家计委的光明工程,西藏阿罩光电计划等。在 2010 年以前我国太阳能电池主要应用于独立光伏发电系统, 2011 年到 2020 年问我国光伏发电市场将由独立发电系统转向并网发电系统, 包括沙漠电站和建筑屋面发电系统。 随着我国综合国力的增强和光伏产业的蓬勃发展, 我国将会大规模建设大型太阳能热电站和太阳能光电站,届时太阳能光伏发电将会成为我国的主要能源来源之一。 [1]1.2 课题研究内容及意义本课题的内容是设计太阳能电池测试系统的数据采集部分,所发展的工作如下:基于单片机的太阳能电池数据采集系统设计2 (1) 有效的采集太阳能电池的电流、电压、光强和温度等参量,使数据的采集过程可以在很短的时间内完成,避免了温度和光强变化对测试数据的影响。(2) 对采集到的数据利用单片机的串口通信技术,实现数据采集电路和 PC 机的通信。(3) 用 PC 机对数据采集电路采集到的数据进行分析处理,得出太阳能电池的伏安特性曲线和相关性能参数,从而对被测太阳能电池进行分析评判。在太阳能光伏发电技术中太阳能电池起着关键和核心的作用, 太阳能电池的开路电压、短路电流、最大功率、转换效率等性能参数对其产业化应用有重要影响。因此,太阳能电池的测试及判断分选是太阳能电池生产过程中的重要环节。测试是在给定光强下,测出太阳能电池组件的伏安特性曲线,并由测得的电流、电压、温度、光强等数据计算出太阳能电池组件的开路电压、短路电流、最大输出功率、转换效率等参数,并据此进行分类评判。 在测试过程中必须对太阳能电池组件在给定光强下的各种数据进行采集,要准确而高效地完成太阳能电池数据的采集,必须用到太阳能电池测试系统。2 太阳能电池数据采集原理2.1 太阳能电池的工作原理太阳能电池的制作材料多种多样,有硅、硒、砷化镓、硫化镉等,但目前在全球占据主导地位的主要是硅材料太阳能电池, 因此本文中主要以硅材料太阳能电池为代表来讨论太阳能电池的工作原理。晶体硅太阳能电池的结构如图 1 所示 : 图 1 晶体硅太阳能电池结构晶体硅太阳能电池是用硅材料制成大面积 pn 结进行工作的,一般是以 p 型硅半导体材料作为基质材料,在 p 型硅表面扩散出一层很薄的经过重掺杂的 n 型层,然后在 n型层上面制作金属栅线, 作为上面接触电极, 在整个背面制作作为背面接触电极的金属膜, 太阳能电池的表面一般会做绒面处理或覆盖减反射膜以减少光的反射损失。 当太阳能电池表面的 pn 结受到太阳光的照射时, 如果入射光子的能量高于硅材料的禁带宽度,则在 n 区、 p 区和结区中会因光子被吸收而产生电子空穴对,在结附近的 n 区中产生的少数载流子会因为存在浓度梯度而扩散。如果少数载流子离 pn 结的距离小于它的扩散基于单片机的太阳能电池数据采集系统设计3 长度, 就会有扩散到结界面处的几率。 在结区即 p 区与 n 区交界面的两侧存在一个被称为耗尽层的空间电荷区。 扩散到结界面处的少数载流子空穴会被内建电场拉向 p 区, 而扩散到结界面处的少数载流子电子会被内建电场拉向 n 区, 结区内产生的电子一空穴对会被内建电场分别拉向 n 区和 p 区。在外电路处于开路状态的情况下,这些光生电子和空穴会积累在 pn 结附近,结果使 p 区获得附加正电荷, n 区获得附加负电荷, 在 pn 结上就会产生光生电动势。 这一现象称为光生伏打效应,也称光伏效应,太阳能电池就是根据光伏效应工作的。 [2]2.2 太阳能电池的等效电路太阳能电池的基本结构是一个大面积的 pn 结, 根据电子学理论, 理想 pn 结的伏安特性可以表示为:])[exp(]1)[exp( 00 IqUIVUII DTDD (1) 在式 1 中, DI 定义为 pn 结电流, 0I 定义为反向饱和电流, DU 为 pn 结外加电压 ,q=l.6× l0 l9 C是电子电荷, TV =qkT 定义为温度的电压当量, k=1.38 × l0 23J/K 定义为波尔兹曼常数, T 是绝对温度。太阳能电池的等效电路可以表述为图 2 所示(其中 R1为负载电阻) :图 2 太阳能电池等效电路在没有光照的情况下, pn 结处于平衡状态,没有电流流过 pn 结。当有太阳光照射到太阳能电池表面时, pn 结的平衡状态会被破坏, 将产生一个从 n 区流向 p 区的光生电流 Iph ,同时,存在一个从 p 区流向 n 区,与光生电流方向相反的暗电流 I d,考虑到太阳能电池的材料、 制造工艺等因素, 硅片的内部阻抗和电极接触会引起串联电阻 Rs, pn结内部的不完整性会引起并联电阻 Rsh。在一定的光强照射下, 太阳能电池的光电流不随工作状态而变化, 在等效电路中可以看做恒流源,光电流中的一部分流经负载,在负载两端建立端电压,端电压反过来又基于单片机的太阳能电池数据采集系统设计4 正偏于 pn 结两端,产生一股暗电流,暗电流方向与光电流方向相反。由于器件的瞬时响应特性与太阳能的转换无关, 且瞬时响应时间与绝大多数光伏系统的时间常数相比微不足道, 因此在实际的分析过程中结电容 C, 可以忽略不计。 电压、 电流方向如图所示,可以得到太阳能电池的 I-V 方程为shssphRIRUAkTIRUqII }1])({exp[ ( 2)对实际使用的太阳能电池而言, 它们的参数各不相同, 因此在方程中参数应处理为集体参数。式 2 中 U为负载两端电压, Iph 为光生电流, A的取值范围为 l ~ 5,称为二极管因子,用于考虑电路中二极管的非理想 pn 结。 [3]2.2 太阳能电池的伏安特性曲线根据经典光伏理论, 在一定的光强和温度下, 太阳能电池的伏安特性曲线如图 3 所示 : 图 3 太阳能电池的伏安特性曲线图 3 中 Voc 是太阳能电池的开路电压, Isc 是太阳能电池的短路电流, Pm是太阳能电池的最大输出功率, Vm是最大功率点电压, Im 是最大功率点电流。由图中可知,太阳能电池的伏安特性曲线是非线性的, 该曲线受太阳能电池自身的工艺参数, 外界光照的强度和太阳能电池自身温度等因素的影响。从太阳能电池的伏安特性曲线中可以看出太阳能电池既不是恒流源,也不是恒压源,不可能为负载提供任意大的功率。太阳能电池是一个非线性直流电源,输出电流在一定电压范围内相当恒定,最终在到达某个电压值之后,电流迅速下降至零。太阳能电池的输出电流在短路状态下不是无穷大, 而是一个有限值。 太阳能电池有一个最大输出功率点, 工作在最大功率点上时利用效率才最高。 太阳能电池的伏安特性曲线受太阳能电池自身的工艺参数、 外界光照的强度和太阳能电池自身温度等因索的影响, 不同的伏安特性曲线可以反映太阳能电池在不同环境条件下工作时的发电能力和最佳效率点。 [4]基于单片机的太阳能电池数据采集系统设计5 2.3 太阳能电池的测试方法太阳能电池的伏安特性受光照强度和电池温度的影响,因此规定太阳辐射光谱为AMl.5 ,日照强度为 1000W/m2。太阳能电池温度为 25℃时为地面测试太阳能电池性能的标准测试条件。太阳能电池分析评判的依据是太阳能电池的伏安特性曲线及性能参数, 就是要测出太阳能电池在标准日照强度 S 和标准温度 T 条件下, 太阳能电池所带负载从零变化到无穷大时太阳能电池的输出电压和输出电流的值, 根据输出电压和输出电流的值作出太阳能电池的 I-V 特性曲线, 并根据测得的数据计算出太阳能电池的性能参数, 根据得出的I-V 特性曲线和性能参数来评判太阳能电池的性能。为了尽可能降低光强和温度变化对测试带来的影响,必须保证太阳能电池的测试是在极短时间内完成的。 [5]3 太阳能电池数据采集部分硬件电路设计3.1 数据采集部分硬件电路在太阳能电池测试系统中, 数据采集部分主要是对太阳能电池外接负载在从零变化到无穷大过程中太阳能电池的输出电压和输出电流、 太阳能电池温度和光照强度进行采集。在测试系统的工作过程中, 调节太阳能电池的负载电阻从零变化到无穷大, 并在负载电阻每增加一个固定阻值时,采集此时负载电阻两端的电压和通过负载电阻的电流,负载电阻为零时采集到的电流即为短路电流; 负载电阻为无穷大时采集到的电即为开路电压。 根据太阳能电池的短路电流与光照强度成正比关系的原理来间接测得太阳能电池的光照强度。 采集数字温度传感器 DS18B20, 可以直接把现场采集到的温度信号转换成二进制数据,无需外加 A/D 转换器。本设计的数据采集系统主要采集太阳能电池的电压、电流、测试光强、电池温度四种数据。 其中电压、 电流、 测试光强需要经过 A/D 转换单元, 实现由模拟信号到数字信号的转换,而温度信号的采集采用数字温度传感器,可以直接输出二进制数据。转换成二进制的电压、电流、光强和温度数据通过串口与 PC 机进行通信,在 PC 机中进行数据的处理和处理后结果的显示。 整个数据采集部分以单片机力控制核心, 通过单片机实现数据采集单元、 A/D 转换单元和串口通信单元之间的协调工作。数据采集部分的电路原理图如图 4 所示 :基于单片机的太阳能电池数据采集系统设计6 图 4 数据采集部分电路图基于单片机的太阳能电池数据采集系统设计7 在图 4 中, 包括单片机最小系统, 温度采集器件 DS18B20, A/D 转换器件 ADC0832,电压转换芯片 MAX232 和 RS232接口 DB9。整个数据采集部分的电路是以单片机为控制核心的, 在数据采集部分电路中, 用步进电机和步进电机驱动器实现太阳能电池所接负载电阻按一定的阻值间隔从零到无穷大的变化。单片机与步进电机驱动器相连,通过单片机控制步进电机驱动器工作,进而控制步进电机按一定的步距角转动, 从而实现太阳能电池所接负载电阻的变化; 温度采集所采用的数字温度传感器 DS1B820是单线总线结构, 需要按照严格的时序由单片机进行控制,才能顺利实现温度数据的转换和输出;电流、电压和光强信号都需要由单片机控制 A/D 转换器 ADC0832来实现由采集到的模拟量到单片机所需要的数字量之间的转换;转换为数字量的电压、电流、光强和温度信号都需要通过单片机控制 DP9串口来实现与 PC机之间的数据通信。 [10]3.2 电压电流信号采集单元本设计中电压采集和电流采集采用间接测量法,其电路图如图 5 所示:图 5 电压电流测量电路在图 5 中, R0 是负载电阻, Rstd 是标准电阻, Vr 是参考电压源。负载电阻采用的是多圈电位器, 单片机通过步进电机驱动器控制步进电机的转动来带动多圈电位器的转动,从而改变负载电阻的阻值:图中的开关 K1、 K2、 K3 采用继电器,由单片机输出的控制信号不断使继电器导通与切断,以组成不同的回路来测量所需的电压和电流。通过如下方式得到太阳能电池在不同负载条件下的输入电压和电流。 在光强一定的条件下,改变负载电阻 0R 到某个固定值,将 K3闭合, K1连接到 K11, K2连接到 K21,此时,负载电阻 0R 两端电压为:DDVRRRUstd00( 3)基于单片机的太阳能电池数据采集系统设计8 由上式 3 可以得出负载电阻 R0的值为:s t dDDRUVUR0( 4)在保持光强和负载电阻 0R 不变的条件下, 将 K3闭合, K1连接到 K12, K2连接到 K22,将太阳能电池和负载电阻 R。组成回路,从而得到所测电压为 Uc。由上面步骤 l 已经得到了负载电阻 0R 的值,则此时回路中的电流为:stdcDDcc RVUUVRUI0 ( 5)通过单片机控制步进电机驱动器, 进而控制步进电机的转动, 从而改变负载电阻 R0的值, 则可以得到不同负载电阻时的路端电压和回路中的电流。 将负载电阻的值调到最小,使负载电阻的值远小于太阳能电池本身的内阻,可以得到太阳能电池的短路电流Isc 。将开关 K3断开, K1连接到 K12, K2连接到 K22,此时太阳能电池和负载电阻组成的回路处于开路状态,此时测得的电压即为太阳能电池的开路电压 Voc。 [6] [9]3.3 固态继电器单元固态继电器是一种利用电子元件的断开和闭合来控制固态继电器所在电路的断开和接通的无触点式电子开关元件, 分为直流固态继电器和交流固态继电器两种, 本文用的是直流 +5v 电压的固态继电器,本文中采用的继电器工作电压为直流 +5V 电压,继电器的外围连接了一个三极管和一个二极管。三极管起开关作用,根据单片机 I/O 口为 0 或为 l 决定三极管是否导通;二极管要反过来接,主要作用是保护三极管,因为在线圈停电的瞬间会产生反向电动势,可能会对三极管造成损伤。电路如图 6 所示:图 6 固态继电器电路连接基于单片机的太阳能电池数据采集系统设计9 3.4 温度信号采集单元本设计中太阳能电池温度信号采集是才用单总线数字温度传感器 DS18B20,由于被测温度直接采用数字形式输出,因此无需外加 A/D 转换器。如图 7 所示:图 7 温度测量电路在使用 DS18B20 时,经常采用单片机实现数据采集,在实际连接电路时往往将DS18B20 的信号线与单片机的一位 I/O 口线相连,图 7 中将 DS18B20 的 DQ 端连接到单片机的 Pl.3 口。 DS18B20 与单片机有 2 种连接方式, 一种是采用寄生电源供电, 另一种是采用外部电源供电, 本设计采用的是外部电源供电, DS18B20 的 DQ 端直接接单片机的 Pl.3 口,并接 4.7 千欧的上拉电阻, VDD 接 +5v 电压, GND 接地。3.5 光强信号采集单元太阳能电池的短路电流受到温度、 光照等环境因素的影响, 但是在太阳能电池面积较小的情况下, 可以认为太阳能电池的短路电流只与光照强度有关, 并且它们之间成正比例关系,而不受其他环境因素的影响。本设计中根据这一原理, 在测量太阳能电池的光照强度时, 采用一块小面积的太阳能电池作为光照强度传感器,在太阳能电池正负极之间接入阻值很小的电阻。此时,可以认为太阳能电池处于短路状态, 测量太阳能电池两端的电压, 从而计算出此时太阳能电池的短路电流, 根据太阳能电池的短路电流与日照强度成正比例关系的原理, 间接得到光照强度的数值,测量示意图如图 8 所示:图 8 光照电路采集电路基于单片机的太阳能电池数据采集系统设计10 3.6 步进电机单元步进电动机不能直接接到工频交流或直流电源上工作, 而必须使用专用的步进电动机驱动器,它由脉冲发生控制单元、功率驱动单元、保护单元等组成。本设计选用的是两相混合式步进电机和细分型高性能步进电机驱动器, 步进电机系统由单片机、步进电机驱动器、步进电机和负载电阻组成,单片机通过步进电机驱动器控制步进电机来带动负载电阻, 使负载电阻按预定的要求变化, 并在变化的过程中进行电压和电流的采集。步进电机系统电路连接如图 9 所示:图 9 步进电机系统电路连接在图 9 中,步进电机驱动器的 PUL, DIR, ENA三个端子与单片机的三个 I/O 引脚连接,这在前面已有介绍,这里不再重复。驱动器的 A+, A-, B+, B-四个端子分别接步进电机的红、绿、黄、蓝四条引线。由于本设计采用的是两相混合式步进电机,步进电机的步距角为 1.8 度, 则步进电机转一圈需要 200 个脉冲信号, 作为负载电阻的多圈电位器一圈的阻值是 10 欧姆,如果希望使步进电机的步距脚更小,可以通过操作步进电机驱动器的拨码开关 DIP-SW来实现。3.7 电源电路单元在一个单片机实用系统设计中,电源设计是相当重要的,此单元设计是否合理,直接决定系统能否稳定的运行。 长期以来, 单片机系统使用的集成电路器件大多数都在 5V电源工作。 在此次设计中, 我们采用的电源通过市电电网的交流电经变压, 整流, 滤波,稳压后得到系统所需的 +5V直流电源。因此,此系统的电源包括变压电路,整流电路,基于单片机的太阳能电池数据采集系统设计11 滤波电路,稳压电路。滤波电路是将脉动直流中的交流成分滤除, 减少交流成分, 增加直流成分。 滤波电路利用电抗性元件对交、直流阻抗的不同,实现滤波。电容器 C对直流开路,对交流阻抗小,所以 C应该并联在负载两端。电感器 L 对直流阻抗小,对交流阻抗大,因此L 应与负载串联。经过滤波电路后,既可保留直流分量、又可滤掉一部分交流分量,改变了交直流成分的比例,减小了电路的脉动系数,改善了直流电压的质量。 [8] [13]在使用三端稳压器时应注意防止产生自激振荡。三端稳压器内部电路放大级数多,开环增益高,工作于闭环深度负反馈状态,需要采用适当的补偿移相措施,防止产生高频寄生振荡。电容 C1,C2 就是为了防止自激振荡而加的防振电容。为改善纹波电压和抑制输入瞬时过电压, 输入端加入的 C1一般取值 0.33uF, 同时输出端接 C2用以改善负载瞬态响应, 容量取 0.1uF. 为了减小提高纹波电压与提高输出电压的稳定度,分别在输入输出端加大的电解电容。这样一旦输入端出现短路,集成稳压器内部电路中的功率调整管可以及时泄放。电源电路如图 10 所示 : 图 10 +5V 直流稳压电源电路图3.8 串口通信单元本文设计的太阳能电池数据采集系统采用的是上位机一下位机的工作方式,由于 PC机的分析能力很强、处理速度很快,而单片机使用起来灵活方便,因此本文采用 PC机作为上位机,单片机作为下位机,两者之间通过 RS-232串口进行采集数据的发送、接收和控制指令的传输。因此,本文中的串口通信指的是单片机和 PC机之间的数据传输,这种数据传输是由单片机的串口和 PC机的串口共同完成的, MAX232芯片用于实现电平转换。4 太阳能电池数据采集部分软件设计4.1 系统主程序软件设计由于温度信号和光强信号的采集比较简单,用时也较少,因此,本文首先采集的是基于单片机的太阳能电池数据采集系统设计12 温度和光强信号, 采集到的温度和光强信号放到单片机的存储器中 .然后, 进行被测太阳能电池路端电压和电流的采集, 在采集的过程中, 由于短路电流和开路电压的采集比较特殊, 不同于其他电压和电流信号的采集方法, 因此短路电流和开路电压的采集与其他电压、电流信号的采集分开进行,采集完成后,数据也放到单片机的存储器中。当每一次数据采集完成后,就对数据进行处理,将处理之后的数据直接送入 PC机,然后利用软件对数据进行处理。系统主程序设计如图 11 所示。图 11 系统主程序设计图4.2 温度信号采集子程序本研究使用的数字温度传感器 DS18B20采用单总线技术,在一根数据线上进行读写数据和命令的传输, 因此, 对 DS18B20进行的读写操作有严格的时序要求, DS18B20规定了严格的通信协议来保证数据传输的正确性和完整性 . 设计中用到一片 DS18B20芯片,因此在编写温度采集程序时只需用到跳越 ROM (CCH)命令即可,单片机在发出 ROM命令访问 DS18B20之后, 就可以发出功能命令来完成特定的任务了。 本设计中采用到的DS18B20功能命令有转换温度命令 (44H) ,读暂存器命令 (BEH)等。在温度转换期间总线上不能进行任何其他数据传输, 另外, 通过发出复位脉冲可以在任何时刻中断数据的传输。转换成数字量的温度数据以 16 位符号扩展的二进制补码形式存储在 DS18B20的高速暂存器的前两个字节中。 [12] 在图 13中, 由于转换完成的温度信号分两个字节存放在 DS18B20 的高速暂存器中,因此,本文采用两次转换,两次读取,一次读取低位字节,一次读取高位字节的方来完成温度信号的采集。采集程序中用到的程序代码简介如下:# define DQ RA0 // 定义 DS18B20 数据端口# define DQ_DIR TRISA0 // 定义 DS18B20D 口方向寄存器# define DQ_HIGH() DQ_DIR =1 // 设置数据口为输入# define DQ_LOW() DQ = 0; DQ_DIR=0 // 设置数据口为输出uchar TLV=0 ; // 采集到的温度高 8 位电压、电流信号采集单元光强信号采集单元温度信号采集单元A/D 转换单元单片机控制单元串口通信单元PC 机数据处理及显示基于单片机的太阳能电池数据采集系统设计13 uchar THV=0; //采集到的温度低 8 位uchar TZ=0; //转换后的温度值整数部分uchar TX=0; //转换后的温度值小数部分本研究对温度信号进行采集的程序流程图如图 12 所示:图 12 DS18B20 程序流程图4.3 A/D 转换部分子程序本文在数据采集过程中调用模数转换子程序分为两个步骤,首先是调用 ADC0832的初始化函数,然后调用读耿数据函数,这两个函数简述如下:初始化函数 AD_init(); Void AD_init(void) { ADCS=1; ADCCLK=0; _nop_(); _nop_(); ADCS=0; 选中 ADC0832 _nop_(); _nop_(); 读取温度低位字节延时放入内存延时放入内存读取温度高位字节启动 DS18B20 启动 DS18B20 基于单片机的太阳能电池数据采集系统设计14 ADDI=1; 输入启动位_nop_(); _nop_(); ADCLK=1; 第一个上升沿_nop_(); _nop_(); ADCLK=0; ADDI=0; _nop_(); ADDI=1; 选择单通道输入_nop_(); _nop_(); ADCLK=1; 第二个上升沿_nop_(); ADCLK=0; _nop_(); ADDI=0 ; 选择 CH0,若 ADDI=1 则选择 CH1 _nop_(); _nop_(); ADCLK=1; 第三个上升沿_nop_(); _nop_(); ADCLK=0:L ADDI=1; _nop_(); _nop_(); } 4.4 太阳能电池数据显示部分设计及结果本文设计的太阳能电池数据采集系统由以单片机为控制核心的数据采集部分和以VC++6.0 和 MATLAB 为主要编程工具的 PC 机数据处理及显示部分组成。在前面完成了太阳能电池数据采集部分软硬件的设计内容, 数据采集部分通过单片机的串口与 PC 机进行通信。 本节我们在 PC 机中采用 VC++6.0 作为开发工具, 编制 PC机中的监控显示界面,采集到的数据用 MATLAB 程序进行处理,处理完后的结果再返基于单片机的太阳能电池数据采集系统设计15 回监控界面中显示。 PC 机中对采集到的太阳能电池数据进行分析处理,采用这种方式可以充分利用 MATLAB 编程的优良特性和 C++的高执行效率,可以开发出具备强大的数据分析处理能力,具有良好的用户界面,满足用户要求的高性能应用软件。本文根据前面介绍的太阳能电池数据采集系统的设计原理, 搭建了一个基于本文设计原理的试验电路, 并用该试验电路对 3 块串联的太阳能电池进行测试, 得到的伏安特性曲线和性能参数如图 13 与图 14 所示:图 13 太阳能电池伏安特性曲线图 14 伽利略测试性能结果由图 13 可以看出,本课题设计的太阳能电池数据采集系统能够对太阳能电池小组件进行测试, 测试的结果可以由监控显示界面来表达。 从监控显示界面的运行情况可以看出,被测太阳能电池的 I-V 特性曲线可以以图形方式直观地显示出来,而太阳能电池的相关性能参数也能够以数值形式清楚地展现给测试人员。但同时从图 14 可以看出,本文搭建的试验电路测得的 I-V 特性曲线光滑度不够,有些点的波纹较大, 这是由于电路中存在着一些噪声和干扰, 而我们搭建的试验电路的滤波处理有所欠缺, 但是图中 I-V 曲线的总体变化趋势符合太阳能电池的固有性质。 图15 给出的是本文试验中所测的电池小组件在武汉珈伟太阳能有限公司中测得的 I-V 特基于单片机的太阳能电池数据采集系统设计16 性曲线和性能参数, 与之比较可知, 本文设计的测试系统得到的大部分性能参数误差在5.96 以内,而部分参数(如串联电阻、工作电压等)误差偏大,误差的来源主要是由于本文试验电路的 AD转换器的分辨率较低,对 v=0 附近的值采样精度较差。结束语本设计根据目前太阳能电池研究和工程应用的实际需要, 以半导体物理学和太阳能电池的相关理论为基础, 根据电子电路和单片机原理的相关知识, 设计的基于单片机的太阳能电池数据采集系统,系统主要分为数据采集和数据处理及结果显示两大部分。在数据采集部分的硬件电路中, 选用步进电机和多圈电位器来实现太阳能电池外接负载的自动变化,避免了电子负载的使用。采集到的电压、电流、光强和温度信号通过作为中介的单片机传输到 PC机中, 在 PC机中进行数据的后处理。 在硬件电路设计完成后,还用 C语言编写了与硬件电路相配合的软件程序。在原理介绍完成后, 还搭建了相关的试验电路, 并利用试验电路对三块串联的太阳能电池进行测试。测试得到的结果表明,被测太阳能电池的 I-V特性曲线可以以图形形式直观的显示出来,而电池的九个性能参数也能够以数值形式清楚的展现给测试人员,并且测试得到的 I-V 特性曲线的变化趋势符合太阳能电池的固有性质。整个界面直观明了, 较为完整的表述了被测太阳能电池的相关信息, 测试人员能够据测试得到的结果对太阳能电进行一些分析评判,系统的整体性能基本满足了太阳能电池的测试要求。基于单片机的太阳能电池数据采集系统设计17 参考文献[1] 任致程等 . 实用电路 500 例与实现 [M]. 北京,机械工业出版社, 2005: 416-452 [2] 彭伟 编著 . 单片机 C语言程序设计实训 100 例——基于 8051+Proteus 仿真 . 北京:电子工业出版社, 2009.6 : 100-200 [3] 周国运等 . 单片机原理及其应用( C语言版) (M). 中国水利水电出版社 .2009 : 13-37 [4] 薛 定 宇 著 . 控 制 系 统 计 算 机 辅 导 设 计 — — MATLAB语 言 及 应 用 [M]. 清 华 大 学 出 版 社 ,1998:125-200 [5] 楼 顺 天 . 基 于 MATLAB的 系 统分 析 与 设 计— 控 制 系 统 [M]. 西 安 电子 科 技 大 学出 版 社 ,2000:55-290 [6] 孙增忻 . 智能控制理论与技术 [M]. 清华大学出版社, 2004: 12-135 [7] 朱清慧,张凤蕊,翟天嵩,王志奎 . Proteus 教程—电子线路设计、制版与仿真 [M]. 北京:清华大学出版社, 2008.9:1-50 [8] 崔荣强,王晨《太阳能电池检测系统基本原理》 [J] 。阳光能源, 2008( 3) : 36-40 [9] Wang L X,Stable adaptive fuzzy control of nonlinear system. IEEE Transaction on fuzzy systems,1993,1(2):33-79 [10] CHANG Guang.ping.Ordinary Differential Equation:Approach Application.Journal of Beijing Union University.2005(2):45-47 [11] 张皆喜 . 单片机 c 语言编程与应用实例 [M]. 北京:电子工业出版社出版, 2008, 6-55 [12] 朱善军 . 单片机接口技术及应用 [M]. 北京:北京航天航空大学出版社出版, 2003, 45-90 [13] 《硅太阳能电池串联电阻的一种估算新方法》 廖志凌, 阮新波。 电工技术学报, 2008,23 ( 5) :88-92 [14] 潘新民 . 微型计算机控制技术 [M]. 北京:人民邮电出版社出版 1999 , 6-55 [15] 盖勒 .D . A. GellerDavidA .著.可编程序控制器原理与设计 [M] .北京清华大学出版社 .2006 :126-222 基于单片机的太阳能电池数据采集系统设计18 附录附录一温度采集 DS18B20 参考函数如下 : # define DQ RA0 // 定义 DS18B20 数据端口# define DQ_DIR TRISA0 // 定义 DS18B20D 口方向寄存器# define DQ_HIGH() DQ_DIR =1 // 设置数据口为输入# define DQ_LOW() DQ = 0; DQ_DIR=0 // 设置数据口为输出uchar TLV=0 ; // 采集到的温度高 8 位uchar THV=0; //采集到的温度低 8 位uchar TZ=0; //转换后的温度值整数部分uchar TX=0; //转换后的温度值小数部分//复位 DS18B20 函数void reset(void) { uchar presence=1; while(presence) { DQ_LOW() ; // 主机拉至低电平delayus(503)