kwp2000_tp.h 3.13 KB
Newer Older
hu's avatar
hu 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 103 104 105 106


#ifndef _KWP2000_TP_H
#define _KWP2000_TP_H

/*
*********************************************************************
* Defined for ComStatus
*********************************************************************
*/
#define KWP2000_BUFFLEN_MAX		   255
#define KWP2000_RX_BUFFER_SIZE     260
#define KWP2000_TX_BUFFER_SIZE	   260

/*
*********************************************************************
* Defined for ComStatus
*********************************************************************
*/
#define INIT					0x00u	/* Initialisation modes in 0x0y*/
#define COM_INIT				0x01u
#define KWP2000					0x20u	/* KWP2000 modes in 0x2y */
#define KWP2000_FAST_INIT		0x21u
#define KWP2000_WAIT_RECEPTION	0x22u
#define KWP2000_WAIT_HEADER		0x23u
#define KWP2000_WAIT_DATAS		0x24u
#define KWP2000_COMMUNICATION	0x25u
#define KWP2000_BUILD_RESPONSE	0x26u
#define KWP2000_SEND_RESPONSE	0x27u
#define KWP2000_MODIFY_CONFIG	0x28u
#define KWP2000_END				0x29u
#define KWP2000_IDLE			0x2Au
#define PROTOCOL				0xF0u	/* Protocol modes defined by 0xy0 */



#define KWP2000_MODIFY_NULL		    0
#define KWP2000_MODIFY_BAUDRATE	    1
#define KWP2000_MODIFY_RESET	    2
#define KWP2000_MODIFY_END		    3



/*
*********************************************************************
* structure
*********************************************************************
*/
typedef struct
{
    unsigned char  Format;
    unsigned char  headerSize;
    unsigned char  SId;
    unsigned char  TgtAddr;
    unsigned char  SrcAddr;
    unsigned short Rx_len;
    unsigned short Tx_len;
    unsigned char  RxBuffer[KWP2000_RX_BUFFER_SIZE];
    unsigned char  TxBuffer[KWP2000_TX_BUFFER_SIZE];
    unsigned char  *Request_Datas;
    unsigned char  *Response_Datas;
    unsigned short kwp2000_Len;
    unsigned char  kwp2000_Checksum;
    unsigned long  tiCom_u32;
    unsigned char  ResponsePending;
} Kwp2000_ComState_t;

typedef struct
{
    unsigned char  typeOfModif;
    unsigned long  newBaudRate;
    unsigned short resetType;
} Kwp2000_Modify_t;


/*
*********************************************************************
* variable
*********************************************************************
*/

extern  Kwp2000_ComState_t   Kwp2000_ComState;
extern  Kwp2000_Modify_t     Kwp2000_Modify;
extern  unsigned long        Kwp2000_ComMode;

/*
*********************************************************************
* function
*********************************************************************
*/

extern void Kwp2000_Timeout(void);
extern void Kwp2000_CommuniationDown(void);
extern void Kwp2000_Init(void);

extern void Kwp2000_AscRxInterrupt( void );
extern void Kwp2000_ComInit_Handle( void );
extern unsigned char Kwp2000_FormatAnalyse(void);
extern void          Kwp2000_HeaderAnalyse(void);
extern unsigned char Kwp2000_PrepareHeader(unsigned char dataSize);
extern unsigned char Kwp2000_ChecksumCalculate(unsigned char *dataBuffer, unsigned short numberOfBytes);
extern unsigned char kwp2000_AddressTest(void);
extern unsigned char Kwp2000_VerifyChecksum(void);
extern void Kwp2000_ProtocolInit( void );

#endif