|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
<strong>1 引言</strong>
20世纪后半叶,变频调速技术的出现和日益完善.成为电力拖动领域的一个重大事件。由于变频调速技术的发展,使结构简单牢固、价格低廉、应用普及的交流异步电动机有了性能良好的调速手段。
近10年来,随着电力电子技术、计算机技术、自动控制技术的迅速发展.电气传动技术面临着一场历史革命,即交流调速取代直流凋速和计算机数字控制技术取代模拟控制技术已成为发展趋势。交流异步电机变频调速技术是当今节电、改善工艺流程以提高产品质量和改善环境、推动技术进步的一种主要手段。变频调速以其优异的调速和起制动性能,高效率、高功率因数和节间效果,广泛的适用范围及其它许多优点而被国内外公认为最有发展前途的调速方式。
ARM技术是嵌入式系统方面的主流技术。目前市场上ARM芯片速度可达几百兆,以它为主控芯片可在硬件上实现高速、高精度且具有一定处理能力的变频调速控制系统。本系统采用Philips公司的LPC2292处理器,结合嵌入式μClinux操作系统来实现其功能。嵌入式μClinux操作系统提供了丰富的驱动资源。LPC2292处理器具有丰富的接口资源,能够满足变频调速控制系统的设计要求。
<strong>2 系统硬件的工作原理</strong>
图2.1为变频调速控制系统的硬件设计和工作原理图。系统的硬件设计主要有ARM处理器模块、以太网模块、键盘输入模块、LCD显示屏模块、数据采集模块、A/D模数转换模块和PWM脉宽调制模块7部分。ARM处理器模块主要包括PLC2292处理器、FLASH、SDRAM、电源模块、实时时钟模块和其它辅助电路构成。ARM处理器模块是变频调速控制系统的核心处理单元,以LPC2292为控制核心;以太网13接口模块主要负责变频调速控制系统进行远程控制和监视;键盘模块负责工作参数的设黄输入,以及工作状态的切换;LCD显示屏模块负责当前设置和丁作状态的显示,同时显示时钟日历等,实时时钟通过12C总线与LPC2292连接;数据采集模块主要负责从外部采集信息;A/D模数转换模块主要是负责将数据采集模块采集来的模拟信号转换成数字信号;PWM脉宽调制模块主要负责通过IPM职能功率模块对交流异步电机进行变频调速。
<ignore_js_op>
2010-3-24 12:30:17 上传
<strong>下载附件</strong> (4.49 KB)
</ignore_js_op>
图2.1变频调速控制系统的硬件设计和工作原理图
LPC2292处理器是变频调速控制系统的核心处理单元。数据采集模块采集的模拟信号经A/D模块量化后数据参数传人ROM中的嵌入式μClinIIX操作系统的应用程序中,应用程序根据数据在通过PWM脉宽调制模块控制输出频率,从而再通过IPM智能功率模块对交流异步电机进行变频调速。
<strong>3 系统软件平台设计</strong>
系统软件平台设计主要使用c语言和ARM汇编语言。系统软件平台设计主要包括3个方面:启动引导程序Bootload;建立μCLin呱操作系统的开发环境;PWM脉冲宽度调制模块驱动森序的实现。
3.1启动引导程序Bootloader
引导程序Bootloader是在操作系统运行之前执行的一段程序。它主要实现的功能包括:初始化CPU运行的时钟频率;初始化flash和内存的数据宽度,读写访问周期和刷新周期;初始化中断系统;初始化系统中各种片内、片外设备和FO端口;初始化系统各种运行模式下的寄存器和堆栈;加载和引导μCLinux操作系统。
3.2建立μCLinux操作系统的开发环境
μCLinux操作系统沿袭了传统Linux操作系统的主要特性,包括稳定、强大的网络和文件系统支持;建立μCLinux,操作系统的开发环境主要包括3个步骤:建立μCLinux操作系统的交叉编译环境、μCLinux操作系统的编译和μCLinux操作系统的加载。
3.3 PWM脉宽调制驱动程序的开发
设备驱动程序是操作系统内核和硬件之间的接口,它作为应用设备之间的软件层.为应用程序屏蔽了硬件的细节。在μCLinux操作系统下开发字符设备驱动程序,主要有如下几个步骤:(1)设置驱动程序的设备号。(2)实现保存设备信息的结构体中的部分函数。(3)实现驱动程序的初始化函数和清除函数。
PWM脉宽调制驱动程序属于字符设备驱动程序,因此PWM脉宽调制驱动程序遵循上述的开发步骤。
3.3.1设置PWM驱动程序的设备号
PWM脉宽调制驱动程序要先建立文件设备的主设备号和从设备号。PWM驱动程序默认的主设备号为125,没有使用从设备号。因此,需要建立1个设备文件,起主设备号为125.从设备号可任意选择,文件名可定为PWM。建立设备文件的程序清单如下:
程序清单3.2建立设备文件程序
mknod /dev/PWM c 125 0
3.3.2实现保存设备信息的结构体中的部分函数
PWM驱动程序属于字符设备的驱动程序。PWM驱动程序要建立保存设备信息的结构体。PWM驱动程序的结构体如下:
程序清单3.1 PWM驱动程序操作的结构体
struct file_operations pwm_fops={
owner:THIS_MODULE,
open:pwm_open,
release:pwm_release,
ioctl:pwm_ioctl,
}
因为PWM驱动程序仅需要实现open()、release()和ioctl()函数,所以PWM驱动不能使用标准C的库函数来访问,只能使用内核提供给应用程序的接口函数来访问。
从此函数接口看.我们实现PWM设备的打开、释放和控制。函数open(const cIla—pathname,int nags)主要实现对PWM设备的打开;函数close(int fd)主要实现对PWM设备的关闭;函数ioed(int fd,tinsigned IonE int cmd,⋯)主要实现对PWM脉宽调制设备输出频率和占空比的控制。
PWM脉宽调制驱动程序最重要的功能是控制PWM输出的频率和占空比。PWM脉宽调制驱动程序输出的频率可以通过命令PWM_SET_CYC设置PWM脉宽调制频率。实际上是以VPB总线周期为单位设置PWM脉宽调制的频率。频率是周期的倒数,所以也就设置了频率。PWM脉宽调制驱动程序知道PWM脉宽调制的输出频率和高电平时间,就可以计算占空比。因此,设置再设置高电平时间就可以计算占空比。PWM脉宽调制驱动程序可以用PWM_1_SET_DUYY、PWM_1_SET_DUYY等命令设置高电平时间。
3.3.3 实现驱动程序的初始化函数和清除函数
μCLinux操作系统在加载内核模块时会调用驱动程序的初始化函数,在卸载内核模块时调用驱动程序的清除函数。PWM驱动程序的初始化函数和清除函数程序代码如下:
程序清单3.3 PWM驱动程序初始化函数代码
int pwm_init(void){
int result;
result=register_chrdev(MAJOR DEVICE,&pwm_fops);
if(result<0){
printk(KERN_ERR DEVICE NAME“:Unable to get major%d\h”,MAJOR_NR);
return(result);
}
if(MAJOR_NR==0) MAJOR_NR=result;
printk(KERN_INF0 DEVICE_NAME”:init 0K\n”);
return(0);
}
程序清单3.4 PWM驱动程序清除函数代码
void pwm_cleanup(void){
unregister_chrdev(MAJOR_NR,DEVICE_NAME);
}
3.3.4为PWM脉宽调制驱动程序添加中断服务程序
μLinux操作系统内核具有中断管理功能,因此中断服务程序必须按照其规范使用。μCLinux操作系统在使用中断服务程序之前,需要向内核注册中断服务程序;不再使用中断服务程序时,需要注销中断服务程序。注册中断服务程序通过调用函数request_irq()实现。通常申请中断返回值为0表示成功,或者返回—个负的错误码。函数返回一EBUSY,表示另一个设备程序已使用了要申请信号线。注销中断服务程序通过调用free-irq()实现。
3.3.5编译和测试驱动程序
PWM驱动程序源代码编写成功后,需要把它编译进内核。当用户需要打开设备时。还需要一个在/dev目录的设备文件名称.这样驱动程序才能工作。
最后经过编译得到zImage内核压缩文件。用引导程序Bootloader通过串口或者以太网接口将zImage文件引导到LPC2292处理器上片外SDRAM上进行调试。
<strong>4 结束语</strong>
嵌入式系统具有低功耗、可靠性高等突出优点。采用嵌入式系统来设计和实现变频调速控制系统,使得变频调速控制系统可靠性高、性能强、实时性好,将以太网接口集成与变频调速系统中,使得对变频调速系统的远程控制和监视变得简单易行。因此,研制一个带以太网接口的嵌入式变频调速控制系统具有重要的科学意义和价值。
本文的主要创新点:具体实现了在PLC2292+μCLinux操作系统平台下的6路PWM脉宽调制变频调速控制系统的软硬件设计;详细分析可PWM脉宽调制模块设备在嵌入式μCLinux操作系统下驱动程序结构和开发过程,编写出驱动模块,实现了6路PWM脉宽调制驱动模块设备的控制,结合已经完成的以太网接口驱动模块,已成功地应用到变频调速控制系统中,系统简明,扩展方便,信息处理实时性高。
作者:徐功伟 来源:《微计算机信息》(嵌入式与soc)2009年第25卷第6-2期 |
|