CAN智能節點設計管理論文
時間:2022-06-26 08:58:00
導語:CAN智能節點設計管理論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
摘要:can總線是一種流行的實時性現場總線,文中提出了一種基于MSP430單片機,并以MCP2510為CAN控制器的智能節點設計方案,該方案利用MSP430通過標準SPI接口可實現對MCP2510的控制,并能夠完全實現CAN總線規范。
關鍵詞:CAN智能節點;MSP430;MCP2510;數據通信
1引言
CAN總線是控制器局域網(ControllerAreaNet-work)總線的簡稱,它屬于現場總線范疇,是一種能有效支持分布式控制或實時控制的串行通信網絡,它可將掛接在現場總線上作為網絡節點的智能設備連接成網絡系統,并進一步構成自動化系統,從而實現基本的控制、補償、計算、參數修改、報警、顯示、監控、優化及控管一體化的綜合自動化功能。
CAN總線智能節點在分布式控制系統中起著承上啟下的作用。它位于傳感器和執行機構所在的現場,一方面和上位機(PC或者工控機)進行通信,以完成數據交換;另一方面又可根據系統的需要對現場的執行機構或者傳感器進行控制和數據采集。它常常將一些簡單的過程控制程序放在底層模塊中,從而減少了通信量,提高了系統控制的實時性。因此,智能化模塊設計在CAN系統中有著十分重要的作用。
本文將給出一種用MSP430單片機和MCP2510CAN控制器組成的總線智能節點的設計方案(見圖1),該方案中的單片機和CAN控制器通過標準的SPI接口進行通信,因此,該節點能夠完成對被控器件的數據采集上報,并接受上位機的命令,進而進行解析以完成對執行機構的控制。為了調試簡單,本方案作了一些改動:一是使MCP2510工作在環回模式,也就是數據由發送緩存直接發送到接收緩存,由于不經過CAN收發器和CAN總線,而只是使用了它的一個發送緩存和一個接收緩存,因而方便了調試;二是把被控器件的數據采集和對執行機構的控制部分略去,而這些功能在以后可以方便地添加,這樣,在實際使用時,只要對程序稍作修改就可應用。
2硬件設計
本設計的整個接口模塊主要由兩部分組成:CAN控制器MCP2510和微控制器MSP430。圖2所示是該智能節點的部分電路硬件原理圖。下面對主要部分功能作一介紹。
2.1MSP430F1232簡介
MSP430系列微控制器是TI公司推出的功能強大的超低功耗16位微處理器。它集成了豐富的片上外圍資源,因而開發方式十分簡便,可以用C語言編寫出效率很高的程序。所選MSP430F1232的工作電壓為1.8~3.6V,內含8kBFLASH存儲空間。片內集成了看門狗定時器(WTD)、基本時鐘模塊、US-ART、10位ADC、和帶有3個捕獲/比較器的16位定時器,因而片上資源十分豐富,完全可以滿足一般的需要,同時減少了設計的復雜度。與其它單片機相比,MSP430的I/O端口功能更強,可實現雙向的輸入、輸出,并可完成一些特殊的功能,如A/D轉換、捕獲比較等;另外,它還可以實現I/O的各種中斷。
本設計中,MSP430的作用有兩個:一是對執行機構的控制以及對輸入模擬量或者開關量的信號采集;二是利用UART模塊通過SPI模式與MCP2510通信并控制MCP2510以實現CAN規范。
2.2MCP2510簡介
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系統時鐘
由于MSP430的時鐘頻率決定著指令周期,因而該時鐘直接影響SPI接口的速率。MSP430F1232有兩個可選的時鐘:一是外部低速32.768kHz的時鐘晶體;二是采用內部數控DCO的可調頻率。本設計直接采用它內部的數控DCO作為它的主時鐘MCLK和SMCLK,由于直接工作在800kHz,因而免去了使用晶體。MCP2510采用標準的4MHz晶體。MSP430中USART模塊的CLK可由系統時鐘分頻得到,速率設定也十分方便。實際上,MCP2510輸出到總線的速率也可通過設置內部寄存器的控制分頻系數來調節。
此外,由于MCP2510的輸出信號驅動能力不夠,而且與CAN總線物理接口的要求存在很大的差異,所以,在實際應用中必須使用CAN收發器(如MCP2551等),它可支持的CAN速率最高可達1Mbps,而且容錯能力很強。此外,它內部還有很強的保護電路,可以防止總線的其它節點對它的影響。
3軟件設計
在進行本系統節點的軟件設計前,首先簡要說明一下MCP2510的指令格式,MCP2510的5條指令如表1所列。
表1MCP2510指令格式
指令指令格式說明
復位11000000使內部寄存器復位,進入配置模式
讀取00000011從寄存器讀取數據,指令在前,地址隨后
寫入00000010寫數據到寄存器,指令在前,地址和數據隨后
發送請求10000nnn對發送緩存發送信息進行初始化
狀態讀取10100000讀取常用狀態寄存器的某些位數據
位修改00000101對豁口的某幾件位修改
在使用時,可以把這些指令直接編寫成函數形式,這樣可使程序簡練易讀。同時,發送請求的硬件觸發只需把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總線功能。
- 上一篇:獨家原創:企業物資采購監督流程
- 下一篇:獨家原創:治保中心黨支部作風整頓工作方案