TargetLink AUTOSAR ガイドライン
TargetLink AUTOSAR
ガイドライン
TargetLink を使用した AUTOSAR ソフトウエアコンポーネントの
インプリメンテーションガイドライン
TargetLink 3.2/TargetLink 3.1
第
1.1 版
2011 年 3 月
文書改訂記録
日付 版 執筆者 セクション 改訂理由 2010-03-05 0.9 Ulrich Eisemann すべて 初稿作成 2011-03-05 1.0 Ulrich Eisemann すべて 初版完成 2011-03-23 1.1 Ulrich Eisemann すべて 細かい訂正、変数の初期化に関する補足説明、SWC コンテナのやり取りに関するガイドラインを追加。TargetLink AUTOSAR ガイドライン dSPACE へのお問い合わせ 住所: 〒 140-0001 東京都品川区北品川 4-7-35 御殿山トラストタワー 10 階 Tel.: 03-5798-5460 Fax: 03-5798-5464 E-mail: [email protected] Web: http://www.dspace.jp dSPACE サポートへのお問い合わせ dSPACEサポートへの問い合わせには、以下のさまざまな方法があります。 dSPACEウェブサイト – http://www.dspace.jp/goto.cfm/ja_0903 電子メール [email protected]
dSPACE Support Wizard:
dSPACE DVDに格納されている\Diag\Tools\dSPACESupportWizard.exeを実行する [スタート] – [プログラム] – [dSPACE Tools](dSPACEソフトウエアが既にインストールさ
れている場合)
以下のサイトから、いつでも最新のdSPACE Support Wizardをダウンロードすることができ ます。http://www.dspace.jp/goto.cfm/ja_sucontact
dSPACE サポートへのお問い合わせには、dSPACE Support Wizard の使用をお勧めいたします。
ソフトウエアのアップデートとパッチ 既存のdSPACE インストレーションに対して、最新のパッチをダウンロードしてインストールすること を強くお勧めします。ソフトウエアのアップデートとパッチについては、以下のサイトをご覧ください。 http://www.dspace.jp/goto.cfm/ja_0903 重要なお知らせ 本書には、著作権法により保護された専有情報が含まれています。すべ ての権利は留保されています。dSPACE GmbH の書面による事前の許可 なく、本出版物またはソフトウエアのすべてもしくは一部を、コピー、 複製、翻訳、または電子的媒体もしくは機械可読形式に変換することを 禁じます。 © Copyright 1998 - 2010 : dSPACE GmbH Rathenaustraße 26 33102 Paderborn Germany
AutomationDesk 、 CalDesk 、 ConfigurationDesk 、 ControlDesk 、 SystemDesk、および TargetLink は、米国、その他の国、またはその両方 における登録商標です。その他のブランド名または製品名は、その企業 または組織の商標または登録商標です。 本出版物と内容は、予告なく変更されることがあります。dSPACE GmbH および dSPACE Japan㈱は、本出版物に関して、商品性または特 定目的に対する適合性の保証を含め明示であると黙示であるとを問わず その他一切の保証を行いません。dSPACE GmbH および dSPACE Japan ㈱は、本出版物に含まれる誤りや、本出版物に記載された内容に関連し、 それを実行または使用した結果として被った直接的、間接的、特殊的、 付随的もしくは結果的損害に対して一切責任を負いません。
目次
目次 ... 4 1 概要... 6 1.1 本書の内容 ... 7 1.2 バージョンの依存関係 ... 8 1.3 コンテンツと関連ドキュメント... 8 2 ブロック線図レベルでのモデリング ... 9 2.1 一般的な AUTOSAR コード生成設定 ... 9 2.2 SWC と SWC のインターナルビヘイビアの一般的なモデリングスタイル ... 9 2.3 アトミックソフトウエアコンポーネントと TargetLink サブシステム ...10 2.4 ランナブルのモデリング ...12 2.5 ランナブルの境界での TargetLink Inport/Outport の使用 ...14 2.6 ランナブルおよび RTE イベントの起動 ...17 2.7 SWC Sender/Receiver ブロックの使用 ...18 2.8 同期型クライアント/サーバ通信のクライアントのモデリング ...19 2.9 AUTOSAR に関連する信号の初期化 ...23 2.10 SWC 内部での AUTOSAR に関連しない信号の初期化 ...27 3 Data Dictionary でのモデリング ...31 3.1 あらかじめ設定する Data Dictionary の仕様 ...313.2 AUTOSAR に関連する Data Dictionary オブジェクトの名前 ...32
3.3 Data Dictionary での AUTOSAR に関連するデータの構成 ...34
3.4 Data Dictionary オブジェクトへの AUTOSAR パッケージの割り当て ...35
3.5 パッケージサポートによる ARXML のインポート/エクスポートの実行 ...36
3.6 AUTOSAR プロジェクトでのタイプのモデリング ...38
3.7 Data Dictionary での AUTOSAR スケーリングの指定(CompuMethods) ...40
3.8 Data Dictionary での AUTOSAR ユニットの指定 ...41
3.9 Data Dictionary でのセンダ/レシーバインターフェースの指定 ...42 3.10 Data Dictionary でのクライアント/サーバインターフェースの指定 ...43 3.11 Data Dictionary でのインターランナブルバリアブルの指定 ...44 4 制限事項 ...46 4.1 ソフトウエアコンポーネントテンプレートのサポート対象の制限 ...46 4.2 AUTOSAR コンポジションの取り扱い ...46 4.3 ソフトウエアコンポーネントの複数インスタンスは利用不可 ...47 4.4 イベントセマンティクスを使用するセンダ/レシーバ通信のシミュレーションサポートの制限 .... 48 4.5 AUTOSAR SWC のモデリングとモデルリファレンス機能 ...49
TargetLink AUTOSAR ガイドライン 5 SystemDesk と TargetLink の間で SWC コンテナをやり取りするためのガイドライン...50 5.1 SystemDesk と TargetLink の一般的なガイドライン ...50 5.1.1 ワークフロー規則の指定 ...50 5.1.2 SWC コンテナをやり取りするためのコンテナ設定ファイルの使用 ...50 5.2 SWC コンテナをやり取りするための SystemDesk のガイドライン ...53 5.2.1 ソフトウエアコンポーネントのパッケージへの分割 ...53 5.2.2 SystemDesk プロジェクトでのすべてのオブジェクトのパッケージの割り当て ...53 5.2.3 共有データとコンポーネント固有のデータの分離 ...55 5.2.4 AUTOSAR パッケージのファイル名 ...55 5.2.5 SystemDesk のワークフロー規則の指定 ...58 5.3 SWC コンテナをやり取りするための TargetLink のガイドライン ...59 5.3.1 ソフトウエアコンポーネントと TargetLink サブシステム ...59 5.3.2 TargetLink のワークフロー規則の指定 ...60 6 参考資料一覧 ...62
1 概要
本書では、TargetLink で AUTOSAR ソフトウエアコンポーネント(SWC)をモデリングおよび 実 装 す る TargetLink ユ ー ザ 向 け の ガ イ ド ラ イ ン を 紹 介 し ま す 。 TargetLink は 、 Simulink®/Stateflow®/TargetLink でモデリングした制御ファンクションを非常に効率的な C コー ドの形式で実装するための量産コード生成ツールです。TargetLink は特に AUTOSAR ソフトウ エアコンポーネントの形式でモデルを実装する AUTOSAR ユースケースをサポートしています。 AUTOSAR ソフトウエアコンポーネントは、dSPACE SystemDesk などで設計されたソフトウエ アアーキテクチャの個々の要素を構成しています。AUTOSAR ソフトウエアのアーキテクチャと TargetLink が対応している各部分の図を図 1 に示します。なお、TargetLink でサポートされるの は AUTOSAR ソフトウエアのアーキテクチャのアプリケーション層のみです。TargetLink は RTE 生成ツールにはなりません。図 1:AUTOSAR ソフトウエアのアーキテクチャ内の TargetLink が対応している各部分:TargetLink は、 AUTOSAR SWC のビヘイビアをモデリングし、インプリメンテーションを実現するためにのみ使用されます。
AUTOSAR の方法論に従うと、アーキテクチャや dSPACE SystemDesk などの AUTOSAR オー サリングツールとビヘイビアモデリングツールTargetLink は、AUTOSAR 標準 ARXML ファイル をやり取りすることによって連携します。図 2 を参照してください。図の中の重要なエレメント は、AUTOSAR ソフトウエアコンポーネントの内容を記述するソフトウエアコンポーネントテン プレートです。SystemDesk ユーザは、ソフトウエア設計者の役割を担い、ソフトウエア全体を 多数のソフトウエアコンポーネントに分解し、これらのソフトウエアコンポーネントが互換性の あるインターフェースを通して相互に通信を行うことを確認します。ソフトウエア設計者は一般 的に、TargetLink を使用する複数のファンクション/ソフトウエア開発者と ARXML ファイルを やり取りし、個々のソフトウエアコンポーネントのインプリメンテーションを実現します。図 2 を参照してください。TargetLink を使用すると、ソフトウエアコンポーネントを実装するだけで はなく、Simulink/TargetLink 環境において通常の方法でソフトウエアコンポーネントをテストす る こ と も で き ま す 。 一 般 的 に 、 ソ フ ト ウ エ ア コ ン ポ ー ネ ン ト の 開 発 は 、SystemDesk や TargetLink などのツール間で何度が ARXML ファイルをやり取りし、変更を調整する反復的なプ ロセスです。
TargetLink
アプリケーションソフトウエア コンポーネント インプリメンテーション アプリケーション ソフトウエア コンポーネント AUTOSAR インターフェース AUTOSAR インターフェース AUTOSAR インターフェース アクチュエータ ソフトウエア コンポーネント センサ ソフトウエア コンポーネント アプリケーション ソフトウエア コンポーネント AUTOSAR インターフェース AUTOSAR ソフトウエア AUTOSAR ランタイム環境(RTE) 標準 インターフェース 標準 インターフェース 標準 インターフェース 標準 インターフェース 標準 インターフェース 標準 インターフェース AUTOSAR 標準 インターフェース AUTOSAR インターフェース AUTOSAR インターフェース オペレーティング システム 標準 インターフェース サービス 通信 マイクロコントローラ アブストラクション ECU アブストラクション コンプレックス デバイスドライバ ベーシック ソフトウエア ECU ハードウエアTargetLink AUTOSAR ガイドライン
図2:AUTOSAR ツールチェーンでの TargetLink の使用。dSPACE SystemDesk は一般的に AUTOSAR ツール チェーンでTargetLink と組み合わせて使用されるので、AUTOSAR アーキテクチャツールと見なすことができま す。TargetLink と AUTOSAR アーキテクチャツールは、AUTOSAR 標準 XML 形式に基づく SWC デスクリプ ションファイルをやり取りします。
TargetLink 3.2 と SystemDesk 3.0 の両ツールは、AUTOSAR ARXML ファイルのやり取りをサ ポートするだけではなく、いわゆる SWC コンテナをやり取りすることによってより簡単で効率 的かつ分かりやすい方法で AUTOSAR ソフトウエアを開発する手段を提供します。図 3 を参照 してください。本書のガイドラインは両方のアプローチに対して有効です。TargetLink と SystemDesk の間で SWC コンテナをやり取りするためのガイドラインについては、特に本書の 第5 章で説明します。第 5 章の大部分では、SystemDesk が TargetLink と SWC コンテナを適切 にやり取りするためのガイドラインを紹介します。
1.1 本書の内容
本書の規則では、AUTOSAR ソフトウエアコンポーネントのモデリング、AUTOSAR 準拠コード の生成、および AUTOSAR ソフトウエアコンポーネントデスクリプションファイルについて説 明します。本書は以下の章で構成されています。 第 2 章では、ブロック線図レベルでの AUTOSAR SWC のモデリング、つまり、TargetLink AUTOSAR ライブラリのブロックを使用する方法に関するガイドラインを紹介します。 第 3 章では、Data Dictionary 内の AUTOSAR に関連するデータの指定に関するガイドラインを紹介します。この章は、特に AUTOSAR に関連する多くのデータを、ARXML ファイルか らインポートするのではなく手作業でData Dictionary 内に作成する場合にお読みください。 第 4 章では、TargetLink で AUTOSAR SWC をモデリングする場合の制約について説明します。 第 5 章の大部分では、SystemDesk が TargetLink と SWC コンテナを適切にやり取りするた ソフトウエアアーキテクチャ ハードウエアトポロジ ネットワーク通信 OS コンフィギュレーション RTE 生成 機能設計 機能シミュレーション 機能実装 AUTOSAR 準拠 SWC デス クリプショ ン SWC デス クリプショ ン ECU 設定 RTE コード SWC コード
図 3:AUTOSAR 準拠のソフトウエアをより快適に開発する手段としての SystemDesk と TargetLink 間での SWC コンテナのやり取り。ユーザは、個々の AUTOSAR XML ファイルをやり取りする代わりに、単に SWC コ ンテナをインポートまたはエクスポートすることができます。.c や.h などのその他の実装ファイルは、自動的に 処理されます。
1.2 バージョンの依存関係
本書の規則はTargetLink 3.1 以降の TargetLink に適用されます。ただし、それ以前のバージョン でこれらの規則が役立つ場合もあります。TargetLink AUTOSAR のサポートを利用するには、 TargetLink AUTOSAR Module(TAS)が必要です。1.3 コンテンツと関連ドキュメント
本書で紹介するTargetLink AUTOSAR ガイドライン以外にも、TargetLink で SWC を実装するた めに有用な情報を提供する以下のドキュメントがあります。
すべての TargetLink インストレーションに含まれる通常の『TargetLink AUTOSAR Mod-eling Guide』
AUTOSAR の機能と TargetLink がこれらの機能をサポートする範囲の詳細なリストを含 むExcel シート。この Excel の表は、TargetLink サポート([email protected])から 入手することができます。
追加のアプリケーションノートや、TargetLink AUTOSAR ユーティリティ、TargetLink AUTOSAR オンラインセミナーなどに関するその他の資料は、以下の URL の TargetLink 製品サポートセンターからダウンロードすることができます。 www.dspace.jp/goto.cfm/TargetLink_ProductSupportCenter SWC コンテナのエクスポート SWC コンテナのエクスポート SWC コンテナ SWC コンテナ SWC コンテナのインポート SWC コンテナのインポート
TargetLink AUTOSAR ガイドライン
2 ブロック線図レベルでのモデリング
この章では、TargetLink で AUTOSAR SWC を開発する場合のブロック線図レベルに関するガイ ドラインを紹介します。
2.1 一般的な AUTOSAR コード生成設定
TargetLink で AUTOSAR SWC を設計および実装するには、TargetLink のメインダイアログの
[Code generation mode]オプションに[AUTOSAR]を設定します。
目的
TargetLink を使用した SWC のモデリング 例
必要な[Code generation mode]の設定を図 4 に示します。この設定は TargetLink のメインダイア
ログで行うことができます。
図4:AUTOSAR ソフトウエアコンポーネントを開発するには、[Code generation mode]に[AUTOSAR]を設定し ます。
2.2 SWC と SWC のインターナルビヘイビアの一般的なモデリングスタイル
SWC の開発でしばしば使用されるモデリングスタイルでは、Simulink ファンクションコールを 使用して RTE イベントをモデリングします。この RTE イベントはスケジューラとして機能する 独立したStateflow チャートから提供されます。ランナブルは Stateflow チャートによって起動さ れたファンクションコールトリガサブシステムとしてモデリングされます。例
TargetLink のデモモデル ar_poscontrol は、このセクションで説明するガイドラインに準拠した モデリングスタイルの例です。図 5 は、このデモモデルの TargetLink サブシステムを示してい ます。
図 5:モデリングスタイルの例。 TargetLink サブシステムの最上層にある SWC の内部を表しています (TargetLink の ar_poscontrol デモモデルを参照)。ランナブルは Simulink ファンクションコール(RTE イベン トをシミュレート)によって起動され、SWC Sender/Receiver ブロックが TargetLink サブシステム内の通常の TargetLink ポートの代わりに使用されています。したがって、SWC Sender/Receiver ブロックは、SWC の実際 のAUTOSAR ポートに相当します。ソフトウエアコンポーネントのランナブルの外部で関数ブロックは使用され ていません。
2.3 アトミックソフトウエアコンポーネントと TargetLink サブシステム
TargetLink サブシステムに対する AUTOSAR ソフトウエアコンポーネントのマッピングについ ては、次の2 つの方法が利用できます。 1. 1 つの TargetLink サブシステム内で、すべてのランナブルを含む AUTOSAR ソフトウエアコ ンポーネントを 1 つだけモデリングする(つまり、その TargetLink サブシステム内に、他の AUTOSAR ソフトウエアコンポーネントは存在しない)。 2. 1 つの TargetLink サブシステム内で、複数の SWC をすべてモデリングする(つまり、その TargetLink サブシステム内に、複数の SWC のすべてのランナブルが存在する)。 そのため、1 つのソフトウエアコンポーネントを異なる複数の TargetLink サブシステムに分割す ることはお勧めしません(図 6 を参照)。SWC のランナブルに加えて、いずれのランナブルに も属さないモデルフラグメントを TargetLink サブシステムの一部にすることができます。ただ し、これらのモデルフラグメントは Simulink のシミュレーションでしか使用できません。これ は、ランナブルの内容のみが SWC のコードとなり、AUTOSAR アプリケーションの一部として 使用できるためです。 アトミックソフトウエアコンポーネントは、モデル内の 1 つのサブシステムまたはブロックの形 式で直接的に表現する必要はありません。モデリングするのはその SWC に属するランナブルで、 そのランナブルの内容がSWC の機能を構成します。 目的 TargetLink を使用した SWC のモデリングTargetLink AUTOSAR ガイドライン 例 図6 は、同じ SWC の異なるランナブルを異なる TargetLink サブシステムに分割する許容されな い設定例を示しています。図 7 は、2 つのランナブルで構成される SWC の典型的なモデリング スタイルを示しています。ランナブル以外の関数ブロックは SWC には含まれず、Simulink のシ ミュレーションのみで機能します。 図 6:同じソフトウエアコンポーネントのランナブル(この図では SWC1)を異なる TargetLink サブシステム (この図ではTargetLink_Subsystem_1 と TargetLink_Subsystem_2)に分割することはできません。1 つの SWC の構成要素は1 つの TargetLink サブシステムでしか使用できません。 図 7: TargetLink サブシステムのルートレベル: 1 つまたは 2 つの SWC に属する 2 つのランナブル
2.4 ランナブルのモデリング
ランナブルのモデリングでは、以下のガイドラインに留意する必要があります。
ランナブルは TargetLink Function/Runnable ブロックを含む Simulink サブシステムで表す必 要があります。
Function/Runnable ブロックの[Implement subsystem as runnable]オプションをチェックする 必要があります。 ランナブルを含むサブシステムには任意の数の他のサブシステムを含めることができます。 これらのサブシステムでTargetLink の Function ブロックを使用することもできます。 AUTOSAR 規格でサポートされていないため、ランナブルをネスト構造にすることはできま せん。ただし、従来のサブファンクションをいくつでも含めることができます。 ランナブルサブシステムがアトミックサブシステムか、ファンクションコールでトリガされ るサブシステムか、または有効もしくはエッジでトリガされるサブシステムかは、ユーザが 指定します。アトミックサブシステムやファンクションコールでトリガされるサブシステム を使用するモデリングスタイルが、最も一般的な手法です。ただし、ランナブルサブシステ ムの起動は SWC のコードには影響しません。Simulink の MIL/SIL/PIL モードでのシミュ レーションにのみ使用されます。 一般的に、TargetLink サブシステムのルート階層をランナブルとして指定することは推奨さ れません。ルート階層よりも下位のサブシステムを使用するようにしてください。 目的 TargetLink を使用した SWC のモデリング 補足説明 コードの生成を行うと、各ランナブルごとに C 関数が生成されます。 ランナブルサブシステムの外部に存在するモデルフラグメントは SWC の構成エレメン トにはなりません(図 7 を参照)。これらのモデルフラグメントのコードも生成されま すが、Simulink シミュレーションでしか機能しません。 例 図 8 はシンプルなランナブルの基本構造を示しています。サブシステムを AUTOSAR ランナブ ルにするには、図 9 で示されているように、Function/Runnable ブロックで[Implement
subsys-tem as runnable] オプションを選択する必要があります。図 10 はランナブルをネストする許容
されない設定例を示しています。
図 8:Runnable ブロック(緑)が存在するため、このサブシステムはランナブルになります。ランナブルサブシ ステムに入力される、またはランナブルサブシステムから出力されるすべての信号は、TargetLink の Inport および
TargetLink AUTOSAR ガイドライン
図9:サブシステムを AUTOSAR ランナブルとして実装するための[Implement subsystem as runnable]チェック ボックスを指定する必要があります。
2.5 ランナブルの境界での TargetLink Inport/Outport の使用
ランナブルに対する入出力信号(トリガポートは除く)については、以下のガイドラインを順守 してください。
ランナブルサブシステムに対するすべての入力データ信号は、Simulink Inport ブロック以外 のブロックに接続する前に TargetLink Inport に接続する必要があります。TargetLink Inport は、ランナブルサブシステムのルートレベルまたはそれ以下のサブシステムで直接使用しま す。どのような場合も、信号は Simulink Inport ブロック以外のブロックに入力される前に TargetLink Inport を通る必要があります。
ランナブルサブシステムに対するすべての出力データ信号は、Simulink Outport ブロック以 外のブロックに接続した後で TargetLink Outport に接続する必要があります。TargetLink Outport は、ランナブルサブシステムのルートレベルまたはそれ以下のサブシステムで直接 使用します。どのような場合も、信号はランナブルサブシステムから出力される前に TargetLink Outport ブロックを通る必要があります。
ランナブルに対するすべての入出力信号は、データエレメント、オペレーション引数、イン ターランナブルバリアブルなどの AUTOSAR RTE マクロを介して読み書きされる信号です。 こ の た め 、[Use AUTOSAR communication] オ プ シ ョ ン を 選 択 し て 、 こ れ ら の 信 号 の
TargetLink Inport/Outport ブロックで AUTOSAR 通信メカニズムを指定する必要があります。 状況によっては、AUTOSAR 規格から外れて、ランナブル内部のグローバル変数などとの読
み書きを行うほうが好ましい場合もあります。このような場合は、[Use AUTOSAR commu-nication]オプションとグローバル StrictRunnableInterfaceChecks コード生成オプションの選
択を解除してください。
ファンクションコールイベントは AUTOSAR 規格に準拠していないので、必ず通常の Simulink Inport ではなく Trigger ポート経由でランナブルサブシステムに入力する必要があり ます。同様に、ファンクションコールイベントはランナブルサブシステム内から出ないよう にする必要があります。ただし、ランナブルそのものをファンクションコールトリガサブシ ステムにすることはできます。また、ランナブルの境界を越えない場合には、ランナブル内 のブロックからファンクションコールイベントを提供することも可能です。 目的 TargetLink を使用した SWC のモデリング 補足説明 状況によっては、AUTOSAR 規格から外れて、ランナブル内部のグローバル変数などとの読み書 きを行うほうが好ましい場合もあります。StrictRunnableInterfaceChecks オプションを選択して いない場合は、TargetLink でこの種類のモデリングを実行することができます。 例 図 11 は TargetLink の Inport/Outport の適切な使用例を示しています(ランナブルレベル自体で 直接使用またはサブシステム内で使用)。TargetLink ポートでランナブルのインターフェース信 号が適切に定義されていないので、ランナブルのモデリング設定を行えない例を図 12 に示しま す。図 13 は、TargetLink Inport ブロックでの AUTOSAR 通信メカニズムの指定を示します。図 14 は 、 AUTOSAR 以 外 の 信 号 も ラ ン ナ ブ ル サ ブ シ ス テ ム に 対 し て 入 出 力 す る た め の
StrictRunnableInterfaceChecks コード生成オプションを示します。図 15 では、ファンクション
TargetLink AUTOSAR ガイドライン
図11:ランナブルでの TargetLink Inport/Outport の適切な使用。ランナブルに対する入出力信号はすべてランナ ブルに対する入出力の前に TargetLink Inport/Outport 経由で接続する必要があります。ランナブルサブシステム とTargetLink ポートの境界の間では Simulink Inport/Outport を使用することができます。
図 12:ランナブルサブシステムに対する入出力信号の不適切な使用。In1 入力信号は、TargetLink Inport ブロッ クで適切に指定される前のルックアップテーブルブロックの入力信号です。同様に、In1 および In2 入力信号は、
TargetLink Inport ブロックで適切に指定される前に多重化されます。また、Look-up Table ブロックによって生
図 13:ランナブルのサブシステムに対するすべての入出力信号に対して AUTOSAR 通信メカニズムを指定する 必要があります。センダ/レシーバ、クライアント/サーバ、またはインターランナブル通信の場合は、[Use AUTOSAR communication]チェックボックスを選択してください。Per Instance Memory を経由した通信の場合 は、[Use AUTOSAR communication]チェックボックスを選択せず、ダイアログの[Output]タブで Per Instance Memory 変数を選択します。
図 14 : StrictRunnableInterfaceChecks コ ー ド 生 成 オ プ シ ョ ン の 選 択 を 解 除 す る と 、 ラ ン ナ ブ ル 内 部 で AUTOSAR 以外の変数にアクセスできるようになります。このオプションはデフォルトとして設定されています。
TargetLink AUTOSAR ガイドライン
図 15:AUTOSAR 規格に準拠しないため、Function-Call Generator ブロックからランナブルにファンクション コールイベントを入力することはできません。同様に、ランナブルからファンクションコールイベントを出力す ることもできません。ただし、ランナブル内部ではファンクションコールをいつでも使用することができます。
2.6 ランナブルおよび RTE イベントの起動
Simulink(MIL/SIL/PIL モード)でランナブルを正しくシミュレーションするには、Simulink の セマンティクスに従ってランナブルの起動を(正しい順序で)モデリングする必要があります。 ランナブルがファンクションコールトリガサブシステムになる場合には、正しい Simulink シ ミュレーションを行うために、モデル内のファンクションコールでランナブルの実行をトリ ガする必要があります。ファンクションコールのイニシエータ(Stateflow チャートや Function-Call Generator ブロックなど)は SWC には含まれません。 ランナブルが通常の Simulink サブシステムになる場合(ランナブルが TIMING_EVENT でト リガされる場合の妥当なモデリングスタイルなど)、ランナブルの実行(およびその順序) はデータフローに基づきます(Simulink では一般的)。RTE イベントの指定は Simulink シミュレーションには影響しませんが、ECU で稼働する実際の AUTOSAR アプリケーションではランナブルの起動を定義します。 目的 Simulink での SWC のシミュレーション 補足説明 Simulink(MIL/SIL/PIL モード)での起動は、ランナブルの RTE イベントの指定と区別する必要 があります。RTE イベントの指定は Simulink シミュレーションや生成コードには影響しません が 、SWC デスクリ プシ ョン ファ イル に書き込 まれ 、 RTE ジェ ネレー タに よっ て実 際の AUTOSAR アプリケーションでランナブルを正しく起動するのに使用されます。
2.7 SWC Sender/Receiver ブロックの使用
SWC Sender/Receiver ブロックの使用はすべて任意です。SWC Sender/Receiver ブロックの目 的は、モデリングレベルで AUTOSAR ポートを適切に表すことです。SWC Sender/Receiver ブ ロックを使用する場合は、次の規則を順守してください。
SWC Sender/Receiver ポートはランナブルの外部に配置します。
SWC の ラ ン ナ ブ ル の 内 部 の SWC Sender/Receiver ポ ー ト と 対 応 す る TargetLink In-port/Outport ブロック間では、SL ポートと Bus Creator/Selector/Mux/Demux ブロックだけを 使用します。これ以外のブロックを使用した場合は、SWC Sender/Receiver ブロックを AUTOSAR ポートとして解釈することができません。 双方向のクライアント/サーバ通信(入力および出力引数を使用するクライアント/サーバ オペレーション)には、SWC Sender/Receiver ポートを使用しないでください。 目的 TargetLink を使用した SWC のモデリング 補足説明 SWC Sender/Receiver ポートはモデルレベルで AUTOSAR ポートを適切に表します。 例 図 16 は、tl_autosar_lib ライブラリの SWC Sender/Receiver ブロックを示します。図 17 は、 AUTOSAR ポートを表すためにモデルで SWC Sender/Receiver ブロックを使用する一般的なモ デリングスタイルを示します。
TargetLink AUTOSAR ガイドライン
図17:モデルレベルでの SWC Sender/Receiver ブロックの使用例。AUTOSAR ポートは Data Dictionary で指定 します。それぞれの AUTOSAR ポートは、SWC Sender/Receiver ブロックのブロックダイアログから参照され ます。
2.8 同期型クライアント/サーバ通信のクライアントのモデリング
TargetLink は、同期型クライアント/サーバ通信のクライアントのモデリングを以下の異なる 2 つの方法でサポートしています。 クライアント/サーバインターフェースのオペレーションが双方向、つまり、入力と出力を 含む場合、アプリケーションエラーを返す場合、またはオペレーション引数のいずれかが構 造体の場合は、オペレーションコールサブシステムを使用してオペレーションをモデリング する必要があります。 その他のすべての場合、つまり、オペレーションに入力引数または出力引数のいずれかが含 まれ、アプリケーションエラーも構造体もない場合は、オペレーションが入力引数を含むの か出力引数を含むのかによって、TargetLink Inport または TargetLink Outport を 1 つだけを 使用してオペレーションをモデリングすることができます。目的
例1
入力および出力引数を含むクライアント/サーバオペレーションを呼び出すには、Data Dictio-naryでの適切なクライアント/サーバインターフェースの指定とともにオペレーションコールサ ブシステム(Function/Runnableブロックを持つサブシステム(例については図18を参照))を 使用する必要があります。図19を参照してください。Function/Runnableブロックのブロックダ イアログでは、[Implement subsystem as operation call]オプションを設定し、適切なオペレー
ションを参照する必要があります。図20を参照してください。各オペレーション引数は、ブロッ クダイアログで個々のオペレーション引数を指定するTargetLink Inport/Outportブロックを使用し てモデリングする必要があります。図21を参照してください。 図18:複数のオペレーション引数が関係するクライアント/サーバオペレーションを呼び出す Operation Call サ ブシステムの使用例。各 Operation Call サブシステムは操作を呼び出すランナブル内に存在している必要があり ます。オペレーションに複数の入力引数が関係する場合、複数のTargetLink Inport を使用する必要があります。
図 19:Data Dictionary での Saturation オペレーションの指定。このオペレーションは双方向で、入力信号と出 力信号を含むので、図 18 に示されているようにオペレーションコールサブシステムを使用してモデリングする 必要があります。
TargetLink AUTOSAR ガイドライン
.
図 20 : ク ラ イ ア ン ト / サ ー バ イ ン タ ー フ ェ ー ス の オ ペ レ ー シ ョ ン の 呼 び 出 し を 指 定 す る に は 、 Function/Runnable ブロックで[Implement subsystem as operation call]オプションを設定する必要があります。 さらに、Data Dictionary 内の必要なオペレーションを参照する必要があります。
例2
TargetLink の MCDC デモモデルでは、単純な Get/Set 関数形式のクライアント/サーバ通信の 例が示されています。ここでは、オペレーションコールサブシステム全体をモデリングする必要 はありません。代わりに、単純な TargetLink Inport/Outport ブロックを使用して Get/Set オペ レーションをモデリングすることができます。単純な Get/Set オペレーションに使用できるモデ リングスタイルを図22 に示します。TargetLink Inport/Outport のブロックダイアログで必要な仕 様は、図 23 に示します。図 24 に示されているように、Data Dictionary 内でオペレーションを 指定してください。 図 22:position ブロックは、1 つの信号だけを取り出すクライアント/サーバオペレーションである単純な Get 関数を指定するために使用します。例 1 に示されているように、このような状況ではオペレーションコールサブ システム全体をモデリングする必要はありません。単純なTargetLink Inport/Outport ブロックで十分です。 図23:TargetLink Inport ブロックからの一方向クライアント/サーバオペレーションの参照。
TargetLink AUTOSAR ガイドライン
図 24:クライアント/サーバでの一方向オペレーションの指定。このオペレーションには Position という引数 が 1 つだけ含まれています。この引数は ARGOUT オペレーション引数です。したがって、このオペレーション は図22 と図 23 に示されているように、1 つの TargetLink Inport ブロックだけでモデリングすることができます。
2.9 AUTOSAR に関連する信号の初期化
TargetLink AUTOSAR モデルにはさまざまな種類の AUTOSAR に関連する信号(シミュレー ションビヘイビアが初期化値によって異なる場合にMIL および SIL/PIL シミュレーションモード でシミュレーションのために適切に初期化する必要があるインターランナブルバリアブルやポー ト)が含まれています。これには、TargetLink Outport を適切に初期化する必要があるファンク ションコールでトリガされるサブシステムなどの、条件付きで実行されるサブシステムとしてラ ンナブルをモデリングする場合などが考えられます。信号の種類が異なると、AUTOSAR に関連 する仕様に従ってOutport を初期化するために適用されるメカニズムも若干異なります。 センダ/レシーバ通信の Outport は、AUTOSAR 定数の指定として使用される DD 変数オブ ジェクトの value プロパティを参照することにより初期化することができます。例 1 を参照 してください。
インターランナブル通信の Outport は、Data Dictionary に含まれるインターランナブルバリ
アブルの value プロパティを参照することにより初期化することができます。例 2 を参照し
てください。
補足説明
実際のECU 上での AUTOSAR に関連する信号(特定の Per-Instance-Memory は除く)は、ソフ
トウエアコンポーネントデスクリプションファイル内の仕様に基づいて RTE によって初期化さ れます。これ以降の例で説明されている TargetLink Outport の初期化は、MIL/SIL/PIL モードで のシミュレーションでのみ使用されます。
例 1:ファンクションコールでトリガされるランナブルサブシステムでのセンダ/レシーバ通信 用TargetLink Outport の初期化 図 25 の例では、Simulink での実行がファンクションコールによってトリガされるランナブルを 示します。結果として、ランナブルサブシステムの TargetLink Outport(この場合、upi ブロッ ク)をある値で初期化でき、また初期化する必要があります。図26 を参照してください。 図25:初期値がシミュレーションのビヘイビアに影響を与える場合には、(たとえば、ファンクションコールに よってトリガされるなど)条件付きで実行されるランナブルサブシステムの Outport をシミュレーションのため に適切に初期化する必要があります。
図26:左:図 25 の upi Outport に対してセンダ/レシーバ通信が指定されています。右:upi Outport を適切に 初期化するために、AUTOSAR ポートの初期化に使用される定数値を表す DD 変数オブジェクトの value プロパ ティが参照されます。この処理にはTargetLink の ddv コマンドが使用されます。この定数を表す Data Dictionary 変数オブジェクトは、ARXML のインポート中に自動的に作成されます。もちろん、手作業で作成することも可 能です。
TargetLink AUTOSAR ガイドライン
図 27:AUTOSAR 規格に従い、Sender/Receiver ポートの初期化値は、ARXML のインポート/エクスポート中 にインポートまたはエクスポートされる Data Dictionary 変数オブジェクト(ここでは Init_Value_upi と呼びま す)への参照を介して指定します。
図 28::シミュレーション目的でポートを初期化するために図 26 の TargetLink Outport から参照される
例 2:ファンクションコールでトリガされるランナブルサブシステムでのインターランナブル通 信用TargetLink Outport の初期化 図 29 の例では、Simulink での実行がファンクションコールによってトリガされるランナブルを 示します。結果として、ランナブルサブシステムの TargetLink Outport(この場合、lin_pos ブ ロック)をある値で初期化できます。図26 を参照してください。 図29:ファンクションコールによってトリガされるランナブルサブシステム内部の TargetLink Outport(この例 ではlin_pos)。lin_pos Outport の初期化値を指定する必要があります。
図30:左:図 29 の lin_pos Outport に対してインターランナブル通信が指定されています。右:lin_pos Outport を適切に初期化するために、インターランナブルバリアブルを表す DD 変数オブジェクトの value プロパティが 参照されます。この処理にはTargetLink の ddv コマンドが使用されます。このインターランナブルバリアブルを 表すData Dictionary 変数オブジェクトは、ARXML のインポート中に自動的に作成されます。もちろん、手作業 で作成することも可能です。
TargetLink AUTOSAR ガイドライン 図 31:インターランナブルバリアブルを表す Data Dictionary 変数オブジェクト。初期化値は、変数オブジェク トの Value プロパティに保存されます。AUTOSAR 規格に従い、インターランナブルバリアブルはスカラー変数 を指定する必要があります。
2.10 SWC 内部での AUTOSAR に関連しない信号の初期化
特定の AUTOSAR 信号ではないソフトウエアコンポーネント内部の信号を適切に初期化する必 要がある場合もあります。初期化後の状態は、最初の状態です。RTE はこれらの信号を初期化 しないので、このような信号は SWC のランナブル向けに作成されているコードによって初期化 する必要があります。これらは以下の2 つの異なる方法で初期化することができます。 定義で初期化 RestartFunction タイプの AUTOSAR ランナブルで初期化 目的 変数の適切な初期化(必要な場合) 例1図32 の Unit Delay ブロックの状態変数は、変数クラスとして default を選択することによって定 義で初期化することができます。図 33 を参照してください。この結果、状態変数は定義で直接 初期化されます。図34 を参照してください。
図32:AUTOSAR ランナブルの一部であるはずの Unit Delay ブロックを持つモデルの一部。Unit Delay ブロック の状態変数は適切に初期化する必要があります。この状態変数は定義で初期化する(最も一般的)ことも、 RestartFunction タイプのランナブルで初期化することもできます。 図33:Unit Delay ブロックの状態。変数クラスはデフォルトに設定されているので、状態変数は定義で初期化さ れます。図 34 を参照してください。この例は、図 32 に示された部分が属するランナブルに対して作成される ファイルの一部を示しています。 図34:Unit Delay ブロックの状態変数を定義および初期化するために作成されるコードの一部。
TargetLink AUTOSAR ガイドライン 例2 図 32 の Unit Delay ブロックの状態変数は、特別な再起動ランナブルで初期化されます。このた めには、図 35 に示されている必要プロパティを含む変数クラスが必要です。この変数クラスは 状態変数のブロックダイアログで選択されます。図36 を参照してください。変数が属する SWC に対しては、RestartFunction タイプのランナブルが必要です。図 37 を参照してください。その 結果、状態変数は再起動ランナブルで初期化されるようになります。図 38 を参照してください。
図35:RestartFunction タイプのランナブルで SWC の内部変数を初期化するには、InitAtDefinition に off が設定
され、RestartFunctionName が明示的に「default」のままである変数クラスが必要です。
図 37: RestartFunction タイプのランナブルで SWC の内部変数を初期化するには、 Kind プロパティに
RestartFunction を設定したランナブルを SWC に含める必要があります。この手順を行うと、TargetLink は、再
起動ランナブルで変数クラスのプロパティ InitAtDefinitiion =「off」と RestartFunctionName =「default」を使用
して、SWC のすべての内部変数を初期化します。
TargetLink AUTOSAR ガイドライン
3 Data Dictionary でのモデリング
この章では、Data Dictionary 内の AUTOSAR に関連するデータを指定する場合に関係のあるガ イドラインを紹介します。AUTOSAR XML をインポートして AUTOSAR に関連するデータをイ ンポートすると、AUTOSAR に関連するデータがこの章のガイドラインに沿った形で自動的に整 理されます。
3.1 あらかじめ設定する Data Dictionary の仕様
AUTOSAR 準拠コードを生成するには、以下のように、TargetLink で Data Dictionary ファイル のいくつかのオブジェクトをあらかじめ設定しておく必要があります。
ステータス信号用の変数(RTE_E_OK、RTE_E_TRANSMIT_ACK) インターランナブルバリアブル用の変数クラス(RTE マクロなど) RTE マクロ用関数クラス
インターランナブル通信用アクセス関数
AUTOSAR Data Dictionary テンプレートファイル dsdd_master_autosar.dd を使用するか、また は DD Merge Explorer を使用してプロジェクトの Data Dictionary ファイルにテンプレートファ イルを統合すると、AUTOSAR に関連するこれらの Data Dictionary オブジェクトを簡単に設定 することができます。
目的
TargetLink を使用した SWC のモデリング 補足説明
AUTOSAR 関連プロジェクトの Data Dictionary テンプレートファイルは、次の場所にあります。
<TL_Root>\Dsdd\Config\dsdd_master_autosar.dd
例
AUTOSAR 準拠のコード生成のために Data Dictionary プロジェクトであらかじめ設定する必要 のあるAUTOSAR に関連するオブジェクトを図 39 にいくつか示します。図 40 は、Data Dictio-nary Merge Explorer を使用した既存の Data DictioDictio-nary ファイルの dsdd_master_autosar.dd の AUTOSAR に関連するオブジェクトへの統合を示します。
図40:DD Merge Explorer を使用すると、dsdd_master_autosar.dd テンプレートの AUTOSAR に関連する Data Dictionary オブジェクトと既存の Data Dictionary ファイルを統合することができます。Merge Explorer は Data Dictionary Manager の View メニューで利用できます。オブジェクトはコンテキストメニュー(マウスの右ク リック)を使用して右から左へコピーできます。
3.2 AUTOSAR に関連する Data Dictionary オブジェクトの名前
AUTOSAR に関係する Data Dictionary オブジェクト(インターフェース、ソフトウエアコン ポーネント、モード、Typedef、スケーリングなど)の名前では、以下の規則を順守する必要が あります。
Data Dictionary 内の AUTOSAR に関連するすべてのオブジェクトの名前は、長さを 31 文字 以内とします。
AUTOSAR に関連するすべてのオブジェクトの名前は有効な C 識別子とする必要があります。 目的
AUTOSAR 規格、つまり autosar.xsd スキーマファイルの準拠 補足説明
AUTOSAR 4.0 より前の AUTOSAR 規格では、すべての AUTOSAR 識別子の名前の長さが 31 文字に制限されます。この規定は RTE マクロやパス/パッケージ情報を含む名前には適 用されません。さらに、AUTOSAR エレメントの場合は有効な C 識別子が必要です。 一般的に、最大長を含む AUTOSAR 識別子の有効性は autosar.xsd スキーマファイルで指定
TargetLink AUTOSAR ガイドライン TargetLink 3.2 は 、 長 い 識 別 子 が 使 用 さ れ た 場 合 に 警 告 を 出 す よ う に 変 更 で き る IdentifierWarningLevelインポート/エクスポートオプションを提供しています。デフォルト は 32 に 設 定 さ れ て い ま す 。 TargetLink イ ン ス ト レ ー シ ョ ン に 含 ま れ る dsdd_autosar_config.xmlファイルを参照してください。 Validate インポート/エクスポートオプションに「On」が設定されている場合は、ARXML のインポート/エクスポート時にautosar.xsd スキーマファイルの準拠が確認されます。 場合によっては、Data Dictionary データモデル自体がオブジェクトが有効な C 識別子である ことを必要とし、自動的にこれらのチェックを実行します。ただし、これはソフトウエアコ ンポーネントなどの一部のオブジェクトの場合だけで、AUTOSAR プロジェクトで必要なす べてのData Dictionary オブジェクトに対して当てはまるわけではありません。
図41:AUTOSAR 識別子に使用できる文字と文字数を指定する AUTOSAR 3.0 の autosar.xsd スキーマファイル の一部。TargetLink の autosar.xsd スキーマファイルは、<TL_Root>\Dsdd\Autosar のサブディレクトリに保存さ れています。
例
図43:ユニットなどの AUTOSAR に関連する Data Dictionary オブジェクトの名前は有効な C 識別子で構成する 必要がありますが、この例ではそうなっていません。
3.3 Data Dictionary での AUTOSAR に関連するデータの構成
適切な AUTOSAR ワークフローと他の AUTOSAR に関連するツールとの行き来(ラウンドト リップ)のためには、以下のような特定の AUTOSAR に関連するオブジェクトのあらかじめ設 定された構造をData Dictionary に含める必要があります。 ソフトウエアコンポーネント インターフェース モード宣言グルーブ Typedefs スケーリング 上記の種類のオブジェクトの AUTOSAR に関連するすべてのオブジェクトは、各種オブジェク トの上位レベルのグループオブジェクトのサブグループに保存してください。つまり、上記のオ ブジェクトは以下のサブグループに保存します。 /Pool/Autosar/SoftwareComponents/<SWC_GroupName> /Pool/Autosar/Interfaces/<Interface_GroupName> /Pool/Autosar/ModeDeclarationGroups/<ModeDeclaration_GroupName> /Pool/Typedefs/<Typedef_GroupName> /Pool/Scalings/<Scaling_GroupName> サブグループオブジェクトは、図44 に示されているように AUTOSAR パッケージに直接関連付 けられています。 目的 TargetLink を使用した SWC のモデリング
TargetLink AUTOSAR ガイドライン
補足説明
EnablePackageSupport オプションが有効な場合(デフォルトの推奨設定)は、ARXML のイ ンポート時、TargetLink が新たにインポーされた AUTOSAR オブジェクトをこの規則に従っ て自動的に構成します。Data Dictionary の AUTOSAR に関連するオブジェクトを最初から作 成する場合、この規則により、ARXML を何度かインポート/エクスポートする反復的な開 発プロセスでこれらのオブジェクトを適切にアップデートすることができます。
以降の規則で説明されるように、AUTOSAR に関連する他のいくつかのオブジェクトは適用 外です。
当然のことながら、AUTOSAR と関連のない Data Dictionary オブジェクトも適用外です。 例
図 44 は、AUTOSAR に関連するオブジェクトの Data Dictionary 内の必須構造を示します。 TargetLink の各リリースに同梱されている TargetLink AUTOSAR デモモデルでも、Data Dictio-nary の必須構造が示されています。
図44:Data Dictionary のソフトウエアコンポーネント、インターフェース、モード宣言グループの必須構造。
3.4 Data Dictionary オブジェクトへの AUTOSAR パッケージの割り当て
オブジェクトが属するパッケージ(arxml ファイルも)を分かりやすく定義するために、いわゆ るAUTOSAR エレメントに対応する Data Dictionary 内の AUTOSAR に関連する各オブジェクト にパッケージ情報を明示的に割り当てる必要があります。規則 3.3 に示されているオブジェクト のAUTOSAR パッケージは、以下の方法で指定します。 規則 3.3 のサブグループの名前は、最下層の AUTOSAR サブパッケージの名前に対応する必 要があります。 3.3 のサブグループには、AUTOSR パッケージ情報全体を Package プロパティに保存する GroupInfo ノードを含める必要があります。
補足説明
パッケージ情報は、TargetLink による ARXML のエクスポート時のファイルの分割にも影響 を与えます。
Data Dictionary 内の AUTOSAR エレメントに対してパッケージ情報が指定されていない場合 (この規則に従うと避けるべき状態)は、ARXML のエクスポート時に指定したファイル名を
基にそのAUTOSAR エレメントにファイルとパッケージが割り当てられます。
ユニットオブジェクトのパッケージ情報は別の方法で指定します。3.8 を参照してください。 例
図 45 は、ソフトウエアコンポーネントの AUTOSAR パッケージ情報の指定を示します。 TargetLink の各リリースに同梱されている TargetLink デモモデルでも、Data Dictionary のパッ ケージ情報の指定が示されています。
図 45:Data Dictionary でのソフトウエアコンポーネントのパッケージ情報の指定:AUTOSAR に関連するオブ ジェクトをパッケージに含めるためには、まずグループオブジェクトと関連 GroupInfo ノードを作成する必要が あります(ここでは、Sensors というソフトウエアコンポーネントグループ)。パッケージ情報は GroupInfo
ノードのPackage プロパティに保存されます。最上位のパッケージは ApplicationSWC で、サブパッケージ名は
Sensors です。サブグループの名前も Sensors とします。したがって、AUTOSAR パッケージ情報全体は ApplicationSWCs/Sensors となります。
3.5 パッケージサポートによる ARXML のインポート/エクスポートの実行
AUTOSAR のインポート/エクスポート時に AUTOSAR パッケージ情報を常に考慮に入れるた めに、EnablePackageSupport オプションにはデフォルトとして「On」を設定します。 目的 AUTOSAR に関連する他のツールを使用した適切な AUTOSAR ラウンドトリップ。 例 図 46 は、<TL_Root>\Dsdd\config ディレクトリに保存され、他の値が明示的に指定されている 場合を除きデフォルトの ARXML インポートおよびエクスポートオプションを保存するために使AU-TargetLink AUTOSAR ガイドライン
図46:dsdd_autosar_config.xml ファイルで指定する EnablePackageSupport オプションに「On」を設定します。 これはTargetLink のデフォルトでもあります。
3.6 AUTOSAR プロジェクトでのタイプのモデリング
AUTOSAR 信号(データエレメント、オペレーション引数、インターランナブルバリアブル、 Per Instance Memory など)に使用するタイプの指定については、以下の規則を順守する必要が あります。
3.3 で 説 明 さ れ て い る よ う に 、 AUTOSAR に 関 連 す る す べ て の タ イ プ を /Pool/Typedefs/<Typedef_GroupName>に置く必要があります。
3.2 で説明されているように、タイプの名前は 31 文字以下の有効な C 識別子とする必要があ ります。
AUTOSAR 信号にはユーザタイプだけを使用します。つまり、BaseType プロパティは「off」 にします。/Pool/Typedef の直下にある In16、Int32 などのあらかじめ設定されたデータタイ プは、使用しないでください。同様に、/Pool/Typedef/platformtypes の下にあるあらかじめ設 定されたAUTOSAR に関連するタイプも、AUTOSAR 信号には使用しないでください。 すべての Integer AUTOSAR タイプには、スケーリングオブジェクトを指定した constraints
サブノードを含める必要があります。タイプの最小値と最大値も制約として指定することが できます。
AUTOSAR 信号に使用するタイプの ModuleRef プロパティには、n.a.または Rte_Type を設 定する必要があります。 SWC/ランナブルの内部信号にのみ使用し、AUTOSAR 信号には使用しないタイプでは、 ModuleRef プロパティに Rte_Type を設定しないでください。 目的 TargetLink を使用した SWC のモデリング 例 AUTOSAR 信号に使用してはいけないあらかじめ設定されたデータタイプおよび基本タイプの一 部を図 48 に示します。図 49 は、AUTOSAR 整数タイプの場合にスケーリングオブジェクトを どのように参照する必要があるのかを示します。図 50 は、AUTOSAR 信号に使用するタイプに 使用できないModuleRef 値を示します。 図 48:/Pool/Typedefs/PlatformTypes にあるあらかじめ設定されたデータタイプは使用しないでください。同様
TargetLink AUTOSAR ガイドライン
図49:すべての AUTOSAR 整数データタイプには、タイプの Constraints サブノードで参照されるスケーリング オブジェクトを含める必要があります。さらに、タイプに対して Min および Max の値を指定することができます。
図 50: AUTOSAR 信号に使用するタイプには、 n.a.(割り当てなし)または Rte_Type 以外の値を持つ
3.7 Data Dictionary での AUTOSAR スケーリングの指定(CompuMethods)
AUTOSAR 信号(データエレメント、オペレーション引数、インターランナブルバリアブル、 Per Instance Memory など)に使用するタイプの指定については、以下の規則を順守する必要が あります。 スケーリングは、3.3 の規則で説明されているように/Pool/Scalings のサブグループに保存す る必要があります。 サブグループオブジェクトは、規則 3.4 で説明されているように最下層の AUTOSAR パッ ケージに対応します。 スケーリングオブジェクトの名前は、規則 3.2 で説明されているように、31 文字以下の有効 なC 識別子とする必要があります。Data Dictionary のデータモデルでは他の識別子を使用す ることもできます。 AUTOSAR ユニットをスケーリングに関連付ける場合は、スケーリングオブジェクトの UnitRef プロパティからユニットオブジェクトを参照します。Unit プロパティに文字列とし て入力しないでください。 目的 AUTOSAR に関連する他のツールを使用した適切な AUTOSAR ラウンドトリップ。 補足説明
Data Dictionary のスケーリングオブジェクトは、AUTOSAR 規格ではいわゆる CompuMethods に対応します。上記の規則は、AUTOSAR 信号に使用されるスケーリングにのみ適用されます。 SWC の内部で使用する信号で順守する必要はありません。
例
AUTOSAR 信号に使用できるスケーリングオブジェクトの適切な指定を図51 に示します。
図51:Pool/Scalings の DataTypeSemantics というサブグループオブジェクトに保存されているスケーリングオ ブジェクトSC_ref。スケーリングは、/Config/Units に保存されている MyMeter という AUTOSAR ユニットを参
TargetLink AUTOSAR ガイドライン
3.8 Data Dictionary での AUTOSAR ユニットの指定
AUTOSAR 信号(データエレメント、オペレーション引数、インターランナブルバリアブル、 Per Instance Memory など)に使用するユニットの適切な指定については、以下の規則を順守す る必要があります。 ユニットオブジェクトは/Config/Units の下に作成します。サブグループオブジェクトは作成 できず、作成してはいけません。 ユニットが属する AUTOSAR パッケージは、ユニットオブジェクトの package プロパティ で指定する必要があります。 ユニットオブジェクトの名前は、規則 3.2 で説明されているように、31 文字以下の有効な C 識別子とする必要があります。Data Dictionary のデータモデルでは他の識別子を使用するこ ともできるため、この自動チェックは行われません。 図 51 に示されているように、ユニットオブジェクトはスケーリングオブジェクトからのみ 参照します。 目的 AUTOSAR に関連する他のツールを使用した適切な AUTOSAR ラウンドトリップ。 補足説明 上記の規則は、AUTOSAR 信号に使用されるユニットにのみ適用されます。SWC の内部で使用 する信号で順守する必要はありません。 例 AUTOSAR 信号に使用できるユニットオブジェクトの適切な指定を図 52 に示します。
3.9 Data Dictionary でのセンダ/レシーバインターフェースの指定
Data Dictionary でのセンダ/レシーバインターフェースオブジェクトの指定については、以下の 規則を順守する必要があります。 イ ン タ ー フ ェ ー ス オ ブ ジ ェ ク ト は 、 規 則 3.3 で 説 明 さ れ て い る よ う に /Pool/Autosar/Interfaces のサブグループに保存する必要があります。 サブグループオブジェクトは、規則 3.4 で説明されているように最下層の AUTOSAR パッ ケージに対応します。 インターフェースオブジェクトの名前は、規則 3.2 で説明されているように、31 文字を超え ない長さである必要があります。Data Dictionary のデータモデルでは、名前が有効な C 識別 子であることを自動的にチェックします。 インターフェース内のデータエレメントまたはモードエレメントの名前は、31 文字以下とし ます。Data Dictionary のデータモデルでは、名前が有効な C 識別子であることをチェックし ます。 データエレメントとモードエレメントが混在するのではなくデータエレメントのみまたは モードエレメントのみを含むセンダ/レシーバインターフェースを指定することをお勧めし ます。 配列であるデータエレメントには width プロパティを設定します。 すべてのデータエレメントには type プロパティを設定します。 Scaling プロパティにはスケーリングオブジェクトを指定しないことをお勧めします。規則 3.6 で説明されているように、スケーリングオブジェクトは参照されているタイプを介して 間接的に指定すべきです。 TargetLink 3.1p1 以降では、範囲が参照されているタイプに対して指定されている範囲のサ ブセットである場合、データエレメントのMin および Max プロパティに値を指定することが できます。 目的 AUTOSAR に関連する他のツールを使用した適切な AUTOSAR ラウンドトリップ。 例 データエレメントを含むセンダ/レシーバインターフェースの適切な指定を図53 に示します。 図 53:データエレメントを 1 つだけ含むセンダ/レシーバインターフェースの適切な指定。インターフェース オブジェクトIF_upi は、PortInterface と呼ばれる/Pool/Autosar/Interfaces のサブグループオブジェクトに保存さTargetLink AUTOSAR ガイドライン