通信プロトコル

概要

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

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

通信方式

方式RS-232C
ビット8bit
パリティなし
フローなし
ボーレート2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400bps

パケットの基本構造

  • 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なし(データサイズとチェックサムだけ返ってくる)
0x00010x00CPU Resetなし (応答しない)
0x00020x00EEPROM初期化0x00なし(データサイズとチェックサムだけ返ってくる)
基板情報を取得するコマンド群
0x00100x00基板名ncharASCIIコード
0x00110x00基板バージョンncharASCIIコード
0x00120x00基板ロット番号0x02unsigned int
0x00130x00基板シリアル番号0x02unsigned int
0x00180x00ファームウェア名ncharASCIIコード
0x00190x00ファームウェアバージョンncharASCIIコード
0x001A0x00プロトコルバージョンncharASCIIコード
日時を取得/設定するコマンド群
0x00200x00現在時を得る0x01unsigned char
0x00210x00現在分を得る0x01unsigned char
0x00220x00現在秒を得る0x01unsigned char
0x00230x00現在ミリ秒を得る0x02unsigned int
0x00280x01unsigned char現在時を設定する0x00なし(データサイズとチェックサムだけ返ってくる)
0x00290x01unsigned char現在分を設定する0x00なし(データサイズとチェックサムだけ返ってくる)
0x002A0x01unsigned char現在秒を設定する0x00なし(データサイズとチェックサムだけ返ってくる)
0x002B0x02unsigned int現在ミリ秒を設定する0x00なし(データサイズとチェックサムだけ返ってくる)
スイッチを取得するコマンド群
0x00300x00スイッチ1を得る0x01unsigned charスイッチFIFOから、ボタンの押下(立下りエッジ)状態 0/1 を得る
0x00310x00スイッチ2を得る0x01unsigned charスイッチFIFOから、ボタンの押下(立下りエッジ)状態 0/1 を得る
ギア比を取得/設定するコマンド群
0x00400x00最終減速比0x02unsigned int(0 to 65535) / 1000
0x00410x001速0x02unsigned int(0 to 65535) / 1000
0x00420x002速0x02unsigned int(0 to 65535) / 1000
0x00430x003速0x02unsigned int(0 to 65535) / 1000
0x00440x004速0x02unsigned int(0 to 65535) / 1000
0x00450x005速0x02unsigned int(0 to 65535) / 1000
0x00460x006速0x02unsigned int(0 to 65535) / 1000
0x00470x007速0x02unsigned int(0 to 65535) / 1000
0x00480x02unsigned int(0 to 65535) / 1000 最終減速比0x00なし(データサイズとチェックサムだけ返ってくる)
0x00490x02unsigned int(0 to 65535) / 1000 1速0x00なし(データサイズとチェックサムだけ返ってくる)
0x004A0x02unsigned int(0 to 65535) / 1000 2速0x00なし(データサイズとチェックサムだけ返ってくる)
0x004B0x02unsigned int(0 to 65535) / 1000 3速0x00なし(データサイズとチェックサムだけ返ってくる)
0x004C0x02unsigned int(0 to 65535) / 1000 4速0x00なし(データサイズとチェックサムだけ返ってくる)
0x004D0x02unsigned int(0 to 65535) / 1000 5速0x00なし(データサイズとチェックサムだけ返ってくる)
0x004E0x02unsigned int(0 to 65535) / 1000 6速0x00なし(データサイズとチェックサムだけ返ってくる)
0x004F0x02unsigned int(0 to 65535) / 1000 7速0x00なし(データサイズとチェックサムだけ返ってくる)
タイヤサイズを取得/設定するコマンド群
0x00500x00タイヤ幅0x02unsigned int(0 to 65535) mm
0x00510x00扁平率0x01unsigned char(0 to 255) %
0x00520x00直径0x01unsigned char(0 to 255) Inch
0x00580x02unsigned int(0 to 65535) mm タイヤ幅なし(データサイズとチェックサムだけ返ってくる)
0x00590x01unsigned char(0 to 255) % 扁平率なし(データサイズとチェックサムだけ返ってくる)
0x005A0x01unsigned int0 to 255) Inch 直径なし(データサイズとチェックサムだけ返ってくる)
現在値を取得するコマンド群
0x10000x00車速0x02unsigned int(0 to 65535) km/h
0x10010x00エンジン回転数0x02unsigned int(0 to 65535) rpm
0x10020x00スロットル0x01unsigned char(0 to 100) %
0x10030x00ブースト圧0x02int(-32768 to 32767) / 1000 kg/cm^2
0x10040x00水温0x02int(-32768 to 32767) C
0x10050x00吸気温0x02int(-32768 to 32767) C
0x10060x00バッテリ電圧0x01unsigned char(0 to 255) / 10 V
0x10070x00Mass Air Flow0x02unsigned int(0 to 65535) / 100
0x10080x00A/F0x02unsigned int(0 to 65535) / 100
0x10090x00イグニッション0x02int(-32768 to 32767) / 100 deg
0x100A0x00ノッキング0x02int(-32768 to 32767) / 100 deg
0x100B0x00瞬間燃費0x02unsigned int(0 to 65535) / 100 km/h
0x100C0x00シフトポジション0x01unsigned char(0 to 255) Shift
0x100D0x00X軸加速度0x02int(-32768 to 32767) / 1000 G
0x100E0x00Y軸加速度0x02int(-32768 to 32767) / 1000 G
0x100F0x00Z軸加速度0x02int(-32768 to 32767) / 1000 G
最大値を取得するコマンド群
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シフトポジション

データタイプ

INTEGER

TypeBitsMinMax
char8-128127
unsigned char80255
int16-3276832767
unsigned int16065535
long32-2^312^31 -1
unsigned long3202^32 -1

FLOATING POINT

  • IEEE-754
TypeBitsE MinE MaxN MinN Max
float, double32-1261272^-1262^128

History

Rev.0 2008/12/--

  • 初版作成