全面讲解智能汽车系统诊断管理模块设计( 三 )


全面讲解智能汽车系统诊断管理模块设计

文章插图
FIM模块提供了一些API(应用程序接口),用于访问和修改功能抑制状态、读取和更新诊断数据等 。这些API通常是标准化的,符合AUTOSAR软件架构的规范 。
FIM模块主要调用的API接口包括如下:
FIM_Init:此API用于初始化FIM模块,包括初始化内部数据结构、变量和状态等 。
该函数是用于完成FIM相关结构体的初始化工作 。如果DET模块使能,可以判断FIM是否初始化成功,或者可以通过一个静态变量判断是否发生变化来判断初始化是否完成 。因为如果FIM模块没有完成初始化,则会被其他模块调用其内部的函数,且会返回E_NOT_OK,所以调用FIM其他函数接口之前必须完成FIM模块的初始化 。
FIM_InhibitFunction:此API用于抑制特定的汽车功能 。它需要输入功能ID和抑制级别等参数,并返回抑制状态和抑制结果等信息 。
FIM_ReleaseFunction:此API用于释放被抑制的汽车功能 。它需要输入功能ID等参数,并返回释放状态和释放结果等信息 。
FIM_GetStatus:此API用于获取FIM模块的当前状态,例如抑制状态、抑制等级和抑制时间等 。
FIM_GetDiagnosticData:此API用于读取和更新FIM模块的诊断数据,例如故障码和诊断状态等 。
如下将以具体的实例参数调用来说明如何进行功能抑制 。
全面讲解智能汽车系统诊断管理模块设计

文章插图
FIM_DemTriggerOnMonitorStatus:
该函数是为了提供给Dem模块Event Status发生变化时通知到FIM模块接口 。一旦Event Status发生变化,Dem就会主动调用该函数,通知FIM,其本质上就是一种Trigger Action行为 。其实FIM获取Event Status状态变化,还有一种Polling的方式,但是当Event数目比较大时,有时候就无法察觉到某些Event Status的快速变化,因此一般而言,都优先选择Trigger方式来完成对FIM模块的Event Status的通知 。
FIM_GetFunctionPermission:
该函数提供给SWC或BSW模块来获取FID状态 。如果请求FID超出范围或FIM模块还没有初始化完成,则FID就会直接退回FALSE 。
FIM_GetFunctionAvailable:
该函数用来给BSW或SWC层设置某功能是否可用,如果输入参数为True,则该功能可以正常使用
FIM_SetFunctionAvailable:
【全面讲解智能汽车系统诊断管理模块设计】该函数用来给BSW或SWC层来设置某功能是否可用,如果输入参数为TRUE,那么该功能可以正常使用 。若输入参数为FALSE,则该功能就会被Disable 。
FIM_MainFunction:
该函数是为了实现对Event Status与Inhibition Mask的计算,此处有两种方式,一种是Polling方式,另一种是Event Trigger方式,这两种方式的使能通过工具选项FIMEventUpdate TriggeredByDem是否为True决定 。




推荐阅读