51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 课题设计文章 > 详细内容
基于AVR电动机智能启动器设计
发布时间:2009/6/2  阅读次数:4807  字体大小: 【】 【】【

作者:未知   来源:网络

目       录
前言  1
第一章 概述  2
1.1 背景介绍  2
1.2 毕业设计任务和要求  3
1.3 论文结构和说明  3
第二章 总体方案  4
第三章 基于AVR电动机智能启动器的硬件设计  6
3.1 硬件设计方案  6
3.2 芯片选型及相关介绍  6
3.2.1 AVR单片机ATmega16  6
3.2.2 CH447L读写控制芯片  10
3.3 硬件功能模块的设计  12
3.3.1 三相模拟信号的预处理模块  12
3.3.2 AVR单片机系统模块  13
3.3.3 继电器驱动模块  16
3.3.4 读写显示功能模块  17
3.3.5 电源模块设计  23
3.3.6 接口的设计  23
3.4 电路板的设计  25
3.4.1 原理图的绘制  25
3.4.2 PCB板的生成  27
3.5 本章小结  28
第四章 基于AVR电动机智能启动器的软件设计  30
4.1 软件设计方案  30
4.2 软件开发语言、工具和环境介绍  30
4.3 程序设计  31
4.3.1 初始化和主程序  31
4.3.2 基础功能模块  33
4.3.3 中断  39
4.3.4 保护算法  39
第五章 总结与展望  44
6.1 毕业设计总结  44
6.2 工作展望  44
参考文献  46
致谢  47
附录材料  48

前言

       随着国民经济的飞速发展,科学技术的日新月异,智能控制系统得到了广泛的应用。如:智能大厦、无人值守泵站、无人值守供热站、各种遥控调度系统、生产作业自动化等等。这正是国家实现科学技术现代化的重要标志,也是每一个技术人员肩负的重要责任。智能控制技术的应用,给我们提出了很多要求。如工作过程的安全性,执行机构的智能配套等,都越来越严格。作为重要驱动执行机构的电动机来说,它的控制方式受到广大技术人员的高度重视。既要为智能控制打下良好基础,又要降低电动机起动时的故障发生。所以,不得不在电动机的起动设备上做工作。
       为此我选择了基于AVR单片机的电动机智能启动器的设计这一课题。基于AVR单片机的电动机智能启动器的设计采用了目前市面较为流行的ATmega16 八位微处理器进行启动的程序控制,解决了各种在启动和运行过程中的故障检测和实时保护动作,键盘和显示部分则采用了功能强大的CH447L读写显示芯片,最终实现电机降压启动的智能保护和功能完善的人机界面。
       在经过仿真调试和参考大量国内外文献资料后,我结合自己的经验教训和心得体会编写了此文,文中详细阐述了其硬件和软件的基本原理,提出了设计思想,设计方法和实践途径。本文共分五章:第一章简述了多功能智能启动器的应用与发展;第二章概述了本课题的总体设计方案;第三章主要讲述了课题设计的硬件部分和电路板的制作,以及设计过程中遇到的问题及解决方案;第四章主要讨论了课题设计的软件部分,对各功能模块做了详细说明包括用AVR studio仿真时所遇到的问题和最终解决方案等;第五章对整个课题的设计做了总结及展望。
由于水平有限,论文中的错误和疏漏之处在所避免,敬请各位老师批评指正。

第一章 概述


1.1 背景介绍
       随着科技的飞速发展和国民经济的稳步上升,电机设备得到了广泛的应用,数千台电动机同时运作的大企业已屡见不鲜,可以说我国已进入了高度工业化时期。而且人们的日常生活如交通、运输也已离不开电动机。然而由于我国自动化起步较晚,控制思想不如西方发达国家成熟和完善,在工农业生产中经常由于某些无法预知的因素,如三相电流严重不平衡、过电流、缺相、过载、堵转等使电动机发生故障,而电动机通常是企业内转动设备的主要动力,大量电动机的停运给企业造成很大经济损失及生产的混乱,特别是大型连续化生产要求非常高的危急企业,还可能引发其他设备及人身事故,损失更为严重。因此携带保护功能的电动机智能启动器成了众多电机用户的首选。它不仅具有普通保护功能而且还在经常被忽略的启动阶段对电动机进行监控保护。
       近几年来对智能启动器的研究已进入白热化,从热继电保护启动到电子智能启动,市面上的启动保护装置已层出不穷。但往往价格颇高,大型企业还是一如既往地选择国外进口产品,真正属于中低档用户的产品还是不多。就是在这样一个背景下,我们采用了目前广为流行的8位AVR芯片ATmega16作控制核心,实现控制功能的进一步完善和成本的降低。
以前保护动作装置都以双金属片热继电器为主,它在保护电动机过载方面具有较好的效果,并且结构很简单,但在功能和动作特性上存在严重不足。近年来电动机启动保护装置开始向智能化、微机化、数字化方向发展,但目前对电动机启动阶段的保护比较单一,一般都采用启动定时限保护。该功能虽然可以基本满足启动时间较长电动机启动过程保护的需要,但对于启动时间较短或很大功率的电动机,采用该方法可能会引起电动机的损坏。因此我们选择了运用三个电磁继电器切换的方式来实现启动阶段与运行阶段的分别保护。
       有别于46单片机的AVR芯片具有独立的模拟I/O口和内部AD转换器。因此我们将它与功能强大的CH447L读写显示芯片配合,读写显示部分的处理单独由CH447L这个芯片来完成,毫无疑问减轻了AVR控制芯片的负担。不仅实现了控制的简单模块化而且节约了控制芯片的内部资源。
1.2 毕业设计任务和要求
       本课题主要是启动器的智能控制,其中包括电源设计、控制系统设计、继电器电路设计以及相关软件的编写。要求熟悉AVR系统的开发流程,掌握电动机启动过程的保护要领,掌握工程开发的系统步骤与技巧。
智能启动器的设计分为模拟信号的采集,信号的分析处理和键盘显示三部分。开始我们打算和其他同学一样采用软硬件分开的任务分工制,但在实施两周后,发现对于一个项目来说,把软硬件完全分开来设计是很不合理的,而且对个人知识的掌握也有局限性,所以我们打算软硬相结合,我在负责硬件的同时还涉及到基础软件模块驱动程序的设计。另外,该课题我们采用了两种采样方式。我负责直流采样的方案即在三相信号进入单片机之前,采用相关模拟电路先整流、滤波,将交流信号先转化为直流信号,再对直流信号进行处理,我认为这样做会比直接采用交流采样简单,不用考虑相位变化信息,相对而言对单片机的内部资源的占用也少得多,工作方面软硬件都涉及到了,具体内容包括电路原理图设计,电路板设计,软件功能(AD转换、数字滤波、采样、键盘、显示和部分保护方案)及调试等部分。这样软硬结合的分工,能够使我们得到全方位的学习和锻炼。
1.3 论文结构和说明
       本篇论文共分五章:第一章介绍了本课题的背景,引出了智能启动器的研究与开发;第二章介绍了本次设计的总体方案;第三章重点介绍了本设计中硬件部分的模块化设计以及PCB板的绘制过程;第四章主要介绍了系统软件部分的程序设计方案,软件功能模块等,第五章则是对本次设计的总结及其今后的展望。

第二章 总体方案


       本课题我主要采用模块化的设计方案,先对三相交流信号(电压、电流)进行整流和滤波,再由单片机的模拟I/O口输入单片机,在单片机内部进行A/D转换、数字滤波、比较、保护判断等,最后将信息输出给继电器模块使其响应动作。总体主要分硬件设计和软件设计两部分。

       硬件部分采用的高速的AVR ATmega16单片机进行全局控制;人机界面则运用了CH447L读写显示芯片专门用于控制数码管的驱动和键盘的扫描,真正实现了模块化控制;模拟电路部分用来对输入的电信号进行预处理(整流、滤波),实现交流到直流的转换,当然这时的直流还会有许多纹波,不是真正意义上的直流,所以还要经过软件部分的数字滤波才能消除部分纹波,减少误差。继电器的驱动电路模块用来实现继电器的开通和关断。而减压启动和保护部分分别用三个继电器的通断来实现。电源设计要求提供12V和+5V两个电压。它只需要硬件电路,没有软件方面的要求,通过简单的参数计算过程就可以画出相应原理图。
       软件部分主要采用分层和功能模块化设计,第一层是基础层包括:继电器、键盘、显示、A/D以及硬件滤波等;第二层主要是中断,包括外部中断和定时中断,前者用于键盘功能模块,后者用于计时、启动和保护;第三层是保护算法用于实现各种保护功能(过流、过压、过载、堵转、断相、三相不平衡等)。

       虽然软硬件分开设计,但是在一个项目的运行中,硬件和软件是始终分不开的,它们是相辅相成的。没有硬件,软件无法运行,没有软件,硬件则无法实现其功能。在本设计中,我软硬件结合,相互交叉进行,使得自己在软硬件方面都得到了很好的学习和提高。

       另外本课题我采用了直流采样的信号处理方式,这也是本设计中我和同组同学的最大差异之处,相对交流采样而言,直流采样相对简单些,涉及计算少,占用系统资源少。但其也有相应的缺点,如无法对零序电流进行处理,无法计算功率等。每一个方案都有其优缺点,由于以前没有独立设计一个大项目的经验,我选择了相对简单的直流采样,但对我来说这也是第一次尝试,我希望自己能够尽力去做好。


第三章 基于AVR电动机智能启动器的硬件设计


3.1 硬件设计方案
       基于AVR的智能启动器的硬件设计分电源模块、单片机系统模块、继电器驱动控制电路模块和读写显示芯片控制电路模块。三相模拟信号的预处理(包括整流,电平匹配)用自搭电路的形式完成。
因单片机和CH447L均需5V直流电源驱动,而继电器需12V直流电源驱动,故电源模块提供两路电源信号。
单片机系统电路模块包括AVR芯片与电源、外部晶振、下载接口ISP和仿真接口JTAG的连接;继电器驱动控制电路模块包括三个继电器动作的逻辑控制电路、信号放大驱动电路和抗干扰电路等;读写显示芯片(CH447L)控制电路模块包括LED显示、键盘以及CH447L芯片与各模块元件的连接。

3.2 芯片选型及相关介绍
       本设计以单片机为应用核心,通过单片机控制各种外围芯片及电路。重点是单片机ATmega16及键盘显示芯片CH447L、继电器驱动电路、键盘电路和数码显示电路的应用。电信号经过模拟电路整流滤波处理后由AVR的模拟输入口输入单片机内部经过分析处理。如果存在危险,由继电器驱动电路来驱动一号继电器进行保护动作,同时将控制信号传入CH447L来驱动LED的故障显示;如果没有危险,继电器不动作。我们还可以通过键盘对显示和时间等进行设置,最终实现电动机启动的智能控制和实时保护。
3.2.1 AVR单片机ATmega16
       AVR 单片机是ATMEL公司推出的精简指令集单片机系列,它内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与算术逻辑单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10倍的数据吞吐率。另外它的程序存储器是片内Flash,可以修改上千次,对新产品的开发以及升级都十分方便。我所选用的ATmega16是AVR众多子系列中的一种。
1. ATmega16的优点
       相对于其他芯片,ATmega16中具有 16K字节的系统内可编程Flash(具有同时读写的能力),462字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。
       另外片内ISP Flash 允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。
       正是基于ATmega16以上众多优点我选择了该芯片,而且它价格合理,功能强大,极其符合我们设计中低档智能启动器的设计理念。
2.引脚的配置

图3-1.ATmega16的引脚
  

       如图3-1所示,端口A(PA0-PA7)做为A/D转换器的模拟输入端,亦可作为8位双向I/O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口A也处于高阻状态。
       端口B(PA0-PA7)、端口C(PA0-PA7)和端口D(PA0-PA7)与A口类似,不同之处在于它们的第二功能。
RESET——复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。持续时间小于门限间的脉冲不能保证可靠复位。
AVCC——端口A与A/D转换器的电源。不使用ADC时,该引脚应直接与VCC连接。使用ADC时应通过一个低通滤波器与VCC连接。
XTAL1——反向振荡放大器与片内时钟操作电路的输入端。
XTAL2——反向振荡放大器的输出端。
AREF ——A/D的模拟基准输入引脚。
VCC   ——数字电路的电源。
GND   ——地。

3.ATmega16的内部资源

(1)AVR CPU 内核
       AVR   CPU 的主要任务是保证程序的正确执行,它能够访问存储器、执行运算、控制外设以及处理中断。它包含了ALU- 算术逻辑单元、状态寄存器、通用寄存器(X、Y、Z)、堆栈指针、指针执行时序、复位与中断处理等。

(2)AVR ATmega16的存储器
       AVR有两个主要的存储器空间:数据存储器空间和程序存储器空间。此外,ATmega16 还有EEPROM存储器用来保存数据。这三个存储器空间都为线性的平面结构。另外16K字节的在线编程Flash,用于存放程序指令代码。

(3)系统时钟
       AVR ATmega16 的系统时钟有CPU时钟、I/O时钟、异步定时器时钟和ADC时钟。时钟源分为两种:外部时钟和内部时钟。该课题所选择的是外部时钟(外部晶体振荡器)。XTAL1与XTAL2分别为用作片内振荡器的反向放大器的输入和输出,如图3-2所示。熔丝位CKOPT用来选择放大器模式,当CKOPT被编程时振荡器在输出引脚产生满幅度的振荡。这种模式适合于噪声环境,而且这种模式的频率范围比较宽。当保持CKOPT为未编程状态时,振荡器的输出信号幅度比较小。大大降低了功耗,但是频率范围比较窄,不能驱动其他时钟缓冲器。


