CAN

事例

【XCP】最小構成のMBD事例 第2章 その182【PyXCP④】

コンフィグレーションパラメータ(JSON文字列)の作成と読み込みのコードを提示。 readConfigurationにStringIOを渡しているが、拡張子がjsonのファイル名を設定しておく必要あり。 コンフィグレーションを元にXCPマスターの生成。 コンフィグレーションを渡すことでXCPマスターが生成される。
事例

【XCP】最小構成のMBD事例 第2章 その181【PyXCP③】

JSON文字列を再度確認。 それぞれのパラメータについて一気に説明。 使用できるCANインターフェースデバイスは多い。 有名どころは網羅されている。 トランポート層にSxIを指定できる。 SPI、SCI(UART)のことでPyXCPに於いてはCOMポートになる。 と言ってもそれほど利用シーンは無い。
事例

【XCP】最小構成のMBD事例 第2章 その180【PyXCP②】

PyXCPを利用する上で必要なimportを列挙。 設定ファイルがJSONファイルを想定しており、Python内の文字列をファイル 認識されるためにio.StringIOもimport。 StringIOに引き渡すJSONを提示。 比較的自明なパラメータが多いが一部分かり難いものもあるので次回説明。
事例

【XCP】最小構成のMBD事例 第2章 その179【PyXCP①】

Python-CANにXCPの上位プロトコルを載せたPythonLibraryが存在。 その名はそのまんまでPyXCP。 PyXCPのインストールはpip使えばOK。 pip install pyxcp。 PyXCPだけだと疎通確認も取れないからXCP BasicによるPCシミュレーション環境はかなり重要。
事例

【XCP】最小構成のMBD事例 第2章 その178【XCP Basic㉜】

再度DAQパケットを確認。 XCPの一連のコマンド含めてCAN回線ログとして取得。 DAQパケットだけ抽出し、タイムスタンプを確認。 狙い通り10ms周期の送信周期になっていた。 ソースコード等はGithubに上げておいた。 Python側はJupyterNotebook形式。
事例

【XCP】最小構成のMBD事例 第2章 その177【XCP Basic㉛】

DAQパケット送信周期精度改善の方針を決めた。 時間精度を引き上げるためマルチメディアタイマを使用。 1ms精度の過去実績あり。 Sleepを挟んだWhileループをマルチメディアタイマによる1msコールバックに変更。 これに伴い10ms周期だけでなく、イベントチャンネル3も1ms保証ができる。
事例

【XCP】最小構成のMBD事例 第2章 その176【XCP Basic㉚】

DAQパケット送信周期の精度が悪い理由を確認。 イベントチャンネルが15msになってる。 Sleepで10ms周期を作ろうとしているが、実際は15msになってる。 この部分はPC依存な面はある。 上記により小手先の回収ではどうにもならなそう。 一応対策も考えてるので次回確認予定。
事例

【XCP】最小構成のMBD事例 第2章 その175【XCP Basic㉙】

XCP Basic PCシミュレーションの問題点は送信周期。 前回のCAN回線ログのDAQパケットだけを抽出し、それのタイムスタンプと元に現状の送信周期を算出。 10[ms]周期で送信されるべきところが15[ms]になっていた。 一応、原因は分かってはいるので、そこらへんを次回確認予定。
事例

【XCP】最小構成のMBD事例 第2章 その174【XCP Basic㉘】

実際にSET_MTAとDOWNLOADを使ってRAM値書き換えを実施。 RAM値書き換え前にDAQを起動しておき、RAM値書き換えとDAQパケットの状況をCAN回線モニタして確認。 RAM値書き換えに合わせてDAQパケットの計測データが変化。 おおよそXCP Basicの挙動はOKだが、まだちょっと問題がある。
事例

【XCP】最小構成のMBD事例 第2章 その173【XCP Basic㉗】

計測RAM値の変更方法はSET_MTAとDOWNLAOD。 SET_MTAとDOWNLOADの電文確認。 折角なので連続で投げて見る。 ただ、同じ値だと変化が分からない無いのでちょっと書き込みデータを変える。 さらにDAQパケット送出前に書き換えてしまう可能性もあるのでsleep関数を挟む。