在這個(gè)項(xiàng)目中,我們將了解MCP2515 CAN控制器模塊,如何將MCP2515 CAN總線控制器與Arduino接口,以及如何在兩個(gè)MCP2515 CAN的幫助下實(shí)現(xiàn)兩個(gè)Arduino板之間的通信控制器和CAN協(xié)議。
簡(jiǎn)介
受控區(qū)域簡(jiǎn)單CAN網(wǎng)絡(luò)是一種總線標(biāo)準(zhǔn),允許微控制器及其外圍設(shè)備在不需要主機(jī)設(shè)備或計(jì)算機(jī)的情況下進(jìn)行通信。
由Robert Bosch GmbH開(kāi)發(fā)的CAN協(xié)議主要用于汽車(chē),用于控制單元及其組件之間的通信。
例如,發(fā)動(dòng)機(jī)控制單元是汽車(chē)中使用的主要控制裝置。該裝置連接到許多傳感器和執(zhí)行器,如氣流,壓力,溫度,閥門(mén)控制,空氣控制電機(jī)等。這些模塊和控制單元之間的通訊是通過(guò)CAN總線進(jìn)行的。
為了更多地了解CAN總線,CAN控制器和其他重要方面,MCP2515 CAN總線控制器模塊非常有用。
同時(shí)閱讀: SPI通訊基礎(chǔ)。
簡(jiǎn)要說(shuō)明MCP2515 CAN總線控制器模塊
MCP2515 CAN總線控制器是一個(gè)簡(jiǎn)單的模塊,支持CAN協(xié)議版本2.0B,可用于1Mbps的通信。為了建立一個(gè)完整的通信系統(tǒng),您需要兩個(gè)CAN總線模塊。
項(xiàng)目如下圖所示。
此特定模塊基于MCP2515 CAN控制器IC和TJA1050 CAN收發(fā)器IC 。 MCP2515 IC是一個(gè)獨(dú)立的CAN控制器,集成了SPI接口,用于與微控制器通信。
來(lái)自TJA1050 IC,它充當(dāng)MCP2515 CAN控制器IC和物理CAN總線。
下圖顯示了典型MCP2515模塊上的組件和引腳。
MCP2515 CAN總線模塊示意圖
在查看模塊原理圖之前,您需要了解一個(gè)有關(guān)IC的一些事項(xiàng),即MCP2515和TJA1050。
MCP2515 IC是主控制器,內(nèi)部由三個(gè)主要子組件組成:CAN模塊,控制邏輯和SPI阻止。
CAN模塊負(fù)責(zé)在CAN總線上發(fā)送和接收消息。控制邏輯通過(guò)連接所有模塊來(lái)處理MCP2515的設(shè)置和操作。 SPI模塊負(fù)責(zé)SPI通信接口。
來(lái)到TJA1050 IC,由于它充當(dāng)MCP2515 CAN控制器和物理CAN總線之間的接口,因此該IC負(fù)責(zé)從控制器獲取數(shù)據(jù)并將其中繼到總線上。
下圖顯示了MCP2515 CAN模塊的原理圖,并顯示了模塊上MCP2515 IC和TJA1050 IC的連接方式。
MCP2515與Arduino接口的電路圖
下圖顯示了電路圖MCP2515 CAN模塊與Arduino的接口以及兩個(gè)Arduino over CAN協(xié)議之間可能的通信。
如果MCP2515模塊的引腳不清楚,以下圖片可能有用。
所需組件
Arduino UNO x 2 [購(gòu)買(mǎi)]
MCP2515 x 2 [在此處購(gòu)買(mǎi)]
USB電纜x 2
連接線[在此處購(gòu)買(mǎi)]
As前面提到過(guò),CAN控制器IC有助于SPI通信協(xié)議與任何微控制器連接。因此,將SPI引腳即SC25,MOSI(SI),MISO(SO)和MCP2515模塊的CS連接到Arduino的相應(yīng)SPI引腳(參見(jiàn)電路圖)。
進(jìn)行兩次這樣的連接:一對(duì)作為發(fā)射器,另一對(duì)作為接收器。現(xiàn)在,對(duì)于此發(fā)送器和接收器之間的通信,連接每個(gè)MCP2515模塊的CANH和CANL引腳。
代碼
在進(jìn)入代碼之前,您需要下載一個(gè)庫(kù)MCP2515模塊。有很多庫(kù),但我使用了這個(gè)特定的庫(kù)。
下載并將提取的內(nèi)容放在Arduino的libraries目錄中。
由于通信涉及發(fā)送器模塊和接收器模塊,因此代碼也分為發(fā)送器代碼和接收器代碼。
發(fā)送器代碼
接收器代碼
工作
此項(xiàng)目的工作非常簡(jiǎn)單,因?yàn)樗泄ぷ鞫加蓭?kù)(SPI和CAN)完成。由于CAN是基于消息的通信,因此您需要在0到8個(gè)字節(jié)之間的任何地方發(fā)送消息。
在此項(xiàng)目中,發(fā)送器正在發(fā)送消息為1 1 2 3 0 5 6 7.此消息通過(guò)CAN總線傳輸,接收器接收此消息并顯示在其串行監(jiān)視器上。
此外,0 th 和4 th 位,即上述序列中的1和0由接收器分別提取,并接通和斷開(kāi)連接到Arduino引腳2的LED。
應(yīng)用
如前言所述,CAN廣泛應(yīng)用于汽車(chē)領(lǐng)域。部分應(yīng)用包括:
電子換檔系統(tǒng)
自動(dòng)化中的主界面(如工業(yè))
醫(yī)療設(shè)備
機(jī)器人技術(shù)
自動(dòng)啟動(dòng)/停止汽車(chē)發(fā)動(dòng)機(jī)
-
總線控制器
+關(guān)注
關(guān)注
0文章
31瀏覽量
12792 -
Arduino
+關(guān)注
關(guān)注
189文章
6492瀏覽量
190144
發(fā)布評(píng)論請(qǐng)先 登錄
MCP2515同時(shí)收發(fā)出現(xiàn)bug
納祥科技NX8615,帶SPI接口的獨(dú)立局域網(wǎng)(CAN)控制器芯片,功能覆蓋MCP2515

如何使用Arduino實(shí)現(xiàn)CAN總線通信呢
【RK3562J開(kāi)發(fā)筆記】MCP2518FD外部CAN-FD控制器的調(diào)試方法

MCP2517FD小尺寸CAN FD控制器規(guī)格書(shū)
如何使用Arduino實(shí)現(xiàn)CAN總線通信
如何選擇CAN總線控制器
CAN總線控制器的工作原理
用于Hercules微控制器的CAN總線引導(dǎo)加載程序

CAN總線控制器是什么意思
CAN總線的接口類(lèi)型
SIT2515帶SPI接口的獨(dú)立局域網(wǎng)(CAN)控制器中文手冊(cè)
MCP2515帶SPI接口的獨(dú)立CAN控制器數(shù)據(jù)手冊(cè)

評(píng)論