第一次提交
This commit is contained in:
204
interface_can.h
Normal file
204
interface_can.h
Normal file
@@ -0,0 +1,204 @@
|
||||
|
||||
#ifndef _INTERFACE_CAN_H_
|
||||
#define _INTERFACE_CAN_H_
|
||||
|
||||
#include "regs_base.h"
|
||||
#include "irq_num.h"
|
||||
#include <sdrv_flexcan.h>
|
||||
|
||||
|
||||
#define CAN_INDEX_0 FLEXCAN7
|
||||
#define CAN_INDEX_1 FLEXCAN21
|
||||
#define CAN_INDEX_2 FLEXCAN16
|
||||
#define CAN_INDEX_3 FLEXCAN3
|
||||
#define CAN_INDEX_4 FLEXCAN23
|
||||
#define CAN_INDEX_5 FLEXCAN5
|
||||
#define CAN_INDEX_6 FLEXCAN6
|
||||
#define CAN_INDEX_7 FLEXCAN4
|
||||
|
||||
|
||||
|
||||
#define TX_MB_INDEX (USED_MB_FOR_FIFO)
|
||||
|
||||
|
||||
#define LEFT_FRONT_MOTOR_INPUT1 0x101
|
||||
#define LEFT_FRONT_MOTOR_INPUT2 0x103//<2F>¶<EFBFBD>
|
||||
|
||||
|
||||
#define LEFT_REAR_MOTOR2_INPUT1 0x102
|
||||
#define LEFT_REAR_MOTOR2_INPUT2 0x104//<2F>¶<EFBFBD>
|
||||
|
||||
|
||||
#define RIGHT_FRONT_MOTOR_INPUT1 0x101
|
||||
#define RIGHT_FRONT_MOTOR_INPUT2 0x103//<2F>¶<EFBFBD>
|
||||
|
||||
|
||||
#define RIGHT_REAR_MOTOR_INPUT1 0x102
|
||||
#define RIGHT_REAR_MOTOR_INPUT2 0x104//<2F>¶<EFBFBD>
|
||||
|
||||
|
||||
#define LEFT_FRONT_MOTOR_OUTPUT1 0x201
|
||||
#define LEFT_FRONT_MOTOR_OUTPUT2 0x401
|
||||
|
||||
#define LEFT_REAR_MOTOR_OUTPUT1 0x202
|
||||
#define LEFT_REAR_MOTOR_OUTPUT2 0x402
|
||||
|
||||
#define RIGHT_FRONT_MOTOR_OUTPUT1 0x201
|
||||
#define RIGHT_FRONT_MOTOR_OUTPUT2 0x401
|
||||
|
||||
#define RIGHT_REAR_MOTOR_OUTPUT1 0x202
|
||||
#define RIGHT_REAR_MOTOR_OUTPUT2 0x402
|
||||
|
||||
|
||||
|
||||
|
||||
//#define MOTOR_INPUT_ID_1 0x15000003//<2F>ɼ<EFBFBD>ģ<EFBFBD><C4A3>
|
||||
//#define MOTOR_INPUT_ID_2 0x10F92708//<2F><>ǰ
|
||||
//#define MOTOR_INPUT_ID_3 0x15000003//<2F>ɼ<EFBFBD>ģ<EFBFBD><C4A3>
|
||||
//#define MOTOR_INPUT_ID_4 0x10F94708//<2F>Һ<EFBFBD>
|
||||
//
|
||||
//
|
||||
#define MOTOR_INPUT_ID_5 0x10F81708//<2F><>ǰ <20><>λ
|
||||
#define MOTOR_INPUT_ID_6 0x10F82708//<2F><>ǰ
|
||||
#define MOTOR_INPUT_ID_7 0x10F83708//<2F><><EFBFBD><EFBFBD>
|
||||
#define MOTOR_INPUT_ID_8 0x10F84708//<2F>Һ<EFBFBD>
|
||||
|
||||
|
||||
|
||||
|
||||
#define BMS_INPUT_ID1 0x100
|
||||
#define BMS_INPUT_ID2 0x101
|
||||
#define REMOTE_ID 0x12000023
|
||||
#define TEMP_MODULE_INPUT_ID_1 0x15000003
|
||||
|
||||
|
||||
|
||||
#define CAN_FIFO_SIZE 8
|
||||
|
||||
//#define TEMP_MODULE_INPUT_ID_2 0x302
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
typedef struct _StrCanFault
|
||||
{
|
||||
uint8_t navigator_count; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t motor1_count; //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t motor2_count; //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t motor3_count; //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t motor4_count; //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uint8_t bms_count; //bms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t temperature_count; //<2F>¶ȼ<C2B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t remote_count; //ң<>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
uint8_t navigator_state; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||
uint8_t motor1_state; //<2F><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>״̬
|
||||
uint8_t motor2_state; //<2F><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>״̬
|
||||
uint8_t motor3_state; //<2F><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>״̬
|
||||
uint8_t motor4_state; //<2F><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>״̬
|
||||
uint8_t bms_state; //bms״̬
|
||||
uint8_t temperature_state; //<2F>¶ȼ<C2B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t remote_state; //ң<><D2A3>״̬
|
||||
} StrCanFault;
|
||||
|
||||
typedef union _UnCanFault
|
||||
{
|
||||
StrCanFault bit_data; // ʹ<>ö<EFBFBD><C3B6><EFBFBD><EFBFBD>Ľṹ<C4BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint8_t arr[sizeof(StrCanFault)]; // ͨ<><CDA8><EFBFBD>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>С
|
||||
} UnCanFault;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// can<61><6E><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
|
||||
typedef struct _StrCanBuffer
|
||||
{
|
||||
uint32_t id; //**< CAN Frame Identifier. */
|
||||
uint8_t dataBuffer[8]; //<2F><><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD>
|
||||
unsigned int length : 7; //**< CAN frame payload length in bytes(Range: 0~8). */
|
||||
unsigned int type : 1; //**< CAN Frame Type(DATA or REMOTE). */
|
||||
unsigned int format : 1; //**< CAN Frame Identifier(STD or EXT format). */
|
||||
|
||||
}StrCanBuffer;
|
||||
|
||||
|
||||
|
||||
typedef struct Fifo_Queue_Tag
|
||||
{
|
||||
StrCanBuffer Data[CAN_FIFO_SIZE];//<2F><><EFBFBD><EFBFBD>
|
||||
uint8_t front;//ͷָ<CDB7><D6B8>
|
||||
uint8_t rear;//βָ<CEB2><D6B8>
|
||||
}StrCanFifoQueue;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define ON 1
|
||||
#define OFF 0
|
||||
|
||||
#define left_motor_fan(Value) un_inf_can_kgf_output1.bit_data.KGF01 = Value;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define right_motor_fan(Value) un_inf_can_kgf_output1.bit_data.KGF03 = Value;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define pre_charge_relay(Value) un_inf_can_kgf_output1.bit_data.KGF04 = Value;//Ԥ<><D4A4>
|
||||
#define high_voltage_relay(Value) un_inf_can_kgf_output1.bit_data.KGF07 = Value;un_inf_can_kgf_output1.bit_data.KGF08 = Value//<2F><>ѹ<EFBFBD>̵<EFBFBD><CCB5><EFBFBD>
|
||||
#define low_voltage_relay(Value) un_inf_can_kgf_output1.bit_data.KGF11 = Value;un_inf_can_kgf_output1.bit_data.KGF12 = Value//<2F><>ѹ<EFBFBD>̵<EFBFBD><CCB5><EFBFBD>
|
||||
#define yellow_light(Value) un_inf_can_kgf_output1.bit_data.KGF06 = Value;//<2F>Ƶ<EFBFBD>
|
||||
#define red_light(Value) un_inf_can_kgf_output1.bit_data.KGF09 = Value;//<2F><><EFBFBD><EFBFBD>
|
||||
#define left_vehicle_fan(Value) un_inf_can_kgf_output1.bit_data.KGF14 = Value;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define right_vehicle_fan(Value) un_inf_can_kgf_output2.bit_data.KGF03 = Value;//<2F><><EFBFBD>ҷ<EFBFBD><D2B7><EFBFBD>
|
||||
#define computer(Value) un_inf_can_kgf_output2.bit_data.KGF01 = Value;un_inf_can_kgf_output2.bit_data.KGF02 = Value//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define network_switch(Value) un_inf_can_kgf_output2.bit_data.KGF05 = Value;un_inf_can_kgf_output2.bit_data.KGF06 = Value//<2F><><EFBFBD>罻<EFBFBD><E7BDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
|
||||
|
||||
//H<><48>
|
||||
#define brake_motor_forward un_h_bridge_output.bit_data.channel_01 = ON ;un_h_bridge_output.bit_data.channel_04 = ON ;un_h_bridge_output.bit_data.channel_02 = OFF;un_h_bridge_output.bit_data.channel_03 = OFF;un_h_bridge_output.bit_data.sleep_01 = ON ;un_h_bridge_output.bit_data.sleep_02 = ON//<2F><>ת
|
||||
#define brake_motor_reversal un_h_bridge_output.bit_data.channel_01 = OFF;un_h_bridge_output.bit_data.channel_04 = OFF;un_h_bridge_output.bit_data.channel_02 = ON ;un_h_bridge_output.bit_data.channel_03 = ON ;un_h_bridge_output.bit_data.sleep_01 = ON ;un_h_bridge_output.bit_data.sleep_02 = ON//<2F><>ת
|
||||
#define brake_motor_off un_h_bridge_output.bit_data.channel_01 = OFF;un_h_bridge_output.bit_data.channel_04 = OFF;un_h_bridge_output.bit_data.channel_02 = OFF;un_h_bridge_output.bit_data.channel_03 = OFF;un_h_bridge_output.bit_data.sleep_01 = OFF;un_h_bridge_output.bit_data.sleep_02 = OFF//<2F>ر<EFBFBD>
|
||||
|
||||
|
||||
|
||||
|
||||
//<2F>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>
|
||||
void flexcan_transfer_callback(flexcan_handle_t *handle,flexcan_status_e status, uint32_t result,void *userData);
|
||||
uint8_t flexcan_config_rx_fifo(flexcan_handle_t *handle,flexcan_rx_fifo_config_t *config);
|
||||
uint8_t CAN_Send_Msg( flexcan_handle_t *handle, uint32_t ID, flexcan_frame_format_e ide, flexcan_frame_type_e rtr, uint8_t *msg, uint8_t len, uint8_t tx_index);
|
||||
void flexcan_Busoff_Recovery(void);
|
||||
void initialization_All_Flexcan(void);
|
||||
|
||||
|
||||
|
||||
|
||||
//<2F>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>
|
||||
extern flexcan_handle_t g_flexcan_handle;
|
||||
extern bool busoff_occur_flag;//<2F><>־<EFBFBD><D6BE>
|
||||
extern bool WDTReFresh_flag;//<2F><><EFBFBD>±<EFBFBD>־
|
||||
extern flexcan_handle_t g_flexcan_handle;
|
||||
extern uint16_t FrameHeader;//֡ͷ
|
||||
extern flexcan_handle_t can_handle_0;//can<61><6E>ʼ<EFBFBD><CABC><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
||||
extern flexcan_handle_t can_handle_1;
|
||||
extern flexcan_handle_t can_handle_2;
|
||||
extern flexcan_handle_t can_handle_3;
|
||||
extern flexcan_handle_t can_handle_4;
|
||||
extern flexcan_handle_t can_handle_5;
|
||||
extern flexcan_handle_t can_handle_6;
|
||||
extern flexcan_handle_t can_handle_7;
|
||||
extern UnCanFault can_fault_info;
|
||||
|
||||
extern uint32_t time_elapsed;
|
||||
extern uint32_t time_elapsed1;
|
||||
|
||||
//<2F>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>
|
||||
void canInterfaceInit(void);
|
||||
|
||||
|
||||
#endif /* INTERFACE_CAN_H */
|
||||
Reference in New Issue
Block a user