Explanation of CP Software Cluster Design And Integration Guideline, AUTOSAR 975,  R22-11, CP, 20230421

AUTOSARは自動車用OSの業界団体規格です。　
業務で利用する場合には、会員になることを条件にしています。

2002年から20年経ち、当初の狙いの段階に近づいてきました。

MATLABでモデルさえ記述すれば、あとは自動生成だけでソフトが完成するところまで、あと一歩です。
Ethernet, UNIXが生まれて20年で大衆化したのと同じように考えると分かりやすいでしょう。　

AUTOSARの上で動く、クラウド対応のミドルウェアが出て、開発も運用もクラウドになれば、一気にAUTOSARは大衆化するでしょう。

AUTOSAR Abstract Platformへの道 R22-11

https://qiita.com/kaizen_nagoya/items/8ac2826635a8c536c7ec

 ＜この記事は書きかけです。順次追記します。＞
 This article is not completed. I will add some words in order.


# 2023年4月URL変更
この項は2023年4月21日、AUTOSARの文書のURLが変更になった。
/classic/22-11/
が
/R22-11/CP/
過去記事で、URLでエラーが出たら書き換えてみてください。

/adaptive/22-11/
は　
/R22-11/AP/

/foundation/22-11/
は　
/R22-11/FO/
です。
## 2023年11月URL変更
2023年11月にもAUTOSAR文書のURLが変更になっている。
/user_upload/standards/classic/21-11/
を
/standards/R21-11/CP/
などに書き換えてください。

/user_upload/standards/adaptive/21-11/
を
/standards/R21-11/AP/

/user_upload/standards/foundation/21-11/
を
/standards/R21-11/FO/

お手数をおかけします。
１年に２度URLを変更するなんて、新しい記事が書ける。とても嬉しい。

# 一覧

AUTOSAR R22-11 Qiita記事一覧 20230421 。

https://qiita.com/kaizen_nagoya/items/81a35774f1aa3d64d3f6

この記事の表題の最後に「20230421」を加えます。

AUTOSARが、2022年の版、R22-11を公開しました。
https://www.autosar.org/fileadmin/standards/R22-11/CP/AUTOSAR_EXP_CPSwClusterDesignAndIntegrationGuideline.pdf

R21-11
https://www.autosar.org/fileadmin/standards/R21-11/CP/AUTOSAR_EXP_CPSwClusterDesignAndIntegrationGuideline.pdf

R20-11
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_EXP_CPSwClusterDesignAndIntegrationGuideline.pdf

R19-11
https://www.autosar.org/fileadmin/standards/R19-11/CP/AUTOSAR_EXP_CPSwClusterDesignAndIntegrationGuideline.pdf

https://www.autosar.org/

文書は検索してダウンロードできます。

R20-11,R21-11, R22-11の３年分だけになりました。

公開行事の模様は

AUTOSAR R22-11 Release Event 20221208

https://qiita.com/kaizen_nagoya/items/18471d0b340480fdcd42

Classic Platform Release Overview, AUTOSAR No.0 ,R22-11, CP, 20230421

https://qiita.com/kaizen_nagoya/items/9d22c8722cbc0f42b137

Foundation Release Overview, AUTOSAR, 781, R22-11, FO, 20230421

https://qiita.com/kaizen_nagoya/items/596a7e2ec86913daa3c2

Adaptive Platform Release Overview, AUTOSAR 782, R22-11, AP, 20230421

https://qiita.com/kaizen_nagoya/items/fc8e02e8cb07411dbc2a

# 要求仕様対応(Requirement and Specification)
# Abstract Platformとの関係

基本統合。

<この項は書きかけです。順次追記します。>

## 文書変更(Document Change) 

>• Changed upper limit of LinTpP2Timing and LinTpP2Max
• Renamed the arguments “Schedule” ([SWS_LinIf_00202] LinIf_ScheduleRequest) and “schedule” ([SWS_LinIf_00520] <User> _ScheduleRequestConfirmation)
## 用語(terms)

|Term|Description|
|:--|:--|
|SwCluC |Software Cluster Connection
|Software Cluster |A Software Cluster groups all AUTOSAR artifacts that are relevant to deploy software on a machine. The full definition is given in document [1]
|Software Cluster Connection |The Software Cluster Connection is the BSW module that provides the features to • connect the Binary Objects deployed on the same machine • substitute not locally-available BSW modules in an Applicative Software Cluster, whose interfaces are required for the integrated SW, by so called Proxy Modules. • implement the VFB communication features between Software Clusters together with RTE with the means of an RTE Implementation Plug-In
|machine| A machine consists of a set of computing resources - such as microcontroller cores, memory or peripheral (e.g. communication) devices - and has the ability to execute software applications. The representation of a machine in the AUTOSAR Classic Platform could be done with an EcuInstance, but note that this semantic is currently in clarification. Further information is given in document [1].
|binary-identical| Bit for Bit identical
|Binary Object| A set of files, which contains the binary executable code and data. This binary executable code and data will not be modified again, before programming it on the target ECU.
|Binary Manifest |The Binary Manifest is the well-defined interface of the Software Cluster’s Binary Object, providing the meta information of a resources and information - so called handles - to access such a resource.
|Applicative Software Cluster |A Software Cluster that mainly contains software components, and only selected BSW modules (e.g. a Service module, transformers, e.t.c.)
|Host Software Cluster |The single Software Cluster that contains the major part of the BSW, and especially the micro controller dependent lower layer BSW Modules, e.g. OS and MCAL.
|Substitution Software Cluster |The single Software Cluster that can override the provided resources of other Software Clusters for bug fixing purpose.
|Proxy Module |A Proxy Module substitutes a BSW module in an Applicative Software Cluster. A Proxy module itself is split into High Proxy Module and Low Proxy Module. The High Proxy Module provides dedicated interfaces for modules in higher layers or same layer, and the functionality to connect them via the Binary Manifest to the Low Proxy Module in the Host Software Cluster.
|High Proxy Module| The part of the Proxy Module residing in an Applicative Software Cluster.
|Low Proxy Module|The part of the Proxy Module residing in the Host Software Cluster.
|Os High Proxy |A type of Proxy Module implementing Os APIs in the Applicative Software Cluster.
|Os Low Proxy |A type of proxy Module implementing an Os abstraction in the Host Software Cluster.
|NvM High Proxy |A type of Proxy Module substituting the NVRAM Manager in the Applicative Software Cluster.
|NvM Low Proxy| A type of Proxy Module connecting the NvM High Proxy Modules to the NVRAM Manager in the Host Software Cluster.
|RTE Implementation Plug-In |A RTE Implementation Plug-In is a part of the overall RTE implementation, which is not provided by the RTE Generator, but from an additional source (e.g. a Plug-In Generator or a manually implemented source code).
|Local Software Cluster Communication Plug-In|A Local Software Cluster Communication Plug-In is an RTE Implementation Plug-In, which handles the communication locally inside a Software Cluster. This includes the Transformer handling, if a DataMapping exist for the according Communication Graph
|Cross Software Cluster Communication Plug-In|A Cross Software Cluster Communication Plug-In is an RTE Implementation Plug-In that handles the communication towards other Software Clusters. This includes the Transformer handling, if intra ECU transformation is configured.
|Communication Graph |The sum of all AbstractAccessPoints to elements of PortInterfaces, instantiated in PortPrototypes which are connected to each other; or the sum of all accesses from BswModuleEntitys to interface elements in a BswModuleDescriptions connected to each other.
|Data Communication Graph |The sum of all VariableAccesses to VariableDataPrototypes instantiated in PortPrototypes, which are connected to each other; or the sum of all VariableAccesses to VariableDataPrototypes in the InternalBehavior; or the sum of all BswVariableAccesses to VariableDataPrototypes in BswModuleDescriptions connected to each other.
|Parameter Communication Graph|The sum of all ParameterAccesses to ParameterDataPrototypes instantiated in PortPrototypes, which are connected to each other; or the sum of all ParameterAccesses to ParameterDataPrototypes in the InternalBehavior.
|Client Server Communication Graph|The sum of all ServerCallPoints to operations instantiated in PortPrototypes, which are connected to each other, including the associated server runnable.
|Trigger Communication Graph |The sum of all ExternalTriggeringPoints for triggers instantiated in PortPrototypes, which are connected to each other, including the associated triggered runnable.
|Mode Communication Graph |The sum of all ModeAccessPoints and ModeSwitchPoints to ModeDeclarationGroupPrototypes instantiated in PortPrototypes, which are connected to each other; or the sum of all managedModeGroups and accessedModeGroups to ModeDeclarationGroupPrototypes in BswModuleDescriptions connected to each other.
|mode manager| Entering and leaving modes is initiated by a mode manager. A mode manager is either a software component that provides a p-port typed by a ModeSwitchInterface, or a BSW module that defines in its BswModuleDescription a ModeDeclarationGroupPrototype in the role providedModeGroup.
|mode switch notification |The communication of a mode switch from the mode manager to the mode user, using either the ModeSwitchInterface or providedModeGroup and requiredModeGroup ModeDeclarationGroupPrototypes.
|mode switch port |The port for receiving (or sending) a mode switch notification. For this purpose, a mode switch port is typed by a ModeSwitchInterface.
|mode user |An AUTOSAR SW-C or AUTOSAR Basic Software Module that depends on modes, is called a mode user. The dependency can occur through a SwcModeSwitchEvent/BswModeSwitchEvent, a ModeAccessPoint for a provided/required mode switch port, or a accessedModeGroup for a providedModeGroup/requiredModeGroup ModeDeclarationGroupPrototype.
|on-entry ExecutableEntity |A RunnableEntity that is triggered by a SwcModeSwitchEvent with ModeActivationKind ‘entry’; or a BswSchedulableEntity that is triggered by a BswModeSwitchEvent with ModeActivationKind ‘entry’.
|on-exit ExecutableEntity |A RunnableEntity that is triggered by a SwcModeSwitchEvent with ModeActivationKind ‘exit’; or a BswSchedulableEntity that is triggered by a BswModeSwitchEvent with ModeActivationKind ‘exit’.
|on-transition ExecutableEntity |A RunnableEntity that is triggered by a SwcModeSwitchEvent with ModeActivationKind ‘transition’; or a BswSchedulableEntity that is triggered by a BswModeSwitchEvent with ModeActivationKind ‘transition’.
|trigger port| A PortPrototype, which is typed by an TriggerInterface
|trigger sink |A trigger sink relies on the activation of RunnableEntity or a BswSchedulableEntity, if a particular Trigger is raised. A trigger sink has a dedicated require trigger port(s) and / or requiredTrigger Trigger(s) to communicate to the trigger source(s).
|trigger source| A trigger source administrates the particular Trigger, and informs the RTE or Basic Software Scheduler if the Trigger is raised. A trigger source has dedicated provide trigger port(s) and / or releasedTrigger Trigger(s) to communicate to the trigger sink(s).
|triggered BswSchedulableEntity| A BswSchedulableEntity that is triggered at least by one BswExternalTriggerOccurredEvent or BswInternalTriggerOccurredEvent. In particular cases, the Trigger Event Communication or the Inter Basic Software Schedulable Entity Triggering is implemented by the Basic Software Scheduler as a direct or trusted function call of the triggered ExecutableEntity, by the triggering ExecutableEntity.
|triggered ExecutableEntity |A RunnableEntity that is triggered by at least one ExternalTriggerOccurredEvent / InternalTriggerOccurredEvent; or a BswSchedulableEntity that is triggered by at least one BswExternalTriggerOccurredEvent/ BswInternalTriggerOccurredEvent. In particular cases, the Trigger Event Communication or the Inter Runnable Triggering is implemented by RTE or Basic Software Scheduler as a direct or trusted function call of the triggered ExecutableEntity, by the triggering ExecutableEntity.
|triggered runnable| A RunnableEntity that is triggered at least by one ExternalTriggerOccurredEvent or InternalTriggerOccurredEvent. In particular cases, the Trigger Event Communication or the Inter Runnable Triggering is implemented by RTE as a direct or trusted function call of the triggered runnable, by the triggering runnable.
|SomeIPEvent| SomeIPEvent - a message sent by an ECU implementing a service instance to an ECU using this service instance (Publish/Subscribe).
|SomeIPMethod |SomeIPMethod - a remote function which can be invoked via a message sent by an ECU implementing a service instance to an ECU using this service instance. An ECU can be in the role of the provider (offer a Method) and/or in the role of the consumer (invoke a remote Method).
|SomeIPService |A SomeIPService is a type of operation that has a published specification of interface and behavior, involving a contract between the provider of the capability and the potential clients.

## 英日単語帳
日本語は仮訳

T.B.D.

## 参考(reference)

[1] Glossary, AUTOSAR_TR_Glossary
https://www.autosar.org/fileadmin/standards/R22-11/FO/AUTOSAR_TR_Glossary.pdf
[2] Specification of Memory Mapping
AUTOSAR_SWS_MemoryMapping
[3] ISO 26262:2018 (all parts) – Road vehicles – Functional Safety
http://www.iso.org
[4] Specification of Timing Extensions
AUTOSAR_TPS_TimingExtensions


 
# 関連文書(Related document)

AUTOSAR Abstract Platformへの道 R22-11

https://qiita.com/kaizen_nagoya/items/8ac2826635a8c536c7ec

自動車　記事　１００

https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5

Basic principles, ボッシュ自動車handbook(英語)11版まとめ<2>

https://qiita.com/kaizen_nagoya/items/24a1ba5da3d09b2a95d1

JAXA/IPA クリティカルソフトウェアワークショップ WOCS言語関連発表(改定版)

https://qiita.com/kaizen_nagoya/items/4789832baf494cb74626

CAN(controller area network) 

https://qiita.com/kaizen_nagoya/items/e8c0bd7bfb2827b83de9

「はじめてのCAN/CANFD 」 ベクタージャパン ＜エンジニア夏休み企画>【読書感想文】

https://qiita.com/kaizen_nagoya/items/1fee270be00ef90ca4ec


三方良し　Udemy 車載LAN入門講座 CAN通信編

https://qiita.com/kaizen_nagoya/items/bed038c52510fea72c0a


詳解 車載ネットワーク CAN, CAN FD, LIN, CXPI, Ethernetの仕組みと設計のために(1) 著者　 ＜エンジニア夏休み企画 読書感想文＞

https://qiita.com/kaizen_nagoya/items/e9971698a108c3dba794

詳解 車載ネットワーク CAN, CAN FD, LIN, CXPI, Ethernetの仕組みと設計のために(2)参考文献 ＜エンジニア夏休み企画>【読書感想文】

https://qiita.com/kaizen_nagoya/items/e156cbdd5fce9263776e

詳解 車載ネットワーク CAN、CAN FD、LIN、CXPI、Ethernetの仕組みと設計のために

https://qiita.com/kaizen_nagoya/items/44a9e6b0f5363b4a5b35
# R23-11
https://qiita.com/kaizen_nagoya/items/109b75921ae25b1e10d5

 ＜この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。＞
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong. 

# 文書履歴(document history)
ver. 0.01 初稿　　20230812

### 最後までおよみいただきありがとうございました。

いいね　💚、フォローをお願いします。

####  Thank you very much for reading to the last sentence.

Please press the like icon 💚　and follow me for your happy life.