You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

177 lines
4.0 KiB

/**
******************************************************************************
* @copyright Copyright (C), 2016-2022, ConvenientPower. Co., Ltd.
* @file ufcs_prl_define.h
* @version 1.0
* @author qing.cheng
* @date 2022-12-02
* @brief Header file of UFCS_PRL_DEFINE_H module.
******************************************************************************
*/
#ifndef _UFCS_PRL_DEFINE_H_
#define _UFCS_PRL_DEFINE_H_
#include "core_comm.h"
#include "drv_comm.h"
#include "ufcs_flag.h"
#define UFCS_CTRL_PKT 0
#define UFCS_DATA_PKT 1
#define UFCS_EXT_PKT 2
#define T_DET_VALID_MIN 1000
#define T_DET_VALID_MAX 12000
#define T_DET1_MIN 1400
#define T_DET1_MAX 2600
#define T_DET2_MIN 5600
#define T_DET2_MAX 10800
#define HDSK_DEC_TIMES 6
#define UFCS_TRAINING 0xAA
#define ufcs_clr_timeout_flag(_port, _timer)\
do\
{\
(_port)->ufcs_flags.ufcs_timer_flag.word &= ~((1u << (_timer)) & 0xfff);\
}while(0)
typedef enum
{
UFCS_PRL_Rx_Wait_for_PHY_Message = 0,
// UFCS_PRL_Rx_Check_CRC,
UFCS_PRL_Rx_Check_MsgNumber,
UFCS_PRL_Rx_Max
} ufcs_prl_rx_status_e;
typedef enum
{
UFCS_PRL_Tx_Reset = 0,
UFCS_PRL_Tx_Wait_for_Msg_Request,
UFCS_PRL_Tx_Send_Msg,
UFCS_PRL_Tx_Wait_Response,
// UFCS_PRL_Tx_Match_MsgNumber,
UFCS_PRL_Tx_Check_RetryCounter,
UFCS_PRL_Tx_Max
} ufcs_prl_tx_status_e;
typedef enum
{
UFCS_PRL_HDSK_Pulse = 0,
UFCS_PRL_HDSK_Wait_Ping,
UFCS_PRL_HDSK_RDY,
UFCS_PRL_HDSK_Max,
} ufcs_prl_hdsk_status_e;
typedef enum
{
UFCS_PRL_HR_RESET_LAYER = 0,
UFCS_PRL_HR_WAIT_HARD_RESET_COMPLETE,
UFCS_PRL_HR_WAIT_HARD_RESET_Max
} ufcs_prl_hr_status_e;
typedef enum UFCS_PROCESS_STATUS_e
{
UFCS_ENTER = 0,
UFCS_EXIT,
} UFCS_PROCESS_STATUS_e;
typedef enum
{
ufcs_prl_rx_entry_status,
ufcs_prl_rx_exit_status,
} ufcs_prl_rx_process_status_e;
typedef enum
{
ufcs_prl_tx_entry_status,
ufcs_prl_tx_exit_status,
} ufcs_prl_tx_process_status_e;
typedef enum
{
ufcs_prl_hr_entry_status,
ufcs_prl_hr_exit_status,
} ufcs_prl_hr_process_status_e;
typedef enum
{
ufcs_prl_hdsk_entry_status,
ufcs_prl_hdsk_exit_status,
} ufcs_prl_hdsk_process_status_e;
typedef union
{
uint16_t data16;
uint8_t byte[2];
struct
{
uint8_t prl_packet_recived_from_pe: 1;
uint8_t prl_snk_hardreset_recived_from_pe: 1;
uint8_t prl_cable_hardreset_recived_from_pe: 1;
uint8_t prl_recived_start_cable_from_pe: 1;
uint8_t prl_recived_bdrate_not_support: 1;
uint8_t prl_open_watchdog_recived_from_prl: 1;
uint8_t prl_recived_start_cable_: 1;
uint8_t prl_recived_stop_tx_pe: 1;
uint8_t prl_packet_wait_ack_from_phy: 1;
uint8_t reserved: 7;
};
} ufcs_prl_flags_u;
typedef union ufcs_prl_int_flags_u
{
uint16_t data16;
uint8_t byte[2];
struct
{
uint8_t prl_hardreset_recived_from_phy: 1;
uint8_t prl_packet_recived_from_phy: 1;
uint8_t prl_packet_sent_succ_from_phy: 1;
uint8_t prl_cable_hardreset_succ_from_phy: 1;
uint8_t prl_snk_hardreset_succ_from_phy: 1;
uint8_t prl_recived_msg_error_from_phy: 1;
uint8_t prl_recived_error_frame_from_phy: 1;
uint8_t prl_recived_crc_is_ok_from_phy: 1;
//BYTE1
uint8_t prl_relay_anck_start_from_prl: 1;
uint8_t reserved: 7;
};
} ufcs_prl_int_flags_u;
//4 *8 32byte sram calc zxs
typedef struct
{
// ufcs_prl_hr_status_e prl_hr_status;
// ufcs_prl_hr_process_status_e prl_hr_process_status;
ufcs_prl_tx_status_e prl_tx_status; // tx status
ufcs_prl_tx_process_status_e prl_tx_process_status; // tx process status
ufcs_prl_rx_status_e prl_rx_status; // rx status
ufcs_prl_rx_process_status_e prl_rx_process_status; // rx process status
ufcs_prl_hdsk_status_e ufcs_prl_hdsk_status;
ufcs_prl_hdsk_process_status_e prl_hdsk_process_status;
} ufcs_prl_status_s;
#endif