新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)和MCP2510的CAN總線通信模塊設(shè)計(jì)

單片機(jī)和MCP2510的CAN總線通信模塊設(shè)計(jì)

作者: 時(shí)間:2012-04-07 來源:網(wǎng)絡(luò) 收藏

單片機(jī)和MCP2510的CAN總線通信模塊設(shè)計(jì)

圖7 軟件主體設(shè)計(jì)流程圖

本文中主要采取中斷模式進(jìn)行總線數(shù)據(jù)的接收和發(fā)送。整個(gè)系統(tǒng)主序提供兩種中斷: 定時(shí)器中斷和外部中斷。定時(shí)器中斷的中斷子程序主要負(fù)責(zé)處理來自模擬通道AIN0~AIN7的A/D數(shù)據(jù),向發(fā)送“數(shù)據(jù)發(fā)送請求命令”以及發(fā)送數(shù)據(jù)。外部中斷的中斷處理子程序主要包括錯(cuò)誤處理子程序和數(shù)據(jù)接收子程序。

2.2 軟件主體設(shè)計(jì)流程

軟件主體設(shè)計(jì)流程如圖7所示。軟件設(shè)計(jì)時(shí)需要注意以下問題:

① 因?yàn)?在初始化完成后處于默認(rèn)Configuration模式下,所以就需要在MCP2510的初始化完后將其置為 Normal模式,否則MCP2510將一直停留在Configuration 模式下,不能正常進(jìn)行工作。將MCP2510置Normal模式可通過使用 MCP2510內(nèi)置的BitModify(位修改)4指令向CANCTRL控制字寫入一個(gè)0字節(jié)來實(shí)現(xiàn)。

② 在對MCP2510進(jìn)行任何操作之前,都要由微處理器向MCP2510的片選CS輸出一個(gè)低電平,使得MCP2510選通。

③ 在執(zhí)行MCP2510的“讀”操作時(shí),發(fā)送完讀指令及其地址碼之后,仍然需要向MCP2510提供時(shí)鐘,以接收“讀”到的數(shù)據(jù)??梢酝ㄟ^向MCP2510發(fā)送一個(gè)0字節(jié)來實(shí)現(xiàn)。

④ 在對MCP2510完成任意操作后,都要延時(shí)一段時(shí)間,使其有足夠的時(shí)間來準(zhǔn)備接收下次操作的命令,防止出現(xiàn)MCP2510“忙”的情況。

3 總結(jié)

已被公認(rèn)為是最有前途的幾種現(xiàn)場總線之一。因其性價(jià)比高、實(shí)現(xiàn)簡單等突出優(yōu)點(diǎn)深受越來越多的研發(fā)人員的青睞。本文的智能節(jié)點(diǎn)可聯(lián)結(jié)多個(gè)集散控制系統(tǒng),其軟硬件電路的設(shè)計(jì)方法同樣適合于其他基于的分布式控制系統(tǒng)的節(jié)點(diǎn)設(shè)計(jì)。

參考文獻(xiàn)

[1] 鄔寬明. CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì)[M]. 北京:北京航空航天大學(xué)出版社,1996.

[2] Microchip. MCP2510 DataSheet,2002.

[3] 王繼國,新亞. CAN控制器芯片MCP2510在遠(yuǎn)程監(jiān)測系統(tǒng)中的應(yīng)用[J].電子技術(shù)應(yīng)用,2004(4).

[4] 蔡美琴,張為民,何金兒,等. MCS51系列系統(tǒng)及其應(yīng)用[M]. 第2版. 北京: 高等教育出版社,2004.

楊慶華(碩士研究生),主要研究方向?yàn)橛?jì)算機(jī)測控;張景元(教授),主要研究方向?yàn)槿斯ぶ悄?、模式識別、信息處理和智能控制。


上一頁 1 2 3 4 下一頁

關(guān)鍵詞: 單片機(jī) MCP2510 CAN總線

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