内容 | (南昌大学环境与化学工程学院,江西 南昌 330031曹长刚,张卫华,王先平
(南昌大学机电工程学院,江西 南昌 330031)刘国平

曹长刚(1982-)男,南昌大学测试计量技术及仪器硕士研究生,研究方向为嵌入式先进控制技术。
摘要:介绍了一种基于ARM7的μC/OS-II的智能阀门定位器控制系统的基本硬件组成和软件程序设计。系统采用A RM7核的LPC2290作为控制系统的核心,基于μC/OS-II实时操作系统编程,用FuzzyP-PID进行控制输出PWM占空比,通过CAN和UART接口实现主控制器、上位机与定位器之间的通信,实现了阀门的准确定位。
关键词:阀门定位器;ARM7;μC/OS-II;程序设计
Abstract: The paper introduces the hardware structure and software of an intelligent valve locator based on ARM7 microcontroller and RTOS of μC/OS-II,and mainly analyses the programming design and porting of μC/OS-II on ARM7.The system adopts LPC2290 as the core of control system, programs on RTOS of μC/OS-II,outputs duty cycle by operating of fuzzyP-PID, and communicates with main-controller and PC through CAN bus and UART, therefore this system can implement accurate location of valve.
Key words: Intelligent valve locator; ARM7; μC/OS-II; Programming design
随着工业自动化水平和嵌入式系统的飞速发展,开发具有智能化、功能全面和操作简便的智能化仪表迫在眉睫。调节阀是过程工业控制的核心,其系统控制性能主要体现在阀门定位器上。
本文提出了一种基于ARM7和μC/OS-II的智能阀门定位器设计方案,既满足了现场实时数据的采集、运算和输出,又可以通过CAN总线和UART实现阀门定位器和控制中心的实时通信。
1 系统总体设计
本系统要求软件完成的功能有以下几个方面:
实时数据采集处理功能。系统要求能够实时采集调节阀的设定阀位和反馈阀位数据 并进行A/D转换。
人机监控功能。人机监控实现参数组态、控制方式和作用方式的选择、流量特性的选择、分程控制以及现场数据的动态显示和自诊断报警。
控制策略。系统对设定位移和阀反馈信号的偏差进行算法处理,输出阀位控制信号。
上位机监控功能。系统可通过串口把实时数据发送到上位机显示。
为了实现程序设计清晰高效,本系统采用模块化设计方法,采用了μC/OS-II操作系统。按照系统要求,将软件划分为4个任务模块:A/D采集任务、键盘监控任务、控制算法输出任务和LCD显示任务。任务优先级分别设置为10、12、14、16。
2 硬件组成及功能
系统控制器以周立功公司的A R M7 系列低功耗系统M9080FNU20I为核心,利用CAN接口接收设定信号,ADC接口采样反馈信号,双PWM实现占空比输出,I2C接口连接键盘,显示采用LCD总线接口,报警和上位机监控采用GPIO口和UART0串行口发送数据。系统结构如图1。人机界面采用外部中断获取四键键码值和清达光电分辨率为128x64的HG128641液晶模块实现现场显示。

图1 系统总体框图

图2 监控任务程序流程图
3 系统软件设计
嵌入式操作系统是嵌入式系统硬件和应用软件的接口,它的使用可以提高软件开发效率。本软件设计采用公开源码的μC/OS-II多任务实时操作系统,任务和数据通信主要采用全局变量、信号量和消息邮箱。
3.1 人机监控程序设计
人机监控分为键盘任务和显示任务。在键盘任务中,首先创建一个按键信号消息邮箱:KEYD= OSMboxCreate((void*)0),再进行一些必要的初始化工作,接着请求信号量。当有键按下时,键盘GPIO口将产生一个外部中断,外部中断控制器收到中断后执行中断服务程序(ISR向量中断),在中断服务程序里,发送对应的消息:OSMboxPost(KEYD),键盘任务获得消息后执行相应的键盘监控函数。在键盘监控程序里判断为有效键被按下时调用相应的功能函数。键盘任务程序流程图如图2所示。
3.2 A/D采集任务
AD采样操作任务主要完成对调节阀阀杆位移的信号采集和向显示任务以及上位机发送数据,采集对象为慢变物理量。
调节阀所在的工业现场存在很多脉冲干扰和其它非周期性干扰,为消除上述干扰采用平均中位值滤波。由于AD采样频率很高,每次采样要实现一次PWM控制运算输出,需要合理设定整个周期,故采用定时中断采样,定时时间作为采样周期,采样周期和滤波间隔乘积作为PWM周期。
AD采样任务程序设计如图3所示。

图3 采样任务程序流程图
3.3 控制策略输出任务
系统控制策略采用FuzzyP-PID算法,当偏差大于β时,粗调采用FuzzyP控制,小于β时细调采用PID控制,程序设计如图4所示。该算法能达到快速和精度高的效果。FuzzyP即模糊五点开关控制,通过调节一个比例参数实现对占空比的调节,特点是调节快速但精度低。PID算法综合积分分离、带死区和抗积分饱和三种功能,实现精确控制。程序流程如图5所示。控制输出PWM占空比,调节效率高,能耗低,精度好。占空比,所以工作时间。PWM周期,其中N为滤波间隔。

图4 PID程序流程图 图5控制输出任务流程图
3.4 显示任务
显示任务实现LCD显示,主要为现场工程人员提供当前阀门数据和操作信息,提供友好的人机交互界面。程序设计如图6所示。显示任务分为7个菜单:主菜单、控制方式、作用方式、流量特性、PID参数整定、报警参数整定和报警提示菜单。主菜单动态显示阀门开度、动态偏差、PWM占空比、死区和行程;控制方式显示手动输入或自动获取上位机设定阀位值;作用方式显示当前是正作用还是反作用;流量特性菜单显示当前选择的流量特性;参数整定菜单显示键盘输入的数据值,实现现场参数组态;报警菜单提示报警原因。

图6 显示任务程序流程图
4 uC/OS-Ⅱ的移植
本设计移植μC/OS-II到ARM7采用ARM公司的ADS1.2编译器,任务的缺省模式为ARM用户模式,任务的可选模式为ARM系统模式。移植μC/OS-II多任务实时操作系统主要实现对三个文件的改写:OS_CPU.H、OS_CPU.C和OS_CPU_A.S。在OS_CPU.H文件中主要涉及到与编译器相关数据类型的修改和μC/OS-II临界区保护方式的选择;在OS_CPU.C文件中主要实现任务堆栈的初始化函数OsTaskStkInit()和开关中断宏定义;μC/OS-II的移植主要需要编写OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()和OSTickISR()4个汇编语言函数,可以说这几个汇编函数是整个移植过程的重点,它们在最底层保证了μC/OS-II内核任务调度的顺利进行。启动最高优先级就绪任务函数OSStartHighRdy()代码如下:
_OSStartHighRdy
MSR CPSR_c, #(NoInt|SYS32Mode);
LDR R4,=OSRunning;
MOV R5, #1;
STRB R5,[R4];
BL OSTaskSwHook;
LDR R6, =OSTCBHighRdy;
LDR R6, [R6];
B OSIntCtxSw_1;
5 总结
本文提出了一种基于ARM7和μC/OS-II实时操作系统的嵌入式智能阀门定位器的总体设计,主要介绍了应用程序设计和μC/OS-II操作系统在ARM7上的移植。该智能定位器与传统的阀门定位器相比,不仅功能齐全、操作简单,而且精度高、能耗低。
参考文献:
[1] 周航慈,吴光文. 基于嵌入式实时操作系统的程序设计技术[M]. 北京:北京航空航天出版社,2003.
[2] 张素文,李勇振. 基于Fuzzy-PI双模控制的智能液压阀门定位器的算法研究[J]. 泰山学院学报,2006.
[3] 周立功. ARM嵌入式系统基础教程[M]. 北京: 北京航空航天出版社,2005.
[4] 费浙平. 基于ARM的嵌入式系统程序开发要点[J]. 单片机与嵌入式系统应用,2003,(09): 80-83.
[5] 刘静静. 基于ARM和μC/OS-Ⅱ的嵌入式应用系统的设计[D].中国海洋大学优秀硕士论文, 2008.
[6] 张素文,刘延兵. 基于ARM的智能液压阀门定位器的设计[J]. 武汉理工大学学报,2007(29): 45-48.
[7] 林慧. 智能电气阀门定位器的研究开发[D]. 天津: 天津大学电气与自动化工程学院,2003.
摘自《自动化博览》2010年第四期
|