通信プロトコル

概要

 SSMプロトコルによって得られる ECUデータのほかに、基板に実装された加速度センサ、LED、スイッチなどのデータをやりとりするためのものである。SSMのパケットをカプセル化するのではなく、独自仕様のプロトコルに変換する。

 
  • ハンドシェイク方式
  1. ホスト(PC)がコマンドを送信する
  2. 基板が応答する

通信方式

方式RS-232C
ビット8bit
パリティなし
フローなし
ボーレート38400 to 460800bps

パケットの基本構造

  • Simple is Best (^^;
  • Big Endian

送信(PC)側

アドレスMSB/LSBデータ
0MSBコマンド
1LSBコマンド
2データサイズ (n = 0 to 255)
3 + nチェックサム

応答(基板)側

アドレスMSB/LSBデータ
0データサイズ (n = 0 to 255)
1 + nチェックサム

コマンドリスト

  • 未実装のコマンドは無視する
送信(PC)側応答(基板)側
コマンド番号データサイズ取得データ名称データサイズデータ型応答、単位など
0x00000x00Ping0x00なし(データサイズとチェックサムだけ返ってくる)
基板情報を取得するコマンド群
0x01000x00基板名NcharASCIIコード
0x01010x00基板バージョン(リビジョン)NcharASCIIコード
0x01020x00基板ロット番号0x02unsigned int
0x01030x00基板シリアル番号0x02unsigned int
0x01100x00ファームウェア名NcharASCIIコード
0x01110x00ファームウェアバージョン(リビジョン)NcharASCIIコード
日時を取得/設定するコマンド群
0x01200x00現在時を得る1unsigned char
0x01210x00現在分を得る1unsigned char
0x01220x00現在秒を得る1unsigned char
0x01230x00現在ミリ秒を得る2unsigned int
0x01280x01現在時を設定する1unsigned char
0x01290x01現在分を設定する1unsigned char
0x012a0x01現在秒を設定する1unsigned char
0x012b0x02現在ミリ秒を設定する2unsigned int
現在値を取得するコマンド群
0x10000x00車速0x02unsigned int0 to 65535 km/h
0x10010x00エンジン回転数
0x10020x00スロットル
0x10030x00ブースト圧
0x10040x00水温
0x10050x00吸気温
0x10060x00バッテリ電圧
0x10070x00Mass Air Flow
0x10080x00A/F
0x10090x00イグニッション
0x100A0x00ノッキング
0x100B0x00瞬間燃費
0x100C0x00シフトポジション
最大値を取得するコマンド群
0x20000x00車速0x02unsigned int0 to 65535 km/h
0x20010x00エンジン回転数
0x20020x00スロットル
0x20030x00ブースト圧
0x20040x00水温
0x20050x00吸気温
0x20060x00バッテリ電圧
0x20070x00Mass Air Flow
0x20080x00A/F
0x20090x00イグニッション
0x200A0x00ノッキング
0x200B0x00瞬間燃費
0x200C0x00シフトポジション
最小値を取得するコマンド群
0x30000x00車速0x02unsigned int0 to 65535 km/h
0x30010x00エンジン回転数
0x30020x00スロットル
0x30030x00ブースト圧
0x30040x00水温
0x30050x00吸気温
0x30060x00バッテリ電圧
0x30070x00Mass Air Flow
0x30080x00A/F
0x30090x00イグニッション
0x300A0x00ノッキング
0x300B0x00瞬間燃費
0x300C0x00シフトポジション

History

Rev.0 2008/12/06

  • 初版作成