<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > CAN智能節點(diǎn)的設計

CAN智能節點(diǎn)的設計

作者: 時(shí)間:2011-07-20 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/161783.htm

MCP25101是Microchip公司推出的功能很強的CAN控制器芯片,它支持CAN1.2、2.0A及2.0B規范;其內部結構見(jiàn)圖3所示。該芯片內含3個(gè)發(fā)送緩存和2個(gè)接收緩存,可以對發(fā)送優(yōu)先級進(jìn)行管理,可濾除無(wú)用信息,MCP2510有6個(gè)可編程濾波器,而且中斷資源十分豐富。最可貴的是,它可以通過(guò)標準的SPI接口與微控制器進(jìn)行通信,從而放寬了MCU的選擇范圍使得所有單片機都有接入的可能。

MCP2510的主要功能是在MCU的控制下實(shí)現CAN規范,它內部的所有寄存器和控制寄存器都映射到一個(gè)地址表上,MCU可以使用相應的命令格式通過(guò)標準的SPI接口來(lái)完成對MCP2510的初始化、工作狀態(tài)的控制以及數據的讀寫(xiě)。此外,MCP2510產(chǎn)生的中斷還可以反饋給MCU來(lái)處理。

2.3 系統時(shí)鐘

此外,由于MCP2510的輸出信號驅動(dòng)能力不夠,而且與CAN總線(xiàn)物理接口的要求存在很大的差異,所以,在實(shí)際應用中必須使用CAN收發(fā)器(如MCP2551等),它可支持的CAN速率最高可達1Mbps,而且容錯能力很強。此外,它內部還有很強的保護電路,可以防止總線(xiàn)的其它對它的影響。

3 軟件

在進(jìn)行本系統的軟件前,首先簡(jiǎn)要說(shuō)明一下MCP2510的指令格式,MCP2510的5條指令如表1所列。

表1 MCP2510指令格式

指 令指令格式

說(shuō) 明

復位1100 0000使內部寄存器復位,進(jìn)入配置模式
讀取0000 0011從寄存器讀取數據,指令在前,地址隨后
寫(xiě)入0000 0010寫(xiě)數據到寄存器,指令在前,地址和數據隨后
發(fā)送請求1000 0nnn對發(fā)送緩存發(fā)送信息進(jìn)行初始化
狀態(tài)讀取1010 0000讀取常用狀態(tài)寄存器的某些位數據
位修改0000 0101對豁口的某幾件位修改

在使用時(shí),可以把這些指令直接編寫(xiě)成函數形式,這樣可使程序簡(jiǎn)練易讀。同時(shí),發(fā)送請求的硬件觸發(fā)只需把TXnRTS置低即可。實(shí)際上,接收緩存收到信息后也能產(chǎn)生硬件觸發(fā),并在TXnRTS引腳產(chǎn)生低電平輸出。

的主程序流程圖如圖4所示。

上電復位后,MSP430首先完成自身外圍模塊的初始化,其任務(wù)主要是選擇時(shí)鐘模塊中的時(shí)鐘、使USART模塊工作于SPI模式、以及對看門(mén)狗定時(shí)器的配置等;然后對MCP2510進(jìn)行初始化,以對寄存器進(jìn)行設置。需要注意的是,MCP2510只有在配置模式下才可以對控制參數進(jìn)行配置,但它在復位以后就是配置模式。

當配置MCP2510到環(huán)回模式后,MSP430將寫(xiě)數據到MCP2510的發(fā)送緩存并控制其發(fā)送,此后,在接收緩存收到數據后,INT引腳將產(chǎn)生低電平中斷以通知MSP430,MSP430響應中斷后將讀取數據,并和發(fā)送的數據進(jìn)行比較,以驗證程序的可行性。需要注意的是,無(wú)論是對MCP2510的讀還是寫(xiě),都必須使它的CS引腳處于低電平。

在實(shí)際應用中,MSP430和MCP2510都可以進(jìn)入睡眠模式,并可以由中斷來(lái)激活。整個(gè)的主要功能均由中斷子程序來(lái)完成,其中的一部分是MSP430自身的中斷(看門(mén)狗定時(shí)器溢出中斷、SPI接收發(fā)送中斷、ADC中斷等),另一部分是MCP2510引起的中斷,這部分中斷資源十分豐富,包括信息接收發(fā)送中斷、信息錯誤中斷、總線(xiàn)激活中斷等。它產(chǎn)生的所有中斷都能使INT引腳為低電平, 單片機在檢測到這些中斷后,將通過(guò)SPI接口讀?。停茫校玻担保皟炔康闹袛鄻酥炯拇嫫饕耘袛嗍呛沃袛?,然后再進(jìn)行進(jìn)一步處理。

4 結束語(yǔ)

MSP430和MCP2510的很多實(shí)用功能本文還沒(méi)有進(jìn)一步開(kāi)發(fā),只是作了一個(gè)簡(jiǎn)單測試系統,而且許多實(shí)際應用中需要注意的問(wèn)題也沒(méi)有考慮到,需要進(jìn)一步完善。此外,由于MCP2510使用標準的SPI接口與單片機通信,所以加上它可以不更換單片機,而只需對程序稍作修改即可,因此,采用該方案幾乎可以在任何現有系統上實(shí)現CAN總線(xiàn)功能。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 設計 節點(diǎn) 智能 CAN

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>