基于STM32的智能电机保护器设计

发布者:ping777最新更新时间:2009-12-17 来源: 电子科技关键字:STM32  电机保护器  LCD  ADC  RS485 手机看文章 扫描二维码
随时随地手机看文章

0 引言

    电机是工业生产领域中最主要的驱动源,如何有效地监控电机的运行状态,保护电机回路,提高电机的运行时间,减少电机故障,对工厂整体电网的运行十分关键。

    电动机保护装置有很多种,目前使用得比较普遍的还是基于金属片机械式的热继电器,它结构简单,在保护电动机过载方面具有反时限特性。但它的保护功能少,无断相保护,对电机发生通风不畅、扫膛、堵转、长期过载、频繁启动等故障也不能起保护作用。此外,热继电器还存在重复性能差、大电流过载或短路故障后不能再次使用、调整误差大、易受环境温度影响而误动或拒动、功耗大、耗材多、性能指标落后等缺陷。

    为响应国家节能减排的要求,采用基于微控制器的电子式电机保护器替代现有热继电器,具有广大的市场。设计采用集成丰富外设的STM32系列ARM芯片为核心的智能电机保护器,具有响应速度快、附加芯片少、生产调试简单、生产及社会效益高等优点。

1 智能保护器功能及硬件架构

    电机运行中主要发生的故障包括:起动超时、过载、堵转、缺相、不平衡、过热、欠载、过压、欠压等。因此智能保护器需要监测电机的工作电压、工作电流和机壳温度。

    同时,由于电机的类型、容量和负载类型不同,电机保护的参数也不尽相同,所以需要能够针对不同的电机设置保护参数。

    再者,为了使智能保护继电器能够满足当前流行的智能电机控制中心(IMCC)的需求,智能电机保护器还需要具有网络通讯功能。

    图1是智能电机保护器的硬件结构框图。

2 系统硬件设计

2.1 MCU

    MCU是电机保护器的核心部分,主要负责数据采集、数据处理、输出控制和参数设置。这里采用的是ST公司最新推出的STM32F103xD系列ARM芯片。

    该系列芯片采用ARM公司32位的C0rtex M3为核心,最高主频为72MHz,Cortex核心内部具有单周期的硬件乘法和除法单元,所以适合用于高速数据的处理。

    芯片具有三个独立的转换周期,最低为1μs的高速模数转换器,三个独立的数模转换器带有各自独立的采样保持电路,所以特别适合三相电机控制、电网监测和多参数仪器设备的使用。

    芯片还带有丰富的通讯单元,包括多达5个异步串行接口、1个USB从器件、1个CAN器件、I2C和SPI等模块。

2.2 模拟量采集单元

    电机保护器主要需要采集电流、电压和温度这三个模拟量来对电机的运行状态进行监测和保护。
    电流传感器类型众多,主要包括磁芯电流互感器、霍尔传感器、分流电阻。而电机保护器所连接的电机容量主要以几千瓦至数十千瓦的电机为主,因此电机相电流主要在数安培至几十安培。因此采用电流互感器为电流采集单元,具有量程宽、发热小、隔离电压高等优点。同时在不改变处理电路的参数的同时,采用不同变比的电流传感器可以方便地改变电机保护器的电流检测量程,从而可以方便地用于更大容量的电机保护。

    电压直接通过电阻分压获得,因此整个电机控制器是共热地的系统。电阻采用的是高阻抗高耐压类型电阻,同时为了提高电压采集回路的过电压能力,电压分压电路采用多电阻串联形式,从而降低每一个电阻上的额定压降,同时提高整个支路的最高耐压。

    温度传感器采用常见的铂电阻传感器或者NTC热敏电阻,保护器硬件上设计有对应的热电阻信号调理电路。由于热电阻都是非线性器件,因此温度采集处理通道都需要进行非线性处理,为了减少硬件电路的复杂程度,因此实际热电阻调理单元只是设计采用一个仪表放大器,而热电阻的非线性处理由MCU完成。另外还有一路MCU芯片内置的半导体温度传感器,用于检测保护器内的温度,从而防止由于系统过热而导致控制出错。

2.3 液晶显示

    对于独立应用的电机保护器,需要能够设置保护参数,显示当前的运行状态,当发生故障时候还需要显示故障类型。因此电机保护器需要有显示单元。

    系统设计采用点阵形式STN黑白液晶显示(LCD)模块,相比TFT彩色LCD模块,具有使用温度范围宽、寿命长、强光下仍可以阅读的优点。

    LCD模块内置的控制器采用的并行数据通讯接口,包括数据总线、读写控制线、器件选通和复位引脚。系统设计时,使用STM32F103xD芯片的多功能静态存储器控制器(FSMC)与LCD模块相连。

    STM32F芯片的FSMC模块是一个支持静态存储器(SRAM)、NOR F1ash和PSRAM的多功能静态存储器控制器。可以支持8位或者16位宽度的存储器。

    LCD模块的访问时序与SRAM的相同,而且可以通过配置引脚选择为8080或者6800类型的接口时序。图2是STM32芯片的FSMC接口与LCD的电气连接,这里的液晶是采用的8080接口时序。

