论文部分内容阅读
摘 要 本文通过对电梯门机控制器功能需求的分析,结合当今嵌入式系统技术的发展,提出一种新型电梯门机控制器设计方案。该方案采用的嵌入式实时操作系统为代码开源的?COS-II,MCU采用广泛应用工业控制领域的32位瑞萨单片机,软件开发环境采用瑞萨提供的集成开发平台HEW。通过软件总体设计分析,从而为该方案实现的可行性提供理论依据。
关键词 电梯;门机控制器;实时操作系统;?COS-II
中图分类号:TP273 文献标识码:A 文章编号:1671-7597(2014)20-0026-02
随着MCU技术的逐步发展,CPU处理速度越来越快、存储器的容量逐渐增大、性能的稳定性也逐渐增强,但芯片成本并未大幅度增加,故而基于MCU的嵌入式处理芯片正得以越来越广泛的应用。通过研究目前相关电梯厂家门机控制器,采用16位的MCU较多,如: ATMEGA16等。同时,软件架构绝大多数采用前后台的操作系统,导致CPU资源的浪费,实时性也不够。如今32位MCU正逐渐步入嵌入式系统行业的主流市场,由于其丰富的资源平台,可以很好地支撑实时操作系统,本文中仅以其中一种实时操作系统(?COS)进行阐述。
?COS(Micro Controller Operating System)--微控制器操作系统,是由美国人Jean Labrosse 1992年完成,应用面覆盖了诸多领域,如:照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等。1998年发展为?C/OS-II。2000年,得到美国航空管理局(FAA)的认证,可以用于飞行器的设计,所以该操作系统的稳定性是毋庸置疑。另外,该操作系统还具有诸多优良的性能:可移植性、可固化、可裁剪、可确定性、多任务执行和中断管理等。
1 需求分析及总体设计
随着我国房地产业的蓬勃发展,给电梯行业带来了前所未有的机遇,与电梯相关的配件--电梯门机控制器,也得以迅速发展。目前市场上主流的门机控制器为采用双闭环(速度环和电流环)的控制器驱动同步马达,这对控制器的软硬件设计要求相当高,诸如运算的准确性、响应的快速性、任务的复杂性等。基于上述需求,下面将提出产品的总体设计。
1)运行环境。
硬件环境:基于瑞萨主控制芯片SH2系列单片机硬件开发环境。
软件环境:基于HEW集成开发环境,windows XP操作系统或以上。
2)软件概念设计。
基本框架如图1所示。
①软件功能。以功能单元为基础来划分软件结构。
②软件运行。采用?COS-II实时操作系统,将所有软件功能规划为任务模块,且满足低耦合和高内聚的要求。
③功能划分。按照功能,划分为以下几个部分:上电初始化部分、?COS-II系统移植部分、A/D转换、I2C模块、门机运行命令生成、PWM生成、I/O控制、串口通讯、正余弦函数表、默认参数表和中断矢量表、电流环中断、速度环中断、故障处理。
图1 软件功能框架图
2 软件设计方案
1)任务模块的规划。
基于2.2.3中描述的门机控制器的功能,进行细分,并根据任务执行的实际状况确定其优先级。
2)实时操作系统的规划。
前面已经介绍了?C/OS-II相关特性,结合门机控制器的软件功能模块分析,该操作系统主要实现的相关任务的安排与调度。本文不针对具体任务的处理作介绍,仅对?C/OS-II操作系统如何实现多任务的执行简单阐述。
①创建任务的系统服务:
INT8U OSTaskCreate (
void (*task)(void *pd), //任务代码指针
void *pdata, //任务参数指针
OS_STK *ptos, //任务栈的栈顶指针
INT8U prio //任务的优先级
);
②任务主函数:
一个任务通常是一个无限循环(返回值类型void)
void MyTask(void *pdata)
{
while (1)
{
do something;
waiting;
do something;
}
}
③任务控制块TCB:
任务控制块(OS_TCB)是描述一个任务的核心数据结构,存放了它的各种管理信息,包括任务堆栈指针,任务的状态、优先级,任务链表指针等;一旦任务建立了,任务控制块OS_TCB将被赋值。系统初始化后,指针数组指向响应的TCB,如图2所示。
图2 任务控制模块(OS_TCB)框图
④任务状态的转换:
任务的状态包括休眠、就绪、运行、中断服务状态(ISR)和阻塞,其中各状态间的转换如图3所示。
图3 任务状态转换示意图
⑤任务状态的调度
?COS-II是可抢占实时多任务内核,它总是运行就绪任务中优先级最高的那一个。
?COS-II中不支持时间片轮转法,每个任务的优先级要求不一样且是唯一的,所以任务调度的工作就是:查找准备就绪的最高优先级的任务并进行上下文切换。
?COS-II任务调度所花的时间为常数,与应用程序中建立的任务数无关。
确定哪个任务的优先级最高,应该选择哪个任务去运行,这部分的工作是由调度器(Scheduler)来完成的。
任务级的调度是由函数OSSched()完成的;
断级的调度是由另一个函数OSIntExt()完成的。
上述对?COS-II任务的管理做了基本介绍,当然在具体操作前述软件模块时远非这些,在操作系统移植时,需要作进一步的研究分析。
3 结论
综上所述,介绍了基于实时操作系统的门机控制器的软件实现方式,由于前后台操作系统的门机控制器是成熟的产品,本文提及的门机控制器与其比较仅为操作系统不一样,其它诸如硬件、软件功能等均一致。所以,移植?COS-II成为该门机控制软件设计的关键,当成功移植?COS-II后,门机控制器功能和性能的稳定性必然能够得到保证。
指导教师:蒋乐天。
参考文献
[1]魏洪兴.嵌入式系统设计导论.北京航空航天大学机器人研
究所.
[2]Jean J.Labrosse著.嵌入式实时操作系统μC/OS-II(第2版)[M].邵貝贝,等,译.北京航空航天大学出版社.
[3]曾鸣.uC/OS-II 实时操作系统在嵌入式平台进行移植的一般方法和技巧.清华大学.
关键词 电梯;门机控制器;实时操作系统;?COS-II
中图分类号:TP273 文献标识码:A 文章编号:1671-7597(2014)20-0026-02
随着MCU技术的逐步发展,CPU处理速度越来越快、存储器的容量逐渐增大、性能的稳定性也逐渐增强,但芯片成本并未大幅度增加,故而基于MCU的嵌入式处理芯片正得以越来越广泛的应用。通过研究目前相关电梯厂家门机控制器,采用16位的MCU较多,如: ATMEGA16等。同时,软件架构绝大多数采用前后台的操作系统,导致CPU资源的浪费,实时性也不够。如今32位MCU正逐渐步入嵌入式系统行业的主流市场,由于其丰富的资源平台,可以很好地支撑实时操作系统,本文中仅以其中一种实时操作系统(?COS)进行阐述。
?COS(Micro Controller Operating System)--微控制器操作系统,是由美国人Jean Labrosse 1992年完成,应用面覆盖了诸多领域,如:照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等。1998年发展为?C/OS-II。2000年,得到美国航空管理局(FAA)的认证,可以用于飞行器的设计,所以该操作系统的稳定性是毋庸置疑。另外,该操作系统还具有诸多优良的性能:可移植性、可固化、可裁剪、可确定性、多任务执行和中断管理等。
1 需求分析及总体设计
随着我国房地产业的蓬勃发展,给电梯行业带来了前所未有的机遇,与电梯相关的配件--电梯门机控制器,也得以迅速发展。目前市场上主流的门机控制器为采用双闭环(速度环和电流环)的控制器驱动同步马达,这对控制器的软硬件设计要求相当高,诸如运算的准确性、响应的快速性、任务的复杂性等。基于上述需求,下面将提出产品的总体设计。
1)运行环境。
硬件环境:基于瑞萨主控制芯片SH2系列单片机硬件开发环境。
软件环境:基于HEW集成开发环境,windows XP操作系统或以上。
2)软件概念设计。
基本框架如图1所示。
①软件功能。以功能单元为基础来划分软件结构。
②软件运行。采用?COS-II实时操作系统,将所有软件功能规划为任务模块,且满足低耦合和高内聚的要求。
③功能划分。按照功能,划分为以下几个部分:上电初始化部分、?COS-II系统移植部分、A/D转换、I2C模块、门机运行命令生成、PWM生成、I/O控制、串口通讯、正余弦函数表、默认参数表和中断矢量表、电流环中断、速度环中断、故障处理。
图1 软件功能框架图
2 软件设计方案
1)任务模块的规划。
基于2.2.3中描述的门机控制器的功能,进行细分,并根据任务执行的实际状况确定其优先级。
2)实时操作系统的规划。
前面已经介绍了?C/OS-II相关特性,结合门机控制器的软件功能模块分析,该操作系统主要实现的相关任务的安排与调度。本文不针对具体任务的处理作介绍,仅对?C/OS-II操作系统如何实现多任务的执行简单阐述。
①创建任务的系统服务:
INT8U OSTaskCreate (
void (*task)(void *pd), //任务代码指针
void *pdata, //任务参数指针
OS_STK *ptos, //任务栈的栈顶指针
INT8U prio //任务的优先级
);
②任务主函数:
一个任务通常是一个无限循环(返回值类型void)
void MyTask(void *pdata)
{
while (1)
{
do something;
waiting;
do something;
}
}
③任务控制块TCB:
任务控制块(OS_TCB)是描述一个任务的核心数据结构,存放了它的各种管理信息,包括任务堆栈指针,任务的状态、优先级,任务链表指针等;一旦任务建立了,任务控制块OS_TCB将被赋值。系统初始化后,指针数组指向响应的TCB,如图2所示。
图2 任务控制模块(OS_TCB)框图
④任务状态的转换:
任务的状态包括休眠、就绪、运行、中断服务状态(ISR)和阻塞,其中各状态间的转换如图3所示。
图3 任务状态转换示意图
⑤任务状态的调度
?COS-II是可抢占实时多任务内核,它总是运行就绪任务中优先级最高的那一个。
?COS-II中不支持时间片轮转法,每个任务的优先级要求不一样且是唯一的,所以任务调度的工作就是:查找准备就绪的最高优先级的任务并进行上下文切换。
?COS-II任务调度所花的时间为常数,与应用程序中建立的任务数无关。
确定哪个任务的优先级最高,应该选择哪个任务去运行,这部分的工作是由调度器(Scheduler)来完成的。
任务级的调度是由函数OSSched()完成的;
断级的调度是由另一个函数OSIntExt()完成的。
上述对?COS-II任务的管理做了基本介绍,当然在具体操作前述软件模块时远非这些,在操作系统移植时,需要作进一步的研究分析。
3 结论
综上所述,介绍了基于实时操作系统的门机控制器的软件实现方式,由于前后台操作系统的门机控制器是成熟的产品,本文提及的门机控制器与其比较仅为操作系统不一样,其它诸如硬件、软件功能等均一致。所以,移植?COS-II成为该门机控制软件设计的关键,当成功移植?COS-II后,门机控制器功能和性能的稳定性必然能够得到保证。
指导教师:蒋乐天。
参考文献
[1]魏洪兴.嵌入式系统设计导论.北京航空航天大学机器人研
究所.
[2]Jean J.Labrosse著.嵌入式实时操作系统μC/OS-II(第2版)[M].邵貝贝,等,译.北京航空航天大学出版社.
[3]曾鸣.uC/OS-II 实时操作系统在嵌入式平台进行移植的一般方法和技巧.清华大学.