【XCP】最小構成のMBD事例 第2章 その206【AUTOSAR⑫】

【XCP】最小構成のMBD事例 第2章 その206【AUTOSAR⑫】 事例
【XCP】最小構成のMBD事例 第2章 その206【AUTOSAR⑫】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回は メモリアクセス系としてSET_MTA、UPLOAD、DOWNLOADを実施。
問題無く動作しているのは確認。

今回はXCP魔境のDAQ系に突入。
特に目的のSTIM用のDAQ listも追加していくことになる。
(「STIM用」として確定するのはまだあと。)

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

AUTOSAR-XCPのDAQ設定系コマンドの動作確認

太郎くん
太郎くん

次はDAQ設定関連になるね。

太郎くん
太郎くん

これも一気にやっちゃう感じ?

フクさん
フクさん

まぁ一気にやるんだけど、
一点違いがあって、
STIM用のDAQ listを追加してあげる必要がある。

太郎くん
太郎くん

そうか。
STIMもDAQ listが必要なのか。

フクさん
フクさん

というわけで、以前はDAQ list1個でやってきたが、
今回は
DAQ用に1個
STIM用に1個
合計2個を用意することになる。

DAQ設定系コマンド

フクさん
フクさん

というわけで一気にDAQ設定。

# DAQリストの構築
xm.freeDaq();
xm.allocDaq(2);
xm.allocOdt(0, 1); # DAQ用
xm.allocOdt(1, 1); # STIM用
xm.allocOdtEntry(0, 0, 1); # DAQ用
xm.allocOdtEntry(1, 0, 1); # STIM用
フクさん
フクさん

そしてCAN回線ログ。

# FREE_DAQ
 0.314081 1  1               Rx   d 1 D6
 0.314475 1  2               Rx   d 1 FF

# ALLOC_DAQ
 0.344465 1  1               Rx   d 4 D5 00 02 00
 0.345383 1  2               Rx   d 1 FF

# ALLOC_ODT
 0.383951 1  1               Rx   d 5 D4 00 00 00 01
 0.385327 1  2               Rx   d 1 FF
 0.393552 1  1               Rx   d 5 D4 00 01 00 01
 0.394265 1  2               Rx   d 1 FF

# ALLOC_ODT_ENTRY
 0.432202 1  1               Rx   d 6 D3 00 00 00 00 01
 0.433177 1  2               Rx   d 1 FF
 0.449774 1  1               Rx   d 6 D3 00 01 00 00 01
 0.452092 1  2               Rx   d 1 FF

ODT_ENTRYへの書き込み

太郎くん
太郎くん

そのままODT_ENTRYへの書き込みを済ませてしまおう。

DaqEntry = namedtuple("DaqEntry", "daq odt entry bitoff size ext addr")
de0 = (
    DaqEntry(daq=0, odt=0,  entry=0, bitoff=255, size=4, ext=0xff, addr=0x00000004),
    DaqEntry(daq=1, odt=0,  entry=0, bitoff=255, size=4, ext=0xff, addr=0x00000004),
)

for daq, odt, entry, bitoff, size, ext, addr in de0:
    xm.setDaqPtr(daq, odt,  entry)
    xm.writeDaq(bitoff, size, ext, addr)
太郎くん
太郎くん

そういえば、
DAQ listを管理し易いようにnamedtupleでODT_ENTRYを管理してたね。
以前やっておいて良かった。

太郎くん
太郎くん

ODT_ENTRYもCAN回線ログを確認しておこう。

# SET_DAQ_PTR
 0.503521 1  1               Rx   d 6 E2 00 00 00 00 00
 0.505135 1  2               Rx   d 1 FF

# WRITE_DAQ
 0.513401 1  1               Rx   d 8 E1 FF 04 FF 04 00 00 00
 0.516555 1  2               Rx   d 1 FF

# SET_DAQ_PTR
 0.529457 1  1               Rx   d 6 E2 00 01 00 00 00
 0.530956 1  2               Rx   d 1 FF

# WRITE_DAQ
 0.544367 1  1               Rx   d 8 E1 FF 04 FF 04 00 00 00
 0.547209 1  2               Rx   d 1 FF
太郎くん
太郎くん

うん。
これも問題ないだろう。

太郎くん
太郎くん

ここでエラーが出てないってことはSTIMがOKってことになるのかな?

フクさん
フクさん

いや、まだDAQ listを構築しただけで、
これがDAQで使われるか、STIMで使われるかは指定してないので、
まだSTIMがOKかはわからない。
って状態。

太郎くん
太郎くん

そっか。
確かSET_DAQ_LIST_MODEってのでDAQ listの性格を決定させるのがあったから
そこでやるのか

フクさん
フクさん

そうそう。
その通り。

まとめ

フクさん
フクさん

まとめだよ。

  • AUTOSAR-XCPのDAQ設定系コマンドの動作確認。
    • FREE_DAQ、ALLOC_DAQ、ALLOC_ODT、ALLOC_ODT_ENTRYを一気に確認。
  • ODT_ENTRYへの書き込み実施。
    • SET_DAQ_PTR、WRITE_DAQを確認。
  • この段階のDAQ listはDAQかSTIMかの利用方法の指定はしていない。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました