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

📄 af_set.h

📁 lpc2368关于can模块的代码 对于从事此方面的兄弟有一定帮助
💻 H
字号:
/****************************************Copyright (c)**************************************************
***文件名称:CAN验收滤波测试程序
***作者:张利刚
***单位:中科院微系统所嘉兴分中心网络组
***时间:2008年7月17日

********************************************************************************************************/



/********************************************************************************************************/
#ifndef _AF_SET_H_
#define _AF_SET_H_

/************************************************************************/
/*               头文件包含                                             */
/************************************************************************/
#include "config.h"
/************************************************************************/
/*               C++代码兼容                                             */
/************************************************************************/
#ifdef __cplusplus
{
#endif
/******************************

****宏定义读取AFRAM其实地址的内容

*********************************************/
#define		CAN_ACCEPT_BASE_RAM_ADDR		0xE0038000
#define		REGAFRAM	(*((volatile long *)CAN_ACCEPT_BASE_RAM_ADDR))

/******************************************************************
	定义ARMR寄存器位域
	**作者:	张利刚
	**时间:	2008年7月17日
******************************************************************/	
typedef	union tag_CANAFMR
 {
 	unsigned long	value;
 	struct{
 			unsigned int	AccOff		:1;		//验收滤波关闭位
 			unsigned int	AccBP		:1;		//验收滤波旁路位
 			unsigned int    eFCAN		:1;		//FULLCAN设置位
 			unsigned int	Resv		:28;
 		  }Bits;
 	
 }_CANAFMR,*P_CANAFMR;
 
 /******************************************************************
	标准标识符单元类型定义
	**作者:	张利刚
	**时间:	2008年7月17日
******************************************************************/	
typedef	struct tag_AF_SFF_CELL
{	
	unsigned int	UpId		:11;		//ID1
	unsigned int	UpRsv		:1;		//reservd
	unsigned int	UpDis		:1;		//禁能位
	unsigned int	UpCh		:3;		//控制器号
	
	unsigned int	LoId		:11;		//ID2
	unsigned int	LoRsv		:1;		//reservd
	unsigned int	LoDis		:1;		//禁能位
	unsigned int	LoCh		:3;		//控制器号
}_AF_SFF_CELL,*P_AF_SFF_CELL;


/******************************************************************
	扩展标识符单元类型定义
******************************************************************/	
typedef	struct tag_AF_EFF_CELL
{	
	unsigned int	Id		:29;		//ID
	unsigned int	Ch		:3;		//控制器号
	
}_AF_EFF_CELL,*P_AF_EFF_CELL;


/******************************************************************
	FULLCAN标识符单元类型定义
******************************************************************/	
typedef	struct tag_AF_AUTOSTRORE_MSG
{	
	struct tag_Head
	{
		unsigned int	ID		:11;		//ID1
		unsigned int	RSV5	:5;		//reservd
		unsigned int	DLC		:4;		//禁能位
		unsigned int	RSV12	:12;		//reservd
		unsigned int	SEM		:2;		//reservd
		unsigned int	RSV41	:4;		//reservd
		unsigned int	RTR		:1;		//reservd
		unsigned int	FF		:1;		//reservd
	}Head;
	unsigned long		DATAA;
	unsigned long		DATAB;
}_AF_AUTOSTORE_MSG,*P_AF_AUTOSTORE_MSG;

//Look up table 函数调用状态枚举定义
typedef enum _LUT_BUILD_ERR
{
	LUT_SETTING_OK				=0,
	TOTAL_SIZE_TOO_LARGE		=1,
	FCAN_SIZE_TOO_LARGE			=2,
	EFF_GRP_SIZE_INVALID		=3,
	FCAN_STORE_SIZE_INVALID		=4,
	TABLE_CELL_TOO_LARGE		=5,
	CELL_NUM_INVALID			=6,
	CELL_CONTENT_INVALID		=7	
}LUT_BUILD_ERR;


/*
*********************************************************************************************************
**函数原型		:  	unsigned long AF_Build_LUT(unsigned long FCAN_ncell,
											   unsigned long SFF_INIV_ncell,
											   unsigned long SFF_GRP_ncell,
											   unsigned long EFF_INIV_ncell,
											   unsigned long SFF_GRP_ncell);
**参数说明		:  	各个表的大小
**返回值		:	枚举类型定义
**说	明		:	定义并初始化LOOK UP TABLE
*********************************************************************************************************/
unsigned long AF_Build_LUT(unsigned long FCAN_nCell,
							unsigned long SFF_INIV_nCell,
							unsigned long SFF_GRP_nCell,
							unsigned long EFF_INIV_nCell,
							unsigned long EFF_GRP_nCell);
						   
						   
						   
						   
/**************************************************************************
**函数原型		:  	void AF_SetMode(unsigned long mode);
**参数说明		:  	Ch:CAN控制器号,0表示第一路CAN
**返回值		:	无
**说	明		:	CAN控制器进入各种模式
*****************************************************************************/
void AF_SetMode(unsigned long mode);




/******************************************************
***函数原型:unsigned long AFInitFCANTab(_AF_SFF_CELL *pTab,unsigned long nCell);
***功能:	初始化FullCAN表格
***参数:	pTab表格地址,
***			nCell表格占用CELL的个数
***
***返回值:	参看枚举类型定义
********************************************************/
unsigned long AFInitFCANTab(_AF_SFF_CELL *pTab,unsigned long nCell);


/******************************************************
***函数原型:AFInitSFFInivTab(_AF_SFF_CELL *pTab,unsigned long nCell);
***功能:	初始化独立标准帧表格
***参数:	pTab表格地址,
***			nCell表格占用CELL的个数
***
***返回值:	参看枚举类型定义
********************************************************/
unsigned long AFInitSFFInivTab(_AF_SFF_CELL *pTab,unsigned long nCell);



/******************************************************
***函数原型:AFInitGrpTab(_AF_SFF_CELL *pTab,unsigned long nCell);
***功能:	初始化标准帧范围表格
***参数:	pTab表格地址,
***			nCell表格占用CELL的个数
***
***返回值:	参看枚举类型定义
********************************************************/
unsigned long AFInitSFFGrpTab(_AF_SFF_CELL *pTab,unsigned long nCell);


/******************************************************
***函数原型:AFInitEFFInivTab(_AF_SFF_CELL *pTab,unsigned long nCell);
***功能:	初始化独立扩展帧标识符范围表格
***参数:	pTab表格地址,
***			nCell表格占用CELL的个数
***
***返回值:	参看枚举类型定义
********************************************************/
unsigned long AFInitEFFInivTab(_AF_EFF_CELL *pTab,unsigned long nCell);



/******************************************************
***函数原型:AFInitEFFGrpTab(_AF_SFF_CELL *pTab,unsigned long nCell);
***功能:	初始化扩展帧标识符范围表格
***参数:	pTab表格地址,
***			nCell表格占用CELL的个数
***
***返回值:	参看枚举类型定义
********************************************************/
unsigned long AFInitEFFGrpTab(_AF_EFF_CELL *pTab,unsigned long nCell);



#endif

⌨️ 快捷键说明

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