1 前言科技的进步带动了产品的智能化,单片机的应用更是加快了发展的步伐,它的应用范围日益广泛,已远远超出了计算机科学的领域。小到玩具、信用卡,大到航天器、机器人,从实现数据采集、过程控制、模糊控制等智能系统到人类的日常生活,到处都离不开单片机,此设计正是单片机的一个典型应用。而此设计可以通过实现智能电源监控,以及负载监控,通过对电压的检测,由单片机来控制其反应情况,使其变得智能化,使人的双手解放出来,此系统还可以应用到其它领域,能满足社会的多方面需要。
在日常生活中,电压,电流和功率是最基本的三个个被测量,而电压、电流尤其被经常测量。如今电子技术的高速发展,需要高精度的测量电压、电流,由此一种可在线监测电压电流和功率的系统就显得十分重要。
本设计主要目的是实现电路的电流和电压以及功率的监测。本设计主要由六大模块组成:辅助电源模块、信号采集模块、A/D模数转换部分、单片机控制模块、显示模块和上位机部分。辅助电源可提供一个稳定的直流5V电压为系统供电;信号采集模块可将电压、电流信号转换成A/D转换芯片可识别的电气信号;A/D数模转换部分可信号采集模块采集的模拟信号转换成数字信号;单片机将A/D数模转换模块的数字信号进行处理、计算并且显示到LCD液晶显示屏上面;最后LABVIEW上位机可将单片机处理之后的信息显示于PC机上面,做到远程监控。
本设计主要通过查阅大量相关资料,对比自己所学的知识,对设计题目进行分析,从而制定出相应的方案计划,制定方案后再对相关各个模块进行深入设计、确定相关参数。初步确定方案后,运用EDA仿真软件对设计进行仿真测试调节,测试成功后,对电路进行PCB电路板制作,实物焊接等。实物焊接成功后再对实物进行逐步调试。
2 总体方案设计通过查阅大量相关技术资料,并结合自己的实际知识,我主要提出了两种技术方案来实现系统功能。下面我将首先对这两种方案的组成框图和实现原理分别进行说明,并分析比较它们的特点,然后阐述我最终选择方案的原因。
2.1 方案比较不同的设计方案决定着系统的性能、设计的难易程度,这里对于系统总体设计提出两种设计方案。
2.1.1 方案一方案一原理框图如图2.1所示。
图2.1 方案一原理框图
方案一采用了TLC2543这块12位ADC作为模数转换器,CTC89C51单片机作为主控芯片,并结合LCD1602I显示屏处理方案,优点是显示美观,成本低廉,电压测量范围广;缺点是结构复杂,数据处理速度慢,精度低,能耗较大。
2.1.2 方案二方案二原理框图如图2.2所示。
图2.2 方案二原理框图方案二采用STM32单片机作为主控芯片,由于STM32芯片内部自带12位高速ADC,所以不用外接外部ADC,这样就使得系统的结构大大简化,并且其内部ADC为处理精度为12位,所以电压采集精度较高,可以达到0.8mV。12864液晶价格便宜,应以简便,完全可以满足设计需求。就方案二来说,其优点是系统资源广,数据处理精度高,结构简单,处理速度快,稳定性好,性能优良,能耗低,缺点是STM32应用起来较复杂,成本略高。
2.2 方案论证2.2.1 方案一论证该方案主要由五大模块组成:检测电路、A/D模数转换模块、单片机控制模块、显示模块和上位机部分。按系统功能实现要求,控制模块采用STC89C51单片机,STC89C51是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM)。STC89C51有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发。
本设计通过程序来进行电压、电流的计算等数据处理,及其功能控制; A/D转换模块采用TLC2543芯片,TLC2543是TI公司的12位串行数模转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O口资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。
2.2.2 本方案二论证本方案设计思路与方案一基本相似,但方案二采用的是STM32单片机,STM32单片机最高工作频率72MHz;片上集成32-512KB的Flash存储器,6-64KB的SRAM存储器;拥有3个12位的us级的A/D转换器(16通道):A/D测量范围:0-3.6V。这些对于本设计来说,资源绰绰有余,但可以极大的方便了以后系统的扩展。由于其自带的ADC是12位的,数据的处理精度远大于ADC0832。方案二可以省去一块ADC的成本,同时也简化了系统的结构,使系统更加稳定。
2.3 方案选择经过方案对比,由于方案二设计复杂、成本较高;方案一设计简单,成本低廉。所以最终选择方案一作为系统的设计方案。
3 单元模块设计本节主要介绍系统各单元模块的具体功能、电路结构、工作原理、以及各个单元模块之间的联接关系;同时也对相关电路中的参数计算、元器件选择、以及核心器件进行必要说明。
3.1 各单元模块功能介绍及电路设计本系统主要分为6个单元模块,它们分别是:辅助电源模块、控制模块、检测电路模块、A/D转换部分、液晶显示模块、LABVIEW上位机模块。各单元模块功能及相关电路的具体说明如下。
3.1.1 辅助电源模块辅助电源是根据需要将电池供给的电压转换成我们实际需要的电压为电路供电。可以直接贴装在印刷电路板上的电源供应器,其特点是可为专用集成电路(ASIC)、数字信号处理器 (DSP)、微处理器、存储器、现场可编程门阵列 (FPGA) 及其他数字或模拟负载提供供电。辅助电源位一个线性电源,它是根据需要将所供的直流电源(36V)供给的电压转换成我们实际需要的电压(5V)为电路供电,可以直接贴装在印刷电路板上的电源供应器。
其中C4、C5是输入滤波,C6是输出滤波,D2为指示灯,R7为防止发光二极管烧坏的限流电阻,辅助电源模块原理图如图3.1所示。
图3.1 辅助电源原理图3.1.2 控制模块STC89C51是一种低功耗、高性能CMOS 8位微控制器,具有4K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C51在众多嵌入式控制应用系统中得到广泛应用。控制模块原理图如图3.2所示。
图3.2 控制模块原理图STC89C51的特点如下:
- 拥有灵巧的8位CPU和在系统可编程Flash
- 晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)
- 内部程序存储器(ROM)为4KB
- 内部数据存储器(RAM)为 256字节
- 32 个可编程I/O 口线
- 8个中断向量源
- 两个16位定时器/计数器
- 三级加密程序存储器
- 全双工UART串行通道
- 低功耗空闲和掉电模式
- 掉电后中断可唤醒
- 看门狗定时器
- 双数据指针
- 掉电标识符
控制模块主要由单片机、时钟电路、复位电路组成。时钟电路:单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,原理图如图3.3所示,其中X1、C1、C2。可以根据情况选择6MHz、12MHz或24MHz等频率的石英晶体,补偿电容通常选择30pF左右的瓷片电容。
图3.3 时钟电路原理图复位电路:单片机小系统常采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。其原理图如图3.4所示。上电自动复位通过电容C3充电来实现。手动按键复位是通过按键将电阻R1与VCC接通来实现。
图3.4 复位电路原理图按键电路:本系统设计三个按键,通过按不同按键,可实现电压、电流、功率之间显示的切换。按键电路原理图如图3.5所示,原理为通过按键可改变单片机I/O口所识别的电平,以P2.3为例,VCC→电阻→P2.3提供高电平,当按下按钮后,断开的地方接通,P2.3与地接通,获得低电平,单片机将检测到低电平后,即执行其对应程序。
图3.5 按键电路原理图3.1.3 检测电路模块 一般检测电压为电阻并联、检测电流为电阻串联。因为并联电路电压相等、串联电路电流相等。本模块就是根据这个原理而设计得到的,检测电路原理图如图3-6所示。R1,R3两个电阻分压,通过采集电阻R3的电压再除上(R3/R1)的比值,就可以得到负载两端的电压值。为了反应流过负载的电流大小,同时考虑到电流的大小对于单片机来说不能直接处理,所以本设计采用了间接的方法,即将电流转化为电压,采用采样电阻和负载分压的方法,通过采集采样电阻的电压,然后将得到的电压值除以采样电阻的阻值就可以得到流过负载的实际电流值。本设计采用的采样电阻的阻值只有0.2欧,这对于电源和负载来说都相对比较小,所以由于采样电阻而引起的压降完全可以忽略不计,检测电路原理图如图3.6所示。
图3.6 检测电路原理图3.1.4 A/D转换模块一般A/D转换过程包括采样,保持,量化和编码等过程。TLC2543是12位ADC,使用开关电容逐次逼近技术,完成AD转换过程,提供的最大转换速率为66ksps,供电电流仅需1毫安(典型值)。可以用四种传输方法使TLC2542得到全12位分辨率,每次转换或数据传输可以使用12或16个时钟周期。一个片选(CS)脉冲要插到每次转换的开始处,或是在转换时序的开始处变化一次后保持CS为低,直至时序结束。AIN1与电阻并联,取得模拟信号后,经过模数转换,再由AIN0输出数字信号于负载,其中与TLC2543相连的为采样电路。TLC2543主要特征如下:
1、12位分辩率A/D转换器;
2、在工作温度范围内10μs转换时间;
3、11个模拟输入通道;
4、3路内置自测试方式;
5、采样率为66kbps;
6、线性误差±1LSBmax;
7、有转换结束输出EOC;
8、具有单、双极性输出;
9、可编程的MSB或LSB前导;
10、可编程输出数据长度。
TLC2543时序图如图3.7所示。
图3.7 TLC2543时序图3.1.5 显示模块显示部分采用的是LCD1602液晶显示屏,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶,显示模块原理图如图3.8所示。
图3.8 显示部分原理图3.1.6 上位机部分LABVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LABVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LABVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。LABVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。LABVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新与C和BASIC一样LABVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LABVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。LABVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。
LABVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LABVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是LABVIEW的程序模块。LABVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在LABVIEW中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LABVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码,LABVIEW设计界面如图3.9所示。
图3.9 LABVIEW界面图
4 系统调试本节主要对系统的硬件、软件分别进行调试。
4.1 硬件调试硬件调试部分主要对系统硬件的焊接,辅助电源的实测,检测模块的电压测量点和电流测量点、液晶显示等硬件进行测试。
4.1.1 LCD1602显示调试4.1.2 硬件系统整体调试4.2 软件调试根据模块的划分原则,将软件划分为初始模块,A/D转换子程序和显示子程序,这四个模块程序构成了整个系统软件的主程序。软件设计采用C语言编程。
软件设计整体结构图如图4.1所示。
图4.1 系统软件程序流程图
4.3 系统测量精度测试本小节主要对系统测量的精度进行测试。用万用表打出电阻两端的电压值即可得到电阻两端的实际电压,然后与本系统测量出的电压进行比较即可得到电压测量精度;由于所加在电阻负载上的电源为恒压源,所以只需要得到电压值与电阻值就可计算出实际电流值,然后与所测量出的电流值进行比较即可得出电流测量精度;用实际电压与实际电流相乘即可得到实际功率,然后与所测功率进行比较即可得到功率测量精度。
给负载施加五组不同电压进行测试,选取精度最低的一组作为系统测试精度。测试结果如图所示4.2所示。
图4.2 不同输入电压情况下测试结果测量精度由式4-1计算所得
(式4-1)
最终五组测试数据、计算结果如表4-1所示。
表4-1 精度测试结果
将五组数据分别进行电压、电流、功率的精度计算,每种类型的最低精度为系统最低测量精度。最终结果为:电压精度1.53%,电流精度2.7%,功率精度2.3%。
5 系统功能、指标参数5.1 系统能实现的功能本系统实现的功能为:用外电源给负载供电,将本系统接入负载两端即可测量负载此时的电压、电流、功率信号在现场端通过LCD1602显示,并可以将这些信号显示于远程LABVIEWPC机界面上。
5.2 系统功能及指标参数分析经测试,本系统已完成了基本的设计要求,但是也有很多不足的地方。比如:显示电压电流的准确度还需要进一步提高,系统的测试稳定度也需要提高,LABVIEW界面还需更加美化。对于准确度的不高,经分析后发现是采集次数较少的原因造成的,改进的地方是可以在程序中增加更多的采集次数,然后求平均值,或者在显示完成后加上一段延时,这样就可以消抖,从而保证了显示数字的准确和稳定。
6 结论本次设计主要是实现发电功率的在线监测,实时反应负载两端的电压和电流以及负载功率的测量。该设计整体结构完整,简洁,但对电路中元件的参数匹配要求比较高。比如采样电阻和负载都要求能有大的功率,以便能流过大电流。通过查阅资料进行学习对应设计模块的器件参数,再经过系统调试和测试,得到各模块电路的指标参数,确保了每一步的顺利进行。但是由于电路设计上面存在缺陷,电压、电流采样的准确度还需要进一步提高。还有我们用到的电阻不可能是理想的线性电阻。随着电流的增大,电阻就会发热,电阻值就会随温度的改变而改变。那么我们测到的值和实际值就有一定的偏差,如果用直角坐标系来反应的话,就不会是一条完完全全的直线。所以为了尽量的减小误差,我们通过实测了多个数据,将这些数据连成线,然后再在程序中将这些数据做了拟合处理,极大的减小了误差。
这个设计中需要计算的量不是很多,上位机的界面制作不是很复杂,但对单片机的数据的处理和上位机对单片机的数据的处理有一定的要求。虽然通过理论上的计算以及仿真设计达到要求,但在实物调试电路模块中,相关接口电路中参数的选择经过一定的变化,都会引起系统一定的误差。在整个设计过程中,我们仿照了参考书中相应模块,借鉴了相应的书籍资料数据,进行测试和调节,所测的参数基本稳定,基本满足设计要求。
7 总结与体会在本次课程设计中,对STC89C51单片机加深了了解,并巩固了对它的使用方法,对于51单片机的最小系统、TLC2542芯片、辅助电源等有了更深一步理解,为以后的电路分析和设计奠定了一定的基础。本次综合设计还提高了实践动手能力。大学中许多的时间都是在学习理论知识,很少参与实践中去。综合设计提供了一个宝贵的机会,理论用语实践,从设计,仿真,焊电路板,安装调试,每一步的进行,都会带来受益非浅的实际操作训练,许多的实践经验是我们在课本上学不到的,必须经过这样严格的自己动手,才会从中体会出设计成果的喜悦。理论知识总是要用于实践中才得以升华,应该更多的参与实践,以增强对专业的兴趣。同时,作为一名电力系统及其自动化的大三的学生,即将跨入大四,能做这样的综合设计是十分有意义。在此次综合设计中,将课本理论知识与实际应用联系起来。按照书本的知识、老师讲授的方法,首先和同组的同学一起分析研究此次的设计任务和要求,然后按照分析的结果进行实际连接操作,检测和校正,再进一步完善。在其中遇到一些不解和疑惑的地方,还有出现的一些未知问题,都认真分析讨论,然后对讨论出的结果进行实际检测校正,对一些疑难问题也认真向老师询问请教,和老师一起探讨解决。通过此次的综合设计,加深了对课本知识的认识理解,对电路设计方法和实际电路连接也有了一定的初步认识。综合设计达到了专业学习的预期目的。在三周左右的课程设计之后,普遍感到不仅实际动手能力有所提高,更重要的是通过对新知识的研究了解和学习,更进一步激发了对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行更深入的学习。
8 致谢在老师与老师的指导和同学的帮助下我们顺利完成了本次的综合设计。在整个综合课程设计制作过程中,受到张老师与雷老师很多的帮助。从设计的选题、研制计划的安排到设计的具体过程,张老师与雷老师都给予了悉心的指导。两位老师严谨的治学态度、开明的学术思想,和宽人律己的高尚品德值得学习。谨向张力老师与雷霞老师致以诚挚的谢意!对他们无私的帮助表示衷心的感谢,更感谢他们为学生营造的浓郁学术氛围,以及对我在学习上的无私帮助!