《AUTOSAR谱系分解(ETAS工具链)》之BswM
BswM
BswMConfig
-
BswMArbitration【模式仲裁】
-
BswMLogicalExpressions【逻辑表达式】
-
BswMLogicalOperator
- BSWM_AND
- BSWM_NAND
- BSWM_OR
- BSWM_XOR
-
BswMArgumentRef
-
EXP:
- EXP:包含模式仲裁的逻辑表达式可以使用不同的操作符,比如AND,OR,XOR,NAND。每一个逻辑表达式(Logic Expression)对应一个模式请求条件。这请求或者指示的模式会被判断是EQUAL或者NOT_EQUAL特定的模式。上图中展示了有两个条件的模式Rule,
Rule和可用逻辑操作集被定义为ECU 配置的一部分。
- EXP:包含模式仲裁的逻辑表达式可以使用不同的操作符,比如AND,OR,XOR,NAND。每一个逻辑表达式(Logic Expression)对应一个模式请求条件。这请求或者指示的模式会被判断是EQUAL或者NOT_EQUAL特定的模式。上图中展示了有两个条件的模式Rule,
-
-
BswMModeConditions【模式条件】
-
BswMConditionType
- EQUALS
- EQUALS_NOT
-
BswMConditionMode
-
EXP:
-
-
BswMModeRequestPorts【模式请求】
-
BswMModeRequestSource
- BswMModeInitValue
- BswMBswModeNotification
- BswMSwcModeRequest
-
BswMRequestProcessing
- Immediate
- Deferred
-
EXP:
- EXP:
BswM模块接收来自SWC的模式请求(Mode Request)和来自于其他Bsw模块的模式指示Mode indication)作为输入进入模式条件执行模式仲裁。一般来说,模式请求是来自于应用层SWC,但是也有可能来自于Bsw模块,比如DCM模块。模式指示总是由他BSW模块发出,比如不同的总线管理器,比如EcuM,WdgM等模块。
处理模式仲裁有两种方式,一种是有模式需求或者是模式指示时,立即处理;另一种是有模式需求或者是模式指示时,使用main轮询处理。
如果是“Immediate”需求,是通过函数调用执行的。在软件系统集成时,应该保证动作列表在执行时不会影响到整个控制器的系统性能,适用于模式请求来源数据变化不大,较为稳定的场合。
如果是“轮询遍历”方式,BswM模块会在模块中MainFunction中主动查询模式请求和模式指示的状态,适用于模式请求和模式指示变化较快的情况,这两种仲裁方式可以通过参数BswMRequestProcessing配置。
- EXP:
-
-
BswMRules【模式规则】
-
BswMRuleInitState
- BSWM_FALSE
- BSWM_TURE
- BSWM_UNDEFINED
- EXP:
- EXP:模式规则可以设置逻辑表达式的初始值为TRUE或者FASLE,以便执行默认的Action List。 模式仲裁在初始化后的运行是由配置参数BswMModeInitValue的值决定的。BswMRequestProcessing的参数在BswMModeRequestPort的配置中体现。
当BswMModeInitValue没有配置初始值时,BswM应该将相应的模式视为未定义,因此意味着BswM在完成初始化后默认就会执行一次。
当BswMModeInitValue有配置初始值时,BswM模块应该使用初始值作为第一次模式仲裁时的状态。
-
BswMRuleExpressionRef
-
BswMRuleFalseActionList
-
BswMRuleTrueActionList
-
EXP:
- EXP:
BswM 执行的Mode Arbitration是基于规则(rule-based)的而且很简单。所以模式规则中有两部分:模式表达式以及相应的模式动作。
为了知道模式控制中的哪些动作需要执行,需要BswM模块评判先前模式仲裁的结果与当前模式仲裁的结果的变化。
- EXP:
-
-
-
BswMModeControl【模式控制】
-
BswMActionLists【模式行为List】
-
BswMActionListItem
- BswMAbortOnFail
- BswMActionListItemIndex
- BswMActionListItemRef
-
EXP:
-
-
-
BswMActions【模式行为触发方式】
—BswMAvailableActions—-
BswMSchMSwitch
- BswMSchMModeDeclarationGroupRef
- BswMSchMSwitchedMode
- EXP:
/AUTOSAR_BswM/ModeDeclarationGroups/MDG_ECUM_STATE/
-
-
ECUM_STATE_STARTUP_ONE
ECUM_STATE_STARTUP_TWO
ECUM_STATE_RUN
ECUM_STATE_APP_RUN
ECUM_STATE_POST_RUN
ECUM_STATE_PREP_SHUTDOWN
ECUM_STATE_SHUTDOWN
。。。
-
EXP:
-
BswMRteModeRequestPort
-
EXP:
-
-
BswMSwitchPort【模式通知】
-
EXP:
-
-
EXP:
-
EXP:
- EXP:模式控制就是根据模式仲裁的结果执行相应的Action List,而操作列表(Action List)是BswM在模式仲裁后触发的序列动作。
-
模式控制可以分为三类,以SWC的模式控制为例:
(1)调用其他BSW模块或者RTE接口,
(2)链接其他Action List从而调用其他Action List,
(3)执行模式仲裁规则。当动作列表执行时,就会执行相应的模式规则。
-
BswMDataTypeMappingSets
-
ECUM STATE Mapping
-
EXP:
-
-
-
EXP:
-
EXP:
-
EXP:
-
EXP:BswM模块的功能可以分为两个部分,分别为:
(1)模式仲裁:模式请求(Mode Request)、模式条件(Mode Condition)、模式表达式(Mode Logic Expression)。
(2)模式控制:模式动作(Mode ActionList)、模式通知(Mode Switch) -
-
-
-
-
-
BswMGeneral
-
BswMRbGenericReqUsers
- BswMRbGenericReqUser
-
BswMUserIncludeFiles
-
EcuM.h
-
CanSM.h
-
CanIf.h
-
ComM.h
-
Com.h
-
PduR.h
-
。。。。。。
-
EXP:
-
EXP:
-
-
-
BswMCanSMEnabled
-
BswMRbComEnabled
-
BswMComMEnabled
-
BswMDcmEnabled
-
BswMDevErrorDetect
-
BswMEcuMEnabled
-
BswMEthIfEnabled
-
BswMEthSMEnabled
-
BswMFrSMEnabled
-
BswMGenericRequestEnabled
-
BswMJ1939DcmEnabled
-
BswMJ1939NmEnabled
-
BswMLinSMEnabled
-
BswMLinTPEnabled
-
BswMMainFunctionPeriod
- 0.01
-
BswMNmEnabled
-
BswMNvMEnabled
-
BswMRbDebugEnable
-
BswMRbIntrptQueueMaxSize
- 5
-
BswMRbMaxNumOfRules
- 30
-
BswMSchMEnabled
-
BswMSdEnabled
-
BswMVersionInfoApi
-
EXP:
-
EXP:
-
EXP:
-
-
-
评论记录:
回复评论: