嵌入式系统在过电流保护装置中的应用研究.docx

上传人:b****8 文档编号:23888157 上传时间:2023-05-21 格式:DOCX 页数:28 大小:732.22KB
下载 相关 举报
嵌入式系统在过电流保护装置中的应用研究.docx_第1页
第1页 / 共28页
嵌入式系统在过电流保护装置中的应用研究.docx_第2页
第2页 / 共28页
嵌入式系统在过电流保护装置中的应用研究.docx_第3页
第3页 / 共28页
嵌入式系统在过电流保护装置中的应用研究.docx_第4页
第4页 / 共28页
嵌入式系统在过电流保护装置中的应用研究.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

嵌入式系统在过电流保护装置中的应用研究.docx

《嵌入式系统在过电流保护装置中的应用研究.docx》由会员分享,可在线阅读,更多相关《嵌入式系统在过电流保护装置中的应用研究.docx(28页珍藏版)》请在冰豆网上搜索。

嵌入式系统在过电流保护装置中的应用研究.docx

嵌入式系统在过电流保护装置中的应用研究

嵌入式系统在电流保护装置中的应用研究

摘要

在多数以电为驱动的装置中,有时因为外界环境变动,或者操作者的失误,容易出现过流的现象,从而造成设备损坏或者更坏的结果。

所以,设备中是否具有过流保护尤为重要。

本设计着重阐述了系统的总体结构、工作原理和基于STM32F103RBT6微处理器芯片的嵌入式技术,给出了系统硬件设计和软件控制的设计方法成功实现了对设备中电流的实时监测及保护。

关键字:

嵌入式技术,STM32F103RBT6,过流保护,康铜电阻

1.嵌入式系统在电流保护装置中的应用研究

2设计要求

本设计主要以STM32F103RBT6芯片为处理器,通过对康铜电阻(采样电阻)两端的电压经运放放大后进行ADC转换,然后送至处理器,通过处理器对输入的电流值与用户预设电流值进行比较,如过电流则报警和驱动接触器断开,已达到对设备的监视和保护。

3设计作用与目的

本设计中的以嵌入式技术为系统的过流保护装置中,主要作用是实时监测设备电流,根据需要,通过触摸屏输入电流报警值和电流保护值,实现对设备的全自动保护。

本设计中的运放对采样信号进行100倍放大,可对电流到达4AA内电流进行保护,报警电流和动作电流可按需要设置。

系统可检测直流和交流电流。

4.所用设备及软件

本设计中主要设备为计算机,PCB电路板制作设备,软件主要包括protel99,multisim,keil

5系统设计方案

5.1系统总体设计

本设计通过对康铜电阻的电压经运放进行AD采样后,送至STM32F103RBT6处理器,通过算法与触摸输入电流值进行比较,随之进行相应动作。

如图1为系统的总体设计框图

图1.系统总体设计框图

5.2系统工作原理

如图1.运放模块将康铜电阻的上的电压放大,经AD采样送至MCU,与经触摸屏输入的电流值进行比较,当电流达到报警值时,MUC启动报警系统,当电流值达到保护值时,MUC启动继电器,切断电源,实现过流保护的功能。

6.系统硬件设计

6.1系统整体设计

本设计中,主要利用到了STM32F103RBT6对采样数据的处理,而采样数据来自系统中所设的康铜电阻。

保护动作是靠继电器驱动接触器切断电源。

6.2各单元电路设计

6.2.1STM32F103RBT6简要介绍

本单元主要是利用嵌入式技术来控制整个系统,如图3,为其最小系统图,

图3.STM32F103RBT6最小系统图

STM32F103RBT6是ST公司基于ARM最新Cortex-M3架构内核的32位处理器产品,内置128KB的Flash,20k的RAM.最小系统中,采用STM32F103RBT6为控制器,工作频率可达72MHZ,16个外部模拟信号输入通道,可达1us转换时间,转换范围为0到3.6V;支持7个DMA通道,可操作多种通用外设,如定时器,ADC,USART等;内置3个同步16位定时器,每个可有四个通道用于PWM波输出,内置2个12位ADC。

每个ADC有7个输入通道,可以实现单次或多次扫描转换,自带0电压校准,模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低闸值,ADC最短采样时间为1us,足以胜任本系统。

6.2.2整流采样模块

本单元模块主要功能是用来整流输入电流,其核心器件为康铜电阻,下面对康铜电阻做简单介绍。

康铜是物理学中的一个概念,指的是一种具有高电阻率的合金金属。

是含40%镍,1.5%锰的铜合金。

具有低的电阻率温度系数和中等电阻率(电阻率为0.48μΩ·m)。

可在较宽的温度范围内使用。

有良好的加工性能和焊接性能。

适宜在交流电路中使用,作精密电阻、滑动电阻、电阻应变计等,也可用于热电偶和热电偶补偿导线材料。

约合40%Ni的铜镍合金的特征就是此种合金有很小的温度系数。

这类合金中有一种叫康铜。

根椐POCT492—41,这种合金的成分如下:

39—41%Ni+Co;1.0一2.0%Mn,其余是铜和杂质。

杂质的含量不应超过1.0%,其中包括:

0.5%Fe;0.1%Si;0.1%C;0.1%Zn;0.02%S;0.05%Mg和0.05%A1。

  康铜的物理性质如下:

  1)比重8.9;

  2)熔点1200—1260°;

  3)退火温度800--820°;

  4)界限工作温度350°;

  5)电阻系数0.48欧毫米2/米;

  6)温度系数0.000016.

适宜在交直流电路中使用,作精密电阻、滑动电阻、电阻应变计等,也可用于热电偶和热电偶补偿导线材料。

本设计中采用0.01Ω的康铜电阻,后级的运放模块就是对其上面的电压进行放大。

如图4.为本单元的原理图

图4.整流采样电路图

 

6.2.3运放模块

运放模块主要采用LM358双运放芯片,通过输入前级康铜电阻上的电压,经运放模块进行100倍放大的,为其后级AD采样提供原始数据。

下面对LM358做简单介绍

LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与 电源电压无关。

它的使用范围包括传感放大器、直流增益模组,音频放大器、工业控制、DC增益部件和其他所有可用单电源供电的使用运算放大器的场合。

 

LM358特性(Features):

 

*内部频率补偿。

 

*直流电压增益高(约100dB)。

 

*单位增益频带宽(约1MHz)。

 

*电源电压范围宽:

单电源(3—30V);双电源(±1.5一±15V)。

 

*低功耗电流,适合于电池供电。

 

*低输入偏流。

 

*低输入失调电压和失调电流。

 

*共模输入电压范围宽,包括接地。

 

*差模输入电压范围宽,等于电源电压范围。

 

*输出电压摆幅大(0至Vcc-1.5V)。

 

LM358主要参数

输入偏置电流45nA

输入失调电流50nA

输入失调电压2.9mV

输入共模电压最大值VCC~1.5V

共模抑制比80dB

电源抑制比100dB 

图5为其引脚图

图5.LM358引脚图

图6为运算放大模块电路图。

 

图6.运算放大模块电路图

6.2.4触摸屏控制及TFT显示模块

该模块主要功能是完成报警电流值和保护电流值的输入,同时显示实时电流值。

本设计采用XPT2046芯片作为电阻屏的输入检测,该芯片是一款4导线制触摸屏控制器,内含12位分辨率125KHz转换速率逐步逼近型A/D转换器。

XPT2046支持从1.5V到5.25V的低电压I/O接口。

XPT2046能通过执行两次A/D转换查出被按的屏幕位置, 除此之外,还可以测量加在触摸屏上的压力。

内部自带2.5V参考电压可以作为辅助输入、温度测量和电池监测模式之用,0V到6V。

XPT2046片内集成有一个温度传感器。

 在2.7V的典型工作状态下,关闭参考电压,功耗可小于0.75mW。

工作温度范围为-40℃~+85℃。

如图7

图7.XPT2046芯片原理图

模块中TFT(ThinFilmTransistor)是薄膜晶体管的缩写。

TFT式显示屏是各类笔记本电脑和台式机上的主流显示设备,该类显示屏上的每个液晶像素点都是由集成在像素点后面的薄膜晶体管来驱动,因此TFT式显示屏也是一类有源矩阵液晶显示设备。

是最好的LCD彩色显示器之一,TFT式显示器具有高响应度、高亮度、高对比度等优点,其显示效果接近CRT式显示器。

6.2.5报警模块

本设计中报警模块主要是靠蜂鸣器的报警声及TFT显示的变色来实现。

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电的电子产品中作发声器件,本设计采用有源蜂鸣器。

如图8.为蜂鸣器电路

图8,蜂鸣器电路

6.2.6继电器模块

本设计中,该模块主要完成当设备中电流达到所设保护电流时切断电源的功能。

因MUC不能直接驱动接触器,所以在中间增加了继电器驱动。

如图9,为.继电器原理图

 

图9.继电器原理图

 

7.系统软件设计

本设计主要通过对STM32F103RBT6芯片的程序控制,完成采样,比较,显示,报警,保护等功能,如图10.为软件设计的流程

图10.系统程序流程图

8.仿真调试分析

本设计主要先用multisim进行仿真,进行理论研究,根据设计目的,各项仿真数据都满足要求

如图11,如仿真原理图

图11.运放模块仿真原理图

如图12,当前设置输入信号与输出信号幅值比为1:

50时,通过仿真图像,输出端幅度刚好为输出端幅度的一半,满足放大100倍的要求。

图12.数据仿真图

9.嵌入式学习及设计心得

首先,要明确为什么要学习以MCU为核心的嵌入式应用技术。

针对读者不同的学习目的,学习嵌入式系统的方法和侧重点略有不同。

MCU具有广泛的应用范围外,对于计算机、电子类、机电类等专业的工科学生来说,即使暂时没有从事MCU的应用的开发,学习MCU也有很重要的意义。

因为,MCU作为微型计算机的一个种类,麻雀虽小,五脏俱全,学习MCU可以更加理解微机原理,更加清楚计算机的脉络。

同时,目前嵌入式应用系统的软件开发方法与一般的软件开发方法已经融合,开发平台也极为相似。

对于在校学生,学习嵌入式应用技术,主要以书本知识为主,理解嵌入式系统的原理和基本编程方式,为将来的学习和发展打好基础。

对于将要投身嵌入式行业的技术人员而言,学习嵌入式系统的方法和侧重点不同于在校的学生。

不但学习过程中所需要的背景知识(包括数字电路、汇编语言基础、软件工程,甚至机械自动化)不可或缺,而且更要养成良好的做事规范和方法。

学习的侧重点主要放在较复杂的嵌入式应用系统上,对于嵌入式实时操作系统(包括µC/OS-Ⅱ、SmallRTOS、µCLinux等)在应用的基础上,有一定深度的理解。

但是,对于只分析实时操作系统或进行短期培训性的驱动程序开发,不扎实进行嵌入式系统基础知识的学习与软件及硬件实践,是不可能学好嵌入式系统的。

其次,学习以MCU为核心的嵌入式应用技术,要选择入门的机型。

MCU种类繁多,应用于各行各业,在应用中需要设计者对各种MCU都有所了解,以便确定最佳的性能价格比。

但是不可能也没有必要同时学习各种型号MCU的软硬件知识,通常的方法是学习一种典型的MCU系列,达到实用程度,在应用中首先选择使用该系列。

如果确实要用其它系列MCU时,只需将两种系列的不同点进行分析、对比,即可在较短时间内达到可以应用的程度。

对于初学者,选择入门的MCU系列,一定要选择在国际上比较流行,系列比较齐全,在若干年内不会被淘汰,且抗干扰性强、性能价格比较高的产品。

选择意法半导体公司的 Cortex-M3系列内核的MCU具有这些特点。

第三,MCU指令系统不大,特别是关键字不多,学习时,在了解基本性能的前提下,可先把关键字及其含义记住,这样,在以后的学习中可起到事半功倍的效果。

这一点需强调一下,花上几个单元时间记住主要关键字,对于入门学习很重要,没有必要的记忆,任何知识也无法学习。

本书采用汇编语言与C语言并行学习的方法,可以通过实例对比学习。

所提供的例子均通过测试,可以作为对比学习用例。

也可以应用到实际开发系统中。

第四,学习以MCU为核心的嵌入式应用技术,一定要勤于实践。

必须通过实践,理解MCU原理,掌握基本的编程规范与方法,才能学会设计应用系统。

因此,一定要创造条件进行实践,这是学好MCU极为关键的一环。

特别是注意软件与硬件相结合的实践。

MCU程序要固化,进入硬件才能执行,而且通过MCU的输入输出以及执行机构反映出来,这就涉及到硬件系统的构成,因此学习MCU与单纯开发计算机软件不同,必须了解MCU系统的构成。

