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