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_ : シグナルの集合を定義する。通常使われない。オプション。
各項目の書式
次回へ続く(共通項目とは別ページのほうが見やすかったので・・・)。