0% found this document useful (0 votes)
7 views192 pages

AUTOSAR SWS COMManager

Autosar comm

Uploaded by

Sachin K
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views192 pages

AUTOSAR SWS COMManager

Autosar comm

Uploaded by

Sachin K
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 192

Specification of Communication Manager

AUTOSAR CP R21-11

Document Title Specification of


Communication Manager
Document Owner AUTOSAR
Document Responsibility AUTOSAR
Document Identification No 79

Document Status published


Part of AUTOSAR Standard Classic Platform
Part of Standard Release R21-11

Document Change History


Date Release Changed by Change Description
2021-11-25 R21-11 AUTOSAR  Introduced dedicated APIs to
Release synchronize the PNC status with
Management Nm and set the usage of
ComSignals to obsolete
 Introcuded
ComMChannelPerTxOnlyPnc to
support transmission-only PNCs
 Set requirements to valid which
relates to forward an wake up
request if an PNC is actively
requested
 Re-worked the service interfaces to
support the Pn learning phase
2020-11-30 R20-11 AUTOSAR  Added optional feature for dynamic
Release PNC-to-channel mapping
Management  Added optional handling to transfer
kind of communication request
(either active or passive) to lower
layers
 Extend ComM service interface
ComM_GetCurrentComMode, to
obtain the PNC state of the mapped
ComMUser
 Added restriction for ComM users
according the assignment of
managed and managing channels

1 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Document Change History


Date Release Changed by Change Description
2019-11-28 R19-11 AUTOSAR  Introduce handling of PNC
Release coordinator if serval ComM
Management channels have the same PNC
assignment but
PncGatewayTypeEnum is set to
“none.”
 Enabled ComM to be used for BSW
distribution (multicore use case)
 Minor corrections
 Changed Document Status from
Final to published
2018-10-31 4.4.0 AUTOSAR  Introduce “managing” and
Release “managed” ComM channels
Management  Remove relations to EcuMfixed
completely
 Minor corrections
2017-12-08 4.3.1 AUTOSAR  Clarification regarding
Release communication inhibition and bus
Management wake up inhibition
2016-11-30 4.3.0 AUTOSAR  Added the possiblity to switch
Release ehternet switch ports according to
Management ComM channel request / release
 Added the wake up handling in case
of a ECU which is controlling a
Ethernet switch and using PNCs.
 Minor corrections
2015-07-31 4.2.2 AUTOSAR  Chapter added to explain partial
Release network usecase
Management  Minor corrections
2014-10-31 4.2.1 AUTOSAR  Release of PNC related FULL_COM
Release request already upon leaving
Management PNC_REQUESTED
 Several clarifications
 Minor corrections

2 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Document Change History


Date Release Changed by Change Description
2014-03-31 4.1.3 AUTOSAR  Max. number of supported PNCs by
Release ComM now 56
Management  ComM supports VariantPostBuild
instead of
VariantPostBuildSelectable
 Restrictions for PNCs with
ComMChannels of
ComMNmVariant “PASSIVE”
2013-10-31 4.1.2 AUTOSAR  Introduced modeling of Service
Release Interfaces in Chapt. 8
Management  Repair the reset after forcing
NO_COM Feature
 Editorial changes
 Removed chapter(s) on change
documentation
2013-03-15 4.1.1 AUTOSAR  ComM allows configuration of
Administration arbitrary bus names for Bus SMs
 Nm Variant Passive not configurable
on individual channels anymore
 Assignment of ComMPncId to Nm
UserData bits specified
2011-12-22 4.0.3 AUTOSAR  Partial Network Cluster
Administration Management
 Improved/Corrected illustration of
start-up sequences (chap 9)
 Forbid assigning ComM users to
channels with NmVariant=PASSIVE
 Removed re-request of unchanged
communication mode in case of
mismatch with BusStateManager
(ComM901)
 Removed remains of DEM error
reporting

3 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Document Change History


Date Release Changed by Change Description
2009-12-18 4.0.1 AUTOSAR  Table for interaction between ComM
Administration and NM added
 Production error
COMM_E_NET_START_IND_CHA
NNEL removed
 Lower range of configuration
parameter
“ComMMainFunctionPeriod”
modified
2010-02-02 3.1.4 AUTOSAR  Changed interaction between ComM
Administration and ECU State Manager (EcuM)
 Changed interaction between ComM
and Diagnostic Communication
Manager (DCM)
 Added dependencies to new
modules Basic Software Mode
Manager (BswM) and Ethernet
State Manager
 Legal disclaimer revised
2008-08-13 3.1.1 AUTOSAR  Legal disclaimer revised
Administration
2007-07-24 2.1.18 AUTOSAR  Bus specific error handling (e.g. bus
Administration off handling) removed
 Control of the actual bus states
removed
 PDU group handling removed
 Initialization of Communication stack
removed
 Document meta information
extended
 Small layout adaptations made

4 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Document Change History


Date Release Changed by Change Description
2007-01-24 2.1.19 AUTOSAR  Changed features
Administration  Restart (silent com. -> full com.) now
possible even if mode limitation is
active
 Channel state machine changed
 Sequence diagrams changed
 New services to upper layers
 Mode indication API to RTE
changed
 New calls to other modules
 Usage of channel specific API
(EcuM and ComM) to indicate that a
communication channel has been
woken up and has gone to sleep
 API for NM control canged
(Nm_PassiveStartUp,
Nm_NetworkRequest,
Nm_NetworkRelease)
 Legal disclaimer revised
 Release Notes added
 “Advice for users” revised
 “Revision Information” added
2005-05-31 1.0 AUTOSAR  Initial Release
Administration

5 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Disclaimer

This work (specification and/or software implementation) and the material contained
in it, as released by AUTOSAR, is for the purpose of information only. AUTOSAR
and the companies that have contributed to it shall not be liable for any use of the
work.
The material contained in this work is protected by copyright and other types of
intellectual property rights. The commercial exploitation of the material contained in
this work requires a license to such intellectual property rights.
This work may be utilized or reproduced without any modification, in any form or by
any means, for informational purposes only. For any other purpose, no part of the
work may be utilized or reproduced, in any form or by any means, without permission
in writing from the publisher.
The work has been developed for automotive applications only. It has neither been
developed, nor tested for non-automotive applications.
The word AUTOSAR and the AUTOSAR logo are registered trademarks.

6 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Table of Contents

1 Introduction and functional overview ............................................................ 11


2 Acronyms and definitions .............................................................................. 12
3 Related documentation ................................................................................. 14
3.1 Input documents............................................................................................ 14
3.2 Related standards and norms....................................................................... 16
3.3 Related specification ..................................................................................... 16
4 Constraints and assumptions ....................................................................... 17
4.1 Limitations ..................................................................................................... 17
4.2 Applicability to car domains .......................................................................... 17
5 Dependencies to other modules ................................................................... 18
5.1 File structure ................................................................................................. 18
5.2 AUTOSAR Runtime Environment (RTE) ...................................................... 18
5.3 ECU State Manager (EcuM) ......................................................................... 18
5.4 Basic Software Mode Manager (BswM) ....................................................... 19
5.5 NVRAM Manager .......................................................................................... 19
5.6 Diagnostic Communication Manager (DCM) ................................................ 19
5.7 LIN State Manager ........................................................................................ 19
5.8 CAN State Manager ...................................................................................... 20
5.9 FlexRay State Manager ................................................................................ 20
5.10 Ethernet State Manager ................................................................................ 20
5.11 Network Management (NM) .......................................................................... 20
5.12 Default Error Tracer (DET) ........................................................................... 20
5.13 Communication (COM) – {OBSOLETE} ....................................................... 20
6 Requirements traceability ............................................................................. 21
7 Functional specification................................................................................. 30
7.1 Partial Network Cluster Management ........................................................... 33
7.1.1 Overview ................................................................................................ 33
7.1.2 Partial Network Cluster Management Functionality .............................. 34
7.1.3 ComM PNC state machine .................................................................... 36
7.1.4 PNC Gateway ........................................................................................ 51
7.1.5 Dynamic PNC-to-channel-mapping (optional) ...................................... 56
7.1.6 Partial Networking Configuration Hints ................................................. 58
7.2 ComM channel state machine ...................................................................... 60
7.2.1 ComM managed and managing channels ............................................ 64
7.2.2 Behavior in state COMM_NO_COMMUNICATION .............................. 65
7.2.3 Behaviour in state COMM_SILENT_COMMUNICATION ..................... 68
7.2.4 Behaviour in state COMM_FULL_COMMUNICATION......................... 69
7.3 ComM User to PNC Relations ...................................................................... 74
7.4 Extended functionality ................................................................................... 76
7.4.1 Communication inhibition ...................................................................... 77
7.5 Bus communication management ................................................................ 80
7.6 Network management dependencies ........................................................... 81
7.7 Bus error management ................................................................................. 82
7 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

7.7.1 Network Start Indication ........................................................................ 82


7.8 Test support requirements ............................................................................ 82
7.8.1 Inhibited Full Communication Request Counter ................................... 82
7.9 Error classification ......................................................................................... 83
7.9.1 Development errors ............................................................................... 83
7.9.2 Runtime Errors ...................................................................................... 84
7.9.3 Transient Faults ..................................................................................... 84
7.9.4 Production Errors................................................................................... 84
7.9.5 Extended Production Errors .................................................................. 84
7.10 Communication Manager Module Services .................................................. 84
7.10.1 Architecture............................................................................................ 84
7.10.2 Use Cases ............................................................................................. 85
7.10.3 Specification of Ports and Port Interfaces ............................................. 89
7.10.4 Runnables and Entry points .................................................................. 93
7.11 Multicore Distribution .................................................................................... 96
7.12 Non functional requirements ......................................................................... 96
8 API specification............................................................................................ 97
8.1 Imported types .............................................................................................. 97
8.1.1 Standard types ...................................................................................... 97
8.2 Type definitions ............................................................................................. 98
8.2.1 ComM_InitStatusType ........................................................................... 98
8.2.2 ComM_PncModeType ........................................................................... 98
8.2.3 ComM_StateType.................................................................................. 99
8.2.4 ComM_ConfigType................................................................................ 99
8.3 Function definitions ..................................................................................... 100
8.3.1 ComM_Init ........................................................................................... 100
8.3.2 ComM_DeInit ....................................................................................... 101
8.3.3 ComM_GetStatus ................................................................................ 101
8.3.4 ComM_GetInhibitionStatus ................................................................. 102
8.3.5 ComM_RequestComMode .................................................................. 103
8.3.6 ComM_GetMaxComMode................................................................... 104
8.3.7 ComM_GetRequestedComMode ........................................................ 105
8.3.8 ComM_GetCurrentComMode ............................................................. 105
8.3.9 ComM_GetCurrentPNCComMode...................................................... 106
8.3.10 ComM_GetPncToChannelMapping .................................................... 108
8.3.11 ComM_UpdatePncToChannelMapping .............................................. 109
8.3.12 ComM_ResetPncToChannelMapping ................................................ 111
8.3.13 ComM_PnLearningRequest ................................................................ 112
8.3.14 ComM_UpdatePncMembership .......................................................... 113
8.3.15 ComM_PreventWakeUp ...................................................................... 114
8.3.16 ComM_LimitChannelToNoComMode ................................................. 115
8.3.17 ComM_LimitECUToNoComMode ....................................................... 116
8.3.18 ComM_ReadInhibitCounter ................................................................. 117
8.3.19 ComM_ResetInhibitCounter ................................................................ 117
8.3.20 ComM_SetECUGroupClassification ................................................... 118
8.3.21 ComM_GetVersionInfo ........................................................................ 119
8.4 Callback notifications .................................................................................. 119
8.4.1 AUTOSAR Network Management Interface ....................................... 119
8.4.2 AUTOSAR Diagnostic Communication Manager Interface ................ 127
8 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

8.4.3 AUTOSAR ECU State Manager Interface .......................................... 128


8.4.4 AUTOSAR ECU State Manager and Basic Software Mode
Manager Interface .............................................................................. 129
8.4.5 Bus State Manager Interface............................................................... 129
8.4.6 COM Interface (OBSOLETE) .............................................................. 131
8.5 Scheduled functions.................................................................................... 131
8.5.1 ComM_MainFunction .......................................................................... 132
8.6 Expected interfaces .................................................................................... 132
8.6.1 Mandatory Interfaces ........................................................................... 132
8.6.2 Optional Interfaces .............................................................................. 135
8.6.3 Configurable Interfaces ....................................................................... 136
8.7 Service Interfaces ....................................................................................... 136
8.7.1 Sender-Receiver-interfaces................................................................. 136
8.7.2 Client-Server-interfaces ....................................................................... 138
8.7.3 Mode-Switch-Interfaces ....................................................................... 147
8.7.4 Implementation Data Types ................................................................ 147
8.7.5 Ports .................................................................................................... 150
8.7.6 ModeDeclarationGroups ..................................................................... 153
9 Sequence diagrams .................................................................................... 154
9.1 Transmission and Reception start (CAN) ................................................... 154
9.2 Passive Wake-up (CAN) ............................................................................. 155
9.3 Network shutdown (CAN) ........................................................................... 156
9.4 Communication request .............................................................................. 158
9.5 Synchronized PNC shutdown ..................................................................... 159
10 Configuration specification .......................................................................... 164
10.1 How to read this chapter ............................................................................. 164
10.2 Containers and configuration parameters .................................................. 165
10.2.1 ComM .................................................................................................. 166
10.2.2 ComMGeneral ..................................................................................... 166
10.2.3 ComMConfigSet .................................................................................. 173
10.2.4 ComMUser........................................................................................... 174
10.2.5 ComMChannel ..................................................................................... 176
10.2.6 ComMNetworkManagement................................................................ 183
10.2.7 ComMUserPerChannel ....................................................................... 185
10.2.8 ComMPnc ............................................................................................ 186
10.2.9 ComMPncComSignal .......................................................................... 189
10.3 Published information ................................................................................. 191
11 Not applicable requirements ....................................................................... 192

9 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

List of Figures
Figure 1: Communication Manager Module context view........................................... 18
Figure 2: PNC State Machine ..................................................................................... 38
Figure 3: PNC-to-channel-mapping ............................................................................ 51
Figure 4: Example for a PNC gateway with not coordinated ComMChannels
(see Node2) ................................................................................................ 52
Figure 5: Example for a partial network (PN) topology that reflect the hierarchy ....... 54
Figure 6: Example for a valid PN with multiple top-level PNC coordinators............... 55
Figure 7: ComM channel state machine ..................................................................... 61
Figure 8: User to Partial network and channel Mapping Use Cases .......................... 74
Figure 9: ARPackage of the Communication Manager Module ................................. 85
Figure 10: SW-C requests state changes to the Communication Manager
Module......................................................................................................... 86
Figure 11: SW-C requires state changes within the Communication Manager
Module and reads out current communication state .................................. 87
Figure 12: Interaction between BswM and the ComM module ................................... 89
Figure 13: Starting transmission and reception on CAN .......................................... 154
Figure 14: Reaction on a wake-up indicated by the ECU State Manager
module....................................................................................................... 155
Figure 15: Network shutdown (CAN) ........................................................................ 157
Figure 16: Request Communication ......................................................................... 158
Figure 17: Request for a synchronized PNC shutdown in the role of a top-level
PNC coordinator (TLPC) ........................................................................... 161
Figure 18: Request to forward a synchronized PNC shutdown in the role of an
intermediate PNC coordinator .................................................................. 163
Figure 19: Configuration ComM ................................................................................ 166
Figure 20: Configuration ComMGeneral ................................................................... 173
Figure 21: Configuration ComMUser ........................................................................ 176
Figure 22: Configuration ComMChannel .................................................................. 182
Figure 23: Configuration ComMNetworkManagement ............................................. 185
Figure 24: Configuration ComMUserPerChannel and ComUserPerPNC ................ 186
Figure 25: Configuration ComMPnc .......................................................................... 189

10 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

1 Introduction and functional overview


The Communication Manager Module (COM Manager, ComM) is a component of the
Basic Software (BSW). It is a Resource Manager, which encapsulates the control of
the underlying communication services. The ComM module controls basic software
modules relating to communication and not software components or runnable
entities. The ComM module collects the bus communication access requests from
communication requestors (see definition of term “User” in Chapter 2) and
coordinates the bus communication access requests.

The purpose of the ComM module is:

Simplifying the usage of the bus communication stack for the user. This includes a
simplified network management handling.

Coordinating the availability of the bus communication stack (allow sending and
receiving of signals) of multiple independent software components on one ECU.

Comment: A user should not have any knowledge about the hardware (e.g. on which
channel to communicate). A user simply requests a "Communication Mode" and
ComM module switches the communication capability of the corresponding channel
on/off.

Offer an API to disable sending of signals to prevent the ECU from (actively) waking
up the communication bus.

Comment: On CAN every message wakes up the bus, on FlexRay it is only possible
to wake up the bus with a so called wake-up pattern.

Controlling of more than one communication bus channel of an ECU by implementing


a channel state machine for every channel.

Comment: The ComM module requests a Communication Mode from the


corresponding Bus State Manager module. The actual bus states are controlled by
the corresponding Bus State Manager module.

Offering the possibility to force an ECU that keeps the bus awake to the ‘No
Communication’ mode (see Section 7.4.1.2 for details).

Simplifying the resource management by allocating all resources necessary for the
requested Communication Mode.

Comment: E.g. check if communication is allowed when a user requests ‘Full


Communication’ mode, and prevent the ECU from shutdown during communication.

Further, the PNC extension allows users to request and keep awake a logical group
of ECUs all over the network, a so-called “partial network cluster”. The “PNC
gateway” allows to span these (logical) network clusters over different, hierarchically
structured physical busses and networks

11 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

2 Acronyms and definitions


Abbreviation / Description:
Acronym:
BSW Basic Software
BswM Basic Software Mode Manager
ComM Communication Manager
DCM Diagnostic Communication Manager
Det Default Error Tracer
EcuM ECU State Manager module
I-PDU Information Protocol Data Unit
NM Network Management
PDU Protocol Data Unit
SW-C Software Component
VMM Vehicle Message Matrix
OA TC10 Open Alliance TC10 specification (see [33])
IRA Internal Request Array. This is a bit vector which contains the aggregated internal
PNC requests per channel. (see also chapter 8.6.2 “Nm_UpdateIRA”)
EIRA External and Internal Request Array. This is a bit vector which contains the
aggregated external and internal PNC requests
ERA External Request Array. This is a bit vector which contains the aggregated
external PNC requests. Each ComMChannel which has a ComMGatewayType set
is has one corresponding ERA
ERAn All External Request Arrays which are available in ComM, i.e. “n” ComMChannels
were ComMGatewayType is set, result in “n” External Request Arrays in ComM

Term: Description:
DCM_ActiveDiagnostic The DCM module indicates an active diagnostic session. DCM need
indication “full communication” = COMM_FULL_COMMUNICATION for diagnostic
purpose
Active wake-up Wake-up caused by the hosting ECU e.g. by a sensor.
Application signal scheduling Sending of application signals according to the VMM. Scheduling of
CAN application signals is performed by the Communication Module,
scheduling of LIN application I-PDUs (a PDU containing signals) is
performed by the LIN interface and scheduling of FlexRay application
PDUs is performed by the FlexRay Interface module.
Bus sleep No activity required on the communication bus (e.g. CAN bus sleep).
Bus communication Bus communication messages are all messages that are sent on the
messages communication bus. This can be either a diagnostic message or an
application message.
COM Inhibition status Defines whether full communication, silent communication or wake-
up is allowed or not.
Communication Channel The medium used to convey information from a sender (or
transmitter) to a receiver.
Communication Mode Mode determining which kind of communication are allowed:
“full communication” = COMM_FULL_COMMUNICATION
“no communication” = COMM_NO_COMMUNICATION
“silent communication” = COMM_SILENT_COMMUNICATION
Note: COMM_SILENT_COMMUNICATION can not be requested by a
user. Internal mode for synchronizing network at shutdown
Diagnostic PDU scheduling Sending of diagnostic PDUs. Scheduling of CAN diagnostic PDUs is
performed by the diagnostic module, scheduling of LIN diagnostic
PDUs is performed by the diagnostic module and the LIN interface
and scheduling of FlexRay diagnostic PDUs is performed by the
diagnostic module and the FlexRay Interface module.
ECU shut down See ECU State Manager specification [6].
Fan-out Same message/indication are sent to multiple destinations/receivers
12 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Independent software A separately developed software component performing a coherent


component set of functions with a minimum amount of interfaces to other
software applications on an ECU. This can be e.g. a basic software
component or an application software component.
Passive wake-up Wake-up by another ECU and propagated (e.g. by bus or wake-up-
line) to the ECU currently in focus.
System User An administration functionality (a specific "user", which is generated
within the internal context of the ComM) for making a default request
and for overriding the user requests.
User Concept for requestors of the ECU State Manager module and of the
Communication Manager Module. A user may be the BswM, a
runnable entity, a SW-C or a group of SW-Cs, which act as a single
unit towards the ECU State Manager module and the Communication
Manager Module.
User Request A User can request different Communication Modes from ComM
Managed channel A ComM channel that is referenced exclusively from one other
channel by ECUC parameter ComMManageReference (see
ECUC_ComM_00893).
Managing channel A ComM channel that references 1..n other channels by ECUC
parameter ComMManageReference (see ECUC_ComM_00893).

13 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

3 Related documentation

3.1 Input documents

[1] List of Basic Software Modules


AUTOSAR_TR_BSWModuleList.pdf

[2] Layered Software Architecture


AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf

[3] General Requirements on Basic Software Modules


AUTOSAR_SRS_BSWGeneral.pdf

[4] Requirements on Mode Management


AUTOSAR_SRS_ModeManagement.pdf

[5] Specification of ECU Configuration


AUTOSAR_TPS_ECUConfiguration.pdf

[6] Specification of ECU State Manager


AUTOSAR_SWS_ECUStateManager.pdf

[7] Specification of NVRAM Manager


AUTOSAR_SWS_NVRAMManager.pdf

[8] Specification of RTE Software


AUTOSAR_SWS_RTE.pdf

[9] Specification of Generic Network Management Interface


AUTOSAR_SWS_NetworkManagementInterface.pdf

[11] Specification of Diagnostic Communication Manager


AUTOSAR_SWS_DiagnosticCommunicationManager.pdf

[12] Specification of LIN Interface


AUTOSAR_SWS_LINInterface.pdf

[13] Specification of FlexRay Interface


AUTOSAR_SWS_FlexRayInterface.pdf

[14] Specification of Default Error Tracer


AUTOSAR_SWS_DefaultErrorTracer.pdf

[16] Specification of CAN Transceiver Driver


AUTOSAR_SWS_CANTransceiverDriver.pdf

[17] Specification of CAN Interface


AUTOSAR_SWS_CANInterface.pdf
14 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

[18] Specification of FlexRay Transceiver Driver


AUTOSAR_SWS_FlexRayTransceiver.pdf

[19] Specification of PDU Router


AUTOSAR_SWS_PDURouter.pdf

[20] Requirements on IPDU Multiplexer


AUTOSAR_SWS_IPDUM.pdf

[21] Specification of System Services Mode Management


AUTOSAR_SystemServices_ModeManagement.pdf

[22] Specification of C Implementation Rules


AUTOSAR_Tr_CImplementationRules.pdf

[23] Specification of LIN State Manager


AUTOSAR_SWS_LINStateManager.pdf

[24] Specification of CAN State Manager


AUTOSAR_SWS_CANStateManager.pdf

[25] Specification of FlexRay State Manager


AUTOSAR_SWS_FlexRayStateManager.pdf

[26] Basic Software Module Description Template,


AUTOSAR_TPS_BSWModuleDescriptionTemplate.pdf

[27] Glossary,
AUTOSAR_TR_Glossary.pdf

[28] Specification of Ethernet State Manager


AUTOSAR_SWS_EthernetStateManager.pdf

[29] Specification of Basic Software Mode Manager


AUTOSAR_SWS_BSWModeManager.pdf

[30] General Specification of Basic Software Modules


AUTOSAR_SWS_BSWGeneral.pdf

[31] Specification of System Template


AUTOSAR_TPS_SystemTemplate

[32] Specification of Guide to BSW Distribution


AUTOSAR_EXP_BSWDistributionGuide

15 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

3.2 Related standards and norms


[33] OPEN ALIANCE Sleep/Wake-up Specification Version 2.0 (Rel Feb 21, 2017),
http://www.opensig.org/Automotive-Ethernet-Specifications/

3.3 Related specification

AUTOSAR provides a General Specification on Basic Software modules [30] (SWS


BSW General), which is also valid for COM Manager.

Thus, the specification SWS BSW General shall be considered as additional and
required specification for COM Manager.

16 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

4 Constraints and assumptions

4.1 Limitations
No limitations.

4.2 Applicability to car domains


No restrictions.

17 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

5 Dependencies to other modules


A context view which shows the Communication Manager Module and the
dependencies to other modules is shown in Figure 1:

«module» «module» «module» «module» «module»


SchM Rte Det Dcm NvM

«realize» «realize»
«use» «use» «realize» «realize»
«realize»
ResourceManager
«mandatory»
Rte Det_ReportError NvM_ReadBlock
Dcm_ComM
NvM_WriteBlock

ComM_Types ComM_Dcm
«use» «use» «mandatory» «mandatory» «mandatory»
«realize»
«realize»

«module»
ComM
«realize»

ComM_EcuM

«use»

«module»
«use» «realize» BswM
BswM_RequestMode
«use»
«use» «use» «realize»

«realize»

ComM_BusSM_ModeIndication
obsolete
Nm ComM_COMCbk_<sn>

FrSM_MainFunction_<FrSMCluster.ShortName>

EthSM_RequestComMode CanSM_ComM LinSm «realize» «use»


«realize» «mandatory» «mandatory»
«mandatory» «realize» «mandatory»
«realize» «realize»

«module» «module» «module» «module» «module» «module»


EthSM FrSm CanSM LinSM Nm Com

Figure 1: Communication Manager Module context view

The Communication Manager Module requests the communication capabilities,


requested from the users, from the Bus State Manager modules.

5.1 File structure

5.2 AUTOSAR Runtime Environment (RTE)


Every user can request a Communication Mode. The RTE propagates the user
request to the ComM module and the Communication Mode indications from the
ComM to the users (for details refer to [8]).

5.3 ECU State Manager (EcuM)


EcuM is responsible to validate wake-up events and send an indication to ComM if a
wake-up is validated.
Communication allowed and shutdown of ECU is handled by EcuM together with
BswM. (see [6] for details)

18 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

5.4 Basic Software Mode Manager (BswM)


The BswM realizes two functionalities Mode Arbitration and Mode Control to allow
the application of an Application Mode Management and a Vehicle Mode
Management.
The BswM propagates user requests to the ComM module, if configured in the action
lists of BswM to be able to request ComM modes via BswM.
The BswM controls the PDU Groups in the AUTOSAR Communication Module
(COM), if the call of Com_IpduGroupControl is configured in the action list.
[SWS_ComM_00976] ⌈ComM indicates all channel main state changes and all PNC
state changes to the BswM.⌋(SRS_ModeMgm_09251)
If EcuM-Flex is used, BswM will indicate to ComM if communication is allowed or not.

5.5 NVRAM Manager


The ComM module uses the NVRAM Manager to store and read non-volatile data.
For details on initial values of the NVRAM data refer to Chapter 10.

Comment: The NVRAM Manager must be initialized after a power up or reset of the
ECU. It must be initialized before ComM, as when ComM is initialized, ComM
assumes that NVRAM is ready to be used, and that it can read back non-volatile
configuration data. When ComM is de-initialized, it writes non-volatile data to
NVRAM.

5.6 Diagnostic Communication Manager (DCM)


The DCM performs the scheduling of diagnostic PDUs. The DCM acts as a user by
requesting Communication Mode COMM_FULL_COMMUNICATION via a
“DCM_ActiveDiagnostic” indication if diagnostics shall be performed. The DCM does
not provide an API to start/stop sending and receiving but guarantees that the
communication capabilities are according to the ComM module Communication
Modes.

5.7 LIN State Manager


The LIN State Manager controls the actual states of the LIN bus that correspond to a
Communication Mode of the ComM module. The ComM module requests a
Communication Mode from the LIN State Manager and the LIN State Manager maps
the Communication Mode to a bus state.

19 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

5.8 CAN State Manager


The CAN State Manager controls the actual states of the CAN bus that correspond to
a Communication Mode of the ComM module. The ComM module requests a
Communication Mode from the CAN State Manager and the CAN State Manager
maps the Communication Mode to a bus state.

5.9 FlexRay State Manager


The FlexRay State Manager controls the actual states of the FlexRay bus that
correspond to a Communication Mode of the ComM module. The ComM module
requests a Communication Mode from the FlexRay State Manager and the FlexRay
State Manager maps the Communication Mode to a bus state.

5.10 Ethernet State Manager


The Ethernet State Manager controls the actual states of the Ethernet bus that
correspond to a Communication Mode of the ComM module. The ComM module
requests a Communication Mode from the Ethernet State Manager and the Ethernet
State Manager maps the Communication Mode to a bus state.

5.11 Network Management (NM)


The ComM module uses the NM to synchronize the control of communication
capabilities across the network (synchronous start-up and shutdown). Additionally the
status information about PNCs is exchanges via dedicated APIs between ComM and
Nm.

5.12 Default Error Tracer (DET)


The DET provides services for reporting development, runtime, and transient errors.
(see Section 7.9)

5.13 Communication (COM) – {OBSOLETE}


[SWS_ComM_00975] {OBSOLETE} ⌈The AUTOSAR Communication module
(COM) shall be used to distribute the status information about PNCs using COM
signals.⌋()

20 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

6 Requirements traceability

Requirement Description Satisfied by


SRS_BSW_00004 All Basic SW Modules SWS_ComM_00418
shall perform a pre-
processor check of the
versions of all imported
include files
SRS_BSW_00005 Modules of the µC SWS_ComM_00499
Abstraction Layer
(MCAL) may not have
hard coded horizontal
interfaces
SRS_BSW_00009 All Basic SW Modules SWS_ComM_00499
shall be documented
according to a common
standard.
SRS_BSW_00010 The memory SWS_ComM_00499
consumption of all Basic
SW Modules shall be
documented for a
defined configuration for
all supported platforms.
SRS_BSW_00101 The Basic Software SWS_ComM_00146
Module shall be able to
initialize variables and
hardware in a separate
initialization function
SRS_BSW_00158 - SWS_ComM_00464
SRS_BSW_00161 The AUTOSAR Basic SWS_ComM_00499
Software shall provide a
microcontroller
abstraction layer which
provides a standardized
interface to higher
software layers
SRS_BSW_00162 The AUTOSAR Basic SWS_ComM_00499
Software shall provide a
hardware abstraction
layer
SRS_BSW_00164 The Implementation of SWS_ComM_00499
interrupt service
routines shall be done
by the Operating
System, complex
drivers or modules
SRS_BSW_00167 All AUTOSAR Basic SWS_ComM_00419
Software Modules shall
provide configuration
rules and constraints to
enable plausibility
checks

21 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

SRS_BSW_00168 SW components shall SWS_ComM_00499


be tested by a function
defined in a common
API in the Basis-SW
SRS_BSW_00170 The AUTOSAR SW SWS_ComM_00499
Components shall
provide information
about their dependency
from faults, signal
qualities, driver
demands
SRS_BSW_00314 All internal driver SWS_ComM_00499
modules shall separate
the interrupt frame
definition from the
service routine
SRS_BSW_00323 All AUTOSAR Basic SWS_ComM_00234
Software Modules shall
check passed API
parameters for validity
SRS_BSW_00325 The runtime of interrupt SWS_ComM_00499
service routines and
functions that are
running in interrupt
context shall be kept
short
SRS_BSW_00327 Error values naming SWS_ComM_00234
convention
SRS_BSW_00336 Basic SW module shall SWS_ComM_00147
be able to shutdown
SRS_BSW_00337 Classification of SWS_ComM_00234
development errors
SRS_BSW_00341 Module documentation SWS_ComM_00499
shall contains all
needed informations
SRS_BSW_00342 It shall be possible to SWS_ComM_00459
create an AUTOSAR
ECU out of modules
provided as source
code and modules
provided as object code,
even mixed
SRS_BSW_00343 The unit of time for SWS_ComM_00499
specification and
configuration of Basic
SW modules shall be
preferably in physical
time unit
SRS_BSW_00344 BSW Modules shall SWS_ComM_00499
support link-time
configuration
SRS_BSW_00348 All AUTOSAR standard SWS_ComM_00820
types and constants

22 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

shall be placed and


organized in a standard
type header file
SRS_BSW_00353 All integer type SWS_ComM_00499
definitions of target and
compiler specific scope
shall be placed and
organized in a single
type header
SRS_BSW_00357 For success/failure of SWS_ComM_00820
an API call a standard
return type shall be
defined
SRS_BSW_00358 The return type of init() SWS_ComM_00146
functions implemented
by AUTOSAR Basic
Software Modules shall
be void
SRS_BSW_00361 All mappings of not SWS_ComM_00499
standardized keywords
of compiler specific
scope shall be placed
and organized in a
compiler specific type
and keyword header
SRS_BSW_00373 The main processing SWS_ComM_00429
function of each
AUTOSAR Basic
Software Module shall
be named according the
defined convention
SRS_BSW_00375 Basic Software Modules SWS_ComM_00499
shall report wake-up
reasons
SRS_BSW_00378 AUTOSAR shall provide SWS_ComM_00499
a boolean type
SRS_BSW_00385 List possible error SWS_ComM_00234
notifications
SRS_BSW_00386 The BSW shall specify SWS_ComM_00234
the configuration for
detecting an error
SRS_BSW_00398 The link-time SWS_ComM_00499
configuration is
achieved on object code
basis in the stage after
compiling and before
linking
SRS_BSW_00404 BSW Modules shall SWS_ComM_00499
support post-build
configuration
SRS_BSW_00405 BSW Modules shall SWS_ComM_00499
support multiple
configuration sets

23 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

SRS_BSW_00406 A static status variable SWS_ComM_00242, SWS_ComM_00612,


denoting if a BSW SWS_ComM_00858
module is initialized
shall be initialized with
value 0 before any APIs
of the BSW module is
called
SRS_BSW_00407 Each BSW module shall SWS_ComM_00370
provide a function to
read out the version
information of a
dedicated module
implementation
SRS_BSW_00413 An index-based SWS_ComM_00499
accessing of the
instances of BSW
modules shall be done
SRS_BSW_00414 Init functions shall have SWS_ComM_00146
a pointer to a
configuration structure
as single parameter
SRS_BSW_00416 The sequence of SWS_ComM_00499
modules to be initialized
shall be configurable
SRS_BSW_00417 Software which is not SWS_ComM_00499
part of the SW-C shall
report error events only
after the DEM is fully
operational.
SRS_BSW_00422 Pre-de-bouncing of SWS_ComM_00499
error status information
is done within the DEM
SRS_BSW_00423 BSW modules with SWS_ComM_00499
AUTOSAR interfaces
shall be describable
with the means of the
SW-C Template
SRS_BSW_00424 BSW module main SWS_ComM_00499
processing functions
shall not be allowed to
enter a wait state
SRS_BSW_00425 The BSW module SWS_ComM_00499
description template
shall provide means to
model the defined
trigger conditions of
schedulable objects
SRS_BSW_00426 BSW Modules shall SWS_ComM_00499
ensure data consistency
of data which is shared
between BSW modules
SRS_BSW_00427 ISR functions shall be SWS_ComM_00499
defined and
documented in the BSW
24 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

module description
template
SRS_BSW_00428 A BSW module shall SWS_ComM_00499
state if its main
processing function(s)
has to be executed in a
specific order or
sequence
SRS_BSW_00429 Access to OS is SWS_ComM_00499
restricted
SRS_BSW_00432 Modules should have SWS_ComM_00499
separate main
processing functions for
read/receive and
write/transmit data path
SRS_BSW_00433 Main processing SWS_ComM_00499
functions are only
allowed to be called
from task bodies
provided by the BSW
Scheduler
SRS_BSW_00437 Memory mapping shall SWS_ComM_00499
provide the possibility to
define RAM segments
which are not to be
initialized during startup
SRS_BSW_00438 Configuration data shall SWS_ComM_00499
be defined in a structure
SRS_BSW_00439 Enable BSW modules to SWS_ComM_00499
handle interrupts
SRS_BSW_00441 Naming convention for SWS_ComM_00863
type, macro and
function
SRS_BSW_00459 It shall be possible to SWS_ComM_01019, SWS_ComM_01020,
concurrently execute a SWS_ComM_01021, SWS_ComM_01059
service offered by a
BSW module in different
partitions
SRS_ModeMgm_00049 The Communication SWS_ComM_00869, SWS_ComM_00870,
Manager shall initiate SWS_ComM_00929, SWS_ComM_01069,
the wake-up and keep SWS_ComM_01071, SWS_ComM_01086
awake physical
channels
SRS_ModeMgm_09071 It shall be possible to SWS_ComM_00066, SWS_ComM_00215,
limit communication SWS_ComM_00303, SWS_ComM_00355,
modes independently SWS_ComM_00740, SWS_ComM_00744,
for each physical SWS_ComM_00745, SWS_ComM_00752,
channel SWS_ComM_00800, SWS_ComM_00801,
SWS_ComM_00842
SRS_ModeMgm_09078 The Communication SWS_ComM_00582, SWS_ComM_00686,
Manager shall SWS_ComM_00736, SWS_ComM_00744,
coordinate multiple SWS_ComM_00745, SWS_ComM_00848
communication requests

25 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

SRS_ModeMgm_09080 Each physical channel SWS_ComM_00051, SWS_ComM_00744,


shall be controlled by an SWS_ComM_00745
independent
communication mode
SRS_ModeMgm_09081 The Communication SWS_ComM_00110
Manager shall provide
an API allowing
collecting
communication requests
SRS_ModeMgm_09083 The Communication SWS_ComM_00485, SWS_ComM_00845,
Manager shall support SWS_ComM_00846, SWS_ComM_00866,
two communication SWS_ComM_00867, SWS_ComM_00868,
modes for each physical SWS_ComM_00879, SWS_ComM_00880,
channel SWS_ComM_00881, SWS_ComM_00897
SRS_ModeMgm_09084 The Communication SWS_ComM_00083, SWS_ComM_00734,
Manager shall provide SWS_ComM_00744, SWS_ComM_00745
an API which allows
application to query the
current communication
mode
SRS_ModeMgm_09085 The Communication SWS_ComM_00091, SWS_ComM_00472,
Manager shall provide SWS_ComM_00663, SWS_ComM_00733,
an indication of SWS_ComM_00778, SWS_ComM_00847
communication mode
changes
SRS_ModeMgm_09087 The Minimum duration SWS_ComM_00893, SWS_ComM_00894
of communication
request after wakeup
shall be configurable
SRS_ModeMgm_09089 The Communication SWS_ComM_00157, SWS_ComM_00302,
Manager shall be able SWS_ComM_00747, SWS_ComM_00799
to prevent waking up
physical channels
SRS_ModeMgm_09090 Relationship between SWS_ComM_00662, SWS_ComM_00795,
users and physical SWS_ComM_00796, SWS_ComM_00798,
channels shall be SWS_ComM_00995, SWS_ComM_01025
configurable at pre
compile time
SRS_ModeMgm_09132 It shall be possible to SWS_ComM_00288, SWS_ComM_00599,
assign Network SWS_ComM_00602, SWS_ComM_00667
Management to physical
channels
SRS_ModeMgm_09133 It shall be possible to SWS_ComM_00995
assign physical
channels to the
Communication
Manager
SRS_ModeMgm_09149 The Communication SWS_ComM_00079, SWS_ComM_00374,
Manager shall provide SWS_ComM_00744, SWS_ComM_00745,
an API for querying the SWS_ComM_01022, SWS_ComM_01023,
requested SWS_ComM_01024
communication mode
SRS_ModeMgm_09155 The Communication SWS_ComM_00138, SWS_ComM_00140,
Manager shall provide a SWS_ComM_00141, SWS_ComM_00142,
26 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

counter for inhibited SWS_ComM_00625, SWS_ComM_00803,


communication requests SWS_ComM_00962
SRS_ModeMgm_09156 It shall be provided an SWS_ComM_00108, SWS_ComM_00143,
API to retrieve the SWS_ComM_00224, SWS_ComM_00802
number of inhibited "Full
Communication" mode
requests
SRS_ModeMgm_09157 It shall be possible to SWS_ComM_00124, SWS_ComM_00156,
revoke a communication SWS_ComM_00163, SWS_ComM_00744,
mode limitation, SWS_ComM_00745
independently for each
physical channel
SRS_ModeMgm_09168 The Communication SWS_ComM_00664, SWS_ComM_00744,
Manager shall support SWS_ComM_00745
users that are
connected to no
physical channel
SRS_ModeMgm_09172 It shall be possible to SWS_ComM_00176, SWS_ComM_00744,
evaluate the current SWS_ComM_00745
communication mode
SRS_ModeMgm_09207 ComM shall allow for SWS_ComM_00957
additional bus specific
state managers
SRS_ModeMgm_09243 The Communication SWS_ComM_00825, SWS_ComM_00827,
Manager shall be able SWS_ComM_00910, SWS_ComM_00911,
to handle the Partial SWS_ComM_00926, SWS_ComM_00953,
Networks on Flexray, SWS_ComM_00979, SWS_ComM_00980,
CAN and Ethernet SWS_ComM_00982, SWS_ComM_00987,
SWS_ComM_01077, SWS_ComM_01080
SRS_ModeMgm_09246 The communication SWS_ComM_00151, SWS_ComM_00500,
manager shall arbitrate SWS_ComM_00827, SWS_ComM_00877,
and coordinate requests SWS_ComM_00932, SWS_ComM_00948,
from users on physical SWS_ComM_00972, SWS_ComM_00991,
channel and users on SWS_ComM_01025, SWS_ComM_01075,
PNCs SWS_ComM_01087, SWS_ComM_01088
SRS_ModeMgm_09247 For each configured SWS_ComM_00907, SWS_ComM_00909,
PNC an independent SWS_ComM_00920, SWS_ComM_00924,
state machine shall be SWS_ComM_00978, SWS_ComM_01087,
instantiated SWS_ComM_01088
SRS_ModeMgm_09248 it shall be possible to SWS_ComM_00694, SWS_ComM_00940,
distinguish between SWS_ComM_01014, SWS_ComM_01015,
internal and external SWS_ComM_01060, SWS_ComM_01061,
PNC activation requests SWS_ComM_01062, SWS_ComM_01065,
SWS_ComM_01068, SWS_ComM_01072,
SWS_ComM_01085, SWS_ComM_01087,
SWS_ComM_01088, SWS_ComM_01089,
SWS_ComM_91028, SWS_ComM_91029
SRS_ModeMgm_09250 PNC activation requests SWS_ComM_01060, SWS_ComM_01061,
shall be exchanged with SWS_ComM_01062, SWS_ComM_01079,
the Network SWS_ComM_01080, SWS_ComM_01081,
Management via a PNC SWS_ComM_01085, SWS_ComM_01092,
bit vector SWS_ComM_01093, SWS_ComM_91028,
SWS_ComM_91029
SRS_ModeMgm_09251 PNC communication SWS_ComM_00908, SWS_ComM_00976
27 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

state shall be forwarded


to the BswM
SRS_ModeMgm_09256 PNC Gateway SWS_ComM_01073, SWS_ComM_01074,
Functionality shall SWS_ComM_01076, SWS_ComM_01077,
consider systems with SWS_ComM_01078, SWS_ComM_01079,
more than one SWS_ComM_01080, SWS_ComM_01081,
gateways connected to SWS_ComM_01084
the same network
SRS_ModeMgm_09257 ComM shall forward SWS_ComM_01066
PNC-Clusters also to
busses that are
currently not awake
SRS_ModeMgm_09258 Optional Dynamic SWS_ComM_01034, SWS_ComM_01037,
Extension of PNC SWS_ComM_01041, SWS_ComM_01044,
Gateway SWS_ComM_01047, SWS_ComM_01091
SRS_ModeMgm_09259 ComM API shall provide SWS_ComM_01035, SWS_ComM_01036,
interfaces to access SWS_ComM_01038, SWS_ComM_01039,
PNC Mapping (optional) SWS_ComM_01040, SWS_ComM_01042,
SWS_ComM_01043, SWS_ComM_91013,
SWS_ComM_91015, SWS_ComM_91017,
SWS_ComM_91102, SWS_ComM_91105,
SWS_ComM_91107
SRS_ModeMgm_09260 ComM API shall provide SWS_ComM_01026, SWS_ComM_01045,
an interface to start SWS_ComM_01046, SWS_ComM_01048,
PNC Learning SWS_ComM_01049, SWS_ComM_01058,
mechanism for PNC SWS_ComM_91019, SWS_ComM_91101,
Mapping (optional) SWS_ComM_91106
SRS_ModeMgm_09261 ComM shall forward the SWS_ComM_01028, SWS_ComM_01090,
information for Partial SWS_ComM_01093, SWS_ComM_91026
Networking Learning
(optional)
SRS_ModeMgm_09262 ComM shall set all its SWS_ComM_01092
assigned PNCs when
partial networking
learning is requested
(optional)
SRS_ModeMgm_09263 ComM API shall provide SWS_ComM_91021, SWS_ComM_91100
an interface to set PNC-
membership on Host-
ECU (optional)
SRS_ModeMgm_09265 ComM shall send the SWS_ComM_01029, SWS_ComM_91024
information for Partial
Networking Learning
(optional)
SRS_ModeMgm_09266 ComM shall support SWS_ComM_01017, SWS_ComM_01018,
communication SWS_ComM_CONSTR_00003
channels that act as
communication slaves
with wake-up capability
SRS_ModeMgm_09267 ComM shall support SWS_ComM_00915, SWS_ComM_01018
communication
channels which act as
communication slaves
without wake-up
28 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

capability
SRS_ModeMgm_09268 ComM shall support the SWS_ComM_00069, SWS_ComM_01056,
possibility to forward the SWS_ComM_01057, SWS_ComM_01067,
information if the SWS_ComM_01070, SWS_ComM_01071
communication request
is active or passive to
it's lower layer layer
SRS_ModeMgm_09269 The Communication SWS_ComM_01051, SWS_ComM_01082,
Manager shall support SWS_ComM_01083, SWS_ComM_91003,
synchronized PNC SWS_ComM_91030
shutdown
SRS_ModeMgm_09270 The ECU State SWS_ComM_00991, SWS_ComM_01066,
Manager shall provide a SWS_ComM_01072, SWS_ComM_01073,
service for the selection SWS_ComM_01074, SWS_ComM_01075,
of the shutdown target SWS_ComM_01076, SWS_ComM_01077,
SWS_ComM_01078, SWS_ComM_01079,
SWS_ComM_01080, SWS_ComM_01081,
SWS_ComM_01084
SRS_ModeMgm_09278 The Communication SWS_ComM_00990, SWS_ComM_01063,
Manager shall support SWS_ComM_01064
synchronous and
asynchronous request
upon a indicated
wakeup
SRS_ModeMgm_09279 The Communication SWS_ComM_00947, SWS_ComM_00952
Manager shall support a
coordinated release of
PNCs
SRS_ModeMgm_09280 The Communication SWS_ComM_01083
Manager shall support
to act as a top-level
PNC coordinator per
PNC

29 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

7 Functional specification

The Communication Manager (ComM) module simplifies the resource management


for the users, whereat users may be runnable entities, SW-Cs, the BswM (e.g. SW-C
request via BswM) or DCM (communication needed to diagnostic purpose).

[SWS_ComM_00867] ⌈The ComM shall provide three different Communication


Modes. The highest Communication Mode shall be COMM_FULL_COMMUNICATION.
The lowest Communication Mode shall be
COMM_NO_COMMUNICATION.⌋(SRS_ModeMgm_09083)

[SWS_ComM_00151] ⌈For a user it shall only be possible to request the


Communication Modes COMM_NO_COMMUNICATION and
COMM_FULL_COMMUNICATION (see ComM_RequestComMode(),
SWS_ComM_00110).⌋(SRS_ModeMgm_09246)

Rationale for SWS_ComM_00151:


1. The Communication Mode COMM_SILENT_COMMUNICATION and sub-
modes/sub-states are only necessary for synchronization with AUTOSAR
NM.
2. The Communication Mode
COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST is only
necessary to request the lower layer to trigger a wake-up on the network
(e.g. Ethernet hardware compliant to OA TC10 [see 33]). This mode could not
be requested by a user.

[SWS_ComM_00868] ⌈The Communication Mode COMM_SILENT_COMMUNICATION


shall only be used for network synchronization.⌋(SRS_ModeMgm_09083)

Note: The possibility to request COMM_SILENT_COMMUNICATION mode is removed


since release 2.0.

Comment:
 The ComM module allows querying the Communication Mode requested by a
particular user (see ComM_GetRequestedComMode(), SWS_ComM_00079).
 The ComM module allows querying the actual Communication Mode of a
channel if the user is assigned to channel(see
ComM_GetCurrentComMode(), SWS_ComM_00083)
 The ComM module allows querying for the current PNC mode if the user is
assigned to a PNC (see ComM_GetCurrentPNCComMode(),
SWS_ComM_91002)

[SWS_ComM_00845] ⌈In COMM_FULL_COMMUNICATION mode, the ComM module


shall allow transmission and reception on the affected physical
channel.⌋(SRS_ModeMgm_09083)

30 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_00846] ⌈In COMM_NO_COMMUNICATION mode, the ComM module


shall prevent transmission and reception on the affected physical
channel.⌋(SRS_ModeMgm_09083)

[SWS_ComM_00686] ⌈If at least one of multiple independent user requests


demands a higher Communication Mode (see SWS_ComM_00867 and
SWS_ComM_00868), the ComM module shall set this higher Communication Mode
as the target Communication Mode.⌋(SRS_ModeMgm_09078)

Rationale for SWS_ComM_00686: ComM coordinates multiple independent user


requests according to the "highest wins" strategy: COMM_FULL_COMMUNICATION
Communication Mode overrules COMM_NO_COMMUNICATION.

[SWS_ComM_00500] ⌈The ComM module shall not queue user requests. The latest
user request of the same user shall overwrite an old user request even if the request
is not finished.⌋(SRS_ModeMgm_09246)

[SWS_ComM_00866] ⌈If configuration parameter


ComMNmVariant=FULL|LIGHT|NONE (ECUC_ComM_00568), an
DCM_ActiveDiagnostic indication shall be treated as a
COMM_FULL_COMMUNICATION request for the specified communication channel (see
ComM_DCM_ActiveDiagnostic(channel),
SWS_ComM_00873).⌋(SRS_ModeMgm_09083)

Rationale for SWS_ComM_00866: If more channels needed for diagnostic purpose,


DCM needs to indicate DCM_ActiveDiagnostic for each channel.

[SWS_ComM_00092] ⌈There shall be one Communication Mode target state


(evaluated according to SWS_ComM_00686) per communication channel. This
target mode can differ temporarily from the actual mode controlled by the
corresponding Bus State Manager module.⌋()

Comment: Mode switching by the corresponding Bus State Manager module takes
time and a mode inhibition can be active.

[SWS_ComM_00084] ⌈The ComM module shall propagate a call of


ComM_GetCurrentComMode() (see SWS_ComM_00083) to the Bus State
Manager module(s) for the channel(s) the user are configured to (see also
SWS_ComM_00176 and SWS_ComM_00798)⌋()

Rationale for SWS_ComM_00084: State requests have to be propagated to the


corresponding Bus State Manager module since the ComM module does not control
the actual bus state.

Comment: This feature is not used by a "normal SW-C" because they don't have
knowledge about channels. This feature is necessary for privileged SW-Cs, which
(have to) know about the system topology, e.g. system diagnostic functions.

[SWS_ComM_00884] ⌈The ComM module shall store status if communication for a


channel is allowed or not allowed in separate CommunicationAllowed boolean
31 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

flags for all supported channels. The default value after ComM initialization shall be
communication is not allowed, i.e. CommunicationAllowed is set to FALSE.⌋()

[SWS_ComM_00885] ⌈Status changes for communication allowed or not allowed in


SWS_ComM_00884 shall be provided to ComM in
ComM_CommunicationAllowed(<channel>,
TRUE|FALSE)(SWS_ComM_00871) indications.⌋()

32 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

7.1 Partial Network Cluster Management


The ComM offers users the option to wake and keep awake so-called “partial
network cluster” (PNC). A PNC is a (logical) group of ECUs which have to be active
at the same time to realize some distributed functionality. If PNC-enabled gateways
are used, a PNC can span the whole network (different busses on different topology
levels of the network hierarchy). Without the PN functionality, NM messages can only
wake and keep awake whole busses.

7.1.1 Overview

ComM implements a state machine for each partial network cluster (PNC) to
represent the communication mode of a PNC.
Each PNC has its own state. The state definitions are related to the states of ComM
for a simple mapping.
ComM users are used to request and release the PNCs.
The status of all PNCs on the nodes of a system channel is exchanged within the so-
called PNC bit vector via a network management message (NM message).
Each PNC uses a dedicated bit position within a bit vector (PNC bit vector)
transferred by a NM message on CAN, FlexRay and Ethernet. If a PNC is requested
by a local ComM user on the node, the node sets the corresponding PNC bit in the
PNC bit vector to 1. If the PNC is not requested anymore; the node sets the
corresponding PNC bit in the PNC bit vector to 0. (Please note: If the optional feature
“Synchronized PNC shutdown” is used (see chapter 7.1.4.4) and a PN shutdown
messages has to be transmitted, the PNC bits are set to 1 for the PNCs which are
released and the remaining PNC bits are set to 0). The <Bus>Nm extract the PNC bit
vector from a received NM-PDU and forward the PNC bit vector to the NM interface.
The NM collect and aggregate PNC requests. Based on the aggregated PNC
requests, the NM interface handle the timer for each PNC and provide the
aggregated PNC state to ComM via dedicated APIs.
Each PNC uses the same bit position in the PNC bit vector on every system channel
within the NM message. ComM uses 3 types of PNC bit vector named EIRA, ERA
and IRA to exchange PNC status information with NM interface and <Bus>Nms. The
definition of “EIRA” and “ERA” are located in the AUTOSAR SWS CAN NM,
AUTOSAR SWS FlexRay NM and AUTOSAR SWS UDP NM. For definition of “IRA”
please refer to chapter 2.
ComM requests and releases the system communication bus channels needed for a
PNC on a node.
Enabling or disabling the partial network cluster management in the node shall be
post-build configurable.
Partial networking is supported on the bus types CAN, FlexRay and Ethernet.
Activation and deactivation of the I-PDU groups of the PNCs on a Can, FlexRay and
Ethernet node is required to avoid false timeouts. Starting and Stopping of I-PDU

33 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

groups in COM are handled in BswM. Deactivation of single FlexRay ECUs is not
possible.

7.1.2 Partial Network Cluster Management Functionality

[SWS_ComM_00910] ⌈PNC functionality shall only exist if the parameter


ComMPncSupport is set to TRUE. (see
ECUC_ComM_00839).⌋(SRS_ModeMgm_09243)

[SWS_ComM_00911] ⌈Enabling or disabling of the PNC functionality shall be post-


build configurable using the parameter ComMPncEnabled (see
ECUC_ComM_00878).⌋(SRS_ModeMgm_09243)

Comment: The ComM module notifies the BswM about every state change of the
PNC state machine by calling BswM_ComM_CurrentPncMode(). (refer to
SWS_ComM_00908)

[SWS_ComM_00982] ⌈ For exchanging PNC status information between ComM and


Nm, bit vectors shall be used. The PNC bit vector is named “PN info” and contain a
maximum of 504 bits.⌋(SRS_ModeMgm_09243)

Comment: The PNC bit vector is provided as a reference to an array of type uint8
to the ComM within the dedicated APIs. Each bit in the PNC bit vector represents the
status of a particular PNC. The bit is called “PNC bit”.

[SWS_ComM_00825] ⌈ The byteIndex and bitIndex, in which a PNC bit


corresponding to one ComMPncId resides, shall be determined as follows:
 byteIndex=(ComMPncId div 8) - <PNC Vector Offset>
 bitIndex=(ComMPncId mod 8)⌋(SRS_ModeMgm_09243)

Hint: The value of the PNC bit vector length of the corresponding channel can
be obtained from the configuration of the Network Management module.
Comment: SWS_ComM_00825 defines only the calculation of the byteIndex and
bitIndex, not how it shall be implemented.

[SWS_ComM_00984] {OBSOLETE replaced by [SWS_ComM_01060]} ⌈ComM


receives the bit vectors (signals) which can be ComMPncComSignalKind EIRA or
ERA using Com_ReceiveSignal().⌋()

[SWS_ComM_00986] {OBSOLETE replaced by [SWS_ComM_01061]} ⌈The


ComM shall provide the API ComM_COMCbk_<sn>() to indicate a change of
signal(s) within the module communication.⌋()

[SWS_ComM_00916] {OBSOLETE replaced by [SWS_ComM_01062]} ⌈The


ComM module shall be able to distribute the status of a PNC (result of the PNC state
machine) via one or more communications busses using one or more COM signals
,as a bit vector, containing a bit which represents the status of the PNC with
34 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

ComMPncComSignalDirection “TX” assigned to this PNC. (For more details, refer to


Figure 2: PNC State Machine)⌋()

ComM receives the aggregated state of internal and external PNC requests as PNC
bit vector via the callback function ComM_Nm_UpdateEIRA(<PNC bit vector of
internal and external PNC requests>).

[SWS_ComM_01060] {DRAFT} ⌈If ComM_Nm_UpdateEIRA(<PNC bit vector


of EIRA>) is called, then ComM shall transfer the content of the given PNC bit
vector to the EIRA of ComM with respect to the PNC bit vector length configured in
NmIf.⌋( SRS_ModeMgm_09248, SRS_ModeMgm_09250)

ComM receives the aggregated state of external PNC requests as PNC bit vector per
channel via the callback function ComM_Nm_UpdateERA(<Channel>, <PNC bit
vector of external PNC requests>).

[SWS_ComM_01061] {DRAFT} ⌈ If the configuration parameter


ComMPncGatewayEnabled (see ECUC_ComM_00887) is set to TRUE,
ComM_Nm_UpdateERA(<channel>, <PNC bit vector of ERA>) is called and
the parameter ComMPncGatewayType is set for the given channel, then ComM shall
transfer the content of the given PNC bit vector to the ERA of ComM with respect to
the given channel and the PNC bit vector length configured in NmIf.
⌋( SRS_ModeMgm_09248, SRS_ModeMgm_09250)

Note:
 ComM tranfers the EIRA PNC bit vector provided by Nm in one internal EIRA
(see [SWS_ComM_01060]) and each ERA PNC bit vector in one ERA per
ComMChannel (see [SWS_ComM_01061])
 Transferring the content of a PNC bit vector result in the internal EIRA / ERA
of ComM by setting the PNC bit in the internal EIRA / ERA to ‘1’ if the
corresponding PNC bit in the PNC bit vector is set to ‘1’ or setting the PNC bit
in the internal EIRA / ERA to ‘0’ if the corresponding PNC bit in the PNC bit
vector is set to ‘0’

[SWS_ComM_01062] {DRAFT} ⌈ The ComM module shall be able to distribute the


status of a particular PNC (result of the PNC state machine) across the assigned
ComM channels. Therefore ComM shall forward the aggregated state of internal
PNC request per communication channel (e.g. bus or network) as PNC bit vector by
calling the API Nm_UpdateIRA(<channel>, <PNC bit vector of
aggregated internal PNC requests>). The IRA PNC bit vector designates
the status of the internal PNC requests.⌋( SRS_ModeMgm_09248,
SRS_ModeMgm_09250)

Note:
 The meaning of the PNC bits is defined in [SWS_ComM_00825]
 Internal PNC requests are based on ComM user PNC requests and/or PNC
requests, due to PNC gateway handling

35 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

7.1.3 ComM PNC state machine

[SWS_ComM_00953] ⌈If the PNC functionality is enabled using the configuration


parameter ComMPncEnabled set to TRUE (see ECUC_ComM_00878), all actions
related to PNC changes shall be executed before the channel related actions
(channel related actions, see Chapter 7.3).⌋(SRS_ModeMgm_09243)

[SWS_ComM_00909] ⌈For every Partial Network Cluster, only one PNC state
machine shall be implemented (i.e. one PNC state machine per PNC, independent of
the amount of ComMChannels).⌋(SRS_ModeMgm_09247)

[SWS_ComM_00920] ⌈The ComM module shall support up to 504 PNC state


machines. ⌋(SRS_ModeMgm_09247)

[SWS_ComM_00924] ⌈The PNC state machine shall consist of the two main states
COMM_PNC_FULL_COMMUNICATION and COMM_PNC_NO_COMMUNICATION.⌋
(SRS_ModeMgm_09247)

[SWS_ComM_00907] ⌈The PNC main state COMM_PNC_FULL_COMMUNICATION


shall consist of the sub states COMM_PNC_PREPARE_SLEEP,
COMM_PNC_READY_SLEEP and COMM_PNC_REQUESTED.⌋(SRS_ModeMgm_09247)

[SWS_ComM_00908] ⌈Every state change (listed within the ComM_PncModeType),


excluding entering of the main state COMM_PNC_NO_COMMUNICATION coming from
PowerOff, shall be notified by the API call BswM_ComM_CurrentPncMode() with
the entered PNC state.⌋(SRS_ModeMgm_09251)

[SWS_ComM_00978] ⌈State transitions of the PNC state machines in ComM,


triggered by a call to ComM_RequestComMode() shall be executed in the
ComM_MainFunction_<Channel.ShortName> only.⌋(SRS_ModeMgm_09247)

Comment: Every PNC activation triggers sending of the PNC bit vector n-times, thus
it would increase the busload without debouncing.

[SWS_ComM_00944] {OBSOLETE replaced by [SWS_ComM_01060]} ⌈If at least


one bit corresponding to the PNC within the Rx bitvectors with signal type "EIRA"
equals '1', then the bit corresponding to this PNC whithin EIRA in ComM shall be set
to '1'⌋()

[SWS_ComM_00945] {OBSOLETE replaced by [SWS_ComM_01061]} ⌈If the


configuration parameter ComMPncGatewayEnabled (see ECUC_ComM_00840) is
true and the parameter ComMPncGatewayType is set for a ComMChannel and at
least one bit corresponding to the PNC within the Rx bitvectors with signal type
"ERA" equals '1', then the bit corresponding to this PNC within ERA in ComM shall
be set to '1'.⌋()

36 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_00971] {OBSOLETE} ⌈The trigger ComM_COMCbk represents a


notification by the AUTOSAR Communication module about a received signal
containing PNC status information called ERA of EIRA.⌋()

[SWS_ComM_00972] ⌈The trigger “ComMUser” represents a notification about a


communication request of a ComMUser by calling the API
ComM_RequestComMode().⌋(SRS_ModeMgm_09246)

[SWS_ComM_00987] ⌈Within the ComM_MainFunction_<Channel.ShortName>


of a channel that is mapped to one or more PNCs, the requested state shall be
handled in the following order:
1. ComM user requests of ComM users mapped to one or more PNCs of that
channel
2. ComM user requests of ComM users mapped to that channel
3. ERA (if the configuration switch ComMPncGatewayEnabled is set to
TRUE)
4. EIRA
⌋(SRS_ModeMgm_09243)

Comment: Requests are handled in main functions of those channels they affect.

[SWS_ComM_00919] {OBSOLETE} ⌈It shall be possible to assign more than one


COM signal containing bits representing the PNC to one PNC using the configuration
container ComMPncComSignal (see ECUC_ComM_00881).⌋()

[SWS_ComM_00827] ⌈Regarding "Communication allowed" and mode inhibitions,


requests originating from a PNC state machine shall be treated like user requests for
the according channels.⌋(SRS_ModeMgm_09243, SRS_ModeMgm_09246)

37 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

COMM_PNC_FULL_COMMUNICATION
ComM_RequestComMode() OR ComM_Nm_UpdateERA()
COMM_PNC_REQUESTED [ComMUser = FullCom OR (PNC bit within ERAn=1 AND
ComMPNCGatewayEnabled = TRUE AND
ComMPncGatewayType is set) ]
/BswM_ComM_CurrentPncMode()
Nm_UpdateIRA()
Channel Full Communication Request()
Stop ComMPncPrepareSleepTimer
ComM_RequestComMode() OR ComM_Nm_UpdateERA() ComM_RequestComMode() OR ComM_Nm_UpdateERA()
[ComMUser = FullCom OR (PNC bit within ERAn=1 AND [ComMUser = NoCom AND (NOT (PNC bit within ERAn=1
ComMPNCGatewayEnabled = TRUE AND AND ComMPNCGatewayEnabled = TRUE AND
ComMPncGatewayType is set) ] ComMPncGatewayType is set))]
/BswM_ComM_CurrentPncMode() /BswM_ComM_CurrentPncMode()
Nm_UpdateIRA() Nm_UpdateIRA()
Channel Full Communication Request() Release Channel Full Communication Request

ComM_Nm_UpdateEIRA() [PNC bit within EIRA = 0]


/BswM_ComM_CurrentPncMode()
COMM_PNC_READY_SLEEP COMM_PNC_PREPARE_SLEEP
Start ComMPncPrepareSleepTimer

ComM_Nm_Update_EIRA() [PNC bit within EIRA = 1]


/BswM_ComM_CurrentPncMode()
Stop ComMPncPrepareSleepTimer
ComM_RequestComMode() OR ComM_Nm_UpdateERA() ComMPncPrepareSleepTimer
[ComMUser = FullCom OR (PNC bit within ERAn=1 AND [expired]
ComMPNCGatewayEnabled = TRUE AND /BswM_ComM_CurrentPncMode()
ComM_EcuM_PNCWakeUpIndication()
ComMPncGatewayType is set) ]
/BswM_ComM_CurrentPncMode()
/BswM_ComM_CurrentPncMode() ComM_Nm_Update_EIRA() [PNC bit within EIRA = 1]
Start ComMPncPrepareSleepTimer
Nm_UpdateIRA() /BswM_ComM_CurrentPncMode()
Channel Full Communication Request() ComM_EcuM_WakeUpIndication()
[ComMSynchronousWakeUp = TRUE]
/BswM_ComM_CurrentPncMode()
Start ComMPncPrepareSleepTimer

COMM_PNC_NO_COMMUNICATION

PowerOff

Figure 2: PNC State Machine

7.1.3.1 Behavior in PNC main state COMM_PNC_NO_COMMUNICATION

[SWS_ComM_00926] ⌈The PNC main state COMM_PNC_NO_COMMUNICATION


shall be the default PNC state from power off.⌋(SRS_ModeMgm_09243)

The main state COMM_PNC_NO_COMMUNICATION is the target state as long as


the PNC is neither requested ECU internally nor requested externally.

[SWS_ComM_00931] {OBOSLETE replaced by [SWS_ComM_01063]} ⌈If the API


ComM_EcuM_WakeUpIndication() is called in PNC state
COMM_PNC_NO_COMMUNICATION, and the configuration switch
ComMSynchronousWakeUp is set to TRUE (see ECUC_ComM_00695), the PNC
main state COMM_PNC_NO_COMMUNICATION shall be left and the PNC sub state
COMM_PNC_PREPARE_SLEEP shall be entered.⌋()

[SWS_ComM_01063] {DRAFT} ⌈If the API ComM_EcuM_WakeUpIndication() is


called in PNC state COMM_PNC_NO_COMMUNICATION, the configuration switch
ComMSynchronousWakeUp is set to TRUE (see ECUC_ComM_00695) and for all
PNCs that reference at least one ComMChannel via ComMChannelPerPnc (see
ECUC_ComM_00880 : ), the PNC main state COMM_PNC_NO_COMMUNICATION
shall be left and the PNC sub state COMM_PNC_PREPARE_SLEEP shall be
entered.⌋(SRS_ModeMgm_09278)

38 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_00990] ⌈If the API ComM_EcuM_WakeUpIndication() is called in


PNC state COMM_PNC_NO_COMMUNICATION, and the configuration switch
ComMSynchronousWakeUp is set to FALSE, the PNC main state
COMM_PNC_NO_COMMUNICATION shall be the current
state.⌋(SRS_ModeMgm_09278)

Comment: In case of asynchronous wake up, the PNC state shall stay in
COMM_PNC_NO_COMMUNICATION until the PNC request is received (PNC bit in
EIRA is set to ‘1’).

[SWS_ComM_00964] {OBOSLETE replaced by [SWS_ComM_01064]} ⌈ If the API


ComM_EcuM_PNCWakeUpIndication(<PNC>) (see SWS_ComM_91001) is called
in PNC state PNC_NO_COMMUNICATION, the PNC main state
PNC_NO_COMMUNICATION shall be left and the PNC sub state
PNC_PREPARE_SLEEP shall be entered.⌋()

[SWS_ComM_01064] {DRAFT} ⌈ If the API


ComM_EcuM_PNCWakeUpIndication(<PNC>) (see SWS_ComM_91001) is called
in PNC state PNC_NO_COMMUNICATION and the indicated PNC reference at least
one ComMChannel via ComMChannelPerPnc (see ECUC_ComM_00880 : ), the
PNC main state PNC_NO_COMMUNICATION shall be left and the PNC sub state
PNC_PREPARE_SLEEP shall be entered.⌋(SRS_ModeMgm_09278)

[SWS_ComM_00932] ⌈When at least one ComMUser assigned to this PNC requests


“Full Communication” in PNC main state COMM_PNC_NO_COMMUNICATION, this
state shall be left and the sub state COMM_PNC_REQUESTED of the main state
COMM_PNC_FULL_COMMUNICATION shall be entered.⌋(SRS_ModeMgm_09246)

[SWS_ComM_00933] {OBOSLETE replaced by [SWS_ComM_01065]} ⌈When in


main state COMM_PNC_NO_COMMUNICATION at least one PNC bit representing
this PNC in EIRA changes to ‘1’, the main state
COMM_PNC_NO_COMMUNICATION shall be left and the
COMM_PNC_READY_SLEEP shall be entered. ⌋()

[SWS_ComM_01065] {DRAFT} ⌈When in main state


COMM_PNC_NO_COMMUNICATION at least one PNC bit representing this PNC in
EIRA changes to ‘1’ and this PNC reference at least one ComMChannel via
ComMChannelPerPnc (see ECUC_ComM_00880 : ), the main state
COMM_PNC_NO_COMMUNICATION shall be left and the
COMM_PNC_READY_SLEEP shall be entered. ⌋(SRS_ModeMgm_09248)

7.1.3.1.1 PNC gateway related requirements

[SWS_ComM_00934] {OBOSLETE replaced by [SWS_ComM_01066]} ⌈When in


main state COMM_PNC_NO_COMMUNICATION at least one bit representing this
PNC in an ERAn changes to ‘1’, the main state
COMM_PNC_NO_COMMUNICATION shall be left and the sub state
COMM_PNC_REQUESTED shall be entered if the parameter

39 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

ComMPncGatewayEnabled (ECUC_ComM_00840) set to TRUE and


ComMPncGatewayType is set for the according ComMChannels of these ERAs.⌋()

[SWS_ComM_01066] {DRAFT} ⌈When in main state


COMM_PNC_NO_COMMUNICATION at least one PNC bit representing this PNC in
ERAn changes to ‘1’, then the main state COMM_PNC_NO_COMMUNICATION
shall be left and the sub state COMM_PNC_REQUESTED shall be entered under
the following conditions:
 the parameter ComMPncGatewayEnabled (see ECUC_ComM_00887 : ) is
set to TRUE
 this PNC references at least one channel via ComMChannelPerPnc (see
ECUC_ComM_00880 : ) and the referenced channels have the
ComMPncGatewayType set
⌋( SRS_ModeMgm_09257, SRS_ModeMgm_09270)

7.1.3.2 On entry of PNC main state COMM_PNC_NO_COMMUNICATION from


PowerOff

[SWS_ComM_00927] {OBSOLETE} ⌈After switching on the power supply, main


state COMM_PNC_NO_COMMUNICATION shall be entered from PowerOff.⌋()

Note: After switching on the power supply, main state


COMM_PNC_NO_COMMUNICATION is entered from PowerOff (see
[SWS_ComM_00926])

7.1.3.3 Behavior in PNC main state COMM_PNC_FULL_COMMUNICATION

[SWS_ComM_00929] ⌈As long as a specific PNC is in state


COMM_PNC_FULL_COMMUNICATION all ComMChannels which are referenced by
this PNC via ComMChannelPerPnc (see ECUC_ComM_00880 : ) shall be in
COMM_FULL_COMMUNICATION.⌋(SRS_ModeMgm_00049)

7.1.3.4 On entry of PNC sub state COMM_PNC_REQUESTED

[SWS_ComM_01053] {OBSOLETE replaced by [SWS_ComM_01067]} ⌈ When


entering the PNC sub state COMM_PNC_REQUESTED from COMM_PNC_NO_COM
or COMM_PNC_PREPARE_SLEEP, and ComMPncWakeupSleepRequestEnabled
of this PNC is set to TRUE, BswM_ComM_CurrentPNCMode shall be called with
COMM_PNC_REQUESTED_WITH_WAKEUP_REQUEST, instead of calling
BswM_ComM_CurrentPNCMode with COMM_PNC_REQUESTED.⌋()

[SWS_ComM_01067] {DRAFT} ⌈ When entering the PNC sub state


COMM_PNC_REQUESTED from COMM_PNC_NO_COM or
COMM_PNC_PREPARE_SLEEP, this PNC reference at least one ComMChannel via
ComMChannelPerPnc (see ECUC_ComM_00880 : ) and
ComMPncWakeupSleepRequestEnabled of this PNC is set to TRUE,
BswM_ComM_CurrentPNCMode shall be called with
COMM_PNC_REQUESTED_WITH_WAKEUP_REQUEST, instead of calling
40 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

BswM_ComM_CurrentPNCMode with COMM_PNC_REQUESTED.⌋(


SRS_ModeMgm_09268)

Note: Notification towards the BswM with


COMM_PNC_REQUESTED_WITH_WAKEUP_REQUEST is used for Ethernet switch
port switching to trigger a wake-up on the network where the used Ethernet hardware
is compatible to the OA TC10 (see[33])

[SWS_ComM_00930] {OBSOLETE replaced by [SWS_ComM_01068]} ⌈When


entering the PNC sub state COMM_PNC_REQUESTED and if
ComMPncGatewayEnabled = FALSE or on all ComMChannels the PNC belongs to
the ComMPncGatewayType is not set, the API Com_SendSignal()shall be called
with the value ‘1’ for the bit representing this PNC for the Com signal assigned to this
PNC with ComMPncComSignalDirection “TX”.⌋()

[SWS_ComM_01068] {DRAFT} ⌈When entering the PNC sub state


COMM_PNC_REQUESTED, then the ComM module shall set the PNC bit with value
‘1’ of the PNC bit representing this PNC within the IRA and forward the aggregated
internal PNC requests to each channel which is referenced this PNC by calling
Nm_UpdateIRA(<channel>, <IRA>) under either of the following conditions:
 ComMPncGatewayEnabled is set to FALSE
 ComMPncGatewayType is not set on any of the ComMChannels referenced
by this PNC
⌋( SRS_ModeMgm_09248)

[SWS_ComM_00993] {OBSOLETE replaced by [SWS_ComM_01069]} ⌈Every


time the sub state COMM_PNC_REQUESTED is entered from other states, ComM
shall request COMM_FULL_COMMUNICATION for all configured ComM channels
for this PNC, where ComMWakeupSleepRequestEnabled is set to FALSE or not
available, even if the channel is already requested.⌋()

[SWS_ComM_01069] {DRAFT} ⌈Every time the sub state


COMM_PNC_REQUESTED is entered from other states, ComM shall request
COMM_FULL_COMMUNICATION for all configured ComM channels which are
referenced by this PNC via parameter ComMChannelPerPnc (see
ECUC_ComM_00880 : ) and where ComMWakeupSleepRequestEnabled is set to
FALSE or not available, even if the channel is already
requested.⌋(SRS_ModeMgm_00049)

[SWS_ComM_01054] {OBSOLETE replaced by [SWS_ComM_01070]} ⌈Every


time the sub state COMM_PNC_REQUESTED is entered from
COMM_PNC_NO_COM or COMM_PNC_PREPARE_SLEEP, ComM shall request
COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST for all configured
ComM channels for this PNC, where ComMWakeupSleepRequestEnabled is set to
TRUE, even if the channel is already requested.⌋()

[SWS_ComM_01070] {DRAFT} ⌈Every time the sub state


COMM_PNC_REQUESTED is entered from COMM_PNC_NO_COM or
COMM_PNC_PREPARE_SLEEP, ComM shall request
41 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST for all configured


ComM channels which are referenced by this PNC via parameter
ComMChannelPerPnc (see ECUC_ComM_00880 : ) and where
ComMWakeupSleepRequestEnabled is set to TRUE, even if the channel is already
requested.⌋( SRS_ModeMgm_09268)

[SWS_ComM_01055] {OBSOLETE replaced by [SWS_ComM_01071]} ⌈Every


time the sub state COMM_PNC_REQUESTED is entered from
COMM_PNC_READY_SLEEP, ComM shall request
COMM_FULL_COMMUNICATION for all configured ComM channels for this PNC,
where ComMWakeupSleepRequestEnabled is set to TRUE, even if the channel is
already requested.⌋(SRS_ModeMgm_09268)

[SWS_ComM_01071] {DRAFT} ⌈Every time the sub state


COMM_PNC_REQUESTED is entered from COMM_PNC_READY_SLEEP, ComM
shall request COMM_FULL_COMMUNICATION REQUEST for all configured ComM
channels which are referenced by this PNC via parameter ComMChannelPerPnc
(see ECUC_ComM_00880 : ) and where ComMWakeupSleepRequestEnabled is
set to TRUE, even if the channel is already requested.⌋(SRS_ModeMgm_09268,
SRS_ModeMgm_00049)

Comment on [SWS_ComM_01071]: Entering from COMM_PNC_READY_SLEEP


should not result in a wake-up on the network, since the PNC is already requested
remotely by another ECU

7.1.3.4.1 PNC gateway related requirements

[SWS_ComM_00992] {OBSOLETE replaced by [SWS_ComM_01072]} ⌈When


entering the PNC sub state COMM_PNC_REQUESTED and if
ComMPncGatewayEnabled = TRUE, the API Com_SendSignal() shall be called
with the value ‘1’ for the bits representing this PNC for the Com signals assigned to
this PNC with ComMPncComSignalDirection “TX” for all ComM channels related to
this PNC and having ComMPncGatewayType ==
COMM_GATEWAY_TYPE_ACTIVE.⌋()

[SWS_ComM_01072] {DRAFT} ⌈When entering the PNC sub state


COMM_PNC_REQUESTED and ComMPncGatewayEnabled is set to TRUE, then
ComM shall set the PNC bit with value ‘1’ of the PNC bit representing this PNC within
the IRA on all referenced ComMChannels where ComMPncGatewayType is set to
COMM_GATEWAY_TYPE_ACTIVE and forward the aggregated internal PNC
request accordingly to those ComMChannels by calling
Nm_UpdateIRA(<channel>, <IRA>) ⌋(SRS_ModeMgm_09270,
SRS_ModeMgm_09248)

7.1.3.5 Behavior in PNC sub state COMM_PNC_REQUESTED

[SWS_ComM_00938] ⌈When all ComMUsers assigned to this PNC request “No


Communication”, the sub state COMM_PNC_REQUESTED shall be left and the sub
state COMM_PNC_READY_SLEEP shall be entered, if ComMPncGatewayEnabled
42 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

is set to FALSE or ComMPncGatewayType is not set on all channels which are


referenced by this PNC.⌋()

Note: As long as at least one ComMUser assigned to this PNC requests “Full
Communication”, COMM_PNC_REQUESTED will be the current PNC state. Please
refer to the following requirements.

[SWS_ComM_01073] {DRAFT} ⌈ In sub state COMM_PNC_REQUESTED when


ComMPncGatewayEnabled is set to FALSE and at least one ComMUser assigned to
a specific PNC requests "Full Communication", then ComM shall request
COMM_FULL_COMMUNICATION of those ComMChannels which are referenced
via ComMChannelPerTxOnlyPnc by this PNC.⌋( SRS_ModeMgm_09270,
SRS_ModeMgm_09256)

[SWS_ComM_01074] {DRAFT} ⌈ In sub state COMM_PNC_REQUESTED when


ComMPncGatewayEnabled is set to FALSE and all ComMUsers assigned to a
specific PNC requests "No Communication", then ComM shall request
COMM_NO_COMMUNICATION of those ComMChannels which are referenced via
ComMChannelPerTxOnlyPnc by this PNC.⌋( SRS_ModeMgm_09270,
SRS_ModeMgm_09256)

7.1.3.5.1 PNC gateway related requirements

[SWS_ComM_00991] ⌈ The sub state COMM_PNC_REQUESTED shall be left and


the sub state COMM_PNC_READY_SLEEP shall be entered under the following
conditions:
 all ComMUsers assigned to this PNC request "No Communication"
 the parameter ComMPncGatewayEnabled is set to TRUE
 at least one ComMChannel is referenced via ComMChannelPerPnc (see
ECUC_ComM_00880 : ) by this PNC
 all ComMChannels referenced by this PNC have ComMPncGatewayType
parameter set
 the PNC bit representing this PNC equals to '0' in ERAn
⌋(SRS_ModeMgm_09246, SRS_ModeMgm_09270)

[SWS_ComM_01075] {DRAFT} ⌈The sub state COMM_PNC_REQUESTED shall be


left and the sub state COMM_PNC_READY_SLEEP shall be entered under the
following conditions:
 all ComMUsers assigned to this PNC request "No Communication"
 the parameter ComMPncGatewayEnabled is set to TRUE
 all ComMChannels referenced by this PNC have ComMPncGatewayType
parameter NOT set
⌋( SRS_ModeMgm_09246, SRS_ModeMgm_09270)

[SWS_ComM_00164] {OBSOLETE replaced by [SWS_ComM_01076] and


[SWS_ComM_01077]} ⌈ If ComMPncGatewayEnabled == TRUE and either on
entering COMM_PNC_REQUESTED or within COMM_PNC_REQUESTED, the API
Com_SendSignal() shall be called with the value "1" for the bit representing this
PNC for the Com signal assigned to this PNC with ComMPncComSignalDirection
43 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

== "TX" on all ComM channels related to this PNC where ComMPncGatewayType


== COMM_GATEWAY_TYPE_PASSIVE
if at least one ComM user assigned to this PNC request "Full Com" or at least one
ComMPncComSignal received by Com_ReceiveSignal() from a channel where
the signal attributes ComMPncComSignalDirection == "RX" and
ComMPncComSignalKind == "ERA" and the channel attribute
ComMPncGatewayType == "COMM_GATEWAY_TYPE_ACTIVE" is set to
"1".⌋(SRS_ModeMgm_09243)

[SWS_ComM_01076] {DRAFT} ⌈ In sub state COMM_PNC_REQUESTED when


ComMPncGatewayEnabled is set to TRUE and at least one ComMUser assigned to a
specific PNC requests "Full Communication", then ComM shall set the PNC bit
representing this specific PNC to value '1' within the IRA of those ComMChannels
 which have ComMPncGatewayType parameter set to
COMM_GATEWAY_TYPE_PASSIVE and
 referenced either via ComMChannelPerPnc or via
ComMChannelPerTxOnlyPnc by this PNC,
and forward the updated IRA with a call of Nm_UpdateIRA(<channel>, <IRA>) .
⌋( SRS_ModeMgm_09270, SRS_ModeMgm_09256)

[SWS_ComM_01077] {DRAFT} ⌈In sub state COMM_PNC_REQUESTED when


ComMPncGatewayEnabled is set to TRUE and the PNC bit representing a specific
PNC equals to '1' in at least one ERA, whose corresponding ComMChannel has the
ComMPncGatewayType parameter set to COMM_GATEWAY_TYPE_ACTIVE, then
ComM shall set the PNC bit representing this specific PNC to value '1' within the IRA
of those ComMChannels
 which have ComMPncGatewayType parameter set to
COMM_GATEWAY_TYPE_PASSIVE and
 referenced via ComMChannelPerPnc or via ComMChannelPerTxOnlyPnc by
this PNC,
and forward the updated IRA with a call of Nm_UpdateIRA(<channel>, <IRA>) .
⌋( SRS_ModeMgm_09270, SRS_ModeMgm_09256)

[SWS_ComM_01078] {DRAFT} ⌈ In sub state COMM_PNC_REQUESTED when


ComMPncGatewayEnabled is set to TRUE and at least one ComMUser assigned to a
specific PNC requests "Full Communication", then ComM shall request
COMM_FULL_COMMUNICATION of those ComMChannels which are referenced
via ComMChannelPerTxOnlyPnc by this PNC.⌋( SRS_ModeMgm_09270,
SRS_ModeMgm_09256)

[SWS_ComM_00959] {OBSOLETE replaced by [SWS_ComM_01079] and


[SWS_ComM_01080]} ⌈ If ComMPncGatewayEnabled == TRUE and within
COMM_PNC_REQUESTED, the API Com_SendSignal() shall be called with the
value "0" for the bit representing this PNC for the Com signal assigned to this PNC
with ComMPncComSignalDirection == "TX" on all ComM channels related to this
PNC where ComMPncGatewayType == COMM_GATEWAY_TYPE_PASSIVE if all
ComM users assigned to this PNC request "No Com" and all ComMPncComSignals
received by Com_ReceiveSignal() from a channel where the signal attributes
44 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

ComMPncComSignalDirection == "RX" and ComMPncComSignalKind == "ERA"


and the channel attribute ComMPncGatewayType ==
"COMM_GATEWAY_TYPE_ACTIVE" are set to "0".⌋( SRS_ModeMgm_09243)

[SWS_ComM_01079] {DRAFT} ⌈ In sub state COMM_PNC_REQUESTED when


ComMPncGatewayEnabled is set to TRUE, if
 all ComMUsers assigned to a specific PNC request "No Communication" and
 the PNC bit representing this specific PNC equals to '0' in ERAn, whose
corresponding ComMChannel has the ComMPncGatewayType parameter set
to COMM_GATEWAY_TYPE_ACTIVE,
then ComM shall set the PNC bit representing this specific PNC to value '0' within
the IRA of those ComMChannels
 which have ComMPncGatewayType parameter set to
COMM_GATEWAY_TYPE_PASSIVE and
 which are referenced via ComMChannelPerPnc or via
ComMChannelPerTxOnlyPnc by this PNC,
and forward the updated IRA with a call of Nm_UpdateIRA(<channel>, <IRA>).⌋
(SRS_ModeMgm_09270, SRS_ModeMgm_09256, SRS_ModeMgm_09250)

[SWS_ComM_01080] {DRAFT} ⌈ In sub state COMM_PNC_REQUESTED when


ComMPncGatewayEnabled is set to TRUE, if
 all ComMUsers assigned to a specific PNC request "No Communication" and
 the ComMChannels which are referenced by this PNC have the
ComMPncGatewayType parameter not set,
then ComM shall set the PNC bit representing this specific PNC to value '0' within
the IRA of all ComMChannels which are referenced by this PNC and forward the
updated IRA with a call of Nm_UpdateIRA(<channel>, <IRA>)⌋
(SRS_ModeMgm_09270, SRS_ModeMgm_09256, SRS_ModeMgm_09250)

[SWS_ComM_01081] {DRAFT} ⌈ In sub state COMM_PNC_REQUESTED when


ComMPncGatewayEnabled is set to TRUE and all ComMUsers assigned to a
specific PNC request "No Communication", then ComM shall request
COMM_NO_COMMUNICATION of those ComMChannels which are referenced via
ComMChannelPerTxOnlyPnc by this PNC.⌋ (SRS_ModeMgm_09270,
SRS_ModeMgm_09256, SRS_ModeMgm_09250)

[SWS_ComM_01050] {OBSOLETE replaced by [SWS_ComM_01082]} ⌈If a


request to forward a synchronized PNC shutdown has been indicated via a call of
ComM_Nm_ForwardSynchronizedPncShutdown(<channel>), the indicated
channel is assigned to this PNC, this PNC is qualified to be released for the indicated
channel (ComMPncComSignal received by Com_ReceiveSignal()with signal
attributes ComMPncComSignalDirection == "RX" and ComMPncComSignalKind
== "ERA" changed to “0”), the indicated channel has ComMPncGatewayType set to
COMM_GATEWAY_TYPE_PASSIVE and
ComMSynchronizedPncShutdownEnabled is set to TRUE, then the ComM module
shall perform the following actions:
 If all ComM users assigned to this PNC request "No Com", all
ComMPncComSignals received by Com_ReceiveSignal() from all
45 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

channels which are assigned to this PNC where the signal attributes
ComMPncComSignalDirection == "RX" and ComMPncComSignalKind ==
"ERA" and the channel attribute ComMPncGatewayType ==
"COMM_GATEWAY_TYPE_ACTIVE" are set to "0", ComM shall call
Nm_RequestSynchronizedPncShutdown (<channel>, <PncId>) for
each of those <channel> with <PncId> of the current handled PNC
 The sub state COMM_PNC_REQUESTED shall be left and the sub state
COMM_PNC_READY_SLEEP shall be entered
⌋(SRS_ModeMgm_09269)

[SWS_ComM_01082] {DRAFT} ⌈When a request to forward a synchronized PNC


shutdown has been indicated via a call of
ComM_Nm_ForwardSynchronizedPncShutdown(<channel>, <PNC bit
vector>) and all following conditions apply:
 all ComM users assigned to this PNC request “No Com”,
 all corresponding PNC bits are set to '0' in ERAn of all channels which are
referenced by this PNC via ComMChannelPerPnc (see
ECUC_ComM_00880) where the channel attribute ComMPncGatewayType is
set to COMM_GATEWAY_TYPE_ACTIVE,
 the indicated channel of the
ComM_Nm_ForwardSynchronizedPncShutdown call is assigned to this
PNC and the PNC is indicated for a shutdown (PNC bit set to ‘1’ in the given
PNC bit vector),
 the indicated channel has ComMPncGatewayType set to
COMM_GATEWAY_TYPE_PASSIVE and the channel is referenced via
ComMChannelPerPnc (see ECUC_ComM_00880 : ),
 ComMSynchronizedPncShutdownEnabled is set to TRUE,

then the ComM module shall perform the following actions:

 ComM shall call Nm_RequestSynchronizedPncShutdown (<channel>,


<PncId>) for each <channel> with <PncId> of the current handled PNC,
where ComMPncGatewayType is set to "COMM_GATEWAY_TYPE_ACTIVE"
and the channel is referenced via ComMChannelPerPnc (see
ECUC_ComM_00880 : )
 The sub state COMM_PNC_REQUESTED shall be left and the sub state
COMM_PNC_READY_SLEEP shall be entered
⌋(SRS_ModeMgm_09269)

Comment on [SWS_ComM_01082]:
 Every time an intermediate PNC coordinator (PNC coordinator which have at
least one ComMChannel with ComMPncGatewayType set to
COMM_GATEWAY_TYPE_PASSIVE) receive an top-level PNC coordinator
Nm frame, the ComM shall immediately release the PNC, forward the PN
information of the top-level PNC coordination Nm frame and request an top-
level PNC coordination Nm frame on ComMChannels with
ComMPncGatewayType set to COMM_GATEWAY_TYPE_ACTIVE which are
assigned to the affected PNC

46 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

 ComM has to ensure that the procedure upon the reception of a top-level PNC
coordination Nm frame has to be performed as fast as possible, to minimize
the delay of the synchronized PNC shutdown
 The forwarding of a synchronized PNC shutdown is not performed if a local
user has indicated to request the affected PNC, or a PNC request was
received via a ComM channel with ComMPncGatewayType set to
COMM_GATEWAY_TYPE_ACTIVE. The request for a PNC either local
requested or remotely requested always overrule a request for a synchronized
PNC shutdown.

[SWS_ComM_01051] {OBSOLETE replaced by SWS_ComM_01082} ⌈ If a request


to forward a synchronized PNC shutdown has been indicated via a call of
ComM_Nm_ForwardSynchronizedPncShutdown(<channel>) for this PNC, the
PNC is qualified to be released and the precondition to forward the synchronized
PNC request are not fullfield (at least one ComM user request Full Com for this PNC
or at least one ComM channel assigned to this PNC has ComMPncComSignal set to
“1” where the signal attributes ComMPncComSignalDirection == "RX" and
ComMPncComSignalKind == "ERA" and the channel attribute
ComMPncGatewayType == "COMM_GATEWAY_TYPE_ACTIVE", see
[SWS_ComM_01050]), then the ComM modul shall reject to perform the forwarding
of a synchronized PNC shutdown and stay in sub state
COMM_PNC_REQUESTED.⌋(SRS_ModeMgm_09269)

[SWS_ComM_01052] {OBSOLETE replaced by [SWS_ComM_01083]} ⌈ If


ComMSynchronizedPncShutdownEnabled is set to TRUE, all ComM channels which
are assigned to this PNC have ComMPncGatewayType set to
COMM_GATEWAY_TYPE_ACTIVE, the according PNC bit in all ERAn is equal to 0
and all ComMUsers assigned to this PNC request “No Communication”, the API
Nm_RequestSynchronizedPncShutdown (<channel>, <PncId>) shall be
called , whereat <channel> represent the current handled ComMChannel and
<PncId> the ComMPncId of this PNC.⌋(SRS_ModeMgm_09269)

[SWS_ComM_01083] {DRAFT} ⌈ If ComMSynchronizedPncShutdownEnabled is


set to TRUE and ComMPncGatewayType set to
COMM_GATEWAY_TYPE_ACTIVE on all ComM channels assigned to this PNC, the
API Nm_RequestSynchronizedPncShutdown (<channel>, <PncId>) shall
be called, whereat <channel> represent the current handled ComMChannel and
<PncId> the ComMPncId of this PNC under the following conditions:
 corresponding PNC bit in ERAn is equal to “0”
 all ComMUsers assigned to this PNC request “No Communication”
 The channel is referenced via ComMChannelPerPnc (see
ECUC_ComM_00880 : ) by this PNC
⌋(SRS_ModeMgm_09269, SRS_ModeMgm_09280)

Comment on [SWS_ComM_01083]: Everytime a PNC is released, synchronized


PNC shutdown is configured and the ECU act as an top-level PNC coordinator (all
coordinated PNC are mapped to ComMChannels where ComMPncGatewayType is
set to COMM_GATEWAY_TYPE_ACTIVE ) a PN shutdown message has to be
triggered. Therefore ComM forward the PN information regarding the detection of a
47 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

released PNC to NmIf by calling Nm_RequestSynchronizedPncShutdown for


each ComMChannel the PNC is assigned to. NmIf is forwarding the call to the
affected <Bus>Nm. The PN shutdown message is transmitted within the
<Bus>Nm_Mainfunction.

[SWS_ComM_00966] {OBSOLETE replaced by [SWS_ComM_01084]} ⌈ If


ComM0PncVectorAvoidance is set to TRUE and if all signals are set to '0' (because
of SWS_ComM_00959) for the referenced ComMChannel(s), the ComM module
shall release this ComMChannel.
As soon as at least one signal is set back to '1' again, the ComM module shall
request this ComMChannel again.⌋()

[SWS_ComM_01084] {DRAFT} ⌈In sub state COMM_PNC_REQUESTED if


ComM0PncVectorAvoidance is set to TRUE and all PNC bits in the calculated IRA of
a ComMChannel referenced via ComMChannelPerPnc (see ECUC_ComM_00880 :
) are set to '0', the ComM module shall release this ComMChannel. As soon as at
least one bit in the IRA changes back to '1' again, the ComM module shall request
this ComMChannel again.⌋(SRS_ModeMgm_09270, SRS_ModeMgm_09256)

Comment on [SWS_ComM_01084]: As long as a PNC is requested remotely (i.e. at


least one PNC bit within ERAn assigned to this PNC equals ‘1’) and the configuration
switch ComMPncGatewayEnabled is set to TRUE, COMM_PNC_REQUESTED will
be the current PNC state.

7.1.3.6 On entry PNC sub state COMM_PNC_READY_SLEEP

[SWS_ComM_00960] {OBSOLETE replaced by [SWS_ComM_01085]} ⌈When


entering the PNC sub state COMM_PNC_READY_SLEEP from
COMM_PNC_REQUESTED, the API Com_SendSignal() shall be called with the
value ‘0’ for the bit representing this PNC for all Com signals assigned to this PNC
with ComMPncComSignalDirection “TX”.⌋()

[SWS_ComM_01085] {DRAFT} ⌈When entering the PNC sub state


COMM_PNC_READY_SLEEP from COMM_PNC_REQUESTED, then the PNC bit
representing this PNC within the IRA shall be set to value ‘0’ and the aggregated
internal PNC requests shall be forwarded to each channel which is referenced by this
PNC by calling Nm_UpdateIRA(<channel>, <IRA>)⌋(SRS_ModeMgm_09248,
SRS_ModeMgm_09250)

[SWS_ComM_00961] {OBSOLETE replaced by [SWS_ComM_01086]} ⌈ When


entering the PNC sub state COMM_PNC_READY_SLEEP from
COMM_PNC_REQUESTED, ComM shall release the
COMM_FULL_COMMUNICATION request for all configured ComM channels for this
PNC.⌋()

[SWS_ComM_01086] {DRAFT} ⌈ When entering the PNC sub state


COMM_PNC_READY_SLEEP from COMM_PNC_REQUESTED, ComM shall
release the COMM_FULL_COMMUNICATION request for all configured ComM

48 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

channels referenced via ComMChannelPerPnc (see ECUC_ComM_00880 : ) by this


PNC ⌋(SRS_ModeMgm_00049)

7.1.3.7 Behavior in PNC sub state COMM_PNC_READY_SLEEP

As long as the PNC is requested (i.e. the PNC bit representing this PNC within EIRA
equals ‘1’) and no ComMUser assigned to this PNC requests “Full Communication”,
COMM_PNC_READY_SLEEP will be the current state.

[SWS_ComM_00940] ⌈ If the PNC is released (i.e. the PNC bit representing this
PNC within EIRA equals ‘0’), the sub state COMM_PNC_READY_SLEEP shall be
left and the sub state COMM_PNC_PREPARE_SLEEP shall be
entered.⌋(SRS_ModeMgm_09248)

[SWS_ComM_01087] {DRAFT} ⌈ The sub state COMM_PNC_READY_SLEEP shall


be left and the sub state COMM_PNC_REQUESTED shall be entered if at least one
ComMUser assigned to this PNC requests "Full
Communication".⌋(SRS_ModeMgm_09246 ,SRS_ModeMgm_09247,
SRS_ModeMgm_09248)

7.1.3.7.1 PNC gateway related requirement

[SWS_ComM_00165] {OBSOLETE replaced by [SWS_ComM_01088]} ⌈ In PNC


sub state COMM_PNC_READY_SLEEP when at least one ComMUser assigned to
this PNC requests “Full Communication” or ComMPncGatewayEnabled
(ECUC_ComM_00887) equals TRUE, one bit representing this PNC in an ERAn
changes to ‘1’ and ComMPncGatewayType is set for the according ComMChannels
of these ERAs, this state shall be left and the sub state COMM_PNC_REQUESTED
shall be entered.⌋( SRS_ModeMgm_09246 ,SRS_ModeMgm_09247,
SRS_ModeMgm_09248)

[SWS_ComM_01088] {DRAFT} ⌈ When in sub state COMM_PNC_READY_SLEEP


at least one PNC bit representing this PNC in ERAn changes to ‘1’, the sub state
COMM_PNC_READY_SLEEP shall be left and the sub state
COMM_PNC_REQUESTED shall be entered under the following conditions:
 the parameter ComMPncGatewayEnabled (see ECUC_ComM_00887 : ) is
set to TRUE,
 this PNC references at least one channel via ComMChannelPerPnc (see
ECUC_ComM_00880 : ) and the referenced channels have the
ComMPncGatewayType set
⌋( SRS_ModeMgm_09248)

7.1.3.8 On entry of PNC sub state COMM_PNC_PREPARE_SLEEP

[SWS_ComM_00952] ⌈If the sub state COMM_PNC_PREPARE_SLEEP is entered,


the timer ComMPncPrepareSleepTimer (see ECUC_ComM_00841) shall be
started with the configured initial value.⌋(SRS_ModeMgm_09279)

49 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

7.1.3.9 Behavior in PNC sub state COMM_PNC_PREPARE_SLEEP

As long as the timer ComMPncPrepareSleepTimer (see ECUC_ComM_00841) is


running and no changes in ComMUser, EIRA or ERAn occur,
COMM_PNC_PREPARE_SLEEP will be the current state.

[SWS_ComM_00947] ⌈When the timer ComMPncPrepareSleepTimer (see


ECUC_ComM_00841) expires, the PNC sub state COMM_PNC_PREPARE_SLEEP
shall be left and the PNC main state COMM_PNC_NO_COMMUNICATION shall be
entered.⌋(SRS_ModeMgm_09279)

[SWS_ComM_00948] ⌈When in COMM_PNC_PREPARE_SLEEP at least one


ComMUser assigned to this PNC requests “Full Communication”, the
COMM_PNC_PREPARE_SLEEP state shall be left. The timer
ComMPncPrepareSleepTimer shall be stopped and the sub state
COMM_PNC_REQUESTED state shall be entered.⌋(SRS_ModeMgm_09246)

[SWS_ComM_00950] ⌈ When in COMM_PNC_PREPARE_SLEEP the PNC bit


representing this PNC within EIRA changes to ‘1’ and this PNC references at least
one channel via ComMChannelPerPnc (see ECUC_ComM_00880 : ), the sub state
COMM_PNC_PREPARE_SLEEP shall be left. The timer
ComMPncPrepareSleepTimer shall be stopped and the sub state
COMM_PNC_READY_SLEEP shall be entered.⌋()

7.1.3.9.1 PNC gateway related requirements

[SWS_ComM_00951] {OBSOLETE replaced by [SWS_ComM_01089]} ⌈When in


sub state COMM_PNC_PREPARE_SLEEP at least one PNC bit within ERAn
changes to ‘1’, the parameter ComMPncGatewayEnabled equals TRUE and
ComMPncGatewayType is set for the according ComMChannels of these ERAs, the
sub state COMM_PNC_PREPARE_SLEEP shall be left. The timer
ComMPncPrepareSleepTimer shall be stopped and the sub state
COMM_PNC_REQUESTED shall be entered.⌋()

[SWS_ComM_01089] {DRAFT} ⌈ When in sub state


COMM_PNC_PREPARE_SLEEP at least one PNC bit representing this PNC in
ERAn changes to ‘1’, then sub state COMM_PNC_PREPARE_SLEEP shall be left,
COMM_PNC_REQUESTED shall be entered and timer
ComMPncPrepareSleepTimer shall be stopped under the following conditions:
 the parameter ComMPncGatewayEnabled (see ECUC_ComM_00887 : ) is
set to TRUE,
 this PNC references at least one channel via ComMChannelPerPnc (see
ECUC_ComM_00880 : ) and the referenced channels have the
ComMPncGatewayType set
⌋( SRS_ModeMgm_09248)

50 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

7.1.4 PNC Gateway

The PNC Gateway feature is used to span (logical) partial network clusters across
bus / communication channel boundaries, “gatewaying” PNC requests from one
bus/network to the others. (Therefore, for a PNC gateway to exist, it needs to be
connected to multiple physical channels.)
To do so, the PNC gateway configuration contains information for each PNC which
physical channels are required to reach all members of that PNC (PNC-to-channel-
mapping, see Figure 3).
The PNC gateway collects PNC requests from all of its multiple active channels
(which are called active since it actively keeps them awake, if required) and
aggregates them. The PNC gateway sends the aggregated PNC state in the network
to all its active channels, which causes all nodes to have the same view on the global
PNC request state as the gateway.
If the PNC gateway is not the topmost PNC gateway in the network hierarchy, the
PNC gateway will also send the aggregated PNC request state of all subordinate
nodes, plus its own internal request state, to its superior PNC coordinator, which is
connected via the so-called “passive” channel (which is called passive because it’s
the opposite of active).
The superior PNC coordinators will aggregate the subordinate coordinators’ PNC
request states, so the top level coordinator will know about all active PNC requests in
the network, and send that info to the subordinate nodes.
Subordinate PNC coordinators forward the PNC request information received on their
passive channel to their active channels to distribute the top level coordinators
holistic view of the PNC request state to all leaf nodes in the logical hierarchy, so
every node in the system is on the same page regarding the PNC request state.
A PNC coordinator must never aggregate and send back the information received via
its passive channel in order not to create an endless mirroring loop of “phantom PNC
requests”.

Figure 3: PNC-to-channel-mapping
The PNC to channel mapping is provided statically by configuration. Additionally, the
optional feature Dynamic PNC-to-channel-mapping (see chapter 7.1.5) could be
used to extend the PNC-to-channel mapping during run-time.

51 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Note that when PNC Gateway is active and even if a PNC is only assigned to one
channel, coordination might occur when request comes in from another channel
where PNC is not assigned to. This is intended as there might be only PNC-
requestor on the other channel which is not interested in being kept awake by this
PNC.

7.1.4.1 Support for not coordinated PNCs assigned to multiple channels

Comment: When a Partial Network is assigned to more than one ComMChannel than
this PNC is coordinated either on all affected ComMChannels or not at all (see
AUTOSAR_TPS_SystemTemplate [constr_5094]).

Note: If PNCs are assigned to different ComMChannels and those ComMChannels


are not coordinated by a PNC gateway, then the network topology and
communication design has to ensure, that the affected ComMChannels are
requested and released to the same point in time. If PNCs are used, an application
should not care about ComMChannel states, and additionally, ComM will not take
care about ComMChannel states for this use case, since the PNC coordination for
those ComMChannels is not performed. Or in other words, if a PNC is requested
(passively) then also all referenced ComMChannels shall be requested (passively),
because an application expects that all ComMChannels assigned to this PNCs reside
in COMM_FULL_COMMUNICATION.
Figure 4 depict an example for a PNC gateway (Node2) with not coordinated
ComMChannels

Figure 4: Example for a PNC gateway with not coordinated ComMChannels (see Node2)

52 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

7.1.4.2 Active PNC Gateway

Note: Even if the configuration parameter ComMPncGatewayEnabled (see


ECUC_ComM_00887 : ) is TRUE and the parameter ComMPncGatewayType is set
to COMM_GATEWAY_TYPE_ACTIVE for a ComMChannel (see
ECUC_ComM_00842 : ), the active PNC gateway still behaves as shown in Figure
2: PNC State Machine.

Comment: An active PNC gateway on a system channel shall be the last node on a
system channel that releases a PNC.

Comment: If the PNC bit for a PNC is equal to zero in all ERAn, no other node than
the PNC gateway is requesting the PNC.

7.1.4.3 Passive PNC Gateway

Comment: The passively coordinated channels exist only if they are connected to
more than one PNC gateway. If the PNC gateway functionality of ComM is enabled
(ComMPncGatewayEnabled is set to TRUE) ComM channels mapped to this PNC
gateway can be set to type active or passive (COMM_GATEWAY_TYPE_ACTIVE or
COMM_GATEWAY_TYPE_PASSIVE). If a ComM channel is mapped to two different
PNC gateways, only one gateway coordinates this channel actively, while the other
passively. That means, a PNC gateway is always mapped to at least one ComM
channel type active and may be mapped to one or some ComM channels type
passive.

Comment: A PNC gateway requests the PNC if a local ComM user requests the PNC
or at least one PNC bit within ERA originate from the actively coordinated system
channels of a passive PNC gateway is not equal to 0.

Comment to [SWS_ComM_00959]: A PNC gateway calculates the PNCs bit value in


the ERA Tx PNC bit vectors to be sent for a passively coordinated channel, in the
same manner as the PNC bit value in ERA for an actively coordinated channel, but
sets the PNC's bit to ‘0’ according to the rules of [SWS_ComM_00959].

7.1.4.4 Synchronized PNC shutdown


A PN topology always reflects a hierarchical topology, where the so-called top-level
PNC coordinator is located on the highest level. On the subordinated levels multiple
so-called intermediate PNC coordinators and PNC leaf nodes could reside.

53 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Figure 5: Example for a partial network (PN) topology that reflect the hierarchy
Figure 5 shows PNC-Coor1 as top-level PNC coordinator, PNC-Coor2 as
intermediate PNC coordinator and Node1 as PNC leaf node which resides on the
lowest level of the PN topology. For example, if Node1 requests PNC1, then the PNC
request is propagated across the PN to the top-level PNC coordinator. The top-level
PNC coordinator “takes over” the PNC request and mirrors back the PNC request to
the whole PN. If for example Node1 releases PNC1 and no other ECU in the network
has PNC1 requested, then Node1 will still receive Nm frames from the top-level PNC
coordinator where the PNC1 is requested. The release of the PNC leaf node is not
forwarded immediately across the PN topology from the PNC leaf node to the top-
level PNC coordinator. The release of a PNC is delayed by the PN reset time on
each PN topology level. If the top-level PNC coordinator detect that a PN reset timer
for a particular PNC expires, then no other ECU in the PN request this PNC. The top-
level PNC coordinator resets the PN reset timer of the released PNC once more and
transmits a so-called PN shutdown message to ensure a nearly synchronized
shutdown of the PNC, across all PN levels from the top-level PNC coordinator down
to the PNC leaf node. An intermediate PNC coordinator reacts immediately upon
reception on a PN shutdown message. Therefor the intermediate PNC coordinator
releases the indicated PNC, resets the PN reset timer once more and forwards the
PN shutdown message on all ComMChannels which are actively coordinated and
assigned to the affected PNC. Thus, all PNC state machines of the released PNC
across all PN level from the top-level PNC coordinator down to the PNC leaf nodes
reside in COMM_PNC_READY_SLEEP and reset the corresponding PN reset timer
nearly in the same point in time. This will lead to a synchronized PNC shutdown to
avoid timeouts on application level.
54 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Please refer also to the sequence diagrams Figure 17 and Figure 18 which depict the
handling of a synchronized PNC shutdown in the role of a top-level PNC coordinator
and an intermediate PNC coordinator.

Note:
 For ComMChannels which are configured for a uni-directional PNC handling
(see 7.1.6.2), no synchronized PNC shutdown is performed.
 For PNCs which reference a ComMChannel via the parameter
ComMChannelPerTxOnlyPnc (see 7.1.6.3), no synchronized PNC shutdown
is performed.

7.1.4.5 Support for multiple top-level PNC coordinators


According to chapter 7.1.4.4 a PN topology always have at least one top-level PNC
coordinator. The top-level PNC coordinator for a particular PNC is designated if all
ComMChannels have ComMPncGatewayType set to GATEWAYE_TYPE_ACTIVE
where this particular PNC is assigned to (see [SWS_ComM_01083]). Thus, for
different PNCs it is possible to have different top-level PNC coordinators. But for the
same PNC only one top-level coordinator is supported. The modelling of such a PN
topology has to ensure a strict separation of PNCs. Figure 6 shows a supported PN
topology for multiple top-level PNC coordinators.

Figure 6: Example for a valid PN with multiple top-level PNC coordinators


In Figure 6 PNC-Coor1 act as top-level PNC coordinator for PNC1 and PNC2. PNC-
Coor3 act as top-level PNC coordinator for PNC3. Thus, if synchronized PNC
shutdown is enabled, PNC-Coor1 is responsible to initiate a synchronized PNC

55 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

shutdown for PNC1 and PNC2. PNC-Coor3 is responsible to initiate a synchronized


PNC shutdown for PNC3.

Note: The network topology and communication design has to ensure a valid and
supported PN topology

7.1.5 Dynamic PNC-to-channel-mapping (optional)

This feature adds the possibility to update the PNC-to-channel-mapping of the PNC
Gateway during runtime. This update works via a request-response-based learning
process of all participating Nodes. When Partial Network learning is requested within
the Nm PDUs, all participating Nodes will respond their current PNC membership on
the corresponding channel and the PNC Gateway then updates the current PNC-to-
channel-mapping accordingly.

[SWS_ComM_CONSTR_00004] {DRAFT} ⌈If at least one channel is referenced by a


PNC by using ComMChannelPerTxOnlyPnc, then
ComMDynamicPncToChannelMappingSupport shall be set to FALSE. Otherwise the
configuration is invalid. A configuration tool shall reject such a configuration as invalid
(error).⌋ ()

[SWS_ComM_01026] {DRAFT} ⌈ If the function


ComM_Nm_PncLearningBitIndication has been called on a channel where
ComMDynamicPncToChannelMappingEnabled is set to TRUE or when ComM
calls Nm_PnLearningRequest on a channel ComM shall set the PNC Learning
Phase to active for the according channel.⌋(SRS_ModeMgm_09260)

[SWS_ComM_01029] {DRAFT} ⌈ If
ComMDynamicPncToChannelMappingEnabled is set to TRUE and function
ComM_Nm_RepeatMessageLeftIndication has been called ComM shall set the
PNC Learning Phase to inactive for the according channel.⌋(SRS_ModeMgm_09265)

[SWS_ComM_01028] {DRAFT} ⌈If ComMPncGatewayEnabled is set to TRUE and


the function ComM_Nm_PncLearningBitIndication has been called for a
channel either of the following actions shall be performed:
 when ComM_Nm_PncLearningBitIndication is called for a channel where
ComMPncGatewayType is set to COMM_GATEWAY_TYPE_ACTIVE, ComM
shall forward the Learning Request by calling Nm_PnLearningRequest on
all further coordinated ComM channels (active or passive) with
ComMDynamicPncToChannelMappingEnabled is set to TRUE
 when ComM_Nm_PncLearningBitIndication is called for a channel where
ComMPncGatewayType is set to COMM_GATEWAY_TYPE_PASSIVE,
ComM shall forward the Learning Request by calling
Nm_PnLearningRequest on ComM channels with ComMPncGatewayType
set to COMM_GATEWAY_TYPE_ACTIVE and
ComMDynamicPncToChannelMappingEnabled is set to TRUE
⌋(SRS_ModeMgm_09261)

56 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Rational: Partial network learning bit needs to be forwarded to all nodes in the
network but it needs not to be mirrored back even in the case when network topology
contains circles.

Note: Forwarding only on all active coordinated channels where the request has not
been received is sufficient as due to there is only one master gateway (see
AUTOSAR_TPS_SystemTemplate [constr_5094] the information is spread over the
whole system. The initial request is started by the application of one node in the
network with a call of ComM_PnLearningRequest (refer to [SWS_ComM_01046]).

[SWS_ComM_01030] {OBSOLETE replaced by [SWS_ComM_01090]} ⌈ If


ComMPncGatewayEnabled and ComMPncDynamicMappingSupport are set to
TRUE and when the PNC Learning Phase is active, then ComM shall forward
received ERA Rx information on channels where
ComMPncDynamicMappingEnabled is set to TRUE. Therefore, ComM shall set the
affected PN bit(s) to the assigned Com signals with
ComMPncComSignalDirection “TX” on all other channels where
ComMPncDynamicMappingEnabled is set to TRUE.⌋ (SRS_ModeMgm_09261)

[SWS_ComM_01090] {DRAFT} ⌈ If ComMPncGatewayEnabled and


ComMPncDynamicMappingSupport are set to TRUE and when the PNC Learning
Phase is active, then ComM shall forward received ERA Rx information on channels
where ComMPncDynamicMappingEnabled is set to TRUE. Therefore, ComM shall
set the affected PNC bit(s) in all affected ERAn on all other channels where
ComMPncDynamicMappingEnabled is set to TRUE.⌋ (SRS_ModeMgm_09261)

7.1.5.1 Update PNC-to-channel-mapping

The PNC Gateway needs to be capable to update its PNC-to-channel Mapping on


runtime.

[SWS_ComM_01031] {OBSOLETE replaced by [SWS_ComM_01091]} ⌈ If


ComMPncGatewayEnabled is set to TRUE and when the PNC Learning Phase is
active and an ERA Rx Signal is received on a channel where
ComMDynamicPncToChannelMappingEnabled is set to TRUE ComM shall set
PNC-to-channel Mapping to 1 for every ComMPnc on the according channel where
this ERA Rx Signal has been received with 1 for the according
PNC.⌋(SRS_ModeMgm_09258)

[SWS_ComM_01091] {DRAFT} ⌈ If ComMPncGatewayEnabled is set to TRUE and


when the PNC Learning Phase is active and an PNC bit in the ERA is set to “1” on a
channel where ComMDynamicPncToChannelMappingEnabled is set to TRUE
ComM shall set PNC-to-channel Mapping to 1 for every ComMPnc on the according
channel where this PNC bit in the ERA has been set to “1” for the according
PNC.⌋(SRS_ModeMgm_09258)

7.1.5.2 PNC Membership Forwarding

57 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Every participating Node has to transmit its current PNC membership during PNC
Learning phase. The PNC Gateway needs additionally also forward PNC
memberships received from other channels.

[SWS_ComM_01032] {OBSOLETE replaced by [SWS_ComM_01092]} ⌈ If


ComMPncGatewayEnabled is set to FALSE and when the PNC Learning Phase is
active, the ComM shall send for all ComM channels where
ComMDynamicPncToChannelMappingEnabled is set to TRUE the assigned Com
signals with ComMPncComSignalDirection “TX” with the value of the current PNC
membership. ⌋(SRS_ModeMgm_09262)

[SWS_ComM_01092] {DRAFT} ⌈ If ComMPncGatewayEnabled is set to FALSE


and when the PNC Learning Phase is active, the ComM shall set the corresponding
PNC bits in the IRA with the value of the current PNC membership and call
Nm_UpdateIRA(<channel>, <IRA>) for all ComM channels where
ComMDynamicPncToChannelMappingEnabled is set to TRUE.
⌋(SRS_ModeMgm_09262, SRS_ModeMgm_09250)

[SWS_ComM_01033] {OBSOLETE replaced by [SWS_ComM_01093]} ⌈ If


ComMPncGatewayEnabled is set to TRUE and when the PNC Learning Phase is
active, the ComM shall send for all ComM channels where
ComMDynamicPncToChannelMappingEnabled is set to TRUE the assigned Com
signals with ComMPncComSignalDirection “TX” with the value of the current PNC
membership merged with the PNC information that needs to be forwarded according
to [SWS_ComM_01030].⌋(SRS_ModeMgm_09261)

[SWS_ComM_01093] {DRAFT} ⌈ If ComMPncGatewayEnabled is set to TRUE and


when the PNC Learning Phase is active, the ComM shall call
Nm_UpdateIRA(<channel>, <IRA>) for all ComM channels where
ComMDynamicPncToChannelMappingEnabled is set to TRUE with the IRA set
with the value of the current PNC membership merged with the PNC information that
needs to be forwarded according to [SWS_ComM_01090].⌋(SRS_ModeMgm_09261,
SRS_ModeMgm_09250)

7.1.6 Partial Networking Configuration Hints

The partial network configuration has to consider the configuration of the


corresponding PN filter mask in NM of the corresponding NM-channels. If using a
SystemDescriptionExtract to configure the BSW stack and the modelled partial
network is available within the SystemDescriptionExtract, then the PN filter mask is
derived automatically per each NM-channel. It is up to the integration process and
the integration restriction to change the PN filter mask manually after the derivation.
The integration process and particular restrictions is not dedined by AUTOSAR to
support flexibility.

The following chapters describe the supported use cases to be considered for a
proper PNC handling of PNC gateways and none PNC gateways

58 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

7.1.6.1 Bi-directional PNC handling


This means, that PNC requests are always transferred in both directions. The
handling of PNC request is symmetrically for transmission and reception:
 PNC gateways forward incoming (external) PNC request and mirror them back
 None PNC gateways react on incoming PNC request and transmit PNC
requests according to PNC assignment

Thus, ComM transmit and handle received PNC requests for a PNC on those
ComMChannels, where a particular PNC refer to the ComMChannel by using the
parameter ComMChannelPerPnc (see ECUC_ComM_00880 : ). The correctness of
received PNCs within the PNC bit vector according to the ComMChannel assignment
has to be ensured by a proper configuration of the PN filter mask per NM-channel in
the NmIf.

Note: ComM doesn’t check the correctness of the received PNC according to the
ComMChannel assignment:
 For EIRA updates, ComM has no possibility to check on which ComMChannel
the PNC request was received, since the ComMChannel information is not
forwarded by the NmIf.
 For ERA updates, a check could be done, but it was decided in AUTOSAR to
release ComM from this responsibility.

In both cases (PNC gateway use case and none PNC gateway) the PN filter mask of
a NM-channel have to pass all PNCs which are reference the corresponding
ComMChannels via ComMChannelPerPnc

7.1.6.2 Uni-directional PNC handling


This means, that PNC requests are transferred in one direction. The handling of PNC
request is asymmetrically for transmission and reception:
 PNC gateways forward incoming (external) PNC request but do not mirror it
back on the ComMChannel the PNC request was received
 None PNC gateways transmit PNC requests for PNCs on ComMChannels,
where this PNC is not assigned to

For PNC gateways the PN filter mask of a NM-channel has to pass all PNCs which
are acceptable to be received on a ComMChannel and the PNCs do NOT refer the
ComMChannes via ComMChannelPerPnc (no PNC-channel relation exist).
Addtionally, the PNC ERA handling has to be enabled for the according NM-channel.
For received PNC requests on ComMChannel where no PNC-channel relation exit,
only the forwarding of PNC requests and no mirroring back on the receiving
ComMChannel will be performed. For received PNC requests on a ComMChannel
where a PNC-channel relation exit, the bi-directional PNC handling will be performed.
The uni-directional PNC handling for PNC gateways could be used, e.g. when a
network needs information from a certain PNC but there is no need to provide any
information back.

For none PNC gateways the PN filter mask of a NM-channel has to reject all PNCs
which are considered to be only transmitted on a ComMChannel. Received PNC
request of those ComMChannel should not be handled and therefore should not
reach ComM.
59 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

The uni-directional PNC handling for none PNC gateways could be used, e.g. when
an ECU needs to wake-up or keep-alive some functionality without being part of it.

7.1.6.3 Transmission only PNC handling


This means, that internal PNC requests (i.e. triggered by a user) or PNC requests
due to PNC coordination (i.e. triggered externally by a received PNC request (ERA
Rx)) are transferred for transmission. Thereby only the internal request array (IRA) is
updated without requesting the according ComMChannel. This could be achieved via
a proper configuration:
 If a PNC refer to a ComMChannel by using the parameter
ComMChannelPerTxOnlyPnc (see ECUC_ComM_00900 : ), then the
corresponding PNC state machine is NOT requesting the referenced
ComMChannel state machine, if the PNC is requested. Such PNC requests
are transmitted on the according ComMChannel within a NM-PDU, if the
ComMChannel is requested by e.g. another PNC which refer to this
ComMChannel via ComMChannelPerPnc or a dedicated ComMUser

Note: If a PNC refer to a ComMChannel via ComMChannelPerTxOnlyPnc (see


ECUC_ComM_00900 : ), the ComMChannel is not referenced by another PNC via
ComMChannelPerPnc and a PNC request is received on that channel or a wake up
is detected, then the PNC statemachine will stay in PNC_NO_COMMUNICATION.
(Please refer to [SWS_ComM_01063, [SWS_ComM_01064],
[SWS_ComM_01065], [SWS_ComM_01066])

The transmission-only-PNC handling could be used e.g. for none PNC gateways to
request only PNCs without additionally requesting the NM.
The transmission only PNC handling could be used e.g. for PNC gateways to receive
uni-directional PNC request (PNC1) on one channel (channel A) and forward the
PNC request without requesting the NM on another channel (channel B). On channel
B PNC1 is configured for bi-directional PNC handling, therefore a received PNC
request for PNC1 is forwarded to channel A by considering to request the affected
ComMChannels and the according NM.

Note: The reference ComMChannelPerTxOnlyPnc cannot be derived from a


SystemDescriptionExtract. The reference from a PNC to a ComM channel via
ComMChannelPerTxOnlyPnc could only be added manually within the integration
phase.

7.2 ComM channel state machine


[SWS_ComM_00979] ⌈If the optional PNC functionality is enabled (see
ECUC_ComM_00883), all PNC actions shall be performed before the channel
related actions are executed.⌋(SRS_ModeMgm_09243)

[SWS_ComM_00980] ⌈If the parameter ComMPncNmRequest is set to TRUE (see


ECUC_ComM_00886), if the “FULL Communication” is requested due to a change in
the PNC state machine to COMM_PNC_REQUESTED (see SWS_COMM_00993)
API Nm_NetworkRequest() shall be called, even if the current state is already "Full
communication".⌋(SRS_ModeMgm_09243)
60 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Rationale: It is the trigger to enable the NM to transmit the NM message immediately


n-times (n=configurable) to ensure a wake up and a synchronization of the PNC
transceiver.

[SWS_ComM_00051] ⌈ComM shall implement one channel state machine as shown


in Figure 7 with requirements as listed in Table 1 for every communication channel
independently.⌋(SRS_ModeMgm_09080)

Rationale for SWS_ComM_00051: Needed communication capability of channels


may be different, thus the controlling must be independent.

Use Case for SWS_ComM_00051: On an ECU with CAN and LIN channel, only the
LIN requires full communication to request e.g. sensor values while the CAN remains
inactive.

COMM_FULL_COMMUNICATION
ComM_RequestComMode(<user>,
ComM_RequestComMode(<user>, ComM_RequestComMode(<user>, COMM_FULL_COMMUNICATION)
COMM_FULL_COMMUNICATION) COMM_NO_COMMUNICATION) [Communication limitation enabled]
ComM_RequestComMode(<user>,
COMM_FULL_COMMUNICATION)
[Communication limitation disabled]
COMM_FULL_COM_NETWORK_REQUESTED COMM_FULL_COM_READY_SLEEP
ComM_DCM_ActiveDiagnostic(ChX)
Timer ComMTMinFullComModeDuration has
expired No user request
ComM_RequestComMode(<user>,
COMM_FULL_COMMUNICATION) and No
ComM_DCM_ActiveDiagnostic(ChX)
[ComMNmVariant = LIGHT | NONE]

No user request ComM_RequestComMode(<user>,


COMM_FULL_COMMUNICATION) and No
ComM_DCM_ActiveDiagnostic(ChX)
[ComMNmVariant = FULL]

No user request ComM_RequestComMode(<user>,


COMM_FULL_COMMUNICATION [ComMNmVariant
= SLAVE_ACTIVE]

[ComMNmVariant = PASSIVE | SLAVE_PASSIVE]

Communication limitation requested [No


active Diagnostic on ChX]

ComM_RequestComMode(<user>, Timer ComMLightTimeout


COMM_FULL_COMMUNICATION) has expired
ComM_Nm_PrepareBusSleepMode(ChX) [ComMNmVariant = LIGHT]
[Communication limitation ComM_Nm_NetworkMode(ChX)
disabled]
ComM_DCM_ActiveDiagnostic(ChX)

COMM_SILENT_COMMUNICATION ComM_BusSM_BusSleepMode(ChX)
[EcuM entered RUN for the channel] [ComMNmVariant = SLAVE_ACTIVE [ComMBusType =
[CommunicationAllowed=TRUE] or SLAVE_PASSIVE] COMM_BUS_TYPE_INTERNAL]

ComM_RequestComMode(<user>, ComM_Nm_BusSleepMode(ChX) ComM_Nm_BusSleepMode(ChX)


COMM_NO_COMMUNICATION)

COMM_NO_COMMUNICATION

ComM_RequestComMode(<user>,
COMM_NO_COM_REQUEST_PENDING COMM_FULL_COMMUNICATION) COMM_NO_COM_NO_PENDING_REQUEST
[Communication limitation disabled]

ComM_DCM_ActiveDiagnostic(ChX)

ComM_EcuM_PNCWakeUpIndication(PNC)or
ComM_EcuM_WakeUpIndication(ChX) or
ComM_Nm_RestartIndication(ChX) or
ComM_Nm_NetworkStartIndication(ChX)

Pending request for


COMM_FULL_COMMUNICATION canceled

ComM_RequestComMode(<user>,
ComM_RequestComMode(<user>,
COMM_FULL_COMMUNICATION) COMM_NO_COMMUNICATION)

ComM state machine for Channel X

ChX - Channel ID
<user> - A user configured to ChX

PNC - PNC Id

Figure 7: ComM channel state machine


61 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

State Section / Requirement


COMM_NO_COMMUNICATION 7.2.2
Entering state: SWS_ComM_00898,
SWS_ComM_00313, SWS_ComM_00073,
SWS_ComM_00288
In sub-state COMM_NO_COM_NO_PENDING_REQUEST:
SWS_ComM_00875, SWS_ComM_00876,
SWS_ComM_00893, SWS_ComM_00894,
SWS_ComM_00694, SWS_ComM_01014,
SWS_ComM_01015
In sub-state COMM_NO_COM_REQUEST_PENDING:
SWS_ComM_00895 ,SWS_ComM_00897
COMM_SILENT_COMMUNICATION 7.2.3
Entering state: SWS_ComM_00071
In state: SWS_ComM_00877,
SWS_ComM_00878 SWS_ComM_00295,
SWS_ComM_00296
COMM_FULL_COMMUNICATION 7.2.4
Entering state: SWS_ComM_00069
In state: SWS_ComM_00637,
SWS_ComM_00826
7.2.4.1
sub-state COMM_FULL_COM_NETWORK_REQUESTED:
In sub-state: SWS_ComM_00869,
SWS_ComM_00870, SWS_ComM_00665,
SWS_ComM_00888, SWS_ComM_00889,
SWS_ComM_00890
7.2.4.2
sub-state COMM_FULL_COM_READY_SLEEP
Entering sub-state: SWS_ComM_00133
In sub-state: SWS_ComM_00610,
SWS_ComM_00671, SWS_ComM_00882,
SWS_ComM_00883
Transition Requirement
COMM_NO_COMMUNICATION  SWS_ComM_00893, SWS_ComM_00894,
COMM_FULL_COMMUNICATION
SWS_ComM_00694, SWS_ComM_00875
SWS_ComM_00876, SWS_ComM_01014,
SWS_ComM_01015
COMM_FULL_COM_NETWORK_REQUESTED  SWS_ComM_00665
COMM_FULL_COM_READY_SLEEP
COMM_FULL_COM_READY_SLEEP  SWS_ComM_00882, SWS_ComM_00883
COMM_FULL_COM_NETWORK_REQUESTED
COMM_FULL_ COMMUNICATION  SWS_ComM_00826
COMM_SILENT_COMMUNICATION
COMM_FULL_COM_READY_SLEEP  SWS_ComM_00610, SWS_ComM_00671
COMM_NO_COMMUNICATION
COMM_FULL_COMMUNICATION  SWS_ComM_00637
COMM_NO_COMMUNICATION
COMM_SILENT_COMMUNICATION  SWS_ComM_00877, SWS_ComM_00878
COMM_FULL_COMMUNICATION
COMM_SILENT_COMMUNICATION  SWS_ComM_00296
COMM_FULL_COM_READY_SLEEP
COMM_SILENT_COMMUNICATION  SWS_ComM_00295
COMM_NO_COMMUNICATION
Table 1: Link to detailed explanation of the channel state machine resp. transition

62 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_00879] ⌈The ComM channel state machine shall consist of the three
main states corresponding to the Communication Modes:
COMM_NO_COMMUNICATION, COMM_SILENT_COMMUNICATION and
COMM_FULL_COMMUNICATION. ⌋(SRS_ModeMgm_09083)

[SWS_ComM_00880] ⌈The COMM_FULL_COMMUNICATION state shall have two


sub-states COMM_FULL_COM_NETWORK_REQUESTED and
COMM_FULL_COM_READY_SLEEP. ⌋(SRS_ModeMgm_09083)

[SWS_ComM_00881] ⌈The COMM_NO_COMMUNICATION state shall have two


sub-states COMM_NO_COM_REQUEST_PENDING and
COMM_NO_COM_NO_PENDING_REQUEST⌋(SRS_ModeMgm_09083)

Rationale for SWS_ComM_00879 and SWS_ComM_00880:


COMM_FULL_COM_READY_SLEEP and COMM_SILENT_COMMUNICATION are
necessary to synchronize a communication shutdown on the bus. If only one ECU
switches the communication off, the others store errors because this ECU stops
sending application signals.

Comment: The main states present an abstracted status of communication


capabilities per channel, which are in focus of the users’ interests. The sub-states
represent intermediate states, which perform activities to support a synchronized
transition with external partners and managing protocols (e.g. NM)

[SWS_ComM_00485] ⌈The default state for each ComM channel state machine shall
be COMM_NO_COMMUNICATION.⌋(SRS_ModeMgm_09083)

[SWS_ComM_00896] ⌈Each ComM channel state machine shall only evaluate its
corresponding communication status flag CommunicationAllowed according to
SWS_ComM_00884 in sub-state COMM_NO_COM_REQUEST_PENDING.⌋()

Rationale for SWS_ComM_00896:


A ComM_CommunicationAllowed(<channel>,FALSE) (SWS_ComM_00871)
indication has no visible effect if the channel is not in sub-state
COMM_NO_COM_REQUEST_PENDING, i.e. ComM channel state machine will not
immediately change to state COMM_NO_COMMUNICATION if in another state as e.g.
COMM_FULL_COMMUNICATION

[SWS_ComM_00472] ⌈Main state changes (see SWS_ComM_00879) shall be


indicated to the users with the corresponding notifications (see section 8.6.1.5 and
8.6.1.6). Exception: Default state after initialization, see
SWS_ComM_00313.⌋(SRS_ModeMgm_09085)

Comment: If more than one user is related to the corresponding channel state
machine, the ComM module has to perform a Fan-out to all users.

[SWS_ComM_00191] ⌈The internal functionality of the ComM channel state


machine(s) shall be invisible for the users. The user neither needs nor shall get any

63 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

information about the internal mechanisms and rules (e.g. "highest wins" strategy) of
the ComM channel state machine.⌋()
An overview of the requested communication capabilities in the Corresponding Mode is shown in
Table 2.

Message Message NM Wake-up/Restart


Communication Mode
Transmission Reception (COMM_NM_VARIANT=FULL) capability
COMM_FULL_COMMUNICATION On On Bus communication N/A
requested
COMM_FULL_COMMUNICATION_WIT On On Bus communication Request the lower layer
H_WAKEUP_REQUEST requested to trigger a wake-up on
the network
COMM_SILENT_COMMUNICATION Off On Bus communication  User/diagnostic request
released  Network indication
COMM_NO_COMMUNICATION Off Off Bus communication  User/diagnostic request
released  Passive wake-up
Table 2: Granted communication capabilities in the corresponding modes

[SWS_ComM_01056] ⌈Requests for communication mode


COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST shall be handled as request for
COMM_FULL_COMMUNICATION within the ComM channel state machine. Deviations of ComM
channel machine state transitions and behavior within the states are specified
explicitly.⌋(SRS_ModeMgm_09268)

Note for section 7.1.1 - 7.1.3: Each ComM channel state machine is responsible to
handle one channel/network with a connected Bus State Manager (“corresponding” =
the channel/network the ComM channel state machine is responsible for).

Note for section 7.1.1 - 7.1.3: The ComM module contains one or several ComM
channel state machine(s). ComM channel state machine communicates directly with
its connected Bus State Manager, other interfaces are handled by the ComM
module.

7.2.1 ComM managed and managing channels

A ComM channel could reference other ComM channels. The reference is


configurable by setting ComMManageReference (see ECUC_ComM_00893). The
source ComM channel of a ComMManageReference is called "managing channel"
and the target ComM channel is called "managed channel". A managing channel
could reference 0..n managed channels. A managed channel could be referenced by
exclusively 1 managing channel.
This is used to support use cases, were a managing channel handle the interaction
with the NM module and the managed channel has no NM.

Note: The following limitation have to be considered for a managing channel:


 ComMNmVariant of a managing channel is set to FULL (see
ECUC_ComM_00568)

Note: The following limitations have to be considered for a managed channel:


 ComMNmVariant of a managed channel is set to LIGHT, since the managing
channel is responsible for the interaction with the NmChannel (see
ECUC_ComM_00568)
64 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

 ComMPncGatewayType of a managed channel is neither set to


COMM_GATEWAY_TYPE_ACTIVE nor COMM_GATEWAY_TYPE_PASSIVE
(see ECUC_ComM_00842)

7.2.2 Behavior in state COMM_NO_COMMUNICATION

[SWS_ComM_00898] ⌈On entering state COMM_NO_COMMUNICATION the ComM


channel state machine shall go to sub-state
COMM_NO_COM_NO_PENDING_REQUEST.⌋()

[SWS_ComM_00313] ⌈On entering state COMM_NO_COMMUNICATION by default


after initialization, ComM module shall not indicate the mode change to users via
RTE or BswM.⌋()

Rationale for SWS_ComM_00313: The RTE is not yet initialized at this point in time.

[SWS_ComM_00073] ⌈On entering state COMM_NO_COMMUNICATION the ComM


channel state machine shall switch off the transmission and reception capability. This
shall be performed by the ComM channel state machine requesting the
corresponding Communication Mode from the Bus State Manager module
(XXSM_RequestComMode(network:=<channel state machine’s
network>, mode:= COMM_NO_COMMUNICATION, see SWS_ComM_00829)).⌋()

Rationale for SWS_ComM_00073: The COMM_NO_COMMUNICATION mode forbids


sending and receiving of bus communication PDUs for the corresponding channels.

[SWS_ComM_00288] ⌈On entering state COMM_NO_COMMUNICATION and


configuration parameter ComMNmVariant=FULL (see ECUC_ComM_00568) the
ComM module shall request release of the network from the Network Management
module, Nm_NetworkRelease().⌋(SRS_ModeMgm_09132)

Note: Nm_NetworkRelease is needed if ComM has requested the NM


(Nm_NetworkRequest or Nm_PassiveStartup) for that channel before and has not
yet released it.

Rationale for SWS_ComM_00073, SWS_COMM_00288 , SWS_ComM_00875 and


SWS_ComM_00876: FlexRay shutdown cannot be interrupted to avoid partial
networks.

Comment: In state COMM_NO_COMMUNICATION ComM channel state machine may


not request bus communication for the configured channel from the Bus State
Manager module.

Use Case for above Comment: The ECU is performing control functions locally
without participation in bus communication.

65 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Comment: The communication mode is local for one channel, thus the ECU may still
communicate via other channels.

7.2.2.1 COMM_NO_COM_NO_PENDING_REQUEST sub-state

[SWS_ComM_00875] ⌈In sub-state COMM_NO_COM_NO_PENDING_REQUEST and


user requests COMM_FULL_COMMUNICATION and communication limitation is
disabled (see Section 7.4.1), the ComM channel state machine shall immediately
switch to sub-state COMM_NO_COM_REQUEST_PENDING.⌋()

[SWS_ComM_00876] ⌈In sub-state COMM_NO_COM_NO_PENDING_REQUEST


,configuration parameter ComMNmVariant=FULL|LIGHT|NONE (see
ECUC_ComM_00568) and DCM indicate ComM_DCM_ActiveDiagnostic (see
SWS_ComM_00873), the ComM channel state machine shall immediately switch to
sub-state COMM_NO_COM_REQUEST_PENDING.⌋()

Rationale for SWS_ComM_00876: A potential communication limitation (see Section


7.4.1) shall temporarily be inactive during an active diagnostic session (see
SWS_ComM_00182)

Note for SWS_ComM_00876: For diagnostic activation it is assumed that diagnostic


tester keeps the bus awake, therefore no special handling needed for managed
channels.

[SWS_ComM_00893] ⌈If ComM_EcuM_WakeUpIndication is called in sub-state


COMM_NO_COM_NO_PENDING_REQUEST and configuration parameter
ComMSynchronousWakeUp is set to FALSE (see ECUC_ComM_00695), the ComM
module shall switch the requested ComM channel state machine (resp. channels) to
sub-state COMM_NO_COM_REQUEST_PENDING. If the indicated ComM channel is a
managed channel, then the ComM channel state machine of the referencing
managing channel (see ECUC_ComM_00893) shall also be switched to sub-state
COMM_NO_COM_REQUEST_PENDING.⌋(SRS_ModeMgm_09087)

[SWS_ComM_00894] ⌈In sub-state COMM_NO_COM_NO_PENDING_REQUEST and the


NM module indicates a restart, ComM_Nm_RestartIndication()
SWS_ComM_00792, the ComM channel state machine shall immediately switch to
sub-state COMM_NO_COM_REQUEST_PENDING. ⌋(SRS_ModeMgm_09087)

Rationale for SWS_ComM_00893 and SWS_ComM_00894: It must be guaranteed


that communication starts as soon as possible after a bus wake up.

Comment: The ComM channel state machine switches immediately to sub-state


COMM_FULL_COM_NETWORK_REQUESTED after entering the
COMM_FULL_COMMUNICATION state. If no user requests
COMM_FULL_COMMUNICATION mode, the AUTOSAR NM resp. the ComM module
timer for ComMTMinFullComModeDuration(ECUC_ComM_00557) prevent
toggling between COMM_NO_COMMUNICATION and COMM_FULL_COMMUNICATION to
overcome the init-/start-up time of the system, before possible user requests occur.
66 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_00694] ⌈If ComM_EcuM_WakeUpIndication is called in sub-state


COMM_NO_COM_NO_PENDING_REQUEST and configuration parameter
ComMSynchronousWakeUp is set to TRUE (see ECUC_ComM_00695), the ComM
module shall switch all ComM channel state machines (resp. channels) to sub-state
COMM_NO_COM_REQUEST_PENDING. ⌋ (SRS_ModeMgm_09248)

[SWS_ComM_01014] ⌈If ComM_EcuM_PNCWakeUpIndication(<PNC>) (see


SWS_ComM_91001) is called in sub-state COMM_NO_COM_NO_PENDING_REQUEST
and configuration parameters ComMSynchronousWakeUp is set to FALSE (see
ECUC_ComM_00695) and ComMPncSupport is set to TRUE (see
ECUC_ComM_00839), the ComM module shall switch these ComM channel state
machines (resp. channels) which are referenced by the PNC to sub-state
COMM_NO_COM_REQUEST_PENDING.⌋(SRS_ModeMgm_09248)

Note for SWS_ComM_01014: This includes ComM channel state machines of


managing channels, which are referenced by the indicated managed channels, as
ComMPncS reference always both types (see [31] constr_3484)

[SWS_ComM_01015] ⌈If ComM_EcuM_PNCWakeUpIndication(<PNC>) (see


SWS_ComM_91001) is called in sub-state COMM_NO_COM_NO_PENDING_REQUEST
and configuration parameters ComMSynchronousWakeUp is set to TRUE (see
ECUC_ComM_00695) and ComMPncSupportis set to TRUE (see
ECUC_ComM_00839), the ComM module shall switch all ComM channel state
machines (resp. channels) to sub-state COMM_NO_COM_REQUEST_PENDING.⌋(
SRS_ModeMgm_09248)

7.2.2.2 COMM_NO_COM_REQUEST_PENDING sub-state

[SWS_ComM_00895] ⌈In sub-state COMM_NO_COM_REQUEST_PENDING the ComM


channel state machine shall evaluate its corresponding CommunicationAllowed
flag, stored and set according to SWS_ComM_00884 and SWS_ComM_00885. If
evaluated to CommunicationAllowed is set to TRUE, the ComM channel state
machine shall immediately switch to state COMM_FULL_COMMUNICATION.⌋()

[SWS_ComM_00897] ⌈In sub-state COMM_NO_COM_REQUEST_PENDING and no


longer any valid pending request for COMM_FULL_COMMUNICATION, the ComM
channel state machine shall switch back to default sub-state
COMM_NO_COM_NO_PENDING_REQUEST.⌋(SRS_ModeMgm_09083)

Rationale for SWS_ComM_00897: This enable the possibility to switch back to


default sub-state if communication for some reason was never allowed. E.g.
transition to COMM_NO_COM_REQUEST_PENDING triggered by user request for
ComM_RequestComMode(<user>,COMM_FULL_COMMUNICATION)(see
SWS_ComM_00871) or DCM indicated
ComM_DCM_ActiveDiagnostic(<channel>) (see SWS_ComM_00873), but
now canceled with
ComM_RequestComMode(<user>,COMM_NO_COMMUNICATION) (see
67 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

SWS_ComM_00871) or DCM ComM_DCM_InactiveDiagnostic(<channel>)


(see SWS_ComM_00874).

7.2.3 Behaviour in state COMM_SILENT_COMMUNICATION

[SWS_ComM_00071] ⌈On entering state COMM_SILENT_COMMUNICATION the


ComM channel state machine shall switch off the transmission capability (and keep
reception capability on). This shall be performed by the ComM channel state
machine requesting the corresponding Communication Mode from the Bus State
Manager module (XXSM_RequestComMode(network:=<channel state
machine’s network>, mode:= COMM_SILENT_COMMUNICATION)
SWS_ComM_00829).⌋()

Rationale for SWS_ComM_00071: The COMM_SILENT_COMMUNICATION mode


permits receiving of bus communication PDUs and forbids sending of bus
communication PDUs.

Comment: It may happen that nothing is received (e.g. during bus off) despite
receiving capability is switched on.

Use Case: Shut down coordination with means of the NM module (prepare bus sleep
state).

[SWS_ComM_00877] ⌈In state COMM_SILENT_COMMUNICATION and user requests


COMM_FULL_COMMUNICATION and communication limitation is disabled (see
Section 7.4.1), the ComM channel state machine shall switch to state
COMM_FULL_COMMUNICATION.⌋(SRS_ModeMgm_09246)

[SWS_ComM_00878] ⌈In state COMM_SILENT_COMMUNICATION ,configuration


parameter ComMNmVariant=FULL|LIGHT|NONE (ECUC_ComM_00568) and DCM
indicate ComM_DCM_ActiveDiagnostic(SWS_ComM_00873), the ComM
channel state machine shall switch to state COMM_FULL_COMMUNICATION.⌋()

Rationale for SWS_ComM_00878: A potential communication limitation (see Section


7.4.1) shall temporarily be inactive during an active diagnostic session, see
SWS_ComM_00182

[SWS_ComM_00295] ⌈In state COMM_SILENT_COMMUNICATION and the Network


Manager module indicates ComM_Nm_BusSleepMode()(SWS_ComM_00392), the
ComM channel state machine shall switch to state COMM_NO_COMMUNICATION.⌋()

[SWS_ComM_00296] ⌈In state COMM_SILENT_COMMUNICATION and the Network


Manager module indicates ComM_Nm_NetworkMode() (SWS_ComM_00390), the
ComM channel state machine shall switch to state COMM_FULL_COMMUNICATION
and sub-state COMM_FULL_COM_READY_SLEEP.⌋()

68 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

7.2.4 Behaviour in state COMM_FULL_COMMUNICATION

[SWS_ComM_00899] ⌈On entering state COMM_FULL_COMMUNICATION the ComM


channel state machine shall go to sub-state
COMM_FULL_COM_NETWORK_REQUESTED, if not a specific sub-state is specified in
the transition.⌋()

Rationale for SWS_ComM_00899: When switching from


COMM_SILENT_COMMUNICATION, the ComM channel state machine can switch
directly to sub-state COMM_FULL_COM_READY_SLEEP, if specified in the transition,
see SWS_ComM_00296.

[SWS_ComM_00069] ⌈ On entering state COMM_FULL_COMMUNICATION the ComM


channel state machine shall switch on the transmission and reception capability. This
shall be performed by the ComM channel state machine requesting the
corresponding Communication Mode from the Bus State Manager module:
- If Communication Mode COMM_FULL_COMMUNICATION was requested , then
<Bus>SM_RequestComMode(network:=<channel state machine’s
network>, mode:= COMM_FULL_COMMUNICATION) shall be called
- If Communication Mode
COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST was requested and
ComMWakeupSleepRequestEnabled of the ComM channel is set to TRUE,
then <Bus>SM_RequestComMode(network:=<channel state
machine’s network>, mode:=
COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST) shall be called
- If Communication Mode
COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST was requested and
ComMWakeupSleepRequestEnabled of the ComM channel is set to FALSE
or not available, then <Bus>SM_RequestComMode(network:=<channel
state machine’s network>, mode:= COMM_FULL_COMMUNICATION)
shall be called

⌋(SRS_ModeMgm_09268)

Rationale for SWS_ComM_00069: The COMM_FULL_COMMUNICATION or


COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST mode permits sending
and receiving of bus communication PDUs for the corresponding channels.

[SWS_ComM_01057] ⌈ Every time a ComM channel is requested with


COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST and
ComMWakeupSleepRequestEnabled of the ComM channel is set to TRUE, ComM
shall request the corresponding network of the ComM channel by calling
<Bus>SM_RequestComMode(COMM_FULL_COMMUNICATION_WITH_WAKEUP_
_REQUEST), even if the ComM channel is already in state
COMM_FULL_COMMUNICATION. If ComMWakeupSleepRequestEnabled of the
ComM channel is set to FALSE or not available, the ComM shall ignore the
request.⌋(SRS_ModeMgm_09268)
69 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Note: The re-trigger of the <Bus>SM state machine is used to trigger a wake-up on
the network, if the used hardware is supporting such a functionality (e.g. Ethernet
hardware compliant to OA TC10 (see [33]))

[SWS_ComM_00637] ⌈In state COMM_FULL_COMMUNICATION and the Network


Manager module indicates ComM_Nm_BusSleepMode() (SWS_ComM_00392), the
ComM channel state machine shall switch to state COMM_NO_COMMUNICATION.⌋()

Rationale for SWS_ComM_00637: A user may request to keep the bus awake "too
late" (NM is not able to send a vote to keep the bus awake because the cluster
already agreed to shutdown).

[SWS_ComM_01018]⌈ In state COMM_FULL_COMMUNICATION and configuration


parameter ComMNmVariant=SLAVE_ACTIVE | SLAVE_PASSIVE and the Bus
State Manager module indicates ComM_BusSm_BusSleepMode() (see
SWS_ComM_91000), the ComM channel state machine shall switch to state
COMM_NO_COMMUNICATION.⌋(SRS_ModeMgm_09266, SRS_ModeMgm_09267)

[SWS_ComM_00826]⌈ In COMM_FULL_COMMUNICATION and configuration


parameter ComMNmVariant=FULL|PASSIVE (ECUC_ComM_00568) and the
Network Manager module indicates ComM_Nm_PrepareBusSleepMode()
(SWS_ComM_00391), the ComM state machine shall switch to state
COMM_SILENT_COMMUNICATION.⌋()

Rationale for SWS_ComM_00826: ComM_Nm_PrepareBusSleepMode() cannot be


received before an active request is released via Nm_NetworkRelease(), and a
PASSIVE channel cannot be woken up by an active wake-up, therefore it is safe to
assume that the transition is always valid.

7.2.4.1 COMM_FULL_COM_NETWORK_REQUESTED sub-state

[SWS_ComM_00886] ⌈On entering sub-state


COMM_FULL_COM_NETWORK_REQUESTED and configuration parameter
ComMNmVariant=LIGHT|NONE (ECUC_ComM_00568), the timer for
ComMTMinFullComModeDuration (ECUC_ComM_00557) shall be started.⌋()

[SWS_ComM_00665] ⌈On entering sub-state


COMM_FULL_COM_NETWORK_REQUESTED from COMM_NO_COM_REQUEST_PENDING
and EcuM module has indicated a wake-up by
ComM_EcuM_WakeUpIndication(<channel>) (see SWS_ComM_00275) or by
ComM_EcuM_PNCWakeUpIndication(<PNC>) (see SWS_ComM_91001), the
ComM module shall request Nm_PassiveStartup(<channel>) from the Network
Management. If the indicated ComM channel is a managed channel, the ComM
module shall request Nm_PassiveStartup(<referencing managing
channel>) (see ECUC_ComM_00893) from the Network Management.⌋()

70 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_01016]⌈ If the indicated ComM channel is a managed channel, the


ComM module shall request Nm_PassiveStartup(<referencing managing
channel>) (see ECUC_ComM_00893) from the Network Management.⌋()

[SWS_ComM_00902] ⌈On entering sub-state


COMM_FULL_COM_NETWORK_REQUESTED and Nm module has indicated a restart,
ComM_Nm_RestartIndication(<channel>) (SWS_ComM_00792), the ComM
module shall request Nm_PassiveStartup(<channel>) from the Network
Management⌋()

[SWS_ComM_00903] ⌈On entering sub-state


COMM_FULL_COM_NETWORK_REQUESTED and Nm module has indicated a Network
start, ComM_Nm_NetworkStartIndication(<channel>) (SWS_ComM_00383),
the ComM module shall request Nm_PassiveStartup(<channel>) from the
Network Management⌋()

Comment for SWS_ComM_00903:


This is not a “normal” transition to COMM_FULL_COMMUNICATION, ComM handle
ComM_Nm_NetworkStartIndication() as “race condition” error (see section
7.7.1)

[SWS_ComM_00869] ⌈On entering sub-state


COMM_FULL_COM_NETWORK_REQUESTED from another state or substate, if
configuration parameter ComMNmVariant=FULL (ECUC_ComM_00568) and if a
user has requested
ComM_RequestComMode(<user>,COMM_FULL_COMMUNICATION)
(SWS_ComM_00110) the ComM module shall request
Nm_NetworkRequest(<channel>) from the Network Management for the
corresponding NM channel.⌋(SRS_ModeMgm_00049)

Note: Additionally Nm_NetworkRequest may be invoked due to SWS_ComM_00980.

[SWS_ComM_00870] ⌈On entering sub-state


COMM_FULL_COM_NETWORK_REQUESTED, if configuration parameter
ComMNmVariant=FULL (ECUC_ComM_00568) and the DCM has indicated
ComM_DCM_ActiveDiagnostic(<channel>) (SWS_ComM_00873), the ComM
module shall request Nm_NetworkRequest(<channel>) from the Network
Management for the corresponding NM channel.⌋(SRS_ModeMgm_00049)

[SWS_ComM_00889] ⌈In sub-state COMM_FULL_COM_NETWORK_REQUESTED and


configuration parameter ComMNmVariant=LIGHT|NONE (ECUC_ComM_00568)
and timer for ComMTMinFullComModeDuration(ECUC_ComM_00557) has
expired and no user request
ComM_RequestComMode(<user>,COMM_FULL_COMMUNICATION) and the DCM
does not indicate
ComM_DCM_ActiveDiagnostic(<channel>)(SWS_ComM_00873), the ComM
channel state machine shall switch to sub-state COMM_FULL_COM_READY_SLEEP.⌋()

71 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Rationale for SWS_ComM_00889:


As long as timer for ComMTMinFullComModeDuration has not expired the sub-
state shall be kept, to prevent toggling.

[SWS_ComM_00888] ⌈In sub-state COMM_FULL_COM_NETWORK_REQUESTED and


configuration parameter ComMNmVariant=FULL (see ECUC_ComM_00568) and no
user request ComM_RequestComMode(<user>,COMM_FULL_COMMUNICATION)
and the DCM does not indicate ComM_DCM_ActiveDiagnostic(<channel>)(see
SWS_ComM_00873), the ComM channel state machine shall switch to sub-state
COMM_FULL_COM_READY_SLEEP.⌋()

Rationale for SWS_ComM_00888:


No timer needed if AUTOSAR NM is used. This avoids redundant functionality
because AUTOSAR NM also ensures this functionality

[SWS_ComM_01017] ⌈ In sub-state COMM_FULL_COM_NETWORK_REQUESTED and


configuration parameter ComMNmVariant=SLAVE_ACTIVE (ECUC_ComM_00568)
and no user request
ComM_RequestComMode(<user>,COMM_FULL_COMMUNICATION), the ComM
channel state machine shall switch to sub-state
COMM_FULL_COM_READY_SLEEP.⌋(SRS_ModeMgm_09266)

[SWS_ComM_00915] ⌈ In sub-state COMM_FULL_COM_NETWORK_REQUESTED and


configuration parameter ComMNmVariant=PASSIVE | SLAVE_PASSIVE
(ECUC_ComM_00568), the ComM channel state machine shall switch to sub-state
COMM_FULL_COM_READY_SLEEP.⌋(SRS_ModeMgm_09267)

[SWS_ComM_00890] ⌈In sub-state COMM_FULL_COM_NETWORK_REQUESTED and


the DCM does not indicate ComM_DCM_ActiveDiagnostic(<channel>)(see
SWS_ComM_00873) and communication limitation is requested (see section 7.4.1),
ComM channel state machine shall immediately switch to sub-state
COMM_FULL_COM_READY_SLEEP and cancel the timer for
ComMTMinFullComModeDuration.⌋()

7.2.4.2 COMM_FULL_COM_READY_SLEEP sub-state

[SWS_ComM_00133] ⌈On entering sub-state COMM_FULL_COM_READY_SLEEP and


configuration parameter ComMNmVariant=FULL (see ECUC_ComM_00568), the
ComM module shall request Nm_NetworkRelease() from the Network
Management for the corresponding NM channels.⌋()

[SWS_ComM_00891] ⌈On entering sub-state COMM_FULL_COM_READY_SLEEP and


configuration parameter ComMNmVariant=LIGHT (see ECUC_ComM_00568), the
timer for ComMNmLightTimeout (see ECUC_ComM_00606) shall be started.⌋()

[SWS_ComM_00610] ⌈In sub-state COMM_FULL_COM_READY_SLEEP and


configuration parameter ComMNmVariant=LIGHT (see ECUC_ComM_00568) and

72 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

the timer for ComMNmLightTimeout (see ECUC_ComM_00606) has expired, the


ComM channel state machine shall switch to state COMM_NO_COMMUNICATION.⌋()

[SWS_ComM_00671] ⌈In sub-state COMM_FULL_COM_READY_SLEEP and


configuration parameter ComMBusType=COMM_BUS_TYPE_INTERNAL
(ECUC_ComM_00567), the ComM channel state machine shall immediately switch
to state COMM_NO_COMMUNICATION.⌋()

[SWS_ComM_00882] ⌈In sub-state COMM_FULL_COM_READY_SLEEP and a user


request COMM_FULL_COMMUNICATION and communication limitation is disabled
(see Section 7.4.1), the ComM channel state machine shall immediately switch to
sub-state COMM_FULL_COM_NETWORK_REQUESTED.⌋()

[SWS_ComM_00883] ⌈In sub-state COMM_FULL_COM_READY_SLEEP, configuration


parameter ComMNmVariant=FULL|LIGHT|NONE (ECUC_ComM_00568) and DCM
indicate ComM_DCM_ActiveDiagnostic(SWS_ComM_00873), the ComM
channel state machine shall switch to sub-state
COMM_FULL_COM_NETWORK_REQUESTED.⌋()

Rationale for SWS_ComM_00883: A potential communication limitation (see Section


7.4.1) shall temporarily be inactive during an active diagnostic session, see
SWS_ComM_00182

[SWS_ComM_00892] ⌈In sub-state COMM_FULL_COM_READY_SLEEP and


configuration parameter ComMNmVariant=LIGHT (ECUC_ComM_00568) and a
switch to sub-state COMM_FULL_COM_NETWORK_REQUESTED, due to request for
COMM_FULL_COMMUNICATION according to requirements in SWS_ComM_00882 or
SWS_ComM_00883, the timer for ComMNmLightTimeout (ECUC_ComM_00606)
shall be canceled.⌋()

73 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

7.3 ComM User to PNC Relations

User User User User User

PNC PNC PNC 1 PNC 2 PNC

Channel Channel Channel 1 Channel 2 Channel 1 Channel 2 Channel

1: Configuration 2: Redundant 3: Configuration 4: Configuration 5: Configuration


with Partial Network Configuration with Partial Network with Partial Network without Partial Network
Gateway Use Case 1 Gateway Use Case 2

User User User

PNC
User

Channel Channel User PNC


User

Link-Information Control

EthIfSwitch- EthIfSwitch- Channel Channel


Portgroup Portgroup managing managed

6: Configuration 7: Configuration 8: Configuration


with Partial Network and without Partial Network with managing and managed channel. Note: if a user is
EthIfSwitchportgroup and EthIfSwitchportgroup mapped to a managed channel, then this user has also
control via BswM control via Channel request to be mapped to the corresponding managing channel.
Otherwise the configuration is invalid

User
User

PNC
PNC-1

Channel Channel
Channel1 Channel2 managing managed

9: Configuration 10: Configuration


With a ComMChannelPerTxOnlyPnc. With a ComMChannelPerTxOnlyPnc in combination
Note: PNC-1 request is transmitted on with a managing and managed channel. Note: The
Channel2 only. A received PNC-1 kind of reference to reference the managed channel
request on Channel2 is discarded and the corresponding managing channel has to be
the same

Reference ComMChannelPerPnc
Reference ComMChannelPerTxOnlyPnc
ComMManageReference

Figure 8: User to Partial network and channel Mapping Use Cases

[SWS_ComM_00994] ⌈No restrictions from the configuration of the BusNm Filter for
partial networking shall apply to ComM user assignment to PNCs.⌋()
74 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Comment: The BusNM Filter configuration shall be independent from the ComM PNC
configuration.

Rational: This enables waking up a PNC without being a member of the PNC, e.g. if
a node just triggers a wake up of a PNC but the node is not kept awake by the PNC
and other nodes keep the PNC awake

[SWS_ComM_00995] ⌈It shall be possible to map a configurable amount of


ComMUsers to one or more ComM channels using the parameter
ComMUserPerChannel.⌋(SRS_ModeMgm_09133, SRS_ModeMgm_09090)

Comment:
1.) The existing mapping of ComM users to system channels shall still be possible
for backward compatibility. (i.e. the configuration containers will stay
untouched)
2.) In a multi channel system each user can be assigned to one or more
channels. If the user requests a mode, all channels assigned to this user, shall
switch to the corresponding mode. All other channels shall not be affected.

[SWS_ComM_00912] ⌈It shall be possible to map a configurable amount of


ComMUsers to one or more PNCs using the parameter ComMUserPerPnc (see
ECUC_ComM_00876).⌋()

[SWS_ComM_00913] {OBSOLETE replaced by [SWS_ComM_01094]} ⌈It shall be


possible to map a configurable amount of PNC(s) to a configurable amount of ComM
channels using the parameter ComMChannelPerPnc (see ECUC_ComM_00880).
The mapping shall be possible for all ComMChannels in combination with the
following ComMNmVariants:
 ComMVariant=FULL
 ComMVariant=LIGHT, if the ComMChannel is in the role of a managed
ComMChannel and the corresponding managing ComMChannel is also
mapped to this PNC (see also 7.2.1)
⌋()

[SWS_ComM_01094] {DRAFT} ⌈It shall be possible to map a configurable amount


of PNC(s) to a configurable amount of ComM channels by using the parameter
ComMChannelPerPnc (see ECUC_ComM_00880 : ) or
ComMChannelPerTxOnlyPnc (see ECUC_ComM_00900 : ). The mapping shall be
possible for all ComMChannels in combination with the following ComMNmVariants:
 ComMVariant=FULL
 ComMVariant=LIGHT, if the ComMChannel is in the role of a managed
ComMChannel and the corresponding managing ComMChannel is also
mapped to this PNC (see also 7.2.1)
⌋()

[SWS_ComM_00996] ⌈It shall not be possible to map a ComMUsers to a PNC and in


addition to a ComM channel which is already referenced by the PNC (see figure 8
Use Case 2)⌋()
75 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Rational: Avoid redundant configuration since the channel is implicitly already


referenced by the PNC.

[SWS_ComM_CONSTR_00001] ⌈ComM channel's that are referenced by a PNC are


not allowed to be referenced by any ComMUsers, if the PNC references at least one
EthIfSwitchPortGroup (see figure 8 “use Case 6”). A configuration tool shall reject
such a configuration as invalid (error). This constraint is only valid for a host ecu that
control an Ethernet switch. In all other UseCases ComMChannels can be referenced
by a PNC's and ComMUsers.⌋()

Rational: If using PNC and SwitchPortGroups were derived


(EcuInstance.ethSwitchPortGroupDerivation is set to TRUE), then the
SwitchPortGroups are switched by the EthIf_SwitchPortGroupRequestMode API and
not by a channel request.

[SWS_ComM_CONSTR_00002] ⌈If a ComM user reference a managed channel,


then this ComM user shall also reference the corresponding managing channel.
Otherwise the configuration is invalid. A configuration tool shall reject a configuration
as invalid (error), if a user references a managed channel without referencing the
corresponding managing channel.⌋()

[SWS_ComM_CONSTR_00003] {DRAFT} ⌈ComM channels with ComMNmVariant


= SLAVE_PASSIVE are not allowed to be referenced by any ComMUser or PNC. A
configuration tool shall reject such a configuration as invalid (error).⌋
(SRS_ModeMgm_09266)

Rational: ComM channels with ComMNmVariant = SLAVE_PASSIVE shall always


follow the communication request of their communication master and are not allowed
to request the corresponding master to wake-up the communication channel.

[SWS_ComM_CONSTR_00005] {DRAFT} ⌈A PNC shall reference the same ComM


channel exclusively either by using ComMChannelPerPnc or
ComMChannelPerTxOnlyPnc. Otherwise the configuration is invalid. A configuration
tool shall reject such a configuration as invalid (error).⌋ ()

[SWS_ComM_CONSTR_00006] {DRAFT} ⌈The kind of reference (either


ComMChannelPerPnc or ComMChannelPerTxOnlyPnc) from a PNC to a managed
channel and the corresponding managing channel shall be the same . Otherwise the
configuration is invalid. A configuration tool shall reject such a configuration as invalid
(error).⌋ ()

7.4 Extended functionality


[SWS_ComM_00470] ⌈The extended functionality described in this chapter shall be
individually configurable during runtime per feature (e.g. enable wake up
inhibition but disable limitation to no communication).⌋()

76 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Rationale for SWS_ComM_00470: During runtime a change in the inhibition /


limitation strategy is required in order to cope with changing conditions.

Use Case: Change the wakeup inhibition via diagnostics.

Comment: Configurable with parameter ComMEcuGroupClassification (see


ECUC_ComM_00563).

7.4.1 Communication inhibition

Note:
1. The purpose of mode inhibition is to limit the communication capabilities. For
details see Section 7.4.1.1 and Section 7.4.1.2.
2. The following parameters are relevant to communication inhibition and have
relationship to APIs described below:
a. ComMNoCom: "request bit" of mode inhibition (limit to NoCom), can be
controlled by ComM_LimitChannelToNoComMode() and
ComM_LimitECUToNoComMode(), only if
ComMEcuGroupClassification enable this functionality (see
ECUC_ComM_00563, SWS_ComM_00163, SWS_ComM_00124).
b. ComMNoWakeup: "request bit" of mode inhibition (wakeup inhibition),
can be controlled by ComM_PreventWakeUp(), only if
ComMEcuGroupClassification enable this functionality (see
ECUC_ComM_00563, SWS_ComM_00156).
c. ComMEcuGroupClassification: "mask bits" of mode inhibition behavior,
can be controlled by ComM_SetECUGroupClassification(), regardless
of ComMNoCom and ComMNoWakeup values

[SWS_ComM_00301] ⌈The ComM module shall offer interfaces to request and


release the corresponding mode inhibitions.⌋()

Comment: The ComM module doesn't care about who requests the mode inhibition
but it is not a "normal" SW-C. It is a privileged SW-C or an OEM specific BSW.

[SWS_ComM_00488] ⌈It shall be possible to enable and disable the mode inhibition
for each channel (channel state machine) independently. This functionality shall not
be used by the ComM module itself.⌋()

[SWS_ComM_00839] ⌈The ComM module shall store the status of the user
requests. ⌋()

Comment: SWS_ComM_00839 describes the desired behaviour during an active


mode limitation.

[SWS_ComM_00840] ⌈The ComM module shall store the updated status of the user
requests if a user releases a request during an active mode inhibition.⌋()

Rationale for SWS_ComM_00840: User requests shall be granted if the inhibition


gets disabled.
77 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Comment: Amount of active user requests from different users. SWS_ComM_00840


describes the desired behaviour during an active mode limitation.

[SWS_ComM_00182] ⌈The communication inhibition shall get temporarily inactive


during an active diagnostic session.⌋()

Rationale for SWS_ComM_00182: ECUs must not fall asleep during an active
diagnostic session.

Comment: The DCM indicates the start of an active diagnostic session with
ComM_DCM_ActiveDiagnostic(<channel>)(SWS_ComM_00873) and the end
of a diagnostic session with
ComM_DCM_InactiveDiagnostic(<channel>)(SWS_ComM_00874).

7.4.1.1 Bus wake up inhibition

Information: Bus wake up inhibition in context of the ComM module means that the
ComM module should take precautions against awaking other ECUs by starting the
communication.

Rationale: Awaking other ECUs by communication should be avoided because it is


assumed that the ECU wakes up the bus because of an error (e.g. broken sensor).

Use Case: An error was detected on signal path of an active wake up line and this
non reliable wake-up-source should not be able to awake the whole system anymore.
An SW-C that controls error-reactions could set the wake up inhibition-status of
related communication channels that usually get communication-requests from SW-
Cs as the consequence of this event. This corrupts the forwarding of communication
system-wide, based on unreliable wake up events. Or in case of application-specific
system control, there is an SW-C that should switch off forwarding system wide
wakeup's by communication under conditions like e.g. transport mode.

[SWS_ComM_00302] ⌈Bus wake up Inhibition shall be performed by ignoring user


requests.⌋(SRS_ModeMgm_09089)

Comment: Ignoring user requests means accepting the requests but not executing
them due to mode inhibition. The “highest win” strategy would apply immediately as
soon as mode inhibition is switched off (see SWS_ComM_00839 and
SWS_ComM_00840).

[SWS_ComM_00218] ⌈A communication request (COMM_FULL_COMMUNICATION)


by a user shall be inhibited if the ComM Inhibition status is equal to ComMNoWakeup
is set to TRUE (see ECUC_ComM_00569) for the corresponding channel and the
current state of the channel is COMM_NO_COMMUNICATION or
COMM_SILENT_COMMUNICATION ⌋()

78 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Rationale for SWS_ComM_00218: The inhibition should not get active, if the
inhibition-status is set but the communication channel is already active.

[SWS_ComM_00219] ⌈The inhibition shall not get active if the current


communication state is COMM_FULL_COMMUNICATION .⌋()

Rationale for SWS_ComM_00219: The bus is already awake if the current


communication state is COMM_FULL_COMMUNICATION.

[SWS_ComM_00066] ⌈The ComM module shall never inhibit the “passive wake-up”
capability.⌋(SRS_ModeMgm_09071)

Rationale for SWS_ComM_00066: It must be always possible to react on bus wake


ups indicated by the EcuM module.

Comment: Reception is switched off in COMM_NO_COMMUNICATION mode but the


wake up capability is switched on.

[SWS_ComM_00157] ⌈ComMNoWakeup status must be stored non


volatile.⌋(SRS_ModeMgm_09089)

Rationale for SWS_ComM_00157: Information must be available during start-up,


before the communication is active (“Full Communication” mode entered). Changing
or query is only possible after start-up with active communication (usually the
"master", who decides if the inhibition is active or not, is not on the same ECU).

[SWS_ComM_00625] ⌈The status of the user requests shall also be updated if a


user releases a request.⌋(SRS_ModeMgm_09155)

7.4.1.2 Limit to COMM_NO_COMMUNICATION mode

[SWS_ComM_00303] ⌈If the current state is


COMM_FULL_COM_NETWORK_REQUESTED and when mode limitation to
COMM_NO_COMMUNICATION has been requested for the corresponding channel,
ComM module shall switch to COMM_FULL_COM_READY_SLEEP state to initiate a
shutdown despite any user requests for
COMM_FULL_COMMUNICATION.⌋(SRS_ModeMgm_09071)

Rationale for SWS_ComM_00303: Forcing into COMM_NO_COMMUNICATION mode is


needed to shut down software components, which keeps the bus awake.

Comment for SWS_ComM_00303: Limit to COMM_NO_COMMUNICATION will only be


performed if a channel was request actively. In that case all current user requests for
full communication or even new requests will be ignored (see also
SWS_ComM_00215). The limit to no communication will not be performed, if a
ComM channel is remotely kept awake due to a passive wakeup.

[SWS_ComM_00842] ⌈When ComM_LimitChannelToNoComMode() is called,


ComM module shall update the inhibition status (limitation to
79 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

COMM_NO_COMMUNICATION) for the corresponding


channel.⌋(SRS_ModeMgm_09071)

Note: An update of the inhibition status due to a request for limit to


COMM_NO_COMMUNICATION has to be performed always, independent of the current
state.

[SWS_ComM_00355] ⌈If ComMResetAfterForcingNoComm is set to TRUE ( see


ECUC_ComM_00558 : ) and when ComM enters COMM_NO_COMMUNICATION after state
transition from COMM_FULL_COM_NETWORK_REQUESTED to
COMM_FULL_COM_READY_SLEEP has been forced due to mode limitation to
COMM_NO_COMMUNICATION request ( see [SWS_ComM_00303] ), then ComM shall call
BswM_ComM_InitiateReset().⌋(SRS_ModeMgm_09071)

Note: A call of BswM_ComM_InitiateReset() is the trigger for an ECU reset


which has to be executed as soon as possible, depending on further needed actions
(e.g. storing all NvM blocks).

Rationale: It is assumed that a faulty user will not release his "Full Communication"
request without a re-initialization. Keeping the "Full Communication" request active
leads to a toggling between network shutdown and network startup.

Use Case: It is assumed that a faulty ECU keeps the bus awake. As a consequence
a "network master" decides to force all ECUs to go to sleep.

[SWS_ComM_00215] ⌈When mode limitation to COMM_NO_COMMUNICATION has


been requested, ComM module shall ignore all user requests with
COMM_FULL_COMMUNICATION for the corresponding
channel.⌋(SRS_ModeMgm_09071)

[SWS_ComM_00582] ⌈The ComM module shall clear the user requests after all the
channels that belong to the corresponding user enter COMM_NO_COMMUNICATION
mode.⌋(SRS_ModeMgm_09078)

Rationale for SWS_ComM_00582: Stored (faulty) user requests, which are assumed
to keep the bus awake, must be cleared.

Description: The ComM module shall reload the default value of the ComM inhibition
status from ComMNoCom (see ECUC_ComM_00571) during initialization.

Comment: The current ComMNoCom status for each channel shall not be stored
persistently. SWS_ComM_00582 describes the desired behaviour after an executed
mode limitation.

7.5 Bus communication management


[SWS_ComM_00402] ⌈The ComM module shall use the corresponding interfaces of
the Bus State Manager modules to control the communication capabilities.⌋()

80 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_00664] ⌈The ComM module shall omit calls to control the


communication capabilities if configuration parameter
ComMBusType=COMM_BUS_TYPE_INTERNAL
(ECUC_ComM_00567).⌋(SRS_ModeMgm_09168)

Rationale for SWS_ComM_00664: Internal communication has no corresponding bus


interface.

7.6 Network management dependencies


[SWS_ComM_00599] ⌈The ComM module shall support the shutdown
synchronization variants (configured with ComMNmVariant, see
ECUC_ComM_00568) LIGHT, SLAVE_ACTIVE, SLAVE_PASSIVE, PASSIVE and
FULL described in Table 3.⌋(SRS_ModeMgm_09132)

Comment: Only variant FULL and PASSIVE guarantees a synchronized shutdown


between all nodes of a network. Note that since the NmIf cannot start the
synchronized shutdown of coordinated networks before all networks are ready to go
to sleep, requests from ComM to NmIf to release network communication on such a
coordinated bus will be considered, but not always acted on directly. The NmIf will
still answer with E_OK, but network will not be released until all coordinated networks
are ready to go to sleep.
NM variant Keep bus awake capability Shutdown synchronization
NONE No shutdown synchronization by ComM.
Shutdown by switching off the power of the
ECU.
SLAVE_ACTIVE No (but the corresponding Synchronized by its master (e.g. LIN master)
master could trigger a wake-up
based on a slave request for a
wake-up. E.g. the LIN State
Manager of a LIN master
restarts wake-up repetition)
SLAVE_PASSIVE No (the slave will always follow Synchronized by its master (e.g. ComM
the communication request of channel with ComMBusType set to
the corresponding master. The COMM_BUS_TYPE_ETH and used Ethernet
slave has no possibility to hardware is compliant to OA TC10 (see [33]))
request a wake-up on the
corresponding communication
channel.
LIGHT Shutdown synchronization by ComM with
means of a timeout (configured with
ComMNmLightTimeout,
ECUC_ComM_00606)
PASSIVE ECU is not allowed to keep the Shutdown synchronization by ComM with
bus awake means of AUTOSAR NM.
FULL ECU is allowed to keep the bus Shutdown synchronization by ComM with
awake. means of AUTOSAR NM.
Table 3: Network management variants supported by the Communication Manager Module

Comment: A synchronized shutdown is not possible with the LIGHT variant thus the
ECU may continuously restart ("toggle") because of a message from a node shutting
down later.
81 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_00602] ⌈The ComM module shall omit calls of NM services if


configuration parameter ComMNmVariant = LIGHT | SLAVE_ACTIVE |
SLAVE_PASSIVE | NONE (see ECUC_ComM_00568).⌋(SRS_ModeMgm_09132)

Rationale for SWS_ComM_00602: NM services are not available if no NM is


available.

[SWS_ComM_00667] ⌈The ComM module shall omit to call


Nm_NetworkRequest() from NM if configuration parameter ComMNmVariant=
LIGHT|SLAVE_ACTIVE|SLAVE_PASSIVE|NONE (see
ECUC_ComM_00568).⌋(SRS_ModeMgm_09132)

Rationale for SWS_ComM_00667: Service Nm_NetworkRequest() is not


available.

7.7 Bus error management

7.7.1 Network Start Indication

[SWS_ComM_00583] ⌈The ComM module shall switch channel X to


COMM_FULL_COMMUNICATION if NM indicates
ComM_Nm_NetworkStartIndication(<channel X>) and
CommunicationAllowed flag is set to TRUE.⌋()

Use Case for SWS_ComM_00583: A node sends an NM message in "Prepare Bus


Sleep" state but other nodes are already in "Bus Sleep" state because of "race
conditions".

7.8 Test support requirements

7.8.1 Inhibited Full Communication Request Counter

[SWS_ComM_00138] ⌈The ComM module shall provide one Inhibit counter for all
rejected COMM_FULL_COMMUNICATION mode requests. It shall count user requests,
which cannot be fulfilled because the system has inhibited communication
modes.⌋(SRS_ModeMgm_09155)

Rationale for SWS_ComM_00138: The counter is used for detecting latent software
problems related to unmotivated communication bus wake ups.

[SWS_ComM_00140] ⌈The Inhibit counter (SWS_ComM_00138) for all rejected


COMM_FULL_COMMUNICATION mode requests shall be stored in non-volatile
memory.⌋(SRS_ModeMgm_09155)

82 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_00141] ⌈The range of the Inhibit counter (SWS_ComM_00138) for all


rejected COMM_FULL_COMMUNICATION mode requests shall be 0 to
65535.⌋(SRS_ModeMgm_09155)

[SWS_ComM_00142] ⌈The Inhibit counter (SWS_ComM_00138) for all rejected


COMM_FULL_COMMUNICATION mode requests shall stop to increment if the
maximum counter value is reached.⌋(SRS_ModeMgm_09155)

[SWS_ComM_00143] ⌈It shall be possible to read out and reset the Inhibit counter
(SWS_ComM_00138) for all rejected COMM_FULL_COMMUNICATION mode requests
value by a ComM module API call.⌋(SRS_ModeMgm_09156)

Use Case for SWS_ComM_00143: It shall be possible to read out and reset the
current status of the counter by a diagnostic service.

7.9 Error classification


Section 7.2 "Error Handling" of the document "General Specification of Basic
Software Modules" describes the error handling of the Basic Software in detail.
Above all, it constitutes a classification scheme consisting of five error types which
may occur in BSW modules.

Based on this foundation, the following section specifies particular errors arranged in
the respective subsections below.

7.9.1 Development errors

[SWS_ComM_00234]⌈
Type of error Related error code Error value

API service used without module initialization COMM_E_UNINIT 0x1

API service used with wrong parameters COMM_E_WRONG_PARAMETERS 0x2

API Service used with a null pointer COMM_E_PARAM_POINTER 0x3

Initialization failed COMM_E_INIT_FAILED 0x4

⌋(SRS_BSW_00323, SRS_BSW_00327, SRS_BSW_00337, SRS_BSW_00385,


SRS_BSW_00386)

[SWS_ComM_00612] ⌈If ComM is not initialized, all ComM module and all API
service other than ComM_Init() (see SWS_ComM_00146),
ComM_GetVersionInfo() (see SWS_COMM_00370) and ComM_GetStatus()
(see SWS_COMM_00242); shall:
 not execute their normal operation,
 and return E_NOT_OK, if it has a standard return type.⌋(SRS_BSW_00406)

83 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_00858] ⌈If development error detection is enabled by


ComMDevErrorDetect (see ECUC_ComM_00555): the function shall check that the
service ComM_Init was previously called. If the check fails, the function shall raise
the development error COMM_E_UNINIT⌋( SRS_BSW_00406)

7.9.2 Runtime Errors

There are no runtime errors.

7.9.3 Transient Faults

There are no transient faults.

7.9.4 Production Errors

There are no production errors.

7.9.5 Extended Production Errors

There are no extended production errors.

7.10 Communication Manager Module Services


This section defines the AUTOSAR Interfaces of the Communication Manager
Module Service (ComM).

7.10.1 Architecture

The overall architecture of the Communication Manager Module service is depicted


in Figure 9:

84 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

require provide
ComM_RequestMode ComM_RequestMode

UR000
SW-C
UM000

. require provide
ComM_CurrentMode ComM_CurrentMode .
. .
. .

URnnn
SW-C
UMnnn

require provide
ComM_ChannelWakeup ComM_ChannelWakeup Com
Manager
CW000
... ...
require provide
ComM_ChannelLimitation ComM_ChannelLimitation
Vehicle
Mode CL000
Manager ... ...
require provide
ComM_ECUModeLimitation ComM_ECUModeLimitation

modeLimitation

Figure 9: ARPackage of the Communication Manager Module

7.10.2 Use Cases

7.10.2.1 SW-Cs does not care about the ComM module at all
A SW-C that does not care about the Communication Manager Module will not
require any of the interfaces defined in the ARPackage of the Communication
Manager Module.

7.10.2.2 SW-Cs only cares about the state of its communication system
In this use case, a SW-C wants to know what communication capabilities it has
(expressed by a communication mode ‘none’, ‘silent’ or ‘full’ - see
ComM_ModeType). The SW-C finds out about that by defining a port requiring the
Interface ComM_GetCurrentComMode. Depending on the available communication
capabilities, the SW-C can specify that certain runnables of the SW-C should be
executed or not. The Communication Manager Module must be configured correctly
(with e.g. the physical channels that this SW-C uses for its logical communication)
such that it has a port that provides this information about the current communication
mode to the SW-C.

85 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

SW-C
UM000

require provide
ComM_CurrentMode ComM_CurrentMode .
.
.

Com.
Manager

...
...

Figure 10: SW-C requests state changes to the Communication Manager Module

86 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

7.10.2.3 SW-Cs explicitly wants to take influence on its communication


state

require provide
ComM_RequestMode ComM_RequestMode

UR000
SW-C
UM000

require provide
ComM_CurrentMode ComM_CurrentMode .
.
.

Com.
Manager

...
...

Figure 11: SW-C requires state changes within the Communication Manager Module and reads
out current communication state

In this use case, the SW-C wants to explicitly take influence on the communication-
state of the physical channels it needs. The SW-C indicates this by a specific port.
Through this port, the SW-C can then request the Communication Manager Module
mode “No Communication” or “Full Communication”. The Communication Manager
Module will use these calls to request the corresponding communication mode from
the corresponding Bus State Manager module.

[SWS_ComM_00848] ⌈The Communication Manager Module shall provide an


AUTOSAR port to allow the request of an communication mode by calling
‘ComM_RequestComMode’ (see SWS_ComM_00110).⌋(SRS_ModeMgm_09078)

For a SW-C using the “direct API” of the RTE, the SW-C could for example do the
following:
MySW-C_Runnable_Init(self)
{
// SW-C wants to send and receive data
e = Rte_Call_comRequest_RequestComMode(COMM_FULL_COMMUNICATION);

87 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

if (e == RTE_E_OK)
{
// successfully requested the Com Manager Module to move to
// full communication mode
}
else
{
// an error occurred when
// interacting with the Com Manager module
if (e == E_MODE_LIMITATION)
{
// a current ComMMode limitation forbids going into
// that mode;
// let’s ask what the maximal allowed ComMMode is
Rte_Call_comRequest_GetMaxComMode(&max);
if (max==COMM_NO_COMMUNICATION)
{

};
}
else
{
// a more serious error occurred …
};
};

};

MySW-C_Runnable_Loop(self)
{
if (status == ready_to_sleep)
{
//no need to send; ready for shutdown communication
Rte_Call_comRequest_RequestComMode(COMM_NO_COMMUNICATION);

};
};

Comment: Note that these APIs do not require that the SW-C has knowledge of the
channels that it needs.

7.10.2.4 SW-C wants to interact directly with physical channels activate


ECU Mode Limitation
The SW-C shall request mode from BswM. BswM will handle the direct
communication with ComM.

88 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

require provide
ComM_ChannelWakeup ComM_ChannelWakeup

CW000

CW001

Basic Software ...


Mode require provide Com
Manager ComM_ChannelLimitation ComM_ChannelLimitation Manager
CL000

CL001

require provide
ComM_ECUModeLimitation ComM_ECUModeLimitation
modeLimitation

Figure 12: Interaction between BswM and the ComM module

7.10.3 Specification of Ports and Port Interfaces

This section specifies the Port Interfaces that are needed to operate the
Communication Manager Module functionality over the RTE.

7.10.3.1 Types used by the interfaces


See 8.7.4 Implementation Data Types

7.10.3.2 Ports and Port Interface for User Requests

7.10.3.2.1 General Approach


A SW-C that wants to explicitly direct the local Communication Manager Module of
the ECU towards a certain state requires the client-server interface
ComM_UserRequest. Through this interface the SW-C can set the desired state of
all communication channels that are relevant for that component, to “No
Communication” or “Full Communication”. In order to keep the SW-Cs code
independent from the values of the handles that are used to identify the user towards
the Communication Manager Module, these handles are not passed from the SW-C
to the Communication Manager Module. Rather they are modeled as “port defined
argument values” of the Provide Ports on the Communication Manager Module’s
side. As a consequence, these handles do not show up as arguments in the
operations of the client-server interface ComM_UserRequest. As a further
consequence of this approach, the Communication Manager Module has a separate
port for each user.

7.10.3.2.2 Data Types


No data types are needed for this interface.

89 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

7.10.3.2.3 Port interface ComM_UserRequest

See 8.7.2.4 ComM_UserRequest

7.10.3.3 Ports and Port Interfaces for the current mode of the
Communication Manager Module

7.10.3.3.1 General approach

[SWS_ComM_00847] ⌈The Communication Manager Module shall have an


AUTOSAR port providing the ModeSwitchInterface interface
‘ComM_CurrentMode’.⌋(SRS_ModeMgm_09085)
[SWS_ComM_00733] ⌈The Communication Manager Module shall have a separate
port providing the ModeSwitchInterface interface ‘ComM_CurrentMode’ for each
configured user, to which a SW-C is connected. ⌋(SRS_ModeMgm_09085)
A SW-C that wants to get informed about its current Communication Manager
Module Mode requires the ModeSwitchInterface interface ComM_CurrentMode.

7.10.3.3.2 Port interface ComM_CurrentMode

See 8.7.3.1 ComM_CurrentMode.

7.10.3.4 Ports and Port Interfaces for the ComM users currently requesting
COMM_FULL_COMMUNICATION

7.10.3.4.1 General approach

[SWS_ComM_00734] ⌈The Communication Manager Module shall have an optional


(see ECUC_ComM_00787) separate port providing the sender-receiver interface
‘ComM_CurrentChannelRequest’ for each configured ComM
channel.⌋(SRS_ModeMgm_09084)
Rationale for SWS_ComM_00734: A SW-C that wants to get informed about, which
users are currently requesting COMM_FULL_COMMUNICATION requires the
sender-receiver interface ComM_CurrentChannelRequest’.

[SWS_ComM_00736] ⌈Whenever the set of ComM users currently requesting


COMM_FULL_COMMUNICATION for a channel changes, the Communication
Manager Module shall update the data element fullComRequestors. A change
shall update the data element only, when the Communication Manager Module
accepts the communication request of the ComM user.⌋(SRS_ModeMgm_09078)

90 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Note: Requests which are accepted but not processed because of active
ModeLimitations will lead to an update of the data element.

7.10.3.4.2 Data Types

See 8.7.4.4 ComM_UserHandleArrayType.

7.10.3.4.3 Port Interface ComM_CurrentChannelRequest

See 8.7.1.1 ComM_CurrentChannelRequest.

7.10.3.5 Ports and Port Interface for ECU Mode Limitation

7.10.3.5.1 General approach

[SWS_ComM_00740] ⌈The Communication Manager Module can be configured to


have an AUTOSAR port providing the client-server interface
ComM_ECUModeLimitation.⌋(SRS_ModeMgm_09071)

A SW-C, which plays the role of a “Mode Manager”, can use this interface to change
the behaviour of the entire ECU.

7.10.3.5.2 Port interface ComM_ECUModeLimitation


See 8.7.2.3 ComM_ECUModeLimitation.

7.10.3.6 Ports and Port Interface for Channel Wake up

7.10.3.6.1 General approach

[SWS_ComM_00747] ⌈The Communication Manager Module can be configured to


have an AUTOSAR port providing the Client-Server Interface
ComM_ChannelWakeup.⌋(SRS_ModeMgm_09089)

A SW-C playing the role of a “Mode Manager” can use this interface to configure the
Communication Manager Module to take precautions against awaking other ECU's
by starting the communication. In order to keep the SW-Cs code independent from
the values of the handles that are used to identify a specific handle towards the
Communication Manager Module, these handles are not passed from the SW-C to
the Communication Manager Module. Rather they are modeled as “port defined
argument values” of the Provide Ports on the Communication Manager Module’s
side. As a consequence, these handles do not show up as arguments in the
operations of the client-server interface ComM_ChannelWakeup. As a further
consequence of this approach, the Communication Manager Module has separate
ports for each channel.
91 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

7.10.3.6.2 Port interface ComM_ChannelWakeup

See 8.7.2.2 ComM_ChannelWakeup.

7.10.3.7 Ports and Port Interface for interface Channel Limitation

7.10.3.7.1 General approach

[SWS_ComM_00752] ⌈The Communication Manager Module can be configured to


have an AUTOSAR port providing the Client-Server Interface
ComM_ChannelLimitation.⌋(SRS_ModeMgm_09071)

A SW-C playing the role of a “Mode Manager” can use this interface to configure the
Communication Manager Module to inhibit communication mode for a given channel.
In order to keep the SW-Cs code independent from the values of the handles that are
used to identify a specific handle towards the Communication Manager Module,
these handles are not passed from the SW-C to the Communication Manager
Module. Rather they are modelled as “port defined argument values” of the Provide
Ports on the Communication Manager Module side. As a consequence, these
handles do not show up as arguments in the operations of the client-server interface
ComM_ChannelLimitation. As a further consequence of this approach, the
Communication Manager Module has separate ports for each channel.

7.10.3.7.2 Port interface ComM_ChannelLimitation

See 8.7.2.1 ComM_ChannelLimitation.

7.10.3.8 Definition of the Service of the Communication Manager Module


This section provides guidance on the definition of the Communication Manager
Module service. There are ports on both sides of the RTE. This description of the
Communication Manager Module service defines the ports below the RTE. Each SW-
C, which uses the Service, must contain “service ports” in its own SW-C description
which will be connected to the ports of the COM Manager module, so that the RTE
can be generated.
Comment: Note that these definitions can only be completed during ECU
configuration (because it depends on certain configuration parameters of the
Communication Manager Module, which determine the number of ports provided by
the Communication Manager Module service). Also note that the implementation of
an SW-C does not depend on these definitions.
[SWS_ComM_00744]

/* This is the definition of the Communication Manager Module as a service.
This is the ‘outside-view’ of the Communication Manager Module */
Service ComM
{

92 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

// port present if ComMModeLimitationEnabled (see ECUC_ComM_00560)


ProvidePort ComM_ECUModeLimitation modeLimitation;

// port present for each channel


// if ComMModeLimitationEnabled (see ECUC_ComM_00560);
// there are NC channels;
ProvidePort ComM_ChannelLimitation CL000;

ProvidePort ComM_ChannelLimitation CL<NC-1>;

// port present for each channel


// if COMM_WAKEUP_INHIBITION_ENABLED (see ECUC_ComM_00559)
ProvidePort ComM_ChannelWakeup CW000;

ProvidePort ComM_ChannelWakeup CW<NC-1>;

// For each user the Communication Manager Module provides 2 ports.


// To facilitate configuration, the index of this user shall
// correspond to the index in the array COMM_USER_LIST used for the
// configuration of the Communication Manager Module.
// The number of users must correspond to the size of this array.
ProvidePort ComM_UserRequest UR000; // (see 7.10.3.2.2)
ProvidePort ComM_CurrentMode UM000;
ProvidePort ComM_UserRequest UR001; //(see 7.10.3.2.2)
ProvidePort ComM_CurrentMode UM001;

ProvidePort ComM_UserRequest UR<COMM_USER_LIST.size-1>;
ProvidePort ComM_CurrentMode UM<COMM_USER_LIST.size-1>;

// port present for each channel if configured


// (see ECUC_ComM_00787)
// there are NC channels;
ProvidePort ComM_CurrentChannelRequest CR000;

ProvidePort ComM_CurrentChannelRequest CR<NC-1>;

};⌋(SRS_ModeMgm_09078, SRS_ModeMgm_09080, SRS_ModeMgm_09084,


SRS_ModeMgm_09172, SRS_ModeMgm_09149, SRS_ModeMgm_09168, SRS_ModeMgm_09071,
SRS_ModeMgm_09157)

7.10.4 Runnables and Entry points

7.10.4.1 Internal behaviour


This is the inside description of the Communication Manager Module. This detailed description is only
needed for the configuration of the local RTE.

[SWS_ComM_00745]

InternalBehavior of the Communication Manager Module
{
// Runnable entities of the Communication Manager Module
RunnableEntity LimitECUToNoComMode
symbol “ComM_LimitECUToNoComMode” /* see SWS_ComM_00124*/
canbeInvokedConcurrently = FALSE

RunnableEntity ReadInhibitCounter
symbol “ComM_ReadInhibitCounter” /* see SWS_ComM_00224 */
canbeInvokedConcurrently = FALSE

93 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

RunnableEntity ResetInhibitCounter
symbol “ComM_ResetInhibitCounter” /* see SWS_ComM_00108 */
canbeInvokedConcurrently = FALSE

RunnableEntity SetECUGroupClassification
symbol “ComM_SetECUGroupClassification” /* see SWS_ComM_00552 */
canbeInvokedConcurrently = FALSE

RunnableEntity LimitChannelToNoComMode
symbol “ComM_LimitChannelToNoComMode” /* see SWS_ComM_00163 */
canbeInvokedConcurrently = FALSE

RunnableEntity GetInhibitionStatus
symbol “ComM_GetInhibitionStatus” /*see SWS_ComM_00619 */
canbeInvokedConcurrently = FALSE

RunnableEntity PreventWakeup
symbol “ComM_PreventWakeup”
canbeInvokedConcurrently = FALSE

RunnableEntity RequestComMode
symbol “ComM_RequestComMode” /* see SWS_ComM_00110 */
canbeInvokedConcurrently = TRUE

RunnableEntity GetMaxComMode
symbol “ComM_GetMaxComMode” /* see SWS_ComM_00085 */
canbeInvokedConcurrently = TRUE

RunnableEntity GetRequestedComMode
symbol “ComM_GetRequestedComMode”
canbeInvokedConcurrently = TRUE

RunnableEntity GetCurrentComMode
symbol “ComM_GetCurrentComMode” /*see SWS_ComM_00083 */
canbeInvokedConcurrently = TRUE

// the following applies if ComMModeLimitationEnabled


// (see ECUC_ComM_00560)
modeLimitation.LimitECUToNoComMode -> LimitECUToNoComMode
modeLimitation.ReadInhibitCounter -> ReadInhibitCounter
modeLimitation.ResetInhibitCounter -> ResetInhibitCounter
modeLimitation.SetECUGroupClassification -> SetECUGroupClassification

// per-channel behaviour only present


// if ComMModeLimitationEnabled (see ECUC_ComM_00560)
// there are NC channels
// To facilitate configuration, the names of the channels correspond
// to the index of the channel in the “Channel” container used to
// configure the Communication Manager Module
CL000.LimitChannelToNoComMode -> LimitChannelToNoComMode
CL000.GetInhibitionStatus -> GetInhibitionStatus
PortArgument {port=CL000,
value.type=NetworkHandleType,
value.value=Channel[0].COMM_CHANNEL_ID}

CLnnn.LimitChannelToNoComMode -> LimitChannelToNoComMode
CLnnn.GetInhibitionStatus -> GetInhibitionStatus
PortArgument {port=CLnnn,
value.type=NetworkHandleType,
value.value=Channel[nnn].COMM_CHANNEL_ID}

94 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

// per-channel behaviour only present


// if COMM_WAKEUP_INHIBITION_ENABLED (see ECUC_ComM_00559)
CW000.preventWakeUp -> PreventWakeUp
PortArgument {port=CW000,
value.type=NetworkHandleType,
value.value=Channel[0].COMM_CHANNEL_ID}

CWnnn.preventWakeUp -> PreventWakeUp
PortArgument {port=CWnnn,
value.type=NetworkHandleType,
value.value=Channel[nnn].COMM_CHANNEL_ID}

// per-user behaviour
// Note that the port-argument value must be consistent with the
// value in the configuration COMM_USER_LIST
// Note that the exact data-type of the UserHandleType must of course
// be defined BEFORE RTE_configuration, but does NOT affect the
// API seen by the SW-Cs that use the service
UR000.RequestComMode -> RequestComMode
UR000.GetMaxComMode -> GetMaxComMode
UR000.GetRequestedComMode -> GetRequestedComMode
UR000.GetCurrentComMode -> GetCurrentComMode
PortArgument {port=UR000,
value.type= ComM_UserhandleType,
value.value=COMM_USER_LIST[0]}

URnnn.RequestComMode -> RequestComMode
URnnn.GetMaxComMode -> GetMaxComMode
URnnn.GetRequestedComMode -> GetRequestedComMode
URnnn.GetCurrentComMode -> GetCurrentComMode
PortArgument {port=URnnn,
value.type= ComM_UserhandleType,
value.value=COMM_USER_LIST[n]}
};⌋( SRS_ModeMgm_09078, SRS_ModeMgm_09080, SRS_ModeMgm_09084,
SRS_ModeMgm_09172, SRS_ModeMgm_09149, SRS_ModeMgm_09168, SRS_ModeMgm_09071,
SRS_ModeMgm_09157)

Comment:
'modeLimitation.LimitECUToNoComMode -> LimitECUToNoComMode' is
supposed to define an OperationInvokedEvent that links the OperationPrototype to
the runnable entity that is supposed to be executed.

7.10.4.2 Header file to be included by the Communication Manager Module


The RTE deals with the Communication Manager Module as with any normal SW-C.
The RTE will be able to generate a header-file based on the internal-behaviour
description of the Communication Manager Module which contains for instance a
definition of the API’s (like Rte_Ports_CurrentMode_P) which are available to the
Communication Manager Module. This implies that an implementation of the
Communication Manager Module must include this generated header-file.

95 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

7.11 Multicore Distribution


In its role as central module dealing with different network types the ComM
interaction spans across partitions in case the Com-Stack is distributed and so shall
provide required multi-core features to ensure a clean architecture and keep the
network dependent clusters free of multi-partition (multi-core) add-ons.

[SWS_ComM_01019]⌈ The ComM module shall apply appropriate mechanisms to


allow calls of its APIs from other partitions than its main function, e.g. by providing a
ComM satellite.⌋(SRS_BSW_00459)

[SWS_ComM_01020]⌈ ComM shall interact with <Bus>SM (i.e. call <Bus>SM APIs)
only in the partition, where the respective <Bus>SM module is assigned
to.⌋(SRS_BSW_00459)

[SWS_ComM_01059]⌈ ComM shall interact with Dcm (i.e. call Dcm APIs) only in the
partition, where the Dcm module is assigned to.⌋(SRS_BSW_00459)

[SWS_ComM_01021] {OBSOLETE} ⌈ The ComM shall call signal related Com APIs
(Com_SendSignal / Com_ReceiveSignal) only in the partition, where the respective
ComSignal is handled by the Com module.⌋(SRS_BSW_00459)

Hint: The partition assignment information of the ComSignals is available within Com
module configuration.

Note: Even though the basic software (and the Com-Stack in particular) is distributed
across several partitions, ComM and Nm Masters should reside in the same partition
in order to keep mode interfaces between the two modules simple (for further
information see chapter Master/Satellite-approach in [32] (Guide to BSW
Distribution)).

7.12 Non functional requirements


[SWS_ComM_00459] ⌈It shall be possible to integrate the ComM module delivered
as source or object code into the AUTOSAR stack.
Rationale:
 Allow IP protection and guaranteed test coverage: object code
 Allow high efficiency and configurability at system generation time (by
integrator): source code.⌋(SRS_BSW_00342)

96 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

8 API specification

8.1 Imported types

8.1.1 Standard types

In this chapter all types included from the following modules are listed:

[SWS_ComM_00820]⌈
Module Header File Imported Type

Com Com.h Com_SignalIdType

ComStack_Types.h NetworkHandleType
ComStack_Types
ComStack_Types.h PNCHandleType

Rte_NvM_Type.h NvM_BlockIdType
NvM
Rte_NvM_Type.h NvM_RequestResultType

Std_Types.h Std_ReturnType
Std
Std_Types.h Std_VersionInfoType

⌋(SRS_BSW_00348, SRS_BSW_00357)

Note: Types from Com module are considered obsolete in R21-11 due to a concept
part, which will be validated after the release of R21-11.

The ComM API uses the following extension to Std_ReturnType:

[SWS_ComM_91027]{DRAFT} ⌈
COMM_E_MODE_ Function call has been successful but mode can not be
2
LIMITATION granted because of mode inhibition.

Function could not provide the current mode of the


COMM_E_MULTIPLE_
3 PNC, since multiple PNCs are assigned to the affected
PNC_ASSIGNED
user
Range
COMM_E_NO_PNC_ Function could not provide the current mode of the
4
ASSIGNED PNC, since no PNC is assigned to the affected user

Function call has been successfully, but functionality


COMM_E_LEARNING_
5 cannot be executed because PNC learning phase is
ACTIVE
active.

--
Description
Tags:atp.Status=draft

Available
ComM.h
via

97 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

⌋(SRS_BSW_00331, SRS_BSW_00369, SRS_BSW_00377, SRS_BSW_00441)

8.2 Type definitions


[SWS_ComM_00863] ⌈The following Data Types shall be used for the functions
defined in this Specification.⌋(SRS_BSW_00441)

8.2.1 ComM_InitStatusType

[SWS_ComM_00668]⌈
Name ComM_InitStatusType

Kind Enumeration

COMM_ The COM Manager is not initialized or not usable. This shall be
0x00
UNINIT the default value after reset. This status shall have the value 0.
Range
COMM_
0x01 The COM Manager is initialized and usable.
INIT

Description Initialization status of ComM.

Available
ComM.h
via

⌋()

8.2.2 ComM_PncModeType

[SWS_ComM_00673]⌈
Name ComM_PncModeType

Kind Enumeration

COMM_PNC_
0x00 PNC is requested by a local ComM user
REQUESTED

COMM_PNC_READY_
0x01 PNC is requested by a remote ComM user
SLEEP

COMM_PNC_
0x02 PNC is active with no deadline monitoring
PREPARE_SLEEP
Range
COMM_PNC_NO_
0x03 PNC does not communicate
COMMUNICATION

PNC is requested by a local ComM user. The mode


COMM_PNC_ is used to indicate the BswM, that an active PNC
REQUESTED_WITH_ 0x04 request should trigger also a wake-up of the used
WAKEUP_REQUEST communication hardware, if this is supported and
configured (e.g. used for Ethernet switch port

98 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

switching in combination with OA TC10 compliant


Ethernet hardware).

Description Current mode of a PNC

Available
ComM.h
via

⌋()

8.2.3 ComM_StateType

[SWS_ComM_00674]⌈
Name ComM_StateType

Kind Type

Derived
uint8
from

COMM_NO_COM_NO_PENDING_REQUEST 0 --

COMM_NO_COM_REQUEST_PENDING 1 --

Range COMM_FULL_COM_NETWORK_REQUESTED 2 --

COMM_FULL_COM_READY_SLEEP 3 --

COMM_SILENT_COM 4 --

State and sub-state of ComM state machine


ComM states vs. Communication Modes: COMM_NO_COM* : Communication
Description
Mode='No Communication' COMM_FULL_COM*: Communication Mode='Full
Communication' COMM_SILENT_COM: Communicatio Mode='Silent Communication'

Available
ComM.h
via

⌋()

8.2.4 ComM_ConfigType

[SWS_ComM_00162]⌈
Name ComM_ConfigType

Kind Structure

implementation specific

Type --
Elements
The contents of the initialization data structure are implementation
Comment
specific

99 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Description This type contains the implementation-specific post build configuration structure.

Available
ComM.h
via

⌋()

8.3 Function definitions


This is a list of functions provided for upper layer modules.

Note: All functions in this chapter requires previous initialization (ComM_Init), except
the following ones:
 ComM_Init
 ComM_GetVersionInfo

8.3.1 ComM_Init

[SWS_ComM_00146]⌈
Service Name ComM_Init

void ComM_Init (
Syntax const ComM_ConfigType* ConfigPtr
)

Service ID [hex] 0x01

Sync/Async Synchronous

Reentrancy Non Reentrant

Parameters (in) ConfigPtr Pointer to post-build configuration data

Parameters
None
(inout)

Parameters (out) None

Return value None

Initializes the AUTOSAR Communication Manager and restarts the internal state
Description
machines.

Available via ComM.h

⌋(SRS_BSW_00101, SRS_BSW_00358, SRS_BSW_00414)

[SWS_ComM_00793] ⌈Caveats of ComM_Init(): The NVRAM Manager module


has to be initialized to have the possibility to "direct" access the ComM module’s
parameters.⌋()

100 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_00864] ⌈In ComM_Init() ComM shall read non-volatile parameters


specified in SWS_ComM_00103 from NVRAM. If no parameters are available,
ComM shall use the default values in the ComM configuration.⌋()

8.3.2 ComM_DeInit

[SWS_ComM_00147]⌈
Service Name ComM_DeInit

void ComM_DeInit (
Syntax void
)

Service ID [hex] 0x02

Sync/Async Synchronous

Reentrancy Non Reentrant

Parameters (in) None

Parameters (inout) None

Parameters (out) None

Return value None

Description This API de-initializes the AUTOSAR Communication Manager.

Available via ComM.h

⌋(SRS_BSW_00336)

[SWS_ComM_00794] ⌈De-initialization in ComM_DeInit() shall only be performed


if all channels controlled by the ComM module are in COMM_NO_COMMUNICATION
mode. ⌋()

Rationale for SWS_ComM_00794: Since the ComM_DeInit()API cannot return an


error message, it must be assured that all channels are in
COMM_NO_COMMUNICATION mode and COMM_NO_COM_NO_PENDING_REQUEST
sub-state before ComM_DeInit()is called.

[SWS_ComM_00865] ⌈In ComM_DeInit ComM shall store non-volatile parameters


specified in SWS_ComM_00103 to NVRAM.⌋()

8.3.3 ComM_GetStatus

[SWS_ComM_00242]⌈
Service
ComM_GetStatus
Name

101 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Std_ReturnType ComM_GetStatus (
Syntax ComM_InitStatusType* Status
)

Service ID
0x03
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

Parameters
None
(in)

Parameters
None
(inout)

COMM_UNINIT: The ComM is not initialized or not usable. Default


Parameters
Status value after startup or after ComM_DeInit() is called. COMM_INIT: The
(out)
ComM is initialized and usable.

Std_-
E_OK: Successfully return of initialization status
Return value Return-
E_NOT_OK: Return of initialization status failed
Type

Returns the initialization status of the AUTOSAR Communication Manager. After a


call to ComM_DeInit() ComM should have status COMM_UNINIT, and a new call to
Description
ComM_Init needed to make sure ComM restart internal state machines to defailt
values.

Available via ComM.h

⌋(SRS_BSW_00406)

8.3.4 ComM_GetInhibitionStatus

[SWS_ComM_00619]⌈
Service Name ComM_GetInhibitionStatus

Std_ReturnType ComM_GetInhibitionStatus (
NetworkHandleType Channel,
Syntax ComM_InhibitionStatusType* Status
)

Service ID [hex] 0x04

Sync/Async Synchronous

Reentrancy Non Reentrant

Parameters (in) Channel See NetworkHandleType

Parameters (inout) None

Parameters (out) Status See ComM_InhibitionStatusType

E_OK: Successfully returned Inhibition Status


Return value Std_ReturnType
E_NOT_OK: Return of Inhibition Status failed

102 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Description Returns the inhibition status of a ComM channel.

Available via ComM.h

⌋()

8.3.5 ComM_RequestComMode

[SWS_ComM_00110]⌈
Service
ComM_RequestComMode
Name

Std_ReturnType ComM_RequestComMode (
ComM_UserHandleType User,
Syntax ComM_ModeType ComMode
)

Service ID
0x05
[hex]

Sync/Async Synchronous

Reentrancy Reentrant

User Handle of the user who requests a mode


Parameters
(in) COMM_FULL_COMMUNICATION COMM_NO_
ComMode
COMMUNICATION

Parameters
None
(inout)

Parameters
None
(out)

E_OK: Successfully changed to the new mode


Std_Return- E_NOT_OK: Changing to the new mode failed
Return value
Type COMM_E_MODE_LIMITATION: Mode can not be granted
because of mode inhibition.

Requesting of a Communication Mode by a user.


Note:
The following modes are no vaild user requests, since they are used as internal
modes:
- COMM_SILENT_COMMUNICATION (this mode is used for synchronization at
shutdown)
- COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST (this mode is
Description
used internally within the ComM channel statemachine to trigger the lower layers to
request a wakeup on the network if the used hardware support such a feature. (e.g.
Ethernet hardware which is compatible with OA TC10).
The following modes are valid user requests:
- COMM_NO_COMMUNICATION
- COMM_FULL_COMMUNICATION. The communication request could also be
released due to a ComM communication inhibition

Available via ComM.h

⌋(SRS_ModeMgm_09081)
103 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_00795] ⌈Configuration of ComM_RequestComMode: Relationship


between users and channels. A user is statically mapped to one or more
channels.⌋(SRS_ModeMgm_09090)

8.3.6 ComM_GetMaxComMode

[SWS_ComM_00085]⌈
Service Name ComM_GetMaxComMode

Std_ReturnType ComM_GetMaxComMode (
ComM_UserHandleType User,
Syntax
ComM_ModeType* ComMode
)

Service ID [hex] 0x06

Sync/Async Synchronous

Reentrancy Reentrant

Parameters (in) User Handle of the user who requests a mode

Parameters
None
(inout)

Parameters (out) ComMode See ComM_ModeType

E_OK: Successfully returned maximum allowed


Std_Return- Communication Mode
Return value
Type E_NOT_OK: Return of maximum allowed Communication
Mode failed

Function to query the maximum allowed Communication Mode of the


Description
corresponding user.

Available via ComM.h

⌋()

Use Case: This function provides the possibility to request the maximum possible
mode (e.g. user wants to check if it is possible to get "Full Communication" mode or if
a limitation/inhibition is active). This is needed for diagnosis/debugging..
[SWS_ComM_00374] ⌈If more than one channel is linked to one user request and
the maximum allowed modes of the channels are different, then the function
ComM_GetMaxComMode shall return the lowest mode (see SWS_ComM_00867
and SWS_ComM_00868).⌋(SRS_ModeMgm_09149)

[SWS_ComM_00796] ⌈Configuration of ComM_GetMaxComMode: Relationship


between users and channels. A user is statically mapped to one or more
channels.⌋(SRS_ModeMgm_09090)

104 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

8.3.7 ComM_GetRequestedComMode

[SWS_ComM_00079]⌈
Service Name ComM_GetRequestedComMode

Std_ReturnType ComM_GetRequestedComMode (
ComM_UserHandleType User,
Syntax
ComM_ModeType* ComMode
)

Service ID [hex] 0x07

Sync/Async Synchronous

Reentrancy Reentrant

Parameters (in) User Handle of the user who requests a mode

Parameters
None
(inout)

Parameters (out) ComMode Name of the requested mode

E_OK: Successfully returned requested Communication


Mode
Return value Std_ReturnType
E_NOT_OK: Return of requested Communication Mode
failed

Function to query the currently requested Communication Mode of the


Description
corresponding user.

Available via ComM.h

⌋(SRS_ModeMgm_09149)

Rationale for SWS_ComM_00079: The requested user "Communication Mode" has


to be stored volatile within the Communication Manager Module itself, to prevent
redundant storage of status information by the users.
Comment: If the Communication Manager Module would not have this service every
user has to store the status on its own --> redundant and possibly inconsistent
storage of the same data.
Note: A user is statically mapped to one or more channels. The relationship between
users and channels is reflected by the configuration (see ECUC_ComM_00658).

8.3.8 ComM_GetCurrentComMode

[SWS_ComM_00083]⌈
Service
ComM_GetCurrentComMode
Name

Std_ReturnType ComM_GetCurrentComMode (
ComM_UserHandleType User,
Syntax
ComM_ModeType* ComMode
)

105 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Service ID
0x08
[hex]

Sync/Async Synchronous

Reentrancy Reentrant

Parameters
User Handle of the user who requests a mode
(in)

Parameters
None
(inout)

Parameters
ComMode See ComM_ModeType
(out)

E_OK: Successfully returned Communication Mode from Bus


State Manager
Return value Std_ReturnType
E_NOT_OK: Return of Communication Mode from Bus State
Manager failed

Function to query the current Communication Mode. ComM shall use the
corresponding interfaces of the Bus State Managers to get the current
Description
Communication Mode of the network. (Call to Bus State Manager API: XXXSM _Get
CurrentComMode(...))

Available via ComM.h

⌋(SRS_ModeMgm_09084)

[SWS_ComM_00176] ⌈If more than one channel is linked to one user request and
the modes of the channels are different, the function ComM_GetCurrentComMode
shall return the lowest mode (see SWS_ComM_00867 and
SWS_ComM_00868).⌋(SRS_ModeMgm_09172)

[SWS_ComM_00798] ⌈Configuration of ComM_GetCurrentComMode: Relationship


between users and channels. A user is statically mapped to one or more
channels.⌋(SRS_ModeMgm_09090)

8.3.9 ComM_GetCurrentPNCComMode

[SWS_ComM_91002]⌈
Service Name ComM_GetCurrentPNCComMode

Std_ReturnType ComM_GetCurrentPNCComMode (
ComM_UserHandleType User,
Syntax
ComM_ModeType* ComMode
)

Service ID
0x6a
[hex]

Sync/Async Synchronous

Reentrancy Reentrant

106 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Parameters
User Handle of the user who requests a mode
(in)

Parameters
None
(inout)

Parameters
ComMode See ComM_ModeType
(out)

E_OK: Successfully returned Communication Mode from Bus State


Manager
E_NOT_OK: Return of Communication Mode from Bus State Manager
failed
Std_-
COMM_E_MULTIPLE_PNC_ASSIGNED: Function could not provide
Return value Return-
the current mode of the PNC, since multiple PNCs are assigned to the
Type
affected user
COMM_E_NO_PNC_ASSIGNED: Function could not provide the
current mode of the PNC, since no PNC is assigned to the affected
user

The function returns the current Communication Mode of the corresponding PNC
Description
the affected user is assigned to.

Available via ComM.h

⌋()

[SWS_ComM_01022] ⌈If more than one PNC is assigned to the affected user, the
function ComM_GetCurrentPNCComMode shall return
COMM_E_MULTIPLE_PNC_ASSIGNED as ComMode. ⌋(SRS_ModeMgm_09149)

Comment to [SWS_ComM_01022]: For multiple PNCs it is not possible to return a


consistent communication mode since the PNCs could have different communication
modes.

[SWS_ComM_01023] ⌈If no PNC is assigned to the affected user, the function


ComM_GetCurrentPNCComMode shall return COMM_E_NO_PNC_ASSIGNED as
ComMode.⌋(SRS_ModeMgm_09149)

[SWS_ComM_01024] ⌈If [SWS_ComM_01022] and [SWS_ComM_01023] do not


apply, the function shall query for the current communication mode of the
corresponding PNC statemachine the user is assigned to. If the corresponding PNC
statemachine is in main state COMM_PNC_FULL_COMMUNICATION, then the
function shall return COMM_FULL_COMMUNICATION as ComMode. If the
corresponding PNC statemachine is main state
COMM_PNC_NO_COMMUNCATION, then the function shall return
COMM_NO_COMMUNICATION as ComMode.⌋(SRS_ModeMgm_09149)

Note: The service interface ComM_UserRequest provides the possibility among


others to query for the current mode of a channel and to query for the current mode
of a PNC. Since the service interface has ComM_ModeType as a return value type,
the main state of the ComM PNC statemachine has to be mapped to the main state
of the ComM channel statemachine
107 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_01025] ⌈Configuration of ComM_GetCurrentPNCComMode:


Relationship between users and PNCs. A user is statically mapped to one or more
PNCs.⌋(SRS_ModeMgm_09090, SRS_ModeMgm_09246)

8.3.10 ComM_GetPncToChannelMapping

[SWS_ComM_91013]{DRAFT} ⌈
Service Name ComM_GetPncToChannelMapping (draft)

Std_ReturnType ComM_GetPncToChannelMapping (
boolean* MappingTable,
Syntax uint8* ChannelCnt,
uint8* PncCnt
)

Service ID
0x68
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

Parameters
None
(in)

Parameters
None
(inout)

Pointer to two-dimensional array with the current Pnc-to-channel-


Mapping
mapping of the PNC Gateway where the first dimension covers all
Table
relevant channels and the second all relevant PNCs.
Parameters
Channel Pointer to number of ComM channels that are passed in the Mapping
(out)
Cnt Table parameter.

Pointer to number of PNCs, that are passed in the MappingTable


PncCnt
parameter.

E_OK: Successfully get PNC-to-channel-mapping entry


Std_-
E_NOT_OK: Getting of PNC-to-channel-mapping entry failed
Return value Return-
COMM_E_LEARNING_ACTIVE: Functionality cannot be executed
Type
because PNC learning phase is active.

This function returns the current configuration of the ECUs PNC-to-channel-


Description mapping.
Tags: atp.Status=draft

Available via ComM.h

⌋(SRS_ModeMgm_09259)

[SWS_ComM_01034] {DRAFT} ⌈Function ComM_GetPncMappingTable shall be


only available if ComMPncGatewayEnabled and

108 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

ComMDynamicPncToChannelMappingSupport are set to TRUE. ⌋(


SRS_ModeMgm_09258)

[SWS_ComM_01035] {DRAFT} ⌈If


ComMDynamicPncToChannelMappingEnabled is set to TRUE on at least one
channel and when PNC learning phase is active, then the function
ComM_GetPncMappingTable shall return with COMM_E_LEARNING_ACTIVE.
⌋(SRS_ModeMgm_09259)

[SWS_ComM_01036] {DRAFT} ⌈ If
ComMDynamicPncToChannelMappingEnabled is set to TRUE on at least one
channel and when PNC learning phase is not active, then the function
ComM_GetPncMappingTable shall provide within MappingTable the current PNC-
to-channel mapping as a two-dimensional array where on first dimension all ComM
channels where ComMPncGatewayType is set are handled according to their derived
order in ComM and on second dimension all configured ComMPnc according to their
order given by their ComMPncId. ComM shall also set the parameter ChannelCnt
and PncCnt accordingly and return with E_OK. ⌋(SRS_ModeMgm_09259)

Note: The content of this MappingTable can only be interpreted correctly by


application or tester correctly if the number of Channels and PNCs and their order is
known.

8.3.11 ComM_UpdatePncToChannelMapping

[SWS_ComM_91015]{DRAFT} ⌈
Service
ComM_UpdatePncToChannelMapping (draft)
Name

Std_ReturnType ComM_UpdatePncToChannelMapping (
const boolean* MappingTable,
Syntax uint8 channelCnt,
uint8 PncCnt
)

Service ID
0x62
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

Pointer to two-dimensional array with the current Pnc-to-channel-


Mapping
mapping of the PNC Gateway where the first dimension covers all
Table
relevant channels and the second all relevant PNCs.
Parameters
(in) channel
Number of physical channels passed in the MappingTable
Cnt

PncCnt Number of PNCs passed in the MappingTable

Parameters
None
(inout)

109 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Parameters
None
(out)

E_OK: Successfully set PNC-to-channel-mapping entry


Std_-
E_NOT_OK: Set of PNC-to-channel-mapping entry failed
Return value Return-
COMM_E_LEARNING_ACTIVE: Functionality cannot be executed
Type
because PNC learning phase is active.

This function can be used to set entries within the the ECUs PNC-to-channel-
Description mapping
Tags: atp.Status=draft

Available via ComM.h

⌋(SRS_ModeMgm_09259)

[SWS_ComM_01037] {DRAFT} ⌈Function ComM_UpdatePncMappingTable shall


be only available if ComMPncGatewayEnabled and
ComMDynamicPncToChannelMappingSupport are set to TRUE.
⌋(SRS_ModeMgm_09258)

[SWS_ComM_01038] {DRAFT} ⌈If


ComMDynamicPncToChannelMappingEnabled is set to TRUE on at least one
channel and the function ComM_UpdatePncMappingTable is called, ComM shall
check if ChannelCnt matches the number of ComM channels where
ComMPncGatewayType is set and PncCnt matches the number of configured
ComMPnc. If one parameter does not match and ComMDevErrorDetect is set to
TRUE ComM shall call Det_ReportError with
COMM_E_WRONG_PARAMETERS. If one parameter does not match ComM shall
return with E_NOT_OK. ⌋(SRS_ModeMgm_09259)

[SWS_ComM_01039] {DRAFT} ⌈If


ComMDynamicPncToChannelMappingEnabled is set to TRUE on at least one
channel, when passed parameters match (see [SWS_ComM_01038]) and when
PNC learning phase is active, then the function ComM_UpdatePncMappingTable
shall return with COMM_E_LEARNING_ACTIVE.⌋(SRS_ModeMgm_09259)

[SWS_ComM_01040] {DRAFT} ⌈If


ComMDynamicPncToChannelMappingEnabled is set to TRUE on at least one
channel, when passed parameters match (see [SWS_ComM_01038]) and PNC
learning phase is not active, then the function ComM_UpdatePncMappingTable
shall merge for all PNCs the provided information with their current PNC-to-channel
mappings whereby MappingTable shall be interpreted as a two-dimensional array
with on first dimension all ComM channels where ComMPncGatewayType is set are
handled according to their derived order in ComM and on second dimension all
configured ComMPnc according to their order given by their ComMPncId.
Additionally it shall return with E_OK.⌋(SRS_ModeMgm_09259)

110 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

8.3.12 ComM_ResetPncToChannelMapping

[SWS_ComM_91017]{DRAFT} ⌈
Service Name ComM_ResetPncToChannelMapping (draft)

Std_ReturnType ComM_ResetPncToChannelMapping (
Syntax void
)

Service ID
0x63
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

Parameters (in) None

Parameters
None
(inout)

Parameters
None
(out)

E_OK: Successfully reset PNC-to-channel-mapping to default


Std_Return- E_NOT_OK: Reset of PNC-to-channel-mapping to default failed
Return value
Type COMM_E_LEARNING_ACTIVE: Functionality cannot be executed
because PNC learning phase is active.

This function resets dynamic entries within the ECUs PNC-to-channel-mapping to


Description default values
Tags: atp.Status=draft

Available via ComM.h

⌋(SRS_ModeMgm_09259)

[SWS_ComM_01041] {DRAFT} ⌈ Function ComM_ResetPncToChannelMapping


shall be only available if ComMPncGatewayEnabled and
ComMDynamicPncToChannelMappingSupport are set to TRUE.
⌋(SRS_ModeMgm_09258)

[SWS_ComM_01042] {DRAFT} ⌈If


ComMDynamicPncToChannelMappingEnabled is set to TRUE on at least one
channel and when PNC learning phase is active, then the function
ComM_ResetPncToChannelMapping shall return with
COMM_E_LEARNING_ACTIVE. ⌋(SRS_ModeMgm_09259)

[SWS_ComM_01043] {DRAFT} ⌈If


ComMDynamicPncToChannelMappingEnabled is set to TRUE on at least one
channel and when PNC learning phase is not active, then the function
ComM_ResetPncToChannelMapping shall set the PNC-to-channel mappings to
the default values from the original configuration (i.e. static entries) and return with
E_OK.⌋(SRS_ModeMgm_09259)

111 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

8.3.13 ComM_PnLearningRequest

[SWS_ComM_91019]{DRAFT} ⌈
Service
ComM_PnLearningRequest (draft)
Name

Std_ReturnType ComM_PnLearningRequest (
Syntax void
)

Service ID
0x64
[hex]

Sync/Async Asynchronous

Reentrancy Non Reentrant

Parameters
None
(in)

Parameters
None
(inout)

Parameters
None
(out)

E_OK: Successfully started PNC Learning algorithm


Std_Return- E_NOT_OK: PNC Learning algorithm could not be started
Return value
Type COMM_E_LEARNING_ACTIVE: Functionality cannot be executed
because PNC learning phase is active.

Triggers the NM to return into NM Repeat Message State and send the Partial
Network Learning Bit (in order for receiving nodes to respond) together with the
Repeat Message Request Bit (in order for receiving nodes to return into NM Repeat
Description
Message State). This function is used for the optional Dynamic PNC-to-channel-
mapping feature.
Tags: atp.Status=draft

Available via ComM.h

⌋(SRS_ModeMgm_09260)

[SWS_ComM_01044] {DRAFT} ⌈ Function ComM_PnLearningRequest shall be


only available if ComMDynamicPncToChannelMappingSupport is set to TRUE.
⌋(SRS_ModeMgm_09258)

[SWS_ComM_01045] {DRAFT} ⌈ If
ComMDynamicPncToChannelMappingSupport is set to TRUE on at least one
channel and when PNC learning phase is active, then the function
ComM_PnLearningRequest shall return with
COMM_E_LEARNING_ACTIVE.⌋(SRS_ModeMgm_09260)

112 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_01058] {DRAFT} ⌈ If ComM_PnLearningRequest is called, PNC


learning phase is inactive and at least one ComMChannel resides in another state
than COMM_FULL_COMMUNICATION, then the function
ComM_PnLearningRequest shall return with E_NOT_OK.⌋(SRS_ModeMgm_09260)

Note: When ComM_PnLearningRequest is called, all relevant communication


channels need to be already in COMM_FULL_COMMUNICATION state. This could
be achieved by requesting an active diagnostic session via call of
ComM_DCM_ActiveDiagnostic(). The learning phase may be triggered by a
diagnostic tester.

[SWS_ComM_01046] {DRAFT} ⌈ If
ComMDynamicPncToChannelMappingSupport is set to TRUE on at least one
channel and when the PNC learning phase is not active, then the function
ComM_PnLearningRequest shall call the API Nm_PnLearningRequest on all
channels where ComMDynamicPncToChannelMappingEnabled is set to TRUE
and return with E_OK.⌋(SRS_ModeMgm_09260)

8.3.14 ComM_UpdatePncMembership

[SWS_ComM_91021]{DRAFT} ⌈
Service
ComM_UpdatePncMembership (draft)
Name

Std_ReturnType ComM_UpdatePncMembership (
boolean Control,
Syntax const uint8* PncMembership
)

Service ID
0x65
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

Boolean Parameter: 0 = Unset the corresponding Bits in PncBit


Control
Mask 1 = Set the corresponding Bits in PncBitMask
Parameters
(in)
Array of uint8 with <PNC Vector Length> Elements that holds
PncMembership
the current PNC Membership of the node

Parameters
None
(inout)

Parameters
None
(out)

E_OK: ComM_PncMembership successfully updated


E_NOT_OK: Error occurred while updating the PNC
Return value Std_ReturnType
membership.
COMM_E_LEARNING_ACTIVE: Functionality cannot be

113 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

executed because PNC learning phase is active.

This function is used by SWCs to update the PNC membership which is transmitted
during PNC Learning. This function is used for the optional Dynamic PNC-to-
Description channel-mapping feature. This function is used for the optional Dynamic PNC-to-
channel-mapping feature.
Tags: atp.Status=draft

Available via ComM.h

⌋(SRS_ModeMgm_09263)

[SWS_ComM_01047] {DRAFT} ⌈ Function ComM_UpdatePncMembership shall be


only available if ComMDynamicPncToChannelMappingSupport is set to
TRUE.⌋(SRS_ModeMgm_09258)

[SWS_ComM_01048] {DRAFT} ⌈ If
ComMDynamicPncToChannelMappingSupport is set to TRUE on at least on
channel and when PNC learning phase is active, then the function
ComM_UpdatePncMembership shall return with
COMM_E_LEARNING_ACTIVE.⌋(SRS_ModeMgm_09260)

[SWS_ComM_01049] {DRAFT} ⌈ If
ComMDynamicPncToChannelMappingEnabled is set to TRUE on at least on
channel and PNC Learning phase is not active, then the function
ComM_UpdatePncMembership shall perform the following actions:
 When Control = 0, then the current PNC membership shall be applied with
logical AND (conjunction) operation on the parameter PncMembership (This
would only unset the bits out of the PncBitMask)
 When Control = 1, then the current PNC membership shall be applied with
logical OR (disjunction) operation on the parameter PncMembership (This
would only set the bits out of the PncBitMask)
 Return with E_OK.
⌋(SRS_ModeMgm_09260)

8.3.15 ComM_PreventWakeUp

[SWS_ComM_00156]⌈
Service Name ComM_PreventWakeUp

Std_ReturnType ComM_PreventWakeUp (
NetworkHandleType Channel,
Syntax boolean Status
)

Service ID
0x09
[hex]

Sync/Async Synchronous
114 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Reentrancy Non Reentrant

Channel See NetworkHandleType


Parameters
(in) FALSE: Wake up inhibition is switched off TRUE: Wake up inhibition
Status
is switched on

Parameters
None
(inout)

Parameters
None
(out)

E_OK: Successfully changed wake up status for the channel


Std_-
E_NOT_OK: Change of wake up status for the channel failed, e.g.
Return value Return-
ComMEcuGroupClassification disables the functionality (see ECUC_
Type
ComM_00563)

Description Changes the inhibition status COMM_NO_WAKEUP for the corresponding channel.

Available via ComM.h

⌋(SRS_ModeMgm_09157)

[SWS_ComM_00799] ⌈Configuration of ComM_PreventWakeUp: Configurable with


ComMWakeupInhibitionEnabled (see
ECUC_ComM_00559).⌋(SRS_ModeMgm_09089)

8.3.16 ComM_LimitChannelToNoComMode

[SWS_ComM_00163]⌈
Service
ComM_LimitChannelToNoComMode
Name

Std_ReturnType ComM_LimitChannelToNoComMode (
NetworkHandleType Channel,
Syntax
boolean Status
)

Service ID
0x0b
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

Channel See NetworkHandleType


Parameters
(in) FALSE: Limit channel to COMM_NO_COMMUNICATION disabled
Status
TRUE: Limit channel to COMM_NO_COMMUNICATION enabled

Parameters
None
(inout)

Parameters
None
(out)

115 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

E_OK: Successfully changed inhibition status for the channel


Std_Return- E_NOT_OK: Change of inhibition status for the channel failed, e.g.
Return value
Type ComMEcuGroupClassification disables the functionality (see ECUC_
ComM_00563)

Changes the inhibition status for the channel for changing from COMM_NO_
Description COMMUNICATION to a higher Communication Mode. (See also ComM_Limit
ECUToNoComMode, same functionality but for all channels)

Available via ComM.h

⌋(SRS_ModeMgm_09157)

[SWS_ComM_00800] ⌈Configuration of ComM_LimitChannelToNoComMode:


Configurable with ComMModeLimitationEnabled (see ECUC_ComM_00560) and
ComMResetAfterForcingNoComm (see
ECUC_ComM_00558).⌋(SRS_ModeMgm_09071)

8.3.17 ComM_LimitECUToNoComMode

[SWS_ComM_00124]⌈
Service
ComM_LimitECUToNoComMode
Name

Std_ReturnType ComM_LimitECUToNoComMode (
Syntax boolean Status
)

Service ID
0x0c
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

Parameters FALSE: Limit ECU to COMM_NO_COMMUNICATION disabled


Status
(in) TRUE: Limit ECU to COMM_NO_COMMUNICATION enabled

Parameters
None
(inout)

Parameters
None
(out)

E_OK: Successfully changed inhibition status for the ECU


Std_- E_NOT_OK: Change of inhibition status for the ECU failed, e.g. Com
Return value
ReturnType MEcuGroupClassification disables the functionality (see ECUC_Com
M_00563)

Changes the inhibition status for the ECU (=all channels) for changing from COMM_
Description NO_COMMUNICATION to a higher Communication Mode. (See also ComM_Limit
ChannelToNoComMode, same functionality but for a specific channels)

Available via ComM.h

⌋(SRS_ModeMgm_09157)

116 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_00801] ⌈Configuration of ComM_LimitECUToNoComMode:


Configurable with ComMModeLimitationEnabled (see ECUC_ComM_00560) and
ComMResetAfterForcingNoComm (see
ECUC_ComM_00558).⌋(SRS_ModeMgm_09071)

8.3.18 ComM_ReadInhibitCounter

[SWS_ComM_00224]⌈
Service Name ComM_ReadInhibitCounter

Std_ReturnType ComM_ReadInhibitCounter (
Syntax uint16* CounterValue
)

Service ID [hex] 0x0d

Sync/Async Synchronous

Reentrancy Non Reentrant

Parameters (in) None

Parameters
None
(inout)

Amount of rejected COMM_FULL_COMMUNICATION user


Parameters (out) CounterValue
requests.

Std_Return- E_OK: Successfully returned Inhibition Counter


Return value
Type E_NOT_OK: Return of Inhibition Counter failed

This function returns the amount of rejected COMM_FULL_COMMUNICATION


Description
user requests.

Available via ComM.h

⌋(SRS_ModeMgm_09156)

[SWS_ComM_00802] ⌈Configuration of ComM_ReadInhibitCounter: Configurable


with ComMModeLimitationEnabled (see ECUC_ComM_00560). Function will only
be available if ComMModeLimitationEnabled (see ECUC_ComM_00560) is
enabled and ComMGlobalNvMBlockDescriptor is
configured.⌋(SRS_ModeMgm_09156)

8.3.19 ComM_ResetInhibitCounter

[SWS_ComM_00108]⌈
Service Name ComM_ResetInhibitCounter

Std_ReturnType ComM_ResetInhibitCounter (
Syntax void
)

117 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Service ID [hex] 0x0e

Sync/Async Synchronous

Reentrancy Non Reentrant

Parameters (in) None

Parameters
None
(inout)

Parameters (out) None

E_OK: Successfully reset of Inhibit COMM_FULL_


Std_Return- COMMUNICATION Counter
Return value
Type E_NOT_OK: Reset of Inhibit COMM_FULL_COMMUNICATION
Counter failed

This function resets the Inhibited COMM_FULL_COMMUNICATION request


Description
Counter.

Available via ComM.h

⌋(SRS_ModeMgm_09156)

[SWS_ComM_00803] ⌈Configuration of ComM_ResetInhibitCounter: Configurable


with ComMModeLimitationEnabled (see ECUC_ComM_00560). Function will only
be available if ComMModeLimitationEnabled (see ECUC_ComM_00560) is
enabled and ComMGlobalNvMBlockDescriptor is
configured.⌋(SRS_ModeMgm_09155)

8.3.20 ComM_SetECUGroupClassification

[SWS_ComM_00552]⌈
Service Name ComM_SetECUGroupClassification

Std_ReturnType ComM_SetECUGroupClassification (
Syntax ComM_InhibitionStatusType Status
)

Service ID [hex] 0x0f

Sync/Async Synchronous

Reentrancy Non Reentrant

Parameters (in) Status See ComM_InhibitionStatusType

Parameters
None
(inout)

Parameters (out) None

E_OK: Successfully change the ECU Group Classification


Std_Return-
Return value Status
Type
E_NOT_OK: Change of the ECU Group Classification Status

118 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

failed

Description Changes the ECU Group Classification status (see chapter 10.2.2)

Available via ComM.h

⌋()

8.3.21 ComM_GetVersionInfo

[SWS_ComM_00370]⌈
Service Name ComM_GetVersionInfo

void ComM_GetVersionInfo (
Syntax Std_VersionInfoType* Versioninfo
)

Service ID [hex] 0x10

Sync/Async Synchronous

Reentrancy Reentrant

Parameters (in) None

Parameters (inout) None

Parameters (out) Versioninfo See Std_VersionInfoType

Return value None

Description This function returns the version information of this module

Available via ComM.h

⌋(SRS_BSW_00407)

8.4 Callback notifications

[SWS_ComM_00620] ⌈All the provided indication functions shall be implemented


pre-compile time.⌋()

Note: All functions in this chapter requires that the ComM module is initialized
correctly.

8.4.1 AUTOSAR Network Management Interface

8.4.1.1 ComM_Nm_NetworkStartIndication
[SWS_ComM_00383]⌈
Service Name ComM_Nm_NetworkStartIndication

119 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

void ComM_Nm_NetworkStartIndication (
Syntax NetworkHandleType Channel
)

Service ID
0x15
[hex]

Sync/Async Asynchronous

Reentrancy Reentrant

Parameters
Channel See NetworkHandleType
(in)

Parameters
None
(inout)

Parameters
None
(out)

Return value None

Indication that a NM-message has been received in the Bus Sleep Mode, what
Description
indicates that some nodes in the network have already entered the Network Mode.

Available via ComM_Nm.h

⌋()

120 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

8.4.1.2 ComM_Nm_NetworkMode
[SWS_ComM_00390]⌈
Service Name ComM_Nm_NetworkMode

void ComM_Nm_NetworkMode (
Syntax NetworkHandleType Channel
)

Service ID [hex] 0x18

Sync/Async Asynchronous

Reentrancy Reentrant

Parameters (in) Channel Channel

Parameters (inout) None

Parameters (out) None

Return value None

Description Notification that the network management has entered Network Mode.

Available via ComM_Nm.h

⌋()

8.4.1.3 ComM_Nm_PrepareBusSleepMode
[SWS_ComM_00391]⌈
Service Name ComM_Nm_PrepareBusSleepMode

void ComM_Nm_PrepareBusSleepMode (
Syntax NetworkHandleType Channel
)

Service ID
0x19
[hex]

Sync/Async Asynchronous

Reentrancy Reentrant

Parameters
Channel Channel
(in)

Parameters
None
(inout)

Parameters
None
(out)

Return value None

Notification that the network management has entered Prepare Bus-Sleep Mode.
Description
Reentrancy: Reentrant (but not for the same NM-Channel)

Available via ComM_Nm.h

121 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

⌋()

8.4.1.4 ComM_Nm_BusSleepMode
[SWS_ComM_00392]⌈
Service Name ComM_Nm_BusSleepMode

void ComM_Nm_BusSleepMode (
Syntax NetworkHandleType Channel
)

Service ID
0x1a
[hex]

Sync/Async Asynchronous

Reentrancy Reentrant

Parameters
Channel Channel
(in)

Parameters
None
(inout)

Parameters
None
(out)

Return value None

Notification that the network management has entered Bus-Sleep Mode. This
Description callback function should perform a transition of the hardware and transceiver to
bus-sleep mode.

Available via ComM_Nm.h

⌋()

8.4.1.5 ComM_Nm_RestartIndication
[SWS_ComM_00792]⌈
Service
ComM_Nm_RestartIndication
Name

void ComM_Nm_RestartIndication (
Syntax NetworkHandleType Channel
)

Service ID
0x1b
[hex]

Sync/Async Asynchronous

Reentrancy Reentrant

Parameters
Channel Channel
(in)

Parameters
None
(inout)

122 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Parameters
None
(out)

Return value None

If NmIf has started to shut down the coordinated busses, AND not all coordinated
busses have indicated bus sleep state, AND on at least on one of the coordinated
Description busses NM is restarted, THEN the NM Interface shall call the callback function Com
M_Nm_RestartIndication with the nmNetworkHandle of the channels which have
already indicated bus sleep state.

Available via ComM_Nm.h

⌋()

8.4.1.6 ComM_Nm_RepeatMessageLeftIndication
[SWS_ComM_91024]{DRAFT} ⌈
Service Name ComM_Nm_RepeatMessageLeftIndication (draft)

void ComM_Nm_RepeatMessageLeftIndication (
Syntax NetworkHandleType Channel
)

Service ID
0x66
[hex]

Sync/Async Asynchronous

Reentrancy Reentrant

Parameters
Channel See NetworkHandleType
(in)

Parameters
None
(inout)

Parameters
None
(out)

Return value None

Notification that the state of all <BusNm> has left RepeatMessage. This interface is
used to indicate by the optional Dynamic PNC-to-channel-mapping feature to
Description
indicate that learning phase ends.
Tags: atp.Status=draft

Available via ComM_Nm.h

⌋(SRS_ModeMgm_09265)

8.4.1.7 ComM_Nm_PncLearningBitIndication
[SWS_ComM_91026]{DRAFT} ⌈
Service Name ComM_Nm_PncLearningBitIndication (draft)

void ComM_Nm_PncLearningBitIndication (
Syntax NetworkHandleType Channel
)

123 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Service ID [hex] 0x69

Sync/Async Asynchronous

Reentrancy Reentrant

Parameters (in) Channel See NetworkHandleType

Parameters
None
(inout)

Parameters (out) None

Return value None

Service to indicate that an NM message with set PNC Learning Bit has been
Description received.
Tags: atp.Status=draft

Available via ComM_Nm.h

⌋(SRS_ModeMgm_09261)

8.4.1.8 ComM_Nm_ForwardSynchronizedPncShutdown
[SWS_ComM_91003]{OBSOLETE} ⌈
Service
ComM_Nm_ForwardSynchronizedPncShutdown (obsolete)
Name

void ComM_Nm_ForwardSynchronizedPncShutdown (
Syntax NetworkHandleType Channel
)

Service ID
0x6b
[hex]

Sync/Async Synchronous

Reentrancy Reentrant

Parameters
Channel Channel
(in)

Parameters
None
(inout)

Parameters
None
(out)

Return value None

If an ECU in role of an intermediate PNC coordinator receives a PN shutdown


message via a <Bus>Nm, then ComM is immediately indicated via ComM_Nm_
ForwardSynchronizedPncShutdown to forward the request for a synchronized PNC
shutdown of the affected PNCs. Therefore, ComM will immediately release the
Description
affected PNC state machines and forward the PN information to the affected ComM
Channels and the corresponding NM channels, respectively. Note: This supports a
nearly synchronized PNC shutdown across the PN topology from the top-level PNC
coordinator down to the subordinated PNC node.

124 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Tags: atp.Status=obsolete

Available via ComM_Nm.h

⌋(SRS_ModeMgm_09269)

[SWS_ComM_91030]{DRAFT} ⌈
Service
ComM_Nm_ForwardSynchronizedPncShutdown (draft)
Name

void ComM_Nm_ForwardSynchronizedPncShutdown (
NetworkHandleType Channel,
Syntax
const uint8* PncBitVectorPtr
)

Service ID
0x6b
[hex]

Sync/Async Synchronous

Reentrancy Reentrant

Channel Channel
Parameters
(in) PncBitVector Pointer to PNC Bit vector with all PNC bits set to "1" which are
Ptr indicated for a synchronized PNC shutdown

Parameters
None
(inout)

Parameters
None
(out)

Return value None

If an ECU in role of an intermediate PNC coordinator receives a PN shutdown


message via a <Bus>Nm, then ComM is immediately indicated via ComM_Nm_
ForwardSynchronizedPncShutdown to forward the request for a synchronized PNC
shutdown of the affected PNCs given by PncBitVectorPtr. Therefore, ComM will
immediately release the affected PNC state machines and forward the PN
Description
information to the affected ComM Channels and the corresponding NM channels,
respectively. Note: This supports a nearly synchronized PNC shutdown across the
PN topology from the top-level PNC coordinator down to the subordinated PNC
node.
Tags: atp.Status=draft

Available via ComM_Nm.h

⌋(SRS_ModeMgm_09269)

8.4.1.9 ComM_Nm_UpdateEIRA
[SWS_ComM_91028]{DRAFT} ⌈
Service Name ComM_Nm_UpdateEIRA (draft)

void ComM_Nm_UpdateEIRA (
Syntax const uint8* PncBitVectorPtr

125 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Service ID
0x6c
[hex]

Sync/Async Synchronous

Reentrancy Reentrant

PncBit Pointer to the PNC bit vector which contain the current aggregated
Parameters (in)
VectorPtr internal and external PNC requests (EIRA)

Parameters
None
(inout)

Parameters
None
(out)

Return value None

Function to indicate the current aggregated external / internal PNC request called
Description by Nm.
Tags: atp.Status=draft

Available via ComM_Nm.h

⌋(SRS_ModeMgm_09248, SRS_ModeMgm_09250)

8.4.1.10 ComM_Nm_UpdateERA
[SWS_ComM_91029]{DRAFT} ⌈
Service Name ComM_Nm_UpdateERA (draft)

void ComM_Nm_UpdateERA (
NetworkHandleType Channel,
Syntax
const uint8* PncBitVectorPtr
)

Service ID [hex] 0x6d

Sync/Async Synchronous

Reentrancy Reentrant

Channel Channel
Parameters (in)
PncBitVector PNC bit vector which contain the current external PNC requests
Ptr (ERA) received on the given channel

Parameters
None
(inout)

Parameters
None
(out)

Return value None

Function to indicate the current external PNC request per channel called by Nm.
Description
Tags: atp.Status=draft

126 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Available via ComM_Nm.h

⌋(SRS_ModeMgm_09248, SRS_ModeMgm_09250)

8.4.2 AUTOSAR Diagnostic Communication Manager Interface

8.4.2.1 ComM_DCM_ActiveDiagnostic
[SWS_ComM_00873]⌈
Service Name ComM_DCM_ActiveDiagnostic

void ComM_DCM_ActiveDiagnostic (
Syntax NetworkHandleType Channel
)

Service ID [hex] 0x1f

Sync/Async Synchronous

Reentrancy Reentrant

Parameters (in) Channel Channel needed for Diagnostic communication

Parameters (inout) None

Parameters (out) None

Return value None

Description Indication of active diagnostic by the DCM.

Available via ComM_Dcm.h

⌋()

8.4.2.2 ComM_DCM_InactiveDiagnostic
[SWS_ComM_00874]⌈
Service Name ComM_DCM_InactiveDiagnostic

void ComM_DCM_InactiveDiagnostic (
Syntax NetworkHandleType Channel
)

Service ID [hex] 0x20

Sync/Async Synchronous

Reentrancy Reentrant

Parameters (in) Channel Channel no longer needed for Diagnostic communication

Parameters (inout) None

Parameters (out) None

Return value None


127 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Description Indication of inactive diagnostic by the DCM.

Available via ComM_Dcm.h

⌋()

8.4.3 AUTOSAR ECU State Manager Interface

8.4.3.1 ComM_EcuM_WakeUpIndication
[SWS_ComM_00275]⌈
Service Name ComM_EcuM_WakeUpIndication

void ComM_EcuM_WakeUpIndication (
Syntax NetworkHandleType Channel
)

Service ID [hex] 0x2a

Sync/Async Synchronous

Reentrancy Reentrant

Parameters (in) Channel Channel

Parameters (inout) None

Parameters (out) None

Return value None

Description Notification of a wake up on the corresponding channel.

Available via ComM_EcuM.h

⌋()

8.4.3.2 ComM_EcuM_PNCWakeUpIndication
[SWS_ComM_91001]⌈
Service Name ComM_EcuM_PNCWakeUpIndication

void ComM_EcuM_PNCWakeUpIndication (
Syntax PNCHandleType PNCid
)

Service ID [hex] 0x37

Sync/Async Synchronous

Reentrancy Reentrant

Parameters (in) PNCid Identifier of the partial network cluster

Parameters (inout) None

Parameters (out) None

128 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Return value None

Description Notification of a wake up on the corresponding partial network cluster.

Available via ComM_EcuM.h

⌋()

8.4.4 AUTOSAR ECU State Manager and Basic Software Mode Manager
Interface

8.4.4.1 ComM_CommunicationAllowed
[SWS_ComM_00871]⌈
Service Name ComM_CommunicationAllowed

void ComM_CommunicationAllowed (
NetworkHandleType Channel,
Syntax
boolean Allowed
)

Service ID [hex] 0x35

Sync/Async Asynchronous

Reentrancy Non Reentrant

Channel Channel
Parameters (in)
TRUE: Communication is allowed FALSE: Communication is not
Allowed
allowed

Parameters
None
(inout)

Parameters (out) None

Return value None

EcuM or BswM shall indicate to ComM when communication is allowed. If EcuM/


Description
Flex is used: BswM

Available via ComM_BswM.h

⌋()

8.4.5 Bus State Manager Interface

8.4.5.1 ComM_BusSM_ModeIndication
[SWS_ComM_00675]⌈
Service Name ComM_BusSM_ModeIndication

void ComM_BusSM_ModeIndication (
Syntax NetworkHandleType Channel,
129 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

ComM_ModeType ComMode
)

Service ID
0x33
[hex]

Sync/Async Asynchronous

Reentrancy Reentrant

Channel See NetworkHandleType


Parameters
(in)
ComMode See ComM_ModeType

Parameters
None
(inout)

Parameters
None
(out)

Return value None

Indication of the actual bus mode by the corresponding Bus State Manager. ComM
Description
shall propagate the indicated state to the users with means of the RTE and BswM.

Available via ComM.h

⌋()

8.4.5.2 ComM_BusSM_BusSleepMode
[SWS_ComM_91000]⌈
Service
ComM_BusSM_BusSleepMode
Name

void ComM_BusSM_BusSleepMode (
Syntax NetworkHandleType Channel
)

Service ID
0x34
[hex]

Sync/Async Synchronous

Reentrancy Reentrant

Parameters
Channel Identification of the channel
(in)

Parameters
None
(inout)

Parameters
None
(out)

Return value None

Notification of the corresponding Bus State Manager that the actual bus mode is
Description Bus-Sleep.
Only applicable for ComM channels with ComMNmVariant set to SLAVE_ACTIVE or

130 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

SLAVE_PASSIVE.
E.g. LIN slaves (ComMNMVariant = SLAVE_ACTIVE) or Ethernet channels with OA
TC10 compliant Ethernet hardware which act as passive communication slave (Com
MNMVariant = SLAVE_PASSIVE and EthTrcvActAsSlavePassiveEnabled set to
TRUE)

Available via ComM.h

⌋()

8.4.6 COM Interface (OBSOLETE)

[SWS_ComM_00819]{OBSOLETE} ⌈
Service
ComM_COMCbk_<sn> (obsolete)
Name

void ComM_COMCbk_<sn> (
Syntax void
)

Service ID
0x36
[hex]

Sync/Async Synchronous

Reentrancy Non Reentrant

Parameters
None
(in)

Parameters
None
(inout)

Parameters
None
(out)

Return value None

This callback is called when the EIRA or ERA was updated in COM. The call only
informs the ComM about ERA and EIRA changes. The actual handling is done in the
Description next call to ComM_MainFunction_<ComMChannel.ShortName> with changing the
corresponding PN State machine.
Tags: atp.Status=obsolete

Available via ComM_Com.h

⌋()

8.5 Scheduled functions


These functions are directly called by Basic Software Scheduler. The following
functions shall have no return value and no parameter. All functions shall be non
reentrant.
131 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

8.5.1 ComM_MainFunction

[SWS_ComM_00429]⌈
Service
ComM_MainFunction_<ComMChannel.ShortName>
Name

void ComM_MainFunction_<ComMChannel.ShortName> (
Syntax void
)

Service ID
0x60
[hex]

This function shall perform the processing of the AUTOSAR ComM activities that are
not directly initiated by the calls e.g. from the RTE. There shall be one dedicated
Description
Main Function for each channel of ComM.
Precondition: ComM shall be initialized

Available via SchM_ComM.h

⌋(SRS_BSW_00373)

[SWS_ComM_00818] ⌈Channel.ShortName shall be used to configure


ComM_MainFunction_<ComMChannel.ShortName> (see section 10.2.2) .⌋()

Note: ComMChannel.ShortName is the short name of the ComMChannel container


that will be managed by the ComM_MainFunction_<ComMChannel.ShortName>
function

8.6 Expected interfaces


In this chapter all interfaces required from other modules are shown. An overview of
the required interfaces is shown in Figure 1.

8.6.1 Mandatory Interfaces

This chapter defines all interfaces which are required to fulfil the core functionality of
the module.

[SWS_ComM_00828] ⌈
API function Header File Description
Nm_PassiveStartUp Nm This function calls the
<BusNm>_PassiveStartUp function (e.g.
CanNm_PassiveStartUp function is called
if channel is configured as CAN).
Nm_NetworkRequest Nm This function calls the
<BusNm>_NetworkRequest (e.g.
CanNm_NetworkRequest function is called
if channel is configured as CAN).
Nm_NetworkRelease Nm This function calls the
<BusNm>_NetworkRelease bus specific
function (e.g. CanNm_NetworkRelease

132 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

function is called if channel is configured


as CAN).
Dcm_ComM_NoComModeEntered Dcm This call informs the Dcm module about a
ComM mode change to
COMM_NO_COMMUNICATION.
Dcm_ComM_SilentComModeEntered Dcm This call informs the Dcm module about a
ComM mode change to
COMM_SILENT_COMMUNICATION.
Dcm_ComM_FullComModeEntered Dcm This call informs the Dcm module about a
ComM mode change to
COMM_FULL_COMMUNICATION.
Rte_Ports_UserMode_P()[n].Switch_currentMode(RT Rte Indicate COMM_NO_COMMUNICATION
E_MODE_ComMMode_COMM_NO_COMMUNICATI
ON) mode to RTE
Rte_Ports_UserMode_P()[n].Switch_currentMode(RT Rte Indicate COMM_SILENT_COMMUNICATION
E_MODE_ComMMode_COMM_SILENT_COMMUNI
CATION)
mode to RTE
Rte_Ports_UserMode_P()[n].Switch_currentMode(RT Rte Indicate COMM_FULL_COMMUNICATION
E_MODE_ComMMode_COMM_FULL_COMMUNICA
TION)
mode to RTE
BswM_ComM_CurrentMode BswM Indicate Communication Mode to BswM
NvM_ReadBlock NvM NVRAM manager API for Read block
NvM_WriteBlock NvM NVRAM manager API for Write block
NvM_GetErrorStatus NvM NVRAM manager API for Get status
<BusSM>_GetCurrentComMode <BusSM> Function to query the actual
communication mode from the <Bus>
State Manager.
<BusSM>_RequestComMode <BusSM> Function to request a communication
mode from the <Bus> State Manager.
⌋()

8.6.1.1 AUTOSAR NVRAM Manager module

[SWS_ComM_00103] ⌈The ComM module shall use the corresponding standardized


services of the NVRAM Manager module (see SWS_ComM_00828) for storing and
reading non-volatile configuration data ComMNoWakeup (see ECUC_ComM_00569),
ComMEcuGroupClassification (see ECUC_ComM_00563), inhibition status
(see SWS_ComM_00157), the Inhibit counter (see SWS_ComM_00140), the PNC-
to-channel Mapping (see [SWS_ComM_01040]) and the PNC membership (see
[SWS_ComM_01049]). ⌋()

Comment: See SWS_ComM_00864 and SWS_ComM_00865 when configuration


data shall be read and stored
For details refer to the AUTOSAR NVRAM Manager module Specification [7].

8.6.1.2 AUTOSAR Bus State Manager

[SWS_ComM_00962]⌈ The prefix for the StateManager APIs ("<BusSm>") shall be


CanSM, LinSM, FrSM, EthSM if the Parameter ComMBusType is
COMM_BUS_TYPE_CAN, COMM_BUS_TYPE_LIN, COMM_BUS_TYPE_FR or
COMM_BUS_TYPE_ETH accordingly.⌋(SRS_ModeMgm_09155)

[SWS_ComM_00957]⌈ If ComMBusType = "COMM_BUS_TYPE_CDD" the API


prefix ("<BusSm>") shall be configured in the Parameter
"ComMCDDBusPrefix".⌋(SRS_ModeMgm_09207)
133 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

[SWS_ComM_00963]⌈ The Communication Manager module shall use


<BusSm>_GetCurrentComMode() from the State Manager to query the current
communication mode if necessary.⌋()

[SWS_ComM_00958]⌈ The Communication Manager module shall use


<BusSm>_RequestComMode() from the State Manager to request a dedicated
communication mode.⌋()

When it is necessary to request a dedicated communication mode depends on the


current status of each instance of the channel state machine (see above).
For details of the functionality of the Bus State Manager modules refer to their
Specification [23], [24], [25], [28].
Comment: Those APIs can be called re-entrant, as long as different channel &
controller numbers are used.

8.6.1.3 AUTOSAR Network Management Interface

[SWS_ComM_00261] ⌈The ComM module shall use the corresponding functions to


synchronize the bus start-up and shutdown of the Network Management (see
SWS_ComM_00828).
For details refer to the AUTOSAR NM Interface Specification [9].⌋()

8.6.1.4 AUTOSAR Diagnostic Communication Manager Module

[SWS_ComM_00266] ⌈The ComM module shall use the corresponding functions provided by DCM
(see SWS_ComM_00828) to control the communication capabilities of the DCM module.⌋()

Comment: DCM provides no functions to start/stop transmission and reception. DCM ensures to
control communication according the indicated Communication Manager Module states.

For details refer to the AUTOSAR DCM Specification [11].

8.6.1.5 AUTOSAR RTE interface provided by RTE to ComM for the SW-C

[SWS_ComM_00091] ⌈The ComM module shall use the corresponding function provided by RTE to
indicate modes to the users. There shall be one indication per user. Fan-out in case of a
mode indication related to more than one user shall be done by the Communication
Manager Module.⌋(SRS_ModeMgm_09085)

[SWS_ComM_00663] ⌈If more than one channel is linked to one user request and the modes of the
channels are different, the ComM module shall indicate the lowest mode to the
user.⌋(SRS_ModeMgm_09085)

[SWS_ComM_00662] ⌈The sequence of users shall start with user 0 up to user N and the name of the
mode ports shall be UM000, UM001, ... UM<N>.⌋(SRS_ModeMgm_09090)

Rationale for SWS_ComM_00662: It shall be possible to use the port based API also to address
specific users directly.

134 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Comment: Within the array of ports, the ports are named alphabetically.

[SWS_ComM_00778] ⌈The ComM module shall explicitly indicate changes in modes to each
individual user, to which a SW-C is connected. The ComM module shall do this by calling
the right API on the RTE through the ports “UMnnn”.⌋(SRS_ModeMgm_09085)

Comment: There is one such port per configured user to which a SW-C is connected. For users not
used by SW-Cs (e.g. the users created due to ECUC_ComM_00840) no mode port will be
created.

Implementation Hint: An implementation of the ComM module could use any of the normal RTE-
mechanisms to signal changes in the mode to the users. Given the specific configurability
of the Communication Manager Module, using the RTE “Indirect API” seems most
appropriate. This works as follows (consult the RTE specification for details).
An implementation of the Communication Manager Module can use the “Rte_Ports” API to obtain an
array of the “UMnnn” ports at run-time:

/* Return an array of all ports that provide the interface ComM_CurrentMode. Because of the specific
naming conventions chosen, the element n in this array of ports will reference to the port
UM<nnn>. For example userModePorts[1] will be a handle on port UM001 */

userModePorts = Rte_Ports_ComM_CurrentMode_P();

The number of such userModePorts can be obtained through the call


Rte_NPorts_ComM_CurrentMode_P(). This value corresponds to the size of the
COMM_USER_LIST array.

To signal that a user n is in a new mode, the Communication Manager Module should:
userModePorts[n].Switch_currentMode(newMode)

For details refer to the AUTOSAR RTE specification [8] and AUTOSAR Services Mode Management
specification [21].

8.6.1.6 Basic Software Mode Manager (BswM)

[SWS_ComM_00861] ⌈The ComM module shall use the corresponding function


provided by BswM to report the states of Communication Manager Module channels
(see SWS_ComM_00828).⌋()

For details refer to AUTOSAR Basic Software Mode Manager module [29] .

8.6.2 Optional Interfaces

This chapter defines all interfaces which are required to fulfill an optional functionality
of the module.

[SWS_ComM_00829]⌈
Header
API Function Description
File

BswM_ComM_- BswM_ Function is called by ComM to indicate the current mode of the
CurrentPNCMode ComM.h PNC.

135 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

BswM_ComM_- BswM_
Function is called by ComM to signal a shutdown.
InitiateReset ComM.h

Com_Receive- Com_ReceiveSignal copies the data of the signal identified by


Com.h
Signal SignalId to the location specified by SignalDataPtr.

The service Com_SendSignal updates the signal object identified by


Com_SendSignal Com.h
SignalId with the signal referenced by the SignalDataPtr parameter.

Set Repeat Message Request Bit and Partial Network Learning Bit
for NM messages transmitted next on the bus. For that purpose
<BusNm>_PnLearningRequest shall be called (e.g. CanNm_Pn
Nm_PnLearning- LearningRequest function if channel is configured as CAN). This will
Nm.h
Request (draft) force all nodes to enter the PNC Learning Phase and re-enter
Repeat Message Stat. This is needed for the optional Dynamic
PNC-to-channel-mapping feature.
Tags: atp.Status=draft

This function forward the request for a synchronized PNC shutdown


of a particular PNC given by PncId to the affected <Bus>Nm by
Nm_Request- calling <Bus>Nm_RequestSynchronizedPncShutdown The function
SynchronizedPnc- Nm.h call is only valid if NmStandardBusType is not set to NM_BUSNM_
Shutdown (draft) LOCALNM (e.g. CanNm_RequestSynchronizedPncShutdown
function is called for NM_BUSNM_CANNM).
Tags: atp.Status=draft

Indication by ComM of internal PNC requests. This is used to


Nm_UpdateIRA
Nm.h aggregate the internal PNC requests.
(draft)
Tags: atp.Status=draft

⌋()

Note: Optional interfaces from Com module are considered obsolete in R21-11 due
to a concept part, which will be validated after the release of R21-11.

8.6.2.1 AUTOSAR DET


The Communication Manager module shall use Det_ReportError from the Default Error Tracer Module
to report development errors.

8.6.3 Configurable Interfaces

None.

8.7 Service Interfaces

8.7.1 Sender-Receiver-interfaces

8.7.1.1 ComM_CurrentChannelRequest
[SWS_ComM_00904]⌈
Name ComM_CurrentChannelRequest_{channel_name}

Comment Array of ComMUserIdentifier, that currently hold FULL_COM requests for this channel.
136 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

The size of the attribute fullComRequestors.handleArray is NUM_COMM_USER_


PER_CHANNEL

IsService true

{ecuc(ComM/ComMConfigSet/ComMChannel/ComMFullCommRequestNotification
Variation Enabled)} == true
channel_name = {ecuc(ComM/ComMConfigSet/ComMChannel.SHORT-NAME)}

fullComRequestors

Data Type ComM_UserHandleArrayType_{channel_name}


Elements
channel_name = {ecuc(ComM/ComMConfigSet/Com
Variation
MChannel.SHORT-NAME)}

⌋()
8.7.1.2 ComM_UpdatePncMembership
[SWS_ComM_91100]{OBSOLETE} ⌈
Name ComM_UpdatePncMembership (obsolete)

Clear (Control = FALSE) or Add (Control = TRUE) values of the PNC Membership
Comment
Tags: atp.Status=obsolete

IsService true

{ecuc(ComM/ComMGeneral/ComMDynamicPncToChannelMappingSupport)} ==
Variation
true

Control

Type boolean

Variation --
Data
Elements
PncMemberShip

Type ComM_PncMembershipType

Variation --

⌋(SRS_ModeMgm_09263)
8.7.1.3 ComM_PnLearningRequest
[SWS_ComM_91101]{OBSOLETE} ⌈
Name ComM_PnLearningRequest (obsolete)

--
Comment
Tags: atp.Status=obsolete

IsService true

{ecuc(ComM/ComMGeneral/ComMDynamicPncToChannelMappingSupport)} ==
Variation
true

NetworkHandle
Data
Elements
Type NetworkHandleType

137 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Variation --

⌋(SRS_ModeMgm_09260)

8.7.2 Client-Server-interfaces

8.7.2.1 ComM_ChannelLimitation
[SWS_ComM_00743]⌈
Name ComM_ChannelLimitation

A SW-C playing the role of a "Mode Manager" can use this interface to configure the
Comment
Communication Manager Module to inhibit communication mode for a given channel.

IsService true

Variation {ecuc(ComM/ComMGeneral.ComMModeLimitationEnabled)} == true

0 E_OK Operation successful


Possible
Errors
1 E_NOT_OK Operation failed

Operation GetInhibitionStatus

Comment returns the inhibition status of a channel

Variation --

Status

Type ComM_InhibitionStatusType

Parameters Direction OUT

Comment --

Variation --

E_OK
Possible Errors
E_NOT_OK

Operation LimitChannelToNoComMode

Changes the inhibition status for the channel for changing from COMM_NO_
Comment COMMUNICATION to a higher Communication Mode.
(See also ComM_LimitECUToNoComMode, same functionality but for all channels)

Variation --

Status

Parameters Type boolean

Direction IN

138 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

FALSE: Limit channel to COMM_NO_COMMUNICATION disabled


Comment
TRUE: Limit channel to COMM_NO_COMMUNICATION enabled

Variation --

Possible E_OK
Errors E_NOT_OK

⌋()

8.7.2.2 ComM_ChannelWakeup
[SWS_ComM_00742]⌈
Name ComM_ChannelWakeup

A SW-C playing the role of a "Mode Manager" can use this interface to configure the
Comment Communication Manager Module to take precautions against awakening other ECU's
by starting the communication.

IsService true

Variation {ecuc(ComM/ComMGeneral.ComMWakeupInhibitionEnabled)} == true

0 E_OK Operation successful


Possible
Errors
1 E_NOT_OK Operation failed

Operation GetInhibitionStatus

Comment returns the inhibition status of a channel

Variation --

Status

Type ComM_InhibitionStatusType

Parameters Direction OUT

Comment --

Variation --

E_OK
Possible Errors
E_NOT_OK

Operation PreventWakeUp

Changes the inhibition status COMM_NO_WAKEUP for the corresponding


Comment
channel.

Variation --

Status
Parameters
Type boolean

139 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Direction IN

Comment --

Variation --

Possible E_OK
Errors E_NOT_OK

⌋()
8.7.2.3 ComM_ECUModeLimitation
[SWS_ComM_00741]⌈
Name ComM_ECUModeLimitation

A SW-C which plays the role of a "Mode Manager" can use this interface to change
Comment
the behavior of the entire ECU.

IsService true

Variation {ecuc(ComM/ComMGeneral.ComMModeLimitationEnabled)} == true

0 E_OK Operation successful


Possible
Errors
1 E_NOT_OK Operation failed

Operation LimitECUToNoComMode

Changes the inhibition status for the ECU (=all channels) for changing from COMM_
NO_COMMUNICATION to a higher Communication Mode.
Comment
(See also ComM_LimitChannelToNoComMode, same functionality but for a specific
channels)

Variation --

Status

Type boolean

Direction IN
Parameters
FALSE: Limit ECU to COMM_NO_COMMUNICATION disabled
Comment
TRUE: Limit ECU to COMM_NO_COMMUNICATION enabled

Variation --

Possible E_OK
Errors E_NOT_OK

Operation ReadInhibitCounter

Comment returns the value of the 'inhibited full communication request counter'

Variation {ecuc(ComM/ComMGeneral.ComMGlobalNvMBlockDescriptor)} != NULL

Parameters CounterValue

140 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Type uint16

Direction OUT

Comment --

Variation --

E_OK
Possible Errors
E_NOT_OK

Operation ResetInhibitCounter

Comment reset the "inhibited full communication request counter"

Variation {ecuc(ComM/ComMGeneral.ComMGlobalNvMBlockDescriptor)} != NULL

E_OK
Possible Errors
E_NOT_OK

Operation SetECUGroupClassification

Comment changes the ECU group classification status

Variation --

Status

Type ComM_InhibitionStatusType

Parameters Direction IN

Comment --

Variation --

E_OK
Possible Errors
E_NOT_OK

⌋()
8.7.2.4 ComM_UserRequest
[SWS_ComM_01000]⌈
Name ComM_UserRequest

A SW-C that wants to explicitly direct the local Communication Manager Module of the
ECU towards a certain state requires the client-server interface ComM_UserRequest.
Through this interface, the SW-C could either set the desired state of all communication
Comment
channels (if the user is mapped to one or more channels) or of all PNCs (if the user is
mapped to one or more PNCs) that are relevant for that component to "No
Communication" or "Full Communication".

IsService true

Variation --

Possible 0 E_OK Operation successful

141 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Errors 1 E_NOT_OK Operation failed

ComMMode cannot be granted because of Com


2 E_MODE_LIMITATION
MMode inhibition

E_MULTIPLE_PNC_ Operation is not possible since multiple PNCs are


3
ASSIGNED assigned to the affected ComMUser

Operation is not possible since no PNC is assigned


4 E_NO_PNC_ASSIGNED
to the affected ComMUser

Operation GetCurrentComMode

Returns the current Communication Manager Module mode for the SW-C-Return the
current Communication Manager Modul channel mode to the SW-C. Please note: the
Comment
channel mode is returned. Even though the affected user is assigned to a PNC. (see
ComM_GetCurrentComMode)

Variation --

ComMode

Type ComM_ModeType

Parameters Direction OUT

Comment --

Variation --

Possible E_OK
Errors E_NOT_OK

Operation GetCurrentPNCComMode

Return the current Communication Manager Modul PNC mode to the SW-C. Please
note: the PNC mode is returned as ComM_ModeType (COMM_NO_
COMMUNICATION == COMM_PNC_NO_COMMUNICATIO, COMM_FULL_
Comment COMMUNICATION == COMM_PNC_FULL_COMMUNICATION). If the affected Com
M user is mapped to multiple PNCs than the operation shall return E_MULTIPLE_
PNC_ASSIGNED. If the affected ComM user is mapped to no PNC than the operation
shall return E_NO_PNC_ASSIGNED.

Variation --

ComMode

Type ComM_ModeType

Parameters Direction OUT

Comment --

Variation --

E_OK
Possible
E_NOT_OK
Errors
E_MULTIPLE_PNC_ASSIGNED

142 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

E_NO_PNC_ASSIGNED

Operation GetMaxComMode

Comment Returns the current Communication Manager Module mode for the SW-C

Variation --

ComMode

Type ComM_ModeType

Parameters Direction OUT

Comment --

Variation --

E_OK
Possible Errors
E_NOT_OK

Operation GetRequestedComMode

Comment Returns that last Communication Manager Module Mode requested by the SW-C

Variation --

ComMode

Type ComM_ModeType

Parameters Direction OUT

Comment --

Variation --

E_OK
Possible Errors
E_NOT_OK

Operation RequestComMode

The SW-C requests that all communication channels it needs are in the provided
Comment
Communication Manager Module mode

Variation --

ComMode

Type ComM_ModeType

Parameters Direction IN

Comment --

Variation --

143 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

E_OK
Possible
E_NOT_OK
Errors
E_MODE_LIMITATION

⌋()

8.7.2.5 ComM_PncToChannelMapping
[SWS_ComM_91102]⌈
Name ComM_PncToChannelMapping

Comment Client-server interface to get, update or clear the PNC-to-channel-mapping

IsService true

{ecuc(ComM/ComMGeneral/ComMDynamicPncToChannelMappingSupport)} ==
Variation
true

0 E_OK Operation successful

Possible 1 E_NOT_OK Operation failed


Errors
E_LEARNING_ Operation not possible as PNC Learning Phase is
5
ACTIVE active

Operation GetPncToChannelMapping

Returns the current PNC-to-channel-mapping


Comment
Tags: atp.Status=draft

Variation --

MappingTable

Type boolean*

Direction OUT

Pointer to two-dimensional array with the current Pnc-to-channel-


Comment mapping of the PNC Gateway where the first dimension covers all
relevant channels and the second all relevant PNCs.

Variation --

ChannelCnt
Parameters
Type uint8

Direction OUT

Comment --

Variation --

PncCnt

Type uint8

Direction OUT
144 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Comment --

Variation --

E_OK
Possible
E_NOT_OK
Errors
E_LEARNING_ACTIVE

Operation ResetPncToChannelMapping

Resets the current PNC-to-channel mapping to its static configured default


Comment
Tags: atp.Status=draft

Variation --

E_OK
Possible Errors E_NOT_OK
E_LEARNING_ACTIVE

Operation UpdatePncToChannelMapping

Updates the current PNC-to-channel-mapping


Comment
Tags: atp.Status=draft

Variation --

MappingTable

Type const boolean*

Direction IN

Pointer to two-dimensional array with the current Pnc-to-channel-


Comment mapping of the PNC Gateway where the first dimension covers all
relevant channels and the second all relevant PNCs.

Variation --

channelCnt

Type uint8
Parameters
Direction IN

Comment --

Variation --

PncCnt

Type uint8

Direction IN

Comment --

Variation --

145 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

E_OK
Possible
E_NOT_OK
Errors
E_LEARNING_ACTIVE

⌋(SRS_ModeMgm_09259)

8.7.2.6 ComM_DynamicPncToChannelMapping
[SWS_ComM_91108]⌈
Name ComM_DynamicPncToChannelMapping

A SW-C can use this interface in order to update during runtime the PNC membership
Comment and trigger a learning request by sending NM messages with Partial Network Learning
and Repeat Message Request bits set.

IsService true

Variation {ecuc(ComM/ComMGeneral/ComMDynamicPncToChannelMappingSupport)} == true

0 E_OK Operation successful

Possible 1 E_NOT_OK Operation failed


Errors
Operation not possible as PNC Learning Phase is
5 E_LEARNING_ACTIVE
active

Operation ComM_PnLearningRequest

Comment Triggers a learning request

Variation --

E_OK
Possible Errors E_NOT_OK
E_LEARNING_ACTIVE

Operation ComM_UpdatePncMembership

Used by SWCs to update the PNC membership which is transmitted during PNC
Comment
Learning

Variation --

Control

Type boolean

Direction IN

Parameters Comment --

Variation --

PncMembership

Type const uint8*

146 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Direction IN

Array of uint8 with <PNC Vector Length> Elements that holds the
Comment
current PNC Membership of the node.

Variation --

E_OK
Possible
E_NOT_OK
Errors
E_LEARNING_ACTIVE

⌋()

8.7.3 Mode-Switch-Interfaces

8.7.3.1 ComM_CurrentMode
[SWS_ComM_01001]⌈
Name ComM_CurrentMode

A SW-C that wants to get informed about its current Communication Manager Module
Comment
Mode requires the ModeSwitchInterface ComM_CurrentMode.

IsService true

Variation --

Mode
currentMode ComMMode
Group

⌋()

8.7.4 Implementation Data Types

8.7.4.1 ComM_InhibitionStatusType
[SWS_ComM_00669]⌈
Name ComM_InhibitionStatusType

Kind Bitfield

Derived
uint8
from

Kind Name Mask Description

WakeupInhibition
bit 0x01 Bit 0 (LSB): Wake Up inhibition active
Elements Active

Bit 1: Limit to COMM_NO_


bit LimitedToNoCom 0x02
COMMUNICATION mode

Defines whether a mode inhibition is active or not.


Description Inhibition status of ComM.
e.g. status=00000011 -> Wake up inhibition and limitation to COMM_NO_
147 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

COMMUNICATION mode active

Variation --

Available
Rte_ComM_Type.h
via

⌋()
8.7.4.2 ComM_ModeType
[SWS_ComM_00672]⌈
Name ComM_ModeType

Kind Type

Derived
uint8
from

ComM state machine is in "No Communication"


COMM_NO_
0 mode. Configured channel shall have no
COMMUNICATION
transmission or reception capability.

ComM state machine is in "Silent Communication"


COMM_SILENT_
1 mode. Configured channel shall have only reception
COMMUNICATION
capability, no transmission capability.

ComM state machine is in "Full Communication"


Range COMM_FULL_
2 mode. Configured channel shall have both
COMMUNICATION
transmission and reception capability.

ComM state machine is in "Full Communication"


COMM_FULL_ mode. Configured channel shall have both
COMMUNICATION_ transmission and reception towards the lower layer
3
WITH_WAKEUP_ (e.g. Ethernet hardware compliant to OA TC10). This
REQUEST is only for internal use within the ComM channel
statemachine.

Description Current mode of the Communication Manager (main state of the state machine).

Variation --

Available
Rte_ComM_Type.h
via

⌋()
8.7.4.3 ComM_UserHandleType
[SWS_ComM_00670]⌈
Name ComM_UserHandleType

Kind Type

Derived
uint8
from

Handle to identify a user. For each user, a unique value must be defined at system
generation time. Maximum number of users is 255. Legal user IDs are in the range 0 ..
Description
254; user ID 255 is reserved and shall have the symbolic representation COMM_
NOT_USED_USER_ID.
148 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Variation --

Available
Rte_ComM_Type.h
via

⌋()
8.7.4.4 ComM_UserHandleArrayType
[SWS_ComM_00906]⌈
Name ComM_UserHandleArrayType_{channel_name}

Kind Structure

numberOfRequesters

Type uint8

Comment --

handleArray
Elements
Type ComM_UserHandleSubArrayType_{channel_name}

Comment --

channel_name = {ecuc(ComM/ComMConfigSet/Com
Variation
MChannel.SHORT-NAME)}

numberOfRequesters contains the number of valid user handle entries in the "handle
Description Array" member. If no user keeps the channel requested, this is zero {LOWER-
LIMIT=0, UPPER-LIMIT= MAX_CHANNEL_REQUESTER }

Variation channel_name = {ecuc(ComM/ComMConfigSet/ComMChannel.SHORT-NAME)}

Available
Rte_ComM_Type.h
via

⌋()
8.7.4.5 ComM_UserHandleSubArrayType
[SWS_ComM_01005]⌈
Name ComM_UserHandleSubArrayType_{channel_name}

Kind Array Element type ComM_UserHandleType

COUNT{ecuc(ComM/ComMConfigSet/ComMChannel/ComMUserPerChannel)}
Size
Elements

This element contains the user handles of the users which keep the channel
Description requested (if any), starting in its first entries. The size of the array MAX_CHANNEL_
REQUESTERS is the maximum of the number of users requesting a channel.

Variation channel_name = {ecuc(ComM/ComMConfigSet/ComMChannel.SHORT-NAME)}

Available
Rte_ComM_Type.h
via

⌋()
149 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

8.7.4.6 ComM_PncMemberShipType
[SWS_ComM_91103]{OBSOLETE} ⌈
Name ComM_PncMembershipType (obsolete)

Kind Const Pointer

Type const uint8*

Array of uint8 with <PNC Vector Length> Elements that holds the current PNC
Description Membership of the node.
Tags: atp.Status=obsolete

Variation {ecuc(ComM/ComMGeneral/ComMDynamicPncToChannelMappingSupport)} == true

Available
Rte_ComM_Type.h
via

⌋()

8.7.5 Ports

8.7.5.1 ComM_CL
[SWS_ComM_01006]⌈
Name CL_{channel_name}

Provided
Kind Interface ComM_ChannelLimitation
Port

Description --

Type NetworkHandleType
Port Defined Argument
Value(s) {ecuc(ComM/ComMConfigSet/ComMChannel/Com
Value
MChannelId.value)}

{ecuc(ComM/ComMGeneral.ComMModeLimitationEnabled)} == true
Variation
channel_name = {ecuc(ComM/ComMConfigSet/ComMChannel)}

⌋()
8.7.5.2 ComM_CR
[SWS_ComM_01007]⌈
Name CR_{channel_name}

Kind ProvidedPort Interface ComM_CurrentChannelRequest_{channel_name}

Description --

{ecuc(ComM/ComMConfigSet/ComMChannel/ComMFullCommRequestNotification
Variation Enabled)} == true
channel_name = {ecuc(ComM/ComMConfigSet/ComMChannel.SHORT-NAME)}

⌋()

150 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

8.7.5.3 ComM_CW
[SWS_ComM_01008]⌈
Name CW_{channel_name}

Provided
Kind Interface ComM_ChannelWakeup
Port

Description --

Type NetworkHandleType
Port Defined Argument
Value(s) {ecuc(ComM/ComMConfigSet/ComMChannel/Com
Value
MChannelId.value)}

{ecuc(ComM/ComMGeneral.ComMWakeupInhibitionEnabled)} == true
Variation
channel_name = {ecuc(ComM/ComMConfigSet/ComMChannel)}

⌋()
8.7.5.4 ComM_modeLimitation
[SWS_ComM_01009]⌈
Name modeLimitation

Kind ProvidedPort Interface ComM_ECUModeLimitation

Description --

Variation {ecuc(ComM/ComMGeneral.ComMModeLimitationEnabled)} == true

⌋()
8.7.5.5 ComM_UM
[SWS_ComM_01010]⌈
Name UM_{user_name}

Kind ProvidedPort Interface ComM_CurrentMode

Description --

Variation user_name = {ecuc(ComM/ComMConfigSet/ComMUser.SHORT-NAME)}

⌋()
8.7.5.6 ComM_UR
[SWS_ComM_01011]⌈
Name UR_{user_name}

Provided
Kind Interface ComM_UserRequest
Port

Description --

Type ComM_UserHandleType
Port Defined Argument
Value(s) ecuc(ComM/ComMConfigSet/ComMUser/ComMUser
Value
Identifier.value)}

151 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

user_name = {ecuc(ComM/ComMConfigSet/ComMUser.SHORT-
Variation
NAME)}

⌋()
8.7.5.7 ComM_UpdatePncMembership
[SWS_ComM_91105]{OBSOLETE} ⌈
Name UpdatePncMembership (obsolete)

Kind ProvidedPort Interface ComM_UpdatePncMembership

--
Description
Tags: atp.Status=obsolete

Variation {ecuc(ComM/ComMGeneral/ComMDynamicPncToChannelMappingSupport)} == true

⌋(SRS_ModeMgm_09259)
8.7.5.8 ComM_PnLearningRequest
[SWS_ComM_91106]{OBSOLETE} ⌈
Name PnLearningRequest (obsolete)

Kind ProvidedPort Interface ComM_PnLearningRequest

--
Description
Tags: atp.Status=obsolete

Variation {ecuc(ComM/ComMGeneral/ComMDynamicPncToChannelMappingSupport)} == true

⌋(SRS_ModeMgm_09260)
8.7.5.9 ComM_PncToChannelMapping
[SWS_ComM_91107]⌈
Name PncToChannelMapping

Kind ProvidedPort Interface ComM_PncToChannelMapping

Description --

Variation {ecuc(ComM/ComMGeneral/ComMDynamicPncToChannelMappingSupport)} == true

⌋(SRS_ModeMgm_09259)
8.7.5.10 ComM_DynamicPncToChannelMapping
[SWS_ComM_91109]⌈
Name ComM_DynamicPncToChannelMapping

Kind ProvidedPort Interface ComM_DynamicPncToChannelMapping

Description --

Variation {ecuc(ComM/ComMGeneral/ComMDynamicPncToChannelMappingSupport)} == true

⌋()

152 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

8.7.6 ModeDeclarationGroups

8.7.6.1 ComMMode
[SWS_ComM_01012]⌈
Name ComMMode

Kind ModeDeclarationGroup

Category ALPHABETIC_ORDER

Initial mode COMM_NO_COMMUNICATION

On transition value --

COMM_FULL_COMMUNICATION --

Modes COMM_NO_COMMUNICATION --

COMM_SILENT_COMMUNICATION --

Description --

⌋()

153 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

9 Sequence diagrams

9.1 Transmission and Reception start (CAN)


Figure 13 shows the sequence for starting transmission and reception on CAN. The behaviour is equal
for LIN, FlexRay and Ethernet just with different API names.
«module» «module» «module»
ComM Nm CanSM

Request
COMM_FULL_COMMUNICATION

Std_ReturnType:=CanSM_RequestComMode(NetworkHandle,ComM_Mode:
=COMM_FULL_COMMUNICATION)

CanSM_RequestComMode(...)=E_OK

COMM_FULL_COMMUNICATION
indication

ComM_BusSM_ModeIndication(Channel,ComMode:
=COMM_FULL_COMMUNICATION)

alt NM variant
[Active startup] Std_ReturnType:=Nm_NetworkRequest(NetworkHandle)

Nm_NetworkRequest(...)=E_OK

[Passive startup]
Std_ReturnType:=Nm_PassiveStartUp(NetworkHandle)

Nm_PassiveStartUp(...)=E_OK

ComM_Nm_NetworkMode(Channel)

ComM_Nm_NetworkMode(...)

Status: Proposed

Description: Successful
COMM_FULL_COMMUNICATION
request to bus state manager and
request to NM.

Comment: - none -

Figure 13: Starting transmission and reception on CAN

154 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

9.2 Passive Wake-up (CAN)


Figure 14 shows the behaviour after a wake-up indicated by the ECU State Manager module, or the
Nm module for a CAN channel. The behaviour is equal for LIN, FlexRay and Ethernet just
with different API names.
«module» «module» «module» «module» «module» «module»
EcuM Dcm Rte ComM Nm CanSM

COMM_NO_COM_NO_PENDING_REQUEST

alt Passive start up

[ECUM Wake up indication]


ComM_EcuM_WakeUpIndication(NetworkHandleType)

[EcuM PNC Wakeup indication]

ComM_EcuM_PNCWakeUpIndication(PNCHandleType)

[NM restart indication]


ComM_Nm_RestartIndication(NetworkHandleType)

[NM Network Start Indication]


ComM_Nm_NetworkStartIndication(NetworkHandleType)

COMM_NO_COM_REQUEST_PENDING

Wait for CommunicationAllowed =


True

CanSM_RequestComMode(NetworkHandle,
ComM_Mode:=COMM_FULL_COMMUNICATION)

Request
COMM_FULL_COMMUNICATION CanSM_RequestComMode(...)=E_OK

COMM_FULL_COM_NETWORK_REQUESTED

alt NM Variant
[Full/Passive]
Nm_PassiveStartUp(Std_ReturnType, NetworkHandleType)

Nm_PassiveStartUp(...)=E_OK

ComM_Nm_NetworkMode(Channel)

ComM_Nm_NetworkMode(...)

[None/Light]
Start timer
ComMTMinFullComModeDuration

ComM_BusSM_ModeIndication(Channel,
ComMode:=COMM_FULL_COMMUNICATION)

Figure 14: Reaction on a wake-up indicated by the ECU State Manager module

155 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

9.3 Network shutdown (CAN)

«module» «module» «module» «module» «module» «module» VehicleModeManager «module»


EcuM ComM Nm Dcm BswM Rte CanSM

alt Shutdown initiation

[No user requests COMM_FULL_COMMUNICATION and no DCM ActiveDiagnostics] Release last COMM_FULL_COMMUNICATION request

Std_ReturnType:=ComM_RequestComMode(User, ComMode:
=COMM_NO_COMMUNICATION)
ComM_GetRequestedComMode(...)=E_OK

[Forcing to COMM_NO_COMMUNICATION state]


Std_ReturnType:=ComM_LimitChannelToNoComMode(Channel, Status:
=TRUE)
ComM_LimitChannelToNoComMode(...)=E_OK

Switch to
SUBS_COMM_READY_SLEEP
state()

Std_ReturnType:=Nm_NetworkRelease
(NetworkHandle)

Nm_NetworkRelease(...)=E_OK

ComM_Nm_PrepareBusSleepMode(Channel)

ComM_Nm_PrepareBusSleepMode(...)

Switch to COMM_SILENT_COMMUNICATION
COMM_SILENT_COMMUNICATION()

Std_ReturnType:=CanSM_RequestComMode(NetworkHandle, ComM_Mode:
=COMM_SILENT_COMMUNICATION)
CanSM_RequestComMode(...)=E_OK

Rte_Ports_UserMode_P()[n].Switch_currentMode(RTE_MODE_ComModes_SILENT_COMMUNICATION)

Rte_Ports_UserMode_P()[n].Switch_currentMode

BswM_ComM_CurrentMode(Network, COMM_SILENT_COMMUNICATION)

BswM_ComM_CurrentMode()

Dcm_ComM_SilentComModeEntered(uint8)

Dcm_ComM_SilentComModeEntered()

ComM_Nm_BusSleepMode(Channel)

ComM_Nm_BusSleepMode()

Switch to
COMM_NO_COMMUNICATION()

Std_ReturnType:=CanSM_RequestComMode(NetworkHandle, ComM_Mode:
=COMM_NO_COMMUNICATION)

CanSM_RequestComMode(...)=E_OK

ComM_BusSM_ModeIndication(NetworkHandle, ComM_Mode:
=COMM_NO_COMMUNICATION)
Rte_Ports_UserMode_P()[n].Switch_currentMode(RTE_MODE_ComModes_NO_COMMUNICATION)

Rte_Ports_UserMode_P()[n].Switch_currentMode

BswM_ComM_CurrentMode(Network, COMM_NO_COMMUNICATION)

BswM_ComM_CurrentMode()

Dcm_ComM_NoComModeEntered(uint8)

Dcm_ComM_NoComModeEntered()

Status: Proposed.

If EcuM - Flex is used: Description: Release of


BswM should use BswM_ComM_RequestMode() indications to know when ECU can be shutdown network for CAN. Similar
sequence for LIN, FlexRay
and Ethernet

Comments: - none -

Figure 15 shows the possibilities to shutdown the CAN network. It can be either
initiated if the last user releases his COMM_FULL_COMMUNICATION request or
156 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

ComM_LimitChannelToNoComMode(…) (see SWS_ComM_00163) is called. The


behaviour is equal for LIN, FlexRay and Ethernet just with different API names.
«module» «module» «module» «module» «module» «module» VehicleModeManager «module»
EcuM ComM Nm Dcm BswM Rte CanSM

alt Shutdown initiation

[No user requests COMM_FULL_COMMUNICATION and no DCM ActiveDiagnostics] Release last COMM_FULL_COMMUNICATION request

Std_ReturnType:=ComM_RequestComMode(User, ComMode:
=COMM_NO_COMMUNICATION)
ComM_GetRequestedComMode(...)=E_OK

[Forcing to COMM_NO_COMMUNICATION state]


Std_ReturnType:=ComM_LimitChannelToNoComMode(Channel, Status:
=TRUE)
ComM_LimitChannelToNoComMode(...)=E_OK

Switch to
SUBS_COMM_READY_SLEEP
state()

Std_ReturnType:=Nm_NetworkRelease
(NetworkHandle)

Nm_NetworkRelease(...)=E_OK

ComM_Nm_PrepareBusSleepMode(Channel)

ComM_Nm_PrepareBusSleepMode(...)

Switch to COMM_SILENT_COMMUNICATION
COMM_SILENT_COMMUNICATION()

Std_ReturnType:=CanSM_RequestComMode(NetworkHandle, ComM_Mode:
=COMM_SILENT_COMMUNICATION)
CanSM_RequestComMode(...)=E_OK

Rte_Ports_UserMode_P()[n].Switch_currentMode(RTE_MODE_ComModes_SILENT_COMMUNICATION)

Rte_Ports_UserMode_P()[n].Switch_currentMode

BswM_ComM_CurrentMode(Network, COMM_SILENT_COMMUNICATION)

BswM_ComM_CurrentMode()

Dcm_ComM_SilentComModeEntered(uint8)

Dcm_ComM_SilentComModeEntered()

ComM_Nm_BusSleepMode(Channel)

ComM_Nm_BusSleepMode()

Switch to
COMM_NO_COMMUNICATION()

Std_ReturnType:=CanSM_RequestComMode(NetworkHandle, ComM_Mode:
=COMM_NO_COMMUNICATION)

CanSM_RequestComMode(...)=E_OK

ComM_BusSM_ModeIndication(NetworkHandle, ComM_Mode:
=COMM_NO_COMMUNICATION)
Rte_Ports_UserMode_P()[n].Switch_currentMode(RTE_MODE_ComModes_NO_COMMUNICATION)

Rte_Ports_UserMode_P()[n].Switch_currentMode

BswM_ComM_CurrentMode(Network, COMM_NO_COMMUNICATION)

BswM_ComM_CurrentMode()

Dcm_ComM_NoComModeEntered(uint8)

Dcm_ComM_NoComModeEntered()

Status: Proposed.

If EcuM - Flex is used: Description: Release of


BswM should use BswM_ComM_RequestMode() indications to know when ECU can be shutdown network for CAN. Similar
sequence for LIN, FlexRay
and Ethernet

Comments: - none -

Figure 15: Network shutdown (CAN)

157 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

9.4 Communication request


Figure 16 shows the possibilities to start COMM_FULL_COMMUNICATION on CAN. It can be either
initiated if a user requests COMM_FULL_COMMUNICATION request or DCM indicates
ComM_DCM_ActiveDiagnostic (see SWS_ComM_00873 ). The behaviour is equal for LIN,
FlexRay and Ethernet just with different API names.
«module» «module» «module» «module» «module» «module»
EcuM Dcm Rte ComM Nm CanSM

COMM_NO_COM_NO_PENDING_REQUEST

alt Active start up

[User request]
ComM_RequestComMode(Std_ReturnType, ComM_UserHandleType,
ComM_ModeType)

Request
COMM_FULL_COMMUNICATION

[Active diagnostic]
ComM_DCM_ActiveDiagnostic
(NetworkHandleType)

COMM_NO_COM_REQUEST_PENDING

Wait for Communication Allowed =


true
CanSM_RequestComMode(NetworkHandle, ComM_Mode:
=COMM_FULL_COMMUNICATION)

CanSM_RequestComMode(...)=E_OK

COMM_FULL_COM_NETWORK_REQUESTED

alt NM Variant
Nm_NetworkRequest(NetworkHandle)
[Full]

NM_NetworkRequest(...)=E_OK

ComM_Nm_NetworkMode(Channel)

ComM_Nm_NetworkMode(...)

[Passive] ComM_Nm_NetworkMode(Channel)

[None/Light]
Start timer
ComMTMinFullComModeDuration

ComM_BusSM_ModeIndication(Channel, ComMode:
=COMM_FULL_COMMUNICATION)

Figure 16: Request Communication

158 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

9.5 Synchronized PNC shutdown


Note: The sequence diagrams shows the expected behaviour, but not the
implementation
Figure 17 shows the request for a synchronized PNC shutdown if an ECU in the role
of a top-level PNC coordinator detects a release of a PNC.

159 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

«module» «module» «module» <Bus>If


ComM Nm <Bus>Nm

Network Mode
Normal Operation

ComM_MainFunction<Channel>()

PNC statemachine()

COMM_PNC_REQUESTED

Detect PNC release()

Nm_RequestSynchronizedPncShutdown
(NetworkHandleType, PNCHandleType)
<Bus>Nm_RequestSynchronizedPncShutdown(NetworkHandleType, PNCHandleType)

Store the request for synchronized


PNC shutdown per channel

COMM_PNC_READY_SLEEP

<Bus>Nm_Mainfuntion()

opt Create a NM-PDU

[Pending requests for synchronized PNC shutdown available ]

Create a PN shutdown message per NM-channel:


- aggregate all PNCs per Networkhandle which where indicated via <Bus>Nm_RequestSynchronizedPncShutdown
and transfer them to an byte array as PNC bit vector (PN info range). The remaining bits within the PN info range
shall be set to 0.
- set the PNSR bit and PNI bit to 1

[All pending requests for synchronized PNC shutdown completed and request to transmit a cycle NM-PDU is available]

Create a NM-Message with the current PN info per NM-channel:


- aggregate all PNCs which are set to 1 in ERAn and EIRA and transfer them to an byte array as PN bit vector (PN
info range). The remaining bits within the PN info range shall be set to 0
- set the PNI bit to 1

alt Transmit NM-PDU either as PN shutdown message or as typical cyclic NM message

- Reset the according EIRA PN reset timer of the PNCs set to 1 in the NM-PDU

<Bus>If_Transmit(PduIdType, const PduInfoType*)

<Bus>_TxConfirmation(PduIdType, Std_ReturnType)

alt Evaluate the result of the tx confirmation

[result == E_OK]

- consider request for synchronized PNC shutdown or request for cyclic NM message
as completed.
-- If transmission of a PN shutdown message was confirmed, remove the affected PNCs
from the list of pending request for a synchronized PNC shutdown

[result == E_NOT_OK]

- Keep the request for synchronized PNC shutdown or cyclic NM message as pending.
- No further transmission requests are performed until the tx confirmation is indicated
with E_OK.

160 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Figure 17: Request for a synchronized PNC shutdown in the role of a top-level PNC coordinator
(TLPC)
Figure 18 shows the request to forward a received synchronized PNC shutdown if an
ECU in role of an intermediate PNC coordinator receives a PN shutdown message.

161 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

«module» «module» «module» <Bus>If


ComM Nm <Bus>Nm

Network Mode
Normal Operation

<Bus>_RxIndication()

opt Qualify NM message


[NM message qualified as "PN shutdown message"]

Set the PN bits in the ERA PDU to 0 which where received in


the NM message as PN bits set to 1.

Nm_ForwardSynchronizedPncShutdown(NetworkHandleType)

ComM_Nm_ForwardSynchronizedPncShutdown(NetworkHandleType)

Store the request to forward a


synchronized PNC shutdown
per channel

ComM_Mainfunction<channel>()

PNC statemachine()

assert Pending requests for synchronized PNC shutdown available

consider Check if synchronized PNC shutdown could be performed


[Alll ComM user assigned to this PNC request No Com and ERAn of all active coordinated channel this PNC is assigned are set to 0]

COMM_PNC_REQUESTED

Nm_RequestSynchronizedPncShutdown
(NetworkHandleType, PNCHandleType) <Bus>Nm_RequestSynchronizedPncShutdown
(NetworkHandleType, PNCHandleType)

Store the request for synchronized


PNC shutdown per channel

COMM_PNC_READY_SLEEP

It seems a PNC request is pending, while a synchronized PNC shutdown was requested by the top-level
PNC coordinator. Therefore reject the request for synchronized PNC shutdown for this PNC.

<Bus>Nm_Mainfuntion()

opt Create an NM-PDU

[Pending requests for synchronized PNC shutdown available ]

Create a PN shutdown message per NM-channel:


- aggregate all PNCs per Networkhandle which where indicated via <Bus>Nm_RequestSynchronizedPncShutdown
and transfer them to an byte array as PNC bit vector (PN info range). The remaining bits shall be set to 0.
- set the PNSR bit and PNI bit to 1

[All pending requests for synchronized PNC shutdown completed AND request to transmit a cycle NM-PDU is available]

Create a NM-Message with the current PN info per NM-channel:


- aggregate all PNCs which are set to 1 in ERAn and EIRA and transfer them to an byte array as PN bit vector (PN
info range). The remaining bits within the PN info range shall be set to 0
- set the PNI bit to 1

opt Transmit NM-PDU either as PN shutdown message or as typical cyclic NM message

- Reset the accordings EIRA PN reset timer of the PNCs set to 1 in the NM-PDU

<Bus>If_Transmit(PduIdType,
const PduInfoType*)

<Bus>_TxConfirmation(PduIdType, StdReturnType)

alt Evaluate the result of the tx confirmation

[result == E_OK]

- consider request for synchronized PNC shutdown or request for cyclic NM message as
completed
-- If transmission of a PN shutdown message was confirmed, remove the affected PNCs
from the list of pending request for a synchronized PNC shutdown

[result == E_NOT_OK]

- Keep the request for synchronized PNC shutdown or cyclic NM message as pending.
- No further transmission requests are performed until the tx confirmation is indicated with
E_OK.

162 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Figure 18: Request to forward a synchronized PNC shutdown in the role of an intermediate
PNC coordinator

163 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

10 Configuration specification
In general, this chapter defines configuration parameters and their clustering into containers. In order
to support the specification Chapter 10.1 describes fundamentals.

Chapter 10.2 specifies the structure (containers) and the parameters of the module Communication
Manager Module.

Chapter 10.3 specifies published information of the Communication Manager Module.

10.1 How to read this chapter


For details refer to the chapter 10.1 “Introduction to configuration specification” in
SWS_BSWGeneral.

164 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

10.2 Containers and configuration parameters


[SWS_ComM_00419] ⌈The ComM module pre-compile time and link time configuration parameters
shall be checked statically (at the latest during link time) for
correctness.⌋(SRS_BSW_00167)

[SWS_ComM_00322] ⌈The ComM module configuration shall support configuration of bus type for
each channel.⌋()

Rationale for SWS_ComM_00322: Interfaces for controlling the communication stack depends on the
bus type.

[SWS_ComM_00464] ⌈The ComM module shall strictly separate configuration from


implementation.⌋(SRS_BSW_00158)

Rationale for SWS_ComM_00464: Easy and clear configuration.

165 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

10.2.1 ComM

SWS Item ECUC_ComM_00890 :


Module Name ComM
Module Description Configuration of the ComM (Communications Manager) module.
Post-Build Variant Support true
Supported Config Variants VARIANT-POST-BUILD, VARIANT-PRE-COMPILE

Included Containers
Container Name Multiplicity Scope / Dependency
This container contains the configuration parameters and sub
ComMConfigSet 1
containers of the AUTOSAR ComM module.
General configuration parameters of the Communication
ComMGeneral 1
Manager.

AUTOSARParameterDefinition:
EcucDefinitionCollection

+module
ComMGeneral:
ComM: EcucModuleDef EcucParamConfContainerDef
+container
upperMultiplicity = 1 upperMultiplicity = 1
lowerMultiplicity = 0
lowerMultiplicity = 1

ComMUser:
ComMConfigSet: EcucParamConfContainerDef +subContainer EcucParamConfContainerDef

lowerMultiplicity = 0 ComMNetworkManagement:
upperMultiplicity = 65635 EcucParamConfContainerDef
+container
upperMultiplicity = 1
+subContainer lowerMultiplicity = 1
ComMChannel:
EcucParamConfContainerDef
+reference
ComMManageReference:
lowerMultiplicity = 1 EcucReferenceDef
upperMultiplicity = 256
+destination lowerMultiplicity = 0
upperMultiplicity = *

+subContainer

+subContainer
ComMUserPerChannel:
EcucParamConfContainerDef

upperMultiplicity = 255
lowerMultiplicity = 0

+parameter
ComMWakeupSleepRequestEnabled:
EcucBooleanParamDef

defaultValue = false
lowerMultiplicity = 0
ComMPnc: upperMultiplicity = 1
+subContainer EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 504

ComMPncEnabled:
+parameter EcucBooleanParamDef

defaultValue = false
lowerMultiplicity = 0
upperMultiplicity = 1

Figure 19: Configuration ComM

10.2.2 ComMGeneral

SWS Item ECUC_ComM_00554 :


Container Name ComMGeneral
Parent Container ComM
166 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Description General configuration parameters of the Communication Manager.


Configuration Parameters

SWS Item ECUC_ComM_00892 :


Name ComM0PncVectorAvoidance
Parent Container ComMGeneral
Description This parameter avoids sending of 0-PNC-Vectors in case
ComMPncGatewayEnabled is enabled.
Multiplicity 0..1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: ComMPncGatewayEnabled is enabled

SWS Item ECUC_ComM_00555 :


Name ComMDevErrorDetect
Parent Container ComMGeneral
Description Switches the development error detection and notification on or off.

 true: detection and notification is enabled.


 false: detection and notification is disabled.

Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_ComM_00840 :


Name ComMDirectUserMapping
Parent Container ComMGeneral
Description If this parameter is set to true the configuration tool shall automatically
create a ComMUser per ComMPnc and a ComMUser per ComMChannel.
The shortName of the generated ComMUsers shall follow the following
naming convention:
PNCUser_ComMPncId, e.g. PNCUser_13
ChannelUser_ComMChannelId, e.g. ChannelUser_25

Restriction: ComMUser, which are created due to this configuration


parameter, shall not be used by SWCs (only available for BswM).
Multiplicity 0..1
Type EcucBooleanParamDef
Default value false
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity Configuration Pre-compile time X All Variants
Class Link time --
Post-build time --
167 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Value Configuration Class Pre-compile time X All Variants


Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_ComM_00895 :


Name ComMDynamicPncToChannelMappingSupport
Parent Container ComMGeneral
Description Precompile time switch to enable the dynamic PNC-to-channel-mapping
handling.
False: Dynamic PNC-to-channel-mapping is disabled
True: Dynamic PNC-to-channel-mapping is enabled
Tags:
atp.Status=draft
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: ECU
dependency: shall only be TRUE if ComMPncSupport = TRUE

SWS Item ECUC_ComM_00563 :


Name ComMEcuGroupClassification
Parent Container ComMGeneral
Description Defines whether a mode inhibition affects the ECU or not.
Examples:

000: No mode inhibition can be activated

001: Wake up inhibition can be enabled


Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 255
Default value 3
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: Shall be stored non volatile (value must be kept during a
reset) at least if Wake up inhibition is enabled/allowed. Can be changed
during runtime with ComM_SetECUGroupClassification() thus the default
values shall be set only once (first ECU initialization).

SWS Item ECUC_ComM_00560 :


Name ComMModeLimitationEnabled
Parent Container ComMGeneral
Description true if mode limitation functionality shall be enabled.
true: Enabled
false: Disabled
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
168 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Value Configuration Class Pre-compile time X All Variants


Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_ComM_00887 :


Name ComMPncGatewayEnabled
Parent Container ComMGeneral
Description Enables or disables support of Partial Network Gateway.
False: Partial Networking Gateway is disabled
True: Partial Networking Gateway is enabled
Multiplicity 0..1
Type EcucBooleanParamDef
Default value false
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_ComM_00841 :


Name ComMPncPrepareSleepTimer
Parent Container ComMGeneral
Description Time in seconds the PNC state machine shall wait in
COMM_PNC_PREPARE_SLEEP.
Multiplicity 0..1
Type EcucFloatParamDef
Range [0 .. 63]
Default value --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: DRAFT:

#CanNm: (NmPnResetTime + ComMPncPrepareSleepTimer) <


CanNmTimeoutTime
# FrNm: (NmPnResetTime + ComMPncPrepareSleepTimer) < (
(FrNmReadySleepCnt +1) * FrNmRepetitionCycle * "Duration of one
FlexRay Cycle" )
# UdpNm: (NmPnResetTime + ComMPncPrepareSleepTimer) <
UdpNmTimeoutTime

OBSOLETE:

169 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

#CanNm: (CanNmPnResetTime + ComMPncPrepareSleepTimer) <


CanNmTimeoutTime
# FrNm: (FrNmPnResetTime + ComMPncPrepareSleepTimer) < (
(FrNmReadySleepCnt +1) * FrNmRepetitionCycle * "Duration of one
FlexRay Cycle" )
# UdpNm: (UdpNmPnResetTime + ComMPncPrepareSleepTimer) <
UdpNmTimeoutTime

SWS Item ECUC_ComM_00839 :


Name ComMPncSupport
Parent Container ComMGeneral
Description Enables or disables support of partial networking.
False: Partial Networking is disabled
True: Partial Networking is enabled
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_ComM_00558 :


Name ComMResetAfterForcingNoComm
Parent Container ComMGeneral
Description ComM shall perform a reset after entering "No Communication" mode
because of an active mode limitation to "No Communication" mode.
true: Enabled
false: Disabled
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_ComM_00897 :


Name ComMSynchronizedPncShutdownEnabled
Parent Container ComMGeneral
Description Enables or disables support of synchronized PNC shutdown.
FALSE: synchronized PNC shutdown is disabled

TRUE: synchronized PNC shutdown is enabled

NOTE: This is only possible for ECU that has the role of an top-level PNC
coordinator or intermediate PNC within the PNC network
Tags:
atp.Status=draft
Multiplicity 0..1
Type EcucBooleanParamDef
Default value false
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
170 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Multiplicity ConfigurationPre-compile time X All Variants


Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: Parameter can only be set to TRUE if
ComMPncGatewayEnabled is set to TRUE.

SWS Item ECUC_ComM_00695 :


Name ComMSynchronousWakeUp
Parent Container ComMGeneral
Description Wake up of one channel shall lead to a wake up of all channels if true.
true: Enabled
false: Disabled
Multiplicity 1
Type EcucBooleanParamDef
Default value true
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_ComM_00557 :


Name ComMTMinFullComModeDuration
Parent Container ComMGeneral
Description Minimum time duration in seconds, spent in the
COMM_FULL_COMMUNICATION sub-state
COMM_FULL_COM_NETWORK_REQUESTED.
Multiplicity 1
Type EcucFloatParamDef
Range [0.001 .. 65]
Default value 5
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_ComM_00622 :


Name ComMVersionInfoApi
Parent Container ComMGeneral
Description Switches the possibility to read the version information with the service
ComM_GetVersionInfo().
true: Enabled
false: Disabled
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
171 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

SWS Item ECUC_ComM_00559 :


Name ComMWakeupInhibitionEnabled
Parent Container ComMGeneral
Description true if wake up inhibition functionality enabled.
true: Enabled
false: Disabled
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_ComM_00783 :


Name ComMGlobalNvMBlockDescriptor
Parent Container ComMGeneral
Description Reference to NVRAM block containing the none volatile data. If this
parameter is not configured it means that no NVRam is used at all.
Multiplicity 0..1
Type Symbolic name reference to [ NvMBlockDescriptor ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: ECU
dependency: Derived from NvM configuration

No Included Containers

172 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

ComMDevErrorDetect: EcucBooleanParamDef
ComMGeneral: +parameter
EcucParamConfContainerDef defaultValue = false ComMTMinFullComModeDuration:
EcucFloatParamDef
upperMultiplicity = 1 +parameter
lowerMultiplicity = 1 max = 65
min = 0.001
defaultValue = 5
ComMWakeupInhibitionEnabled:
+parameter
EcucBooleanParamDef

defaultValue = false
ComMResetAfterForcingNoComm:
+parameter
EcucBooleanParamDef

defaultValue = false
+parameter ComMModeLimitationEnabled:
EcucBooleanParamDef

defaultValue = false
ComMEcuGroupClassification:
+parameter EcucIntegerParamDef

max = 255
ComMSynchronousWakeUp: min = 0
+parameter defaultValue = 3
EcucBooleanParamDef

defaultValue = true
ComM0PncVectorAvoidance:
+parameter
EcucBooleanParamDef

ComMVersionInfoApi: EcucBooleanParamDef defaultValue = false


+parameter lowerMultiplicity = 0
defaultValue = false upperMultiplicity = 1

+reference ComMGlobalNvMBlockDescriptor: +destination NvMBlockDescriptor:


EcucReferenceDef EcucParamConfContainerDef

lowerMultiplicity = 0 upperMultiplicity = 65536


upperMultiplicity = 1 lowerMultiplicity = 1
requiresSymbolicNameValue = true

+parameter ComMPncSupport: EcucBooleanParamDef


ComMPncPrepareSleepTimer:
defaultValue = false
EcucFloatParamDef
+parameter
min = 0
max = 63
ComMPncGatewayEnabled: lowerMultiplicity = 0
EcucBooleanParamDef upperMultiplicity = 1
+parameter
defaultValue = false
lowerMultiplicity = 0
upperMultiplicity = 1 ComMDirectUserMapping:
EcucBooleanParamDef
+parameter
defaultValue = false
lowerMultiplicity = 0
upperMultiplicity = 1
ComMDynamicPncToChannelMappingSupport:
+parameter EcucBooleanParamDef

defaultValue = false
lowerMultiplicity = 1
ComMSynchronizedPncShutdownEnabled:
upperMultiplicity = 1
EcucBooleanParamDef

+parameter defaultValue = false


lowerMultiplicity = 0
upperMultiplicity = 1

Figure 20: Configuration ComMGeneral

10.2.3 ComMConfigSet

SWS Item ECUC_ComM_00879 :


Container Name ComMConfigSet
Parent Container ComM
Description This container contains the configuration parameters and sub containers of

173 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

the AUTOSAR ComM module.


Configuration Parameters

SWS Item ECUC_ComM_00878 :


Name ComMPncEnabled
Parent Container ComMConfigSet
Description Defines whether in this configuration set the partial networking is enabled.
true: Enabled
false: Disabled
Multiplicity 0..1
Type EcucBooleanParamDef
Default value false
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time --
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time --
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: ECU
dependency: ComMPncSupport

Included Containers
Container Name Multiplicity Scope / Dependency
This container contains the configuration (parameters) of the
ComMChannel 1..256 bus channel(s). The channel parameters shall be harmonized
within the whole communication stack.
This container contains the configuration of the partial network
ComMPnc 0..504
cluster (PNC).
This container contains a list of identifiers that are needed to
ComMUser 0..65635 refer to a user in the system which is designated to request
Communication modes.

10.2.4 ComMUser

SWS Item ECUC_ComM_00653 :


Container Name ComMUser
Parent Container ComMConfigSet
This container contains a list of identifiers that are needed to refer to a user
Description
in the system which is designated to request Communication modes.
Configuration Parameters

SWS Item ECUC_ComM_00654 :


Name ComMUserIdentifier
Parent Container ComMUser
Description An identifier that is needed to refer to a user in the system which is
designated to request Communication Modes.
ImplementationType: ComM_UserHandleType
Multiplicity 1
Type EcucIntegerParamDef (Symbolic Name generated for this parameter)
Range 0 .. 254

174 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: EcuMUser: The concept of users is very similar to the
concept of requestors in the ECU State Manager specification. These two
parameters shall be harmonized during the configuration process.

SWS Item ECUC_ComM_00786 :


Name ComMUserEcucPartitionRef
Parent Container ComMUser
Description Denotes in which "EcucPartition" the requester is executed. When the
partition is stopped, the communication request shall be cancelled in the
ComM
to avoid a stay-awake situation of the bus due to a stopped partition.
Multiplicity 0..1
Type Reference to [ EcucPartition ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: ECU

No Included Containers

ComMUserIdentifier:
ComMUser:
+parameter EcucIntegerParamDef
EcucParamConfContainerDef
min = 0
lowerMultiplicity = 0
symbolicNameValue = true
upperMultiplicity = 65635
max = 254

ComMUserEcucPartitionRef: EcucPartition:
EcucReferenceDef +destination EcucParamConfContainerDef
+reference
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = *

+destination

ComMUserPerChannel: ComMUserChannel:
EcucParamConfContainerDef +reference EcucReferenceDef

upperMultiplicity = 255
lowerMultiplicity = 0

175 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Figure 21: Configuration ComMUser

10.2.5 ComMChannel

SWS Item ECUC_ComM_00565 :


Container Name ComMChannel
Parent Container ComMConfigSet
This container contains the configuration (parameters) of the bus
Description channel(s). The channel parameters shall be harmonized within the whole
communication stack.
Configuration Parameters

SWS Item ECUC_ComM_00567 :


Name ComMBusType
Parent Container ComMChannel
Description Identifies the bus type of the channel.
Multiplicity 1
Type EcucEnumerationParamDef
Range COMM_BUS_TYPE_CAN --
COMM_BUS_TYPE_CDD --
COMM_BUS_TYPE_ETH --
COMM_BUS_TYPE_FR --
COMM_BUS_TYPE_INTERNAL --
COMM_BUS_TYPE_LIN --
Post-Build Variant
false
Value
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: ECU
Dependency

SWS Item ECUC_ComM_00888 :


Name ComMCDDBusPrefix
Parent Container ComMChannel
Description Prefix to be used for API calls to CDD.
Multiplicity 0..1
Type EcucStringParamDef
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: Only applicable if ComMBusType equals

176 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

COMM_BUS_TYPE_CDD.

SWS Item ECUC_ComM_00635 :


Name ComMChannelId
Parent Container ComMChannel
Description Channel identification number of the corresponding channel.
Multiplicity 1
Type EcucIntegerParamDef (Symbolic Name generated for this parameter)
Range 0 .. 255
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: ECU
dependency: Shall be harmonized with channel IDs of
networkmanagement and the bus interfaces.

SWS Item ECUC_ComM_00896 :


Name ComMDynamicPncToChannelMappingEnabled
Parent Container ComMChannel
Description Channel-specific parameter to enable the dynamic PNC-to-channel-
mapping feature.
False: Dynamic PNC-to-channel-mapping is disabled
True: Dynamic PNC-to-channel-mapping is enabled
Tags:
atp.Status=draft
Multiplicity 0..1
Type EcucBooleanParamDef
Default value false
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-POST-BUILD
Post-build time --
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-POST-BUILD
Post-build time --
Scope / Dependency scope: local
dependency: Shall only be TRUE if
ComMDynamicPncToChannelMappingSupport is TRUE and
ComMNmVariant is set to FULL for this ComMChannel.

SWS Item ECUC_ComM_00787 :


Name ComMFullCommRequestNotificationEnabled
Parent Container ComMChannel
Description Defines if the optional SenderReceiver Port of Interface
ComM_CurrentChannelRequest will be provided for this channel.
True means enabled. False means disabled
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --

177 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Post-build time --
Scope / Dependency scope: local
dependency: Shall be stored none volatile (value must be kept during a
reset).

SWS Item ECUC_ComM_00556 :


Name ComMMainFunctionPeriod
Parent Container ComMChannel
Description Specifies the period in seconds that the MainFunction has to be triggered
with.
Comment: ComM scheduling shall be at least as fast as the
communication stack and a schedule longer than 100ms makes no sense
for communication.
Multiplicity 1
Type EcucFloatParamDef
Range ]0 .. INF[
Default value 0.02
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: ECU

SWS Item ECUC_ComM_00571 :


Name ComMNoCom
Parent Container ComMChannel
Description Not allowed to change state of ComM channel to
COMM_SILENT_COMMUNICATION or
COMM_FULL_COMMUNICATION.
true: Enabled - Not allowed to switch to Communication Modes above.
false: Disabled - Allowed to switch Communication Modes above.

Shall be possible to change parameter during runtime with ComM API's.


ECU/All channels: ComM_LimitECUToNoComMode().
Separate channels: ComM_LimitChannelToNoComMode().
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: ComMModeLimitationEnabled

SWS Item ECUC_ComM_00569 :


Name ComMNoWakeup
Parent Container ComMChannel
Description Defines if an ECU is not allowed to wake-up the channel.
true: Enabled (not allowed to wake-up))
false: Disabled

This is the default/init value of a runtime variable that can be changed


during runtime using ComM_PreventWakeUp().
Multiplicity 1
Type EcucBooleanParamDef
Default value false
178 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Post-Build Variant Value false


Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: Shall be stored none volatile (value must be kept during a
reset).

SWS Item ECUC_ComM_00789 :


Name ComMNoWakeUpInhibitionNvmStorage
Parent Container ComMChannel
Description If this parameter is set to "true", the NoWakeUp inhibition state of the
channel shall be stored (in some implementation specific way) in the block
pointed to by ComMGlobalNvmBlockDescriptor.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: If the parameter is set to true, a valid Nvm block reference
must be given in the (existing, i.e. multiplicity 1)
ComMGlobalNvmBlockDescriptor pointing to a sufficiently big Nvm block.

SWS Item ECUC_ComM_00842 :


Name ComMPncGatewayType
Parent Container ComMChannel
Description Identifies the Partial Network Gateway behaviour of a ComMChannel.
Multiplicity 0..1
Type EcucEnumerationParamDef
Range COMM_GATEWAY_TYPE_ACTIVE --
COMM_GATEWAY_TYPE_PASSIVE --
Default value COMM_GATEWAY_TYPE_ACTIVE
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: ECU
Dependency dependency: Parameter shall not be used for managed channel (shall neither be
set to COMM_GATEWAY_TYPE_ACTIVE nor
COMM_GATEWAY_TYPE_PASSIVE).

SWS Item ECUC_ComM_00898 :


Name ComMWakeupSleepRequestEnabled
Parent Container ComMChannel
Description Used for communication channels where the corresponding hardware
support wake-up and/or sleep request capability on the network, e.g. OA
TC10 compatible PHYs for Ethernet.

179 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Multiplicity 0..1
Type EcucBooleanParamDef
Default value false
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: Only applicable if ComMBusType equals
COMM_BUS_TYPE_ETH and the used Ethernet hardware (e.g. PHY,
Ethernet switch) is compatible with the OA TC10 specification.

SWS Item ECUC_ComM_00894 :


Name ComMChannelPartitionRef
Parent Container ComMChannel
Description Reference to EcucPartition, where the according ComMChannel is
assigned to.
Multiplicity 0..1
Type Reference to [ EcucPartition ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_ComM_00893 :


Name ComMManageReference
Parent Container ComMChannel
Description Represents the reference between a ComMChannel with role managing
channel and a ComMChannel with role managed channel.
Multiplicity 0..*
Type Reference to [ ComMChannel ]
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
ComMNetworkManagement 1 This container contains the configuration parameters of the
180 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

networkmanagement.
This container contains a list of identifiers that are needed to
ComMUserPerChannel 0..255
refer to a user in the system which is linked to a channel.

[SWS_ComM_00690] ⌈Configuration parameter ComMNoCom (see ECUC_ComM_00571) need not to


be evaluated in case ComMModeLimitationEnabled = FALSE = Disabled (see
ECUC_ComM_00560) thus it can be removed in that case to reduce/optimize the
configuration.⌋()

181 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

ComMMainFunctionPeriod:
ComMChannel: EcucFloatParamDef
+parameter
EcucParamConfContainerDef max = INF
lowerMultiplicity = 1 min = 0
upperMultiplicity = 256 defaultValue = 0.020

ComMChannelId:
EcucIntegerParamDef
+parameter
symbolicNameValue = true
max = 255
min = 0

+literal
ComMBusType: COMM_BUS_TYPE_CAN: EcucEnumerationLiteralDef
EcucEnumerationParamDef
+literal
COMM_BUS_TYPE_FR: EcucEnumerationLiteralDef

+literal
COMM_BUS_TYPE_INTERNAL: EcucEnumerationLiteralDef
+parameter
+literal
COMM_BUS_TYPE_LIN: EcucEnumerationLiteralDef

+literal
COMM_BUS_TYPE_ETH: EcucEnumerationLiteralDef

+literal
COMM_BUS_TYPE_CDD: EcucEnumerationLiteralDef

ComMNoWakeup:
+parameter
EcucBooleanParamDef

defaultValue = false

+parameter ComMNoCom: EcucBooleanParamDef

defaultValue = false ComMCDDBusPrefix:


+parameter EcucStringParamDef

lowerMultiplicity = 0
ComMFullCommRequestNotificationEnabled:
+parameter upperMultiplicity = 1
EcucBooleanParamDef

defaultValue = false

ComMWakeupSleepRequestEnabled:
+parameter ComMNoWakeUpInhibitionNvmStorage: EcucBooleanParamDef
EcucBooleanParamDef
defaultValue = false
+parameter lowerMultiplicity = 0
upperMultiplicity = 1
ComMUserPerChannel:
+subContainer EcucParamConfContainerDef

upperMultiplicity = 255 ComMDynamicPncToChannelMappingEnabled:


lowerMultiplicity = 0 EcucBooleanParamDef
+parameter
defaultValue = false
lowerMultiplicity = 0
ComMNetworkManagement: upperMultiplicity = 1
+subContainer EcucParamConfContainerDef

upperMultiplicity = 1
lowerMultiplicity = 1
COMM_GATEWAY_TYPE_ACTIVE:
+literal EcucEnumerationLiteralDef

ComMPncGatewayType: EcucEnumerationParamDef
+parameter +literal COMM_GATEWAY_TYPE_PASSIVE:
defaultValue = COMM_GATEWAY_TYPE_ACTIVE
lowerMultiplicity = 0 EcucEnumerationLiteralDef
upperMultiplicity = 1

EcucPartition:
+reference ComMChannelPartitionRef: +destination
EcucParamConfContainerDef
EcucReferenceDef
lowerMultiplicity = 0
lowerMultiplicity = 0 upperMultiplicity = *
upperMultiplicity = 1

Figure 22: Configuration ComMChannel

182 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

10.2.6 ComMNetworkManagement

SWS Item ECUC_ComM_00607 :


Container Name ComMNetworkManagement
Parent Container ComMChannel
This container contains the configuration parameters of the
Description
networkmanagement.
Configuration Parameters

SWS Item ECUC_ComM_00606 :


Name ComMNmLightTimeout
Parent Container ComMNetworkManagement
Description Defines the timeout (in seconds) after COMM_FULL_COMMUNICATION
sub-state COMM_FULL_COM_READY_SLEEP is left.
The range shall be greater than 0.0 and less or equal to 255.0.
Multiplicity 0..1
Type EcucFloatParamDef
Range [0 .. 255]
Default value 10
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: Only used if ComMNmVariant is configured as ComMLight

SWS Item ECUC_ComM_00568 :


Name ComMNmVariant
Parent Container ComMNetworkManagement
Description Defines the functionality of the networkmanagement.
Shall be harmonized with NM configuration.
Multiplicity 1
Type EcucEnumerationParamDef
Range FULL AUTOSAR NM is available (default).
LIGHT No AUTOSAR NM is available, but
functionality to shut down a channel.
NONE No NM available
PASSIVE AUTOSAR NM running in passive mode
available.
SLAVE_ACTIVE No NM is available. This is used for e.g.
LIN slaves.
SLAVE_PASSIVE No NM is available. This used for e.g.
Ethernet communication channels with
OA TC10 compliant hardware.
Default value FULL
Post-Build Variant
false
Value
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
183 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Dependency dependency: ComMNmVariant shall be NONE if ComMBusType =


COMM_BUS_TYPE_INTERNAL.
ComMNmVariant shall be LIGHT for managed channels.
ComMNmVariant shall be FULL for managing channels.

SWS Item ECUC_ComM_00886 :


Name ComMPncNmRequest
Parent Container ComMNetworkManagement
Description If this parameter equals true then every time a FULL Communication is
requested due to a change in the PNC state machine to
COMM_PNC_REQUESTED Nm shall be called using the API
Nm_NetworkRequest.
Multiplicity 1
Type EcucBooleanParamDef
Default value false
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: It shall only be possible to set ComMPncNmRequest to
TRUE, if ComMNmVariant is FULL.

No Included Containers

184 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

ComMChannel:
EcucParamConfContainerDef

lowerMultiplicity = 1
upperMultiplicity = 256
NONE:
+literal EcucEnumerationLiteralDef
ComMNmVariant:
EcucEnumerationParamDef
+subContainer
defaultValue = FULL
ComMNetworkManagement: +literal LIGHT:
EcucParamConfContainerDef EcucEnumerationLiteralDef

upperMultiplicity = 1
lowerMultiplicity = 1
+literal PASSIVE:
EcucEnumerationLiteralDef

+parameter +literal FULL:


EcucEnumerationLiteralDef

+literal SLAVE_ACTIVE:
EcucEnumerationLiteralDef

+literal SLAVE_PASSIVE:
EcucEnumerationLiteralDef

ComMNmLightTimeout:
EcucFloatParamDef

+parameter max = 255


min = 0
defaultValue = 10
upperMultiplicity = 1
lowerMultiplicity = 0

+parameter ComMPncNmRequest:
EcucBooleanParamDef

defaultValue = false

Figure 23: Configuration ComMNetworkManagement

10.2.7 ComMUserPerChannel

SWS Item ECUC_ComM_00657 :


Container Name ComMUserPerChannel
Parent Container ComMChannel
This container contains a list of identifiers that are needed to refer to a user
Description
in the system which is linked to a channel.
Configuration Parameters

SWS Item ECUC_ComM_00658 :


Name ComMUserChannel
Parent Container ComMUserPerChannel
Description Reference to the ComMUser that corresponds to this channel user.
ImplementationType: COMM_UserHandleType

185 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Multiplicity 1
Type Reference to [ ComMUser ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

No Included Containers

ComMUser: EcucParamConfContainerDef

lowerMultiplicity = 0
upperMultiplicity = 65635

+destination +destination

ComMUserChannel: ComMUserPerPnc:
EcucReferenceDef EcucReferenceDef

lowerMultiplicity = 0
upperMultiplicity = 255
+reference
+reference

ComMUserPerChannel:
EcucParamConfContainerDef

upperMultiplicity = 255
lowerMultiplicity = 0

+subContainer

ComMChannel: ComMChannelPerPnc: ComMPnc:


EcucParamConfContainerDef +destination EcucReferenceDef +reference EcucParamConfContainerDef

lowerMultiplicity = 1 lowerMultiplicity = 0 lowerMultiplicity = 0


upperMultiplicity = 256 upperMultiplicity = 255 upperMultiplicity = 504

Figure 24: Configuration ComMUserPerChannel and ComUserPerPNC

10.2.8 ComMPnc

SWS Item ECUC_ComM_00843 :


Container Name ComMPnc
Parent Container ComMConfigSet
This container contains the configuration of the partial network cluster
Description
(PNC).
Configuration Parameters

SWS Item ECUC_ComM_00874 :


Name ComMPncId
Parent Container ComMPnc
Description Partial network cluster identification number.
Multiplicity 1
Type EcucIntegerParamDef (Symbolic Name generated for this parameter)
186 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Range 8 .. 511
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: ECU

SWS Item ECUC_ComM_00899 :


Name ComMPncWakeupSleepRequestEnabled
Parent Container ComMPnc
Description Used for PNCs where a requested PNC shall report an active
communication request towards the BswM. The BswM forward the active
communication request to the lower layer communication channels where
the used hardware support wake-up and/or sleep request capability on the
network, e.g. OA TC10 compatible PHYs for Ethernet. This is used e.g. for
Ethernet Switch port group switching.
Multiplicity 0..1
Type EcucBooleanParamDef
Default value false
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local

SWS Item ECUC_ComM_00880 :


Name ComMChannelPerPnc
Parent Container ComMPnc
Description Reference to the ComMChannel that is required for this PNC.
ImplementationType: NetworkHandleType
Multiplicity 0..255
Type Reference to [ ComMChannel ]
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time --
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time --
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_ComM_00900 :


Name ComMChannelPerTxOnlyPnc
Parent Container ComMPnc
Description Reference to the ComMChannel that is required for this PNC. This PNC is
considered to be only transmitted on this channel as internal PNC request.
ImplementationType: NetworkHandleType
Tags:

187 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

atp.Status=draft
Multiplicity 0..255
Type Reference to [ ComMChannel ]
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time --
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time --
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

SWS Item ECUC_ComM_00891 :


Name ComMPncEthIfSwitchPortGroupRef
Parent Container ComMPnc
Description Reference to the PortGroups that correspond to this PNC. Note: This is
only for documentation.
Multiplicity 0..255
Type Symbolic name reference to [ EthIfSwitchPortGroup ]
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-POST-BUILD
Post-build time --
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-POST-BUILD
Post-build time --
Scope / Dependency scope: ECU

SWS Item ECUC_ComM_00876 :


Name ComMUserPerPnc
Parent Container ComMPnc
Description Reference to the ComMUsers that correspond to this PNC.
ImplementationType: COMM_UserHandleType
Multiplicity 0..255
Type Reference to [ ComMUser ]
Post-Build Variant
true
Multiplicity
Post-Build Variant Value true
Multiplicity ConfigurationPre-compile time X VARIANT-PRE-COMPILE
Class Link time --
Post-build time X VARIANT-POST-BUILD
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time --
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local

Included Containers
Container Name Multiplicity Scope / Dependency
Represents the PncComSignals which are used to
communicate the EIRA and ERA status of this PNC.
ComMPncComSignal 0..*
Tags:
atp.Status=obsolete
188 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

ComMPncId: ComSignal:
ComMPnc: EcucIntegerParamDef EcucParamConfContainerDef
EcucParamConfContainerDef +parameter
symbolicNameValue = true lowerMultiplicity = 0
lowerMultiplicity = 0 min = 8 upperMultiplicity = *
upperMultiplicity = 504 max = 511
+destination

OBSOLETE

ComMPncComSignal: ComMPncComSignalRef:
EcucParamConfContainerDef +reference
EcucReferenceDef
lowerMultiplicity = 0 requiresSymbolicNameValue = true
upperMultiplicity = *

+literal
ComMPncComSignalKind:
EIRA: EcucEnumerationLiteralDef
+parameter EcucEnumerationParamDef

lowerMultiplicity = 0
+literal
upperMultiplicity = 1
ERA: EcucEnumerationLiteralDef
+subContainer

+literal
ComMPncComSignalDirection:
TX: EcucEnumerationLiteralDef
+parameter EcucEnumerationParamDef

+literal
RX: EcucEnumerationLiteralDef

+reference ComMPncComSignalChannelRef:
EcucReferenceDef

lowerMultiplicity = 0
upperMultiplicity = 1

+destination
ComMChannelPerTxOnlyPnc:
+reference EcucReferenceDef ComMChannel:
+destination
lowerMultiplicity = 0 EcucParamConfContainerDef
upperMultiplicity = 255 lowerMultiplicity = 1
upperMultiplicity = 256

ComMPncEthIfSwitchPortGroupRef: +parameter
EthIfSwitchPortGroup:
+reference EcucReferenceDef
+destination EcucParamConfContainerDef
ComMPncGatewayType: EcucEnumerationParamDef
lowerMultiplicity = 0
lowerMultiplicity = 0
upperMultiplicity = 255 defaultValue = COMM_GATEWAY_TYPE_ACTIVE
upperMultiplicity = *
requiresSymbolicNameValue = true lowerMultiplicity = 0
upperMultiplicity = 1

+parameter
ComMPncWakeupSleepRequestEnabled:
EcucBooleanParamDef

defaultValue = false
lowerMultiplicity = 0
upperMultiplicity = 1

Figure 25: Configuration ComMPnc

10.2.9 ComMPncComSignal

SWS Item ECUC_ComM_00881 : (Obsolete)


Container Name ComMPncComSignal
Parent Container ComMPnc
Represents the PncComSignals which are used to communicate the EIRA
and ERA status of this PNC.
Description
Tags:
atp.Status=obsolete
Configuration Parameters

SWS Item ECUC_ComM_00885 : (Obsolete)


Name ComMPncComSignalDirection
Parent Container ComMPncComSignal
Description Indicates the communication direction of this PncComSignal.
Tags:
atp.Status=obsolete
Multiplicity 1
189 of 192 Document ID 79: AUTOSAR_SWS_COMManager
Specification of Communication Manager
AUTOSAR CP R21-11

Type EcucEnumerationParamDef
Range RX --
Tags:
atp.Status=obsolete
TX --
Tags:
atp.Status=obsolete
Post-Build Variant
false
Value
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency

SWS Item ECUC_ComM_00883 : (Obsolete)


Name ComMPncComSignalKind
Parent Container ComMPncComSignal
Description Indicates whether this PncComSignal represents EIRA or ERA PNC information.
This parameter ComMPncComSignalKind is optional and shall be ignored when
ComMPncComSignalDirection equals TX.
Tags:
atp.Status=obsolete
Multiplicity 0..1
Type EcucEnumerationParamDef
Range EIRA --
Tags:
atp.Status=obsolete
ERA --
Tags:
atp.Status=obsolete
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Multiplicity Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency dependency: This parameter ComMPncComSignalKind shall be ignored when
ComMPncComSignalDirection equals TX.

SWS Item ECUC_ComM_00884 : (Obsolete)


Name ComMPncComSignalChannelRef
Parent Container ComMPncComSignal
Description Reference to the ComMChannel which is used to determine whether this
PncComSignal shall participate in the active or passive role (via the
parameter ComMPncGatewayType of the ComMChannel).
Tags:
atp.Status=obsolete
Multiplicity 0..1
Type Reference to [ ComMChannel ]
Post-Build Variant
false
Multiplicity

190 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

Post-Build Variant Value false


Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: ComMPncGatewayEnabled

SWS Item ECUC_ComM_00882 : (Obsolete)


Name ComMPncComSignalRef
Parent Container ComMPncComSignal
Description Reference to the ComSignal which is used to transport the partial network
channel request information.
Tags:
atp.Status=obsolete
Multiplicity 1
Type Symbolic name reference to [ ComSignal ]
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: ECU

No Included Containers

10.3 Published information


[SWS_ComM_00418] ⌈The version information in the module header and source files shall be
validated and consistent (e.g. by comparing the version information in the module header
and source files with a pre-processor macro).⌋(SRS_BSW_00004)

191 of 192 Document ID 79: AUTOSAR_SWS_COMManager


Specification of Communication Manager
AUTOSAR CP R21-11

11 Not applicable requirements


[SWS_ComM_00499] ⌈ These requirements are not applicable to this specification. ⌋
(SRS_BSW_00005, SRS_BSW_00009, SRS_BSW_00010, SRS_BSW_00161,
SRS_BSW_00162, SRS_BSW_00164, SRS_BSW_00168, SRS_BSW_00170,
SRS_BSW_00314, SRS_BSW_00325, SRS_BSW_00341, SRS_BSW_00343,
SRS_BSW_00344, SRS_BSW_00353, SRS_BSW_00361, SRS_BSW_00375,
SRS_BSW_00378, SRS_BSW_00398, SRS_BSW_00404, SRS_BSW_00405,
SRS_BSW_00413, SRS_BSW_00416, SRS_BSW_00417, SRS_BSW_00422,
SRS_BSW_00423, SRS_BSW_00424, SRS_BSW_00425, SRS_BSW_00426,
SRS_BSW_00427, SRS_BSW_00428, SRS_BSW_00429, SRS_BSW_00432,
SRS_BSW_00433, SRS_BSW_00437, SRS_BSW_00438, SRS_BSW_00439)

192 of 192 Document ID 79: AUTOSAR_SWS_COMManager

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy