摘 要:CAN總線作為現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)之一,是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信系統(tǒng),廣泛應(yīng)用于工業(yè)自動(dòng)化監(jiān)控網(wǎng)絡(luò)中。本文設(shè)計(jì)了一種基于MCP2515控制芯片的CAN總線網(wǎng)絡(luò);給出了硬件電路圖和軟件系統(tǒng)設(shè)計(jì)流程圖,并進(jìn)行了相應(yīng)的說(shuō)明。
關(guān)鍵詞:CAN總線;MCP2515;通信網(wǎng)絡(luò)
中圖分類號(hào):TP273 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-7712 (2012) 12-0078-01
一、引言
CAN(Controller Area Network)總線即控制器局域網(wǎng)總線,具有高性能和高可靠性,成本低,廣泛應(yīng)用于工業(yè)現(xiàn)場(chǎng)控制、智能樓宇、醫(yī)療器械、交通工具以及傳感器等領(lǐng)域。微芯公司的MCP2515總線控制器芯片采用標(biāo)準(zhǔn)SPI串行接口,符合CAN 2.0B技術(shù)規(guī)范,編程配置方便,可以使產(chǎn)品快速更新,縮短開(kāi)發(fā)周期,提高產(chǎn)品質(zhì)量。
二、MCP2515介紹
MCP2515是獨(dú)立控制器局域網(wǎng)絡(luò)協(xié)議控制器,完全支持CAN V2.0B技術(shù)規(guī)范。該器件能發(fā)送和接收標(biāo)準(zhǔn)和擴(kuò)展數(shù)據(jù)幀以及遠(yuǎn)程幀。MCP2515自帶的兩個(gè)驗(yàn)收屏蔽寄存器和六個(gè)驗(yàn)收濾波寄存器可以過(guò)濾掉不想要的報(bào)文,因此減少了主單片機(jī)(MCU)的開(kāi)銷。MCP2515與MCU的連接是通過(guò)業(yè)界標(biāo)準(zhǔn)串行外設(shè)接口SPI來(lái)實(shí)現(xiàn)的。該器件主要由三個(gè)部分組成:
1.CAN模塊,包括CAN協(xié)議引擎、驗(yàn)收濾波寄存器、驗(yàn)收屏蔽寄存器、發(fā)送和接收緩沖器。
2.用于配置該器件及其運(yùn)行的控制邏輯和寄存器。
3.SPI協(xié)議模塊。MCU通過(guò)SPI接口與該器件連接。
三、硬件電路設(shè)計(jì)
MCP2515的硬件電路圖如圖1所示。MCU通過(guò)SPI接口(或者模擬SPI接口)與MCP2515連接,使用INT引腳產(chǎn)生接收、發(fā)送中斷請(qǐng)求,不使用其他同步信息引腳連接;采用16MHz晶振產(chǎn)生工作頻率(最高40MHz);通過(guò)光耦器件6N137進(jìn)行隔離,保證MCU端電源與總線電源有效隔離;采用PCA82C250作為總線驅(qū)動(dòng)器,可以連接最多64個(gè)節(jié)點(diǎn),傳輸速率最高1Mbps。
四、軟件設(shè)計(jì)
CAN總線通信模塊的程序包括MCP2515的初始化、節(jié)點(diǎn)自測(cè)、通信波特率偵測(cè)程序。通信模塊初始化之后即可由CPU的主監(jiān)控程序調(diào)用的數(shù)據(jù)發(fā)送、接收及其他通信任務(wù)相關(guān)子程序。MCP2515提供了兩種數(shù)據(jù)操作模式,即中斷模式和狀態(tài)查詢模式。由于查詢模式需大量的CPU開(kāi)銷,所以在實(shí)時(shí)要求較高的自動(dòng)化儀表中常用中斷方式。通信模塊的主流程如圖2所示。
五、網(wǎng)絡(luò)結(jié)構(gòu)
CAN總線網(wǎng)絡(luò)可以包含多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)具有相同的總線使用權(quán),可以配置為主機(jī)或從機(jī),由總線仲裁機(jī)制完成。本系統(tǒng)采用固定主機(jī)和從機(jī)方式,從機(jī)只能向主機(jī)發(fā)送信息,而主機(jī)可以向某個(gè)從機(jī)發(fā)送定向信息,也可以向所有從機(jī)發(fā)送廣播信息,網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
六、結(jié)束語(yǔ)
本文詳細(xì)介紹了CAN總線控制器MCP2515,給出了硬件連接圖、軟件流程圖和網(wǎng)絡(luò)結(jié)構(gòu)圖。MCP2515具有多個(gè)屏蔽寄存器,可以設(shè)置多個(gè)過(guò)濾條件,采用非對(duì)稱網(wǎng)絡(luò)結(jié)構(gòu),使得各從機(jī)之間相互獨(dú)立,不會(huì)產(chǎn)生任何相互干擾。同時(shí)各模塊采用了光耦隔離電路,合理設(shè)置主機(jī)程序,可以實(shí)現(xiàn)從機(jī)的即插即用功能,具有廣闊的實(shí)用價(jià)值。
參考文獻(xiàn):
[1]王繼國(guó),吉吟東,孫新亞.CAN總線控制器MCP2515的原理及應(yīng)用[J].電測(cè)與儀表,2004,1:457-460
[2]李貌,秦霆鎬,閆世曉.MCP2515在CAN總線系統(tǒng)智能節(jié)點(diǎn)的應(yīng)用[J].嵌入式網(wǎng)絡(luò)技術(shù),2005,21(7)
[3]steve diaper.CAN開(kāi)發(fā)技術(shù)[J].今日電子,2004,9
[基金資助]桂科基LD10065Y