3-2   晶体振荡器连接图

       晶振参数的设定:在本设计中我选用了7.3728Hz的晶振,因为该频率不仅可以提供标准触发信号而且可以降低功耗节约单片机内部资源及产生标准串行波特率。

(4)系统复位
       ATmega16 有5个复位源:上电复位、外部复位、看门狗复位、掉电检测复位和JTAG AVR复位。本设计主要采用了上电复位(开关机时)和看门狗复位(单片机故障时)。

(5)I/O端口
       每个端口都有三个I/O存储器地址:数据寄存器——PORTx、数据方向寄存器——DDRx和端口输入引脚——PINx。每个端口引脚都具有三个寄存器位:DDxn、PORTxn和PINxn分别位于相应的寄存器。
  
(6)计数器
       本设计只需采用一个定时中断计数器即T1,并采用了快速PWM模式。T/C可以由内部同步时钟或外部异步时钟驱动,如果没有时钟源T/C就不工作。CPU只能间接访问TCNT1H寄存器,读取TCNT1L时,临时寄存器的内容更新为TCNT1H的数值;执行写操作时,TCNT1H被临时寄存器的内容所更新。计数器的计数序列取决于寄存器TCCR1A和TCCR1B中标志位WGM13:0的设置。

(7)AD转换器
       内置AD转换器既是本单片机重要特点之一也是本设计的重点。它是一个10位的逐次逼近型ADC,与一个8通道的模拟多路复用器连接,能对来自端口A的8路单端输入电压进行采样。并且包含一个采样保持电路,以确保在转换过程中的电压恒定。
ADC由AVCC引脚单独提供电源。AVCC与VCC之间的偏差不能超过±0.3V。器件内含2.56V的基准电压和AVCC。
数模转换过程:在ADEN为1的情况下,再把ADC启动位ADSC写逻辑1,转换将在ADC时钟脉冲(ADC Clock)的下一个上升沿时启动。真正的采样保持操作在转换启动后的1.5个ADC时钟周期处开始。在转换过程中,ADSC位保持1;转换完成时,它将被硬件自动清0。
ADC开放后第一次A/D转换,将有一个使ADC初始化的转换作为先导。这次转换与通常转换差别就是要多12个ADC时钟周期。
       ADC时钟脉冲可以接受的频率范围为50~200kHz。时钟频率过高会降低转换精度。它有系统时钟信号和一个可设定分频比的分频器提供频率。
       ADC转换结束后(ADIF=1),转换结果被放入ADC结果寄存器(ADCL,ADCH)。单次转换的结果计算式如下:


式中,为被选中的引脚的输入电压,为参考电压

3.2.2 CH447L读写控制芯片
       本设计采用了功能强大的CH447L读写芯片,它用于数码管显示驱动和键盘扫描控制,并且内置时钟振荡电路,可以动态驱动8位数码管或者64位LED,具有BCD译码、闪烁、移位、段位寻址、光柱译码等功能;同时还可以进行64键的键盘扫描;CH447L通过可以级联的4线串行接口或者2线串行接口与单片机等交换数据;可以对单片机提供上电复位信号。它具有如下优点:
显示驱动:
       内置电流驱动级,段电流不小于15mA,字电流不小于80mA。动态显示扫描控制,直接驱动8位数码管、64位发光管LED或者64级光柱。可选数码管的段与数据位相对应的译码方式或者BCD译码方式。BCD译码支持一个自定义的BCD码,用于显示一个特殊字符。数码管的数据左移、右移、左循环、右循环。各数码管的数字独立闪烁控制,可选快慢两种闪烁速度。任意段位寻址,独立控制各个LED或者各数码管的各个段的亮与灭。64级光柱译码,通过64个LED组成的光柱显示光柱值。扫描极限控制,支持1到8个数码管,只为有效数码管分配扫描时间。可以选择字驱动输出极性,便于外部扩展驱动电压和电流。

键盘控制:
       芯片内置64键键盘控制器,本设计选择4×2矩阵键盘扫描。内置按键状态输入的下拉电阻,内置去抖动电路。键盘中断,可以选择低电平有效输出或者低电平脉冲输出。提供按键释放标志位,可供查询按键按下与释放。支持按键唤醒,处于低功耗节电状态中的CH447L可以被部分按键唤醒。

外部接口:
       同一芯片,可选高速的4线串行接口或者经济的2线串行接口。本设计采用了4线串行接口,它支持多个芯片级联,时钟速度从0到2MHz,DIN和DCLK信号线可以与其它接口电路共用,节约引脚。内置上电复位,可以为单片机提供高电平有效和低电平有效复位输出。

3.3 硬件功能模块的设计
3.3.1 三相模拟信号的预处理模块

本模块主要处理的是将输入的原始信号进行硬件滤波和整流。
其电路原理图如下:
◆电压部分:

  

◆电流部分

图 3-3. 硬件整流和滤波电路
       电流要先进电流互感器,将电流量转化为相应的电压量,因为单片机内部是对电压量进行分析处理的。经过互感器后再经一个整流桥图中D4、D5、D6等,将交流电转化为有纹波的直流,然后经过模拟滤波电路(由电阻、二级管、电容等组成)处理,电路图如图3-3所示。
       电压部分和电流部分原理一样,不同之处在于电压部分是经过电压互感器(变压)后在进行整流、滤波处理。
3.3.2 AVR单片机系统模块

3-4   ATmega16系统模块

(1)I/O 端口
       如图3-4所示在本设计中PA0~PA3分别为IA、IB、IC、IABC的模拟输入口,其中IABC为零序电流。由于设计时考虑到芯片的模拟I/O口有限,在节省资源的情况下电压信号的输入我通过了一个多路选择开关再与PA4相连,这样可以节省两个端口,以备其他未考虑信号的输入。

  3-5   多路选择开关

       除了通用数字I/O功能之外,大多数端口引脚都具有第二功能。下面对本设计用到的端口第二功能介绍如下:
