⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lpc2000_can.h

📁 在lpc2468上使用
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************
* FILENAME:      LPC2000_CAN.h                                              *
*                                                                           *
* VERSION:       V1.0                                                       *
*                                                                           *
* DESCRIPTION:   Header File for CAN Driver LPC2300_CAN_Driver.c            *  
*                                                                          	*
* TOOLS:         KEIL uVision3                                          	*
*                                                                           *
*                                                                           *
* REVISION HISTORY:                                                         *
* Version  Author          Date          Remarks                            *
* 1.0      Anthony Xie     10/10/2005    - -                                *
*****************************************************************************/

/**
 * @file
 * CAN Controller Driver Header File
 */
#ifndef LPC2000CANDRIVER_H
#define LPC2000CANDRIVER_H

/*****************************************************************************/
/* Standard include files                                                    */
/*****************************************************************************/

/*****************************************************************************/
/* Project include files                                                     */
/*****************************************************************************/
#include "LPC2000_CAN_GAF.h"


/*****************************************************************************/
/* Types                                                                     */
/*****************************************************************************/

/**
 * Data structure for a CAN message to be transmitted
 */
typedef struct
{
   UInt32   TFI;              //0x8xxxxxxx for 29bits length ID, 0x0xxxxxxx for 11 bits
   UInt32   ID;
   UInt32   DataField[2];

} lpc2000CANdriver_TXObj_t, *plpc2000CANdriver_TXObj_t;

/**
 * Data structure for a CAN message to be received
 */
typedef struct
{
   unsigned char FULLCALmsg;	
   UInt32   RFS;
   UInt32   ID;
   UInt32   DataField[2];

} lpc2000CANdriver_RXObj_t, *plpc2000CANdriver_RXObj_t;

/*****************************************************************************/
/* Defines                                                                   */
/*****************************************************************************/

/**
 * Definition of return values
 */
#define LPC2000_CANDRIVER_INITIAL                                    0

#define LPC2000_CANDRIVER_OK                                         5   
#define LPC2000_CANDRIVER_ERR                                  		 10   

#define LPC2000_CANDRIVER_ERR_WRONG_CAN_CHANNEL_NUMBER               30
#define LPC2000_CANDRIVER_ERR_WRONG_CAN_TxBUFFER_NUMBER              31
#define LPC2000_CANDRIVER_ERR_TRANSMIT_BUFFER1_NOT_FREE              40
#define LPC2000_CANDRIVER_ERR_TRANSMIT_BUFFER2_NOT_FREE              50
#define LPC2000_CANDRIVER_ERR_TRANSMIT_BUFFER3_NOT_FREE              60

#define LPC2000_CANDRIVER_ERR_TABLE_ERROR_IN_STD_FULLCAN_SECTION     80
#define LPC2000_CANDRIVER_ERR_TABLE_ERROR_IN_STD_INDIVIDUAL_SECTION  90
#define LPC2000_CANDRIVER_ERR_TABLE_ERROR_IN_STD_GROUP_SECTION       100
#define LPC2000_CANDRIVER_ERR_TABLE_ERROR_IN_EXT_INDIVIDUAL_SECTION  110
#define LPC2000_CANDRIVER_ERR_TABLE_ERROR_IN_EXT_GROUP_SECTION       120
#define LPC2000_CANDRIVER_ERR_NOT_ENOUGH_MEMORY_SPACE                130


/**
 * Bit Timing Values for 16MHz clk frequency
 */
#define LPC2000_CANDRIVER_CANBITRATE250K12MHZ          0x0001C002

/**
 * Bit Timing Values for 16MHz clk frequency
 */
#define LPC2000_CANDRIVER_CANBITRATE100K16MHZ          0x001C0009
#define LPC2000_CANDRIVER_CANBITRATE125K16MHZ          0x001C0007
#define LPC2000_CANDRIVER_CANBITRATE250K16MHZ          0x001C0003
#define LPC2000_CANDRIVER_CANBITRATE500K16MHZ          0x001C0001
#define LPC2000_CANDRIVER_CANBITRATE1000K16MHZ         0x001C0000


/**
 * Bit Timing Values for 20MHz clk frequency
 */
#define LPC2000_CANDRIVER_CANBITRATE100K20MHZ          0x00140018
#define LPC2000_CANDRIVER_CANBITRATE125K20MHZ          0x002B0009
#define LPC2000_CANDRIVER_CANBITRATE250K20MHZ          0x002B0004
#define LPC2000_CANDRIVER_CANBITRATE500K20MHZ          0x00140004
#define LPC2000_CANDRIVER_CANBITRATE1000K20MHZ         0x00250001

/**
 * Bit Timing Values for 24MHz clk frequency
 */
#define LPC2000_CANDRIVER_CANBITRATE33K24MHZ           0x001C002C	
#define LPC2000_CANDRIVER_CANBITRATE83K24MHZ           0x001C0011
#define LPC2000_CANDRIVER_CANBITRATE100K24MHZ          0x001C000E
#define	LPC2000_CANDRIVER_CANBITRATE125K24MHZ          0x001C000B
#define LPC2000_CANDRIVER_CANBITRATE250K24MHZ          0x001C0005
#define LPC2000_CANDRIVER_CANBITRATE500K24MHZ          0x001C0002
#define LPC2000_CANDRIVER_CANBITRATE1000K24MHZ         0x00180001

/**
 * Bit Timing Values for 48MHz clk frequency
 */
#define LPC2000_CANDRIVER_CANBITRATE100K48MHZ          0x002B001D
#define LPC2000_CANDRIVER_CANBITRATE125K48MHZ          0x002B0017
#define LPC2000_CANDRIVER_CANBITRATE250K48MHZ          0x002B000B
#define LPC2000_CANDRIVER_CANBITRATE500K48MHZ          0x002B0005
#define LPC2000_CANDRIVER_CANBITRATE1000K48MHZ         0x002B0002

/**
 * Bit Timing Values for 60MHz clk frequency
 */
#define LPC2000_CANDRIVER_CANBITRATE100K60MHZ          0x00180031
#define LPC2000_CANDRIVER_CANBITRATE125K60MHZ          0x00180027
#define LPC2000_CANDRIVER_CANBITRATE250K60MHZ          0x00180013
#define LPC2000_CANDRIVER_CANBITRATE500K60MHZ          0x00180009
#define LPC2000_CANDRIVER_CANBITRATE1000K60MHZ         0x00180004


/**
 * Pre-defined CAN channel identifier
 */
#define LPC2000_CANCHANNEL_1            0x01
#define LPC2000_CANCHANNEL_2            0x02
#define LPC2000_CANCHANNEL_3            0x03
#define LPC2000_CANCHANNEL_4            0x04

/**
 * Pre-defined transmit buffer identifier
 */
#define LPC2000_TXB_1                   0x01
#define LPC2000_TXB_2                   0x02
#define LPC2000_TXB_3                   0x03

/**
 * Pre-defined Acceptance filter modes
 */
#define LPC2000_ACC_ON                  0x00
#define LPC2000_ACC_OFF                 0x01
#define LPC2000_ACC_BYPASS              0x03
#define LPC2000_ACCF_FULLCAN	        0x04

/**
 * Pre-defined CAN controller operating modes
 */

#define CAN_RESET_MODE            		0x01
#define CAN_OPERATING_MODE                0x00
#define CAN_LISTENONLY_MODE               0x02
#define CAN_SELFTEST_MODE                 0x04


/*****************************************************************************/
/* External Global Variables                                                 */
/*****************************************************************************/
extern lpc2000CANdriver_TXObj_t CAN_Send_Data[];
extern lpc2000CANdriver_RXObj_t CAN_Rcv_Data[];

extern const lpc2000CANdriver_ACFilter_t  gklpc2000CANdriver_StdFULLCAN_Section[];
extern const lpc2000CANdriver_ACFilter_t  gklpc2000CANdriver_StdIndividualSection[];
extern const lpc2000CANdriver_ACFilter_t  gklpc2000CANdriver_StdGroupSection[];
extern const lpc2000CANdriver_ACFilterx_t  gklpc2000CANdriver_ExtIndividualSection[];
extern const lpc2000CANdriver_ACFilterx_t  gklpc2000CANdriver_ExtGroupSection[];

extern UInt32 CAN1Tx_Return_Message[5];
extern UInt32 CAN2Rx_Return_Message_Flag[10];
extern UInt8 CAN_Rcv_Data_Counter;
extern CanStatusCode Return_Value;
extern CanStatusCode CAN_Rcv_Status;

extern const UInt8 LiuJiaju_Send[];
extern const UInt8 LiuJiaju_Send1[];
extern const UInt8 LiuJiaju_IRQ[];
extern const UInt8 LiuJiaju_FULLCAN_Rec[];
extern const UInt8 LiuJiaju_AF_Rec[];
extern const UInt8 LiuJiaju_FULLCAN_Rec_complete[];
extern const UInt8 LiuJiaju_AF_Rec_complete[];
extern const UInt8 CAN_Error_10[];
extern const UInt8 CAN_Error_30[];
extern const UInt8 CAN_Error_31[];
extern const UInt8 CAN_Error_40[];
extern const UInt8 CAN_Error_50[];
extern const UInt8 CAN_Error_60[];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -