?? sja1000reg.h
字號:
/*
********************************************************************************************************************
*描述: 獨立的CAN 控制器SJA1000寄存器說明頭文件
*文件名: SJA1000REG.H
*應用語言: KEIL C51
*版本 : V1.01
*廣州周立功單片機發展有限公司 保留所有的版權
********************************************************************************************************************
*/
#ifndef _SJA1000REG_H
#define _SJA1000REG_H
/*
********************************************************************************************************************
* 判斷定義BasicCAN模式還是PeliCAN模式
********************************************************************************************************************
*/
#ifdef _SJA_PELICAN_MODE_
/*
********************************************************************************************************************
* PeliCAN 模式寄存器定義
********************************************************************************************************************
*/
/*$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 寄存器功能保留
********************************************************************************************************************
*/
/*
********************************************************************************************************************
* 其他寄存器的地址定義 PeliCAN模式
********************************************************************************************************************
*/
#define REG_CAN_ALC 11 //仲裁丟失捕捉寄存器
#define REG_CAN_ECC 12 //錯誤捕捉寄存器
#define REG_CAN_EWLR 13 //錯誤報警限制寄存器
#define REG_CAN_RXERR 14 //RX 錯誤計數器寄存器
#define REG_CAN_TXERR 15 //TX 錯誤計數器寄存器
/*
********************************************************************************************************************
* 驗收濾波器寄存器的地址定義 PeliCAN模式 注:只在復位模式下有效
********************************************************************************************************************
*/
#define REG_CAN_ACR0 16 //驗收代碼0寄存器
#define REG_CAN_ACR1 17 //驗收代碼1寄存器
#define REG_CAN_ACR2 18 //驗收代碼2寄存器
#define REG_CAN_ACR3 19 //驗收代碼3寄存器
#define REG_CAN_AMR0 20 //驗收屏蔽0寄存器
#define REG_CAN_AMR1 21 //驗收屏蔽1寄存器
#define REG_CAN_AMR2 22 //驗收屏蔽2寄存器
#define REG_CAN_AMR3 23 //驗收屏蔽3寄存器
/*
********************************************************************************************************************
* Tx 緩沖器的地址定義 PeliCAN 模式
********************************************************************************************************************
*/
/*僅寫地址*/
#define REG_CAN_TXFMINFO 16 //TX 幀信息(標準幀、擴展幀)寄存器
#define REG_CAN_TXBUF1 17 //TX 幀信息(標準幀、擴展幀)識別碼1寄存器
#define REG_CAN_TXBUF2 18 //TX 幀信息(標準幀、擴展幀)識別碼2寄存器
#define REG_CAN_TXBUF3 19 //TX 幀信息(標準幀數據1、擴展幀識別碼3)寄存器
#define REG_CAN_TXBUF4 20 //TX 幀信息(標準幀數據2、擴展幀識別碼4)寄存器
#define REG_CAN_TXBUF5 21 //TX 幀信息(標準幀數據3、擴展幀數據1)寄存器
#define REG_CAN_TXBUF6 22 //TX 幀信息(標準幀數據4、擴展幀數據2)寄存器
#define REG_CAN_TXBUF7 23 //TX 幀信息(標準幀數據5、擴展幀數據3)寄存器
#define REG_CAN_TXBUF8 24 //TX 幀信息(標準幀數據6、擴展幀數據4)寄存器
#define REG_CAN_TXBUF9 25 //TX 幀信息(標準幀數據7、擴展幀數據5)寄存器
#define REG_CAN_TXBUF10 26 //TX 幀信息(標準幀數據8、擴展幀數據6)寄存器
#define REG_CAN_TXBUF11 27 //TX 幀信息 (擴展幀數據7)寄存器
#define REG_CAN_TXBUF12 28 //TX 幀信息 (擴展幀數據8)寄存器
/*僅讀地址*/
#define REG_CAN_TXFMRD 96 //讀取TX 幀信息(標準幀、擴展幀)寄存器
#define REG_CAN_TXRD1 97 //讀取TX 幀信息(標準幀、擴展幀)識別碼1寄存器
#define REG_CAN_TXRD2 98 //讀取TX 幀信息(標準幀、擴展幀)識別碼2寄存器
#define REG_CAN_TXRD3 99 //讀取TX 幀信息(標準幀數據1、擴展幀識別碼3)寄存器
#define REG_CAN_TXRD4 100 //讀取TX 幀信息(標準幀數據2、擴展幀識別碼4)寄存器
#define REG_CAN_TXRD5 101 //讀取TX 幀信息(標準幀數據3、擴展幀數據1)寄存器
#define REG_CAN_TXRD6 102 //讀取TX 幀信息(標準幀數據4、擴展幀數據2)寄存器
#define REG_CAN_TXRD7 103 //讀取TX 幀信息(標準幀數據5、擴展幀數據3)寄存器
#define REG_CAN_TXRD8 104 //讀取TX 幀信息(標準幀數據6、擴展幀數據4)寄存器
#define REG_CAN_TXRD9 105 //讀取TX 幀信息(標準幀數據7、擴展幀數據5)寄存器
#define REG_CAN_TXRD10 106 //讀取TX 幀信息(標準幀數據8、擴展幀數據6)寄存器
#define REG_CAN_TXRD11 107 //讀取TX 幀信息 (擴展幀數據7)寄存器
#define REG_CAN_TXRD12 108 //讀取TX 幀信息 (擴展幀數據8)寄存器
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -