微生物燃料电池数据采集系统设计与实现.docx

上传人:b****6 文档编号:7987493 上传时间:2023-01-27 格式:DOCX 页数:30 大小:1.06MB
下载 相关 举报
微生物燃料电池数据采集系统设计与实现.docx_第1页
第1页 / 共30页
微生物燃料电池数据采集系统设计与实现.docx_第2页
第2页 / 共30页
微生物燃料电池数据采集系统设计与实现.docx_第3页
第3页 / 共30页
微生物燃料电池数据采集系统设计与实现.docx_第4页
第4页 / 共30页
微生物燃料电池数据采集系统设计与实现.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

微生物燃料电池数据采集系统设计与实现.docx

《微生物燃料电池数据采集系统设计与实现.docx》由会员分享,可在线阅读,更多相关《微生物燃料电池数据采集系统设计与实现.docx(30页珍藏版)》请在冰豆网上搜索。

微生物燃料电池数据采集系统设计与实现.docx

微生物燃料电池数据采集系统设计与实现

微生物燃料电池数据采集系统设计与实现

摘  要

微生物燃料电池是一种重要的清洁能源,在阳极厌氧环境下,有机物经过微生物的分解释放出电子和质子,电子在生物组分和阳极之间流动,并通过外电路流动到阴极形成电流。

分析微生物产电的效能时,需要实时观测微生物电池的输出电压,并分析电池的输出电压变化曲线,而这个是一个非常枯燥耗时的工作,因此提出设计一个装置来自动地获取电池的输出电压。

本文基于单片机的数据采集系统的硬件设计,数据采集系统是连接模拟域与计算机之间的桥梁,它在实际应用中有很重要的作用。

本设计的硬件部分以单片机STC89C52为核心,还有模数转换模块、显示模块、串口通信模块、电源模块等。

微生物燃料电池的输出电压通过模数转换器件ADC0809进行模数装换,从而实现采集电压信号由模拟量到数字量的转换,然后单片机接受数据并对其进行处理,将测量得到的电压值用三位数码管显示,最后该系统根据上位机的控制信号将电压值通过MAX232发送到上位机进行存储、处理。

关键词:

STC89C51;ADC0809;数据采集;串口通信

 

TheDesignandImplementationofDataAcquisitionSystemofMicrobialFuelCell

ABSTRACT

Microbialfuelcellisanimportantcleanenergy,intheanodeanaerobicconditions,microbialdecompositionoforganicmatterbyreleasingelectronsandprotons,electronsflowbetweenthebiologicalcomponentsandtheanode,andthroughtheexternalcircuittothecathodecurrentflow.Analysisofmicrobialelectrogenesisperformance,weneedtoreal-timeobservetheoutputvoltageofmicrobialcells,andanalyzetheoutputvoltagecurveofbattery.Itisveryboringandtime-consuming,soweproposedadesignofanapparatustoautomaticallyderivetheoutputvoltageofcell.

ThispaperintroducesthehardwaredesignofdataacquisitionsystembasedonMCU.Dataacquisitionsystemisabridgebetweentheanalogdomainandcomputer,ithasaveryimportantroleinpracticalapplication.ThehardwarepartofthedesignoftheMCUasthecore,inadditiontotheanalog-to-digitalconversionmodule,displaymodule,serialcommunicationmoduleetc..Voltageofthemicrobialfuelcelltransformsthroughadigital-to-analogconverterADC0809,realizetheacquisitionofsignalfromtheanalogtodigitalconversion.ThentheMCUfordataprocessing,andthevoltagemeasuredusingdigitaltubedisplay.FinallythesystemaccordingtothecontrolsignalofPCwillvoltagevalueissenttothehostcomputerbyMAX232forstorage,processing.

Keywords:

STC89C51;ADC0809;DataAcquisition;SerialCommunication

 

目  录

1  绪论

1.1 课题研究背景及意义

近些年来,随着化石燃料的使用逐年增加,环境污染和能源短缺问题变的日益严重,使得开发新型的清洁高效的能源显得越来越重要。

因此,科学家一直在积极开发新能源。

生物能源一直是人类赖以生存的重要能源之一,在整个能源系统中占有重要地位。

