采用C504单片机的变频调速系统介绍
变频调速在控制中的应用愈来愈广泛,传统的变频调速控制是用普通的单片机系统来实现,电路复杂、编程麻烦,本系统采用C504专用控制单片机来实现变频调速。
1C504功能简述
C504是西门子公司的8Bit专用微控制器,它兼容51系列单片机,其显著特点是:具有一个专用于产生PWM信号的16位捕捉/比较单元(Capture/CompareUnit,简称CCU),4个8Bit通用输入/输出口,其中P1口既可作为4路模拟输入,也可作为6路PWM输出,这就给变频调速控制提供了PWM波驱动信号,无需外加PWM波产生电路,或使用复杂的软件编程方式。
C504的PWM波产生原理是:通过向CCU中的周期寄存器、控制寄存器、方式选择寄存器和初始化寄存器写入命令字,把晶振时钟信号经预分频单元,变为一定周期的脉冲,再经捕捉定时器,把时钟脉冲转化为一定周期的三角波或锯齿波,再经比较器进行比较,将输入信号调制成不同脉宽的方波脉冲,经接口控制单元向外输出六路方波脉冲,当改变三个比较器和周期寄存器的赋值时,就改变了PWM波的脉宽和周期,从而实现调频和调脉宽的控制。
2硬件系统
硬件系统如图1所示。C504是该系统的核心,实现系统的控制和6路PWM波的产生。27256EPROM作为程序存储器,74AS573作为地址锁存器,8255可编程并行接口芯片、ULN2803及74LS245,组成键盘与显示电路。通过键盘进行转速和转向的设置,显示器显示工作状态和频率。IPM是一个智能功率模块,具有过压、欠压、过流自动保护功能,并输出故障指示信号,内设有驱动电路和光电隔离电路,直接由C504的P1.2~P1.7输出的六路PWM波驱动,具有抗干扰性能强的特点。它是一个自关断三相全控逆变桥,直接用来控制需调速的三相电动机。
整个系统外围元件少,宜于编程和开发,体积小,推广使用非常方便,具有非常高的性能/价格比。
3软件系统
本系统利用C504微控制器芯片内的CCU单元,可以较为简便地产生三相SPWM波,去驱动IPM直接来控制三相感应式电动机。在设计软件时,基于时间优化的原则,所有的控制任务使用高效的算法,只需很短的CPU计算时间。
整个软件系统采用模块化结构,包括主程序(见图2)、用户设置子程序(见图3)、键盘检测子程序、状态及故障监控子程序和CCU中断服务程序(见图4)。考虑到开发周期和控制效率两方面的问题,在开发中使用C51和汇编语言混合编程。
主程序完成系统初始化和控制任务。系统初始化包括:在RAM中建立完整的正弦表,CCU初始化、中断系统初始化和8255初始化(包括键盘、显示电路)。具体流程如图2所示。用户设置子程序设有密码保护,主要接收用户通过键盘输入的“旋转方向”和“转速”,并将设定值存入RAM中,流程如图3。状态与故障监控子程序可将当前电动机的“转向”和“转速”,以及IPM的故障代码,遇到严重故障可以自动停机。键盘检测和显示子程序比较简单,在此不再赘述。
图1硬件系统图
图2变频调速系统主程序 图3用户设置子程序
图4CCU中断服务子程序
CCU中断服务程序是软件系统的关键部分,使用汇编语言编程。通过比较定时器1的溢出中断,系统每50μs调用一次中断服务程序,周期性地更新CCU比较寄存器中的赋值。该任务耗时15μs左右,约占用30%的CPU运算时间,程序简练,执行效率很高。如果转速增加或减小时也可以按一定的速率改变转速,同时为了避免当转速低于1Hz时向电动机输出DC电流,会自动关闭CCU输出。这时,该任务耗时30μs左右,约占用60%的CPU运算时间,为实现闭环控制提供了时间。流程如图4所示。
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)