TJA1153配置

#define TJA1153_START_ID (uint32_t)(0x555u)
#define TJA1153_CONFIG_ID (uint32_t)(0x18DA00F1u)

/* Configure TJA1153 transmission format */
static const Flexcan_Ip_DataInfoType CAN_TJA1153_MB_Config_1 = {
.data_length = 0u,
.msg_id_type = FLEXCAN_MSG_ID_STD,
.is_polling = true
};

/* Configure TJA1153 sproofing protection, 0x10 command byte */
static const Flexcan_Ip_DataInfoType TJA1153_SpoofingProtect_Config_Form = {
.data_length = 6u,
.msg_id_type = FLEXCAN_MSG_ID_EXT,
.is_polling = true
};

/* Configure TJA1153 flooding and tamper protection, 0x40 command byte */
static const Flexcan_Ip_DataInfoType TJA1153_FloodTamperProt_Config_Form = {
.data_length = 2u,
.msg_id_type = FLEXCAN_MSG_ID_EXT,
.is_polling = true
};

/* Configure bit time, secure mode timeout, blacklist, etc. 0x50 command byte */
static const Flexcan_Ip_DataInfoType TJA1153_BitTimeLength_Config_Form = {
.data_length = 3u,
.msg_id_type = FLEXCAN_MSG_ID_EXT,
.is_polling = true
};

/* Configure TJA1153 command message id, 0x60 command byte */
static const Flexcan_Ip_DataInfoType TJA1153_CommandMessageID_Config_Form = {
.data_length = 5u,
.msg_id_type = FLEXCAN_MSG_ID_EXT,
.is_polling = true
};

/* Configure TJA1153 leaving configuration mode message format, 0x71, 0x72, 0x74 command byte */
static const Flexcan_Ip_DataInfoType TJA1153_LeaveConfigMode_Config_Form = {
.data_length = 8u,
.msg_id_type = FLEXCAN_MSG_ID_EXT,
.is_polling = true
};

/* Configure TJA1153 verification of configure message, 0xF0 command byte */
static const Flexcan_Ip_DataInfoType TJA1153_ConfigVerify_Config_Form = {
.data_length = 3u,
.msg_id_type = FLEXCAN_MSG_ID_EXT,
.is_polling = true
};

void TJA1153_Configure(uint8 instance, uint8 mb_idx)
{
uint8 tja1153ConfigData[8];

/* Send a classical frame with ID 0x555 */
tja1153ConfigData[0] = 0x00;
tja1153ConfigData[1] = 0x00;
tja1153ConfigData[2] = 0x00;
tja1153ConfigData[3] = 0x00;
tja1153ConfigData[4] = 0x00;
tja1153ConfigData[5] = 0x00;
tja1153ConfigData[6] = 0x00;
tja1153ConfigData[7] = 0x00;
FlexCAN_Ip_SendBlocking(instance, mb_idx, \
		&CAN_TJA1153_MB_Config_1, TJA1153_START_ID, (uint8 *)&tja1153ConfigData, 0xFFFFFFFF);

/* Configure the sproofing protection*/
tja1153ConfigData[0] = 0x10;
tja1153ConfigData[1] = 0x01;   /* White list element 1*/
tja1153ConfigData[2] = 0x51;
tja1153ConfigData[3] = 0x00;   /* ID + mask, 0x100 + 0x000, any standard frame can be sent*/
tja1153ConfigData[4] = 0x07;
tja1153ConfigData[5] = 0xFF;
FlexCAN_Ip_SendBlocking(instance, mb_idx, \
		&TJA1153_SpoofingProtect_Config_Form, TJA1153_CONFIG_ID, (uint8 *)&tja1153ConfigData, 0xFFFFFFFF);

tja1153ConfigData[0] = 0x10 + 0x80;
FlexCAN_Ip_SendBlocking(instance, mb_idx, \
		&TJA1153_SpoofingProtect_Config_Form, TJA1153_CONFIG_ID, (uint8 *)&tja1153ConfigData, 0xFFFFFFFF);

/* Configure the flood tamper protection */
tja1153ConfigData[0] = 0x40;
tja1153ConfigData[1] = 0x00;
FlexCAN_Ip_SendBlocking(instance, mb_idx, \
		&TJA1153_FloodTamperProt_Config_Form, TJA1153_CONFIG_ID, (uint8 *)&tja1153ConfigData, 0xFFFFFFFF);

/* Validate the configuration */
tja1153ConfigData[0] = 0xC0;
tja1153ConfigData[1] = 0x00;
FlexCAN_Ip_SendBlocking(instance, mb_idx, \
		&TJA1153_FloodTamperProt_Config_Form, TJA1153_CONFIG_ID, (uint8 *)&tja1153ConfigData, 0xFFFFFFFF);

/* Configure bit time and blacklist, etc */
tja1153ConfigData[0] = 0x50;
tja1153ConfigData[1] = 0x38;
tja1153ConfigData[2] = 0xAB;

FlexCAN_Ip_SendBlocking(instance, mb_idx, \
		&TJA1153_BitTimeLength_Config_Form, TJA1153_CONFIG_ID, (uint8 *)&tja1153ConfigData, 0xFFFFFFFF);

/* Validate the configuration */
tja1153ConfigData[0] = 0xD0;
tja1153ConfigData[1] = 0x38;
tja1153ConfigData[2] = 0xAB;
FlexCAN_Ip_SendBlocking(instance, mb_idx, \
		&TJA1153_BitTimeLength_Config_Form, TJA1153_CONFIG_ID, (uint8 *)&tja1153ConfigData, 0xFFFFFFFF);

/* Configure the device ID */
tja1153ConfigData[0] = 0x60;
tja1153ConfigData[1] = 0x98;
tja1153ConfigData[2] = 0xDA;
tja1153ConfigData[3] = 0x00;
tja1153ConfigData[4] = 0xF1;
FlexCAN_Ip_SendBlocking(instance, mb_idx, \
		&TJA1153_CommandMessageID_Config_Form, TJA1153_CONFIG_ID, (uint8 *)&tja1153ConfigData, 0xFFFFFFFF);

/* Validate the configuration */
tja1153ConfigData[0] = 0xE0;
tja1153ConfigData[1] = 0x98;
tja1153ConfigData[2] = 0xDA;
tja1153ConfigData[3] = 0x00;
tja1153ConfigData[4] = 0xF1;
FlexCAN_Ip_SendBlocking(instance, mb_idx, \
		&TJA1153_CommandMessageID_Config_Form, TJA1153_CONFIG_ID, (uint8 *)&tja1153ConfigData, 0xFFFFFFFF);

/* Validate */
tja1153ConfigData[0] = 0xF0;
tja1153ConfigData[1] = 0x00;
tja1153ConfigData[2] = 0x00;
tja1153ConfigData[3] = 0x00;
tja1153ConfigData[4] = 0x00;
FlexCAN_Ip_SendBlocking(instance, mb_idx, \
		&TJA1153_ConfigVerify_Config_Form, TJA1153_CONFIG_ID, (uint8 *)&tja1153ConfigData, 0xFFFFFFFF);

/* Leave the configuration mode and do not save it to NVM, after next power up, need to initialize again */
tja1153ConfigData[0] = 0x71;
tja1153ConfigData[1] = 0x02;
tja1153ConfigData[2] = 0x03;
tja1153ConfigData[3] = 0x04;
tja1153ConfigData[4] = 0x05;
tja1153ConfigData[5] = 0x06;
tja1153ConfigData[6] = 0x07;
tja1153ConfigData[7] = 0x08;
FlexCAN_Ip_SendBlocking(instance, mb_idx, \
		&TJA1153_LeaveConfigMode_Config_Form, TJA1153_CONFIG_ID, (uint8 *)&tja1153ConfigData, 0xFFFFFFFF);

}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值