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

📄 sja_peliconf.h

📁 can-汇编测试程序
💻 H
📖 第 1 页 / 共 2 页
字号:
/*
 ********************************************************************************************************************
 *描述:    独立的CAN 控制器SJA1000基本硬件头文件定义(CAN 工作方式)
 *文件名:   SJA_PELIConf.H
 *应用语言: KEIL C51
 *版本 :    V1.0
 *广州周立功单片机发展有限公司 保留所有的版权
 ********************************************************************************************************************
 */

 /*$page*/

 #ifndef        _PELICANCONF_H
 #define        _PELICANCONF_H	1
 /*
 ********************************************************************************************************************
 ** 关于PeliCAN模式下一些必须说明的问题:
 **     1、PeliCAN模式的选择:sja1000上电默认的模式为BasicCAN模式,所以上电后应在复位模式下首先将时钟分频器中的CAN 模
 **式控制位(CDR.7)置为1
 **     2、PeliCAN模式下标准帧和扩展帧的应用:
 **     3、双滤波器的应用
 **     4、自我测试功能的应用
 ********************************************************************************************************************
 */

 /*$page*/

 /*
 ********************************************************************************************************************
 *SJA1000与微处理器的接口是以外部存储器的方式,所以以下的基址定义,用户应根据自己的实际电路来进行调整
 ********************************************************************************************************************
 */
unsigned    char    xdata   SJA_BaseAdr     _at_    0xfa00;    // 定义sja1000的片选基址 0xfa00


/*$page*/

/*
 ********************************************************************************************************************
 * 以下的定义为SJA1000的PeliCAN模式内部寄存器的地址,不可修改;各寄存器的具体功能清参阅sja1000的数据手册
 ********************************************************************************************************************
 */
/*$page*/

/*
 ********************************************************************************************************************
 * 模式和控制寄存器的地址和位定义PeliCAN模式
 ********************************************************************************************************************
 */
#define         REG_CAN_MOD       0x00                      //内部控制寄存器

#define         RM_RR_Bit         0x01                      //复位模式(请求)位
#define         LOM_Bit           0x02                      //监听模式位
#define         STM_Bit           0x04                      //自我测试模式位
#define         AFM_Bit           0x08                      //验收滤波器模式位
#define         SM_Bit            0x10                      //睡眠模式位

/*
 ********************************************************************************************************************
 * 命令寄存器的地址和位定义 PeliCAN模式
 ********************************************************************************************************************
 */
#define         REG_CAN_CMR       0x01                      //命令寄存器
#define         TR_Bit            0x01                      //发送请求位
#define         AT_Bit            0x02                      //中止发送位
#define         RRB_Bit           0x04                      //释放接收缓冲器位
#define         CDO_Bit           0x08                      //清除数据溢出位
#define         SRR_Bit           0x10                      //自身接收请求位

/*
 ********************************************************************************************************************
 * 状态寄存器的地址和位定义 PeliCAN模式
 ********************************************************************************************************************
 */
#define         REG_CAN_SR        0x02                      //状态寄存器

#define         RBS_Bit           0x01                      //接收缓冲器状态位
#define         DOS_Bit           0x02                      //数据溢出状态位
#define         TBS_Bit           0x04                      //发送缓冲器状态位
#define         TCS_Bit           0x08                      //发送完成状态位
#define         RS_Bit            0x10                      //接收状态位
#define         TS_Bit            0x20                      //发送状态位
#define         ES_Bit            0x40                      //错误状态位
#define         BS_Bit            0x80                      //总线状态位

/*
 ********************************************************************************************************************
 * 中断寄存器的地址和位定义 PeliCAN模式
 ********************************************************************************************************************
 */
#define         REG_CAN_IR        0x03                      //中断寄存器
#define         RI_Bit            0x01                      //接收中断位
#define         TI_Bit            0x02                      //发送中断位
#define         EI_Bit            0x04                      //错误警告中断位
#define         DOI_Bit           0x08                      //数据溢出中断位
#define         WUI_Bit           0x10                      //唤醒中断位
#define         EPI_Bit           0x20                      //错误消极中断位
#define         ALI_Bit           0x40                      //仲裁丢失中断位
#define         BEI_Bit           0x80                      //总线错误中断位

/*
 ********************************************************************************************************************
 * 中断寄存器的地址和位定义 PeliCAN模式
 ********************************************************************************************************************
 */
#define         REG_CAN_IER       0x04                      //中断使能寄存器
#define         RIE_Bit           0x01                      //接收中断使能位
#define         TIE_Bit           0x02                      //发送中断使能位
#define         EIE_Bit           0x04                      //错误警告中断使能位
#define         DOIE_Bit          0x08                      //数据溢出中断使能位
#define         WUIE_Bit          0x10                      //唤醒中断使能位
#define         EPIE_Bit          0x20                      //错误消极中断使能位
#define         ALIE_Bit          0x40                      //仲裁丢失中断使能位
#define         BEIE_Bit          0x80                      //总线错误中断使能位

/*
 ********************************************************************************************************************
 * 0x05  寄存器功能保留
 ********************************************************************************************************************
 */

/*
 ********************************************************************************************************************
 * 总线定时器寄存器的地址和位定义 PeliCAN模式
 ********************************************************************************************************************
 */
#define         REG_CAN_BTR0      0x06                       //总线定时器0寄存器
#define         REG_CAN_BTR1      0x07                      //总线定时器1寄存器
#define         SAM_Bit           0x80                      //采样模式位;0==总线被采样1次;1== 总线被采样3次

/*
 ********************************************************************************************************************
 * 输出控制寄存器的地址和位定义 PeliCAN模式
 ********************************************************************************************************************
 */
#define         REG_CAN_OCR       0x08                      //输出控制寄存器
           /*OCMODE1 ,OCMODE0 */
#define         BiPhaseMode       0x00                      //双相输出模式
#define         NormalMode        0x02                      //正常输出模式
#define         ClkOutMode        0x03                      //时钟输出模式
           /*TX1 的输出管脚配置*/
#define         OCPOL1_Bit        0x20                      //输出极性控制位
#define         Tx1Float          0x00                      //配置为悬空
#define         Tx1PullDn         0x40                      //配置为下拉
#define         Tx1PullUp         0x80                      //配置为上拉
#define         Tx1PshPull        0Xc0                      //配置为推挽
            /*TX0 的输出管脚配置*/
#define         OCPOL0_Bit        0x04                      //输出极性控制位
#define         Tx0Float          0x00                      //配置为悬空
#define         Tx0PullDn         0x08                      //配置为下拉
#define         Tx0PullUp         0x10                      //配置为上拉
#define         Tx0PshPull        0X18                      //配置为推挽

/*
 ********************************************************************************************************************
 * 测试寄存器的地址定义 PeliCAN模式
 ********************************************************************************************************************
 */
#define         REG_CAN_TEST      0x09          //测试寄存器

/*
 ********************************************************************************************************************
 * 10  寄存器功能保留
 ********************************************************************************************************************

⌨️ 快捷键说明

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