【Ethernet】車載ネットワーク その28【lwIP④】

車載ネットワーク

バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-network-backnumber/

はじめに

lwIPをPC上で無理やり動作させる準備の話。

登場人物

博識フクロウのフクさん

イラスト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

lwIPを利用するコード

太郎くん
太郎くん

今回はlwIPを利用するためのコーディングの話だっけ?

フクさん
フクさん

そうだね。

太郎くん
太郎くん

大雑把に言うとどんな感じになるのかな?

フクさん
フクさん

今回の目的に合わせると
以下の流れになるね。

  • lwIP自身の初期化
  • ネットワークインターフェースの追加
  • マルチキャストグループの参加
  • ネットワークインターフェースの初期化
  • リンクアップ
  • UDP Socket生成
  • IPアドレス、ポートへのBind
  • UDP受信待ち
  • EthnertFrameの疑似受信

一般的なSocketとの違い

太郎くん
太郎くん

結構あるなー。
てっきり
「Socket生成して受信待ちすればOK」
くらいかと思ってたよー。

フクさん
フクさん

まぁ一般的なSocketだと、
ネットワーク関連の初期化はOS側ですべて済んでることが前提になってるからねー。

太郎くん
太郎くん

あ、そうか!
組み込み用プロトコルスタックだから、
ネットワーク関連の初期化もしないとだめなのかー。

フクさん
フクさん

その通り。
本来はOSで自動でやってもらうことも
自分でやらないといけない組み込み系の宿命だねー。

太郎くん
太郎くん

確かに組み込み系をやってるとOSのありがたみってのは良く分かるよねぇ。

今後の方針

太郎くん
太郎くん

今後の方針としては、
フクさんの言う流れにそって説明って感じかな。

フクさん
フクさん

そうだね。
まぁソースコード自体はそんなに大きくはならないけど、
何やってるかは説明した方がよいかな。

太郎くん
太郎くん

1手順1関数ってイメージかな?

フクさん
フクさん

ほぼそうだね。
だから、lwIPのAPIの内、
今回やりたいことに必要なものに限定して説明していくような感じになると思うよ。

IPフラグメントは?

太郎くん
太郎くん

そういえば、IPフラグメントが出てきてないけど?

フクさん
フクさん

あー、IP層はデフォルトで組み込まれてるから特に気にせずに疑似受信させれば良いと思うよ。

太郎くん
太郎くん

つまり、
IPフラグメントはIP層の仕様として組み込まれてるから
今回のコード上では特に気にしなくて良いってことか。

フクさん
フクさん

そうそう。

フクさん
フクさん

次回からlwIPのAPIについて説明だね。

まとめ

フクさん
フクさん

まとめだよ。

  • lwIPの制御手順概要を説明。
  • 一般的なSocketと違ってネットワーク関連の初期化も必要。
  • IPフラグメントはIP層の仕様に組み込まれているので利用側は特に何もしなくてOK。

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

コメント

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