C2A_Core
eb90_frame_for_driver_super.h ファイル

コンポ間通信などで標準的に使う データリンク層 の EB90 Frame [詳解]

#include <stdint.h>
#include "../Super/driver_super.h"
eb90_frame_for_driver_super.h の依存先関係図:
被依存関係図:

[ソースコード]

マクロ定義

#define EB90_FRAME_STX_SIZE   (2)
 EB90 Frame の STX のサイズ [詳解]
 
#define EB90_FRAME_ETX_SIZE   (2)
 EB90 Frame の ETX のサイズ [詳解]
 
#define EB90_FRAME_LEN_SIZE   (2)
 EB90 Frame の LEN のサイズ [詳解]
 
#define EB90_FRAME_CRC_SIZE   (2)
 EB90 Frame の CRC のサイズ [詳解]
 
#define EB90_FRAME_HEADER_SIZE   (EB90_FRAME_STX_SIZE + EB90_FRAME_LEN_SIZE)
 EB90 Frame のヘッダサイズ [詳解]
 
#define EB90_FRAME_FOOTER_SIZE   (EB90_FRAME_ETX_SIZE + EB90_FRAME_CRC_SIZE)
 EB90 Frame のフッタサイズ [詳解]
 
#define EB90_FRAME_STX_1ST_BYTE   (0xEB)
 EB90 Frame の STX 1st byte [詳解]
 
#define EB90_FRAME_STX_2ND_BYTE   (0x90)
 EB90 Frame の STX 2nd byte [詳解]
 
#define EB90_FRAME_ETX_1ST_BYTE   (0xC5)
 EB90 Frame の ETX 1st byte [詳解]
 
#define EB90_FRAME_ETX_2ND_BYTE   (0x79)
 EB90 Frame の ETX 2nd byte [詳解]
 

関数

uint16_t EB90_FRAME_get_packet_length_from_dssc (const DS_StreamConfig *p_stream_config)
 Packet Length の取得 [詳解]
 
const uint8_t * EB90_FRAME_get_packet_head_from_dssc (const DS_StreamConfig *p_stream_config)
 受信フレームから Packet Field の先頭ポインタを取得する [詳解]
 
uint16_t EB90_FRAME_get_crc_from_dssc (const DS_StreamConfig *p_stream_config)
 CRC の取得 [詳解]
 
uint8_t EB90_FRAME_is_valid_crc_of_dssc (const DS_StreamConfig *p_stream_config)
 EB90 Frame に付与された CRC が正しいかチェック [詳解]
 
uint16_t EB90_FRAME_calc_crc (const uint8_t *data, size_t len)
 EB90 Frame の CRC の計算 [詳解]
 

変数

const uint8_t EB90_FRAME_kStx [EB90_FRAME_STX_SIZE]
 
const uint8_t EB90_FRAME_kEtx [EB90_FRAME_ETX_SIZE]
 

詳解

コンポ間通信などで標準的に使う データリンク層 の EB90 Frame

覚え書き
frame 構造 |------—+----—+----—+---------------—| | Pos | Pos | size | name | | [octet] | [bit] | [bit] | | |------—+----—+----—+---------------—| | === Header =============================== | |------—+----—+----—+---------------—| | 0 | 0 | 16 | STX | | 2 | 0 | 16 | Packet Length | |------—+----—+----—+---------------—| | === Packet Field ========================= | |------—+----—+----—+---------------—| | 4 | 0 | * | EB90 Packet や | | | | | Space Packet | | | | | など | | * | 0 | * | ... | |------—+----—+----—+---------------—| | === Footer =============================== | |------—+----—+----—+---------------—| | N - 4 | 0 | 16 | CRC | | N - 2 | 0 | 16 | ETX | |------—+----—+----—+---------------—|

Packet Length: Packet Field の長さ CRC CRC-16/CCITT-FALSE (CRC-16/AUTOSAR, CRC-16/IBM-3740 とも) Packet Field の CRC Header は含めない

eb90_frame_for_driver_super.h に定義があります。

マクロ定義詳解

◆ EB90_FRAME_CRC_SIZE

#define EB90_FRAME_CRC_SIZE   (2)

EB90 Frame の CRC のサイズ

eb90_frame_for_driver_super.h43 行目に定義があります。

◆ EB90_FRAME_ETX_1ST_BYTE

#define EB90_FRAME_ETX_1ST_BYTE   (0xC5)

EB90 Frame の ETX 1st byte

eb90_frame_for_driver_super.h49 行目に定義があります。

◆ EB90_FRAME_ETX_2ND_BYTE

#define EB90_FRAME_ETX_2ND_BYTE   (0x79)

EB90 Frame の ETX 2nd byte

eb90_frame_for_driver_super.h50 行目に定義があります。

◆ EB90_FRAME_ETX_SIZE

#define EB90_FRAME_ETX_SIZE   (2)

EB90 Frame の ETX のサイズ

eb90_frame_for_driver_super.h41 行目に定義があります。

◆ EB90_FRAME_FOOTER_SIZE

#define EB90_FRAME_FOOTER_SIZE   (EB90_FRAME_ETX_SIZE + EB90_FRAME_CRC_SIZE)

EB90 Frame のフッタサイズ

eb90_frame_for_driver_super.h45 行目に定義があります。

◆ EB90_FRAME_HEADER_SIZE

#define EB90_FRAME_HEADER_SIZE   (EB90_FRAME_STX_SIZE + EB90_FRAME_LEN_SIZE)

EB90 Frame のヘッダサイズ

eb90_frame_for_driver_super.h44 行目に定義があります。

◆ EB90_FRAME_LEN_SIZE

#define EB90_FRAME_LEN_SIZE   (2)

EB90 Frame の LEN のサイズ

eb90_frame_for_driver_super.h42 行目に定義があります。

◆ EB90_FRAME_STX_1ST_BYTE

#define EB90_FRAME_STX_1ST_BYTE   (0xEB)

EB90 Frame の STX 1st byte

eb90_frame_for_driver_super.h47 行目に定義があります。

◆ EB90_FRAME_STX_2ND_BYTE

#define EB90_FRAME_STX_2ND_BYTE   (0x90)

EB90 Frame の STX 2nd byte

eb90_frame_for_driver_super.h48 行目に定義があります。

◆ EB90_FRAME_STX_SIZE

#define EB90_FRAME_STX_SIZE   (2)

EB90 Frame の STX のサイズ

eb90_frame_for_driver_super.h40 行目に定義があります。

関数詳解

◆ EB90_FRAME_calc_crc()

uint16_t EB90_FRAME_calc_crc ( const uint8_t *  data,
size_t  len 
)

EB90 Frame の CRC の計算

覚え書き
CRC-16-CCITT を使う
引数
dataCRC を計算するデータのポインタ
lenデータ長
戻り値
CRC

eb90_frame_for_driver_super.c45 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ EB90_FRAME_get_crc_from_dssc()

uint16_t EB90_FRAME_get_crc_from_dssc ( const DS_StreamConfig p_stream_config)

CRC の取得

覚え書き
フレームが確定しているときに呼び出すこと
引数
p_stream_configDriverSuper 構造体の DS_StreamConfig
戻り値
CRC

eb90_frame_for_driver_super.c28 行目に定義があります。

呼び出し関係図:

◆ EB90_FRAME_get_packet_head_from_dssc()

const uint8_t* EB90_FRAME_get_packet_head_from_dssc ( const DS_StreamConfig p_stream_config)

受信フレームから Packet Field の先頭ポインタを取得する

覚え書き
フレームが確定しているときに呼び出すこと
引数
p_stream_configDriverSuper 構造体の DS_StreamConfig
戻り値
Packet Field の先頭ポインタ

eb90_frame_for_driver_super.c22 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ EB90_FRAME_get_packet_length_from_dssc()

uint16_t EB90_FRAME_get_packet_length_from_dssc ( const DS_StreamConfig p_stream_config)

Packet Length の取得

覚え書き
フレームが確定しているときに呼び出すこと
引数
p_stream_configDriverSuper 構造体の DS_StreamConfig
戻り値
Packet Length

eb90_frame_for_driver_super.c14 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ EB90_FRAME_is_valid_crc_of_dssc()

uint8_t EB90_FRAME_is_valid_crc_of_dssc ( const DS_StreamConfig p_stream_config)

EB90 Frame に付与された CRC が正しいかチェック

引数
p_stream_configDriverSuper 構造体の DS_StreamConfig
戻り値
1正しい
0正しくない

eb90_frame_for_driver_super.c37 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

変数詳解

◆ EB90_FRAME_kEtx

const uint8_t EB90_FRAME_kEtx[EB90_FRAME_ETX_SIZE]
extern

eb90_frame_for_driver_super.c11 行目に定義があります。

◆ EB90_FRAME_kStx

const uint8_t EB90_FRAME_kStx[EB90_FRAME_STX_SIZE]
extern

eb90_frame_for_driver_super.c10 行目に定義があります。