- バックアップ一覧
- ソース を表示
- Products/G-SSM65/BinaryProtocol は削除されています。
  
 
通信プロトコル  †
概要  †
 SSMプロトコルによって得られる ECUデータのほかに、基板に実装された加速度センサ、LED、スイッチなどのデータをやりとりするためのものである。SSMのパケットをカプセル化するのではなく、独自仕様のプロトコルに変換する。
 
- ホスト(PC)がコマンドを送信する
- 基板が応答する
通信方式  †
| 方式 | RS-232C | 
| ビット | 8bit | 
| パリティ | なし | 
| フロー | なし | 
| ボーレート | 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400bps | 
パケットの基本構造  †
- Simple is Best  
- Big Endian
送信(PC)側  †
| アドレス | MSB/LSB | データ | 
| 0 | MSB | コマンド | 
| 1 | LSB | コマンド | 
| 2 |  | データサイズ (n = 0 to 255) | 
|  |  |  | 
| 3 + n |  | チェックサム | 
応答(基板)側  †
| アドレス | MSB/LSB | データ | 
| 0 |  | データサイズ (n = 0 to 255) | 
|  |  |  | 
| 1 + n |  | チェックサム | 
コマンド  †
- 未実装のコマンドは、応答しない...  
コマンドリスト  †
| 送信(PC)側 |  | 応答(基板)側 | 
| コマンド番号 | データサイズ | データ型 | 取得データ名称 |  | データサイズ | データ型 | 応答、単位など | 
| 0x0000 | 0x00 |  | Ping |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 0x0001 | 0x00 |  | CPU Reset |  |  |  | なし (応答しない) | 
| 0x0002 | 0x00 |  | EEPROM初期化 |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 基板情報を取得するコマンド群 | 
| 0x0010 | 0x00 |  | 基板名 |  | n | char | ASCIIコード | 
| 0x0011 | 0x00 |  | 基板バージョン |  | n | char | ASCIIコード | 
| 0x0012 | 0x00 |  | 基板ロット番号 |  | 0x02 | unsigned int |  | 
| 0x0013 | 0x00 |  | 基板シリアル番号 |  | 0x02 | unsigned int |  | 
| 0x0018 | 0x00 |  | ファームウェア名 |  | n | char | ASCIIコード | 
| 0x0019 | 0x00 |  | ファームウェアバージョン |  | n | char | ASCIIコード | 
| 0x001A | 0x00 |  | プロトコルバージョン |  | n | char | ASCIIコード | 
| 日時を取得/設定するコマンド群 | 
| 0x0020 | 0x00 |  | 現在時を得る |  | 0x01 | unsigned char |  | 
| 0x0021 | 0x00 |  | 現在分を得る |  | 0x01 | unsigned char |  | 
| 0x0022 | 0x00 |  | 現在秒を得る |  | 0x01 | unsigned char |  | 
| 0x0023 | 0x00 |  | 現在ミリ秒を得る |  | 0x02 | unsigned int |  | 
| 0x0028 | 0x01 | unsigned char | 現在時を設定する |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 0x0029 | 0x01 | unsigned char | 現在分を設定する |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 0x002A | 0x01 | unsigned char | 現在秒を設定する |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 0x002B | 0x02 | unsigned int | 現在ミリ秒を設定する |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| スイッチを取得するコマンド群 | 
| 0x0030 | 0x00 |  | スイッチ1を得る |  | 0x01 | unsigned char | スイッチFIFOから、ボタンの押下(立下りエッジ)状態 0/1 を得る | 
| 0x0031 | 0x00 |  | スイッチ2を得る |  | 0x01 | unsigned char | スイッチFIFOから、ボタンの押下(立下りエッジ)状態 0/1 を得る | 
| ギア比を取得/設定するコマンド群 | 
| 0x0040 | 0x00 |  | 最終減速比 |  | 0x02 | unsigned int | (0 to 65535) / 1000 | 
| 0x0041 | 0x00 |  | 1速 |  | 0x02 | unsigned int | (0 to 65535) / 1000 | 
| 0x0042 | 0x00 |  | 2速 |  | 0x02 | unsigned int | (0 to 65535) / 1000 | 
| 0x0043 | 0x00 |  | 3速 |  | 0x02 | unsigned int | (0 to 65535) / 1000 | 
| 0x0044 | 0x00 |  | 4速 |  | 0x02 | unsigned int | (0 to 65535) / 1000 | 
| 0x0045 | 0x00 |  | 5速 |  | 0x02 | unsigned int | (0 to 65535) / 1000 | 
| 0x0046 | 0x00 |  | 6速 |  | 0x02 | unsigned int | (0 to 65535) / 1000 | 
| 0x0047 | 0x00 |  | 7速 |  | 0x02 | unsigned int | (0 to 65535) / 1000 | 
| 0x0048 | 0x02 | unsigned int | (0 to 65535) / 1000 最終減速比 |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 0x0049 | 0x02 | unsigned int | (0 to 65535) / 1000 1速 |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 0x004A | 0x02 | unsigned int | (0 to 65535) / 1000 2速 |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 0x004B | 0x02 | unsigned int | (0 to 65535) / 1000 3速 |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 0x004C | 0x02 | unsigned int | (0 to 65535) / 1000 4速 |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 0x004D | 0x02 | unsigned int | (0 to 65535) / 1000 5速 |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 0x004E | 0x02 | unsigned int | (0 to 65535) / 1000 6速 |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 0x004F | 0x02 | unsigned int | (0 to 65535) / 1000 7速 |  | 0x00 |  | なし(データサイズとチェックサムだけ返ってくる) | 
| タイヤサイズを取得/設定するコマンド群 | 
| 0x0050 | 0x00 |  | タイヤ幅 |  | 0x02 | unsigned int | (0 to 65535) mm | 
| 0x0051 | 0x00 |  | 扁平率 |  | 0x01 | unsigned char | (0 to 255) % | 
| 0x0052 | 0x00 |  | 直径 |  | 0x01 | unsigned char | (0 to 255) Inch | 
| 0x0058 | 0x02 | unsigned int | (0 to 65535) mm タイヤ幅 |  |  |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 0x0059 | 0x01 | unsigned char | (0 to 255) % 扁平率 |  |  |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 0x005A | 0x01 | unsigned int | 0 to 255) Inch 直径 |  |  |  | なし(データサイズとチェックサムだけ返ってくる) | 
| 現在値を取得するコマンド群 | 
| 0x1000 | 0x00 |  | 車速 |  | 0x02 | unsigned int | (0 to 65535) km/h | 
| 0x1001 | 0x00 |  | エンジン回転数 |  | 0x02 | unsigned int | (0 to 65535) rpm | 
| 0x1002 | 0x00 |  | スロットル |  | 0x01 | unsigned char | (0 to 100) % | 
| 0x1003 | 0x00 |  | ブースト圧 |  | 0x02 | int | (-32768 to 32767) / 1000 kg/cm^2 | 
| 0x1004 | 0x00 |  | 水温 |  | 0x02 | int | (-32768 to 32767) C | 
| 0x1005 | 0x00 |  | 吸気温 |  | 0x02 | int | (-32768 to 32767) C | 
| 0x1006 | 0x00 |  | バッテリ電圧 |  | 0x01 | unsigned char | (0 to 255) / 10 V | 
| 0x1007 | 0x00 |  | Mass Air Flow |  | 0x02 | unsigned int | (0 to 65535) / 100 | 
| 0x1008 | 0x00 |  | A/F |  | 0x02 | unsigned int | (0 to 65535) / 100 | 
| 0x1009 | 0x00 |  | イグニッション |  | 0x02 | int | (-32768 to 32767) / 100 deg | 
| 0x100A | 0x00 |  | ノッキング |  | 0x02 | int | (-32768 to 32767) / 100 deg | 
| 0x100B | 0x00 |  | 瞬間燃費 |  | 0x02 | unsigned int | (0 to 65535) / 100 km/h | 
| 0x100C | 0x00 |  | シフトポジション |  | 0x01 | unsigned char | (0 to 255) Shift | 
| 0x100D | 0x00 |  | X軸加速度 |  | 0x02 | int | (-32768 to 32767) / 1000 G | 
| 0x100E | 0x00 |  | Y軸加速度 |  | 0x02 | int | (-32768 to 32767) / 1000 G | 
| 0x100F | 0x00 |  | Z軸加速度 |  | 0x02 | int | (-32768 to 32767) / 1000 G | 
| 最大値を取得するコマンド群 | 
| 0x2000 | 0x00 |  | 車速 |  | 0x02 | unsigned int | 0 to 65535 km/h | 
| 0x2001 | 0x00 |  | エンジン回転数 |  |  |  |  | 
| 0x2002 | 0x00 |  | スロットル |  |  |  |  | 
| 0x2003 | 0x00 |  | ブースト圧 |  |  |  |  | 
| 0x2004 | 0x00 |  | 水温 |  |  |  |  | 
| 0x2005 | 0x00 |  | 吸気温 |  |  |  |  | 
| 0x2006 | 0x00 |  | バッテリ電圧 |  |  |  |  | 
| 0x2007 | 0x00 |  | Mass Air Flow |  |  |  |  | 
| 0x2008 | 0x00 |  | A/F |  |  |  |  | 
| 0x2009 | 0x00 |  | イグニッション |  |  |  |  | 
| 0x200A | 0x00 |  | ノッキング |  |  |  |  | 
| 0x200B | 0x00 |  | 瞬間燃費 |  |  |  |  | 
| 0x200C | 0x00 |  | シフトポジション |  |  |  |  | 
| 最小値を取得するコマンド群 | 
| 0x3000 | 0x00 |  | 車速 |  | 0x02 | unsigned int | 0 to 65535 km/h | 
| 0x3001 | 0x00 |  | エンジン回転数 |  |  |  |  | 
| 0x3002 | 0x00 |  | スロットル |  |  |  |  | 
| 0x3003 | 0x00 |  | ブースト圧 |  |  |  |  | 
| 0x3004 | 0x00 |  | 水温 |  |  |  |  | 
| 0x3005 | 0x00 |  | 吸気温 |  |  |  |  | 
| 0x3006 | 0x00 |  | バッテリ電圧 |  |  |  |  | 
| 0x3007 | 0x00 |  | Mass Air Flow |  |  |  |  | 
| 0x3008 | 0x00 |  | A/F |  |  |  |  | 
| 0x3009 | 0x00 |  | イグニッション |  |  |  |  | 
| 0x300A | 0x00 |  | ノッキング |  |  |  |  | 
| 0x300B | 0x00 |  | 瞬間燃費 |  |  |  |  | 
| 0x300C | 0x00 |  | シフトポジション |  |  |  |  | 
データタイプ  †
INTEGER  †
| Type | Bits | Min | Max | 
| char | 8 | -128 | 127 | 
| unsigned char | 8 | 0 | 255 | 
| int | 16 | -32768 | 32767 | 
| unsigned int | 16 | 0 | 65535 | 
| long | 32 | -2^31 | 2^31 -1 | 
| unsigned long | 32 | 0 | 2^32 -1 | 
FLOATING POINT  †
| Type | Bits | E Min | E Max | N Min | N Max | 
| float, double | 32 | -126 | 127 | 2^-126 | 2^128 | 
実行例  †
Ping  †
- 送信|0x00 0x00
- 応答|0x00 0x00
History  †
Rev.0 2008/12/--  †