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

📄 sja_basiccan.h

📁 参考周立功的basic模式的CAN通讯
💻 H
📖 第 1 页 / 共 2 页
字号:
//----------------------------------------------------------------------
// FileName   : SJA_BasicCan.h
// Description: BasicCan 头文件
// DateTime   : 2005-08-31 Create
// Author     : jztx-liuweiming
// Version    : TxCmsPrj Ver1.0
//----------------------------------------------------------------------
// SJA1000, 16M晶振 BasicCan模式, 2005年8月31日调试完成, 参考周立功源代码
// 锦州拓新电力电子公司 刘伟明
//----------------------------------------------------------------------

/************************************************************************
 *   广州周立功单片机发展有限公司    http://www.zlgmcu.com              *
 ************************************************************************
 ************************************************************************
 *                                                                      *
 *  CAN 控制器SJA1000基本的硬件定义(BasicCAN 工作方式)                 *
 *                                                                      *
 ************************************************************************
 ************************************************************************
 *                                                                      *
 *  目的:       SJA1000基本寄存器\功能位定义,便于用户使用SJA1000时     * 
 *              只需作与其硬件系统相适合的简单的修改,便能实现SJA1000   *
 *              的BasicCAN工作方式的功能                                *
 *                                                                      *
 *  文件名:     SJA_BCANCONF.H                                          *
 *                                                                      *
 *  模块名:     --                                                      *
 *                                                                      *
 *  目标系统:   任何基于任何兼容8051指令的微处理器同SJA1000组成的CAN    *
 *              系统                                                    *
 *                                                                      *
 *  应用语言:   Keil C51                                                *
 *                                                                      *
 ************************************************************************
 *                                                                      *
 *  版本 : V1.0                                                         *
 *                                                                      *
 ************************************************************************
 *  广州周立功单片机发展有限公司 保留所有的版权                         *
 ************************************************************************/

#ifndef         BasicCAN
#define         BasicCAN

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

//计算SJA1000在电路中的实际地址: 基址 + 内部寄存器地址

/************************************************************************
 * 以下的定义为SJA1000的内部寄存器的地址,不可修改                      *
 *     各寄存器的具体功能清参阅sja1000的数据手册                        *
 ************************************************************************/
#define         REG_CONTROL       SJA_BaseAdr + 0x00        //内部控制寄存器
#define         REG_COMMAND       SJA_BaseAdr + 0x01        //命令寄存器
#define         REG_STATUS        SJA_BaseAdr + 0x02        //状态寄存器
#define         REG_INTERRUPT     SJA_BaseAdr + 0x03        //中断寄存器
#define         REG_ACR           SJA_BaseAdr + 0x04        //验收代码寄存器
#define         REG_AMR           SJA_BaseAdr + 0x05        //验收屏蔽寄存器
#define         REG_BTR0          SJA_BaseAdr + 0x06        //总线定时寄存器0 
#define         REG_BTR1          SJA_BaseAdr + 0x07        //总线定时寄存器1 
#define         REG_OCR           SJA_BaseAdr + 0x08        //输出控制寄存器
#define         REG_TEST          SJA_BaseAdr + 0x09        //测试寄存器

//以下为发送缓冲区寄存器定义

#define         REG_TxBuffer1     SJA_BaseAdr + 0x0A         //发送缓冲区1
#define         REG_TxBuffer2     SJA_BaseAdr + 0x0B         //发送缓冲区2
#define         REG_TxBuffer3     SJA_BaseAdr + 0x0C         //发送缓冲区3
#define         REG_TxBuffer4     SJA_BaseAdr + 0x0D         //发送缓冲区4
#define         REG_TxBuffer5     SJA_BaseAdr + 0x0E         //发送缓冲区5
#define         REG_TxBuffer6     SJA_BaseAdr + 0x0F         //发送缓冲区6
#define         REG_TxBuffer7     SJA_BaseAdr + 0x10         //发送缓冲区7
#define         REG_TxBuffer8     SJA_BaseAdr + 0x11         //发送缓冲区8
#define         REG_TxBuffer9     SJA_BaseAdr + 0x12         //发送缓冲区9
#define         REG_TxBuffer10    SJA_BaseAdr + 0x13         //发送缓冲区10

//以下为接收缓冲区寄存器定义
#define         REG_RxBuffer1     SJA_BaseAdr + 0x14         //接收缓冲区1
#define         REG_RxBuffer2     SJA_BaseAdr + 0x15         //接收缓冲区2
#define         REG_RxBuffer3     SJA_BaseAdr + 0x16         //接收缓冲区3
#define         REG_RxBuffer4     SJA_BaseAdr + 0x17         //接收缓冲区4
#define         REG_RxBuffer5     SJA_BaseAdr + 0x18         //接收缓冲区5
#define         REG_RxBuffer6     SJA_BaseAdr + 0x19         //接收缓冲区6
#define         REG_RxBuffer7     SJA_BaseAdr + 0x1A         //接收缓冲区7
#define         REG_RxBuffer8     SJA_BaseAdr + 0x1B         //接收缓冲区8
#define         REG_RxBuffer9     SJA_BaseAdr + 0x1C         //接收缓冲区9
#define         REG_RxBuffer10    SJA_BaseAdr + 0x1D         //接收缓冲区10

/************************************************************************
 *内部地址 01EH 备用                                                    *
 ************************************************************************/

/************************************************************************
 *时钟分频寄存器(内部地址01FH)                                          *
 ************************************************************************/
#define         REG_CDR           SJA_BaseAdr+0x1F          //时钟分频寄存器

/************************************************************************
 *定义指针                                                              *
 ************************************************************************/
 extern unsigned char             xdata  *Sja_BasicCan;    

/************************************************************************
 *定义命令字                                                            *
 ************************************************************************/ 
#define         CMD_SEND             0x01       //发送请求命令
#define         CMD_ABORT_SEND       0x02       //夭折发送命令
#define         CMD_RELEASE_RXBUFF   0x04       //释放接收缓冲区
#define         CMD_CLEAR_OVER_STAT  0x08       //清除超载状态
#define         CMD_GOTO_SLEEP       0x10       //进入睡眠状态命令  
/************************************************************************
 *定义16M的晶体下,CAN总线波特率                                        *
 ************************************************************************/
#define         ByteRate_20k      0x00          //波特率20kbps
#define         ByteRate_40k      0x01          //波特率40kbps
#define         ByteRate_50k      0x02          //波特率50kbps
#define         ByteRate_80k      0x03          //波特率80kbps
#define         ByteRate_100k     0x04          //波特率100kbps
#define         ByteRate_125k     0x05          //波特率125kbps
#define         ByteRate_200k     0x06          //波特率200kbps
#define         ByteRate_250k     0x07          //波特率250kbps
#define         ByteRate_400k     0x08          //波特率400kbps
#define         ByteRate_500k     0x09          //波特率500kbps
#define         ByteRate_666k     0x0a          //波特率666kbps
#define         ByteRate_800k     0x0b          //波特率800kbps
#define         ByteRate_1000k    0x0c          //波特率1000kbps
/*-------------------------------------------------------------------------------------------
 *  以下为BASICCAN SJA1000的错误字                                                           
 -------------------------------------------------------------------------------------------*/

⌨️ 快捷键说明

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