同时,通过软件“打通”硬件,观察硬件响应现象,体会软件功能。

一般8位机的硬件评估系统只有几百元,特别是好的硬件评估系统都提供自我实践硬件接口,购买硬件评估系统进行学习与实践是一种好方法。

第五,学习以MCU为核心的嵌入式应用技术,必须与输入输出接口的学习连在一起。

MCU系统离不开各种输入输出接口,学习MCU,就必须学习各种接口的原理,通过接口的输入输出体现MCU程序的功能。

第六,MCU的发展已经逐步走向成熟期,各种新技术的使用,进一步提高了MCU的性能价格比。

技术进步不可避免的带动了学习方法的更新。

学习以MCU为核心的嵌入式应用技术,也要与时俱进,不断改造自己的学习方式,保持与嵌入式应用技术发展的同步。

例如:

以前的嵌入式系统代码量小,对于硬件的依赖性大,可移植性也就相对较差,规范的重要性基本无从体现。

但随着电子技术的发展,MCU的集成度越来越高。

前几年还处于实验阶段的Flash存储器技术,目前已广泛使用。

MCU性能的提高使得开发人员不得不更重视规范的价值和作用。

如今的嵌入式系统开发,不按照规范进行,简直寸步难行。

第七,由于嵌入式系统市场巨大,潜力无限,全球的生产商都非常看好这一领域,纷纷投入了大量的人力物力;而围绕嵌入式系统的研究、设计和开发正成为计算机技术发展最活跃的方向之一。

近年来,国内外关于嵌入式系统的书籍如雨后春笋般涌现。

选择好的书籍已成为大多数初学者的当务之急。

首先,读者不要盲目跟风,要选择适合自己真正需要的书籍。

其次,读者可以通过阅读一些书中内容判断该书是否值得购买。

因为好的书籍对于问题的阐述一定是清楚明了的;对问题的解决一定是细致透彻的。

对于当前非常火热的各种嵌入式培训形式,读者不要盲目跟风,要充分和慎重的考虑自己学习嵌入式的目标和计划。

只有从底层抓起,一点一滴打好基础,才能学好嵌入式技术。

10.总结

在嵌入式学习及这次设计的过程中,的确收获了很多,在设计之初,就在课本和互联网上查阅和学习了相关知识,同时这次设计也是一次将理论知识转化为实际应用的经历,再一次加深了对嵌入式技术的理解,并且提高了对该技术的兴趣。

同时在设计过程中,发现有些理论知识用到实际设计中会有些问题,如在设计100倍运放的过程中,在仿真软件上增大电源电压,放大倍数不受影响,但实际上在板子做出来后,增大电源电压,放大倍数会受到影响,这就是在设计过程中遇到的问题之一。

从最初构想设计思路,到画原理图,制板子,焊接器件,调试,这是一个痛苦但快乐的过程,因为每解决一个问题,都会有一种成就感。

最后,感谢XXX老师的认真指导以及XX老师,XX老师和实验室同学的帮助,我相信随着知识的积累和经验的丰富,在不久的将来一定能拿出更好的设计。

11.参考文献

[1]JEANJ.LABROSSE著.邵贝贝译.uC/OS-Ⅱ-----源码公开的实时嵌入式操作系统[M].北京:

中国电力出版社.2001

[2]夏靖波.嵌入式系统原理与开发[M].西安西安电子科技大学出版社2006

[3]田泽.嵌入式系统开发与应用[M]北京北京航空航天大学出版社2005

[4]嵌入式系统设计与实例开发试验指导[M]北京博创科技有限公司2005.

[5]模拟电子技术康华光高等教育出版社

[6]STM32库开发实战指南刘良火杨森机械工业出版社

附录:

I:

实物图片

II:

关键程序代码

关键代码1:

#include"stm32f10x.h"

#include//数学公式

#include"delay.h"//延时函数

#include"LCD_HX8352A.h"//TFT驱动

#include"sys.h"

#include"LED.h"//LED驱动

#include"KEY.h"//按键驱动

#include"touch.h"//触屏驱动

#include"SPI.h"

#include"ADC.h"

#include"boot.h"

//extern__IOuint16_tADC_ConvertedValue;//以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义

/*************************************************

函数:

voidRCC_Configuration(void)

功能:

复位和时钟控制配置

参数:

返回:

**************************************************/

