基于VB6.0的燃料电池单片电压巡检系统的设计

发布者:caoxians4589最新更新时间:2014-11-21 来源: 21ic关键字:燃料电池  单片机  数据采集 手机看文章 扫描二维码
随时随地手机看文章

       1  引言

       燃料电池是21世纪最有望取代目前汽车燃油内燃机的新动力体系之一,它是一种将H2和O2的化学能通过电极反应直接转换成电能的装置。一个燃料电池堆是将多片电池片串联起来构成的,整个电堆的性能和单片电池电压有很大的关系。因此在燃料电池的研制中有必要采集不同条件下单片电池的电压值,通过分析找出H2和O2的反应环境和单片电池电压之间的关系。本文所要介绍的是作者单位正在进行的25kW燃料电池轿车项目中,燃料电池单片电压巡检测试、分析系统的设计。本系统的上位机软件采用VB6.0编程语言进行开发,该语言功能强大,具有面向对象和可视化编程,界面友好,特别适于在 Windows环境下图形界面和用户程序的编制,数据采集由多个以8位PIC单片机为核心的数据采集模块来完成。

       2  系统组成和工作原理

       本系统由上位机、主控单片机和若干个数据采集模块所组成,如图1所示。上位机为一台工业控制计算机,其主要功能是通过RS-232串口实现和主控单片机的通信,接收采集数据和发送控制命令;实时显示单片电池的电压值和绘制同一时刻单片电压变化趋势曲线;将测量数据分类保存到数据库,并具有对测量结果进行多种数学分析的功能。  主控单片接收来自上位机的控制命令

 系统组成图

图1     系统组成图

       实现对各个数据模块的控制,并将各个模块发来的数据通过RS-232串口转发给上位机。主控单片机和各个数据采集模块间采用RS-485总线进行通信,并设成主从结构,主控单片机设为主机,各个数据采集模块为从机。主控单片机在收到上位机的检测开始命令后,按照轮循的方式依次给各个数据采集模块发采集命令,在每发出一个采集命令后就等待接收该采集模块的采集数据,如果在等待时间内收到采集模块发回的采集数据,就将数据打包转发给上位机;如果等待超时仍然没有接收到数据就直接向下一个采集模块发采集命令,如此反复循环下去。

 

       各数据采集模块的软硬件构成是完全一样的,并通过RS-485总线实现和主控单片机的通信。每个数据采集模块在收到来自主控单片机的测试命令后开始对其负责测试的16片电池电压值进行采样,然后将采样所得的16片电池电压值打包一起发送给主控单片机。每一个数据采集模块能采集16片单片电池的电压,可根据电池片的总数相应地增减数据采集模块的数量。

       3  数据采集模块设计

       在本巡检系统中单片电池电压值的采集是由各个数据模块来完成。数据采集模块主要是以PIC16F873单片机为核心加一些外围电路构成如图2所示。PIC16F873单片机是Microchip公司生产的一款精简指令集(RISC),哈佛双总线和两级指令系统流水线结构的高性价比的8位嵌入式控制器,具有集成度高、速度快、工作电压低、功耗低、I/O直接驱动、指令简单易学易用等特点。其内置8k×14 Flash存储器,1个10位四输入通道A/D转换器,和一个UART。并可在线串行编程(ICSP),开发和使用都很方便,所需外围扩展器件少。在数据采集模块中多路模拟信号的输入是通过16路模拟开关CD4067来选择的,单片机通过I/O口RC1~RC4来选择具体那一路输入。由于单片电池电压一般比较低在0.5V~1.2V间,这个电压在CD4067的准许范围内,所以在CD4067的输入口没有加隔离电路。由于数据采集模块和主控单片机之间是通过485总线通信的,因此单片机的串口输入/输出要经过MAX485进行电平转换后才能接到485总线上。采样速率可由主控单片机控制。由于篇幅有限下位机软件设计在此没有提及。[page]

 数据采集模块原理图

图2     数据采集模块原理图

       4  上位机通信程序设计

       应用VB6.0内嵌MSComm控件只要通过简单的设置与编程,就能实现串行数据的发送与接收。MSComm控件提供了一系列封装好的标准串行通信的属性和方法,使用它可以建立应用程序和串口的连接,完成串行数据的发送与接收。其初始化属性设置如下:

       初始化属性设置

       下位机向上位机发送的数据帧格式如图3所示:

接收数据帧式  

图3     接收数据帧式

       每一帧数据由20个字节组成,依次是:一个字节的帧起始标志为FF;一个字节的数据组号;16个字节的数据;一个字节的校验和,校验和是组号和16个字节的数据间相互异或的结果;最后一个字节为帧结束标志为FD。16个字节的数据中每个字节表示一片电池的电压值,为0~255的一个整数,将该数除以100及得到电压实际值,一般单片电池电压在0.5V~1.2V间。用MSComm进行串行通信接收数据时可采用两种方式实现,一种是查询方式,另一种是事件触发方式。在本系统中选择的是事件触发方式,每当接收缓冲区中数据字节数到达20个时就触发一个接收事件。接收通信程序如下:

       接收通信程序

 

       此要注意的一点是从缓冲区读数据时,数组InputData()一定要定义成Byte类型不能为Integer或Single,因为接收模式设置为二进制。上位机发送的指令较少也很简单在此就没有仔细分析。

       5  结束语

       燃料电池作为21世纪前景比较看好的一种新的、洁净型能源,有关它的各项技术的研究都有助于推动它向实用阶段进一步发展。本文在单片电压的检测和分析系统的设计上作了一些工作。虽然是面向燃料电池的,但也可借鉴到其它类似的多点检测和控制系统的设计当中去。  

关键字:燃料电池  单片机  数据采集 引用地址:基于VB6.0的燃料电池单片电压巡检系统的设计

上一篇:Microchip宣布推出全新单片机系列
下一篇:Microchip宣布推出全新单片机系列PIC16(L)F161X

推荐阅读最新更新时间:2024-03-16 13:47

用51单片机写个电动小风扇方案
接下来我将为你介绍如何使用51单片机来实现一个简单的电动小风扇。 1、硬件准备 首先,我们需要准备好以下硬件: 51单片机主板 直流电机 驱动模块 电池盒或电源模块 一些导线和杜邦线 2、电路连接 接下来,我们需要将这些硬件进行连接。具体连接方式如下: 将直流电机连接到驱动模块上,驱动模块需要根据电机的电压和电流进行选择。 将驱动模块的输入端连接到单片机主板上的某个IO口,用于控制电机的开关。 将电池盒或电源模块连接到单片机主板上,用于提供电源。 连接完成后,检查一遍电路是否连接正确,然后进行下一步。 3、编写代码 现在,我们需要编写控制代码来控制电机的开关。以下是一个简单的示例代码: #include
[单片机]
用51<font color='red'>单片机</font>写个电动小风扇方案
基于C8051F410单片机实现集装箱的安全监测装置与系统设计
引言 随着当前物流行业的快速发展。作为物流主要运输方式的集装箱运输.其运输效率及货运安全性日益受到人们关注。近几年来,随着RFID技术的发展和推广,将RFID技术用于集装箱信息识别.实现集装箱运输的智能化已经成为各集装箱厂家竞相开发的目标。RFID技术是一种利用射频通信方法实现的非接触式、快速、实时和准确的采集与处理信息的自动射频识别技术。目前集装箱运输上对RFlD技术的应用仅仅限于利用阅读器射频信道识别电子标签内集装箱信息.并有实现其运输安全上的保证。本文设计了一种基于C8051F410单片机的双频固定式阅读器。该阅读器与智能集装箱安全设备及路标设备配合实用.不仅能快速识别集装箱信息,而且能监测集装箱内货物的安全。一旦集装箱被非
[单片机]
基于C8051F410<font color='red'>单片机</font>实现集装箱的安全监测装置与系统设计
STC89C52单片机引脚对应的功能以及实例讲解
先附上一张stc89C52引脚图 光看引脚是不够的,下面我们看看实物图是什么样子的 一、P1^0~7 对应八个二极管 二级管的实物图如下 从上往下 分别对应引脚中的 P1^0 ~ P1^7 这里就以一个比较简单流水灯作为实例代码 #include reg52.h #include intrins.h //包含_crol_函数所在的头文件 #define uint unsigned int #define uchar unsigned char void delayms(uint); uchar aa; //定义一个变量来给P1赋值 void main() { aa=0xfe;//赋初值1111
[单片机]
STC89C52<font color='red'>单片机</font>引脚对应的功能以及实例讲解
单片机典型案例开发(四)
  1. 引言   单片机系统以其简单、高效的特点,在工业控制和日常生活中应用越来越广泛。目前大多数单片机系统是以51 单片机为核心,与检测、伺服、显示设备配合起来实现监控功能。   然而,这些监控系统的数据传输多采用RS-232、RS-485 以及各种现场总线,这些方式有些通信速度不够快,有些距离不够远,且各种总线之间难于实现互连和互操作。以太网作为目前应用最为广泛的局域网,在工业自动化和过程控制领域得到了越来越多的应用。同时,随着Internet 的普及,现代通信技术的进步,基于TCP/IP 和Client/Server 架构的分布式监控技术也日趋成熟。把嵌入式系统连接到Internet 上,就可以方便、低廉地把信息传送到