端口B的第二功能
PB7 SCK (SPI总线的串行时钟)
PB6 MISO (SPI总线的主机输入/从机输出信号)
PB5 MOSI (SPI总线的主机输出/从机输入信号)
PB4 SS (SPI从机选择引脚)
PB3 AIN1 (模拟比较负输入);OC0 (T/C0输出比较匹配输出)
PB2 AIN0 (模拟比较正输入);INT2 (外部中断2输入)
PB1 T1 (T/C1外部计数器输入)
PB0 T0 (T/C0外部计数器输入);XCK (USART外部时钟输入/输出)
端口C的第二功能
PC7 TOSC2 (定时振荡器引脚2)
PC6 TOSC1 (定时振荡器引脚1)
PC5 TDI (JTAG测试数据输入)
PC4 TDO (JTAG测试数据输出)
PC3 TMS (JTAG测试模式选择)
PC2 TCK (JTAG测试时钟)
PC1 SDA (两线串行总线数据输入/输出)
PC0 SCL (两线串行总线时钟线)
端口D的第二功能
PD7 OC2 (T/C2输出比较匹配输出)
PD6 ICP1 (T/C1输入捕捉引脚)
PD5 OC1A (T/C1输出比较A匹配输出)
PD4 OC1B (T/C1输出比较B匹配输出)
PD3 INT1 (外部中断1的输入)
PD2 INT0 (外部中断0的输入)
PD1 TXD (USART输出引脚)
PD0 RXD (USART输入引脚
(2)片内基准电压
       ATmega16具有片内能隙基准源,用于掉电检测,或者是作为模拟比较器或ADC的输入。AREF给单片机提供基准电压,它有两种情况加上电阻R27时为5V,去掉R27时可以是5V,也可以是2.56V,AVCC为模拟电压(5V)。


图3-6   电压

注:图3-6中的电感、电容用来滤波
3.3.3 继电器驱动模块
       本设计采用了三个继电器(K1、K2、K3),它们都采用的是常开触点。其中K1用来保护动作,K2、K3用于启动,分别表示降压启动和启动完成后全压运行的两个状态。


3-7   三继电器的驱动电路

       如图3-7所示继电器的驱动电压为12V,采用三极管的目的是为了放大电流信号以驱动继电器。信号在进入三极管之前还必须由光耦消除干扰信号,相关电路如图3-8所示:


3-8   光耦抗干扰电路

       当电机启动时,继电器K2闭合,电机进入降压启动过程;当电流平稳后,继电器K3闭合,K2断开,表示进入了全压运行阶段;当电机遇到危险时,继电器K1会根据保护延迟时间闭合,进行保护动作。
另外为了避免K2、K3两个继电器同时合的情况,我们加入了一个逻辑互锁电路来避免这种情况的冲突,真正实现保护、启动和运行的分时控制。由于市面上恰好有相关功能的芯片,因此为了节约时间,我直接采用了74HC00这个芯片。其内部逻辑电路如图3-9所示:

图3-9   互锁逻辑电路

真值表如下:(1表示开、0表示合)
PB1  PB2  KK2  KK3
0         0         1         1
0         1         0         1
1         0         1         0
1         1         1         1

3.3.4 读写显示功能模块
       读写显示功能模块是本设计硬件设计的重点,数码管驱动及键盘的控制采用芯片CH447L来提高运作效率,使设计模块化。它可通过4线或2线串行接口与单片机等交换数据,并且可以对单片机提供上电复位信号。CH447L与单片机以及数码管和键盘的硬件连接如图3-10所示。




图3-10   CH447L与单片机及数码管和键盘的连接

       因为CH447L的4线串行接口是由硬件实现的,单片机可以频繁地通过串行接口进行高速操作,不降低CH447L的工作效率;而2线串行接口是由软件与硬件共同实现的,不适合不间断地频繁操作,所以我采用了4线接口。
由图3-10可知单片机通过串行接口控制CH447L芯片,CH447L的数码管显示驱动与键盘扫描控制之间相互独立,单片机可以通过操作命令分别启用、关闭、设定这两个功能。

(1)显示驱动

       CH447L对数码管和发光管采用动态扫描驱动,顺序为DIG0至DIG7,内部具有电流驱动级,可以直接驱动共阴极数码管。段驱动引脚SEG6~SEG0分别对应数码管的段G~段A,引脚SEG7对应数码管的小数点;字驱动引脚DIG7~DIG0分别连接8个数码管的阴极。CH447L也可以连接8×8矩阵的发光二级管LED阵列或者64个独立发光管二极管或者64级光柱。
       CH447L支持扫描极限控制,并且只为有效数码管分配扫描时间,降低扫描极限可以提高数码管的显示亮度。
CH447L内部的8个8位的数据寄存器用于保存8个字数据,分别对应于所驱动的8个数码管或者8组发光二极管。它不仅支持数据寄存器中的字数据左移、右移、左循环、右循环和各数码管的独立闪烁控制,而且还支持任意段位寻址,可以用于独立控制发光管LED,本设计正运用了该特性。
       默认情况下,CH447L工作于不译码方式,此时8个数据寄存器中字数据的位7~位0分别对应8个数码管的小数点和段G~段A,当数据位为1时,对应的数码管的段就会点亮;当数据位为0时,则对应的数码管的段就会熄灭。通过设定,CH447L还可以工作于BCD译码方式,该方式主要应用于数码管驱动,单片机只要给出二进制数BCD码,由CH447L将其译码后直接驱动数码管显示对应的字符。
       如图3-11所示CH447L驱动4个数码管和一组LED光二极管(共八个)。所有数码管的相同段引脚(段A~段G以及小数点)并联后通过串接的限流电阻R连接CH447L的段驱动引脚SEG0~SEG7,串接限流电阻的阻值越大段驱动电流越小,数码管的显示亮度越低,R的阻值一般在100Ω至1KΩ之间,为降低芯片本身的功耗应选择较大的阻值。各数码管的阴极分别由CH447L的DIG0~DIG7引脚进行驱动并串接上二极管防止数码管反向漏电。
图3-11   CH447L与数码管的连接

(2) 键盘扫描

       CH447L具有64键的键盘扫描功能,我们可以在8×8矩阵中任意去掉不用的按键。我所设计的键盘采用了8*1的键盘方式,为了防止键被按下后在SEG信号线与DIG信号线之间形成短路而影响显示,要在CH447L的DIG0~DIG7引脚与键盘矩阵之间串接限流电阻,其阻值可以从1KΩ至10KΩ。
       在键盘扫描期间,DIG7~DIG0引脚按照DIG0至DIG7的顺序依次输出高电平,其余7个引脚输出低电平;SEG7~SEG0引脚的输出被禁止,当没有键被按下时,SEG7~SEG0都被下拉为低电平;当有键被按下时,例如连接DIG3与SEG4的键被按下,则当DIG3输出高电平时SEG4检测到高电平;为了防止因为按键抖动或者外界干扰而产生误码,CH447L实行两次扫描,只有当两次键盘扫描的结果相同时,按键才会被确认有效。如果CH447L检测到有效的按键,则记录下该按键代码,并通过4线串行接口中的DOUT引脚产生低电平有效的键盘中断,此时单片机可以通过串行接口读取按键代码;在没有检测到新的有效按键之前,CH447L不再产生任何键盘中断。CH447L不支持组合键,也就是说,同一时刻,不能有两个或者更多的键被按下;如果多个键同时按下,那么按键代码较小的按键优先。
       CH447L所提供的按键代码为7位,位2~位0是列扫描码,位5~位3是行扫描码,位6是状态码(键按下为1,键释放为0)。单片机可以在任何时候读取按键代码,但一般在CH447L检测到有效按键而产生键盘中断时读取按键代码,此时按键代码的位6总是1,另外,如果需要了解按键何时释放,单片机可以通过查询方式定期读取按键代码,直到按键代码的位6为0。


图3-12   键盘芯片连接图

(3)四线串行接口

       CH447L具有硬件实现的高速4线串行接口,包括4个信号线:串行数据输入线DIN、串行数据时钟线DCLK、串行数据加载线LOAD、串行数据输出线DOUT。其中,DIN、DCLK、LOAD是带上拉的输入信号线,默认是高电平。
DOUT在未启用键盘扫描功能时作为串行数据输出线,在启用键盘扫描功能后作为键盘中断和数据输出线,默认是高电平。
       DIN用于提供串行数据,高电平表示位数据1,低电平表示位数据0,串行数据输入的顺序是低位在前,高位在后。
DCLK用于提供串行时钟,CH447L在其上升沿从DIN输入数据,在其下降沿从DOUT输出数据。CH447L内部具有12位移位寄存器,在DCLK的上升沿,DIN上的位数据被移入移位寄存器的最高位寄存器,按此原理CH447L允许DCLK引脚的串行时钟频率高达10MHz,从而可以实现高速串行输入输出。
       LOAD用于加载串行数据,CH447L在其上升沿加载移位寄存器中的12位数据,作为操作命令分析并处理,无论移位寄存器中的12位数据是否有效,CH447L都会将其当作操作命令。
       CH447L只在LOAD的上升沿加载命令数据并处理,单片机不能将LOAD信号线用于其它用途,但是DIN和DCLK可以用于其它用途。当单片机I/O引脚资源紧张时,CH447L只需要独占使用LOAD信号线,DIN和DCLK信号线可以与其它接口电路共用。


图3-13   接口框图

       在未启用键盘扫描功能时,DOUT用于输出串行数据,移位寄存器中的最低位数据总是在DCLK的下降沿出现在DOUT引脚。


       当启用键盘扫描功能后,DOUT用于键盘中断和数据输出,默认是高电平。当CH447L检测到有效按键时,DOUT输出低电平有效的键盘中断;单片机被中断后,发出读取按键代码命令,CH447LLOAD的上升沿后从DOUT输出7位按键代码的最高位;单片机继续输出串行时钟,在DCLK的每个下降沿,CH447L依次从DOUT输出7位按键代码的剩余6位,顺序是高位在前,低位在后;7位按键代码输出完毕后,无论DCLK如何变化,CH447L都将DOUT恢复为默认的高电平。


图3-14   脉冲波形图

如图3-14所示单片机从CH447L获得按键代码的过程是:
① 输出一位数据,即向DIN输出读取按键代码命令的最低位数据B0,并向DCLK输出低电平脉冲;
② 以同样的方式,输出读取按键代码命令的位数据B1~B11;
③ 向LOAD输出低电平脉冲,其中包括一个上升沿使CH447L加载串行数据,CH447L分析出是读取按键代码命令,立即在DOUT输出按键代码的最高位数据K6;
④ 读取一位数据,即从DOUT输入按键代码的最高位数据K6,并向DCLK输出低电平脉冲;
⑤ 以同样的方式,输入按键代码的位数据K5~K0。
由于CH447L驱动数码管或者LED的电流较大,会在电源上产生较大的毛刺电压,如果电源线或者地线的布线不合理,会影响单片机或者CH447L的稳定性,应使用较粗的电源线和地线,在靠近CH447L在正负电源之间并联电源退耦电容。

3.3.5 电源模块设计

       因单片机和CH447L均需5V电源驱动,而继电器需12V电源驱动,故电源模块主要是提供两路电源信号。为了提高电源抗干扰能力,在电源模块输入端利用电容和变流器来实现交流滤波,经过变流器的交流信号通过整流、滤波电路转化为直流信号,滤波信号一路经过变压器将一次侧220V信号转化为5V直流电源信号,同时将二次侧信号经光电耦合通过开关电源反馈到一次侧,从而进一步提高电源抗干扰能力;另外,滤波信号通过另一变压器,在二次侧得到12V直流电源信号,用于驱动继电器。系统设计之初,为了简化电路、节省成本曾采用自耦变压器将一次侧电压信号通过两次变压在二次侧获得12V和5V电源信号的方法,但在实际应用中发现容易造成两路电源信号的干扰,最终采用两个变压器分别提供两路电源信号的方法。

3.3.6 接口的设计

       接口是单片机与外部连接的部件,如果没有相关接口就没办法和外部进行通信和数据信息的交互。在本设计中我采用了SPI,JTAG,JP等接口,其中SPI用来下载,JTAGE用来调试仿真,JP用来连接模拟信号和继电器。
(1)同步串行下载口SPI


图3-15   SPI接口

       ATmega16 SPI采用全双工,3线同步数据传输,有7种可编程的比特率和传输结束中断标志,可以从闲置模式唤醒,作为主机时具有倍速模式。
       系统包括两个移位寄存器和一个主机时钟发生器。配置为SPI主机时,SPI接口不自动控制SS引脚,对SPI数据寄存器写入数据时启动SPI时钟,将8比特的数据移入从机。传输结束后SPI时钟停止,传输结束标志SPIF置位。
       配置为从机时,只要SS为高,SPI接口将一直保持睡眠状态,此时可以通过软件更新SPI数据寄存器SPDR的内容。即使此时SCK引脚有输入时钟,SPDR的数据也不会移出,直至SS被拉低。一个字节完全移出之后,传输结束标志SPIF置位。
       SPI系统的发送方向只有一个缓冲器,在接收方向有两个。在发送时一定要等到移位过程全部结束后才能对SPI数据寄存器执行写操作。在接收数据时,需要在下一个字符移位过程结束之前通过访问SPI数据寄存器读取当前接收到的字符。否则会丢失数据。


图3-16   SPI主机—从机的互连

(2)JTAG接口


图3-17   JTAG接口

       如图3-17所示,JTAG接口有四个引脚分别为TMS(测试模式选择)、TCK(测试时钟)、TDI(测试数据输入)、TDO(测试数据输出)。
       在JTAGEN熔丝位没有被编程的情况下,四个TAP引脚为正常的端口引脚,TAP控制器处于复位状态。一旦JTAGEN被编程,且MCUCSR寄存器的JTD清零,TAP输入信号即被拉高,JTAG边界扫描和编程功能使能。此时TAP输出(TDO)处于悬空挂态,JTAG TAP 控制器不移位数据,因此必须连接一个上拉电阻或有上拉电阻的硬件。
       另外还有一些连接模拟信号的接口如JP4、JP5、JP56等。


图3-18   其他接口

3.4 电路板的设计


图3-19   PCB板的设计流程图

3.4.1 原理图的绘制
       首先创建出绘图界面,调出原理图中所要用到的器件,用绘图工具把所有的元件连接起来,由于原理图在一张Protel99SE图纸中不能够画出,可以在几张图纸中分功能模块画出总图的分图,最后再把这些分图在一张图纸中进行连接。把图中相应的器件上分别标上相应的数值,并把封装号分别填入到器件的编辑属性窗口中,最后对元件进行编号。


图3-20   原理图

  

       图3-20为本次设计的原理图,绘图时分几个单元来完成,为将整个硬件原理图表示清楚,在此放入一张图中供分析,单元图放在附录中。
在绘制原理图过程中出现一些问题,现做一小结:
1.ERC报告管脚没有接入信号:
a.创建封装时给管脚定义了I/O属性;
b.创建元件或放置元件时修改了不一致的grid属性,管脚与线没有连上;
c.创建元件时pin方向反向,必须非pin name端连线。
2.元件跑到图纸界外:没有在元件库图表纸中心创建元件。
3.创建的工程文件网络表只能部分调入PCB:生成net list时没有选择为global。
4.当使用自己创建的多部分组成的元件时,千万不要使用annotate。
3.4.2 PCB板的生成
原理图绘制完后进行电器检查(ERC)。
生成网络表,就可以绘制PCB了。在电路板中把元件排列整齐,最后的工作就是布线了。在PCB设计中,布线是完成产品设计的重要步骤,可以说前面的准备工作都是为它而做的,在整个PCB中,以布线的设计过程限定最高,技巧最细、工作量最大。PCB布线有单面布线、双面布线及多层布线,我采用了双面布线。
布线的方式也有两种:自动布线及交互式布线,在自动布线之前,可以用交互式预先对要求比较严格的线进行布线,输入端与输出端的边线应避免相邻平行,以免产生反射干扰。必要时应加地线隔离,两相邻层的布线要互相垂直,平行容易产生寄生耦合。
在画图和生成PCB的过程中出现的错误及解决方法:
1.网络载入时报告NODE没有找到:
a.原理图中的元件使用了pcb库中没有的封装;
b.原理图中的元件使用了pcb库中名称不一致的封装;
c.原理图中的元件使用了pcb库中pin number不一致的封装。
2.打印时总是不能打印到一页纸上:
a.创建pcb库时没有在原点;
b.多次移动和旋转了元件,pcb板界外有隐藏的字符。选择显示所有隐藏的字符,缩小pcb,然后移动字符到边界内。
3.DRC报告网络被分成几个部分:
       表示这个网络没有连通,看报告文件,使用选择CONNECTEDCOPPER查找。
设计过程中应保证零件封装无误,这也生成PCB板图的关键一步,不同的元件可共用同一零件封装,同种元件也可有不同的零件封装,在此对零件封装做一小结:
C1-C4:[,RB.1]     C6-C9 :[,0805]   C10-C11:[,RB.2]  
C12:[100nF.0805]     C13: [100u,RB.1]
D1-D2:[2LED,LED2]     D3-D10:[,SLED.15]     D11-D15:[,SLED.15]
D16:[,DIODEO.2]   D17-D18:[,DIODE0.3]     D19:[,SLED.15]
JP1:[SPI,IDC10]     JP2:[JTAG,IDC10]     JP3:[COMM,TEL4]
JP4:[,SIP5]   JP5:[,SIP15-4]   JP6:[,SIP15-6]   JP7:[,SIP4]
JP8[,SIP3]
K1-K3:[,SRSB-12]   L1:[10uH,AXIAL0.5]   Q1-Q3:[PNP,9014]
R1-R26:[,0805]       R27:[1K,0805]       R28:[,0805]
R29:[,AXIAL-0.8]   RP1:[46K,RES5]
S1-S8:[,BUT]     S9:[,DIP4]     U1:[ATMEGA16L,DIP40]
U2:[4046.DIP16]   U3:[CH447,PDIP24]
U4-U6:[,DIP4]


3.5 本章小结


       本章主要介绍了硬件部分的设计,在硬件电路设计中我们需要处理好控制系统,输入输出接口,继电器驱动,键盘显示以及抗干扰等一些设计。
       更深一步了解了AVR mega16单片机和CH447芯片的结构、工作原理以及它们之间的连接和控制方式等,学会了用protel99这个绘图软件绘制原理图、PCB板图,对整个过程有了清晰的了解,并自己动手焊元件,掌握了许多实际焊接工作中的小窍门。在这一部分的设计中真正让我体会到实践的乐趣。

第四章 基于AVR电动机智能启动器的软件设计

4.1 软件设计方案

       本课题的软件部分我采用了层次化、模块化的设计方案。全局分三层:第一层是基础功能模块层;第二层是中断层,它包括定时中断和外部中断;第三层是保护算法。层次化使结构清晰,三层采用调用关系,一层比一层高级。模块化使得程序在功能实现上简单明了。
其       中基础层涉及到继电器、键盘、显示、A/D、硬件数字滤波等功能模块。
具体方案如下:
(1)首先进行程序初始化,包括ATmega16设置、数码管设置、从EEPROM中读初始值:额定电流、启动时间和保护时间。然后进行A/D采样、滤波,每调用一次A/D转换子程序连续采样八次,一次采取50个数据。通过多次采样、排序、求平均值,采用平均值滤波,提高系统高干扰性能。

(2)采样完成后判断电动机是否启动,若已启动开始数码管显示以及各种保护判断、处理。首先根据读取的A/D值计算对应的电流值,然后进行误差修正,一方面通过比较确定最大电流值和最小电流值,然后分别放入显示单元;另一方面通过误差修正值进行各种保护判断:若三相输入电流中任一相结果为零,则断相成立,立即启动保护;三相输入电流中最高相与最低相差值大于33%额定电流时,三相不平衡成立,立即启动保护;在正常运行状态下,电动机电流大于1.2倍额定电流时,过电流反时限保护动作。

4.2 软件开发语言、工具和环境介绍
       AVR单片机的开发主要有两种语言:汇编语言和C语言。本设计我所选用的是C语言,随着单片机技术的发展,程序空间和数据空间都在增大,代码空间和程序效率不如以前重要了,汇编的优势不如以前,往往使得程序冗长,而C语言却在很多方面体现期优势
(1)开发迅速,无需记住大量的汇编指令。
(2)维护方便,支持不断改进,它的可读性和模块化使维护更加方便。
(3)便于合作开发,可以把系统分成几个任务,每个任务之间很少联系。
(4)方便移植,由于C语言是高级语言,与平台相关的代码不多,因此在不同平台间移植很容易。
       我所采用的编译器是AVR-GCC,它不是一个集成开发环境,仅仅是一个C编译器,与其他编译器相比,AVR-GCC有一个很突出的优势——是完全自由软件。它的源代码都可以得到,并很容易编译,因此它适用于任何平台(特别是任何Linux的机器)。
       AVR-GCC像其他GNU编译器一样,用UNIX风格的Make程序来构建(Build)工程。Make用Make file告诉它做什么,如何做。对于多数人这个还是有些难度的,不过现在可以使用AVR Studio直接建立AVR的GCC工程。
       另外开发环境我选择了AVR Studio,它是由ATMEL公司开发的AVR单片机的集成开发环境,能运行于Windows操作系统并提供了源文件编辑器,用于软仿真的芯片仿真器,用于在线硬件仿真的接口。AVR Studio可以在ATMEL公司的官方网站上免费得到。
仿真器适配器我选用了AVR JTAGICE

4.3 程序设计
4.3.1 初始化和主程序

初始化:
  单片机内部初始化
  外围芯片初始化
  EEPROM中的设定值读入单片机RAM
主程序:
  三相电压、电流的A/D采样,数字滤波,保护算法分析
  在电压,电流采样完成后分别运行保护算法,如果出现故障进入相应的故障处理程序。
主程序的流程图如图4-1所示:

图4-1   主程序流程图

4.3.2 基础功能模块
(1) 数字滤波模块
       数字滤波功能块主要是将采样得到的信号进行滤波,滤除纹波和外界的部分干扰。我采用的方案是分六路信号(Ua Ub Uc Ia Ib Ic)进行采样,先分别采50个数据,并进行AD转换,将模拟量转换为数字量。在50个数据中去掉前后9个,得到六组32个数据,再对每组进行求和求平均,得到六个平均值(avg1Ua avg1Ub avg1Uc avg1Ia avg1Ib avg1Ic)。按此方式循环采样8次,再对这8组数据求和求平均,最终得到的一个六维数组,即最终与额定值进行比较的采样值。
该模块是进行直流采样的关键部分,也是最可能产生误差的地方。
其中涉及到排序和A/D转换。快速排序子程序我采用了C语言中比较经典的冒泡算法,分别对六组32个数据进行从小到大排序。
相关程序如下:
void sort(unsigned int a[],unsigned char n)
{
       unsigned char i,j;
       unsigned int temp;
       for (j=0;j<=n;j++) {
               for(i=0;i<=n-j-2;i++)   {
                       if(a[i]>a[i+1])
                             {temp=a[i];a[i]=a[i+1];a[i+1]=temp;}
               }      
         }                                      
}

数字滤波部分程序的流程图如图4-2所示:(程序见附件)

图4-2   数字滤波程序流程图

  (2) A/D转换模块
       由于ATmega16内集成一个逐次比较型ADC,它与PORT C端口用一个8路的模拟开关连接。有两种工作方式分别为:查询方式和中断方式。在查询方式中,ADC按单次转换模式工作,每次转换均由置位ADC触发,ADC工作于中断方式时,ADC按自由模式工作,自第一次置位ADSC开始,ADC就连续不断地进行采样转换,数据更新。在本设计中,我选用了查询方式。

图4-3   A/D转换流程图

(3) 显示模块

       数码管的显示分动态显示和静态显示两种方式。静态显示程序简单,但占用I/O口多,动态显示虽占资源较多但接线较少。本设计采用了动态显示,运用CH447芯片进行读写显示。该模块分数码管显示和发光二极管显示,其电路原理和连接见3.3节所示。程序分LED显示和指示灯显示,前者包含百位、十位、个位、分位和小数点的显示。
指示灯的显示采用真值表的原则,置1表示亮,清0表示灭。本设计中我采用了四个数码管和九个指示灯,其相关功能定义如下:D19:电源显示灯D3:设置灯D4:保护动作显示灯D5:启动显示灯D6:电流显示灯D7:电压显示灯D8:C相显示灯     D9:B相显示灯     D10:A相显示灯
显示部分相关程序见附件

  (4) 键盘功能模块

       键盘功能模块是本课题的重点难点,也是人机界面体现个性和创新的一个模块。在本设计中我采用了8个键,现对其功能介绍如下:
S1:加   S5:减 S2:设置键   S3:切换键   S4:启动键
S8:停止键     S6:确认键
相关流程图如图4-4所示:(程序见附件)

图4-4   键盘功能流程图

◆设置键功能
       设置分三种情况:电压设置、电流设置和启动时间设置,可以用switch语句来实现。流程图如图4-5所示(程序见附件)

图4-5   设置键功能流程图
具体操作过程如下
       按下“设置”键依次切换电压、电流、启动时间,对应发光二极管闪烁。同时设置对应发光二极管点亮。表明进入设置状态。
按下“切换”键依次在4位LED的百、十、个之间切换。对应的位选中时闪烁。
按下“确定”键存储设置值。
◆切换键功能

图4-6   切换键功能流程图
  
在设置状态下,设置灯亮,按下“切换”键可以在电压、电流、启动时间以及个位、十位、百位间切换。
在查看状态下,设置灯灭,按下“切换”键,依次切换显示A相电压、B相电压、C相电压、A相电流、B相电流、C相电流。对应的发光二极管会点亮指示。

4.3.3 中断

       中断是微处理器和外围设备交换信息的一种方式,能够提高处理器的实时性和处理能力。完整的中断处理过程包括中断请求,中断响应,中断处理和中断返回。本设计中断模块分两个部分,外部中断和定时中断.
外部中断用于响应键盘动作
其流程图如图4-7所示:


图4-7   键盘中断流程图

  

在本设计中定时中断用于实现启动时间和保护时间的定时。
4.3.4 保护算法
       保护算法是本课题的难点,也是软件设计的最高层,前面所有的低层程序都是为它服务的。电机在启动器的控制下首先以低电压通电,当通电一段时间后,启动器在定子上加上电机额定电压。在此过程中启动器同时要对电机进行保护。由于不同用途的电机启动转矩不同,在实施减压启动会使电机转矩下降。如果启动过程中电机达不到启动转矩就会发生堵转。
电机保护在电机启动以后实施保护。包括:过电流,过电压,断相,三相不平衡,堵转保护。
◆断相
       电动机发生断相时会引起电动机主电路中的电流有很大差别,而造成电动机烧毁或损伤,其特点是三相电流严重不平衡,甚至有某一相为0。
此时系统应迅速动作。
判断:
1,     IA = 0 ?
2,     IB = 0 ?
3,     IC = 0 ?
若其中任意一项结果为真,则断相成立,立即进行保护动作。
◆三相不平衡
       三相不平衡:三相输入电流中最高相与最低相差值大于33%额定电流时,系统立即保护动作。
判断:
       PMAX–PMIN   >   I0/3                       ( I0的33 % )
若结果为真,则三相不平衡成立,立即保护动作
◆过电流(过载、欠压、堵转等)
       当电动机在负载变大,电源电压下降,频率太低,堵转等故障条件下都会出现过电流,其特点是三相电流平衡增加,并超过额定值,因此要进行过电流反时限保护,在正常运行状态下,电动机电流大于1.2倍额定电流时,不大于3min动作,1.5倍时不大于1min动作,7.2倍时不大于30s动作,其动作曲线见
图4-8所示。
                                            


  

4-8

判断:
计算 PABC=PMAX/I0  

1,判断是否启动电流

2,   若 PABC<1.2
则     TP9=0(不保护)
GOTO     ENG

3,   若 1.2≤PABC<1.5
  则     若TP9=0, 则
TP9=1,
T =( TIME(1)+TIME(2) )/2
否则   GOTO   ENG
4,若 1.5≤PABC<2.0
  则   若TP9=0, 则
TP9=1,
T=( TIME(2)+TIME(3) )/2
否则   GOTO   ENG  
5,   若 2.0≤PABC<3.0
则   若TP9=0, 则
TP9=1,
T=( TIME(4)+TIME(5) )/2
否则   GOTO   ENG
6,   若   3.0≤PABC<4.0
  则     若TP9=0, 则
TP9=1,
T=( TIME(5)+TIME(6) )/2
否则   GOTO   ENG

8,   若 3.3≤PABC<6.0
  则     若TP9=0,则
TP9=1,
T=( TIME(6)+TIME(7) )/2
否则   GOTO   ENG

END

注:TIME(1)~TIME(7)查表所得

第五章 总结与展望
5.1 毕业设计总结

       本次毕业设计的内容主要是基于AVR单片机智能启动器的设计,要求实现电动机的智能启动和启动过程的各种保护,包括控制系统设计、数码管显示设计、继电器电路设计和相关软件的编写。该启动器以直流采样为基础,以ATmega16单片机的应用为核心,选用CH447键盘读写显示控制芯片来实现键盘操作和数码管的动态显示,最终完成功能强大的人机界面。实现低成本多功能的经济型产品。
       设计中遇到了许多问题,硬件电路的实现,软件部分程序设计,调试中各类意外结果的出现,让我不得不埋头于一大堆有关于单片机开发及实践的书,深入了解单片机的原理,加以应用,同时进一步地学习了C语言,并熟练使用Protel99 SE绘制电路板原理图与设计电路板,受益匪浅。也让我领悟到理论与实践相结合的重要性,通过不断的学习和实践,不断的对设计进行分析与改进,顺利完成了本次设计。
       在此次系统的硬件、软件的设计改进中,许多还只是我们的初步尝试,必然存在不完善之处,我们将再进一步的不断完善和提高。

5.2 工作展望
       本文设计的电动机综合保护器以低功耗8位RISC结构的ATmega16为核心,并以CH447L为显示和键盘驱动。实行减压启动和全压运行保护,具有可靠性高、精度高、响应快、功耗低等特点。还可进行保护参数的方便设定和显示功能。
       本来采用直流采样后,误差会相对过大,没有交流采样精度高。随着科技的不断提高,检测元件地高度灵敏化。我认为我们更需加入抗干扰设计以免误差更大。
       当系统工作时,继电器和交流接触器触点的动作对控制系统的5V电源有很大干扰。这里的干扰包括了导线的传导干扰和空间的辐射干扰。经测试,系统如果不加抗干扰措施,在继电器和交流接触器触点动作时,会使5V电源上产生正负30V的瞬时噪声。因而使得单片机由于电源波动过大而出现频繁死机现象。
       要解决干扰现象,需在控制系统和负载两方面增加抗干扰措施。
       控制系统方面,在电路板布线时将控制电路和负载电路分离,将控制继电器单独放置在一块独立的电路板上,并加上防护罩以减小继电器的辐射干扰。在控制系统的200V交流输入线路上,串接一个磁环以减小导线的传导干扰。
       负载端是系统的干扰源,在负载方面,主要考虑减少交流接触器以及继电器触点动作时打火现象对控制电路的干扰。本系统负载端通过控制继电器控制交流接触器的线圈,由交流接触器控制电机。因此在控制继电器和交流接触器的触点上均并联上RC串联滤波电路(灭弧器)。灭弧器具体接线方法为:控制继电器的触点端即交流接触器的线圈两端并联单相灭弧器。在交流接触器的触点端接三相灭弧器。
       另外在驱动部分,为保护光藕,应该在三极管和光藕之间加一电阻,以免三极管击穿后,电流过大,将光藕烧坏。


参考文献


1.邵群涛主编,电机及拖动基础,机械工业出版社,1999
2.谭浩强主编,C程序设计(第二版),清华大学出版社,2002
3.胡汉才主编,单片机原理及其接口技术(第二版),清华大学出版社,2003
4.陈润泰,许琨编著,检测技术与智能仪表,中南工业大学出版社,2003
5.吴双力,崔剑,王伯岭编著,AVR-GCC与AVR单片机C语言开发,北京航空航天大学出版社,2004
6.(美)Stephen Prata 著 云巅工作室 译,C   Primer Plus (第五版)中文版,人民邮电出版社,2005
7.李勋 ,狄德根编著,AVR单片机应用技术,北京航空航天大学出版社2002
8.王兆安、黄俊主编,电力电子技术第四版,机械工业大学出版社2000
9.James Noble & Charles Weir著,内存受限系统之软件开发之候捷、王飞、罗伟译,华中科技大学出版社,2003
10.严蔚敏、吴伟民著,数据结构(C语言版),清华大学出版社
11.佟长福著,AVR单片机GCC程序设计,北京航空航天大学出版社,2006
12.张军著,AVR单片机应用系统开发,中国电力出版社,2005
13.李宁,陈桂编著,运动控制系统,高等教育出版社,2004
14.刘启新,张丽华,祁增慧编著,中国电力出版社,2005

  

敬告:本站论文载自网络,本站不予评论和纠错!所以内容读者自行论证!更多设计论文陆续添加中...
                       >>发表评论


  

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[3]
  • 评论人:[匿名] 时间: [2011/5/26 18:27:16] IP:[122.96.155.10*]
  • 有没有代码 啊781932285
  • 评论人:[匿名] 时间: [2011/5/26 18:26:54] IP:[122.96.155.10*]
  • 有没有代码 啊
  • 评论人:[匿名] 时间: [2010/1/11 17:12:27] IP:[59.51.7.14*]
  • 不错

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号