ドナドナされるプログラマのメモ

Windows用アプリのプログラミングメモ

CAN dbcファイルのフォーマット (1/2)

CAN dbcファイルのフォーマットについて整理した。

dbcフォーマットの出典は下記ファイル。

http://read.pudn.com/downloads766/ebook/3041455/DBC_File_Format_Documentation.pdf

目次

 

共通項目

unsigned_integer: 符号なし整数。

signed_integer: 符号あり整数。

double: 倍精度浮動小数点。

char_string: "(ダブルクォーテーション)以外の表示可能な文字。"で囲まれている。

C_identifier: 英字または_(アンダースコア、アンダーバー)から始まり英数字又は_を含む文字列。最大128文字だが、最大32文字までしか対応しない古いツールもある。正規表現だと[a-zA-Z_][a-zA-z_0-9]*

オブジェクト

BU_ : ネットワーク上のノードであることを示す。

BO_ : メッセージであることを示す。

SG_ : シグナルであることを示す。

EV_ : 環境変数であることを示す。

書式の文法

各項目の書式は、以下の文法に従い記述する。

= : 等号の左側にある語を、等号の右側にある文で定義する。

; (セミコロン) : 定義の文末を示す。

| (垂直な棒) : or の意味。

[ ... ] : ...部分はオプション。すなわち、...部分は0または1個あればよい。

{ ... } : ...部分は複数。すなわち、...部分は0または1個以上ある。

( ... ) : 要素のグループを示す。

' ... ' : ...部分は変数ではない。...の通りにdbcファイルに書く必要がある。

(* ... *) : コメント。

DBCファイルの構造

DBCファイルはヘッダおよび本体から成る。

ヘッダ

以下の項目を含む。

VERSION : オプション。

_NS:new_symbols. オプション。

本体

他の項目から成る。以下の項目を含む。

BS_ : bit_timing. 廃止された使われない項目だが、dbcファイルに必須。

BU_ : ノード定義。必須。

VAL_TABLE_ : 値から文字列へのグローバルな変換テーブル。めったに使われない。オプション。

BO_ : メッセージの定義。シグナルの定義であるSG_を含む。必須。

BO_TX_BU_ : メッセージ送信ノードの定義。上位プロトコルで使われることがある。オプション。

VAL_ (1回目) : シグナルまたは環境変数の値から文字列への変換テーブル。この段階ではシグナルのものしか定義できない。オプション。

EV_ : 環境変数の定義。オプション。

ENVVAR_DATA_ : 環境変数のデータサイズ。オプション。

VAL_ (2回目) : シグナルまたは環境変数の値から文字列への変換テーブル。この段階なら環境変数のものも定義できる。オプション。

SGTYPE_ (1回目): シグナルの共通プロパティを定義する。通常使われない。オプション。

CM_ : 各種オブジェクト(ノードとかメッセージとかシグナルとか)のコメントを定義する。オプション。

BA_DEF_ : ユーザー定義属性の定義。オプション。

BA_ : ユーザー定義属性の値を設定する。オプション。

SGTYPE_ (2回目): シグナルの共通プロパティを定義する。通常使われない。オプション。

 SIG_GROUP_ : シグナルの集合を定義する。通常使われない。オプション。

 各項目の書式

次回へ続く(共通項目とは別ページのほうが見やすかったので・・・)。

donadona.hatenablog.jp