第5章汽车嵌入式系统的软件基础

上传人:无*** 文档编号:119358683 上传时间:2022-07-14 格式:PPTX 页数:81 大小:5.71MB
收藏 版权申诉 举报 下载
第5章汽车嵌入式系统的软件基础_第1页
第1页 / 共81页
第5章汽车嵌入式系统的软件基础_第2页
第2页 / 共81页
第5章汽车嵌入式系统的软件基础_第3页
第3页 / 共81页
资源描述:

《第5章汽车嵌入式系统的软件基础》由会员分享,可在线阅读,更多相关《第5章汽车嵌入式系统的软件基础(81页珍藏版)》请在装配图网上搜索。

1、2022-7-141现代汽车电子技术现代汽车电子技术信号与信息处理研究所 丁 山第第5章章 汽车嵌入式系统软件的基础汽车嵌入式系统软件的基础5.1 基本概念基本概念5.1.1 嵌入式系统的软件嵌入式系统的软件 软件系统通常包括两部分,其一是系统软件,包软件系统通常包括两部分,其一是系统软件,包括嵌入式操作系统及在它之下的各种应用软件;其二括嵌入式操作系统及在它之下的各种应用软件;其二是用户的应用程序。是用户的应用程序。嵌入式系统应具有很高的可靠性,在恶劣的环境嵌入式系统应具有很高的可靠性,在恶劣的环境中依然正常工作,具有很高的实时性要求质量和可靠中依然正常工作,具有很高的实时性要求质量和可靠性

2、更高。性更高。面向嵌入式系统的操作系统有以下特点:要求代码面向嵌入式系统的操作系统有以下特点:要求代码量少,可进行裁剪和移植;实时性强;可靠性高。量少,可进行裁剪和移植;实时性强;可靠性高。嵌入式系统的存储器一般包括程序空间(嵌入式系统的存储器一般包括程序空间(Rom或或Flash)、数据空间()、数据空间(Ram)和)和I/O空间。空间。在嵌入式系统中,程序空间一般采用的是非易失在嵌入式系统中,程序空间一般采用的是非易失性存储器。目前大多数嵌入式系统采用性存储器。目前大多数嵌入式系统采用Flash来存放来存放代码和一些常数。代码和一些常数。数据空间用于存放所有数据,系统堆栈也处于此数据空间用

3、于存放所有数据,系统堆栈也处于此空间,一般采用易失性存储器。有片内数据空间与片空间,一般采用易失性存储器。有片内数据空间与片外数据空间。外数据空间。I/O空间;采用统一编址的处理器。空间;采用统一编址的处理器。I/O空间与内空间与内存空间无关。存空间无关。5.1.2 嵌入式系统的存储器结构嵌入式系统的存储器结构4.1.3 嵌入式系统软件的功能及其特点嵌入式系统软件的功能及其特点 (1)系统启动:一旦复位信号有效,处理器先)系统启动:一旦复位信号有效,处理器先需运行初始化程序。需运行初始化程序。(2)控制硬件:设备可能是端口映射的()控制硬件:设备可能是端口映射的(I/O与与存储器独立编址),也

4、有可能是内存映射的(存储器独立编址),也有可能是内存映射的(I/O与存与存储器统一编址)。储器统一编址)。(3)按位操作:需要操作硬件寄存器内某个二进)按位操作:需要操作硬件寄存器内某个二进制位。制位。(4)软件要求固态化存储:嵌入式软件一般都)软件要求固态化存储:嵌入式软件一般都固化在存储器芯片或处理器中,而不是在磁盘中。固化在存储器芯片或处理器中,而不是在磁盘中。(5)软件的高实时性)软件的高实时性 (6)代码执行速度和代码效率:)代码执行速度和代码效率:如果如果ISR或其他例程有严格的时序要求,或其他例程有严格的时序要求,应考虑使用汇编编写;应考虑使用汇编编写;通过指针而不是变量的引用执

5、行操作,编通过指针而不是变量的引用执行操作,编译器就能产生占用空间更少并且运行速度更译器就能产生占用空间更少并且运行速度更快的代码。快的代码。如果某个函数操作同样的变量好几次,通如果某个函数操作同样的变量好几次,通过指针来进行访问通常会产生更有效率的代过指针来进行访问通常会产生更有效率的代码。码。(7)中断与中断服务程序:中断切换机制是相)中断与中断服务程序:中断切换机制是相同的,但不同的处理器在实现细节上还有不同。同的,但不同的处理器在实现细节上还有不同。(8)可嵌套的中断与可重入性:如果允许中断嵌)可嵌套的中断与可重入性:如果允许中断嵌套,要确认所有在中断服务例程运行期间被调用的函套,要确

6、认所有在中断服务例程运行期间被调用的函数不是可重入的。数不是可重入的。可重入是指函数在不必关心同步或相互访问的情况可重入是指函数在不必关心同步或相互访问的情况下能被来自不同任务的程序异步调用。下能被来自不同任务的程序异步调用。(9)需要了解程序执行时间)需要了解程序执行时间 80和和20原则,原则,80%的速度问题存在于的速度问题存在于20%的代码中。的代码中。(10)发布嵌入式系统程序的方法)发布嵌入式系统程序的方法a.编写的代码作为硬件的一部分编写的代码作为硬件的一部分b.运行加载运行加载c.IP OEM(Original Equipment Manufacture)方式)方式 (11)应

7、用中可编程()应用中可编程(In Application Program,IAP)功能)功能 a.引导装载程序引导装载程序 b.Flash编程算法编程算法 c.最新软件映像的下载程序最新软件映像的下载程序5.2 传统嵌入式系统软件的开发方法及其特点传统嵌入式系统软件的开发方法及其特点 操作系统及嵌入式操作系统的选择操作系统及嵌入式操作系统的选择 如果系统复杂,需要选用操作系统。如果系统复杂,需要选用操作系统。1.前后台系统。能够处理关键实时事件及中断服务前后台系统。能够处理关键实时事件及中断服务程序(程序(ISR)的简单循环代码,该过程简单,但相)的简单循环代码,该过程简单,但相当实用。当实用

8、。2.无优先级别的操作系统:可以将后台工作转化为无优先级别的操作系统:可以将后台工作转化为可预先处理的工作。可预先处理的工作。3.有优先级别的操作系统:在外部事件(比如中断有优先级别的操作系统:在外部事件(比如中断等)发生时和操作系统内部调用时切换任务。等)发生时和操作系统内部调用时切换任务。MISRA C:1994年英国成立了一个汽车工业软件可年英国成立了一个汽车工业软件可靠性联合会(靠性联合会(the Motor Industry Software Reliability Association,MISRA),该组织于该组织于1998年年发布了针对汽车软件安全性的发布了针对汽车软件安全性的

9、C语言编程规范。语言编程规范。基于任务的设计方法基于任务的设计方法 在系统设计阶段,嵌入式系统的设计通常采用在系统设计阶段,嵌入式系统的设计通常采用DARTS(Design Approach for Real time system)设计方法进行任务设计。设计方法进行任务设计。DARTS给出系统任务划分的方法和定义任务间给出系统任务划分的方法和定义任务间接口的机制。对传统的软件结构化设计方法的扩展。接口的机制。对传统的软件结构化设计方法的扩展。除使用程序结构图与程序流程图外,采用并发图与信除使用程序结构图与程序流程图外,采用并发图与信息隐藏模块,其主要功能是将实时系统分解为并发任息隐藏模块,其

10、主要功能是将实时系统分解为并发任务并定义并发接口。务并定义并发接口。5.3 嵌入式操作系统嵌入式操作系统 5.3.1 嵌入式操作系统的基本概念嵌入式操作系统的基本概念 嵌入式操作系统的特点嵌入式操作系统的特点 嵌入式系统引入操作系统的原因嵌入式系统引入操作系统的原因 5.3.2 嵌入式操作系统的内核分类及基本结构嵌入式操作系统的内核分类及基本结构 单一内核;单一内核;微内核微内核 层次划分:硬件接口层,核心层,系统层和应用服层次划分:硬件接口层,核心层,系统层和应用服务接口层。务接口层。应用服务接口层:提供基于系统功能的、面向应应用服务接口层:提供基于系统功能的、面向应用的系统功能调用服务接口

11、。用的系统功能调用服务接口。系统层:提供面向对象的系统资源管理功能,如系统层:提供面向对象的系统资源管理功能,如内存管理、文件管理、设备管理、网络协议管理等。内存管理、文件管理、设备管理、网络协议管理等。核心层:包括运行系统所需要的最基本的功能模核心层:包括运行系统所需要的最基本的功能模块,核心层针对应用提供几种最基本的服务,如系统块,核心层针对应用提供几种最基本的服务,如系统时钟、电源管理、程序装载于运行、进程调度、内存时钟、电源管理、程序装载于运行、进程调度、内存管理等。管理等。硬件接口层:提供与嵌入式硬件系统交互的接口。硬件接口层:提供与嵌入式硬件系统交互的接口。5.3.3 嵌入式操作系

12、统内核的基本功能模块嵌入式操作系统内核的基本功能模块 进程管理:操作系统需要为进程分配资源,实进程管理:操作系统需要为进程分配资源,实现进程间共享和交换信息,保护进程资源,以及现进程间共享和交换信息,保护进程资源,以及实现进程间同步。实现进程间同步。在嵌入式开发中,往往用任务的概念表述内核可在嵌入式开发中,往往用任务的概念表述内核可以独立调度的单元。任务状态一般分为:运行状态、以独立调度的单元。任务状态一般分为:运行状态、就绪状态、等待状态等。三种状态通过操作系统进程就绪状态、等待状态等。三种状态通过操作系统进程调度程序来调度。调度程序来调度。任务调度方法大致分为三种:优先级调度、轮转任务调度

13、方法大致分为三种:优先级调度、轮转调度和时间片调度;调度和时间片调度;内存管理:一般通用操作系统的存储管理非常复内存管理:一般通用操作系统的存储管理非常复杂,虚拟管理技术被广泛地使用。杂,虚拟管理技术被广泛地使用。嵌入式操作系统的存储管理通常比较简单,在具嵌入式操作系统的存储管理通常比较简单,在具体的嵌入式应用中,进程的数量和可能用到的内存容体的嵌入式应用中,进程的数量和可能用到的内存容量是可预测的,因此,多采用静态内存管理。量是可预测的,因此,多采用静态内存管理。在内存分配策略上往往提供几种分配策略。在内存分配策略上往往提供几种分配策略。存储管理的内存保护,在一般的操作系统中,每存储管理的内

14、存保护,在一般的操作系统中,每个应用程序都有自己的地址空间,不能任意访问其他个应用程序都有自己的地址空间,不能任意访问其他应用程序的地址空间。某些嵌入式系统应用对内存保应用程序的地址空间。某些嵌入式系统应用对内存保护有非常严格的要求。护有非常严格的要求。内存被分成操作系统的驻留程序,另外给用户进内存被分成操作系统的驻留程序,另外给用户进程。程。中断管理:计算机系统处理外部事件有两种方中断管理:计算机系统处理外部事件有两种方式:中断和查询。在操作系统中,中断与中断处理程式:中断和查询。在操作系统中,中断与中断处理程序联系在一起的。序联系在一起的。多数嵌入式操作系统都是事件驱动的。中断处理多数嵌入

15、式操作系统都是事件驱动的。中断处理函数引起任务切换如下:执行到任务函数引起任务切换如下:执行到任务A-响应中断执响应中断执行并执行中断处理程序,切换到任务行并执行中断处理程序,切换到任务B-任务任务B运行运行退出后,切换到任务退出后,切换到任务A-任务任务A继续运行。继续运行。在中断处理上,一般操作系统与嵌入式操作系统在中断处理上,一般操作系统与嵌入式操作系统的不同之处在于现场保护。一般操作系统的现场保护的不同之处在于现场保护。一般操作系统的现场保护由操作系统来完成,在嵌入式操作系统中,由中断处由操作系统来完成,在嵌入式操作系统中,由中断处理器程序来完成。理器程序来完成。在中断处理程序的入口要

16、保护中断处理程序中要在中断处理程序的入口要保护中断处理程序中要用到的寄存器,在中断处理完成后恢复。这样,以损用到的寄存器,在中断处理完成后恢复。这样,以损失系统安全性为代价,同时增加了调试难度。失系统安全性为代价,同时增加了调试难度。如果系统面临多个中断信号同时发生的情况。则如果系统面临多个中断信号同时发生的情况。则存在存在ISR响应先后的问题。响应先后的问题。操作系统与应用程序的接口操作系统与应用程序的接口-API 从操作系统的角度来看,提供用户有两类接口:一是从操作系统的角度来看,提供用户有两类接口:一是人机界面。人机界面。另一类接口是操作系统提供给用户的应用程序的另一类接口是操作系统提供

17、给用户的应用程序的API函数,也就是系统调用。函数,也就是系统调用。5.3.5 嵌入式操作系统环境下的任务嵌入式操作系统环境下的任务 前前/后台系统中,任务间的切换很简单,不必为每个后台系统中,任务间的切换很简单,不必为每个任务安排堆栈,也不必保存每个任务所使用的任务安排堆栈,也不必保存每个任务所使用的cpu寄寄存器。存器。5.3.6 嵌入式操作系统的任务调度方式嵌入式操作系统的任务调度方式不可抢占式调度(如不可抢占式调度(如图图5-6所示)所示)可抢占式调度(如可抢占式调度(如图图5-7所示)所示)时间片轮转调度时间片轮转调度 5.3.7 嵌入式操作系统下任务间通信嵌入式操作系统下任务间通信

18、 中断与任务间的通信即消息传递,是由嵌入式操中断与任务间的通信即消息传递,是由嵌入式操作系统的内核完成的,通信方式有两个途径即全局变作系统的内核完成的,通信方式有两个途径即全局变量或消息。量或消息。通过全局消息进行通信通过全局消息进行通信控制中断控制中断控制任务切换控制任务切换采用采用TAS操作,即处理允许标志控制法操作,即处理允许标志控制法利用信号量利用信号量 通过消息邮箱或消息队列,消息邮箱的示意图如通过消息邮箱或消息队列,消息邮箱的示意图如图图5-8所示,消息队列的示意图如所示,消息队列的示意图如图图5-9所示。所示。嵌入式操作系统实时性要求嵌入式操作系统实时性要求 利用操作系统不仅可以

19、极大地减少系统开发的工利用操作系统不仅可以极大地减少系统开发的工作总量,而且可以提高嵌入式系统软件的可移植性。作总量,而且可以提高嵌入式系统软件的可移植性。系统的响应时间与信号的动态特性有关。这些不系统的响应时间与信号的动态特性有关。这些不同的嵌入式应用系统的不同响应要求,体现了嵌入式同的嵌入式应用系统的不同响应要求,体现了嵌入式对象对时间响应要求的多样性。对象对时间响应要求的多样性。根据嵌入式应用系统的激励根据嵌入式应用系统的激励-运行运行-响应特性,表现响应特性,表现了嵌入式实时能力的可变更性。了嵌入式实时能力的可变更性。响应时间的多样性要求与响应时间可调整性,是响应时间的多样性要求与响应

20、时间可调整性,是嵌入式实时性分析的基本出发点。嵌入式实时性分析的基本出发点。5.4 嵌入式实时操作系统嵌入式实时操作系统5.4.1 实时系统实时系统在控制系统中,为控制器控制功能的执行满足和被控在控制系统中,为控制器控制功能的执行满足和被控对象基于时间交互的要求,所以称为实时系统。对象基于时间交互的要求,所以称为实时系统。实时性需求实时性需求首先,准确合理地描述任务的时间要求,必须给出以首先,准确合理地描述任务的时间要求,必须给出以下定义:下定义:任务激活点或使能瞬间点任务激活点或使能瞬间点任务截止期任务截止期响应时间是激活点和任务执行结束这一段时间响应时间是激活点和任务执行结束这一段时间最大

21、允许响应时间也称为相对期限,任务期限也称最大允许响应时间也称为相对期限,任务期限也称为绝对期限,在时间线上可以通过激活点和相对期限为绝对期限,在时间线上可以通过激活点和相对期限来计算绝对期限;来计算绝对期限;任务周期:相连两个激活点的时间间隔称为激活周任务周期:相连两个激活点的时间间隔称为激活周期,两任务执行时间间隔称为执行周期;期,两任务执行时间间隔称为执行周期;硬实时需求和软实时需求硬实时需求和软实时需求如果要求任务必须在指定的时间间隔内完成,该任务如果要求任务必须在指定的时间间隔内完成,该任务就称为硬实时需求,这种情况下获得的确认信息既要就称为硬实时需求,这种情况下获得的确认信息既要准确

22、又要可靠。准确又要可靠。如果没有在指定的时间间隔内必须要完成的要求,如果没有在指定的时间间隔内必须要完成的要求,而仅仅是希望任务尽快完成,将被认为软的实时要求。而仅仅是希望任务尽快完成,将被认为软的实时要求。嵌入式实时操作系统嵌入式实时操作系统 实时多任务操作系统(实时多任务操作系统(Real-time multi-task operating system)是嵌入式应用软件的基础和开发)是嵌入式应用软件的基础和开发平台。平台。RTOS是针对不同的处理器优化设计的高效率实是针对不同的处理器优化设计的高效率实时多任务内核。时多任务内核。RTOS最关键的部分是实时多任务内核,它的基最关键的部分是实

23、时多任务内核,它的基本功能包括任务管理、定时器管理、存储器管理、资本功能包括任务管理、定时器管理、存储器管理、资源管理、事件管理、消息管理、队列管理等等。源管理、事件管理、消息管理、队列管理等等。嵌入式实时系统的特点:嵌入式实时系统的特点:实时操作系统一般具有以下特点:实时操作系统一般具有以下特点:实时操作系统的内核必须非常小,即微内核设实时操作系统的内核必须非常小,即微内核设计计可重入,因为不可重入的内核比然带来慢速的可重入,因为不可重入的内核比然带来慢速的中断响应和不可预测的操作时间中断响应和不可预测的操作时间系统能够快速进行任务切换,保证任务抢先和系统能够快速进行任务切换,保证任务抢先和

24、deadline的完成的完成尽量减少中断的时间尽量减少中断的时间提供固定或者可变的内存管理机制提供固定或者可变的内存管理机制提供一个能够满足应用要求的实时时钟提供一个能够满足应用要求的实时时钟必须提供合适的进程任务调度的方法必须提供合适的进程任务调度的方法 5.4.2 嵌入式实时操作系统的内核嵌入式实时操作系统的内核 (1)任务优先级)任务优先级 如果应用程序在执行过程中各如果应用程序在执行过程中各个任务的优先级是不变的,称为静态优先级;如果在个任务的优先级是不变的,称为静态优先级;如果在执行过程中优先级是可以改变的,称为动态优先级。执行过程中优先级是可以改变的,称为动态优先级。在嵌入式开发中

25、存在一个流行的任务优先级分配在嵌入式开发中存在一个流行的任务优先级分配算法算法-单调执行频率调度法(单调执行频率调度法(Rate Monotonic Scheduling,RMS)-基于任务执行的次数(执行频基于任务执行的次数(执行频率)来分配的,执行频率越高,任务的优先级越高。率)来分配的,执行频率越高,任务的优先级越高。CPU利用率:利用率:CPU利用率达到利用率达到100%并不好,作并不好,作为系统设计的一条原则:为系统设计的一条原则:CPU利用率应小于利用率应小于60%-70%。(2)死锁)死锁 是指两个任务无限期地相互等待对方是指两个任务无限期地相互等待对方控制着的资源。所以系统中应

26、尽量避免发生死锁现象。控制着的资源。所以系统中应尽量避免发生死锁现象。如如图图5-11所示。所示。一般而言,可以先让所有的任务得到全部所需要一般而言,可以先让所有的任务得到全部所需要的资源再做下一步工作以避免死锁:的资源再做下一步工作以避免死锁:各任务用同样的顺序申请多个资源;各任务用同样的顺序申请多个资源;释放资源时使用相反的顺序。释放资源时使用相反的顺序。死锁一般发生在大型多任务系统中,在小型的嵌死锁一般发生在大型多任务系统中,在小型的嵌入式系统中不易出现。入式系统中不易出现。(3)时钟节拍)时钟节拍 操作系统跳动的心脏,当任务等操作系统跳动的心脏,当任务等待事件发生时,它可以提供系统等待

27、超时的依据。时待事件发生时,它可以提供系统等待超时的依据。时钟节拍越快,系统的额外开销越大。钟节拍越快,系统的额外开销越大。(4)中断)中断 是一种运行机制是一种运行机制 可分为硬件中断和软件中断。可分为硬件中断和软件中断。大多数微处理器都提供关中断和开中断的方法,大多数微处理器都提供关中断和开中断的方法,在实时内核中对中断处理用以下三个时间指标来评价:在实时内核中对中断处理用以下三个时间指标来评价:中断延迟时间、中断响应时间、中断恢复时间中断延迟时间、中断响应时间、中断恢复时间 中断延迟时间:在实时内核中,经常要遇到关中中断延迟时间:在实时内核中,经常要遇到关中断和开中断的情况,关中断时间越

28、长,中断延迟就越断和开中断的情况,关中断时间越长,中断延迟就越长。长。中断延迟时间中断延迟时间=关中断的最长时间关中断的最长时间+中断服务例程开始中断服务例程开始执行时间执行时间中断响应时间中断响应时间 从中断发生到开始执行用户的中断服务程序的时从中断发生到开始执行用户的中断服务程序的时间。中断响应时间包括开始处理这个中断前的全部开间。中断响应时间包括开始处理这个中断前的全部开销。销。对于可剥夺型内核,则可剥夺型内核由下面的表对于可剥夺型内核,则可剥夺型内核由下面的表达式给出:达式给出:中断响应时间中断响应时间=中断延迟时间中断延迟时间+保存保存CPU内部寄存器的内部寄存器的时间时间+内核的进

29、入中断服务函数的执行时间内核的进入中断服务函数的执行时间 中断响应时间是系统在最坏情况下的响应中断的时间。中断响应时间是系统在最坏情况下的响应中断的时间。中断恢复时间中断恢复时间 对于可剥夺型内核,中断恢复时间(对于可剥夺型内核,中断恢复时间(Interrupt Recovery Time)定义为:微处理器返回到被中断了)定义为:微处理器返回到被中断了的程序代码或更高优先级任务代码所需要的时间。的程序代码或更高优先级任务代码所需要的时间。下面是可剥夺型内核的中断恢复时间公式:下面是可剥夺型内核的中断恢复时间公式:中断恢复时间中断恢复时间=判定是否有优先级更高的任务进入就判定是否有优先级更高的任

30、务进入就绪态的时间绪态的时间+恢复此优先级更高的恢复此优先级更高的CPU内部寄存器的内部寄存器的时间时间+执行中断返回指令的时间执行中断返回指令的时间 虽然中断服务的处理时间应该尽量短,但是对处虽然中断服务的处理时间应该尽量短,但是对处理时间并没有绝对的限制。理时间并没有绝对的限制。另外,要考虑是否中断服务子程序中开中断,以另外,要考虑是否中断服务子程序中开中断,以允许优先级更高的中断进入并优先得到服务。允许优先级更高的中断进入并优先得到服务。动态实时调度算法动态实时调度算法实时系统的任务调度算法主要有以下三种实时系统的任务调度算法主要有以下三种 速率单调算法(速率单调算法(Rate Mono

31、tonic Algorithm)该)该算法事先为每个任务分配一个与事件发生概率成正比算法事先为每个任务分配一个与事件发生概率成正比的优先级,调度程序总是调度优先级最高的就绪任务,的优先级,调度程序总是调度优先级最高的就绪任务,必要时将剥夺当前任务的必要时将剥夺当前任务的CPU使用权,让高优先级的使用权,让高优先级的任务运行。任务运行。最早截止时间优先算法(最早截止时间优先算法(Earliest Deadline First)当检测到一个事件时,对应的处理进程任务就加入就当检测到一个事件时,对应的处理进程任务就加入就绪进程表中,该表以截止时间排序,调度程序总是使绪进程表中,该表以截止时间排序,调

32、度程序总是使最早截止时间的那个进程任务运行。最早截止时间的那个进程任务运行。5.4.3 几种典型嵌入式实时操作系统几种典型嵌入式实时操作系统 (1)VxWorks (2)uc/OS-II (3)uclinux (4)eCOS 最小松弛时间优先(最小松弛时间优先(Least Laxity)算法)算法,最小裕最小裕度算法。操作系统选择裕度最小的任务,使其占用处度算法。操作系统选择裕度最小的任务,使其占用处理器。理器。5.5 汽车电子的开放系统及接口标准汽车电子的开放系统及接口标准-OSEK 在上所述的背景下,针对汽车控制的操作系统标准在上所述的背景下,针对汽车控制的操作系统标准也应运而生,其中,也

33、应运而生,其中,OSEK(Open Systems and the Corresponding interfaces for Automotive Electronics)逐渐在汽车行业中得到越来越多的认可。逐渐在汽车行业中得到越来越多的认可。OSEK的主要内容之一是定义了汽车领域的实时的主要内容之一是定义了汽车领域的实时操作系统标准,通过建立操作系统标准,通过建立OSEK标准,将软件的应用标准,将软件的应用层和系统层完全分离开。层和系统层完全分离开。OSEK标准包括以下七个部分:标准包括以下七个部分:1.OSEK/VDX操作系统规范(操作系统规范(OSEK os)2.OSEK/VDX通信规范

34、通信规范 (3)OSEK/VDX实现语言规范实现语言规范 (4)OSEK/ORTI规范规范 (5)OSEK-Time规范规范 (7)OSEK FTCom规范规范 符合符合OSEK/VDX规范具有以下优点:规范具有以下优点:应用程序与硬件屏蔽,软件模块可并行开发;应用程序与硬件屏蔽,软件模块可并行开发;任务扩展性好,修改方便;任务扩展性好,修改方便;可以完全图形化设计,直接生成源代码;可以完全图形化设计,直接生成源代码;通过通过OIL文件描述整个操作系统,易于版本管理。文件描述整个操作系统,易于版本管理。5.5.1 OSEK的任务管理的任务管理 OSEK中提高两类任务:基本任务中提高两类任务:基

35、本任务(Basic Task)和扩展任务和扩展任务(Extended Task)。基本任务用来完成那。基本任务用来完成那些激活后就必须完整执行的工作。扩展任务可以接受些激活后就必须完整执行的工作。扩展任务可以接受事件的优先级,被赋予固定优先级,运行期间不允许事件的优先级,被赋予固定优先级,运行期间不允许改变。改变。事件(事件(Event)也被称为资源()也被称为资源(Resource),可以可以同步任务的执行。同步任务的执行。基本任务具有三种状态:运行状态、就绪状态、基本任务具有三种状态:运行状态、就绪状态、挂起状态;扩展任务比基本任务增加一个等待状态。挂起状态;扩展任务比基本任务增加一个等待

36、状态。基本任务只有在开始和结束时才有同步点。扩展基本任务只有在开始和结束时才有同步点。扩展任务运行时可能进入等待状态。任务运行时可能进入等待状态。如如图图5-13所示,状态转换有激活、启动、等待、所示,状态转换有激活、启动、等待、释放、抢占和终止。释放、抢占和终止。激活:任务由挂起状态变为就绪状态。激活后,激活:任务由挂起状态变为就绪状态。激活后,任务就可以参与调度,并获得执行。任务就可以参与调度,并获得执行。启动:将任务由就绪状态变为运行状态,这个过启动:将任务由就绪状态变为运行状态,这个过程由任务调度器进行控制。程由任务调度器进行控制。等待:任务由运行状态变为等待状态。任务通过等待:任务由

37、运行状态变为等待状态。任务通过进入等待事件发生,实现与事件的同步,系统函进入等待事件发生,实现与事件的同步,系统函数数WaitEvent()会使任务进入等待状态。会使任务进入等待状态。释放:任务由等待状态变为就绪状态。当任务等释放:任务由等待状态变为就绪状态。当任务等待的事件发生,任务则退出等待状态,等待操作待的事件发生,任务则退出等待状态,等待操作系统的调度。系统的调度。抢占:任务由运行状态变为就绪状态。当有更高抢占:任务由运行状态变为就绪状态。当有更高优先级任务进入就绪状态,任务就有可能被抢占。优先级任务进入就绪状态,任务就有可能被抢占。任务调度器负责各任务的启动和抢占。任务调度器负责各任

38、务的启动和抢占。终止:任务由运行状态变挂起状态。任务终止后,终止:任务由运行状态变挂起状态。任务终止后,任务不再参与任务调度。任务不再参与任务调度。OSEK OS支持三种调度方式:抢占调度、非抢支持三种调度方式:抢占调度、非抢占调度、混合调度。占调度、混合调度。非抢占调度机制要求只有在重调度点才能从运行中非抢占调度机制要求只有在重调度点才能从运行中的任务转去执行其他任务。的任务转去执行其他任务。抢占调度机制要求在满足操作系统预定的触发条件时抢占调度机制要求在满足操作系统预定的触发条件时重新调度处于运行的任务。重新调度处于运行的任务。混合调度是指在同一系统中即存在抢占调度任务混合调度是指在同一系

39、统中即存在抢占调度任务又存在非抢占调度任务。又存在非抢占调度任务。5.5.2 OSEK的一致性的一致性 OSEK中任务由以下三个组成部分组成:任务程中任务由以下三个组成部分组成:任务程序代码、任务堆栈和任务控制块。序代码、任务堆栈和任务控制块。其中,任务控制块用来保存任务属性;任务堆栈用来其中,任务控制块用来保存任务属性;任务堆栈用来保护任务上下文;任务程序代码是任务的执行部分。保护任务上下文;任务程序代码是任务的执行部分。OSEK操作系统的调度行为并非严格的固定优先操作系统的调度行为并非严格的固定优先级。由于共享资源以及混合抢占调度战略的存在,操级。由于共享资源以及混合抢占调度战略的存在,操

40、作系统需要时刻保证最高优先级的就绪任务得到运行。作系统需要时刻保证最高优先级的就绪任务得到运行。一致类的概念可以使开发者根据应用灵活地配置一致类的概念可以使开发者根据应用灵活地配置操作系统调度程序。操作系统调度程序。OSEK系统中定义了系统中定义了4种一致类:种一致类:BCC1,BCC2,ECC1,ECC2。一致类的划分是根据每个优先级可能具有的任务一致类的划分是根据每个优先级可能具有的任务个数、需要的是基本任务还是扩展任务来决定。个数、需要的是基本任务还是扩展任务来决定。BCC1:表示在应用系统中,每个优先级上只有一:表示在应用系统中,每个优先级上只有一个任务,且是基本任务。个任务,且是基本

41、任务。ECC1:表示在应用系统中,每个优先级上只有一个:表示在应用系统中,每个优先级上只有一个任务,且是扩展任务。任务,且是扩展任务。BCC2:表示在应用系统中,每个优先级上有多个任:表示在应用系统中,每个优先级上有多个任务,且是基本任务。务,且是基本任务。ECC2:表示在应用系统中,每个优先级上有多:表示在应用系统中,每个优先级上有多个任务,且是扩展任务。个任务,且是扩展任务。在实时操作系统中,调度机制的核心是调度器,在实时操作系统中,调度机制的核心是调度器,调度不仅需要保证正确性。其实现也必须是高效的。调度不仅需要保证正确性。其实现也必须是高效的。调度的主要工作如下:调度的主要工作如下:根

42、据就绪任务的优先级,选择最重要的任务优先运根据就绪任务的优先级,选择最重要的任务优先运行;行;如果需要切换任务,将任务上下文切换。如果需要切换任务,将任务上下文切换。在在OSEK操作系统中,调度有其额外的、特殊的需求;操作系统中,调度有其额外的、特殊的需求;OSEK操作系统内核模块如操作系统内核模块如图图5-14所示所示在在BCC2和和ECC2一致类中,能够正确处理基本任务一致类中,能够正确处理基本任务的多次激活。如果一个任务被多次激活,那么这个任的多次激活。如果一个任务被多次激活,那么这个任务需要多次执行,并且任务执行的顺序与任务激活顺务需要多次执行,并且任务执行的顺序与任务激活顺序一致。序

43、一致。当有任务就绪时,根据任务原始优先级定位到它当有任务就绪时,根据任务原始优先级定位到它所属的就绪队列,根据先进先出(所属的就绪队列,根据先进先出(First in First out)原则,将其插入队列尾部。原则,将其插入队列尾部。需要支持需要支持OSEK优先级天花板协议,包括计算资源优先级天花板协议,包括计算资源优先级(在系统生成时计算完成)以及获得资源时任优先级(在系统生成时计算完成)以及获得资源时任务优先级的变化。务优先级的变化。5.5.3 中断处理中断处理 在一些嵌入式系统,中断是外部事件的关键接口,在一些嵌入式系统,中断是外部事件的关键接口,中断源可能是实时时钟、能发送触发脉冲信

44、号的传感中断源可能是实时时钟、能发送触发脉冲信号的传感器或用户定义的中断源。器或用户定义的中断源。OSEK的中断服务程序分为的中断服务程序分为ISR1和和ISR2两种,如两种,如图图5-15所示。所示。ISR1:此类中断服务程序不使用操作系统的资:此类中断服务程序不使用操作系统的资源,源,ISR结束后,处理程序将从产生中断的地方继续结束后,处理程序将从产生中断的地方继续执行。执行。ISR2:这类中断服务程序是系统生成时,由操作:这类中断服务程序是系统生成时,由操作系统通过用户子程序配置成的,它可以调用操作系统系统通过用户子程序配置成的,它可以调用操作系统的的API函数。函数。5.5.5 事件机

45、制事件机制在在OSEK中,事件机制:中,事件机制:l是同步的方法;是同步的方法;l仅仅提供给仅仅提供给Extended Tasks;l用于用于Task的初始化状态改变和从等待到就绪的状的初始化状态改变和从等待到就绪的状态改变;态改变;事件是通过操作系统管理的对象,它们不是独立事件是通过操作系统管理的对象,它们不是独立的对象,而是分配给扩展任务(的对象,而是分配给扩展任务(Extended Tasks)。)。每个扩展任务有一个固定的事件号,一个独立的事件每个扩展任务有一个固定的事件号,一个独立的事件被它的所有者和它名字识别。被它的所有者和它名字识别。总之,事件机制保证不同扩展任务之间的同步并且使

46、总之,事件机制保证不同扩展任务之间的同步并且使任务的状态从等待状态转换到就绪状态或者从运行状任务的状态从等待状态转换到就绪状态或者从运行状态换到等待状态。态换到等待状态。抢占调度下事件的同步机制如抢占调度下事件的同步机制如图图5-17所示。所示。非抢占调度下事件的同步机制如非抢占调度下事件的同步机制如图图5-18所示。所示。5.5.5 资源管理资源管理具有不同优先级的任务访问共享资源需要使用资源管具有不同优先级的任务访问共享资源需要使用资源管理机制进行协调。任务通过采用最高限度优先级理机制进行协调。任务通过采用最高限度优先级(Priority Ceiling)协议可以避免优先级倒置。协议可以避

47、免优先级倒置。最高限度优先级如最高限度优先级如图图5-19所示。所示。最高限度优先级协议的就绪队列如最高限度优先级协议的就绪队列如图图5-20所示。所示。任务任务A、B原始优先级均为原始优先级均为0,从就绪队列为空开始,从就绪队列为空开始,按照按照A、B、A、B的顺序依次激活对应的任务。只有的顺序依次激活对应的任务。只有当前运行的任务可以获得资源。当前运行的任务可以获得资源。5.5.6 警报器管理警报器管理 OSEK标准中规定警报基于系统时钟或者基于其标准中规定警报基于系统时钟或者基于其他某种计数器。他某种计数器。OSEK使用硬件定时器产生中断来实现系统时钟。使用硬件定时器产生中断来实现系统时

48、钟。OSEK为每个计数器维护一个警报队列,每个计数为每个计数器维护一个警报队列,每个计数器的头指针指向警报队列的队头。器的头指针指向警报队列的队头。5.5.7 OSEK COM 和和 OSEK NM OSEK COM规范为汽车规范为汽车ECU应用软件提供了统应用软件提供了统一的通信环境。通过定义应用软件通信接口以及一的通信环境。通过定义应用软件通信接口以及ECU内部通信和内部通信和ECU外部通信,外部通信,OSEK COM规范提高了规范提高了应用程序模块的可移植性。应用程序模块的可移植性。OSEK COM中通信是基于消息的。消息包括了特中通信是基于消息的。消息包括了特定应用的数据。消息和消息属

49、性通过定应用的数据。消息和消息属性通过OSEK实现语言实现语言(OIL)静态配置。)静态配置。在内部通信情况下,交互层(在内部通信情况下,交互层(Interaction Layer IL)使消息立即发送到接收方。在外部通信情况下,)使消息立即发送到接收方。在外部通信情况下,IL将一个或多个消息压缩成指定的交互层协议数据单将一个或多个消息压缩成指定的交互层协议数据单元(元(Interaction Protocol Data Unit I-PDU)。并把)。并把它传递到下层处理(见它传递到下层处理(见图图5-21)。)。在网络上传递消息的服务是非阻塞的,即该消息发在网络上传递消息的服务是非阻塞的,

50、即该消息发送服务不会阻塞当前线程,而会立刻返回。送服务不会阻塞当前线程,而会立刻返回。OSEK为应为应用程序提高了通知机制来决定传送或接收的状态。用程序提高了通知机制来决定传送或接收的状态。OSEK NM规范是为了提高规范是为了提高ECU产品的网络互连能产品的网络互连能力提供了一个网络连接标准。力提供了一个网络连接标准。OSEK NM任务的目的是任务的目的是提高提高ECU产品的网络通信的安全性和可靠性。产品的网络通信的安全性和可靠性。OSEK NM规范规定了网络管理的机制和应用程序的接口。规范规定了网络管理的机制和应用程序的接口。采用采用OSEK规范的规范的ECU产品具有以下功能:产品具有以下

51、功能:经过授权后,每个节点必须是可以访问的;经过授权后,每个节点必须是可以访问的;在允许访问失败的情况下,具有最大容忍限度;在允许访问失败的情况下,具有最大容忍限度;支持网络诊断。支持网络诊断。OSEK NM为网络监控提供以下机制:为网络监控提供以下机制:1.通过监控应用程序进行间接监控,通过监控应用程序进行间接监控,2.对于特定的网络管理利用标记机制进行直接监对于特定的网络管理利用标记机制进行直接监控。控。OSEK NM包括以下部分:包括以下部分:(1)OSEK NM与应用程序的接口;与应用程序的接口;(2)节点监控的算法;节点监控的算法;(3)OSEK NM与与OSEK COM的接口;的接

52、口;(4)转换到睡眠状态的算法;转换到睡眠状态的算法;(5)OSEK NM 协议数据单元协议数据单元OSEK NM在整个系统中的位置及其与其他部分在整个系统中的位置及其与其他部分的关系如的关系如图图5-22所示。所示。5.5.8 OSEKOIL OSEK OIL 规范定义了一种配置和使用规范定义了一种配置和使用OSEK应应用的方法,以实现软件的可移植性。用的方法,以实现软件的可移植性。图图5-23为一个基于为一个基于OSEK规范的应用开发过程。规范的应用开发过程。OIL提供一种在特定提供一种在特定CPU中配置中配置OSEK应用的机制,应用的机制,每个每个cpu对应一个对应一个OIL描述,所有的

53、描述,所有的OSEK系统对象用系统对象用OIL对象来描述。对象来描述。OIL中的对象包括中的对象包括:cpu、os、Appmode、ISR、Resource、Task、Counter、Event、Alarm、Com、Message、I-PDU、NM。5.5.9 OSEK ORTI OSEK ORTI规范为规范为OSEK操作系统开发工具提供了操作系统开发工具提供了统一统一 的接口。的接口。ORTI文件是由系统生成器在系统生成阶文件是由系统生成器在系统生成阶段产生。段产生。OSEK ORTI规范包括规范包括Part A和和Part B两部分。两部分。Part A介绍了介绍了ORTI为调试工具定义的

54、操作系统内核对为调试工具定义的操作系统内核对象的语言象的语言KOIL。Part B描述描述OSEK/VDX标准对象、属性和它们的标准对象、属性和它们的含义。含义。ORTI文件包含以下部分:版本信息部分、声明部分和文件包含以下部分:版本信息部分、声明部分和信息部分。信息部分。标准的标准的ORTI对象及属性:对象及属性:5.5.10 基于基于OSEK实时操作系统的软件实现实时操作系统的软件实现 以新能源汽车动力蓄电池管理系统以新能源汽车动力蓄电池管理系统(Battery Management system,BMS)电池管理系统有三方面的功能:监测和估计、控电池管理系统有三方面的功能:监测和估计、控制和保护、通信和诊断。制和保护、通信和诊断。(1)任务的划分任务的划分 (2)任务的优先级确定任务的优先级确定 (3)任务配置任务配置谢谢!谢谢!p143P144P157P158p159p160演讲完毕,谢谢观看!

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!