2.4 通讯电路

    智能电机控制中心(IMCC)的控制结构大都是总线型分布式网络结构,系统中有中央控制器负责调度和监控所有电机的运行。根据所使用的中央控制器(大多为PLC)的不同,系统的通讯协议有MODBUS、Fieldbus和以太网等。其中最常见的是MODBUS协议。MODBUS协议的物理层是基于RS485的半双工通讯网络,电机保护器在其中是处于从机地位。

    由于电机保护器内部是共热地系统,所以RS485远程通讯需要与控制器主回路隔离。对于RS485收发器的隔离,需要对通讯信号和收发器的供电进行隔离。电机保护器的通讯接口设计的通讯波特率最高需要达到57.6kbps,因此需要使用高速光耦或者数字隔离芯片完成对通讯信号的隔离。

    数字隔离芯片是一种新型的器件,TI、ADI和Silicon Lab等公司都有推出拥有各自专利的数字隔离器件,但各家芯片的引脚封装和引脚功能大部分都是兼容的,可以直接替换。相对传统的高速光耦,数字隔离器件具有功耗低、传输速率高、兼容3V/5V系统和外设简单等优点。实际连接电路如图3所示。

3 系统软件设计

3.1 监控程序

    智能电机保护器中,MCU只要完成电流和电压的采样、计算、分析来实现各种保护功能,并且实时显示线路的参数和记录故障状态。

    系统软件中,全局监控软件用来循环扫描各个单元子程序的状态,包括模数转换器的数据采样,数据采集完成后对数据进行计算,而后根据计算结果和预先设置的电机参数,结合保护策略判断出当前电机的状态。最后通过LCD显示器和输出控制接口发出相应的状态信息和控制功能。

3.2 ADC的配置和使用

    由于电机保护器采集的是50Hz工频电压电流,同时为了能够监测到电网中的高次谐波成分(主要是3次谐波),因此在ADC的采样频率需要设置在工频的整数倍,从而使得采样快速傅立叶(FFT)运算时得到最准确的精度。同时,数据采样时,由于计算功率需要同时采集电压、电流值,因此在系统设计时,将三相的参数分别分配到两个模数转换器,而将温度量放置在第三个模数转换器。所有的模数转换均采用内部定时器中断触发。

    对于电压和电流的采集,系统采用同步采样模数,即同时采集同一个通道的电压和电流值;同时在采样通道配置寄存器中,将三个电压电流通道依次排列,使得在一次定时器触发下,一次性完成所有通道的转换。

    由于FFT需要一组数据进行计算,所以为了最低程度的CPU干预,系统设计使用了DMA来完成转换结果的传递。程序设计时,需要设置两块数据存放区,用于采样数据的交替存放;同时DMA传递的字节计数的预置值即为傅立叶转换数组长度乘以采集的通道数。

3.3 远程通讯

    电机保护器设计为MODBUS从机,所有的电机运行状态、控制状态等参数都是放置在系统约定地址的寄存器中。同时MODBUS从机需要给每一个电机控制器预置一个网络中唯一的从机地址,所以还需要使用按键和LCD屏幕来设置从机地址。

4 结语

    本文提出一种基于STM32系列新品的智能电机保护器,本设计充分利用了STM32芯片的资源,提供必要的外围器件构成了一个完整的系统。实际应用证明,此系统能有效保护电机,且具有结构简单、功能完善、接口丰富等优点,根据实际需要还可以开发出诸如USB、CAN open等接口,因此此系统可以更广泛地应用于工业生产各个领域。

关键字:STM32  电机保护器  LCD  ADC  RS485 引用地址:基于STM32的智能电机保护器设计

上一篇:基于USB接口1553B总线设备检测系统设计
下一篇:基于微控制器的数字式温度伺服控制系统

推荐阅读最新更新时间:2024-03-16 12:27

