colagumの日記

備忘録、日記

AUTOSAR勉強7 S/R(Sender/Receiver)連携, バッファリング

S/R(Sender/Receiver)連携

  • データ要素

    • S/R連携でS/Rインターフェースを経由して、実際にやりとりをされるデータ内容
    • データ要素は1つのSW-Cから送信され、1つ以上のSW-Cに受信される
  • S/Rインタフェース(ポートインターフェース)

    • 複数のデータ要素を含むことが可能
  • 端方向による連携
    • 受信側から応答を返す場合は、別のS/R連携を使用する

バッファリング

  • データのバッファリングを受信側ポートにて実施
    • コンフィグレーションにて選択することが可能
  • バッファリング方式
    • データセマンティクス
    • イベントセマンティクス
      • イベント(受信した値)の損失を避けるため、受信したイベントを保持するためのキューイングを行うバッファリング(FIFO )

データの無効化-データセマンティクスのみサポート

  • データ要素
    • S/R連携でS/Rインターフェースを経由して、実際にやりとりをされるデータ内容
    • データ要素は1つのSW-Cから送信され、1つ以上のSW-Cに受信される
  • S/Rインタフェース(ポートインターフェース)
    • 複数のデータ要素を含むことが可能
  • 端方向による連携
    • 受信側から応答を返す場合は、別のS/R連携を使用する
送信側 送信側説明 受信側 受信側説明
Rte_write_<p>_<o>(IN <data>) データセマンティクスにおけるS/R連携のデータ送信を行う Rte_Read_<p>_<o>(OUT <data>) データセマンティクスにおけるS/R連携のデータ取得を行う
Rte_send_<p>_<o>(IN <data>) イベントセマンティクスにおけるS/R連携のデータ送信を行う Rte_Receive_<p>_<o>(OUT <data>) イベントセマンティクスにおけるS/R連携のデータ送信を行う
Rte_Invalidate_<p>_<o>(void) データの無効化を開始する
  • 送信側
    <p> 送信側ポートのショートネーム
    <o>送信側データ要素のショートネーム
    <data>送信するデータ、データ型は送信側のデータ要素の実装データ

  • 受信側
    <p> 受信側ポートのショートネーム
    <o>受信側データ要素のショートネーム
    <data>取得データ格納先変数の参照(受信側データ要素のデータ型)

AUTOSAR勉強6 RTE,パーティション

# RTE

  • SW-CからAUTOSARプラットフォームを使用するためのAPIを提供するコンポーネント
  • VFBのインターフェースを実現したもの
  • RTEの機能は主に2つ

  • RTE,SW-Cと他SW-Cとの通信処理や排他制御を行う

  • RTEより下位層は、SW-Cからは隠蔽(抽象化)される→どのECUで実行されるかも見えない
  • SW-Cは、ECUに依存せず開発できるので再利用性が向上する

RTE

  • コンフィグレーションの情報に従って母きを実施する
    • SW-CやBSWの実行スケジューリングを制御する
    • 効率的なSW-C間の通信を実現する
    • RTEジェネレータからは、必要なAPIが生成される→RTEの実態は自動生成コードとなる

RTEの状態遷移

RTEの状態

  • 起動前状態、動作状態、停止状態が存在する

    RTE起動

  • 起動前状態から動作状態に遷移する
  • Rte_Start(void)
    • RTEで使用するシステムと通信リソースの割り当て、及び初期化を行う
    • ECU上のSW-Cが動作する各コア上で呼び出して、SW-Cから直接呼び出してはいけない
    • RTE_Main.hで定義され、関数、もしくはマクロで実装される

      RTE停止

  • 動作状態から停止状態に遷移する
  • Rte_Stop(void)
    • 呼び出されたコア上のRTEを終了する
    • Rte_Main.hで定義され、関数もしくはマクロで実装される

パーティション

ランナブルの周期実行

  • まず周期を設定したタイミングイベントを定義
  • ランナブルの起動周期に、タイミングイベントを設定する
  • ベットランナブルに対して、起動オフセットを設定できる
  • 実際の起動周期の実現はOSタスク、OSアラーム機能を使用する
    • ECUのインテグレータが設定する

周期起動の実現方法

  • ECUインテグレータは、以下を決定する
    • 周期起動が必要なランナブルを起動するOSタスク
    • OSタスクを起動するOSオブジェクト
      • OSアラーム
          • 1つの周期で1つのタスクのみ起動可能
      • OSスケジュールテーブル
          • 複数のOSタスクを同時に起動可能
          • 自由なタイムテーブルを定義し、指定した各タイミングでOSタスクを起動可能
  • RTEジェネレータに決定した情報を入力して、ランナブルを起動するOSタスクのコードを生成する

AUTOSAR 勉強5 BSW,SW-C

BSW

RTEからの要求に対して、マイコンを制御するまでの処理を階層構造によって抽象化するためのコンポーネント

SW-C

  • 車載システムの機能の一部(エンジン制御やセンサ監視等)を提供するソフトウェア部品

  • SW-Cは複数のランナブルと呼ばれるアプリケーション処理の単位で構成される。アプリケーション開発者はランナブルを開発する。

  • SW-C 1-1..*ランナブル

  • SW-Cが使用可能なインターフェース

    1. 同一または異なるECU上に配置される他のSW-Cが持つインターフェース
    2. 同一ECU上に配置される(ポートとランナブルを持っている)BSWモジュールが持つインターフェース
  • ポート

  • Sender-Receiver

    • SW-C間でデータの送受信を行う
    • 1:N(またはN:1)の非同期通信
  • Client-Server

    • SW-C間でサービスの呼び出しを行う
    • 通信サービスを要求するクライアント
    • 通信サービスを提供するサーバ
    • N:1の同期通信
同期 非同期
P提供側 サーバ センダ
R利用側 クライアント レシーバ

SW-C開発の注意点

  • アプリケーション(SW-C)からはRTEを利用する
    • VFB(Virtual Functional Bus)によって RTEより下位層は見えない
  • SW-Cでは通信プロトコルは隠蔽される
    • SW-C間の通信はRTEのみで行う
    • ECUとの通信にはCOMスタック(通信用BSW)を使用する
      • COMとの直接的なやりとりはRTE経由で行う

ミッション:インポッシブル 映画感想

最新作「ミッション:インポッシブル/デッドレコニング PART ONE(2023年)」を観た。これを機に1作目から試聴して行こうと思います。現在アマゾンプライムで全作品無料公開中です。

ミッション:インポッシブル(1996年)

記念すべき1作目。顔の変装を撮るシーン、天井からぶら下がるシーン等、ミッション:インポッシブルといえば・・・で思い浮かぶシーンがここから始まったんだなと思った。イーサン・ハント以外の登場人物では、ルーサーやキトリッジが最新作でも継続して登場している。

M:I-2(2000年)

2作目。イーサン・ハントの劣化コピーに残忍性を足したショーン・アンブローズが敵として登場。小物感はありながら、イーサンに変装したり、イーサンの潜入作戦を完璧に読んでいたりと中々いい敵役だった。

M:i:III(2006年)

未視聴

ミッション:インポッシブル/ゴースト・プロトコル(2011年)

未視聴

ミッション:インポッシブル/ローグ・ネイション(2015年)

未視聴

ミッション:インポッシブル/フォールアウト(2018年)

未視聴

ミッション:インポッシブル/デッドレコニング PART ONE(2023年)

ついにイーサン・ハントの相手が今話題のAIに。トム・クルーズのアクションも健在。61歳とは思えない。

AUTOSAR勉強4 スケジュールテーブル

2.13 スケジュールテーブル

  • タスク起動やイベントセットなどの一連の処理を、静的なテーブルに記述されたタイミングで実行するためのOSオブジェクト
  • カウンタに接続し、カウンタによって動作する
  • スケジュールテーブルを使用する利点
    • アラームでは停止とセットの組み合わせで実現しなければならないタスク起動やイベントセットなどの一連の処理を、静的な定義により実現することができる。

2.13.1 スケジュールテーブルの構成要素

要素名 概要
周期 スケジュールテーブルの処理が一回りするティック数
満了点 スケジュールテーブル内で、タスク起動、イベントセットする時刻
スケジュールテーブルは少なくとも一つの満了点を持つ
1つの満了点には、少なくとも一つの満了点処理をもつ
全ての満了点は、一意なオフセットで満了時刻を指定する
満了時刻は、スケジュールテーブルの先頭からのオフセットで指定する
初期オフセット スケジュールテーブルの先頭から、先頭満了点までのティック数
初期オフセットは0か、もしくは接続されたカウンタの最小周期以上、かつカウンタの最大値以下でなくてはならない
遅延 満了点間のティック数
カウンタの最小周期以上、カウンタの最大値以下でなくてはならない
最終遅延 スケジュールテーブルの最終満了点からスケジュールテーブル終端までのティック数
カウンタの最小周期以上、カウンタの最大値以下でなくてはならない
例外として、単発動作指定時のみ、最終遅延を0以上、カウンタの最大値以下としてもよい
スケジュールテーブル時刻 スケジュールテーブルの現在のティック

2.13.2 スケジュールテーブルを制御するカウンタ

  • 駆動カウンタ
    • スケジュールテーブルと接続されたカウンタ
    • OSオブジェクト
  • 同期カウンタ
    • 明示同期スケジュールテーブルで使用する絶対時刻の供給源
    • OSオブジェクトのカウンタではない

2.13.3 スケジュールテーブルの種別 3種

  • 同期なしスケジュールテーブル
    • 同期機能を使用しないスケジュールテーブル
  • 暗黙同期スケジュールテーブル
    • 駆動カウンタと常に同期しているスケジュールテーブル
    • OSは暗黙同期のスケジュールテーブルに対して特別な機能を提供しない
  • 明示同期スケジュールテーブル
    • ユーザが同期カウンタの絶対時刻をOSに供給し、OSが駆動カウンタをと同期カウンタを同期させるスケジュールテーブル

2.13.4 スケジュールテーブルの状態

  • 停止状態
    • スケジュールテーブルを停止している状態
    • 満了点処理は実行されない
  • 動作状態
    • カウンタのティックに従って、満了点処理を実行する状態
    • 同期無しスケジュールテーブルにおいては、満了点処理は実行されるが、同期カウンタとは非同期である
  • 切り替え待ち状態
    • スケジュールテーブルの切り替え待ち要求を受けた状態
    • 具体的には、現在動作しているスケジュールテーブル(A)が、スケジュールテーブルの切り替え要求を受けた際、切り替え後のスケジュールテーブル(B)に指定され、現在動作しているスケジュールテーブル(A)の終了を待っている状態
    • 満了点処理は実行されない
  • 同期待ち状態
    • 明示同期スケジュールテーブルにおいて、同期カウンタのティック供給を待っている状態
    • 満了点処理は実行されない
  • 同期動作状態
    • 明示同期スケジュールテーブルにおいて、駆動カウンタと同期カウンタが同期しており、駆動カウンタのティックに従って満了点処理を実行する状態
    • 暗黙同期スケジュールテーブルにおいては、カウンタのティックに従って満了点処理を実行する状態
  • 動作開始待ち状態
    • スケジュールテーブルの開始要求を受けた後指定されたティックとなるまでの間の状態
    • 状態は動作状態であるが、満了点処理は実行されない

AUTOSAR勉強3 ソフトウェアフリーランタイマ、アラーム

AUTOSAR勉強1 - colagumの日記

上記の続き。ソフトウェアフリーランタイマ、アラームについて

2.11 ソフトウェアフリーランタイマ

  • ソフトウェアフリーランタイマはカウンタにより実現する

  • タイマの初期化

    • OSが直接タイマ操作を行い、GPTドライバが使用しない全てのタイマの初期化と設定を行う。

2.12 アラーム

  • アラームは繰り返し処理を行うためのOSオブジェクトである
  • アラームは別のOSオブジェクトであるカウンタに接続し、カウンタの駆動によって動作する
    • アラームは、接続するカウンタと同一のコアに割り付けられていなければならない。
  • マルチコアOSにおいては、アラームに対する処理を、アラームが所属するOSAPが割り付けられているコアにて実行する

2.12.2 アラーム満了時に実行させるアクション

  • 以下の内1つのみ
    • タスクの起動
      • (※他のコアに割りついたタスクを起動することも可能)
    • イベントのセット
      • (※他のコアに割りついたタスクのイベントをセットすることも可能)
    • アラームコールバックの実行
      • SC1のみ。OS処理レベルで実行される
    • カウンタの駆動
  • これらの処理内容は、ユーザが呼び出すシステムサービスの処理内容と同じ

2023/08/28 復職と「繊細さん」の本

復職

うつ病の状態が軽快してきたので、先生と相談し近く復職していくことになった。
以下を行なっていく必要がある。
- 自分の特性(自閉スペクトラム)を理解して、業務に当たること - 業務について相談できる人を見つけること

「繊細さん」の本

復職に備え、今日は出勤時と同じ時間に、出勤時と同じ服装と持ち物で会社の近くまで行く曝露療法を行なった。
以前のように気分が落ち込んだり、足が止まったりすることは無かった。不安は少し感じる。
その帰りに立ち寄った本屋で「繊細さん」の本を見つけた。

自分が普段感じている生きづらくなる気持ちが文字に表されていた。そして、「そのままでいいんだよ」と言ってもらえているようで、読み進めていくうちに少し楽になった。
その気持ちを持っている人が他にもたくさんいるということもわかった。
その気持ちにはどう対処していけば良いかが具体的に書いてあったので、実践していく。

  • 考えすぎて動けないなら「とりあえず」やってみる
  • 相手にとって100パーセントの正解ではなくても、自分の意見を伝えてみる