chevron_left

メインカテゴリーを選択しなおす

cancel
KEI
フォロー
住所
未設定
出身
未設定
ブログ村参加

2020/02/11

arrow_drop_down
  • 【XCP】最小構成のMBD事例 第2章 その238【CAN-FD⑮】

    STIMの送信レイアウト調整した。 int.to_bytesを使用指定していたので一撃で修正完了。 STIM送信時のrawデータ変換(浮動小数点→1/65536)を実施。 xcp_canのテストコードとしては送信データをリスト管理しているだけなので、そのリスト修正するのみ。 仮想HILS修正時に要注意。

  • 【XCP】最小構成のMBD事例 第2章 その237【CAN-FD⑭】

    DAQ listのODT_ETNRYのデータ長変更(16bit→32bit)。 namedtupleを使用していたので修正は楽。 DAQの受信レイアウト調整。 int.from_bytesを使用してるので16bitから32bitへの変更は楽。 DAQ受信データの物理値変換(1/65536→浮動小数点)。

  • 【XCP】最小構成のMBD事例 第2章 その236【CAN-FD⑬】

    xcp_canクラス改造箇所を整理。 予想以上に多いが、仮想HILSにXCPの都合を見せないための部分なので修正内容が集中し易い。 コンフィグレーション用のJSON記述の修正。 事前のPyXCP CAN-FD実験を元に修正。 SERIALを消して、FDとDATA_BITRATEと追加。

  • 【XCP】最小構成のMBD事例 第2章 その235【CAN-FD⑫】

    PyXCP Version0.16.5にてCAN-FDの動作確認。 UPLOAD、DOWNLOAD、DAQ、STIMを確認。 基本的にOK。 PyXCP側からのCAN-FDはBitrate_switchが無効になっているが、現状のPyXCPの仕様上やむを得ない。 この結果を元にxcp_canクラスを改造予定。

  • 【XCP】最小構成のMBD事例 第2章 その234【CAN-FD⑪】

    PyXCP Version0.16.5にてCAN-FDの動作確認再開。 まずはコンフィグレーション用JSON記述を修正。 SERIALパラメータを削除。 SERIALパラメータはデバイスの製品シリアルを指定するもの。 CAN-FD対応有無を判断しているようで、この判定でCAN-FD不可側になってるように見える。

  • 【XCP】最小構成のMBD事例 第2章 その233【CAN-FD⑩】

    PyXCPのVersion別CAN-FD対応状況を確認。 かなり、いろいろ変化してい居る。 SERIALパラメータがあると、CAN-FDフレーム送信でエラーが発生する。 よって、現時点では0.16.5のVersionを使用する。 CAN-FDフレーム送信可能、DLC可変。

  • 【XCP】最小構成のMBD事例 第2章 その232【CAN-FD⑨】

    PyXCPのCAN-FD対応の動作確認の結果を確認。 一見するとうまく動いているように見える。 が、どうやらPyXCP側からの送信フレームがCAN-FDになっていない。 少なくともCAN-FDフレームの受信はできている。 PyXCPもVersionがあるので、Version別の挙動を確認してみる。

  • 【XCP】最小構成のMBD事例 第2章 その231【CAN-FD⑧】

    PyXCPのCAN-FD対応はコンフィグレーションのJSON記述部分だけではあるが、動作確認用に修正する部分もある。 UPLOAD、DOWNLOADのサイズ。 DAQ listのODTのサイズ。 上記の方針に合わてコード修正実施。 DAQ listはODT_ENTRYの数を増やした。

  • 【XCP】最小構成のMBD事例 第2章 その230【CAN-FD⑦】

    xcp_canクラスのCAN-FDに関係する部分を確認。 要はPyXCPをCAN-FD対応にする部分。 コンフィグレーションのJSON記述を修正すればOKっぽい。 ソースコードからのリバースエンジニアリングによる調査結果。 本当合ってるか不安なのでJupyterNoteBookで動作確認を先に実施予定。

  • 【XCP】最小構成のMBD事例 第2章 その229【CAN-FD⑥】

    指令器の修正範囲を確認。 CANがCAN-FDに変えることから逆算して特定。 バス初期化とメッセージ構築の部分。 バス初期化はCAN-FD有効化とDataRateの設定。 メッセージ構築はCAN-FD化とbitrate_switch有効。 bitrate_switch無効でもOKだがbitrateは切り替わらない。

  • 【XCP】最小構成のMBD事例 第2章 その228【CAN-FD⑤】

    仮想ECU側のPID制御の入出力定義はポインタで実施。 元々が符号付き16bit変数へのポインタだったのでこれを符号付き32bit長変数に差し替え。 上記に伴い、参照先のアドレス境界を16bitから32bitに切替。 PID制御器の入力はfloat64で、参照変数が16bitか32bitかは気にしなくてもOKなコード。

  • 【XCP】最小構成のMBD事例 第2章 その227【CAN-FD④】

    AUTOSAR-XCPのパケット長変更を実施。 MAX_CTOとMAX_DTOを8から64に変更すればOK。 CTO、DTOについては過去記事で復習。 念のためCANFD_SUPPORTで#ifdefで切り分けられるようにしておく。

  • 【XCP】最小構成のMBD事例 第2章 その226【CAN-FD③】

    AUTOSAR-XCPのCAN-FD対応に向けての方針を決める。 CanIf相当の部分とXCPのパケット長のところを修正する必要あり。 といってもCanIf相当の部分は実はすでにCAN-FD対応済み CAN-FD対応の際はDLCの仕様の特殊さに注意する必要がある。 8以下の時と8を超えた時で雰囲気が変わる。

  • 【XCP】最小構成のMBD事例 第2章 その225【CAN-FD②】

    XCPonCAN-FDに対応すべく現状の仮想ECU、仮想HILS構成を再確認。 CANのところをCAN-FD化。 XCP経由で変数のやり取りをしている部分を32bit化。 改造方針と同時に動作確認手段も模索する必要あり。 python-can、PyXCPを駆使すればなんとかなりそうという当たりだけ付けた。

  • 【振り返り】ブログ開設二周年記念記事【技術ブログのPV数と収益】

    祝2周年。 記事数は740オーバー。 技術ブログとしてのアクセス数と収益の話。 集客力は低くとも、放置しても集客し続けるネタってのもたぶんアリ。 「最小構成のMBD事例 第2章」のシリーズがずっと続いていた。 今後は数値解析系や問答系記事のまとめ記事を書くかも。

  • 【XCP】最小構成のMBD事例 第2章 その224【CAN-FD①】

    XCPonCANとしての課題を明確化。 CANのデータフィールド8byteの仕様がODTの限界値を決めていた。 よって、データフィールドが長くなれば解決と言える。 CANのデータフィールドの上限が8byteに対し、CAN-FDは64byte。 よって、4byte、3変数が載っても十分な長さ。

  • 【XCP】最小構成のMBD事例 第2章 その223【仮想HILS⑥】

    ついに仮想ECUと仮想HILSの連携動作。 とりあえず動いたんで録画してYoutubeに上げた。 想定よりもキレイだはあるが、やはりカクついている。 カクついている原因は変数の精度も含まれているかもしれない。 変数を32bit長にすることで精度を上げられるがODTを増やす必要がある。 CAN-FDを使うと・・・。

  • 【XCP】最小構成のMBD事例 第2章 その222【仮想HILS⑤】

    構成がややこしいことになってきたので仮想ECUと仮想HILSの実験構成を再確認。 ネットワーク構成と論理的構成を確認。 論理的構成はModelicaモデルベースでシンプルだが、ネットワーク構成は各信号をCANやXCPに変えてるため複雑化。 このようにノードを分割しておくと部分的に実物に差し替えるなどがし易くなる。

  • 【XCP】最小構成のMBD事例 第2章 その221【仮想HILS④】

    ついに仮想HILSのPythonコード完成。 基本的には前回までの修正内容を盛り込んだだけ。 指令値取得用のCANバス初期化の位置を先頭から実処理の前に移動。 XCP関連のCANフレームがFIFOに詰まれてしまうため、それを避ける目的で移動。 使用する前にFIFOクリアしてもOK。

  • 【XCP】最小構成のMBD事例 第2章 その220【仮想HILS③】

    XCP関連の処理を追加。 基本xcp_canクラスを呼び出すだけ。 DAQ受信とSTIM送信はFMU処理が実装してあるFMU_handler内で呼び出す。 DAQ受信はFMU処理直前。 STIM送信はFMU処理直後。 これにより、仮想ECU側の変数と仮想HILS側のシグナルの同期が取れる。

  • 【XCP】最小構成のMBD事例 第2章 その219【仮想HILS②】

    DummyFMU化したPID制御の辻褄合わせを実施。 Dummy_FMUModelCS2のdo_stepメソッドをオーバーライドすればOK。 do_stepをdp_pidとして実装。 do_pid関数内部でPID.fmuの変わりに出力を決定する仕掛け。 このように入出力の辻褄合わせをすればOK。

  • 【XCP】最小構成のMBD事例 第2章 その218【仮想HILS①】

    再びPyFMIを使うということでPyFMI関連の復習。 過去記事のリンクを貼っておいた。 PIDのFMUをDummy_FMUModel化実施。 FMUModelCS2でロードしていたものをDummy_FMUModelCS2でロードするに変えるだけ。 当然、これに伴う変更もあるが。

  • 【仮想ECU】最小構成のMBD事例 第2章 その217【PID制御⑧】

    DAQリスナーの動作確認実施。 問題無く動作した。 やや表示範囲が有ってないが次に作る「HILSもどき」向けの設定になってる。 「HILSもどき」改め「仮想HILS」と命名変更。 仮想HILS作成に向けてのロードマップ確認。 下位レイヤの動作が先に保証済みになっていると計画が立てやすい。

  • 【仮想ECU】最小構成のMBD事例 第2章 その216【PID制御⑦】

    DAQリスナーのPythonコードを開示。 基本的にはPython-canで受信。 DAQパケットならば取り込む。 上記を元にmatplotlibで描画。 波形表示はリアルタイムではあるが負荷低減のため0.2秒周期。 ここらへんの描画負荷の事情はHILSもどきの時と一緒。

  • 【仮想ECU】最小構成のMBD事例 第2章 その215【PID制御⑥】

    HILSもどきの前にDAQパケットを取得して波形表示する機能が必要。 仮想ECU側の内部変数を表示することが目的。 DAQパケットはECU側の計測値なので、内部変数と解釈しても差し支えない。 上記機能はDAQリスナと命名。 DAQリスナの実験構成を図示した。 横からCANを覗き見るだけのシンプルな機能。

  • 【仮想ECU】最小構成のMBD事例 第2章 その214【PID制御⑤】

    仮想ECU側のPID制御器の入出力する信号の種類を確認。 実際にXCPのDAQ、STIMを実施して制御状態を計測。 想定通りの挙動になっていた。 CAN回線モニタを確認。 DAQとSTIMの目標値、実施のレイアウトを合わせていたので、縦に慣れべることで挙動が推測できる。

  • 【仮想ECU】最小構成のMBD事例 第2章 その213【PID制御④】

    PID制御器動作確認用Pythonコードを開示。 コンフィグレーション、XCPマスター生成、DAQ起動、計測、書き換えを隠蔽している。 エントリポイントとして起動した際は簡単なXCP通信をしてXCPスレーブの挙動が見れる。 ライブラリとして呼び出すことも可能。 こんな感じのちょっとずづの積み上げが割と重要。

  • 【仮想ECU】最小構成のMBD事例 第2章 その212【PID制御③】

    PID制御器の動作確認方法としてPyXCPを使う。 HILSもどきから使用することを想定してクラス化。 クラス化は目的次第で隠蔽する度合いが変化する。 つまり何をサボりたいかが動機になり易い。 エントリーポイントとして呼び出すかライブラリで呼び出すかで振る舞いを変えると便利。 単体テストをする場合はエントリーポイント。

  • 【仮想ECU】最小構成のMBD事例 第2章 その211【PID制御②】

    PID制御器のコードを用意した。 過去に使用したものを今回向けに修正したもの。 ecu_t10ms_job関数で10ms周期で処理。 ecu_init関数で初期化処理。 変数の初期化を実施。 コンパイルが通ることのみ確認済み。 動作確認にPyXCPを使用するが具体手なコードは次回以降に説明。

  • 【仮想ECU】最小構成のMBD事例 第2章 その210【PID制御①】

    仮想ECUを作るべくAUTOSAR-XCPに制御器を組み込む必要がある。 PID制御器は過去記事で作ったものを流用予定。 制御周期はとりあえず、10msあたりにしておく。 PID制御器の動作確認はXCP経由で入出力を制御することで実施する予定。 PID制御器自体のソースコードは以前、SILS等で確認済み。

  • 【XCP】最小構成のMBD事例 第2章 その209【AUTOSAR⑮】

    AUTOSAR-XCPのSTIMの気になる点がある。 STIMパケットに対してRESパケットが発行されている点。 仕様書上は、RESパケット応答に関する振る舞いは明記されていなかった。 恐らくデファクトスタンダード的な仕様が紛れている。 上記は何が正しいというのは恐らくない。 こういうものがあるということに気を付ける。

arrow_drop_down

ブログリーダー」を活用して、KEIさんをフォローしませんか?

ハンドル名
KEIさん
ブログタイトル
シミュレーションの世界に引きこもる部屋
フォロー
シミュレーションの世界に引きこもる部屋

にほんブログ村 カテゴリー一覧

商用