stm32使用HX711读电子秤的值
使用HX711变送器模块+5kg的传感器。 #define HX711_DATA PEin(0) #define HX711_SCK PEout(1) void HX711_init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.G
[单片机]
<font color='red'>stm32</font>使用HX711读电子秤的值
STM32定时器触发ADC的时序话题
在STM32芯片的ADC应用中,我们往往会利用定时器来触发ADC的启动转换,而能够触发ADC转换的定时器事件往往有多个,有时我们可能很关注这些定时器事件在触发ADC时有哪些时序上的差别。下面以STM32G4芯片为例,来大致聊聊该话题。 这里选择TIM1来触发ADC。我们从手册或CubeMx配置界面不难看到可用来触发ADC的定时器事件可以是定时器TRGO信号和通道CC事件/信号,而TRGO可能来自定时器的使能动作、定时器的更新事件、通道输出比较事件、通道比较输出参考信号以及编码时钟。 这里先重点就Update事件、通道OCx信号和OCxREF信号作为TRGO来触发ADC,看看相应的触发时间点在哪里。 另外,作为ADC的外部触
[单片机]
<font color='red'>STM32</font>定时器触发<font color='red'>ADC</font>的时序话题
CC1101接口库在STM32上的移植
【目的】 移植原来TI对于CC1101与MSP430接口库到STM32平台,参考原TI库应用笔记 MSP430 Interface to CC1100/2500 Code Library ,做到尽量保持所有函数名不改变,以方便以前基于MSP430的程序向STM32移植。 【要求】 1.编程要求:改写原来基于MSP430的程序,使用于STM32,尽量保持所有函数名不改变,以方便以前基于MSP430的程序向STM32移植。 2.实现功能:STM32与CC1101通过SPI接口正常传输数据,不同节点的CC1101可以正常传输数据。 3.实验现象:STM32与CC1101连接后,可以与另一个节点通信,节点初始在随机时间发送一个数据
[单片机]
CC1101接口库在<font color='red'>STM32</font>上的移植
STM32关于操作内部FLASH整理
stm32的FLASH分为主存储块、信息块和闪存存储器接口寄存器等 3 部分组成。 主存储块用于保存具体的程序代码和用户数据。起始地址0x08000000,b0和b1接GND从这里开始执行程序。 信息块用于负责由stm32出厂时放置2KB的启动程序(BootLoader)和512B的用户配置信息区。启动程序代码,是用来存储ST 自带的启动程序,b0接3.3v,b1接GND运行的就是这部分代码 ,用作串口下载代码。 闪存存储器接口寄存器,该部分用于控制闪存读写等,是整个闪存模块的控制机构 。在执行闪存写操作时,任何对闪存的读操作都会锁住总线,在写操作完成后读操作才能正确地进行;既在进行写或擦除操作时,不能进行代码或数据
[单片机]
STM32 Cotex-M3处理器系列编程】定时器灯亮
//定时一秒LED亮 #include stm32f10x.h unsigned int TimingDelay; void Delay(unsigned int x) { TimingDelay=x; while(TimingDelay--); } void TIM3_IRQHandler(void) { if(TIM_GetITStatus(TIM2,TIM_IT_Update) != RESET)//检查中断溢出标志位 { TIM_ClearITPendingBit(TIM2,TIM_IT_Update);//清中断溢出标志位 GPIO_SetBits(GPIOC, GPIO_Pin_7
[单片机]
STM32固件库中assert_param的作用——学习笔记
在学习stm32库函数过程中,笔者遇到大量的assert_param语句。经查明,assert_param的作用就是用来判断传递给函数的参数是否是有效值。 以下是从固件库中复制粘贴的: void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState) { /* Check the parameters */ assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph)); assert_param(IS_FUNCTIONAL_STATE(NewState)); if (NewState !=
[单片机]
RS485收发连接器电路设计集锦
基于服务广大电子爱好者,小编这里整理了关于RS485收发连接器电路的参考设计,为电路设计者提供思路,在实际使用中需要大家验证。对于想入门电子或者刚接触电子的小白们,这篇经典之作可是不容错过的好指导书哦! RS-485标准在工业控制、电力通讯、智能仪表等领域中使用广泛。但是,在工业控制等现场环境中,情况复杂,常会有电气噪声干扰传输线路;在多系统互联时,不同系统的地之间会存在电位差,形成接地环路,会干扰整个系统,严重时会造成系统的灾难性损毁;还可能存在损坏 设备 或危害人员的潜在电流浪涌等高电压或大电流。因此,对RS-485接口的隔离是非常有必要的。     隔离RS-485接口电路     我们经常采用的485接口隔离电路是利用
[嵌入式]
STM32裸机编程的基础知识(5)
闪烁 LED 现在我们已经搭建好了完整的构建、烧写的基础设施,是时候让固件做点儿有用的事情了。什么是有用的事情?当然是闪烁 LED 了!Nucleo-F429ZI 开发板有 3 颗 LED,在开发板数据手册的 6.5 节,我们可以看到板载 LED 连接的引脚: PB0: green LED PB7: blue LED PB14: red LED 再次修改 main.c 文件,添加上引脚定义,然后把蓝色 LED 引脚设为输出模式,开始无限循环。首先,把我们之前讨论过的 GPIO 定义和模式设置拷贝过来,注意,现在又新加了一个 BIT(position) 工具宏: #include inttypes.h #include
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved