AUTOSAR功能抑制管理器

发布时间:2024-03-25  

功能抑制管理器(Function Inhibition Manager)负责为软件组件(software component)及其功能(functionality)提供控制机制,通过FIM可以抑制(取消应用程序功能的激活)这些功能,甚至可以在运行时(构建后配置)期间进行配置和修改。

functionality:一个功能可以由具有相同权限/抑制条件集的一个、几个或部分可运行实体(runnable entity)的内容构建。


FID:功能被分配到一个标识符(FID-功能标识符),以及该特定标识符的抑制条件。这些功能在执行之前轮询各自FID的权限状态。如果特定标识符的抑制条件成立,则相应的功能将不再执行。

图片

FIM Core Variables

● Diagnostic Event:“诊断事件”是DEM向特定诊断监视器功能提供的标识符,用于报告错误

● Monitor
Status:“监测状态”是DEM根据监测功能的报告值计算出的状态。可能的值由Dem_MonitorStatusType定义

● Monitored
Component:“被监控组件”是由DEM提供给特定被监控组件(硬件组件或信号)的标识符。“被监控组件”的FAILED状态表示所有分配的监控功能的结果和从其他DEMComponent继承的故障信息

● Summarized
Event:FIM配置应该支持汇总事件。汇总事件由多个单个诊断事件组成;因此,特定的总结事件只是多个诊断事件的代表。Summarized Event可以用作SWC的抑制条件

● Function Identifier:

a. 应保证FIM中的每个functionid是唯一的

b. FIM模块应使用FunctionId直接指向相关的功能信息(权限状态等)

FIM实现了功能权限的计算。这些被计算的对象是SWC或Logic
Unit,每个FID的权限状态是根据分配给特定FID的EventIds计算的。计算出每个EventIds的权限状态,并进行“与”以确定最终的权限状态

● Function Identifier permission
state:FID权限状态包含由其FID表示的功能是否可以执行的信息(True执行/False禁止)。SWC组件通过FIM_GetFunctionPermission访问状态

4.2

FIM Core Functionalities

FIM Data Structure

FIM的配置过程应该在FIM模块中创建数据结构来存储抑制关系(EventID - FID -applicable mask)。

可配置的EventIds数量和抑制掩码被分配给一个FID。每个FID的EventIds和抑制掩码数量必须匹配,以便对于每个配置的事件,都存在相应的抑制掩码。抑制掩码包含FID的抑制条件,前提是相关的EventIds具有特定的状态(Dem_EventStatusExtendedType)。这些掩码定义了FID对事件的哪些状态敏感。

每个FID都有一个抑制掩码,两者都分配给一个特定的FID EventId。如果该事件具有一定的状态,并且如果事件状态与配置的掩码匹配,则对FID的抑制将激活。

图片

Interaction with DEM

FIM模块的功能是基于DEM事件为控制SWC(允许/抑制)提供服务功能当所报告事件的监控状态发生变化时,如果DemTriggerFiMReports是启用的,DEM通过API函数FIM_DemTriggerOnMonitorStatus通知FIM监控状态的变化。在收到监视器状态变化的通知时,FIM使用Dem_GetMonitorStatus来重新计算函数抑制。

每个FID都有一个Inhibition Counter抑制计数器。抑制计数器包含当前抑制的EventIds的数量。如果状态与掩码匹配,则抑制计数器增加;否则,抑制计数器不会更新。这适用 FIM_GetFunctionPermission(如果权限状态必须在查询时计算)和FIM_MainFunction。

若FIM_DemTriggerOnMonitorStatus报告了监视器状态变化,则执行以下操作:

● 如果EventId的状态改变导致释放状态(掩码与监视器状态不匹配),则抑制计数器必须减小

● 如果EventId的状态变化导致抑制状态(掩码与监视器状态匹配),则抑制计数器必须增加

● 如果抑制计数器为》 0,则FID权限状态设置为FALSE,否则FID权限状态设置为TRUE

Interaction with SWC:

对于每个FID,SWC应提供导致FID抑制的events列表和mask掩码FIM模块应同步响应传入的查询来确保对功能的即时控制。FIM模块通过将权限状态存储为状态变量或在权限查询时计算事件状态来实现这一行为如果使用接口FIM_SetFunctionAvailable将一个函数(FID)设置为不可用,它的权限状态FIM_GetFunctionPermission总是返回FALSE。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>