积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 单片机 >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
基于VB6.0的燃料电池单片电压巡检系统的设计
 
作者:杨爱民 宋仲康   来源:PLC&FA    点击数:85   更新时间:2008-4-24
您可以添加到网摘 让更多人关注此文章:

    

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总线上。采样速率可由主控单片机控制。由于篇幅有限下位机软件设计在此没有提及。

图2     数据采集模块原理图

4  上位机通信程序设计
应用VB6.0内嵌MSComm控件只要通过简单的设置与编程,就能实现串行数据的发送与接收。MSComm控件提供了一系列封装好的标准串行通信的属性和方法,使用它可以建立应用程序和串口的连接,完成串行数据的发送与接收。其初始化属性设置如下:
If MSComm1.PortOpen=True Then
MSComm1.PortOpen=False
End If
MSComm1.CommPort=CommNum ‘串口号
'9600波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.Settings="9600,N,8,1"
MSComm1.InputLen=0
MSComm1.RThreshold=20  ‘接收数据门限
MSComm1.SThreshold=0 ‘发送完不成生事件
MSComm1.InputMode=comInputModeBinary
‘通信为二进制模式
MSComm1.PortOpen=True ‘打开串口
MSComm1.InBufferCount=0 ‘清空接收缓冲区
MSComm1.OutBufferCount=0 ‘清空发送缓冲区
下位机向上位机发送的数据帧格式如图3所示:

图3     接收数据帧式

每一帧数据由20个字节组成,依次是:一个字节的帧起始标志为FF;一个字节的数据组号;16个字节的数据;一个字节的校验和,校验和是组号和16个字节的数据间相互异或的结果;最后一个字节为帧结束标志为FD。16个字节的数据中每个字节表示一片电池的电压值,为0~255的一个整数,将该数除以100及得到电压实际值,一般单片电池电压在0.5V~1.2V间。用MSComm进行串行通信接收数据时可采用两种方式实现,一种是查询方式,另一种是事件触发方式。在本系统中选择的是事件触发方式,每当接收缓冲区中数据字节数到达20个时就触发一个接收事件。接收通信程序如下:
Private Sub MSComm1_OnComm()
Dim InputData() As Byte
Dim strSum  As Byte
Dim i As Integer
Dim Volvalue(0 To 18) As Single
With MSComm1
Select Case .CommEvent '判断通信事件
comEvReceive:       '收到20字节的数据
InputData = .Input  ‘读接收缓冲区
If InputData(0) = 253 And InputData(18) = 237 Then ‘判断收到的帧格式正确否
For i = 1 To 17 Step 1
Volvalue(i) = InputData(i)
Next I
strSum = InputData(1)
For i = 2 To 17  ‘计算校验和
strSum = InputData(i) Xor strSum
Next I  ‘将接受数据校验和与发送校验和异或
If strSum = "0" Then ‘如果接收数据正确
Volvalue(N) = InputData(i) / 100
‘换算得到电压实际值
…………数据处理
Case Else
MSComm1.InBufferCount = 0 ‘清空接收缓冲区
MsgBox "串口通信错误"
Exit Sub
End  Sub

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

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



相关文章
· 基于C8051F的OLED控制电路的设计[12]
· 基手单片机8089的超声波电源控制技术的研究[11]
· DSP和FPGA构成的感应发电机励磁控制系统[18]
· DSP和FPGA构成的感应发电机励磁控制系统[22]
· 基于单片机的自动血压监控系统设计原理[12]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
Camstar帮助中国医疗器械制造商
中华英才网将被全盘收购
破国外垄断 中国移动存储标
IC设计面临三重挑战 ED
手机电视芯片方案需求多变
北京德尔威科技有限公司与台湾佳营电子
全球手机芯片市场战局将出现重大变革
北京奥运安保系统首次成功运用射频识别
英特尔开发空气传电技术
IBM生产出首个22纳米工艺SRAM
 
热门下载 [更多]
 
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
[ ] 实用电源电路集锦
 
论坛新帖 [更多]
 
液晶问题...
[原创]本公司长期批发各种滑冰...
[原创]本公司长期超低价批发各...
[原创]本公司长期超低价批发种...
[原创]本公司长期批发各种酒、...
[原创]本公司长期低价批发各种...
[原创]长期低价批发各种母婴用...
[原创]本公司长期批发各种饮料...
[推荐]通讯上通用的一个GSM...
用两个电容代替一个?...

 
赞助商 [更多]
 


ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网