關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > CAN智能節點的設計

        CAN智能節點的設計

        作者: 時間:2011-07-20 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/161783.htm

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

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

        2.3 系統時鐘

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

        3 軟件

        在進行本系統的軟件前,首先簡要說明一下MCP2510的指令格式,MCP2510的5條指令如表1所列。

        表1 MCP2510指令格式

        指 令指令格式

        說 明

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

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

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

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

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

        在實際應用中,MSP430和MCP2510都可以進入睡眠模式,并可以由中斷來激活。整個的主要功能均由中斷子程序來完成,其中的一部分是MSP430自身的中斷(看門狗定時器溢出中斷、SPI接收發送中斷、ADC中斷等),另一部分是MCP2510引起的中斷,這部分中斷資源十分豐富,包括信息接收發送中斷、信息錯誤中斷、總線激活中斷等。它產生的所有中斷都能使INT引腳為低電平, 單片機在檢測到這些中斷后,將通過SPI接口讀取MCP2510內部的中斷標志寄存器以判斷是何中斷,然后再進行進一步處理。

        4 結束語

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


        上一頁 1 2 下一頁

        關鍵詞: 設計 節點 智能 CAN

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 乌苏市| 虎林市| 安宁市| 娱乐| 海丰县| 东乡族自治县| 安岳县| 汨罗市| 金川县| 景德镇市| 托克托县| 西盟| 桑植县| 鸡西市| 蒲江县| 赤城县| 珠海市| 平陆县| 黄山市| 峨山| 山西省| 濮阳市| 德江县| 鹿泉市| 齐齐哈尔市| 化隆| 马鞍山市| 仪陇县| 荥经县| 陈巴尔虎旗| 中牟县| 宜都市| 汝城县| 信宜市| 石城县| 平阳县| 大厂| 宜都市| 新沂市| 临洮县| 株洲市|