[单片机]
<font color='red'>单片机</font>典型案例开发(四)
AVR单片机ADC实验
#include iom128v.h #include macros.h volatile unsigned char i=0x00; /*-------------------------------------------------------------------- 程序名称:AD转换初始化程序 程序功能: 注意事项: 提示说明: 输 入: 返 回: --------------------------------------------------------------------*/ void adc_init(void) { DDRF=0X00; PORTF=0X00; DDRC=0XFF;
[单片机]
基于STC12C56系列单片机的AD转换C程序
/**************** STC12c56 AD转换 入口参数:通道数(0,1,2,3,4,5,6,7) 返回值: AD转换结果 *****************/ #include reg51.h sfr ADC_CONTR=0xc5; //AD转换寄存器 sfr ADC_DATA=0xc6; //AD转换结果寄存器,为10位 sfr P1M0=0x91; sfr P1M1=0x92; /*************************** 微秒延时函数 ********************************/ void delay_us(unsigned int i)//延时 如果需要
[单片机]
80C51单片机的总线结构、逻辑结构及内部结构
MCS-51是Intel公司生产的一个单片机系列名称,该系列生产工艺有HMOS和CHMOS这两种,CHMOS是CMOS和HMOS的结合,既保持了HMOS的高密度和高速度,还具有CMOS低功耗的特点。 在产品型号中,带有字母C的即为CHMOS芯片,如80C51,该类型芯片的电平既与TTL兼容,又与CMOS电平兼容。 在片内程序存储器的配置上,该系列单片机有3种形式,即掩模ROM、EPROM或Flash和ROM Less(无片内程序存储器)。 80C51是MCS-51系列中采用CHMOS工艺的一个典型品种,各厂商以80C51为基核(内核)开发出的CHMOS工艺单片机产品统称为80C51系列。 当前常用的80C51系列单片机
[单片机]
80C51<font color='red'>单片机</font>的总线结构、逻辑结构及内部结构
NXP针对高速数据采集应用推出LPC4370
采用 204-MHz ARM Cortex-M 处理器的单芯片在 MCU 上配备最快的 12 位 ADC 中国上海,2013 年 11月6 日讯——恩智浦半导体 (NXP Semiconductors N.V.)(纳斯达克代码:NXPI)近日宣布推出高性能 LPC4370 微控制器,这是一款完整的单芯片高速数据采集应用解决方案。LPC4370 由业界最快的 204-MHz ARM® Cortex™-M4 处理器驱动,还配备了目前在 Cortex-M 微控制器上最快的 12 位 ADC,采样率高达 80 Msps。此外,LPC4370 还有一个用于卸载控制和 I/O 任务(诸如处理 USB 堆栈等)的 204-MHz Cortex
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved