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

📄 canreg.h

📁 以LPC2194为平台开发的整车ECU控制器程序
💻 H
📖 第 1 页 / 共 2 页
字号:
		UINT32	TCS1_BIT 		:1;		//TxBUF1的数据发送完成
		UINT32	RS1_BIT 		:1;		//正在接收
		UINT32	TS1_BIT 		:1;		//TxBUF1的数据正在发送
		UINT32	ES1_BIT 		:1;		//错误认可
		UINT32	BS1_BIT 		:1;		//总线错误
		UINT32	RBS2_BIT 		:1;		//
		UINT32	DOS2_BIT 		:1;		//
		UINT32	TBS2_BIT 		:1;		// TxBUF2锁定
		UINT32	TCS2_BIT 		:1;		// TxBUF2的数据发送完成
		UINT32	RS2_BIT 		:1;		//
		UINT32	TS2_BIT 		:1;		// TxBUF2的数据正在发送
		UINT32	ES2_BIT 		:1;		//
		UINT32	BS2_BIT 		:1;		//
		UINT32	RBS3_BIT 		:1;		//
		UINT32	DOS3_BIT 		:1;		//
		UINT32	TBS3_BIT 		:1;		// TxBUF3锁定
		UINT32	TCS3_BIT 		:1;		// TxBUF3的数据发送完成
		UINT32	RS3_BIT 		:1;		//
		UINT32	TS3_BIT 		:1;		// TxBUF3的数据正在发送
		UINT32	ES3_BIT 		:1;		//
		UINT32	BS3_BIT 		:1;		//
		UINT32	RSV_BIT8		:8;		//
	}Bits;
}uCANSR,*P_uCANSR;
//CANRFS寄存器的数据类型定义
typedef	union		_canrfs_
{
	UINT32		Word;				//字操作定义
	struct
	{
		UINT32	IDIN_BIT 		:10;		//ID索引值
		UINT32	BP_BIT 			:1;		//BP
		UINT32	RSV_BIT5 		:5;		//保留
		UINT32	DLC_BIT 		:4;		//数据长度
		UINT32	RSV_BIT10		:10;		//保留
		UINT32	RTR_BIT 		:1;		//远程帧、数据帧识别位
		UINT32	FF_BIT 			:1;		//扩展帧、标准帧识别位
	}Bits;
}uCANRFS,*P_uCANRFS;
typedef union _pgn_
{
  UINT32 Word;
  struct     _etxFramePGN_
	{
	 UINT32  PS          :8;  //PS是特定PDU
	 UINT32  PF          :8;  //PF是PDU格式
	 //UINT32  DP          :1;  //DP是数据页
	// UINT32  R           :1;  //R是保留位
	 UINT32  RSV_BIT14 	 :16;  //保留 
	}stcPGN;
}uPGN,*P_uPGN;
//CANID寄存器的数据类型定义
typedef	union		_canid_
{
	UINT32		Word;					//字操作定义
	union	_frame_format
	{
		struct		_strFrameFm_				//标准帧结构
		{
			UINT32	ID_BIT 		:11;
			UINT32	RSV_BIT21	:21;
		}stcSTRFRFM;
		struct		_etxFrameFm_				//远程帧结构
		{
			//UINT32	ID_BIT 		:29;
			UINT32  SA          :8;  //SA是源地址
			UINT32  PS          :8;  //PS是特定PDU
			UINT32  PF          :8;  //PF是PDU格式
			UINT32  DP          :1;  //DP是数据页
			UINT32  R           :1;  //R是保留位
			UINT32  P           :3;  //P是优先级
			UINT32	RSV_BIT3 	:3;
		}stcETXFRFM;
	}FrameFm;
}uCANID,*P_uCANID;
//数据寄存器数据类型定义
typedef	union		_candf_
{
	UINT32		Word;					//字操作定义
	struct
	{
		UINT32	Data1_BIT 		:8;			//数据字节
		UINT32	Data2_BIT 		:8;
		UINT32	Data3_BIT 		:8;
		UINT32	Data4_BIT 		:8;
	}Bits;
}uCANDF,*P_uCANDF;
//CANTFI寄存器的数据类型定义
typedef	union		_cantfi_
{
	UINT32		Word;				//字节操作定义
	struct
	{
		UINT32	PRIO_BIT 		:8;		//缓冲区数据发送优先级的值
		UINT32	RSV_BIT8		:8;
		UINT32	DLC_BIT 		:4;		//发送数据长度
		UINT32	RSV_BIT10		:10;
		UINT32	RTR_BIT 		:1;		//远程帧、数据帧辨别位
		UINT32	FF_BIT 			:1;		//扩展帧、标准帧辨别位
	}Bits;
}uCANTFI,*P_uCANTFI;
//定义发送帧结构
typedef	struct		_stcTXBUF_
{
	uCANTFI		TxFrameInfo;	//发送帧信息结构
	uCANID		TxCANID;		//发送帧信息ID
	uCANDF		CANTDA;		//发送数据1~4字节
	uCANDF		CANTDB;		//发送数据5~8字节
}*P_stcTxBUF,stcTxBUF;

