Radar_R3.h 3.37 KB
Newer Older
崔立宝's avatar
崔立宝 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

#ifndef _RADAR_R3_H_
#define _RADAR_R3_H_

#include "API.h"
#include "SCI0_UART.h"
#include "Line_In.h"
#include "Radar_Common.h"
#include "CAN_Communication_Matrix.h"

/******************************************************************************
雷达配置
******************************************************************************/
#define   RADAR_R3_MSG_LOST_THRESHOLD       2     //unit:s

/******************************************************************************
全局变量
******************************************************************************/
//extern volatile uint8_t RadarMsgLost;
//#ifndef   RADAR_MSG_LOST
//#define   RADAR_MSG_LOST                    RadarMsgLost
//#define   RADAR_R3_DECLARE_MSG_LOST
//#endif

/******************************************************************************
帧类型
******************************************************************************/
//#define   RADAR_R3_SELF_TEST_FRAME          0xAA
//#define   RADAR_R3_MESSAGE_FRAME            0x55
#define   RADAR_R3_MESSAGE_FRAME            0x55

/******************************************************************************
帧首/帧尾
******************************************************************************/
//#define   RADAR_R3_SOF_SELF_TEST            0xAA
//#define   RADAR_R3_EOF_SELF_TEST            0xAF
#define   RADAR_R3_EOF1_MESSAGE              0xFE
#define   RADAR_R3_EOF2_MESSAGE              0xFF

/******************************************************************************
接收Buffer结构
******************************************************************************/
typedef union
{
  uint8_t   Byte[12];
  
  struct
  {
    uint8_t   Type      : 8;              //1
    uint8_t             : 8;              //2
    uint8_t             : 8;              //3
    uint8_t             : 8;              //4
    uint8_t             : 8;              //5
    uint8_t             : 8;              //6
    uint8_t             : 8;              //7
    uint8_t             : 8;              //8
    uint8_t             : 8;              //9
    uint8_t             : 8;              //10 校验和
    uint8_t             : 8;              //11
    uint8_t             : 8;              //12
  }Frame;  
  struct
  {
    uint8_t   SOF       : 8; 
    uint8_t   RL_H      : 8;
    uint8_t   RL_L      : 8;
    uint8_t   RLM_H     : 8;
    uint8_t   RLM_L     : 8;
    uint8_t   RRM_H     : 8;
    uint8_t   RRM_L     : 8;
    uint8_t   RR_H      : 8;
    uint8_t   RR_L      : 8;
    uint8_t   SND       : 8;            //10 校验和
    uint8_t   EOF1      : 8; 
    uint8_t   EOF2      : 8; 
  }Msg;
}RadarR3DataBufferUnion;

/******************************************************************************
接收控制结构
******************************************************************************/
typedef struct
{
  uint8_t   Enable;            //启用
  uint8_t   SelfTest;          //自检
  uint8_t   Rsvd;
  uint8_t   Ptr;
  uint8_t   Len;
  uint8_t   Complete;
  uint16_t  Timer;             //定时器
  uint16_t  Counter;           //计数器
}RadarR3ReceivingCtrlStruct;

/******************************************************************************
函数声明
******************************************************************************/
void Radar_R3_Init(void);
void Radar_R3_Receiving_Service(void);
void Radar_R3_Receive_Enable(uint8_t En);
void Radar_R3_Receive_Data(uint8_t Data, uint8_t Parity);

#endif