| 位 | 符號 | 名稱 | 值 | 功 能 |
| CR7 | - | - | - | 保留 |
| CR6 | - | - | - | 保留 |
| CR5 | - | - | - | 保留 |
| CR4 | OIE | 溢出中斷使能 | 1 | 使能。如果置位數(shù)據(jù)溢出位,微控制器接收溢出中斷信號 |
| 0 | 禁止。微控制器不從SJA1000接收溢出中斷信號 | |||
| CR3 | EIE | 錯誤中斷使能 | 1 | 使能。若出錯或總線狀態(tài)改變,此中斷信號有效 |
| 0 | 禁止。微控制器不從SJA1000接收錯誤中斷信號 | |||
| CR2 | TIE | 發(fā)送中斷使能 | 1 | 使能。當(dāng)信息被成功發(fā)送或發(fā)送緩沖器又被訪問時,產(chǎn)生中斷信號 |
| 0 | 禁止。微控制器不從SJA1000接收發(fā)送中斷信號 | |||
| CR1 | RIE | 接收中斷使能 | 1 | 使能。信息被無錯誤接收時,產(chǎn)生此中斷信號 |
| 0 | 禁止。此中斷信號被禁止 | |||
| CR0 | RR | 復(fù)位請求 | 1 | 當(dāng)前。SJA1000檢測到復(fù)位請求后,忽略當(dāng)前發(fā)送/接收信息,進(jìn)入復(fù)位模式 |
| 0 | 空缺。復(fù)位請求位接收到一個下降沿后,SJA1000回到工作模式 |
在硬啟動或總線狀態(tài)位設(shè)置為1(總線關(guān)閉)時,復(fù)位請求位被置為1.在外部復(fù)位期間,微控制器不能把復(fù)位請求位置為0。如果要把復(fù)位請求位置為0,微控制器必須先檢查這一位,以確定外部復(fù)位引腳不為低電平。復(fù)位請求位被設(shè)為0后,SJA1000將會等待:
1.1個總線空閑信號(11個弱勢位),如果前一次復(fù)位請求是硬件復(fù)位或CPU初始復(fù)位;2.等待128個總線空閑,如果前一次復(fù)位請求是CAN控制器在重新進(jìn)入總線開啟模式前初始化總線造成的。
(2)命令寄存器(CMR)
命令寄存器對微控制來說是只寫存儲器。在復(fù)位模式和工作模式下都可對此寄存器進(jìn)行訪問,但是讀這個地址返回值是“11111111”。表2是命令寄存器各位的說明。將睡眠模式位置為1,SJA1000進(jìn)入睡眠模式,此時沒有總線活動,沒有中斷等待。CMR.3位是用來清除由數(shù)據(jù)溢出狀態(tài)位指出的數(shù)據(jù)溢出。如果數(shù)據(jù)溢出位被置位,就不會產(chǎn)生數(shù)據(jù)溢出中斷了。在釋放接收緩沖器命令的同時,可以發(fā)出清除數(shù)據(jù)溢出命令。讀接收緩沖器之后,微控制器可以通過設(shè)置釋放接收緩沖器為1,來釋放接收隊列當(dāng)前信息的內(nèi)存空間。
(3)狀態(tài)寄存器(SR)
狀態(tài)寄存器對微控制器來說是只讀存儲器,表3是狀態(tài)寄存器各位的功能說明。當(dāng)傳輸錯誤計數(shù)器超過限制(255)(總線狀態(tài)位置1,即總線關(guān)閉),CAN控制器就會將復(fù)位請求位置1,在錯誤中斷允許的情況下,會產(chǎn)生一個錯誤中斷。這種狀態(tài)會持續(xù)到CPU清除復(fù)位請求位。對于錯誤狀態(tài)位,當(dāng)至少有一個錯誤計數(shù)器滿或超出CPU警告限制(96)時,錯誤狀態(tài)位被置位。在中斷使能的情況下,會產(chǎn)生錯誤中斷。
表2 命令寄存器各位的功能說明(CMR):CAN地址1





