Custom_Element 是在 user_define.h 中定义的结构。Custom_Element 也显示在 图 2-6 中。
来源标识符用于指示消息的来源。以下是来源标识符示例(CAN_ID_LENGTH =0,SPI_ID_LENGTH =4)。
- 示例 1:CAN 接口接收和传输
- 当 CAN-SPI 桥接器接收到 CAN 消息时,来自 CAN 帧的 ID 是来源标识符,指示消息来自何处。
- 当 CAN-SPI 桥接器传输 CAN 消息时,来源标识符被忽略(CAN_ID_LENGTH 默认设置为 0)。
- 示例 2:SPI 接口接收和传输(SPI 协议传输)
- 当 CAN-SPI 桥接器接收到 SPI 消息(SPI 协议传输)时,DEFAULT_SPI_ORIGIN_ID 是来源标识符,因为 SPI 没有 ID。
- 当 CAN-SPI 桥接器传输 SPI 消息(SPI 协议传输)时,来源标识符是 SPI 数据中的 4 字节 ID (SPI_ID_LENGTH 默认设置为 4),指示消息来自何处。
- 示例 3 - SPI 接口接收和传输(SPI 透明传输)
- 当 CAN-SPI 桥接器接收到 SPI 消息(SPI 透明传输)时,DEFAULT_SPI_ORIGIN_ID 是来源标识符,因为 SPI 没有 ID。
- 当 CAN-SPI 桥接器传输 SPI 消息(SPI 透明传输)时,来源标识符会被忽略。(透明传输没有 ID 区域)。
目标标识符用于指示消息的目标。
- 示例 1 - CAN 接口接收和传输
- 当 CAN-SPI 桥接器接收 CAN 消息时,DEFAULT_CAN_DESTINATION_ID 是目标标识符,因为 CAN_ID_LENGTH 默认设置为 0。SPI 传输不需要 ID。
- 当 CAN-SPI 桥接器传输 CAN 消息时,目标标识符是 CAN 帧中的 CAN ID。在此示例中,11 位或 29 位均得到支持。
- 示例 2 - SPI 接口接收和传输(SPI 协议传输)
- 当 CAN-SPI 桥接器接收到 SPI 消息(SPI 协议传输)时,来自 SPI 数据的 4 字节 ID 是目标标识符(SPI _ID_LENGTH 默认设置为 4)。CAN 传输需要 ID 信息。
- 当 CAN-SPI 桥接器传输 SPI 消息(SPI 协议传输)时,目标标识符将被忽略,因为 SPI 传输不需要 ID。
- 示例 3 - SPI 接口接收和传输(SPI 透明传输)
- 当 CAN-SPI 桥接器接收到 SPI 消息(SPI 透明传输)时,DEFAULT_SPI_DESTINATION_ID 是目标标识符(透明传输没有 ID 区域)。CAN 传输需要 ID 信息。
- 当 CAN-SPI 桥接器传输 SPI 消息(SPI 透明传输)时,目标标识符将被忽略,因为 SPI 传输不需要 ID。
/*user-defined information storage structure */
typedef struct {
/*! Origin Identifier, indicating the origin of the message */
uint32_t origin_id;
/*! Destination Identifier, indicating the destination of the message */
uint32_t destination_id;
/*! Data Length Code */
uint8_t dlc;
/*! Data bytes */
uint8_t data[TRANSMIT_DATA_LENGTH];
} Custom_Element;