//定义集中发送状态寄存器结构
typedef	union		_uCANTxSR_
{
	UINT32		Word;				//字操作定义
	struct
	{
		UINT32	TS1_BIT 		:1;		//CAN1正在发送状态
		UINT32	TS2_BIT 		:1;		//CAN2正在发送状态
		UINT32	TS3_BIT 		:1;		//CAN3正在发送状态
		UINT32	TS4_BIT 		:1;		//CAN4正在发送状态
		UINT32	RSV_BIT1		:4;		//保留
		UINT32	TBS1_BIT 		:1;		//CAN1发送缓冲区锁定状态
		UINT32	TBS2_BIT 		:1;		//CAN2发送缓冲区锁定状态
		UINT32	TBS3_BIT 		:1;		//CAN3发送缓冲区锁定状态
		UINT32	TBS4_BIT 		:1;		//CAN4发送缓冲区锁定状态
		UINT32	RSV_BIT2 		:4;		//
		UINT32	TCS1_BIT 		:1;		//CAN1发送完成状态
		UINT32	TCS2_BIT 		:1;		//CAN2发送完成状态
		UINT32	TCS3_BIT 		:1;		//CAN3发送完成状态
		UINT32	TCS4_BIT 		:1;		//CAN4发送完成状态
		UINT32	RSV_BIT12		:12;		//保留
	}Bits;
}*P_uCANTxSR,uCANTxSR;
//定义集中接收状态寄存器结构
typedef	union		_uCANRxSR_
{
	UINT32		Word;				//字操作定义
	struct
	{
		UINT32	RS1_BIT 		:1;		//CAN1正在接收状态
		UINT32	RS2_BIT 		:1;		//CAN2正在接收状态
		UINT32	RS3_BIT 		:1;		//CAN3正在接收状态
		UINT32	RS4_BIT 		:1;		//CAN4正在接收状态
		UINT32	RSV_BIT1		:4;		//保留
		UINT32	RBS1_BIT 		:1;		//CAN1接收缓冲区有效
		UINT32	RBS2_BIT 		:1;		//CAN2接收缓冲区有效
		UINT32	RBS3_BIT 		:1;		//CAN3接收缓冲区有效
		UINT32	RBS4_BIT 		:1;		//CAN4接收缓冲区有效
		UINT32	RSV_BIT2 		:4;		//
		UINT32	DOS1_BIT 		:1;		//CAN1接收缓冲区溢出
		UINT32	DOS2_BIT 		:1;		//CAN2接收缓冲区溢出
		UINT32	DOS3_BIT 		:1;		//CAN3接收缓冲区溢出
		UINT32	DOS4_BIT 		:1;		//CAN4接收缓冲区溢出
		UINT32	RSV_BIT12		:12;		//保留
	}Bits;
}*P_uCANRxSR, uCANRxSR;

//RxBuf Struct
typedef	struct	_stcRXBUF_
{
	uCANRFS	CANRcvFS;
	uCANID	RxCANID;
	uCANDF	CANRDA;
	uCANDF	CANRDB;
}*P_stcRxBUF,stcRxBUF;

//定义集中其他状态寄存器结构
typedef	union		_uCANMSR_
{
	UINT32		Word;				//字操作定义
	struct
	{
		UINT32	ES1_BIT 		:1;		//CAN1错误报警
		UINT32	ES2_BIT 		:1;		//CAN2错误报警
		UINT32	ES3_BIT 		:1;		//CAN3错误报警
		UINT32	ES4_BIT 		:1;		//CAN4错误报警
		UINT32	RSV_BIT1		:4;		//保留
		UINT32	BS1_BIT 		:1;		//CAN1总线脱离
		UINT32	BS2_BIT 		:1;		//CAN2总线脱离
		UINT32	BS3_BIT 		:1;		//CAN3总线脱离
		UINT32	BS4_BIT 		:1;		//CAN4总线脱离
		UINT32	RSV_BIT20		:20;		//保留
	}Bits;
}*P_uCANMSR, uCANMSR;
//定义验收滤波模式寄存器结构
typedef	union		_canafmr_
{
	UINT32	Word;
	struct
	{
		UINT32	AccOff_BIT 		:1;
		UINT32	AccBP_BIT 		:1;
		UINT32	eFCAN_BIT 		:1;
		UINT32	RSV_BIT29 		:29;
	}Bits;
}uCANAFMR,*P_uCANAFMR;
//验收滤波器表格单个标志符表格起始地址数据结构定义
typedef	union	_canF_sa_
{
	UINT32	Word;
	struct
	{
		UINT32	RSV_BIT2 		:2;
		UINT32	SADR_BIT 		:9;
		UINT32	RSV_BIT21 		:21;
	}Bits;
}uCANF_sa,*P_uCANF_sa;
//验收滤波器表格标志符组表格起始地址数据结构定义
typedef	union	_canGRP_sa_
{
	UINT32	Word;
	struct
	{
		UINT32	RSV_BIT2 		:2;
		UINT32	SADR_BIT 		:10;
		UINT32	RSV_BIT20 		:20;
	}Bits;
}uCANGRP_sa,*P_uCANGRP_sa;
//LUT错误寄存器数据结构定义
typedef	union	_canLUTerr
{
	UINT32	Word;
	struct
	{
		UINT32	LERR_BIT 		:1;
		UINT32	RSV_BIT31 		:31;
	}Bits;
}uCANLUTerr,*P_uCANLUTerr;

#endif
/*********************************************************************************************************
**                            			End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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