当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]本文提出在嵌入式实时操作系统上建立实时多任务软件系统时,使用软总线提供数据驱动层以处理多任务间共享资源的构架方式。该方案封装各种共享资源的操作,在操作系统上构建使资源对于其他系统任务模块构建者透明的数据驱动接口。实验结果表明该方案能较好的为各任务进程提供共享资源建立和使用的接口,同时有效地屏蔽由于进程资源共享与进程独立性的矛盾而可能产生的错误。

1.引言

随着大型嵌入式系统向着集成化和多元化方向的发展,嵌入式软件系统的复杂度也日益增大。在集成多个硬件工作模块组成的复杂系统中,要求软件系统能同时测控多个模块的同步工作,软件设计要求做到实时多任务。针对软件设计的要求,采用基于实时多任务操作系统提供的底层任务调度机制,建立软件架构成为较好的选择。本文提出了基于实时多任务操作系统,建立软件架构时采用软总线提供数据驱动层的架构模式。针对实时多任务操作系统,分析任务调度与数据驱动层。针对资源共享与任务进程独立性等问题,提出软总线在共享数据维护上的优势。

2.任务调度、共享资源与软总线结构研究

2.1 嵌入式开发任务调度和资源共享

目前主要的实时多任务操作系统(VxWorks,嵌入式Linux,WinCE)的任务调度均采用对于不同优先级抢占式调度,对同优先级采用时间片轮转调度的方法。为使低优先级任务能得到运行,软件需要能阻塞高优先级任务,同时也要能使被阻塞的任务重新就绪运行。操作系统对进程间通信资源的操作能产生这样的效果,所以在架构软件时,常借助进程间通信资源的使用。然而采用这样的方式,调度灵活性较差,同时低优先级任务对进程间通信资源的占用也始终处于劣势。任务进程较多复杂软件系统中,无法避免的会出现多进程共用资源的情况,事实上进程通信资源也是一种多进程共用的资源。进程可以对自身资源进行管理,但对于这些共享的资源,就无法只由共享者中的某一个进行管理。而这个管理却是必要的,否则进程内部的意外可能通过这些资源蔓延到其他进程,如:进程内部意外的对资源地址赋空,就会使其他共享该资源的进程在使用该资源时崩溃。这就要求在系统设计时,有独立于各个进程之外的总体的对资源管理的模块。

2.2 软总线结构

在此,本文提出软总线结构来架构复杂的软件系统,以解决任务调度和资源管理上的困难。软总线是封装了操作系统对于进程间通信资源,共享内存等有多个进程共同使用的资源操作的模块。该模块为任务进程模块提供标准的资源申请、使用及回收接口,任务进程使用该接口及协议的标识进行资源的共享。

首先,软总线封装了各种进程可能共享的资源,独立于进程之外对资源进行管理,使共享资源对于任务进程透明,任务进程无法直接操作资源。这样的处理方式使得资源本身不能被任务进程修改或破坏。任务进程获取的数据,实际是总线上数据的副本,而所有关于总线上数据的更新都需要总线模块的认证,以避免出错。总线模块在操作系统底层调用的基础上,通过封装资源、提供接口,构建了一个数据驱动层。同时,由于软总线的封装,使得在构建软件系统时,对进程的调度需要通过软总线来实施。如果在总线模块处加载系统的调度策略,可以更灵活有效地对每个资源进行任务的调度。使得一方面降低了在开发初期为任务进程设置合理优先级的难度,一方面也使得不同任务能在不同的资源处能有更为灵活的优先策略。

综合以上两点,以软总线架构底层数据驱动的方式构建实时多任务软件系统,可以有效地保护和管理共享资源并更为简单灵活对系统进行调度。

3.软总线软件架构方案

本设计基于Vxworks操作系统,试验平台包括通信、存储、复接、硬件总线与主控计算机等硬件电路板,及与硬件相对应的软件功能模块。

3.1 软件架构整体方案

本设计中,软总线封装的操作系统对于内存、信号量以及消息队列的创建、删除及使用等操作。上层与硬件功能对应的软件任务模块需要通过软总线进行对资源操作。具体的结构如图1 所示:对于功能模块本地化的资源,不强制要求使用软总线操作。

图1 软总线架构设计框图

3.2 软总线详细设计

对于软总线结构的架构方式,设计关键节点就是软总线模块。该模块负责对操作系统的资源封装和上层功能模块的资源使用请求处理。本设计中,将软总线分成两个主要的部分:资源池和管理表。资源池是软总线模块开辟的内存区域,在内存池上进行系统其他功能模块的共享资源的创建。

软总线引入了以下操作特性:资源创建于软总线的资源池,功能模块通过标示符来间接地使用资源,资源使用需要经过软总线的验证,多个进程对同一资源会有不同的操作方式和优先级,不同的资源有不同的调度策略。针对这些特性,就需要有相应的管理系统。该系统需要维护资源与标示符之间的关联、任务进程对资源的相关操作参数、资源特有的调度策略等。本文设计中软总线主要使用四个表格存储关联信息,其详细设计图如图2:

图2 软总线详细设计图

3.3 资源使用调度详细设计

为了保证资源的安全性,系统要求进程在使用资源的时候先进行进程注册和资源申请。同时,系统对资源使用的行为进行比较严格的检测。因此,进程使用资源分为三步:进程注册,进程申请资源及进程使用资源。进程注册是在进程建立的时候,同时将进程信息写入软总线的进程表加以保存。进程申请资源通常在进程建立以后第一次工作时完成,类似对资源的初始化。进程申请资源要求进程在软总线已经注册,同时要求进程对资源的参数限定符合该资源。进程使用标识符来标示所要使用的资源,如果该资源不存在,这以该进程给定的参数在资源池中建立和初始化该资源并关联进程;如果资源存在,比对参数,如果一致,直接关联进程,否则出错处理。出错处理产生以“标识符_进程编号”为标识的副本,以进一步的使用,当然同时会有出错提示。

资源使用要求进程和资源已经关联。同时使用的过程中,进程操作的是数据的副本,而对资源的更新是要受到系统的检测的。这次,副本数据的更新是实时的,这样就避免出现同步的问题。资源调度也会在资源获取前依据资源调度表中的信息进行。进程对资源申请和使用的详细调度如图 3 所示:

图3 进程对资源申请和使用的详细调度图

3.4 系统验证和安全性模拟实验

经过验证,该系统*能模块使用软总线提供的接口操作资源,其速度和效率不低于使用未封装的资源。同时,软总线的封装使得资源对功能模块透明,而且使用资源时还要求对其进行较强的验证,因此资源的安全性及系统的健壮性得到了较大幅度的提高。为了验证系统的安全性健壮性,我们进行了安全测试。在测试中,模拟了系统可能出现的各种安全漏洞。同时,与使用非软总线结构,对资源不进行强验证的系统进行比较。结果如表1:

如上表所示,使用软总线架构,系统具有更强的安全性和健壮性。

4.结束语

本文介绍了使用软总线封装系统资源,设计实时多任务嵌入式软件的架构方式。通过实际的工程实践,给出软总线的设计方案。文章通过理论分析和实验对比指出了这种架构方式在处理多任务调度和资源共享上相对普通架构的优势。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

如今,汽车已经不再是一个简单的交通工具,而是一种智能化的移动终端。通过集成各种先进的传感器、控制器和执行器,汽车可以实现对环境的感知、分析和决策,实现自动驾驶、智能导航、车辆间通信、互联网连接等功能。这些功能不仅提高了驾...

关键字: HMI 驾驶舱 嵌入式软件

为增进大家对嵌入式的认识,本文将对嵌入式软件方向的分类以及嵌入式的应用予以介绍。

关键字: 嵌入式 指数 嵌入式软件

在这篇文章中,小编将为大家带来嵌入式软件及其作用的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 嵌入式 嵌入式软件

嵌入式软件测试是针对嵌入式系统中的软件进行验证和验证的过程。嵌入式系统是集成在其他设备或系统中的计算机系统,例如汽车、医疗设备、家电等。为确保嵌入式软件的质量和可靠性,进行适当的测试是至关重要的。嵌入式软件测试是确保嵌入...

关键字: 嵌入式软件 计算机 硬件

嵌入式软件开发已经成为现代科技领域中不可或缺的一部分。从智能手机到家用电器,从汽车到医疗设备,嵌入式软件无处不在。然而,嵌入式软件的开发具有挑战性,因为它需要满足高度的性能、稳定性和可靠性要求。为了确保嵌入式软件的成功开...

关键字: 嵌入式软件 智能手机 家用电器

在嵌入式软件开发中,利用完整的应用跟踪,可为开发人员分析其产品行为提供无限的可能性。通过对应用程序的全面了解,他们可以跟踪每一条指令,看看他们的应用程序是否按照预期运行,或者是否出现错误或漏洞。那么,如何才能最大化地利用...

关键字: RISC-V 嵌入式软件

2023年上半年收入7.459亿元 同比增长5.1% 毛利率水平上升 海外收入同比增长65.4% 香港2023年8月22日 /美通社/ -- 金邦达宝嘉控股有限公司及其附属公司(以下合称「金邦达」、「...

关键字: 数字化 代码 嵌入式软件 COM

【2023 年 6 月 9 日,德国慕尼黑讯】英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)通过在现有的AUTOSARv4.2.2 MCAL基础上增加对AUTOSARv4.4.0的支持,进一步扩...

关键字: 嵌入式软件 发动机

2022年上半年收入7.1亿元 同比增长14.5%  嵌入式软件和安全支付产品发展势头强劲 收入同比增长28.7% 香港2022年8月16日 /美通社/ -- 金邦达宝嘉控股有限公司及其附属公司(以下合称“...

关键字: 数字化 嵌入式软件 供应链 代码

文|周立功日期|2021年12月2日ZLG致远电子创始人周立功EsDA(EmbededsoftwareDesignAutomation),全称是嵌入式软件设计自动化,它是一个由多种软件组成的软件过程管理和开发的工具,致力...

关键字: 自动化 嵌入式软件 ESD 周立功
关闭
关闭