voidRCC_Configuration(void)

{

ErrorStatusHSEStartUpStatus;//定义外部高速晶体启动状态枚举变量

RCC_DeInit();//复位RCC外部设备寄存器到默认值

RCC_HSEConfig(RCC_HSE_ON);//打开外部高速晶振

HSEStartUpStatus=RCC_WaitForHSEStartUp();//等待外部高速时钟准备好

if(HSEStartUpStatus==SUCCESS)//外部高速时钟已经准别好

{

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//开启FLASH预读缓冲功能,加速FLASH的读取。

所有程序中必须的用法.位置:

RCC初始化子函数里面,时钟起振之后

FLASH_SetLatency(FLASH_Latency_2);//flash操作的延时

RCC_HCLKConfig(RCC_SYSCLK_Div1);//配置AHB(HCLK)时钟等于==SYSCLK

RCC_PCLK2Config(RCC_HCLK_Div1);//配置APB2(PCLK2)钟==AHB时钟

RCC_PCLK1Config(RCC_HCLK_Div2);//配置APB1(PCLK1)钟==AHB1/2时钟

RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//配置PLL时钟==外部高速晶体时钟*9=72MHz

RCC_PLLCmd(ENABLE);//使能PLL时钟

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);//等待PLL时钟就绪

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//配置系统时钟=PLL时钟

while(RCC_GetSYSCLKSource()!

=0x08);//检查PLL时钟是否作为系统时钟

}

}

/*

中断配置函数

*/

voidEXTI_Configuration(void)

{

EXTI_InitTypeDefEXTI_InitStructure;//定义枚举变量

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//使能功能复用IO时钟

EXTI_ClearITPendingBit(EXTI_Line7/*|EXTI_Line0*/);//清除EXTI线路挂起位

EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;//设置EXTI线路为中断请求

EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//设置输入线路下降沿为中断请求

EXTI_InitStructure.EXTI_Line=EXTI_Line7/*|EXTI_Line0*/;//外部中断线7

EXTI_InitStructure.EXTI_LineCmd=ENABLE;//使能中断

EXTI_Init(&EXTI_InitStructure);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource7/*|EXTI_Line0*/);//选择GPIOB7B0作为中断引脚

}

/*

中断优先级配置

*/

voidNVIC_Configuration(void)

{

NVIC_InitTypeDefNVIC_InitStructure;//定义枚举变量

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);//抢占式优先级别设置为无抢占优先级

NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQn;//指定中断源

NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;//指定响应优先级别1

NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;//使能外部中断通道

NVIC_Init(&NVIC_InitStructure);

}

/*

中断入口函数

*/

voidEXTI9_5_IRQHandler(void)

{

if(EXTI_GetITStatus(EXTI_Line7)!

=RESET)//检查指定的EXTI线路触发请求发生与否

{

//添加中断处理程序

LCD_Clear(0xfff0);//刷屏

LCD_ShowString(0,0,0xfff0,0xf800,"GroupMember:

",Font1624);//显示字符串函数

LCD_ShowString(0,LCD_Y-Fone_Y,0xfff0,0xf800,"Liujia",Font1624);

TP_Read_XY(&tp_dev.x,&tp_dev.y);//读一次XY值,初始化

//while(TP_PEN);//等待有触摸操作

EXTI_ClearFlag(EXTI_Line7);//清除中断标志(必须)

EXTI_ClearITPendingBit(EXTI_Line7);//清除中断等待

}

}

/*************************************************

函数:

intmain(void)

功能:

main主函数

参数:

返回:

**************************************************/

intmain(void)

{

//u16x,y,x1,y1;

RCC_Configuration();//系统初始化

EXTI_Configuration();//中断配置函数

NVIC_Configuration();//中断优先级配置

delay_init(72);//延时函数初始化

SPII_Init();//SPI初始化

LED_Init();//LED初始化

KEY_Init();//按键初始化

LCD_Init();//LCD初始化

Adc_Init();//ADC初始化

TP_Init();//触屏初始化

LCD_Clear(YELLOW);//刷屏函数LCD_Clear(填充色)

LCD_ShowString(0,0,YELLOW,RED,"GroupMember:

",Font1624);//显示字符串函数

LCD_ShowString(0,LCD_Y-Fone_Y*3-1,YELLOW,BLACK,"Name:

",Font1624);

LCD_S

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1