关闭
关闭
首页 > 嵌入式软件 > Uc/os II

 

本文引用地址: http://embed.21ic.com/software/ucos/201806/52836.html

本文介绍了抽油电机变频器变结构控制系统功能原理,如何利用uC/OS-II的多任务功能实现控制系统的算法结构变换,操作系统的移植、多任务的建立和SDK下的软件设计,最后总结了在应用中需注意的问题。

在油田生产中为了节省电能并减小故障率,变频器得到越来越多的应用。但由于油井负载的非周期大脉动性质,从能量的流向来看,变频器有两种运行状态—电动运行和回馈制动。不同运行状态的控制变量和控制方法是不同的,这就要采用所谓的变结构控制。本应用是实现抽油电机变频驱动中的变结构控制,不同的控制结构通过任务间的切换实现。

系统控制核心采用DSP56F803,它是Motorola公司推出的16位DSP型微控制器,运算速度可达40MIPS,片内资源丰富,有强大的软件支持,是嵌入式应用的理想选择。本系统应用了其SPI、SCI、PWM、键盘中断及通用I/O口等功能模块。

1 系统设计

1.1 uC/OS-II的移植与配置

Motorola公司提供的软件开发工具包SDK为使用uCC/OS-II做好了铺垫工作,与硬件相关的文件OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C已经给出,只需购得系统源代码,然后将其考入指定的文件目录,系统的移植就完成了。本文采用最新版本uCC/OS-II V2.51。

系统移植成功后,需要对操作系统进行配置(裁剪),把用不到的功能去掉,以最大限度地节省存储空间。这项工作是通过os_cfg.h中的宏定义进行的,本文只用到了多任务管理、信号量、互斥量等功能。在本应用中,uCC/OS-II内核经过剪裁后只有3KB左右,相对DSP56F803的32KB内部程序Flash只用了不到十分之一。需注意的另一个关键设置是时钟节拍中断频率OS_TICKS_PER_SEC,它是系统多任务运行所依赖的时间基准,也决定了任务重复调用的最快频率。这里缺省设为1000,要比文献[3]中的推荐值高出一个数量级。但实际应用表明,DSP56F803以其高运算速度在这个设置下是完全胜任的。

1.2 系统功能

根据油田生产的要求,系统要实现以下功能:键盘输入、参数显示、三相电流采集、直流侧电压采集、温度采集、变频指令输出以及保护等。系统对电流、电压、温度进行周期性采样,采样值经过数字信号处理,作为控制器的参数,最后由控制算法得出控制量,经PWM和D/A转换器发送给变频器,形成反馈闭环控制。系统运行过程中实时显示电流、温度等参数,并可以通过键盘对控制器进行参数在线设定。另外,高温、过流等保护功能必不可少。系统原理如图1.控制器根据直流侧电容C上电压的大小来确定以哪一种控制结构运行。当直流侧电压不超过设定值时,系统以电动状态运行。超过设定值时要以回馈制动方式运行,要求两种工作状态要互锁,切换要准确、及时。

1.3 任务的创建及变结构控制的实现

根据功能要求,本着尽量减少任务数以减轻CPU运行负担的原则,本文设计了AD采集、电动运行、回馈制动和显示四个任务。另外还设计了两个中断服务子程序:用PortA口的中断功能实现8个键盘输入,用外部中断IrqA实现短路、过流、缺相保护功能。

每个任务都有自己的名称、内存空间和优先级。不同的任务必须有不同的优先级,它们可以是0~62之间的任意值,数值越小优先级越高。优先级的设置有不同的依据,以本文为例,回馈运行任务对时间要求最苛刻,如果不能及时启动或过早结束都会对变频器造成危害,所以其优先级设为最高;AD采集任务运行最频繁,必须为其它任务提供可靠的参数,优先级设为次高;电动运行任务是常规运行状态,优先级低于AD采集任务;显示任务只实现人机交互,显示状态和参数对控制器性能没有直接影响,优先级设为最低。uCC/OS-II要求为每个任务分配OS_STK类型的堆栈空间,并且它们占用的RAM存储空间必须是连续的。

任务延时是指任务执行完毕处于挂起等待状态到下一次重新运行之间的时间间隔,它的单位是时钟中断节拍。由于OS_TICKS_PER_SEC为1000,每一拍为1ms。每个任务的调用间隔不能小于一个节拍,它将影响模拟量的采样频率。各个任务的属性定义如表1所示。

1.4 任务间的通信

各个任务是通过抢占CPU的使用权来运行的,它们之间存在一定的逻辑关系,彼此互相联系又互相制约。信号量、邮箱、消息队列等功能为实现任务间通信提供了有力工具,它们的使用方法灵活多变,如用信号量设置事件标志,唤醒任务、用邮箱在任务间传递参数、用消息队列的循环寻址功能进行模拟通道的数据采集等。本文设计了两个信号量,在系统运行开始后,任务TASK_AD检测直流侧电压的大小。当电压未超过设定值时,发出信号DC_NORM唤醒任务 Task_NORMAL;当电压高出设定值时,发出信号DC_OVER唤醒任务Task_FEBACK。虽然这两个任务基于不同的控制结构,采用不同的算法,但都要使用PWM输出和SPI通信口,所以在唤醒一个任务的同时必须让另外一个任务挂起。这里引入了互斥型信号量T_MUTEX实现这个功能。得到 T_MUTEX信号的任务将独自占有共享资源的使用权,两个任务不会因资源冲突而同时挂起,解决了任务间优先级反转问题,避免了系统功能失效。任务间逻辑关系如图2所示。

操作系统为任务间通信提供了多种途径,但最简单有效的方法是共享全局变量。本文使用共享全局变量的方法实现了显示任务与键盘中断服务之间的通信,代码如下:

键盘中断:

static void KeyboardISR(void)

{

UWord16 cpu_sr;

OS_ENTER_CRITICAL(); //临界区代码保护

asm{

move X:$0FB7,A1//读键盘中断状态表

move A1,state1 //将中断状态放入全局变量

};

OS_EXIT_CRITICAL(); //临界区代码保护结束

}

这里state1是全局变量,键盘中断的工作仅仅是将PORTA口中断状态寄存器(IESR,地址$0FB8)读入state1中。为防止其他任务在此期间对state1的修改,使用了临界区代码保护。

显示任务的部分代码:

switch(state1)

{case 1: //PTA_0对应的键被按下

…… //相应的服务程序,略

case 128: //PTA_7对应的键被按下

break; }

asm{move $00,X:$0FB8}; //清键盘中断状态, 以备下次中断

显示任务中采用多分支结构,根据statel=2n,(n=0,1,2,3,,4,5,6,7),不同的值代表不同的键被按下,程序进行相应的处理;最后将IESR寄存器清零。用同样的方法,两位之间互相组合可扩展形成16个按键。这样只用一个全局变量就完成了中断与任务间的通信,程序用内嵌汇编的C来写,简捷高效。

2 系统设计中需注意的问题

首先是存储器分配问题。多任务、邮箱等功能的使用会增加RAM的额外开销,在不扩展外部RAM的情况下,可用的只有片内2KB数据RAM和512字的程序RAM,资源相对有限,存储空间的合理分配就显得很重要。任务堆栈所占用的RAM空间要根据实际应用来确定,必须考虑任务调用的嵌套情况、任务中函数为局部变量所分配的内存数目。另外,它必须能保存DSP的所有22个寄存器和16个存储器字。如果为任务分配的存储空间富余过多则造成资源紧张,甚至会因内存溢出导致系统崩溃。解决方法是调用系统函数OSTaskStkChk(),它可以检测每个任务运行时使用的内存大小,为合理分配内存空间提供了依据。另外,可采用一些简化方法节省RAM空间。例如SDK为AD采集的每个通道都定义一个结构体,它包括三个元素:句柄、数值长度和采样值;如果使用五路AD采集,就得定义五个结构体。通常不进行初始化,DSP内核在运行时将它们放入RAM空间,占用RAM较多。通常关心的只是采样值一个元素,其他两个只完成辅助功能。如果使用一个存放采样值的变量代替这个结构体,或直接采用汇编语言写这段代码,就可大幅度地节省RAM空间。本文的AD采集程序就是用汇编完成。

SDK没有提供在DSP56F803下使用SPI函数的例程。

仿照在807中的成功应用,笔者调用spiWrite()函数,通过SPI驱动D/A转换芯片。但在编译连接时出现系统错误,数据类型unsigned short与const void不匹配,在const.c中将spiWrite做强制类型转换(void*)(&spiWrite),解决了这一问题。

利用SDK与uC/OS-II相配合,充分发挥了DSP型控制器DSP56F803的功能,采用内嵌汇编的C语言编程,大大提高了代码的可读性和可移植性,缩短了系统开发周期,成功实现了系统的变结构控制功能,也体现了操作系统的多任务功能在实现多算法结构上的优越性。

0次

 

换一批

延伸阅读

[新鲜事] 日本程序员为上班偷懒:开发AI程序“监视”老板

日本程序员为上班偷懒:开发AI程序“监视”老板

