單片機在CAN總線智能節點中的應用
1 Can總線概述
本文引用地址:http://www.104case.com/article/170724.htmCAN, 全稱為“Controller Area Network”,是國際上應用最廣泛的現場總線之一。20世紀80年代初,德國Bosch公司為了解決現代汽車中眾多的控制與測試儀表之間的數據交換問題,開發出 CAN總線。CAN總線能有效支持分布式控制或實時控制的串行通信網絡,具有抗干擾性強和使用可靠等優點,最初主要應用汽車工業,現在廣泛應用于汽車工業、航空工業和工業控制等自動化領域,如分布式環境監測系統、溫室環境監控系統、變電站變監測系統等。
CAN總線是一種串行數據通信協議,其通信接口中集成了CAN協議的物理層和數據鏈路層功能,可完成對數據的成幀處理,用戶可在其基礎上開發適應系統實際需要的應用層通信協議。CAN協議的一個最大特點是廢除了傳統的站地址編碼,而代之以對通信數據塊編碼,采用這種方法可使網絡內節點個數在理論上不受限制,還可使不同的節點同時收到相同的數據。
CAN總線提供高速數據傳送, 在短距離(40m)條件下具有高速(1Mbit/s)數據傳輸能力,而在最大距離10000m時具有低速(5kbits/s)傳輸能力,極適合在高速的工業自控應用上,CAN總線可在同一網絡上連接多種不同功能的傳感器(如位置,溫度或壓力等)。
CAN總線的其他特點如下:
(1)它是一種多主總線,即每個節點機均可成為主機,且節點機之間也可進行通信;
(2)通信介質可以是雙絞線、同軸電纜或光導纖維,通信速率可達1Mbps;
(3)數據段長度最多為8個字節,可滿足通常工業領域中控制命令,工作狀態及測試數據的一般要求。同時,8個字節不會占用總線時間過長,從而保證了通信的實時性;
(4)CAN協議采用CRC檢驗并可提供相應的錯誤處理功能,保證了數據通信的可靠性。
CAN可以以多主方式工作,網絡上任意節點均可以在任意時刻主動地向總線上其它節點發送信息,實現點對點、一點對多點及全局廣播幾種方式發送接收數據;CAN采用非破壞性總線仲裁技術,當兩個節點同時向總線上發送信息時,優先級低的節點主動停止數據發送,而優先級高的節點可不受影響地繼續傳輸數據,節省了總線沖突仲裁時間。
圖1-1為一個CAN總線應用系統,主要有主機和各節點組成,主機和節點之間通過CAN收發器及CAN控制器相連,單個節點包括一個單片機控制器、一個CAN收發器和一個CAN控制器。其中一個典型的應用是:主機接收各節點發送的現場數據,如現場溫度、電流或壓力等參數,主機經過綜合計算、判斷作出相應的控制命令,這些命令將通過CAN總線傳送至各節點。各節點由單片機作為控制器,它用于采集現場的各項參數,并執行主機發送的各項命令,這些命令將最終傳送至各執行機構,如閥門、電機或泵等.

圖1-1 CAN總線應用系統
本文將介紹基于凌陽8位通用型工控單片機的CAN總線智能節點的設計。本文將闡述智能節點中的主控器SPMC65P2404A在本方案中的應用特點,及主控器與CAN總線控制器之間的通信。
評論