微生物燃料电池(MFC)是一种以微生物为阳极催化剂,将化学能直接转化成电能的装置。

利用MFC不仅可以直接将水中或者污泥中的有机物降解,而且同时可以将有机物在微生物代谢过程中产生的电子转化成电流,从而获得电能。

在研究微生物电池的性能时,需要分析电池的电压曲线。

然而获取电池的电压曲线是一个耗时的过程,利用计算机自动准确地测量电池的电压值并输入到计算机进行分析具有很大的实用价值。

因此,设计出一个数据采集系统,能够周期性地对电池的输出电压进行采样,并把采样的数据传输到计算机中进行保存和处理,提高了时间利用,使研究人员不必花费大量的时间去记录数据。

1.2 国内外研究状况

数据采集系统是利用传感器采集模拟信号并转换成数字信号的系统,对其进行分析、处理、传输、显示、存储和显示。

它最早出现在20世纪中期,经过几十年的发展,数据采集技术也取得了很大的进步。

数据采集的信息化是现在科技的主要发展方向。

在现实应用中各种行业都用到了数据采集系统,它在石油勘探、科学实验、飞机飞行、地震数据采集领域发挥了重要作用[1]。

我国的数字地震观测系统以TDE-124C型TDE-224C型地震数据采集系统为主。

这几年又成功研发了在动态范围、线性度、兼容性、低功耗、可靠性比上一型更优秀的TDE-324C型地震数据采集系统。

该系统对拾震计输出的模拟信号放大后送至A/D数字化和采样,采样后的数据经DSP数字滤波处理后,变成数字地震信号。

TDE-324C型地震数据采集系统是24位的A/D转换系统,采样频率可采用50Hz、100Hz、200Hz三种[1]。

美国PASCO公司研发的“科学工作室”是一个将数据采集应用于物理实验的系统,它可分为三部分:

(1)传感器:

使用先进的传感技术实时地采集物理实验中各物理量的数据;

(2)计算机接口:

将传感器采集的数据信号传输到计算机,采样频率最高达25万次/S;(3)软件:

有多种语言版本的应用软件[1]。

本设计采用模块化的开发方式,将系统分为主机模块,模数转换模块,显示模块,串口通信模块,依次进行设计,最后将各个模块整合到一起,得到一个完整的数据采集系统。

1.3 本文的主要工作

本设计是基于AT89C51为核心的单片机系统,微生物燃料电池的输出电压信号经放大电路放大采集,让后由ADC0809模数转换元件转换成数字信号后传入单片机,由单片机对数字信号进行相应的处理,从而得到电压测量的目的,然后输出在数码管上进行显示并通过串口将数据传输到计算机中。

设计首先要解决的是对ADC0809元件的各个性能参数、内部功能以及外部引脚有一个很好的掌握,还要对51单片机的用法,外围电路(电压检测电路,单片机串口通信的电路,复位电路,数码管显示电路)的设计接法进行进一步的掌握,最后就是软件编写部分了,软件部分需要解决的问题有ADC0809初始化模块,电压数据的处理模块,数据显示模块,串口通信模块。

 

2  微生物燃料电池简介

微生物燃料电池是一种利用微生物将有机物中的化学能直接转化成电能的装置。

它以微生物作为催化剂,以有机污水为原料,将污水中的有机生物质转化为电能,微生物燃料电池(MFC)燃料来源广泛、无污染、能源利用效率高等特点。

本设计的对象是一个经典的双室微生物燃料电池,其实物图如图2-1,微生物燃料电池由两个室组成,分别为阳极室和阴极室,阳极槽保持厌氧,阴极槽保持有氧。

图2-1  微生物燃料电池

 

它工作原理为:

在阳极室厌氧环境下,有机物在微生物作用下分解并释放出电子和质子,电子依靠合适的电子传递介体在生物组分和阳极之间进行有效传递,并通过外电路传递到阴极形成电流,而质子通过质子交换膜传递到阴极,氧化剂(一般为氧气)在阴极得到电子被还原与质子结合成水,工作原理图如图2-2[2]。

 

图2-2  微生物燃料电池工作原理图

 

