バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-network-backnumber/
はじめに
組み込み向けプロトコルスタックの話。
登場人物
博識フクロウのフクさん

イラスト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
組み込み向けプロトコルスタック

で、今回は組み込み向けプロトコルスタックの話だっけ?

うん。
とりあえず、オープンソースでメジャーどころは以下3つだね。
- TINET
- uIP
- lwIP

3つもあるんだ。

それぞれどんな感じなの?
TINET

モノ自体はここから

で、ざっくり説明すると?

TOPPERS協会で公開されてる、
ITRON TCP/IP API仕様に準拠したコンパクトな TCP/IPプロトコルスタック。
FreeBSDのプロトコルスタックをベースにしたもので、
当然ITORON-OSとの親和性は高いね。

ITRONかー。たまに使うけど、TINETは初めて知った。
uIP

次はuIP。
マイクロIPと読む。
モノはここから入手できる。

一応、Wikipediaにのってた情報を拾ってきた。
uIPは、小規模な8ビットまたは16ビットのマイクロコントローラーで使用することを想定したTCP/IPのプロトコルスタックのオープンソースの実装である。 当初Swedish Institute of Computer Scienceにおける”Network Embedded System”グループのAdam Dunkelsによって開発され、BSDスタイルのライセンスでライセンスされた。
Wikipediaより

まぁオープンソースプロトコルスタックとしてはかなり有名なんだけど、
8年前くらいから更新は止まってしまってるね。

あら、そうなんだ。
lwIP

lwIPはLight Weight IPの略。
uIPの作者、Adam Dunkelsさんが最初に手掛けたんで、
uIPの後継と言ってよいだろう。

モノはここから入手できる。

うん。Wikipediaもその作者の名前が出てきてるね。
lwIP (lightweight IP)は、幅広く使用されているオープンソースのTCP/IPのプロトコルスタックの実装であり、組み込みシステム向けに設計されている。 lwIPは、元々はAdam DunkelsによってSwedish Institute of Computer Scienceにおいて開発されていた。 現在は、世界中の開発者のネットワークによって開発されメンテナンスされている。
Wikipediaより

こっちは現在進行形でメンテされつづけてて、
いろんなところで使われてるんじゃないかなー。

そーなの?
例えば?

STマイクロ社が提供しているマイコンライブラリ群のSDKに組み込まれていたり、
NXP社のMCUXpresso SDKに組み込まれてたり、
あとは、Mbedにも組み込まれてるんじゃないかなー。

へー。結構実績多そうだねー。
で、結局どのプロトコルスタックを使う?

で、3つのプロトコルスタックのうちどれを使うつもり?

まぁこの3つの中ではlwIPが安パイかな。
TINETも面白いんだけど、単体利用としてはlwIPの方がやりやすいだろう。

じゃー、次回からlwIPの説明だねー。
まとめ

まとめだよ。
- オープンソースなプロトコルスタック3つを紹介。
- TINET。
- uIP。
- lwIP。
- lwIPを使用予定。
バックナンバーはこちら。
ボッシュ自動車ハンドブック 日本語第4版
CAN入門講座: 組込みマイコンで学ぶCANプロトコルとプログラミング
CANおよびCANopenによる組み込みネットワーク
カーハッカーズ・ハンドブック ―車載システムの仕組み・分析・セキュリティ
車載イーサネット “クルマIT”高度化への基盤技術
詳解 車載ネットワーク -CAN、CAN FD、LIN、CXPI、Ethernetの仕組みと設計のために
自動車用ECU開発入門 システム・ハードウェア・ソフトウェアの基本とAUTOSARによる開発演習 (エンジニア入門シリーズ122)
車載ネットワ-ク・システム徹底解説: CAN,LIN,FlexRayのプロトコルと実装 (Design wave mook)
コメント