版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
CAN現(xiàn)場總線系統(tǒng)
的設(shè)計(jì)與應(yīng)用第5章帶有SPI接口的獨(dú)立CAN控制器MCP2515MCP2515簡介MCP2515是Microchip生產(chǎn)的一款獨(dú)立CAN控制器,完全支持CANV2.0B技術(shù)規(guī)范。該器件能發(fā)送和接收標(biāo)準(zhǔn)和擴(kuò)展數(shù)據(jù)幀以及遠(yuǎn)程幀。MCP2515自帶的兩個(gè)驗(yàn)收屏蔽寄存器和六個(gè)驗(yàn)收濾波寄存器,減少了單片機(jī)的開銷。
MCP2515通過SPI總線與單片機(jī)的的連接。本章主要介紹MCP2515獨(dú)立CAN控制器的外圍引腳,內(nèi)部寄存器和相關(guān)的SPI指令,并介紹基于PIC16F877A單片機(jī)和MCP2515獨(dú)立CAN控制器的CAN節(jié)點(diǎn)的開發(fā)和MCP2515的初始化、發(fā)送、接收程序的編寫CAN獨(dú)立控制器MCP2515特性完全支持CAN總線V2.0A和V2.0B技術(shù)規(guī)范0~8字節(jié)報(bào)文長度;標(biāo)準(zhǔn)和擴(kuò)展數(shù)據(jù)幀;可編程位傳輸速率可達(dá)lMbps;支持遠(yuǎn)程幀:兩個(gè)接收緩沖器,可優(yōu)先儲(chǔ)存報(bào)文;6個(gè)完全驗(yàn)收濾波器;2個(gè)完全驗(yàn)收屏蔽濾波器;3個(gè)發(fā)送緩沖器,具有優(yōu)先級(jí)設(shè)定以及發(fā)送中止功能用于自檢的環(huán)回模式。CAN獨(dú)立控制器MCP2515特性硬件特性高速SPl接口;支持0.0和I.1SPI模式;帶有可編程預(yù)分頻器的時(shí)鐘輸出引腳;帶有可選擇使能設(shè)定的,中斷輸出引腳:“緩沖器滿”輸出引腳可配置為各接收緩沖器的中斷引腳或通用數(shù)寧輸出引腳?!罢?qǐng)求發(fā)送”輸入引腳可配置為發(fā)送緩沖器的控制引腳,用以請(qǐng)求立即發(fā)送報(bào)文或配置為通用數(shù)字輸出引腳;.低功耗休眠工作模式。MCP2515控制器概述MCP2515控制器概述CAN模塊的功能是處理所有CAN總線上的報(bào)文接收和發(fā)送??刂七壿嬐ㄟ^與其它模塊連接,控制邏輯模塊控制MCP2515的設(shè)置和運(yùn)行,以便傳輸信息與控制。單片機(jī)通過SPI接口與MCP2515連接。使用標(biāo)準(zhǔn)的SPI讀/寫指令以及專門的SPI命令來讀/寫所有的寄存器和完成相應(yīng)的控制操作。MCP2515引腳介紹MCP2515引腳介紹MCP2515引腳介紹發(fā)送/接收緩沖器
MCP2510具有3個(gè)發(fā)送緩沖器和2個(gè)接收緩沖器,2個(gè)驗(yàn)收屏蔽寄存器(分別對(duì)應(yīng)不同的接收緩沖器),以及6個(gè)驗(yàn)收過濾寄存器。CAN報(bào)文幀標(biāo)準(zhǔn)數(shù)據(jù)幀CAN報(bào)文幀擴(kuò)展數(shù)據(jù)幀仲裁字段的前11位為29位標(biāo)識(shí)符的最有效位(基本ID)。緊隨這11位的是替換遠(yuǎn)程請(qǐng)求(SRR)位,定義為隱性狀態(tài)。SRR位之后是IDE位,該位隱性時(shí)表示這是擴(kuò)展的CAN幀。CAN報(bào)文幀遠(yuǎn)程幀錯(cuò)誤幀主動(dòng)錯(cuò)誤幀消極錯(cuò)誤幀過載幀與主動(dòng)錯(cuò)誤幀格式一樣,但是其只出現(xiàn)在數(shù)據(jù)幀、遠(yuǎn)程幀之間。幀空間寄存器映射表CANCTRL控制寄存器REQOP<2:0>:請(qǐng)求工作模式的位
000=設(shè)定為正常工作模式
001=設(shè)定為休眠模式
010=設(shè)定為環(huán)回模式
011=設(shè)定為僅監(jiān)聽模式
100=設(shè)定為配置模式REQOP位不應(yīng)設(shè)置為其他值,因?yàn)檫@些值都是無效的。注:上電時(shí),REQOP=b’111’CANCTRL控制寄存器ABAT:中止所有當(dāng)前報(bào)文發(fā)送的位
1=請(qǐng)求中止所有當(dāng)前報(bào)文發(fā)送的緩沖器
0=終止對(duì)所有報(bào)文發(fā)送中止的請(qǐng)求OSM:單觸發(fā)模式位
1=使能。報(bào)文僅嘗試發(fā)送一次
0=禁止。如有需要,報(bào)文會(huì)重新發(fā)送。CLKEN:CLKOUT引腳使能位
1=CLKOUT引腳使能
0=CLKOUT引腳禁止(引腳處于高阻態(tài))CLKPRE<1:0>:CLKOUT引腳預(yù)分頻比位
00=FCLKOUT=系統(tǒng)時(shí)鐘頻率/1 01=FCLKOUT=系統(tǒng)時(shí)鐘頻率/2 10=FCLKOUT=系統(tǒng)時(shí)鐘頻率/4 11=FCLKOUT=系統(tǒng)時(shí)鐘頻率/8CANSTAT狀態(tài)寄存器OPMOD:工作模式位<2:0> 000=器件處于正常工作模式
001=器件處于休眠模式
010=器件處于環(huán)回模式
011=器件處于僅監(jiān)聽模式
100=器件處于配置模式CANSTAT狀態(tài)寄存器ICOD:中斷標(biāo)志代碼位<2:0>000=無中斷001=出錯(cuò)中斷010=喚醒中斷011=TXB0中斷100=TXB1中斷101=TXB2中斷110=RXB0中斷111=RXB1中斷工作模式配置模式復(fù)位后進(jìn)入配置模式,所有錯(cuò)誤計(jì)數(shù)器被清零正常模式睡眠模式SPI口仍工作,允許訪問任何寄存器;喚醒后處于監(jiān)聽模式監(jiān)聽模式錯(cuò)誤計(jì)數(shù)器被復(fù)位并設(shè)置為無效環(huán)回模式自收發(fā),多用于調(diào)試配置模式MCP2515在正常運(yùn)行之前必須進(jìn)行初始化。只有在配置模式下,才能對(duì)器件進(jìn)行初始化。在上電或復(fù)位時(shí)器件會(huì)自動(dòng)進(jìn)入配置模式,或通過CANTRL.REQOP位設(shè)置成“100”也可使器件從任何模式進(jìn)入配置模式。當(dāng)進(jìn)入配置模式時(shí),所有錯(cuò)誤計(jì)數(shù)器都被清零。只有在配置模式下,才能對(duì)以下寄存器進(jìn)行修改
CNF1、CNF2和CNF3TXRTSCTRL
驗(yàn)收過濾寄存器驗(yàn)收屏蔽寄存器休眠模式MCP2515具有內(nèi)部休眠模式,使器件功耗最少。即使MCP2515處于休眠模式,SPI接口仍然保持正常的讀操作,以允許訪問器件內(nèi)的所有寄存器。當(dāng)處于內(nèi)部休眠模式時(shí),喚醒中斷仍然工作(如果被使能)。因此,可將MCU置于休眠模式,在檢測到總線上有活動(dòng)時(shí),就喚醒MCP2515。處于休眠模式時(shí),MCP2515內(nèi)部振蕩器停止工作。當(dāng)總線發(fā)生活動(dòng)或MCU通過SPI接口將CANINTF.WAKIF位置1來“產(chǎn)生”喚醒嘗試(CANINTE.WAKIE位也必須置1以便產(chǎn)生喚醒中斷)時(shí),將喚醒MCP2515。當(dāng)MCP2515處于休眠模式時(shí),TXCAN引腳保持隱性狀態(tài)。復(fù)位
MCP2515有兩種復(fù)位方式:硬件復(fù)位——RESET引腳為低電平。SPI復(fù)位——通過SPI命令復(fù)位。振蕩器錯(cuò)誤檢測當(dāng)產(chǎn)生CRC錯(cuò)誤,確認(rèn)(應(yīng)答)錯(cuò)誤,格式錯(cuò)誤和填充錯(cuò)誤時(shí),除了改變錯(cuò)誤寄存器的值以外,報(bào)文將重新發(fā)送。在總裁階段不進(jìn)行位錯(cuò)誤檢修。當(dāng)發(fā)現(xiàn)位錯(cuò)誤時(shí),將根據(jù)節(jié)點(diǎn)的狀態(tài)產(chǎn)生相應(yīng)的錯(cuò)誤幀,主動(dòng)錯(cuò)誤幀將破壞數(shù)據(jù)幀和遠(yuǎn)程幀的發(fā)送。節(jié)點(diǎn)錯(cuò)誤狀態(tài)
主動(dòng)錯(cuò)誤。被動(dòng)錯(cuò)誤??偩€關(guān)閉(僅發(fā)送器)錯(cuò)誤相關(guān)寄存器TEC——發(fā)送錯(cuò)誤計(jì)數(shù)器REC——接收錯(cuò)誤計(jì)數(shù)器
EFLG——錯(cuò)誤標(biāo)志寄存器EFLG寄存器RX1OVR:接收緩沖器1溢出標(biāo)志位RX0OVR:接收緩沖器0溢出標(biāo)志位TXBO:總線關(guān)閉錯(cuò)誤標(biāo)志位當(dāng)TEC達(dá)到255時(shí),該位置1;-當(dāng)成功接收到總線恢復(fù)序列時(shí)復(fù)位
TXEP:發(fā)送被動(dòng)錯(cuò)誤標(biāo)志位RXEP:接收被動(dòng)錯(cuò)誤標(biāo)志位TXWAR:發(fā)送錯(cuò)誤警告標(biāo)志位RXWAR:接收錯(cuò)誤警告標(biāo)志位bit0EWARN:錯(cuò)誤警告標(biāo)志位當(dāng)TEC或REC大于等于96時(shí)(TXWAR或RXWAR=1)時(shí),該位置1當(dāng)TEC和REC同時(shí)小于96時(shí)復(fù)位中斷MCP2515有八個(gè)中斷源。CANINTE寄存器包含了使能各中斷源的中斷使能位。CANINTF寄存器包含了各中斷源的中斷標(biāo)志位。當(dāng)發(fā)生中斷時(shí),INT引腳將被MCP2515拉為低電平,并保持低電平狀態(tài)直至MCU清除中斷。中斷只有在引起相應(yīng)中斷的條件消失后,才會(huì)被清除。建議在對(duì)CANINTF寄存器中的標(biāo)志位進(jìn)行復(fù)位操作時(shí),采用位修改命令而不要使用一般的寫操。這是為了避免在寫命令執(zhí)行過程中無意間修改了標(biāo)志位,進(jìn)而導(dǎo)致中斷丟失。CANSTAT.ICOD(中斷代碼)位的編碼反映等待處理的中斷源。如果同時(shí)發(fā)生多個(gè)中斷,INT引腳將保持低電平狀態(tài)直至MCU復(fù)位所有中斷。CANINTF——中斷標(biāo)志寄存器
1=有等待處理的中斷(必須由MCU清零才可使中斷復(fù)位)
0=無等待處理的中斷MERRF:報(bào)文錯(cuò)誤中斷標(biāo)志位
WAKIF:喚醒中斷標(biāo)志位ERRIF:錯(cuò)誤中斷標(biāo)志位(EFLG寄存器中有多個(gè)中斷源)TX2IF:發(fā)送緩沖器2空中斷標(biāo)志位TX1IF:發(fā)送緩沖器1空中斷標(biāo)志位TX0IF:發(fā)送緩沖器0空中斷標(biāo)志位RX1IF:接收緩沖器1滿中斷標(biāo)志位RX0IF:接收緩沖器0滿中斷標(biāo)志位CANINTE——中斷使能寄存器1=報(bào)文接收或發(fā)送期間發(fā)生錯(cuò)誤時(shí)中斷0=禁止MERRE:報(bào)文錯(cuò)誤中斷使能位bit6WAKIE:喚醒中斷使能位ERRIE:錯(cuò)誤中斷使能位(EFLG寄存器中有多個(gè)中斷源)TX2IE:發(fā)送緩沖器2空中斷使能位TX1IE:發(fā)送緩沖器1空中斷使能位TX0IE:發(fā)送緩沖器0空中斷使能位RX1IE:接收緩沖器1滿中斷使能位RX0IE:接收緩沖器0滿中斷使能位位定時(shí)位定時(shí)位定時(shí)CONF1CONF2CONF3報(bào)文接收?qǐng)?bào)文接收?qǐng)?bào)文接收緩沖MCP2515具有兩個(gè)全接收緩沖器。每個(gè)接收緩沖器配備有多個(gè)驗(yàn)收濾波器。除上述專用接收緩沖器外,MCP2515還具有單獨(dú)的報(bào)文集成緩沖器(MAB),可作為第三個(gè)接收緩沖器。MAB對(duì)接收到的報(bào)文進(jìn)行組合,并將滿足驗(yàn)收濾波器條件的報(bào)文傳送至RXBn緩沖器。
接收優(yōu)先級(jí)RXB0是具有較高優(yōu)先級(jí)的緩沖器。接收到的報(bào)文首先在RXB0中進(jìn)行屏蔽濾波。RXB1是優(yōu)先級(jí)較低的緩沖器。報(bào)文除了首先在RB0中進(jìn)行屏蔽濾波外,由于RB0的驗(yàn)收濾波寄存器數(shù)量較少,因此RB0接受匹配條件更為嚴(yán)格,表明RB0具有較高的優(yōu)先級(jí)。報(bào)文接收滾存對(duì)RXB0CTRL寄存器進(jìn)行配置,如果RXB0已包含一條有效報(bào)文并且接收到另一條有效報(bào)文,不會(huì)發(fā)生溢出錯(cuò)誤,新的報(bào)文會(huì)滾存到RXB1而不管RXB1是何種驗(yàn)收標(biāo)準(zhǔn)。接收標(biāo)志/中斷當(dāng)報(bào)文傳送至某一接收緩沖器時(shí),與該接收緩沖器對(duì)應(yīng)的CANINTF.RXnIF位將置1。一旦緩沖器中的報(bào)文處理完畢,MCU就必須將該位清零以接收下一條報(bào)文。
該控制位提供的鎖定功能確保MCU尚未處理完上一條報(bào)文前,MCP2515不會(huì)將新的報(bào)文載入接收緩沖器。報(bào)文接收?qǐng)?bào)文接收
起始幀信號(hào)使能之后,一旦RXCAN引腳檢測到任一CAN報(bào)文開始,起始幀信號(hào)便會(huì)在SOF引腳上產(chǎn)生。RXCAN引腳監(jiān)控空閑總線上出現(xiàn)的從隱性位到顯性位的變化邊沿。如果顯性條件始終保持直至采樣點(diǎn)發(fā)生,MCP2515視之為SOF信號(hào)并產(chǎn)生一個(gè)SOF脈沖。如果顯性條件沒有保持到采樣點(diǎn)便發(fā)生,MCP2515視之為總線干擾,不產(chǎn)生SOF信號(hào)。
對(duì)于單觸發(fā)工作模式,SOF信號(hào)的一個(gè)用途是用于TTCAN(是CAN總線的一種高層協(xié)議,其通信是基于時(shí)間觸發(fā)的,適用于安全相關(guān)的場合)系統(tǒng)。另外,通過監(jiān)控RXCAN引腳和SOF引腳,MCU能夠檢測到總線上出現(xiàn)的小干擾,從而在它們影響CAN通訊之前發(fā)現(xiàn)早期總線物理故障。報(bào)文接收多濾波器匹配如果接收?qǐng)?bào)文符合一個(gè)以上濾波寄存器的接受條件,F(xiàn)ILHIT位中的二進(jìn)制代碼將反映其中編號(hào)最小的濾波寄存器。例如,如果濾波器RXF2和RXF4同時(shí)與接收?qǐng)?bào)文匹配,F(xiàn)ILHIT中將裝載RXF2編碼值。
編號(hào)較小的驗(yàn)收濾波寄存器有較高的優(yōu)先級(jí)。接收?qǐng)?bào)文將按照編號(hào)升序依次與濾波寄存器進(jìn)行匹配比較。這意味著RXB0的優(yōu)先級(jí)比RXB1高。報(bào)文接收?qǐng)?bào)文發(fā)送發(fā)送緩沖器MCP2515采用三個(gè)發(fā)送緩沖器。發(fā)送優(yōu)先級(jí)具有較高優(yōu)先級(jí)的發(fā)送緩沖器將首先發(fā)送。如果兩個(gè)緩沖器的優(yōu)先級(jí)相同,則編號(hào)較高的發(fā)送緩沖器將優(yōu)先發(fā)送。TXnRTS引腳
TXnRTS為輸入引腳,可配置為:請(qǐng)求發(fā)送輸入引腳,作為啟動(dòng)任一發(fā)送緩沖器中報(bào)文發(fā)送的備用方法標(biāo)準(zhǔn)數(shù)字輸入引腳報(bào)文發(fā)送發(fā)送啟動(dòng)通過將TXBnCTRL.TXREQ位置1,可以啟動(dòng)相應(yīng)緩沖器的報(bào)文發(fā)送。它可以按如下方式設(shè)定:*利用SPI寫命令寫寄存器*發(fā)送SPIRTS命令*將要發(fā)送報(bào)文的發(fā)送緩沖器的TXnRTS引腳置為低電平通過SPI接口啟動(dòng)報(bào)文發(fā)送后,可以同時(shí)將TXREQ位和TXP優(yōu)先級(jí)控制位置1。當(dāng)TXBnCTRL.TXREQ位置1后,TXBnCTRL.ABTF、TXBnCTRL.MLOA和TXBnCTRL.TXERR位都將被自動(dòng)清零。報(bào)文發(fā)送發(fā)送中止清除與特定發(fā)送緩沖器對(duì)應(yīng)的TXBnCTRL.TXREQ位來中止某條報(bào)文的發(fā)送。也可通過設(shè)置CANCTRL.ABAT位以中止所有等待發(fā)送的報(bào)文。
如果CANCTRL.ABAT位被置位則所有報(bào)文中止發(fā)送。若用戶要繼續(xù)報(bào)文發(fā)送,則必須對(duì)該
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 氣候變化下農(nóng)業(yè)生態(tài)系統(tǒng)的適應(yīng)性調(diào)整研究進(jìn)展
- 物聯(lián)網(wǎng)技術(shù)在智能家居生態(tài)圈的應(yīng)用前景
- 國慶節(jié)秋天主題活動(dòng)方案
- 現(xiàn)代辦公樓電力維護(hù)成本深度剖析
- 現(xiàn)代物流技術(shù)與醫(yī)療行業(yè)互補(bǔ)與共進(jìn)
- Unit 4 Friends Forever Understanding ideas 說課稿-2024-2025學(xué)年高中英語外研版(2019)必修第一冊(cè)001
- 2023八年級(jí)物理上冊(cè) 第四章 在光的世界里第6節(jié) 神奇的眼睛說課稿(新版)教科版
- 6《觀察土壤》說課稿-2023-2024學(xué)年科學(xué)四年級(jí)下冊(cè)教科版
- 2023二年級(jí)語文上冊(cè) 第八單元 24 風(fēng)娃娃說課稿 新人教版
- 18《文言文二則 鐵杵成針》(說課稿)2023-2024學(xué)年-統(tǒng)編版四年級(jí)語文下冊(cè)
- 2025年度院感管理工作計(jì)劃(后附表格版)
- 2024年山東省濟(jì)南市中考英語試題卷(含答案解析)
- 暑假作業(yè) 10 高二英語完形填空20篇(原卷版)-【暑假分層作業(yè)】2024年高二英語暑假培優(yōu)練(人教版2019)
- 2024年建筑業(yè)10項(xiàng)新技術(shù)
- 語文七年級(jí)下字帖打印版
- 為加入燒火佬協(xié)會(huì)致辭(7篇)
- 兒科重癥監(jiān)護(hù)病房管理演示文稿
- 甲基異丁基甲酮化學(xué)品安全技術(shù)說明書
- 條形基礎(chǔ)的平法識(shí)圖課件
- 秘書實(shí)務(wù)完整版課件全套ppt教程
- 義務(wù)教育《歷史》課程標(biāo)準(zhǔn)(2022年版)
評(píng)論
0/150
提交評(píng)論