系统简介
近年来,伴随着城市工业和经济的发展,空气中的污染问题日渐突出,空气质量受到了人们越来越严密的关注。由于汽车室内的装饰材料等含有甲醛、苯、TVOC等有机污染物超标,使得汽车室内空气中的灰尘、细菌、病毒、有毒化学物危害着人们的身体健康。近期有很多研究表明汽车室内往往存在着甲醛、苯、TVOC等有机污染物超标的情况,对人体造成了尤为严重的伤害。目前改善室内空气质量的方法以空气净化器为主,空气净化器被广泛应用,是一种国际公认的方法。本文采用目前主流的空气净化技术及高效率的太阳能充电技术设计的一种综合型设计。
本文开发设计的轻量级太阳能车载空气净化器,利用了模块结构理念设计,运用MPPT和锂电池充电技术对本系统进行供电,采用气体传感器技术,采集汽车室内的空气质量数据,利用高速MCU赛元微单片机作为中央理器,通过中央理器控制负离子发生器释放负离子来对汽车室内的空气进行净化。首先,联合系统设计需要,采用了赛元微单片机中的SC92F8003作为系统中央处理器,并且对气体传感器等模块结构的需求进行选型,完成系统基本方案的设计;其次,对系统的电路部分分模块结构进行初步设计,主要包括电源电能转化模块、气体传感器模块、风机驱动控制模块、负离子净化模块以及人机交互模块等,并进行PCB样板的设计;再次,对系统的软件部分进行初步设计,在完成模块选型和硬件电路初步设计的基础上,介绍系统软件主要程序功能;最后,运用了实物软硬件结合模块结构化调试的方式,进行系统软硬件的调试工作。本设计开发的轻量级太阳能车载空气净化器具有环保、节能、可视化、及其价格亲民等特点。在本设计开发与研究阐明,轻量级太阳能车载空气净化器计思路符合工程设计和市场需求。
关键词:车载,负离子,太阳能,空气净化器
第1章 绪 论
1.1系统开发的背景及意义
社会高速发展的条件下,空气质量问题日渐突出,其主要有两个方面的原因:1、空气质量污染源种类增多;2、自然环境的自我恢复能力减弱。在日常生活中,生活垃圾焚烧处理产生了大量灰尘、二氧化硫、一氧化碳、二氧化碳、氮氧化物等有害污染气体污染环境[唐晓波,王永清.城市空气污染治理的有效思路探索[J]. 2015];化工厂的废水、气体处理不当,随意排放;装修材料中含有各种微量有害有毒等的元素等,都是空气质量问题日渐严重的原因之一。此外,人们的乱砍滥伐导致大自然的自我恢复能力减弱,全球空气质量问题面临着严峻考验。我国处于发展中国家,工业化的普及也带来诸多空气质量的问题。
人们向往美好的生活,健康、环保的意识逐渐提高的同时更注重生活质量。空气质量问题给人们健康生活带来诸多不利,同时国家层面有关部门也出台了一系列改善环境问题的政策。在人们追求更加美好生活的同时,汽车已经深入人们的生活方式并已经成为人们生活的一部分。与室内空气质量问题相比,人们更加关注室外环境的空气质量问题,因而很大程度上忽略了室内空气质量问题,尤其是汽车室内空气质量问题。汽车大部分时间都处于相对密闭环境下,汽车内装修材料中混有甲醛、苯等有毒物质,经过长期室内密封的环境和自然环境作用下,使得汽车室内的有毒有害物质挥发出来,导致汽车室内空气含有相对较高浓度的有害气体,人们长期处于此类环境下会对生命健康产生较为严重的影响。
本课题主要研究解决汽车内空气质量情况的问题,分析国内外目前市场的空气净化器的优劣,有目的性地改善目前车载空气净化器的劣势,作为市场的一种补充。轻量级太阳能车载空气净化器采用不同的设计方案进行理论分析,并将两种不同的方案结合市场需求综合进行评估,总结出最优的方案,从而减少汽车内空气中的有毒有害气体,解决改善汽车室内空气质量的问题,提高人们的生活水平。因此轻量级太阳能车载空气净化器的设计很有意义。
1.2 国内外研究状况
1.2.1国外研究状况
国外对车载空气净化技术的研究起步早于国内,发展相对完善。日本在20世纪80年代开始开发空气净化技术,而欧美国家的空气净化器研究更是提早到了20世纪40年代和50年代。因此,国外空气净化技术相对完善,净化效率相对较好,住宅利用率相对较高。
从净化污染物上看,在经历了经济高速发展带来的空气污染的阵痛以后,欧美国家大气状况一直保持在非常理想的水平,室内空气污染物分为:悬浮颗粒物和气态污染物[李晓东.朔黄铁路综合调度楼新风净化方案讨论[J].神华科技,2017]。故目前空气净化器多以拦截大颗粒污染物为主,很少考虑可吸入颗粒物、装修污染造成的有机挥发性污染物等。
从国家标准上看,欧美及日本等国家对空气质量评价和净化器性能评价方面设定了清晰、明确、严格的国家标准,并且随着市场发展不断更新完善,对指导净化器技术发展、规范净化器销售市场行为起到了积极的引导。
从生产企业上看,国外的夏普、松下、戴森、飞利浦、霍尼韦尔等知名企业都积累了先进的生产专利技术和丰富的市场经验,在全球销量处于领先水平。我国的老牌企业亚都、美的、格力等和互联网新生代企业小米等也在加大投入力度,在空气净化器研发上有迎头赶超之势。
1.2.2国内研究状况
目前我国空气净化器的生产技术在吸收学习国外先进的空气过滤净化技术的基础上,积极开展对静电吸附技术、PM2.5净化技术、活性炭吸附技术、HEPA高效过滤技术、负离子技术等技术的研究与开发[杨乾.基于AVR的多功能室内空气净化器设计[D].合肥:合肥工业大学机械工程学院,2015]。负离子净化器是目前被世界各国公认的安全、可靠、效果显著的空气净化器之一,主要通过风机加快室内空气流动使空气中有害有毒气体流过HEPA、活性炭等前置过滤介质对其进行吸附,再经过负离子发生器所产生的负离子物质对空气进行净化、除尘、除味和灭菌等。我国在80年代开始引进负离子发生器,并展开对有关方面的技术研究。国产的初代负离子空气净化器主要是产品单一,仅装有负离子发生器,而无其它辅助净化方式,完全依靠负离子净化空气,且初代产品负离子效率低,浓度低,在距离发生器5cm处的位置测量,负离子浓度平均仅为18~22万个/cm3,臭氧浓度严重超标,消费者有咽部不适的症状发生。二代负离子发生器提升了负离子浓度,在距离发生器5cm处的位置测量,负离子浓度平均为50~70万个/cm3,但臭氧浓度依然严重超标。从二代产品开始,欧洲、美国、日本等国家开始控制负离子空气净化器的行业准入制度。在美国,臭氧浓度一旦超出国家标准即判定产品不合格。三代负离子空气净化器在提升了负离子浓度的同时解决了臭氧浓度超标问题,在距离发生器5cm处的位置测量,负离子浓度达到100万个/ cm3,并且开始增加诸多辅助净化方式,如HEPA、活性炭吸附等。目前负离子空气净化器的负离子浓度,在距离发生器5cm处的位置测量,负离子浓度达到1000万个/cm3以上,在距离发生器50cm处的位置测量,负离子浓度依然能达到150万个/cm3左右,且臭氧浓度控制在0.1mg/m³以下。
1.3课题的主要研究内容
1.3.1总体任务
本设计主要任务是设计开发出一款基于SC92F8003单片机的轻量级太阳能车载空气净化器。本设计运用了模块结构化设计思想,图1-1为系统总体流程图。
图1-1系统总体流程图
1.3.2系统整体设计
本设计系统可分为电源模块、TVOC测量检测模块、负离子净化模块、风机驱动模块、人机交互模块、MCU中央处理与其它外围电路等模块电路及程序。
1、电源模块:本模块分为USB主电源系统和MPPT(Maximum Power Point Tracking最大功率点跟踪)辅电源系统,为锂电池充电。目前现有的汽车电源接口多为DC12V或者DC24V,在微处理器中以5V居多,TVOC测量检测模块、负离子净化模块、风机驱动模块、人机交互模块的电源系统均为5V供电。因此,需要车载充电器作为电源中继。
USB主电源系统采用微盟的ME4055作为主充电芯片。微盟的ME4055是一款具有电池正负极反接保护,采用恒定电流,恒定电压线性控制的单节锂离子电池充电芯片。其SOT23-6封装外围元件数目需求相对少,使得电路设计更为方便。ME4055性价比高,作为锂电池电源适配器相对理想。
MPPT辅电源系统,即是指控制器能够实时侦测太阳能板的发电电压,并追踪最高电压电流值(VI),使系统以最高的效率对蓄电池充电[武晓伟,王亚军,黄小贤等.智能型LED太阳能路灯系统的设计[J].能源与环境,2010]。MPPT应用于光伏发电中,利用可再生资源以最大的充电效率对蓄电池进行补充电能,减少充电时间,减少不可再生资源的浪费,提高充电效率。
2、TVOC测量检测模块:本模块采用了深圳市惠联智控的KQM2800A型空气质量检测模块作为TVOC测量检测模块。此模块是用于检测空气中包含有机化合物的气体的模块。模块包含一颗高灵敏度的VOC传感器,以及一颗32M主频的高性能51内核MCU。内部集成12bit高精度AD转换,以及100万次擦写次数的EEPROM。模块完善的傅里叶转换及分离算法,极好的抑制传感器受各种因素导致的漂移。
3、负离子净化模块:本设计采用了晶雍JY-A-C133负离子发生器。该负离子通过高压放电,通过电解空气中的TVOC等有害气体中和带正电的空气飘尘无电荷后沉降,配合HEPA过滤网将有害气体过滤,使空气得到净化。
4、风机驱动模块:本模块采用了台湾台达(Delta)NS55B06四线鼓风机作为风机驱动模块。它具有五万小时超长寿命,滚珠轴承,超静音,闭环回路控制,防尘防水,风量大等特点。
5、人机交互模块:本模块采用OLED作为显示器。OLED具有高亮度,操作简单,可显示汉字、ASCII、图案等。OLED功耗相对比较低,不需要背面光源,自带高对比度,可视化优越。本模块用的显示器是天骑士的12864OLED显示模块。
6、MCU中央处理:本设计中以赛元微电子的SC92F8003作为中央主控芯片。 SC92F8003的内部资源丰富,满足本设计所需求。SC92F8003拥有高性能的抗干扰性能,适合应用于各种物联网控制、大小智能家电和智能家居消费应用领域。
1.4系统设计的软硬件环境
本文基于SC92F8003单片机的轻量级太阳能车载空气净化器的设计采用的软硬件环境如下:
1、硬件环境:
电脑、SC92F8003芯片、SCLink仿真器,各类模块及传感器、基本的电子元器件、电焊铁及热风枪、示波器、万用表,隔离电源,负载仪器,TVOC测试仪器,低压太阳能光伏PV板及模拟汽车室内环境箱子等;
2、软件环境
主要包括:设计软件Altium Designer 2017;SC92F8003单片机程序编写软件keil5,串口助手等。
第2章 系统总体设计方案
本系统采用了SC92F8003嵌入式单片机,主要目的是对汽车室内空气环境质量,通过TVOC测量检测当前汽车内当前环境中空气所含有的挥发性有机物及烟尘的总浓度,经过中央处理器处理后反馈到显示器,并且通过中央处理器对相应的外设工作,从而达到自动净化汽车室内空气的目的。
本系统基本方案设计运用了模块结构化思想,优先对硬件所需要的资源进行了选型,接着对硬件功能模块结构化电路进行原理设计和PCB布局走线,最后进行软件功能模块结构化驱动设计。本设计分为两大部分,一为硬件部分,二是软件驱动设计,然后软硬件功能模块结构化调试,实现各个模块功能,最后统筹兼顾各个模块之间的关系逻辑,实现系统总体调试,验证系统功能的实现。
2.1微处理器的选型
在本系统中,所选择的中央处理器必须满足处理速度快,可靠性高,功耗低和成本低的特点。因此,所选择的中央处理器与现有的中央处理器相比,需要选择满足上述条件的单片机作为系统中央处理器。系统的硬件设计和市场的状况,要求将产品的总体的成本尽可能保持低水平状态,以方便产品的推广,增加产品的销量。在产品开发层面,选择一款适合本产品的中央处理器尤为重要。系统的性能高并不表现于产品的价格,而是根据实际的需求。市场上有着各种各样的微处理器芯片,目前常见的消费类电子产品的MCU有4位微处理器(开发难度相对较高,可移植低)和8位微处理器。8位微处理器主要包括51系列(如宏晶STC89C等),AVR微处理器,合泰微处理器,中微芯成,九齐等。而16位微处理器有德州仪器等,32位的微处理器有STM32系列等,但此类处理器均为中高端微处理器,在价格方面不适宜作为本设计的微处理器。51系列的SC92F8003在8位微处理器中表现优秀,处理速度快,通用性强,支持C语言开发,容易开发,内部资源我和外设接口丰富,以及价格亲民化,性价比高,易被市场接受。因此选择SC92F8003作为本设计的微处理器,符合设计和市场所需要。
2.2 TVOC测量检测装置的选型
本装置采用了深圳市惠联智控的KQM2800A型空气质量检测模块作为TVOC测量检测模块。该模块的作用是检测空气中所含有机化合物气体总浓度的模块。模块包含一颗高灵敏度的VOC传感器,以及一颗32M主频的高性能51内核MCU。 内部集成12bit高精度AD转换,以及100万次擦写次数的EEPROM。模块完善的傅里叶转换及分离算法,极好的抑制传感器受各种因素导致的漂移。
2.3 MPPT辅电源装置选型
本设装置选用宇芯晟电子的CN3791芯片模块作为MPPT辅电源系统。本设计采用宇芯晟电子的CN3791芯片模块作为MPPT辅电源系统。CN3791是一款自带PWM降压型芯片,具有涓流,恒流和恒压充电模式,采用ESOP8封装,需要外设元件相对比较少,适合运用在轻量级光伏发电对单节锂电池充放电管理。
2.4系统总体方案设计
本文开发的轻量级太阳能车载空气净化器系统拥有节能环保,净化效果高,人性化,智能化等诸多特点,其主要由以下模块构成:
1、电源模块:由锂电池和太阳能共同为本系统提供电源;
2、TVOC测量检测模块:主要实现检测当前汽车室内环境下,空气中所含有机化合物气体和烟尘的总浓度;
3、负离子净化模块:中央处理器控制电子开关,使负离子净化模块工作,释放负离子达到空气净化的作用;
4、风机驱动模块:主要起是加速车内流动的作用;
5、人机交互模块:主要作用是提供人机交互界面和交换方式。
系统的总体设计框图如图2-1所示:
图2-1系统的总体设计框图
2.5本章小结
本章开章先介绍本设计的需求,简单分析了不同的微处理器在行业上应用的情况,并简易通过对比,最终选择了51系列赛元微的SC92F8003作为本系统的微处理器。接着对系统设计所需求的TVOC测量检测模块和MPPT辅电源设备进行了筛选,最后对系统简单进行了总体设计,本设计采用模块结构化,将整个系统分为若干个小模块进行设计,简易阐明各个模块在本设计的作用。
第3章 系统硬件设计与实现
3.1系统硬件设计概述
在前章中,介绍了系统的总体设计,并选择了系统的微处理器和传感器,本章根据系统总体设计方案所需要,采用模块结构化设计思路,分别对硬件电路的各个功能模块进行硬件电路设计,其中主要包括电源电路模块、TVOC测量检测模块、负离子净化模块、风机驱动模块以及人机交互模块硬件电路设计等。
本设计采用 Altium Designer2017设计工具,首先对系统进行了硬件原理图设计,再进行硬件电路PCB板进行布局走线和优化 ,最后采用了实物验证的方法对各个模块间进行独立测试,在完成独立测试之后,整合各个模块,完成系统硬件电路设计。
3.2各模块硬件电路的设计
本设计的硬件电路设计考虑到系统的稳定性,安全性,产品的研发和生产成本,硬件电路尽可能减少外围电子元器件的使用。硬件电路设计大部分采用现有的集成芯片,增强抗干扰能力,降低产品的成本,优化电路设计,提高系统的反应速度和可靠性。下面对各个模块分别进行了电路设计。
3.2.1电源模块
电源作为电子产品中最重要的一部分,为电子产品提供能源。目前大部分的汽车电源为12V。本设计需要一个车载充电器DC12V转DC5V作为系统外部供电和充电。本系统所有模块均支持5V工作。原理图如图3-1、图3-2所示:
图3-1锂电池充电及升压原理图
图3-2 MPPT辅电源模块原理图
ME4055最大可编程充电电流设定可达800mA,集成了二极管和电流检测电阻,自带反接保护。ME4055内部集成热反馈电路,在过载充电或者芯片工作温度过高,芯片主动降流充电,使得芯片的功率降低,保护芯片不被损坏,提高了芯片的可靠性。为了安全性能,充电电流不允许长时间处于满负荷条件工作,根据充电电流设置公式:Ibat=(Vprog/Rprog)*1270,本设计的充电电流为500mA。再利用ME4055包含有漏级开路输出的状态指示端CHRG作为判断电池充电状态信号传送给中央处理器处理。以下简述ME4055的充电过程原理。
当外部输入电压大于电压欠压保护阈值且使能端处于高电平时,ME4055开始给电池充电,此时CHRG引脚处于低电平状态。如果电池电压低于2.9V,充电器将会对电池涓流预充电,当电池电压超过2.9V时,ME4055将会自动使用恒流模式对电池进行充电。当电池电压接近4.2V时,充电电流逐渐减小。当电流降低到充电结束阈值(即恒定电流模式时的百分之十)时,充电结束,此时CHRG端口为高阻抗状态,STDBY则为低电平。
当电池电压下降到充电阈值以下时,同时外部电源在接入情况下,ME4055自动开始对电池新一轮的充电。为保证电池电压的精度在1%以内,芯片内部自建有超高精度电压基准电路,误差放大电路和电阻分压网络电路等误差处理电路。当输入电压低于电池电压时,ME4055将会进入睡眠模式,漏电流低至2uA,降低电池的非需要的功耗。如果使能端接低电压平,芯片将停止充电。
可编程充电电流是由PROG引脚与GND之间的电阻器来配置的。
根据充电电流设置公式:Ibat=(Vprog/Rprog)*1270。
本设计的USB主电源系统的充电电流理论值设计为635mA。
参数 范围 单位
VCC,VG,DRV,CHRG,DONE 到 GND 的电压 -0.3~30 V
VG 管脚到 VCC 管脚电压 -8~VCC+0.3 V
CSP,BAT,MPPT,COM 到 GND 的电压 -0.3~6.5
V
存储温度
工作环境温度 65~150
-40~85 ℃
℃
焊接温度(10 秒) 260 ℃
表3-2 CN3791绝对最大额定值
CN3791是具有PWM降压型太阳能最大功率点追踪(MPPT),由太阳能发电电池组组成的PV板驱动的单锂电池充电管理集成电路。CN3791具太阳能最大功率点追踪特点的同时也具备有涓流充电模式,恒流充电模式和恒压充电模式。充电模式由CN3791的CSP引脚和BAT电池引脚之间的电流采样电阻设置的。CN3791的涓流充电模式,恒流充电模式和恒压充电模式原理与ME4055相同。以下简要阐述CN3791的MPPT理论和应用设计。
当太阳能发电电池组组成的PV板提供的电流输出能力降低时,CN3791内部电路能够自适应追踪太阳能发电电池组组成的PV板的最大功率点,用户不需要考虑因外部天气干扰的原因而导致功率不足的问题。
CN3791使用恒压方法跟踪太阳能发电电池组组成的PV板的最大功率点。在太阳能发电电池组组成的PV板的伏安特性曲线中,当环境温度恒定时,在不同的日照强度下,最大功率输出点对应的输出电压基本相同,即只要太阳能电池板的输出端电压保持恒定,在该温度下光照强度不同时,太阳能电池板可以输出最大功率。CN3791对PV板最大功率点跟踪端的MPPT引脚电压调制为1.205伏,通过匹配芯片外的反馈电阻MR2和MR3组成的分压网络,可以跟踪PV板的最大功率点。根据公式:VMPPT=1.205×(1+R3/R4)可以编程设定PV板的最大功率点。
当输入电压掉电时,CN3791自动进入睡眠模式,内部电路被关断。图
3.2.2 TVOC测量检测模块
本模块采用深圳市惠联智控的KQM2800A型空气质量检测模块作为TVOC测量检测模块。如图3-5所示:
图3-5 TVOC测量检测模块实物图
KQM2800A通过VOC传感器对空气中污染气体进行采样,并采用高性能高速MCU进行AD采集,将采集数据按周期作傅里叶形变换,转换后的频域数据通过与数据库中保存的各种漂移频域数据作分离处理,将采集的频域数据中受温度湿度气压以及其他漂移的频域部分幅值移除,再将处理后的频域及幅值合成为真实污染数据,通过串口或者分级输出,实现对空气质量的检测。
本模块上电的时候,需要一个3到5分钟的预热过程,此过程传感器需要加热到稳定状态,不同环境下加热温度有差异。通常温度越低以及停止使用时间越久,预热稳定时间越长。模块综合设定为3分钟时间,期间模块会不停进行傅里叶形变换,矫正环境误差和传感器的漂移误差,并且模块输出数据为最大值0xffff(KQM2800 AU)或者0级污(KQM2800 AS),低电平输出(KQM2800 AP)。3分钟后输出相对稳定的结果数据。当长期未使用(包括第一次使用)或者地理位置发生变化导致环境差异较大,因传感器特性需要延长预热时间,通常需要5-10分钟。其后的上电预热时间按照标准3分钟即可。
3.2.3负离子净化模块
负离子净化模块是一种能电解空气的分子,使空气中的分子分解成电负离子和正离子的设备,该设备将输入的直流或交流电经EMI处理电路及雷击保护电路处理后,通过脉冲式电路,过压限流;高低压隔离等线路升为交流高压,然后通过特殊等级电子材料整流滤波形成纯净的直流负高压,最后将直流负高压连接到金属的等物质上来实现尖端放电,从而产生了大量的电子( e-),然而电子在空气中的存活时间很短(一般只有nS级),所以电子很快会被空气中的氧分子(O2)氧化,于是便形成了空气负离子。负离子净化模块通过中央处理器控制工作,释放负离子,使汽车室内空气达到净化的效果。下图所示为负离子发生器的组成图
负离子具有以下作用:
①杀菌功能:负离子发生器在产生负离子的同时会伴随着产生少量的臭氧,臭氧是自然界很好的氧化剂,结合负离子更易吸附各种病毒、细菌,从而达到杀死细菌、病菌、微生物等物质的目的。
②净化空气、消除烟尘:负离子带的负电荷与空气中的烟雾尘埃带的正电荷进行中和,自然形成沉积,从而起到净化空气,消除烟尘的目的。
③使人精神振奋,改善睡眠:经负氧离子作用,可使人精神振奋,改善睡眠,同时具有镇痛等作用[黄锦文.新型车载智能空气净化器系统的开发设计与实现[D].江西:江西理工大学机电工程学院,2011]。
3.2.4风机驱动模块
普通风机内部主要由电机驱动电刷来实现电流换向,要定期清理碳刷,且运行摩擦损耗较大、发热量高,影响电机寿命,降低输出效率。台湾台达(Delta)NS55 B06四线鼓风机作为风机驱动模块,它具有五万小时超长寿命,滚珠轴承,超静音,闭环回路控制,防尘防水,风量大等特点。
3.2.5人机交互模块
传统的1286LCD显示器屏,需要背光且功耗高,而OLED( Organic Light- Emitting Diode)功耗低、更加适合小型系统。由于两者发光材料的不同,OLED在不同的环境中显示效果更好,模块供电可以是3.3 V或5 V,且不需要修改模块电路。OLED屏具有多个控制指令:可控制OLED的亮度、对比度、开关升压电路等指令,操作方便、功能丰富,可显示汉字、ASCII、图案等。
为了节省中央处理器的IO引脚,提高应用效率,本设计对人机交互模块采用IIC通讯方式进行通讯。
图3-12人机交换模块原理图
3.3 PCB板的设计
1、基于Altium Designer 2017的PCB电路板设计
上文简要地分析了每个硬件电路模块的设计,从实际运用出发,综合考虑到生产成本和产品结构,设计出的系统所需要的电子元器件均采用贴片封装,去除后焊加工,提高生产效率,降低生产成本。将根据每个电子元件对应的封装,结合各个模块导进 PCB板上,进行PCB布局和走线。
图3-13 PCB电路图
图3-14 PCB样板实物图
图3-15 PCBA样板实物图
采用Altium Designer2017的PCB电路设计工具进行设计原理图和PCB布局走线,在完成初样PCB板样设计后,将PCB生产资料送达PCB线路厂直接生产加工。初样完成后,PCB存在一些问题。
在一个电子设备中,导致电子系统的稳定性的差异是一个综合因素。系统的稳定性主要因素有电子元器件的品质,电子元器件之间的选型及配合,电子模块的设计,PCB板的布局及走线,PCB生产加工的材料和工艺精度要求等方面因素。为了提高系统的稳定性,增强抗干扰能力,PCB设计需要主要以下几个方面。
1.确定PCB印刷电路板的外形尺寸。元器件优先单面放置。需要双面放置元器件,在底层(Bottom Layer)位置错位放置一些轻元器件。
2.高压元器件与低压元器件之间应该要设置较宽的的电气隔离或者物理隔离。
3.合理布局接口元器件的位置和方向。接口元器件是PCB板与其他外围电子元件或模块进行通讯或外围为PCB提供电源等作用。此类元件应该放在PCB板边缘上,方向一直水平或者垂直摆放。
4.对于易产生噪声的元件,例如电感,晶体振荡器等高频电子元器件或者感性元器件,大电流电路元件和开关电路等容易产生噪声干扰,应该被隔离放置,此类元件不允许大面积敷地线,尽可能远离信号线或独立成模块,增强抗感染能力。对于石英晶体振荡器,应该尽可能靠近中央处理器的时钟信号输入引脚。从整体上提高电路板的抗干扰能力和系统可靠性。
5.各个功能模块应该设置测试点。
3.4本章小结
本章首先依据本系统的总体设计方案,分别对电源模块、TVOC测量检测模块、负离子净化模块、风机驱动模块、人机交互模块等模块的硬件电路进行了分析与设计,其次对基于Altium Designer 2017PCB电路设计软件对本系统的原理图制作和对PCB布局走线进行了设计,最后对PCB存在的问题进行简单的分析工作。
第4章 系统软件设计与实现
4.1系统软件设计概述
硬件电路和软件驱动构成了一个电子控制系统,硬件设施作为一个电子控制系统的基础,同时还需要软件驱动的配套支持。软件驱动作为电子控制系统的一个重要环节,其系统的功能实现都由软件程序表现出来的。硬件是软件的载体,软件是硬件的实现,唯有两者完全结合才能实现一个系统的正常运行。前文已经介绍了系统的硬件电路设计,结合前文的硬件电路设计,接下来本章主要针对系统的软件部分进行设计。
良好的软件程序设计,能实现整个系统运行和功能实现的高效率和稳定性。软件设计除了需要满足系统设计的要求,还要注意在整个设计过程中需要注意系统的可靠性和软件抗干扰性。因此本系统软件程序的设计过程中要求考虑一下几点:
①程序系统整洁、定时精准、响应敏捷。
一个系统软件有的百条指令,有的成千上万条指令,指令众多,这时就程序系统整洁尤为重要。设计多个子程序,不同功能应有不同的子程序,实现程序模块结构化,然后采用程序调用的方式,将各个子程序衔接,实现系统软件功能。本系统程序有多个模块程序,特别是人机交互模块对实时性要求严格,通过实时刷新人机交互模块,将系统所拥有的信息反馈给用户,达到人机交互功能,实现可视化。系统软件的实时性表现在系统在有限的时间内对外部事件做出相应响应的特性。
②系统可靠性好、运行稳定。
本系统是通过TCOC测量检测模块采集数据,同时根据对数据进行分析,并且作出相对应的响应,具有良好的可靠性和稳定性。
③系统的可修改性和程序可移植性。
电子产品更新迭代速度相对比较快,在对系统软件进行程序设计时,应该需要设计系统后期可能面临的新迭代的情况,设计的系统程序应具有一定的程序可裁剪性,兼容性,通用性和可移植性。
本章的软件设计主要包括系统初始化子程序、各个模块子程序和中断服务程序等。
4.2编程软件环境
由前文知,本系统采用赛元微系列SC92F8003单片机作为中央处理器,根据选用单片机编程和调试软件采用了C语言作为软件设计语言。C语言同时具备着高级语言和汇编语言的特点,它能用于系统应用程序的编写,也可以用作应用程序设计。C语言编写并不依赖计算机硬件的应用程序。因此,它的应用范围广泛。C语言具有以下优势:
①开发效率高、开发周期短。C语言可以加快开发进度,降低开发成本。
②系统结构条理清楚。结构化编码的显著特点是代码和数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护和调试。[李铮,叶艳冰,汪德俊.C语言程序设计基础与应用[M].北京:清华大学出版社,2015]
③允许直接访问物理地址,可以直接对硬件进行操作,能够像汇编语言一样对位、字节和地址进行操作,可以用来写系统软件[李岩,李雪斌,宋家兴. C语言的发展特点及其应用[J].艺术科技,2016]。
赛元微系列SC92F8003单片机是一款高性能的51内核单片机,开发环境为KeilC51,下面简单介绍KeilC51开发环境。
Keil公司是一家行业优秀的微控制器软件开发IDE提供商。KeilC51集成了ANSIC编译器、宏汇编程序、库管理器等工具,经过30多年的发展,已经成为行业的标准,支持逾500种51内核单片机。
KeilC51标准C编译器采用C语言开发环境,同时保留了汇编代码高效,快速的特点。KeilC51集成开发环境包含编译器,汇编器,实时操作系统,项目管理器,调试器等。uVision5 IDE可为它们提供优秀的开发环境。以下介绍uVision5 IDE的组成部分。
①源代码编辑器:uVision5延用了KeilC51家族风格,布局合理,人性化。彩色的语法提高了用户对源代码的识别能力。
②断点:Vision5允许用户在编辑时在条件表达式,变量或存储器访问等均可设置断点,方便用户调试程序。
③变量和存储器:用户可以在编辑器中筛选所需要调试的变量来观察其取值。双层窗口显示,可进行以下调整:
1.当前函数的局部变量;
2.堆栈调用(call stack)页面上的调用记录(树)(call tree);
3.不同格式的四个存储区。
4.3系统主程序设计
本系统的主程序设计是根据硬件电路各模块而设计的,在锂电池插入后,系统参数初始化,系统进入关机休眠状态,等待按键输入唤醒。系统被唤醒后,判断是否进入开机状态,当进入开机状态后,系统将进行处理各个模块的关系,不断循环控制,使得汽车室内空气达到净化的目的。
4.4各子模块程序设计
由前文知,本系统软件设计采用模块结构化设计。子模块主要包括中央处理器系统初始化程序设计、TVOC测量检测程序设计、人机交互模块程序设计、风机驱动模块程序设计、中断子程序设计等程序设计。
4.4.1系统初始化程序设计
在中央处理器系统软件程序设计过程中,首先需要对中央处理器系统进行初始化,本系统的初始化程序有中央处理器IO口初始化、TVOC测量检测模块通讯配置初始化、人机交互模块通信配置初始化、定时器配置初始化、中断服务程序配置初始化等:
1、端口初始化:SC92F8003提供了最多18个可控制的双向GPIO端口,输入输出控制寄存器用来控制各端口的输入输出状态,当端口作为输入时,每个IO端口带有由PxPHy控制的内部上拉电阻。此18个IO同其他功能复用。IO口存在三种状态:高电平、低电平、高阻态。根据系统设计要求,对不同I/O口设置为不同状态;
void IO_Init(void)
{
P0CON = 0x00; //设置P0为高阻太输入模式
P0PH = 0x00; //关闭P0上拉
P1CON = 0x00; //设置P1为高阻输入
P1PH = 0xFF; //P1带上拉模式
P2CON = 0xFF; //设置P2为强推挽模式
P2PH = 0x00; //关闭P0上拉
}
2、TVOC测量检测模块初始化:由于采用KQM2800A传感器,采用串口通讯方式。
SC92F8003支持一个全双工的串行口,可方便用于同其它器件或者设备的连接,例如Wifi模块电路或其它UART通信接口的驱动芯片等。UART0的功能及特性如下:
①串行通信口可通过SPOS[1:0]切换至不同引脚;
②三种通讯模式可选:模式0、模式1和模式3;
③可选择定时器1或定时器2作为UART的波特率发生器;
④发送和接收完成可产生中断RI/TI,该中断标志需要软件清除。
其模块初始化程序如下:
void Uart0_Init(uint Freq,unsigned long int baud)//Uart0_Init(void)
{
P1CON = 0x9F; //TX/设置为输入
P1PH = 0x60; //TX上拉
SCON = 0X50; //设置通讯方式为模式一,允许接收
TMCON = 0X02;//T1 频率源自于fSYS
TMOD = 0X20; //16 位定时器/计数器
PCON = 0X80;//SMOD=1串行端口在系统时钟的 1/4 下运行
TH1 = (Freq*1000000/baud)]]8; //波特率为定时器T1的溢出时间高八位
TL1 = Freq*1000000/baud;//波特率为定时器T1的溢出时间低八位
TR1 = 0;//关闭定时器1
ET1 = 0;//关闭定时器中断
EUART = 1; //开启UART0中断
EA = 1; //开启总中断
}
UART0中断中断服务函数:
void UartInt(void) interrupt 4
{
if(RI)
{
RI = 0; // 接收完成可产生中断RI,中断标志需要软件清除。
UartReceiveFlag = 1;
if(UartReceiveFlag4bit == 0) //每一帧数据有4个字节
{
TVOC[_num] = SBUF; //将收到的数据存入数组中
_num++;
if(_num ]= 4 )
{
UartReceiveFlag4bit = 1; //收到4个字节数据
_num =0;
}
}
}
}
4.4.2人机交互模块序程设计
根据OLED12864的硬件电路设计,系统将SC92F8003单片机的P24和P25作为 IIC通讯的SCL和SDA端口,与OLED12864进行通讯。由OLED12864模块的芯片手册可知,OLED12864模块流程为如图4-1所示:
图4-1LED12864模块流程图
系统的Logo、空气质量、充电模式状态等信息在人机交互模块上显示出来。
void TVOC_Data_Transformation(void)
{
static uchar Dida = 0;
if( UartReceiveFlag4bit == 1 )
{
UartReceiveFlag4bit = 0;
//预热中
if(TVOC[1] == 0Xff && TVOC[2] == 0Xff)
{
PWMCON1 = 0x00;
FAN_OFF;
P10 = 0;
OLED_ShowChinese(48,4,7); //显示“预”
OLED_ShowChinese(64,4,8); //显示“热””
OLED_ShowChinese(80,4,9); //显示“中”
//计时
if(TimerCnt_1ms >= 2000)//1s
{
TimerCnt_1ms = 0;
Dida++;
if(Dida >= 4)
Dida = 0;
}
//预热动态显示“*”
switch(Dida)
{
case 0:
OLED_ShowString(96,4,"* ",4);//上行显示“*”
OLED_ShowString(96,5,"* ",4);//下行显示“*”
break;
case 1:
OLED_ShowString(96,4,"** ",4);//上行显示“**”
OLED_ShowString(96,5,"** ",4);//下行显示“**”
break;
case 2:
OLED_ShowString(96,4,"*** ",4);//上行显示“***”
OLED_ShowString(96,5,"*** ",4);//下行显示“***”
break;
case 3:
OLED_ShowString(96,4,"****",4);//上行显示“****”
OLED_ShowString(96,5,"****",4);//下行显示“****”
break;
default:
Dida = 0;
break;
}
}
else
{
TempTVOC = ((TVOC[1]<<8) +TVOC[2]);
PWMCON1 = 0x10;
FAN_ON;
Display_Data[0] = TempTVOC/10000 +'0'; //万位
Display_Data[1] = TempTVOC/1000%10 +'0'; //千位
Display_Data[2] = TempTVOC/100%10 +'0'; //百位
//数据分离
if( Display_Data[0] == '0' )
{
if( Display_Data[1] == '0' )
{
if(Display_Data[2] == '0')
{
Display_Data[0] = ' '; //null
Display_Data[1] = ' ';
Display_Data[2] = ' ';
Display_Data[3] = TempTVOC/10%10+'0'; //个位
Display_Data[4] = '.'; //小数点
Display_Data[5] = TempTVOC%10 +'0'; //十分位
}
else
{
Display_Data[0] = ' ';
Display_Data[1] = ' ';
Display_Data[2] = TempTVOC/100%10 +'0'; //十位
Display_Data[3] = TempTVOC/10%10+'0'; //个位
Display_Data[4] = '.'; //小数点
Display_Data[5] = TempTVOC%10 +'0'; //十分位
}
}
else
{
Display_Data[0] = ' ';
Display_Data[1] = TempTVOC/1000%10 +'0'; //百位
Display_Data[2] = TempTVOC/100%10 +'0'; //十位
Display_Data[3] = TempTVOC/10%10+'0'; //个位
Display_Data[4] = '.'; //小数点
Display_Data[5] = TempTVOC%10 +'0'; //十分位
}
}
else
{
Display_Data[0] = TempTVOC/10000 +'0'; //万位
Display_Data[1] = TempTVOC/1000%10 +'0'; //千位
Display_Data[2] = TempTVOC/100%10 +'0'; //百位
Display_Data[3] = TempTVOC/10%10+'0'; //十位
Display_Data[4] = '.'; //小数点
Display_Data[5] = TempTVOC%10 +'0'; //十分位
}
OLED_ShowString(48,4,Display_Data,16);//显示TVOC数据
OLED_ShowString(0,4,"TVOC:",16);//显示“TVOC”
OLED_ShowString(96,4,"PPM",16); //显示单位“PPM”
if( TempTVOC <= 15 ) // TVOC浓度<1.5ppm
{
PWMDTY4 = FANPWMDutyLow;
OLED_ShowString(54,7,"(*^_^*)",7); //显示字符
}
else if( TempTVOC >15 && TempTVOC <= 100 )//TVOC浓度1.5~10 ppm
{
PWMDTY4 = FANPWMDutyMid;
OLED_ShowString(54,7," (T_T) ",7); //显示字符
}
else //TVOC浓度>10ppm
{
PWMDTY4 = FANPWMDutyHig;
OLED_ShowString(54,7," (ToT) ",7);//显示字符
}
}
}
}
4.5软件可靠性设计
由前章讲述,在电子产品中,一个系统的稳定性是由两大主要因素引起。一个电子控制系统的正常稳定运行,除了硬件器件的可靠性,还有软件系统的可靠性。在本系统软件设计中主要考虑了一下几方面的软件可靠性设计。
1、开机自检
首次开机(即上电瞬间),主程序优先跑Delay延时函数,因为电压属于模拟量,不能突变,上电瞬间延时等待系统电压稳定。然后先对中央处理器系统的硬件和软件状态进行自我测试,测试过程中如果发现错误,系统将会进入对应的程序进行自我处理或者优化。开机自我检测程序包括对中央处理器的ROM、RAM、IO口状态等内部资源进行自我的测试。
2、输入端多次采样
外界不确定因素对中央处理器的输入的干扰,会造成输入信号瞬间改变,系统检测到此类信号必须排除干扰的影响,以提高系统的稳定性。中央处理器的输入干扰过滤方法有重复采样法、加权平均的方法,中值过滤法,平均滤波法等方法。比如对于采样ADC值的时候,采取多次读取ADC值,去除最大值和小值在进行平均值滤波,这样得到相对准确的ADC值,系统的稳定性就会提高很多。
3、防止程序“跑飞”
数组越界,中断服务程序缺失,看门狗复位等现象都会导致中央处理器程序 “跑飞”,程序出乱。在程序设计过程中,需要考虑定义的数组在数组运用过程中是否出现越界现象;检查中断服务函数的中断标志位是否软件清“0”;程序是否陷进某个循环或者看门狗时间设置过短导致看门狗溢出等。
4.6本章小结
本章介绍了系统软件设计与实现,首先对系统软件设计进行了概述,并介绍了编程环境,然后进行了系统主程序设计,并分模块进行了系统初始化子程序、TVOC测量检测模块子程序、人机交互模块子程序,和中断子服务程序的软件设计,最后介绍了系统的可靠性设计。
第5章 实物调试与功能实现
5.1实物调试概述
相对软件仿真,实物论证是将设计好的程序下载到系统中,是一种直接的,准确的,高性能的研究方法。实物论证通过实物的方式验证,能够直观地调试系统功能。
5.2系统软件与硬件调试
在前文中介绍了本设计采用KEILC51的开发环境。在程序设计过程中主要遇到以下问题。
问题一:系统软件设计,编译不通过。
问题的解决方法:
点击KEILC51中编译输出(Build Output)栏错误提示路径即可直接跳转到相关联的错误,再结合上下关联查找出问题的根源。本问题是main.c文件和IO_Init.c文件中都存在FAN_ON,FAN_OFF的宏定义,属于重复宏定义,删除IO_Init.c文件里的FAN_ON,FAN_OFF宏定义即可。
图5-1编译不通过
问题二:系统编译通过,但是风机驱动无法调速。
问题的解决方法:
在系统软件设计当中,此类问题会经常发生。优先排除硬件是否存在问题,根据图3-10硬件电路设计,首先对MOS管测试,采用万用表对MOS管测试,万用表打到二级管挡位,红表笔放置G极,黑表笔分别测试D极和S极,G极到D极和S极均有0.6V的电压,确定了硬件电路不存在问题。再次排除了风机为正常。综合得出问题出现在于系统软件当中。 经过逐步排查问题,问题原因是单片机的寄存器值定义出错,修改后风机能够正常调速。
问题三:人机交互模块的显示部分无法显示或显示乱码。
问题的解决方法:
经过排查,得出是系统程序的问题。人机交互模块无法显示的原因是人机交互模块的时钟引脚和数据引脚定义用反了,修改后显示部分信息。显示乱码的原因是字符取模的方式和显示逻辑冲突,修正取模方式即可正常使用。
问题四:负离子的浓度不足,净化效率过低。
问题的解决方法:
查阅负离子净化模块的说明书,知道负离子净化模块的输入电压为5V,工作功率小于1W。独立测试负离子净化模块,负离子净化模块正常工作,负离子浓度大于5*106PCS/cm3,排除负离子净化模块存在问题。测量负离子净化模块接口,电压为3.8V,从而确定负离子净化模块的供电存在问题。导致负离子的浓度不足,净化效率过低的原因是升压IC的电感值过小,纹波过大,更换升压电感和加大滤波电容后负离子的浓度大于5*106 PCS/cm3,净化效率正常。
5.3功能实现
经过系统的软件和硬件的模块结构化实物逐步调试,修改系统完成顺利。下图为初代样机。
图5-2初代样机PCBA与外设图
本次试验环境为研发室,采用实验舱模拟汽车室内环境的简易实验。由系统人机交互模块可清晰看到当前环境所测到的TVOC值和系统其他的信息。所被测气体为TVOC值,单位为PPM。系统其它信息:客户指定文字“航盛”; 充电类型 ,“0”形状为太阳能充电,箭头形状为充电器充电;风机转速挡位和TVOC浓度挡位, “(_)”为空气质量优,风机转速度低档;“(T_T)”为空气质量一般,风机转速度中档;(ToT)为空气质量差,风机转速度高档。
开机后,系统对TVOV检测模块进行预热。预热过程中,负离子净化模块和风机驱动模块处于等待状态。 等待预热完成,人机交互模块显示的空气质量的TVOC浓度,并开启净化和处理其他信息。
图5-3预热过程
图5-4充电器充电时空气质量处于优状态
图5-5太阳能充电时空气质量处于一般状态
通过系统软件和硬件的模块结构化实物调试,系统运行基本稳定。经过模拟空间测试,本设计能实现有效的净化空气功能,整体设计达到设计要求。基于SC92F8003单片机的轻量级太阳能车载空气净化器的设计功能基本实现。
图5-6基于SC92F8003单片机的轻量级太阳能车载空气净化器的外观正面图
图5-7基于SC92F8003单片机的轻量级太阳能车载空气净化器的外观背面图
5.4本章小结
本章首先介绍了软硬结合模块化实物的调试方式。然后简要介绍了本设计中所遇到的主要问题。最后,通过模拟实验论证本设计的具有可视化的,节能环保的,高净化率的轻量级太阳能车载空气净化器的设计的功能实现。
第6章 总结与展望
6.1全文总结
本文设计了一款基于SC92F8003单片机的轻量级太阳能车载空气净化器,采用了SC92F8003单片机作为中央器,通过系统 TVOC测量检测模块采集汽车内空气质量指标,SC92F8003中央处理器根据接收到的TVOC测量检测模块信号,来控制负离子净化模块、风机等输出设备的工作状态,同时将系统所处的信息通过人机交互模块显示出来,达到信息可视化,净化汽车内的空气、消除汽车内异味,提供一个空气清新环境的车内空间,同时充分利用了太阳能资源。
在整个设计开发过程中,本文所完成了的工作如下:
1、概述了当前室内空气存在的问题和国内外空气净化的发展情况和国内车载空气净化器的现状等。为此,本设计拟设计出一款高稳定性、人性化、可视化、低成本的车载空气净化器,并提出了以赛元微SC92F8003单片机为中央处理器,利用负离子净化模块、风机驱动模块和HEAP滤网的共同作用下,对空气净化,使车内空气达到净化效果。本系统同时具备空气质量可视化和太阳能最大功率点追踪两种功能。
2、对微处理器的选型,采用了SC92F8003单片机为中央处理器,并介绍了SC92F8003单片机,对系统总体设计方案进行了设计与分析,选取了KQM2800A型空气质量检测模块作为TVOC测量检测模块,CN3791芯片模块作为MPPT辅电源系统等。并明确控制系统的功能实现目标。
3、依据系统总体设计方案,明确了模块结构化的设计思想,分模块进行了设计硬件电路的工作和对PCB进行布局走线的工作,并明确电路设计时必要的注意事项。
4、介绍了所采用的KeilC51系统软件设计的开发环境,在程序设计过程中,明确采用了模块结构化的程序设计设计理念,分模块完成了系统软件设计工作。
5、采用了软件和硬件的模块化实物调试,统筹兼顾了软硬件,并分析了在软硬件调试中所遇到的主要问题,并解决问题。在完成了系统硬件调试和系统软件调试的内容后,对开发设计出来的系统设计进行了功能实现验证。
在导师的指导,同学和公司领导的帮助下,本文设计的轻量级太阳能车载空气净化器能够实现相应功能。
6.2课题展望
在这一设计过程中,虽然设计工作已经基本完成,但仍有许多问题需要进一步改进,如:
1、系统的稳定性需要长时间老化。
在系统行基本功能完成条件下,因为设计时间仓促,未能长时间老化,所以系统的稳定性和可靠性需要进一步老化测试验证。目前运行的情况下,发现板子部分元件发热严重,估计是过流引起的,因此,对部分元件更换。
2、TVOC测量检测模块精度需要在不同环境下多次比较测试与验证。
在本设计中采用的TVOC测量检测模块等各种模块等采用了集成模块,精度和净化空气效果需要进行专业的测试和验证。
3、可预留接口。
本设计为车载设备,采用的SC92F8003芯片,结合“互联网+”技术,可进行后期的功能升级,可实现远程控制和监测检测到汽车室内的空气质量和净化空气,并记录数据。总体来说,本文设计的轻量级太阳能车载空气净化器的软硬件设计、软件设计基本功能都得以实现,但是在设计中,表现出有很多优点和缺陷地方,进一步加以完善后,相信本设计能得到不错的市场价值。