?? sja_bcanconf.asm
字號:
;************************************************************************
;* 廣州周立功單片機發展有限公司 http://www.zlgmcu.com *
;************************************************************************
;************************************************************************
;* *
;* CAN 控制器SJA1000基本的硬件定義(BasicCAN 工作方式) *
;* *
;************************************************************************
;************************************************************************
;* *
;* 目的: SJA1000基本寄存器\功能位定義,便于用戶使用SJA1000時 *
;* 只需作與其硬件系統相適合的簡單的修改,便能實現SJA1000的 *
;* BasicCAN工作方式的功能 *
;* *
;* 文件名: SJA_BCANCONF.ASM *
;* *
;* 模塊名: -- *
;* *
;* 目標系統: 任何基于任何兼容8051指令的微處理器同SJA1000組成的CAN *
;* 系統 *
;* *
;* 應用語言: Keil ASM-51 or Keil ASM-51 *
;* *
;************************************************************************
;* 版本 :V1.0 *
;* *
;************************************************************************
;* 廣州周立功單片機發展有限公司 保留所有的版權 *
;************************************************************************
;************************************************************************
;*以下的定義用戶要根據自己的微處理器同SJA1000的硬件連接,來修改SJA1000的*
;*片選地址 CONTROLLER_BASE ,暫且假定值7000H *
;************************************************************************
CONTROLLER_BASE EQU 0fa00H ;SJA1000的片選地址
;是操作SJA1000內部寄存器的基址
;************************************************************************
;*以下的定義用戶不可修改 *
;************************************************************************
;************************************************************************
;*以下的定義是SJA1000在BasicCAN工作方式下內部寄存器的定義 *
;************************************************************************
;*控制段寄存器(在內部地址0H---09H) *
;************************************************************************
;控制寄存器;;;復位模式、工作模式均可進行讀寫 *
REG_CONTROL EQU CONTROLLER_BASE+0H ;內部控制寄存器地址;其內容可改變 *
;SJA1000 的狀態 *
BIT_RR EQU 01H ;復位請求控制位,控制寄存器的第0位 *
;=1,;SJA1000進入復位狀態 *
;=0,;SJA1000返回正常工作狀態 *
BIT_RIE EQU 02H ;接收中斷控制位,控制寄存器的第1位 *
;=1,;信息被無錯接收時,SJA1000發出一個 *
;接收中斷信號到微控制器 *
;=0,;SJA1000不發送接收中斷信號 *
BIT_TIE EQU 04H ;發送中斷控制位,控制寄存器的第2位 *
;=1,;當信息被成功發送或發送緩沖器又被 *
;訪問時,(例如,中止發送命令后), *
;SJA1000發出一個中斷信號到微控制器*
;=0,;SJA1000不發送中斷信號 *
BIT_EIE EQU 08H ;出錯中斷控制位,控制寄存器的第3位 *
;=1,;如果出錯或總線狀態改變 *
;SJA1000發出一個中斷信號到微控制器*
;=0,;SJA1000不發送中斷信號 *
BIT_OIE EQU 10H ;超載中斷控制位,控制寄存器的第4位 *
;=1,;如果置位數據溢出位, *
;SJA1000發出一個中斷信號到微控制器*
;=0,;SJA1000不發送中斷信號 *
;BIT_5 ;系統保留位 *
;BIT_6 ;系統保留位 *
;BIT_7 ;系統保留位 *
;命令寄存器;;;復位模式、工作模式 只可進行寫 ;;讀出值為0XFF *
REG_COMMAND EQU CONTROLLER_BASE+01H ;內部命令寄存器地址; *
;SJA1000 的狀態 *
BIT_TR EQU 01H ;發送請求位,命令寄存器的第0位 *
;=1,;信息被發送 *
;=0,;無發送動作 *
BIT_AT EQU 02H ;中止發送位,命令寄存器的第1位 *
;=1,;如果不是在處理過程中, *
;等待處理的發送請求將取消 *
;=0,; *
BIT_RRB EQU 04H ;釋放接收緩沖器位,命令寄存器的第2位 *
;=1,;接收緩沖器中存放信息的內存空間 *
;將被釋放 *
;SJA1000發出一個中斷信號到微控制器*
;=0,; *
BIT_COS EQU 08H ;清除超載狀態位,命令寄存器的第3位 *
;=1,;清除超載狀態 *
;=0,; *
BIT_GTS EQU 10H ;睡眠位; 命令寄存器的第4位 *
;=1,;如果沒有CAN中斷等待和總線活動, *
;SJA1000進入睡眠模式 *
;=0,; *
;BIT_5 ;系統保留位 *
;BIT_6 ;系統保留位 *
;BIT_7 ;系統保留位 *
;狀態寄存器;;;復位模式、工作模式 可進行讀 ; 寫操作無效 *
REG_STATUS EQU CONTROLLER_BASE+02H ;內部狀態寄存器地址; *
BIT_RBS EQU 01H ;接收緩沖器狀態位,狀態寄存器的第0位 *
;=1,;RXFIFO中有可用信息 *
;=0,;無可用信息 *
BIT_DOS EQU 02H ;超載狀態位,狀態寄存器的第1位 *
;=1,;信息丟失,因為RXFIFO中沒有足夠的 *
;空間來存儲它 *
;=0,;自從最后一次清除數據溢出命令執行,
;無數據溢出發生
BIT_TBS EQU 04H ;發送緩沖器狀態位,狀態寄存器的第2位 *
;=1,;CPU可以向發送緩沖器寫信息 *
;=0,;CPU不能訪問發送緩沖器;有信息正 *
;在等待發送或正在發送 *
BIT_TCS EQU 08H ;發送完畢狀態位,狀態寄存器的第3位 *
;=1,;最近一次發送請求被成功處理 *
;=0,;當前發送請求未處理完畢 *
BIT_RS EQU 10H ;接收狀態位; 狀態寄存器的第4位 *
;=1,;SJA1000正在接收信息 *
;=0,;沒有正在接收的信息 *
BIT_TS EQU 20H ;發送狀態位; 狀態寄存器的第4位 *
;=1,;SJA1000正在發送信息 *
;=0,;沒有正在發送的信息 *
BIT_ES EQU 40H ;出錯狀態位; 狀態寄存器的第4位 *
;=1,;至少出現一個錯誤計數器滿或超過 *
;CPU報警限制 *
;=0,;兩個錯誤計數器都在報警限制以下 *
BIT_BS EQU 80H ;總線狀態位; 狀態寄存器的第4位 *
;=1,;總線關閉;SJA1000退出總線活動 *
;=0,;總線開啟;SJA1000加入總線活動 *
;中斷寄存器允許中斷源的識別;;; 只讀 *
REG_INTERRUPT EQU CONTROLLER_BASE+03H ;內部中斷寄存器地址; *
BIT_RI EQU 01H ;接收中斷位,中斷寄存器的第0位 *
;=1,;;當接收FIFO不空和接收中斷 *
;使能時置位此位 *
;=0,;無可用信息 *
BIT_TI EQU 02H ;發送中斷位,中斷寄存器的第1位 *
;=1,;發送緩沖器狀態從0變為1(釋放) *
;和發送中斷使能時,置位此位 *
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -