帶有SPI接口的獨立CAN控制器MCP2515_第1頁
帶有SPI接口的獨立CAN控制器MCP2515_第2頁
帶有SPI接口的獨立CAN控制器MCP2515_第3頁
帶有SPI接口的獨立CAN控制器MCP2515_第4頁
帶有SPI接口的獨立CAN控制器MCP2515_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

CAN現(xiàn)場總線系統(tǒng)

的設(shè)計與應(yīng)用第5章帶有SPI接口的獨立CAN控制器MCP2515MCP2515簡介MCP2515是Microchip生產(chǎn)的一款獨立CAN控制器,完全支持CANV2.0B技術(shù)規(guī)范。該器件能發(fā)送和接收標(biāo)準(zhǔn)和擴(kuò)展數(shù)據(jù)幀以及遠(yuǎn)程幀。MCP2515自帶的兩個驗收屏蔽寄存器和六個驗收濾波寄存器,減少了單片機(jī)的開銷。

MCP2515通過SPI總線與單片機(jī)的的連接。本章主要介紹MCP2515獨立CAN控制器的外圍引腳,內(nèi)部寄存器和相關(guān)的SPI指令,并介紹基于PIC16F877A單片機(jī)和MCP2515獨立CAN控制器的CAN節(jié)點的開發(fā)和MCP2515的初始化、發(fā)送、接收程序的編寫CAN獨立控制器MCP2515特性完全支持CAN總線V2.0A和V2.0B技術(shù)規(guī)范0~8字節(jié)報文長度;標(biāo)準(zhǔn)和擴(kuò)展數(shù)據(jù)幀;可編程位傳輸速率可達(dá)lMbps;支持遠(yuǎn)程幀:兩個接收緩沖器,可優(yōu)先儲存報文;6個完全驗收濾波器;2個完全驗收屏蔽濾波器;3個發(fā)送緩沖器,具有優(yōu)先級設(shè)定以及發(fā)送中止功能用于自檢的環(huán)回模式。CAN獨立控制器MCP2515特性硬件特性高速SPl接口;支持0.0和I.1SPI模式;帶有可編程預(yù)分頻器的時鐘輸出引腳;帶有可選擇使能設(shè)定的,中斷輸出引腳:“緩沖器滿”輸出引腳可配置為各接收緩沖器的中斷引腳或通用數(shù)寧輸出引腳?!罢埱蟀l(fā)送”輸入引腳可配置為發(fā)送緩沖器的控制引腳,用以請求立即發(fā)送報文或配置為通用數(shù)字輸出引腳;.低功耗休眠工作模式。MCP2515控制器概述MCP2515控制器概述CAN模塊的功能是處理所有CAN總線上的報文接收和發(fā)送??刂七壿嬐ㄟ^與其它模塊連接,控制邏輯模塊控制MCP2515的設(shè)置和運行,以便傳輸信息與控制。單片機(jī)通過SPI接口與MCP2515連接。使用標(biāo)準(zhǔn)的SPI讀/寫指令以及專門的SPI命令來讀/寫所有的寄存器和完成相應(yīng)的控制操作。MCP2515引腳介紹MCP2515引腳介紹MCP2515引腳介紹發(fā)送/接收緩沖器

MCP2510具有3個發(fā)送緩沖器和2個接收緩沖器,2個驗收屏蔽寄存器(分別對應(yīng)不同的接收緩沖器),以及6個驗收過濾寄存器。CAN報文幀標(biāo)準(zhǔn)數(shù)據(jù)幀CAN報文幀擴(kuò)展數(shù)據(jù)幀仲裁字段的前11位為29位標(biāo)識符的最有效位(基本ID)。緊隨這11位的是替換遠(yuǎn)程請求(SRR)位,定義為隱性狀態(tài)。SRR位之后是IDE位,該位隱性時表示這是擴(kuò)展的CAN幀。CAN報文幀遠(yuǎn)程幀錯誤幀主動錯誤幀消極錯誤幀過載幀與主動錯誤幀格式一樣,但是其只出現(xiàn)在數(shù)據(jù)幀、遠(yuǎn)程幀之間。幀空間寄存器映射表CANCTRL控制寄存器REQOP<2:0>:請求工作模式的位

000=設(shè)定為正常工作模式

001=設(shè)定為休眠模式

010=設(shè)定為環(huán)回模式

011=設(shè)定為僅監(jiān)聽模式

100=設(shè)定為配置模式REQOP位不應(yīng)設(shè)置為其他值,因為這些值都是無效的。注:上電時,REQOP=b’111’CANCTRL控制寄存器ABAT:中止所有當(dāng)前報文發(fā)送的位

1=請求中止所有當(dāng)前報文發(fā)送的緩沖器

0=終止對所有報文發(fā)送中止的請求OSM:單觸發(fā)模式位

1=使能。報文僅嘗試發(fā)送一次

0=禁止。如有需要,報文會重新發(fā)送。CLKEN:CLKOUT引腳使能位

1=CLKOUT引腳使能

0=CLKOUT引腳禁止(引腳處于高阻態(tài))CLKPRE<1:0>:CLKOUT引腳預(yù)分頻比位

00=FCLKOUT=系統(tǒng)時鐘頻率/1 01=FCLKOUT=系統(tǒng)時鐘頻率/2 10=FCLKOUT=系統(tǒng)時鐘頻率/4 11=FCLKOUT=系統(tǒng)時鐘頻率/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=出錯中斷010=喚醒中斷011=TXB0中斷100=TXB1中斷101=TXB2中斷110=RXB0中斷111=RXB1中斷工作模式配置模式復(fù)位后進(jìn)入配置模式,所有錯誤計數(shù)器被清零正常模式睡眠模式SPI口仍工作,允許訪問任何寄存器;喚醒后處于監(jiān)聽模式監(jiān)聽模式錯誤計數(shù)器被復(fù)位并設(shè)置為無效環(huán)回模式自收發(fā),多用于調(diào)試配置模式MCP2515在正常運行之前必須進(jìn)行初始化。只有在配置模式下,才能對器件進(jìn)行初始化。在上電或復(fù)位時器件會自動進(jìn)入配置模式,或通過CANTRL.REQOP位設(shè)置成“100”也可使器件從任何模式進(jìn)入配置模式。當(dāng)進(jìn)入配置模式時,所有錯誤計數(shù)器都被清零。只有在配置模式下,才能對以下寄存器進(jìn)行修改

CNF1、CNF2和CNF3TXRTSCTRL

驗收過濾寄存器驗收屏蔽寄存器休眠模式MCP2515具有內(nèi)部休眠模式,使器件功耗最少。即使MCP2515處于休眠模式,SPI接口仍然保持正常的讀操作,以允許訪問器件內(nèi)的所有寄存器。當(dāng)處于內(nèi)部休眠模式時,喚醒中斷仍然工作(如果被使能)。因此,可將MCU置于休眠模式,在檢測到總線上有活動時,就喚醒MCP2515。處于休眠模式時,MCP2515內(nèi)部振蕩器停止工作。當(dāng)總線發(fā)生活動或MCU通過SPI接口將CANINTF.WAKIF位置1來“產(chǎn)生”喚醒嘗試(CANINTE.WAKIE位也必須置1以便產(chǎn)生喚醒中斷)時,將喚醒MCP2515。當(dāng)MCP2515處于休眠模式時,TXCAN引腳保持隱性狀態(tài)。復(fù)位

MCP2515有兩種復(fù)位方式:硬件復(fù)位——RESET引腳為低電平。SPI復(fù)位——通過SPI命令復(fù)位。振蕩器錯誤檢測當(dāng)產(chǎn)生CRC錯誤,確認(rèn)(應(yīng)答)錯誤,格式錯誤和填充錯誤時,除了改變錯誤寄存器的值以外,報文將重新發(fā)送。在總裁階段不進(jìn)行位錯誤檢修。當(dāng)發(fā)現(xiàn)位錯誤時,將根據(jù)節(jié)點的狀態(tài)產(chǎn)生相應(yīng)的錯誤幀,主動錯誤幀將破壞數(shù)據(jù)幀和遠(yuǎn)程幀的發(fā)送。節(jié)點錯誤狀態(tài)

主動錯誤。被動錯誤。總線關(guān)閉(僅發(fā)送器)錯誤相關(guān)寄存器TEC——發(fā)送錯誤計數(shù)器REC——接收錯誤計數(shù)器

EFLG——錯誤標(biāo)志寄存器EFLG寄存器RX1OVR:接收緩沖器1溢出標(biāo)志位RX0OVR:接收緩沖器0溢出標(biāo)志位TXBO:總線關(guān)閉錯誤標(biāo)志位當(dāng)TEC達(dá)到255時,該位置1;-當(dāng)成功接收到總線恢復(fù)序列時復(fù)位

TXEP:發(fā)送被動錯誤標(biāo)志位RXEP:接收被動錯誤標(biāo)志位TXWAR:發(fā)送錯誤警告標(biāo)志位RXWAR:接收錯誤警告標(biāo)志位bit0EWARN:錯誤警告標(biāo)志位當(dāng)TEC或REC大于等于96時(TXWAR或RXWAR=1)時,該位置1當(dāng)TEC和REC同時小于96時復(fù)位中斷MCP2515有八個中斷源。CANINTE寄存器包含了使能各中斷源的中斷使能位。CANINTF寄存器包含了各中斷源的中斷標(biāo)志位。當(dāng)發(fā)生中斷時,INT引腳將被MCP2515拉為低電平,并保持低電平狀態(tài)直至MCU清除中斷。中斷只有在引起相應(yīng)中斷的條件消失后,才會被清除。建議在對CANINTF寄存器中的標(biāo)志位進(jìn)行復(fù)位操作時,采用位修改命令而不要使用一般的寫操。這是為了避免在寫命令執(zhí)行過程中無意間修改了標(biāo)志位,進(jìn)而導(dǎo)致中斷丟失。CANSTAT.ICOD(中斷代碼)位的編碼反映等待處理的中斷源。如果同時發(fā)生多個中斷,INT引腳將保持低電平狀態(tài)直至MCU復(fù)位所有中斷。CANINTF——中斷標(biāo)志寄存器

1=有等待處理的中斷(必須由MCU清零才可使中斷復(fù)位)

0=無等待處理的中斷MERRF:報文錯誤中斷標(biāo)志位

WAKIF:喚醒中斷標(biāo)志位ERRIF:錯誤中斷標(biāo)志位(EFLG寄存器中有多個中斷源)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=報文接收或發(fā)送期間發(fā)生錯誤時中斷0=禁止MERRE:報文錯誤中斷使能位bit6WAKIE:喚醒中斷使能位ERRIE:錯誤中斷使能位(EFLG寄存器中有多個中斷源)TX2IE:發(fā)送緩沖器2空中斷使能位TX1IE:發(fā)送緩沖器1空中斷使能位TX0IE:發(fā)送緩沖器0空中斷使能位RX1IE:接收緩沖器1滿中斷使能位RX0IE:接收緩沖器0滿中斷使能位位定時位定時位定時CONF1CONF2CONF3報文接收報文接收報文接收緩沖MCP2515具有兩個全接收緩沖器。每個接收緩沖器配備有多個驗收濾波器。除上述專用接收緩沖器外,MCP2515還具有單獨的報文集成緩沖器(MAB),可作為第三個接收緩沖器。MAB對接收到的報文進(jìn)行組合,并將滿足驗收濾波器條件的報文傳送至RXBn緩沖器。

接收優(yōu)先級RXB0是具有較高優(yōu)先級的緩沖器。接收到的報文首先在RXB0中進(jìn)行屏蔽濾波。RXB1是優(yōu)先級較低的緩沖器。報文除了首先在RB0中進(jìn)行屏蔽濾波外,由于RB0的驗收濾波寄存器數(shù)量較少,因此RB0接受匹配條件更為嚴(yán)格,表明RB0具有較高的優(yōu)先級。報文接收滾存對RXB0CTRL寄存器進(jìn)行配置,如果RXB0已包含一條有效報文并且接收到另一條有效報文,不會發(fā)生溢出錯誤,新的報文會滾存到RXB1而不管RXB1是何種驗收標(biāo)準(zhǔn)。接收標(biāo)志/中斷當(dāng)報文傳送至某一接收緩沖器時,與該接收緩沖器對應(yīng)的CANINTF.RXnIF位將置1。一旦緩沖器中的報文處理完畢,MCU就必須將該位清零以接收下一條報文。

該控制位提供的鎖定功能確保MCU尚未處理完上一條報文前,MCP2515不會將新的報文載入接收緩沖器。報文接收報文接收

起始幀信號使能之后,一旦RXCAN引腳檢測到任一CAN報文開始,起始幀信號便會在SOF引腳上產(chǎn)生。RXCAN引腳監(jiān)控空閑總線上出現(xiàn)的從隱性位到顯性位的變化邊沿。如果顯性條件始終保持直至采樣點發(fā)生,MCP2515視之為SOF信號并產(chǎn)生一個SOF脈沖。如果顯性條件沒有保持到采樣點便發(fā)生,MCP2515視之為總線干擾,不產(chǎn)生SOF信號。

對于單觸發(fā)工作模式,SOF信號的一個用途是用于TTCAN(是CAN總線的一種高層協(xié)議,其通信是基于時間觸發(fā)的,適用于安全相關(guān)的場合)系統(tǒng)。另外,通過監(jiān)控RXCAN引腳和SOF引腳,MCU能夠檢測到總線上出現(xiàn)的小干擾,從而在它們影響CAN通訊之前發(fā)現(xiàn)早期總線物理故障。報文接收多濾波器匹配如果接收報文符合一個以上濾波寄存器的接受條件,F(xiàn)ILHIT位中的二進(jìn)制代碼將反映其中編號最小的濾波寄存器。例如,如果濾波器RXF2和RXF4同時與接收報文匹配,F(xiàn)ILHIT中將裝載RXF2編碼值。

編號較小的驗收濾波寄存器有較高的優(yōu)先級。接收報文將按照編號升序依次與濾波寄存器進(jìn)行匹配比較。這意味著RXB0的優(yōu)先級比RXB1高。報文接收報文發(fā)送發(fā)送緩沖器MCP2515采用三個發(fā)送緩沖器。發(fā)送優(yōu)先級具有較高優(yōu)先級的發(fā)送緩沖器將首先發(fā)送。如果兩個緩沖器的優(yōu)先級相同,則編號較高的發(fā)送緩沖器將優(yōu)先發(fā)送。TXnRTS引腳

TXnRTS為輸入引腳,可配置為:請求發(fā)送輸入引腳,作為啟動任一發(fā)送緩沖器中報文發(fā)送的備用方法標(biāo)準(zhǔn)數(shù)字輸入引腳報文發(fā)送發(fā)送啟動通過將TXBnCTRL.TXREQ位置1,可以啟動相應(yīng)緩沖器的報文發(fā)送。它可以按如下方式設(shè)定:*利用SPI寫命令寫寄存器*發(fā)送SPIRTS命令*將要發(fā)送報文的發(fā)送緩沖器的TXnRTS引腳置為低電平通過SPI接口啟動報文發(fā)送后,可以同時將TXREQ位和TXP優(yōu)先級控制位置1。當(dāng)TXBnCTRL.TXREQ位置1后,TXBnCTRL.ABTF、TXBnCTRL.MLOA和TXBnCTRL.TXERR位都將被自動清零。報文發(fā)送發(fā)送中止清除與特定發(fā)送緩沖器對應(yīng)的TXBnCTRL.TXREQ位來中止某條報文的發(fā)送。也可通過設(shè)置CANCTRL.ABAT位以中止所有等待發(fā)送的報文。

如果CANCTRL.ABAT位被置位則所有報文中止發(fā)送。若用戶要繼續(xù)報文發(fā)送,則必須對該

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論