您现在的位置:首页 > 科技成果科技成果

μC/OS-II在总线式数据采集系统中的应用

发布时间:2018-05-30 08:25:00  来源:大电流电感厂家   查看:
工字电感因此一定要注意以下几点:

(1)为各个任务分配各自的堆栈区,该堆栈区既作为任务的工作单元,也作为任务控制块的保护单元。

(2)系统的任务控制块只存放各任务的堆栈指针,而任务的状态均存放于任务堆栈中。在一个任务退出运行时,通过中断把它的状态进栈,然后把它的堆栈指针保存于系统的TCB中;再根据优先级取出优先级最高的已就绪任务的堆栈指针SP映象值送入SP中;最后执行中断返回指令转去执行新任务。

(3)各任务的数据和工作单元尽量用堆栈实现,这样可以允许各任务使用差模电感同一个子程序。使用堆栈实现参数传递并作为工作单元,而不使用绝对地址的RAM,可实现可重入子程序。该子程序既可为各个任务所调用,也可以实现递归调用。

2.4 应用μC/OS-II实时内核的主要部分

(1)任务的分配

实时系统中的任务有别于前后台系统中的子程序模块,任务是处理机按程序处理数据的过程,是个动态的概念。一般一个任务对应于一段独立的主程序,它可能调用各种子程序,并使用各种系统资源如中断、外设等,以完成某种选定的功能,且允许多个任务并行。根据该系统的性能指标和技术要求,可对系统进行如下的任务划分:按键中断、LCD显示、串行通信、打印与报警、信道巡检A/D采样与数据处理、系统信息显示、系统工作参数测量、电源切换与充电管理共八个任务。

(2)任务的调度

μC/OS-II的任务调度是按优先级进行的,根据各任务的实时性要求及重要程度,分别置它们的优先级为4、9、8、7、6、11、10、5。其中0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRIO-2、OS_LOWEST_PRIO-1、OS_LOWEST_PRIO这几个优先级保留以被系统使用。优先级号越低,任务的优先级越高。这样程序之间的通信可以通过按键中断置标志来实现,其中按键中断的优先级最高。当其它任务运行时,按键中断将使得系统服务转向运行按键中断处理子程序ISR。当中断处理子程序运行完后,转向判断就绪状态任务的优先级别。如果发现有比中断前任务优先级更高的任务,则转向执行该任务。先判断其运行标志,如果是‘非’,则又等待。再重复上述过程。如果在执行完ISR后发现没有比中断前任务优先级更高的,则转向中断前的子程序继续运行。该系统的软件处理没有采用优先级转换的方法,而是采用状态置位判断的方法,这样可以减少程序的复杂性。

(3)任务间的通信

任务间通信最简便的方法是使用共享数据结构。虽然共享数据区法简化了任务间的信息交换,但是必须保证每个任务在处理共享数据时的排它性,以避免竞争和数据的破坏。通常与共享资源打交道时,使之满足互斥条件最一般的方法有以下几种:

·关中断;

·使用测试并置位;

·禁止任务切换;

·利用信号量。

在本系统中采用了前两种。关中断是一种最简单快捷的方式,也是在中断服务子程序中处理共享数据结构的唯一方法。要注意的是:关中断的时间要尽量短,以免影响操作系统的中断处理。其应用模功率电感器式如下:

void Function(void)

{

共模电感器

OS_ENTER_CRITICAL();

…… /*在此处理共享数据*/

OS_EXIT_CRITICAL();

}

测试并置位方式需要有一个全局变量,约0603电感定好先测试该变量;如果是约定的数值,则执行该任务,否则不执行该任务。这种方法称测试并置位(TEST-AND-SET),或TAS。其应用程序如下:

Disable interrupts /*关中断*/

If ('Access Variable' is 0){ /*若资源不可用,标志为0*/

Set variable to 1; /*置资源不可用,标志为1*/

Reenable interrupts; /*重开中断*/

Access the re电感生产source; /*处理该资源*/

Disable interrupts; /*关中断*/

Set the 'Access Variable' back to 0;/*清资源不可使用,标志为0*/

Reenable interrupts; /*重新开中断*/

}else { /*否则*/

Reenable interrupts; /*开中断*/

/*资源不可使用,以后再试*/

}

(4)时钟节拍

时钟节拍是特定的周期性中断,根据本系统的性能指标,取1毫秒。时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。另外,系统信息的定时显示需要系统每隔一定的时钟节拍显示一次。

(5)存储空间的分配

为了减少操作系统的体积,只应用操作系统的任务调度、任务切换、信号量处理、延时及超时服务几部分。这样可使该操作系统的大小减小到3~5KB,再加上应用程序最大可达50KB左右。 平面变压器厂家 | 平面电感厂家

输入AC线缆用多大方数?突然发现对于国标中AC输入线缆没有这个2方很是反感,举一个例子,不知道是否妥当:一个AC-DC电源,输出50V/30A,假设转换效率分别为0.9以及0.92(对应不带PFC以及带PFC),那么折算到AC输入

智能高频开关电源系统中整流模块的功能设计摘要:以智能高频开关电源系统中的整流模块为研究对象,采用无源PFC和DC/DC变换器的原理,对模块的整流原理进行设计和改善,经过对整流模块的硬件、电路的设计与调试表明:该整流模块可以有效地解决智能高频

三轴惯性传感器ADISl6355在姿态检测中的应用摘要:介绍了ADI公司的三轴惯性测量传感器ADISl6355的功能、结构和特点。基于STM32F103VB单片机设计了硬件电路,对该传感器数据进行采集,并利用无线数据传输模块把数据发送回计算机。使用该

CopyRight2014
大电流电感 | 大功率电感 | 扁平线圈电感 注塑加工厂