虽然研究者们对微生物燃料电池已展开了大量有意义的研究,开发出了结构等更加合理的微生物燃料电池,但是总的来说,目前微生物燃料电池技术尚处于试验室研发阶段,作为电源应用于实际生产与生活还比较遥远。

其主要原因是输出功率与其他电池技术相比存在着数量级上的差距。

虽然微生物燃料电池在工作原理和功能上与其他燃料电池相差无几,但其输出功率却比后者要低三至四个数量级,离实际应用还有很大距离[2]。

如何提高输出功率密度成为了科研人员的研究目标,而在分析微生物产电的效能时,需要实时观测微生物电池的输出电压,并分析电池的输出电压变化曲线。

微生物燃料电池的反应周期较长,如果人工地记录数据无疑浪费了大量的宝贵时间。

本设计根据河北大学生命科学学院赵老师的需求,设计一款自动测量、记录微生物燃料电池的输出电压的装置,根据现场考察得到微生物燃料电池的基本参数:

(1)输出电压范围:

0—2V,以后随着技术的改良,该电池的最高电压能达到5V左右。

(2)产电周期:

48—72h。

根据已知微生物燃料电池的参数,将数据采集系统的测量范围定为0-5V,采集周期为30min。

 

3  数据采集系统的开发方案论证

3.1 模数转换器件的选择

模数转换器的种类很多,按位数分,可以分为8位、10位、12位、16位,位数越高其分辨率越高,价格也就越贵。

另外其转换时间和转换误差也各不相同。

 

(1)逐渐逼近式A/D转换器:

它是一种速度快、精度较高、成本较低的直接式转换器,其转换时间在几微秒到几百微秒之间。

 

(2)双积分A/D转换器:

它是一种间接式的A/D转换器,优点是抗干扰能力强,精度比较高,缺点是数度很慢,适用于对转换数度要求不高的系统。

 (3)并行式A/D转换器:

它又被称为flash(快速)型,它的转换数度很高,但它采用了很多个比较器,而n位的转换就需要2n-1个比较器,因此电路规模

也极大,价格也很贵,只适用于视频A/D转换器等数度特别高的领域。

由于本设计对转换精度和装换时间要求不高,在价格和功能等标准的考量下,我选择逐渐逼近式A\D转换器作为本设计的模数转换器件。

3.2 单片机的选择

本设计中涉及到定时、串口通信等功能,根据单片机的配置和功能,采用STC89C52作为设计的核心。

3.3 通信模块的选择

通信模块选用了标准RS-232接口,它是电平与TTL电平转换驱动电路。

常用的芯片是MAX232,MAX232芯片是美信(MAXIM)公司专为RS232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。

3.4 显示模块的选择

本设计采用七段数码管作为显示模块。

七段数码管是一种由发光二极管组合而成显示字符的器件。

它由8个LED组成,其中7个用于显示数字,1个用来显示小数点。

七段数码管的控制可以采用周期性地向它提供具有驱动信号和位选信号。

数码管显示方式有动态扫描显示法和静态显示法。

在实际设计应用中,为了节省硬件资源,常采用动态扫描显示法。

 

4  数据采集系统硬件设计

4.1 系统模块图

本系统可以分为主机模块,A/D转换模块,显示模块,串口通信模块。

主机模块主要进行数据的处理以及对各其它各模块的控制;A/D转换模块将采集的电池的输出电压模拟量转换为数字量;显示模块的功能是用三位数码管显示测量的电压值;串口通信模块主要功能是根据上位机的指令将测得的电压值发送到上位机.系统模块图如图4-1。

 

4.2 主机模块

4.2.1 STC89C52简介

STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。

在单芯片上,拥有8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能:

8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,4个外部中断,3个16位定时器/计数器,一个7向量4级中断结构,全双工串行口。

另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35MHz,6T/12T可选[3]。

STC89C52一共有40个引脚,可以分为电源引脚、时钟引脚、输入\输出引脚、控制引脚,其引脚图如图4-2。

 

在本设计中P0口用来为显示模块的数据线,传输数码管的字符信号,P2.0-P2.2作为显示模块的位选控制引脚,来控制数码管的显示位;P1口用做并行数据接口来接收ADC0809转换后的8位二进制电压值;P2.4、P3.2、P3.3、P3.6、P3.7分别接ADC0809的EOC、ALE、CLK、START、OE用作ADC0809的控制总线。

