变压器风冷控制系统软件设计说明书
第1章 绪 论
1.1 项目研究背景
在输变电系统中,变压器是实现电能转换的最基本、最重要的设备,对供电可靠性有着重大的影响。变压器在运行中是有损耗的,一种是空载损耗,它与负荷大小无关:另一种是负载损耗,与负载电流的平方成正比。变压器运行中产生的损耗将转换为热量散发出来,使变压器绕组、铁芯和变压器油温上升。变压器的温升影响它的带负荷能力,同时会加速变压器绕组和铁芯所采用绝缘材料的老化,影响它的使用寿命。变压器运行中所带负荷随时都在发生变化,这将使变压器的损耗也随之发生变化,从而造成变压器油温的变化;同时不管是一年四季环境气温的变化,还是每天昼夜气温的变化,也都造成了变压器油温的变化。为了保证变压器安全和稳定,要随时检测变压器的油温并由冷却控制装置控制冷却器组运行来控制变压器油温的变化,使其油温维持在一个固定的范围内。但目前大型电力变压器的冷却控制仍然主要采用传统的继电式控制方式,这种控制方式存在许多弊端:控制回路接线复杂、可靠性差、故障率较高、维护工作量大;变压器负荷波动较大造成变压器油温变化时,因采用温度硬触点控制,造成冷却器组频繁启停,降低了冷却器组的使用寿命,同时加重了油流带电现象;不能对冷却器风扇、油泵电动机提供完善的保护。继电式控制装置因控制系统故障而使变压器冷却系统带病运行,严重地影响了变压器的可靠运行,已不适应于现如今电网的发展。
本项目针对存在的问题提出并研制了基于单片机的大型变压器冷却控制装置。单片机具有可靠性高、抗干扰能力强、智能化等优点,采用以单片机为控制中心实现变压器冷却装置的控制,可以实现对变压器油温的精确控制;控制功能通过编程实现,极大的简化了系统接线,提高了装置本身的可靠性;完善了对冷却器的保护和控制,提高了它的可靠性和工作寿命;此外还可以通过通信实现远方监视冷却系统运行。随着对电网安全可靠运行要求的不断提高,本文提出的基于单片机的大型变压器冷却控制装置的研制,对变压器及电网安全、可靠运行有重要意义和实用价值。
1.2 变压器冷却控制方式研究现状
电力变压器常用的冷却方式一般分为三种:油浸自冷式、油浸风冷式、强迫油循环。
1、油浸自冷式(低厂变):油浸变压器的散热过程是这样的,铁芯和线圈把热量首先传给在其附近的油,使油的温度升高。温度高的油体积增加,比重减小,就向油箱的上部运动。冷油将自然运动补充到热油原来的位置。而热油沿箱壁或散热器管将热量放出,经箱壁或管壁被周围的空气带走,温度降低后又回到油箱下部参加循环。这样,因油温的差别,产生了油的自然循环流动。既热油从变压器油箱的上部,沿散热器(无散热器的沿箱壁)的内表面向下流,在向下流的过程中把热经管壁或箱壁传给空气(风),被冷却的油从散热器下部进入油箱,然后经各油道上升,在上升过程中把线圈和铁芯的热量带走,热油又汇于油箱上部,这样,周而复始不断循环。油浸自冷式的变压器依靠油箱壁(或散热器管壁)的辐射,和变压器周围空气的自然对流,把热量从油箱表面带走。这种变压器为了增加散热表面,有的箱壁做成波状,有的焊上管子,有的装散热器,以促进油的对流。配电变压器和发电厂的低压变等就属于这种冷却方式。
2、油浸风冷式(高厂变):在散热器上装风扇,用吹风扇的方法使空气加快流动,借此来增大散热能力的就属风冷式。吹风可使对流散热增加8.5倍。同一台变压器,用了吹风以后,容量可提高30%以上。
3、强迫油循环冷却方式:如果单纯想法降低油的温度而不增加油流的速度,那是达不到所希望的冷却效果的。因油温降到一定程度时,其粘度增加,粘度大会使散热效果变差。而人为地加快油流速度,就会使散热加快。强迫油循环冷却方式就是在油路中加入了使油的流速加快的动力—油泵。强迫油循环风冷的变压器则是将风冷却器装于变压器油箱壁上或独立的支架上。经冷却器内的油采用风扇冷却。为了防止油泵的漏油和漏气,目前广泛采用潜油泵和潜油电动机。潜油泵安装在冷却器的下面,泵的吸入端直接装在第一个油回路(冷却器为多回路的)上,吐出端通过装有流动继电器的联管接至第二回路。流动继电器的作用是,当潜油泵发生故障,油流停止时,发出信号和投入备用冷却器。 [1]
第2章 设计方案的比较与选择
2.1 单元设计方案选择
2.1.1 温度传感器的选择
方案一:DS18B20数字温度传感器
美国Dallas 半导体公司的数字化温度传感器DS1820 是世界上第一片支持 "一线总线"接口的温度传感器,在其内部使用了在板(ON-BOARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。其主要特征如下:
1、适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电;
2、独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20 的双向通讯;
3、DS18B20 支持多点组网功能,多个DS18B20 可以并联在唯一的三线上,实现组网多点测温;
4、DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;
5、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;
6、可编程的分辨率为9~12 位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;
7、在9 位分辨率时最多在93.75ms 内把温度转换为数字,12 位分辨率时最多在750ms 内把温度值转换为数字,速度更快;
8、测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC 校验码,具有极强的抗干扰纠错能力;
9、负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 DS18B20 内部结构主要由四部分组成:64 位光刻ROM、温度传感器、非挥发的温度报警触发器TH 和TL、配置寄存器。 主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温
等各种非极限温度场合。耐磨耐碰,体积小,使用方便,适用于各种狭小空间设备数字测温和控制领域。 [3]
方案二:AD590集成温度传感器
AD590是AD公司利用PN结构正向电流与温度的关系制成的电流输出型两端温度传感器.(热敏器件) AD590是美国模拟器件公司生产的单片集成两端感温电流源。它的主要特性如下:
1、流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即:mA/K式中: —流过器件(AD590)的电流,单位为mA; T—热力学温度,单位为K。
2、AD590的测温范围为-55℃~+150℃。
3、AD590的电源电压范围为4V~30V。电源电压可在4V~6V范围变化,电流 变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏,输出电阻为710MW。
4、精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。
DS18B20温度传感器具有精度更高、价格便宜、在单片机上使用方便,直接输出数字量,不用AD转换成数字量,而AD590输出模拟量,需使用AD转换数字量,在单片机上使用不方便。
综上所述,本次设计选用方案一。
2.1.2显示方式的选择
方案一:采用LCD12864液晶
本方案采用LCD12864液晶, 带中文字库的128X64是一种具有4 /8位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII 字符 集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点 阵的汉字,也可完成图形显示,低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。 [4]
在本设计中,可以发挥LCD12864显示汉字的功能,将每个直流电机的运行状态及测量的温度显示出来,使用LCD12864作为下位机显示界面同时也具有美观简介特点。
方案二:采用LCD1602液晶
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的
点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16*2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
在本设计中,可以使用1602液晶显示测量的温度及显示没个电机的运行状态(开启:ON;关闭:OFF),但1602不能显示汉字且屏幕较小以至于不能传达太大的信息。
方案三:采用LED数码管
LED数码管是由多个发光二极管封装在一起组成―8‖字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管根据LED接法的不同可分为共阴和共阳两类。对于同一种LED数码管,编写的程序代码不同对应的显示内容不同。 [5]
在本设计中,LED数码管同样可以显示温度值及每个电机的运行状态(开启:ON;关闭:OFF)。
综上所述,上述的每种方式都能达到最基本的目标即:显示温度值及电机运行状态,但1602液晶及LED数码管由于自身的局限性不能显示更多的内容如本设计的名称等,且显示界面不太美观,人性化不足,而12864液晶能达到这些要求及克服上述的缺点,故在本设计中选择方案一。
2.1.3上下位机通讯方式的选择
方案一:采用异步串行口通讯方式
串行通信是数据通过一根传输线逐位传送。当信息以串行方式传送时,只使用一条传输线, 且用脉冲传送。具体地说,是在传输线上按顺序传送表示一个数码的所有二进制位的脉冲信号,每次一位。通常第一个脉冲信号表示数码的最低有效位,最后一个脉冲信号表示数码的最高有效位,发送方在发送前要将并行数据转成串行数据,接收方接收后要完成串行数据到并行数据的转换。
数据传送按位顺序进行,最少只需要一根传输线即可完成,节省传输线。与并行通信相比,串行通信还有较为显著的优点:传输距离长,可达到数千公里;在长距离内串行数据传送速率会比并行数据传送速率快;串行通信的通信时钟频率容易提高;串行通信的抗干扰能力十分强,其信号间的互相干扰完全可以忽略。但是串行通信传送速度比并行通信传送速度慢,并行通信时间为T,则串行时间为nT。
异步传输方式中,字符是数据传输单位。在通信的数据流中,字符间异步,字符内部各位间同步。异步通信方式的“异步”主要体现在字符与字符之间通信没有严格的定时要求。异步传送中,字符可以是连续地、一个个地发送,也可以是不连
续地,随机地进行单独发送。在一个字符格式的停止位之后,立即发送下一个字符的起始位,开始一个新的字符的传输,这叫做连续的串行数据发送,即帧与帧之间是连续的。
通过MAX232芯片将单片机的TTL电平转换为RS-232电平,实现单片机与PC机之间的通讯。
异步通讯的特点:不要求收发双方的时钟的严格一致,实现容易,传输失真率低,但传输效率不高。
当距离较远时,可以RS-232接口转RS-485接口来提高传输距离。
方案二:采用蓝牙通讯方式
蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用―蓝牙‖技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。其数据速率为1Mbps。采用时分双工传输方案实现全双工传输。
Bluetooth 无线技术是在两个设备间进行无线短距离通信的最简单、最便捷的方法。它广泛应用于世界各地,可以无线连接手机、便携式计算机、汽车、立体声耳机、MP3 播放器等多种设备。由于有了―配置文件‖这一独特概念,Bluetooth 产品不再需要安装驱动程序软件。此技术现已推出第四版规格,并在保持其固有优势的基础上继续发展 — 小型化无线电、低功率、低成本、内置安全性、稳固、易于使用并具有即时联网功能。其周出货量已超过五百万件,已安装基站数超过 5 亿个。 Bluetooth 技术是一项即时技术,它不要求固定的基础设施,且易于安装和设置。您不需要电缆即可实现连接。新用户使用亦不费力 – 您只需拥有 Bluetooth 品牌产品,检查可用的配置文件,将其连接至使用同一配置文件的另一 Bluetooth 设备即可。后续的 PIN 码流程就如同您在 ATM 机器上操作一样简单。外出时,您可以随身带上您的个人局域网(PAN),甚至可以与其它网络连接。
方案三:采用串行口同步通信方式
在同步传输方式中,比特块以稳定的比特流的形式传输,数据被封装成更大的传输单位,称为帧。每个帧中含有多个字符代码,而且字符代码与字符代码之间没有间隙以及起始位和停止位。和异步传输相比,数据传输单位的加长容易引起时钟漂移。
为了保证接收端能够正确地区分数据流中的每个数据位,收发双方必须通过某种方法建立起同步的时钟。可以在发送器和接收器之间提供一条独立的时钟线路,由线路的一端(发送器或者接收器)定期地在每个比特时间中向线路发送一个短脉
冲信号,另一端则将这些有规律的脉冲作为时钟。 这种技术在短距离传输时表现良好,但在长距离传输中,定时脉冲可能会和信息信号一样受到破坏,从而出现定时误差。另一种方法是通过采用嵌有时钟信息的数据编码位向接收端提供同步信息。
综上所述,三种方案都能实现上下位机的通讯,但蓝牙通讯距离太短且数据受环境影响大容易丢失,同步传输时接线复杂,故本设计选择方案一。
2.2 系统总体方案结构及原理
本系统由上位机和下位机两个子系统构成,上位机部分由VB语言编写的可视化界面组成,通过串口将采集到的数据传到上位机显示;下位机部分主要包括五大电路即:单片机控制电路、LCD12864液晶与单片机接口电路、串口通信电路、温度采集电路、电机控制电路。
系统总体结构图如2-1所示。
图2-1 系统总体结构图 本系统工作原理如下:通过安装在变压器冷却油内部的温度传感器DS18B20
测
出实时油温,将测出的油温值与从由上位机设定并发送而来的油温标准值进行比较,若测量油温低于标准值,则不开启风扇;若测量油温高于标准值,则由单片机控制开启风扇来降温,并通过高出标准值的程度来控制开启风扇的个数,以提高工作效率并减少能耗。
上位机同时也接受下位机(单片机)传来的温度数据并显示在上位机界面上,在上位机界面中也可以显示出每个电机的运行状态。
第3章 硬件系统的设计
3.1 单片机控制单元电路的设计 单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
STC89C52RC 单片机介绍:STC89C52RC 单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单 片机,指令代码完全兼容传统 8051 单片机,12 时钟/机器周期和 6 时钟/机器周 期可以任意选择。主要特性如下:
1、 增强型 8051 单片机,6 时钟/机器周期和 12 时钟/机器周期可以任 意选择,指令代码完全兼容传统 8051;
2、工作电压:5.5V~3.3V(5V 单片机)/3.8V~2.0V(3V 单片机);
3、工作频率范围:0~40MHz,相当于普通 8051 的 0~80MHz,实际工 作频率可达 48MHz ;
4、用户应用程序空间为 8K 字节;
5、片上集成 512 字节 RAM;
6、通用 I/O 口 (32 个) 复位后为: , P1/P2/P3/P4 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻;
7、ISP(在系统可编程)/IAP(在应用可编程) ,无需专用编程器,无 需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片;
8、具有 EEPROM 功能;
9、具有看门狗功能; 10、共 3 个 16 位定时器/计数器。即定时器 T0、T1、T2;
11、外部中断 4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒;
12、通用异步串行口(UART),还可用定时器软件实现多个 UART ;
STC89C52RC 单片机的工作模式:掉电模式:典型功耗
作模式:典型功耗 4Ma~7mA 典型功耗,掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备。
STC89C52RC 引脚功能说明:
VCC(40 引脚):电源电压,VSS(20 引脚):接地,P0 端口(P0.0~P0.7 P0.7,39~32 引脚):P0 口是一个漏极开路的 8 位双向 I/O 口。作为输出端口,每个引脚能驱动 8 个 TTL 负载,对端口 P0 写入 每个引脚能驱动 写入―1‖时,可 以作为高阻抗输入。在访问外部程序和数据存储器时 在访问外部程序和数据存储器时,P0 口也可以提供低 8 位 地址和 8 位数据的复用总线 位数据的复用总线。此时,P0 口内部上拉电阻有效。在 Flash ROM 编 在 程时,P0 端口接收指令字节 端口接收指令字节;而在校验程序时,则输出指令字节 则输出指令字节。验证时,要求外接上拉电阻。 P1 端口(P1.0~P1.7,1~8 引脚):P1 口是一个带内部上拉电阻的 8 位双向 I/O 口。P1 的输出缓冲器可驱动(吸收或者输出电流方式)4 个 TTL 输入。对端 口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1 口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电 流 。 此外,P1.0 和 P1.1 还可以作为定时器/计数器 2 的外部技术输入(P1.0/T2) 和定时器/计数器 2 的触发输入(P1.1/T2EX)。 在对 Flash ROM 编程和程序校验时,P1 接收低 8 位地址。P2 端口(P2.0~P2.7,21~28 引脚):P2 口是一个带内部上拉电阻的 8 位双 向 I/O 端口。 P2 的输出缓冲器可以驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写入 1 时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。 P2 作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会 输出一个电流(I)。 在访问外部程序存储器和 16 位地址的外部数据存储器(如执行―MOVX @DPTR‖指令)时,P2 送出高 8 位地址。在访问 8 位地址的外部数据存储器(如 执行―MOVX @R1‖指令)时,P2 口引脚上的内容(就是专用寄存器(SFR)区 中的 P2 寄存器的内容),在整个访问期间不会改变。 在对 Flash ROM 编程和程序校验期间, P2也接收高位地址和一些控制信号。 P3 端口(P3.0~P3.7,10~17 引脚) :P3 是一个带内部上拉电阻的 8 位双向 I/O 端口。P3 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端 口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3 做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一 个电流。 在对 Flash ROM 编程或程序校验时,P3还接收一些控制信号。 P3 口除作为一般 I/O 口外,还有其他一些复用功能。 RST(9 引脚) :复位输入。当输入连续两个机器周期以上高电平时为有效, 用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST 引脚输出 96 个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功 能无效。DISRTO 默认状态下,复位高电平有效。ALE/ ROG(30 引脚) 地址锁存控制信号 :(ALE)是访问外部程序存储器时, 锁存低 8 位地址的输出脉冲。在 Flash 编程时,此引脚( ROG)
也用作编程输入 脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部 定时器或时钟使用。然而,特别强调的是在每次访问外部数据存储器时,ALE 脉冲 将会跳过。如果需要通过将地址位 8EH 的 SFR 的第 0 位置―1‖ ,ALE 操作将无效。这 一位置―1‖ ,ALE 仅在执行 MOVX 或 MOV 指令时有效。否则,ALE 将被微弱拉 高。这个 ALE 使能标志位(地址位 8EH 的 SFR 的第 0 位)的设置对微控制器处于 外部执行模式下无效。外部程序存储器选通信号( SEN)是外部程序存储器选 SEN(29 引脚)通信号。当 STC89C52RC 从外部程序存储器执行外部代码时, SEN在每个机器周 期被激活两次,而访问外部数据存储器时, SEN将不被激活。EA/VPP (31 引脚) 访问外部程序存储器控制信号。 为使能从 0000H 到 FFFFH 的外部程序存储器读取指令, ALE必须接 GND。注意加密方式 1 时, ALE将内部锁 定位 RESET。为了执行内部程序指令, EA应该接 VCC。在 Flash 编程期间, A也 接收 12 伏 VPP 电压。 XTAL1(19 引脚):振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2(18 引脚):振荡器反相放大器的输入端。
图3-1 单片机最小系统
3.1.1 复位电路
为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。当复
位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。
主控芯片采用按键复位。按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。
3.1.2 时钟电路
单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。STC89C52RC单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。STC89C52RC使用11.0592MHz的晶体振荡器作为振荡源,电容容量一般在15pF至50pF之间。
[6]
3.2 温度传感器接口电路的设计
温度传感器DS18B20是单总线接口的温度传感器,具有三个引脚,其引脚定义为:GND为电源地;DQ为数字信号输入/输出端;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。在本设计中DQ引脚接单片机P2.0引脚,来实现传感器与单片机之间的数据连接。其与单片机接口电路如图3-2所示。
[7]
图3-2 DS18B20接口电路
3.3 电机驱动模块电路的设计
L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W;具有信号指示;转速可调;抗
干扰能力强;具有过电压和过电流保护;可单独控制两台直流电机;可单独控制一台步进电机;PWM脉宽平滑调速;可实现正反转。L298N内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。图3-5为电机驱动模块电路图,OUT1、OUT2和OUT3、OUT4之间分别接两个电机,IN1、IN2、IN3、IN4引脚从单片机接输入控制电平,控制电机的正反转,ENA、ENB控制电机的停转。电机控制模块电路图如图3-3所示。
图3-3 电机驱动模块电路图
3.4 液晶与单片机接口电路的设计
LCD12864液晶, 带中文字库的128X64 是一种具有4位/8位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII 字符 集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字,也可完成图形显示,低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
基本特性: 低电源电压(VDD:+3.0--+5.5V)、显示分辨率:128×64点、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选);内置 128个16×8点阵字符;2MHZ时钟频率 ;显示方式:STN、半透、正显 ;驱动方式:1/32DUTY,1/5BIAS;视角方向:6点;背光方式:侧部高亮白色LED;通讯方式:串行、并口可选 ;内置DC-DC转换电路,无需外加负压;无需片选信号,简化软件设计;工作温度: 0℃ - +55℃;
存储温度: -20℃-+60℃ 。
在本设计中LCD12864主要引脚连接介绍如下:3引脚接滑动变阻器滑动端用于调节显示屏的明亮程度;4引脚(指令/数据选择端)接单片机P3.4引脚;5引脚(读写控制端)接单片机P3.5引脚;6引脚(使能信号端)接单片机P3.5引脚;7~14引脚接单片机P0口,用于单片机与液晶的数据传输。LCD12864与单片机接口电路如
[9]
图3-4所示。
图3-4 LCD12864与单片机接口电路
3.5 串行通信模块电路的设计
温度传感器给单片机传送数据后,经MAX232进行电平转换,可实现单片机与PC机(上位机)的通信,以便将显示数据信息通过此电路传送到PC机,并在PC机上显示。
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5V单电源供电。
[10]
第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。 TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。15脚GND、16脚VCC(+5V) RS232 (DB9)引脚定义:
1、DCD :载波检测。主要用于Modem通知计算机其处于在线状态,即Modem检测到拨号音,处于在线状态。
2、RXD:此引脚用于接收外部设备送来的数据;在你使用Modem时,你会发现RXD指示灯在闪烁,说明RXD引脚上有数据进入。
3、TXD:此引脚将计算机的数据发送给外部设备;在你使用Modem时,你会发现TXD指示灯在闪烁,说明计算机正在通过TXD引脚发送数据。
4、DTR:数据终端就绪;当此引脚高电平时,通知Modem可以进行数据传输,计算机已经准备好。
5、GND:信号地;此位不做过多解释。
6、DSR:数据设备就绪;此引脚高电平时,通知计算机Modem已经准备好,可以进行数据通讯了。
2
7、RTS:请求发送;此脚由计算机来控制,用以通知Modem马上传送数据至计
算机;否则,Modem将收到的数据暂时放入缓冲区中。
8、CTS: 清除发送;此脚由Modem控制,用以通知计算机将欲传的数据送至Modem。
9、RI : Modem通知计算机有呼叫进来,是否接听呼叫由计算机决定。 电路图如图3-5所示。
图3-5 串口通信模块电路图
3.6电源电路的设计
电源电路的设计主要是分为两部分。一部分是+5V稳压电源,用于给安装的两个电机驱动模块供电,另外一部分是给单片机及液晶供电的USB电源电路。
3.6.1 +5V稳压电源电路
78XX系列集成稳压器的典型应用电路如图3-6所示,这是一个输出+5V直流电压的稳压电源电路。IC采用集成稳压器LM7805,C22、C23、C24分别为输入端和输出端滤波电容,当输出电较大时,LM7805应配上散热板。本设计中外接电源为+12V,经该电路提供给L298N+5V电源 。
JP13图3-6 +5V稳压电源电路
3.6.2 USB电源电路
在本设计中由于单片机直接与电脑相连,所以单片机的电源电路采用USB供电。根据目前通行的USB1.1规范,USB接口可以提供5V±5%的电压为外部设备供电,每个端口最大输出电流为500mA,因此其输出功率不能超过2.25W,超过了这个功率的外部设备就需要配备外置电源。其电源电路如图3-7所示。
图3-7 USB电源电路
第4章 软件部分的设计
4.1 下位机软件设计
4.1.1 keil C51介绍
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
[10]
Keil C51开发系统基本知识:
1、系统概述:Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil 的优势。下面详细介绍Keil C51开发系统各部分功能和使用。
[11]
2、Keil C51单片机软件开发系统的整体结构:C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。
[12]
4.1.2 Protel 99SE介绍
Protel 99SE是Protel公司(现已更名为Altium公司)于2000年推出的一款EDA设
计软件,是Protel家族中性能较为稳定的一个版本。Protel 99SE的功能十分强大,集原理图设计、可编程逻辑器件的建立、电路混合信号仿真、印制电路板(PCB)设计与布线、信号完整性检查以及设计规则分析等功能于一身,在电子电路设计领域占有极其重要的地位,获得广大硬件设计人员的青睐,是目前众多电路板EDA设计软件中用户最多的产品。
Protel 99SE的系统组成:
1、电路工程设计部分。(1)电路原理设计部分:电路原理图设计部分包括电路图编辑器(简称SCH编辑器)、电路图零件库编辑器(简称Schlib编辑器)和各种文本编辑器。本系统的主要功能是:绘制、修改和编辑电路原理图;更新和修改电路图零件库;查看和编辑有关电路图和零件库的各种报表。(2)印刷电路板设计系统:印刷电路板设计系统包括印刷电路板编辑器(简称PCB编辑器)、零件封装编辑器(简称PCBLib编辑器)和电路板组件管理器。本系统的主要功能是:绘制、修改和编辑电路板;更新和修改零件封装;管理电路板组件。(3)自动布线系统:系统包含一个基于形状(Shape-based)的无栅格自动布线器,用于印刷电路板的自动布线,以实现PCB设计的自动化。
2、电路仿真与PLD部分:(1)电路模拟仿真系统:电路模拟仿真系统包含一个数字/模拟信号仿真器,可提供连续的数字信号和模拟信号,以便对电路原理图进行信号模拟仿真,从而验证其正确性和可行性。(2)可编程逻辑设计系统:可编程逻辑设计系统包含一个有语法功能的文本编辑器和一个波形编辑器(Waveform)。本系统的主要功能是;对逻辑电路进行分析、综合;观察信号的波形。利用PLD系统可以最大限度的精简逻辑部件,使数字电路设计达到最简化。(3)高级信号完整性分析系统: 信号完整性分析系统提供了一个精确的信号完整性模拟器,可用来分析PCB设计、检查电路设计参数、实验超调量、阻抗和信号谐波要求。
Protel 99SE电路板设计步骤:(1)电路原理图的设计:电路原理图的设计主要是Protel 99SE的原理图设计系统(Advanced Schematic)来绘制一张电路原理图。在这一过程中,要充分利用Protel 99SE所提供的各种原理图绘图工具、各种编辑功能,来实现我们的目的,即得到一张正确、精美的电路原理图。(2)产生网络表:网络表是电路原理图设计(SCH)与印制电路板设计(PCB)之间的一座桥梁,它是电路板自动的灵魂。网络表可以从电路原理图中获得,也可从印制电路板中提取出来。(3)印制电路板的设计:印制电路板的设计主要是针对Protel 99SE的另外一个重要的部分PCB而言的,在这个过程中,我们借助Protel 99SE提供的强大功能实现电路板的版面设计,完成高难度的等工作。
[13]
4.1.3 DS18B20工作流程图
DS18B20测温原理流程图如图4-1所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1 和温度寄存器被预置在-55℃所对应的一个基数值。计数器1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1 的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图4-1中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
置位/清除
图4-1 DS18B20测温原理流程图
4.1.4 LCD12864工作流程图
LCD12864有四种基本操作:LCD12864初始化、写命令操作、定义光标位置、读状态操作,在本设计中用到前三种操作。
LCD12864初始化:从通电开始通过延时,先经过判忙后再进行功能设置,过一段时间后可以设置显示状态(如设置行、位或阵列)再经过清屏后可以设置输入方式。
写命令操作:当RS=0,R/W=0时,才可以通过单片机或用户指令把数据即命令,
写到LCD模块,此时就对LCD进行调制。可采用查询方式:先读入状态字,再判断忙标志,最后写命令字。
读命令操作:执行读状态字操作,须满足RS=0、R/W=1。根据管脚功能,当为有效电平时,状态命令字可从LCD模块传输到数据总线。同时可以保持一段时间,从而实现读状态字的功能。
定义光标位置:把显示数据要某个位置,就是把显示数据写在相应的DDRAM地址中,DDRAM地址占7位。Set DDRAM address 命令。光标定位,写入一个显示字符后,DDRAM地址会自动加1或减1,加或减由输入方式设置。第一行DDRAM地址与第二行DDRAM地址并不连续。
LCD显示程序的设计一般先要确定LCD的初始化、光标定位、确定显示字符后,LCD就可以按如图4-2显示。
图4-2 LCD12864显示程序流程图
4.1.5 下位机总体流程
下位机主程序的流程可以表述如下:上电后对系统初始化,包括I/O口设置初始化、外围设备控制初始化,然后通过计算机通信接受上位机传来的数据及指令,最后是响向上位机上传数据。
下位机主程序流程如图4-3所示。
图4-3 下位机主程序流程图
4.2 上位机软件设计 VB 就是Visual Basic的意思,是一种常用的编程开发工具。它的基础是编程语言Basic,Visual Basic简单点来说就是微软为了更好的让人们学习编程,应用上 Basic 开发语言的一套工具,简称就是VB。VB的面世使原本极其复杂困难的编程、软件开发的工作变得简单。最初的编程工作都是依靠全套的代码去进行的,工程量极大。Microsoft就是看准了这个人们渴求快速发展软件开发行业的商机,利用自己的技术实力研发出VB这么一套完善的编程工具。VB把过往的纯代码编程过度到可视化编程,将一些经常要使用到的功能以一个个的控件的形式出现,例如Label(标签)、TextBox(文本框)等等的。他们在以前的编程工作中需要在使用时重复多次的输入同样的代码去实现这个功能,而这些代码不是小工程,耗费了很大的人力物力和很
21
多的时间。所以有了VB之后,编程的工作也就可以普及啦,可以免去了机械的重复的代码的输入,又可以一面编辑核心功能一面进行界面优化美化,一劳多得啊。
VB语言特征:VB的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用了可以简单建立应用程序的GUI系统,但是又可以开发相当复杂的程序。VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组建的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面VB程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。
窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。
VB的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。
VB的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。
VB使用引用计数的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组建的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,VB对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。
VB使得大量的外界控件有了自己的生存空间。大量的第三方控件针对VB提供。VB也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。
VB发展历史:1991年,微软公司推出了Visual Basic 1.0。当时引起了很大的轰动。这个连接编程语言和用户界面的进步被称为Tripod(有些时候叫做Ruby),最初的设计是由阿兰·库珀(Alan Cooper)完成的。许多专家把VB的出现当做是软件开发史上的一个具有划时代意义的事件。在当时,它是第一个―可视‖的编程软件。这使得程序员欣喜之极,都尝试在VB的平台上进行软件创作。微软也不失时机地在四年内接连推出2.0、3.0、4.0三个版本。并且从VB3.0开始,微软将Access的数据库驱动集成到了VB中,这使得 VB 的数据库编程能力大大提高。从VB4.0开始, 22
VB 也引入了面向对象的程序设计思想。VB功能强大,学习简单。而且VB还引入了―控件‖的概念,使得大量已经编好的VB程序可以被我们直接拿来使用。
2002年开始,微软将.NET Framework与Visual Basic 结合而成为Visual Basic .NET (vb .net),重新打造VB,新增许多特性及语法,又将VB推向一个新的高度。最新版本Visual Basic 2012也带将来许多令人期待的新功能。
通过几年的发展,它已成为一种专业化的开发语言和环境。用户可用Visual Basic 快速创建Windows程序,并可编写企业水平的客户端/服务器程序及强大的数据库应用程序。
在Visual Basic中,可通过属性、方法和事件来说明和衡量一个对象的特征。 事件:事件是指发生在某一对象上的事情。事件又可分为鼠标事件和键盘事件。例如,在命令按钮(Command Button)这一对象上可能发生鼠标单击(Click)、鼠标移动(Mouse Move)、鼠标按下(Mouse Down)等鼠标事件,也可能发生键盘按下(Key Down)等键盘事件。总之,事件指明了对象―什么情况下做?‖,常用于定义对象发生某种反映的时机和条件。
方法:方法是用来控制对象的功能及操作的内部程序。例如,人具有说话、行走、学习、睡觉等功能,在Visual Basic中,对象所能提供的这些功能和操作,就称作―方法‖。以窗体为例,它具有显示(show)或隐藏(hide)的方法。总之,方法指明了对象―能做什么?‖,常用于定义对象的功能和操作。
属性:属性是指用于描述对象的名称、位置、颜色、字体等特征的一些指标,可以通过属性改变对象的特性。有些属性可以在设计时通过属性窗口来设置,不用编写任何代码;而有些属性则必须通过编写代码,在运行程序的同时进行设置。可以在运行时读取和设置取值的属性成为读写属性,只能读取的属性成为只读属性。总之属性指明了对象―是什么样的?‖,常用于定义对象的外观。 [14]
VB通信控件MSComm:MSComm控件提供了功能完善的串口数据的发送和接收功能,MSComm控件具有两种处理方式:1、事件驱动方式:由MSComm控件的OnComm事件捕获并处理通信错误及事件;2、查询方式:通过检查CommEvent属性的值来判断事件和错误。MSComm控件的通信功能实现,实际上是调用API函数,API函数是Comm.drv解释并传给设备驱动程序执行的,对于VB程序开发者只需知道MSComm控件的属性和事件的用法即可以实现串口的操作。
以下是MSComm控件的主要属性和方法:(1)CommPort:设置或返回串行端口号其取值范围1~99,缺省为1。(2)Setting设置或返回串行端口的波特率、奇偶校验位、数据位数、停止位。如:MSComm.Setting=―9600,N,8,1‖。(3)PortOpen: 打开或关闭串行端口,格式为:MSComm.PortOpen={TRUE|FALSE}。(4)InBufferSize:设置或返回接收缓冲区的大小,缺省为1024字节。(5)InBufferCount:返回接收缓冲区内的等待读取的字节个数,可通过设置该属性为0来清除接收缓冲区。(6) 23
RThreshold:该属性为一阀值,它确定当接收缓冲区内字节个数达到或超过该值后就产生代码为MSCOMM_EV_RECEIVE的OnComm事。(7)InputLen:设置或返回接收缓冲区内Input读入的个数。若取0,则INPUT读取整个缓冲区的内容。(8)
Input:该属性表示从接收缓冲区移走一串字符。(9)OutBufferSize:设置或返回发送缓冲区,缺省512字节。(10)OutBufferCounter:返回发送缓冲区内等待发送的字符。 [15]
上位机显示使用Visual Basic语言制作上位机界面,系统所设定的温度标准值和温度间隔均有上位机发送给下位机的。本系统的上位机显示界面如图4-4所示,左侧的串口选择部分用于通讯设置,方便不同的环境下使用,一般波特率设置9600bps,其他的根据各自的情况设定,当串口正常工作时,下面的指示灯呈绿色;右上方的部分为“温度值”显示界面,界面上的标准值和温度间隔为根据不同的境况人为设定的,实测值为从下位机上传的温度值的显示;右下侧电机运行状态部分显示为四个电机的开关状态,当指示灯为绿色时表明此电机运转,黑色表明电机停止。
24
25
4.3 系统总体流程
本系统的总流程为:首先上下位机初始化和上位机设置温度数据,然后上位机向下位机传送数据,等下位机接受到数据以后开始进行测温,然后将每次测量的温度与上位机传来的标准值和温度范围进行比较从而控制电机的开关,同时向上位机传送温度数据,供上位机显示及比较。总流程图如图4-5所示。
26
图4-5 系统总体流程图
27