人工智能已被应用于经济、医学及交通等多种领域。但看上去“高大上”的人工智能有时候的用途也未必都是那么高大上。布朗大学的学生就曾利用AI打造了一个专为新生儿取名的系统,而去年也首次出现了以AI作为评委的选美比赛。......

关键字:AI 人工智能 Boss Sensor

[新鲜事] 苹果成功申请新专利:声波成像取代指纹识别

苹果成功申请新专利:声波成像取代指纹识别

美国专利和商标局(USPTO)本周四通过了一项苹果在2016年8月申请的“声波成像系统架构”专利,这份专利描述了一种使用屏幕下声波换能器矩阵替代 Touch ID 指纹识别传感器的技术。有传言称苹果今年发布的 OLED iPhone 8 将......

关键字:苹果 声波 指纹 Touch ID

[新鲜事] 传OLED版iPhone使用新3D Touch 可价格又要高20%

传OLED版iPhone使用新3D Touch 可价格又要高20%

还在抱怨iPhone的3D Touch技术不好吗?近日,凯基证券分析师郭明池称,苹果或将在下一代OLED版本的iPhone中使用全新的3D Touch模块技术。......

关键字:OLED 3D Touch iPhone

[新鲜事] 跟NVIDIA Tegra抢饭碗,三星Exynos处理器打入奥迪汽车

跟NVIDIA Tegra抢饭碗,三星Exynos处理器打入奥迪汽车

昨天三星与奥迪又宣布新的合作计划,三星旗下的Exynos SoC处理器将打入奥迪供应链,主要用于IVI车载信息系统。......

关键字:NVIDIA Tegra 三星 Exynos处理器 奥迪汽车

[真心话] 一个实例简单明了告诉你为什么要用RTOS

一个实例简单明了告诉你为什么要用RTOS

对于搞单片机的特别用8051系列工程师来说,谈到单片机的RTOS,很多时候会问一句:“为什么要用RTOS?单片机就这一点资源,使用RTOS能保证效率吗?”......

关键字:单片机 RTOS

[新鲜事] 高通颤抖!三星Exynos 9810更多内幕:干翻骁龙835

高通颤抖!三星Exynos 9810更多内幕:干翻骁龙835

按照三星新旗舰以往的发布惯例,手机会有两个处理器版本,其中一个是骁龙835,而另外一个是自家的Exynos。......

关键字:三星 Exynos 9810 处理器

[新鲜事] 售价6900元起!iPhone 8全新设计:引入Touch Bar

售价6900元起!iPhone 8全新设计:引入Touch Bar

如果你等待新iPhone,那么iPhone 8无疑是最值得入手的,全新的外形设计,会让它带来更惊艳的效果。......

关键字:iPhone 8 Touch Bar

[新鲜事] CentOS系统宣布为ARM(armhfp)硬件架构发布CentOS Linux 7(1611)镜像

CentOS系统宣布为ARM(armhfp)硬件架构发布CentOS Linux 7(1611)镜像

今天,CentOS系统开发人员Fabian Arrotin非常高兴的宣布为ARM(armhfp)硬件架构发布CentOS Linux 7(1611)镜像。该GNU/Linux发行版本深受单板计算机和嵌入式设备的喜爱,支持树莓派3、树莓派2、......

关键字:ARM CentOS Linux

[新鲜事] iOS10.2新Bug曝光 苹果故意的?

iOS10.2新Bug曝光 苹果故意的?

根据外媒报道,iOS 10.2系统不允许用户播放一些从DVD或者其他来源中获取,然后加载到iTunes中的视频。目前,我们还不清楚这是iOS 10.2系统的一个bug或者是苹果有意识的举动。......

关键字:苹果 ios10.2 bug

[新鲜事] 想要开发支持Touch Bar的软件,你可以试试Electron

想要开发支持Touch Bar的软件,你可以试试Electron

距离苹果推出带有Touch Bar的MacBook Pro已经有一段时间了,除了那些像 Adobe、Google和Microsoft大公司在开发适用于Touch Bar的应用之外,其实还有很多独立的开发商也在做同样的事情。......

关键字:Touch Bar Electron Github

[新鲜事] Sonos音箱将在本月底提升价格 因为英国脱欧

Sonos音箱将在本月底提升价格 因为英国脱欧

如果你曾对购买Sonos音箱犹豫不决,那么你最好赶紧下手,因为月末将会涨价。......

关键字:Sonos 音箱

[新鲜事] 满足中国手机厂商需求,索尼CMOS传感器增产10%

满足中国手机厂商需求,索尼CMOS传感器增产10%

继华为之后,索尼也给OPPO公司联合研发、定制手机拍照传感器了。......

关键字:索尼 CMOS传感器 手机厂商
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14