定时计时器T0用来生成ADC0809的时钟脉冲,它的初始值为100。

定时计时器T1用来生成串口通信的波特率,它的初始值为0xfd。

4.2.2 单片机时钟电路

单片机的时钟信号的产生一般有两种方式:

一种是内部时钟方式;另一种外部时钟方式。

内部时钟方式是在单片机的XTAL1和XTAL2引脚接晶振,就能在单片机内部产生时钟信号,如图4-3所示。

 

 

4.2.3 单片机复位电路

当单片机的RET引脚引入高电平并保持两个机器周期时,单片机内部就执行复位操作,复位电路图如图4-4。

 

4.3 A\D转换模块

4.3.1 ADC0809简介

ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

它的特性如下:

(1)8路输入通道,8位A/D转换器;

(2)具有转换起停控制端;

(3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时);

(4)单个+5V电源供电;

(5)模拟输入电压范围0~+5V,不需零点和满刻度校准;

(6)工作温度范围为-40~+85摄氏度;

(7)低功耗,约15mW[4]。

4.3.2 ADC0809内部结构

ADC0809的内部结构如图4-5所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。

其中8路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,地址锁存与译码电路完成对A、B、C3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出[4]。

4.3.3 ADC089外部引脚

ADC0809芯片有28条引脚,采用双列直插式封装,如图4-6所示。

ADC0809各引脚功能如下:

(1)IN0-IN7:

8路模拟量输入端;

(2)D0-D7:

8位数字量输出端;

(3)ALE:

地址锁存允许信号,输入,高电平有效;

(4)START:

A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换);

(5)EOC:

A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平);

(6)OE:

数据输出允许信号,输入,高电平有效。

当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量;

(7)CLK:

时钟脉冲输入端。

要求时钟频率不高于640KHz;

(8)REF(+)、REF(-):

基准电压;

(9)Vcc:

电源,单一+5V;

(10)GND:

地;

(11)ADDA、ADDB、ADDC:

3位地址输入线,用于选通8路模拟输入中的一路通道选择表如表4-1所示[4]。

 

 

 

表4-1  通道选择表

C

B

A

选择的通道

0

0

0

IN0

0

0

1

IN1

0

1

0

IN2

0

1

1

IN3

1

0

0

IN4

1

0

1

IN5

1

1

0

IN6

1

1

1

IN7

 

4.3.4 ADC0809工作原理

首先获取三位地址,并将ALE置1,ADC0809将获取地址锁存到地址锁存器中。

这个地址通过译码选通8路模拟输入中的一路到比较器。

当START上升沿到来时自动将逐次逼近寄存器复位。

下降沿到来后启动模数转换,EOC输出信号置0,指示正在进行模数转换。

当模数转换完成后,EOC信号变为高电平,表示A模数转换结束,并且转换结果已存入锁存器。

当OE置1时,输出三态门导通,转换结果输出到数据总线上。

模数转换完毕后,得到的数字量应及时传送给单片机进行处理。

数据传送可使用以下三种方式:

  

(1)定时传送方式

对于一中已知的转换元件其来说,转换时间作为一项技术参数是固定的和已知的。

可参考转换时间调用延时子程序,模数转换启动后调用延时子程序,到达延迟时间后系统进行数据传送。

(2)查询方式

转换芯片有指示转换是否完成的EOC端状态信号,因此可以使用查询的方式来测试EOC的状态,就可以判断转换是否完成,若完成则传送信号。

(3)中断方式

  把指示转换完成的状态信号(EOC)作为单片机的中断请求信号,以中断的方式传送数据[3]。

ADC0809的时序如图4-7。

本设计将ADDA、ADDB、ADDC3条地址输入线接地,选择通道IN0采集数据;D0-D7连接单片机的P1口,作为数字信号的传输通道。

ADC0808由单片机的P3.3提供时钟脉冲,采用查询传送方式,监测OE信号是否为高电平。

当OE为高电平时,把转换数据送上数据总线,供单片机接收。

 

4.4串口通信模块

4.4.1 RS232串口简介

RS-232是美国电子工业协会EIA(ElectronicIndustryAssociation)制定的一种串行物理接口标准。

RS-232是一种在低速串行通讯中增大通讯距离的单端标准。

RS-232采取不平衡传输方式,即单端通讯。

RS-232的标准定义是一个25针的端口,在较早的计算机上普遍使用,但随着科学技术的发展,在AT机以后的机型上,大多使用了9针的简化版本,现在我们所提到的232通讯都是指9针的串口。

9针接口的引脚如图4-8所示。

各引脚的功能如下:

(1)CD:

载波检测;  

(2)RXD:

接收数据;

(3)TXD:

发送数据;

(4)DTR:

数据终端准备好;

(5)SG:

信号地;

(6)DSR:

数据准备好;   

(7)RTS:

请求发送;

(8)CTS:

清除发送;

(9)RI:

振铃提示。

在实际应用中,设计人员在设计计算机与外围设备的通信时,并不是使用接口的全部引脚,而是在9针的基础再进行简化,只用2、3、5三个引脚进行通信。

这三个引脚分别是RXD、TXD和SG,即可满足大部分通讯的要求,计算机和外部设备的接线方法如图4-9。

 

图4-9  计算机和外部设备接线图

 

4.4.2 MAX232简介

MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5V单电源供电。

MAX232是用来做电平转换的,标准RS232的电平很高,最高能达到正负15V。

常用的TTL电平最高为5V。

如果RS232和TTL器件相互连接的话,必须要进行电平转换。

由于电脑串口输出电压高达12V,直接与单片机连接会烧坏芯片,所以本设计中用MAX232芯片转换[5]。

MAX232内部结构基本可分三个部分:

第一部分是电荷泵电路。

它由引脚1、2、3、4、5、6和4个电解电容构成,主要是提供RS-232串口的电平。

第二部分是信号传送通道。

它内部有两个信号通道:

第一信号通道由13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)组成;第二信号通道由8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)组成。

TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑9针串口;电脑9针串口的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。

第三部分是电源部分。

15脚GND、16脚VCC(+5V)[5]。

其内部结构图如图4-10。

 

其引脚图4-11。

图4-11  MAX232引脚图

MAX232有两个通道,本设计选用通道1作为系统的通信通道。

 

4.5 系统总电路图

将各个模块整合起来,得到系统总的电路图,总电路图如图4-12。

图4-12  系统总电路图

 

5  数据采集系统软件设计

5.1 编程软件KeiluVision简介

KeiluVision是KeilSoftware公司出品的51系列单片机C语言软件开发系统,它使用接近于传统C语言来编程,与汇编语言相比,C语言易学易用,而且大大的提高了工作效率和项目开发周期,另外它还能嵌入汇编。

C51已被完全集成到uVision的集成开发环境中,这个集成开发环境包含:

编译器,汇编器,实时操作系统,项目管理器,调试器。

Keil有以下几个特点:

(1)全功能的源代码编辑器;

(2)器件库用来配置开发工具设置;

(3)项目管理器用来创建和维护用户的项目;

(4)集成的MAKE工具可以汇编、编译和连接用户嵌入式应用;

(5)所有开发工具的设置都是对话框形式的;

(6)真正的源代码级的对CPU和外围器件的调试器;

(7)高级GDI(AGDI)接口用来在目标硬件上进行软件调试以及和Monitor-51进行通信。

5.2 主程序设计

本系统的主程序有五个子程序,五个子程序分别为:

延时子程序Delay()、单片机初始化子程序Init()、ADC08009初始化子程序Init0809()、模数转换子程序ADC_0809()、字符处理子程序FillDispBuffer()、显示子程序Xianshi()、串口通信子程序UART_SER(void)interrupt4、ADC0809脉冲子程Interrupt1using0。

主程序对系统进行初始化,主要是ADC0809和定时器的初始化,然后调用模数转换子程序ADC_0809()测得8位的的二进制电压量后,调用字符处理子程序FillDispBuffer(),将8位的二进制电压量处理得到数码管各位的数值,再调用显示子程序Xianshi()将数据显示到三位数码管。

在程序运行时,根据上位机的控制信号,中断调用串口通信子程序UART_SER(voi

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1