1寫在前面
我之前學習CANOpen的時候,網上有用的資料極少,走了不少彎路。到目前為止,網上關于CANOpen的資料依然很少。所以,特地寫下該系列教程,幫助初學者跨過這道坎。
從我個人學習CANOpen的經歷來看,學會使用CANOpen難度其實不大。難點在于需要掌握的基礎知識很多,而且許多都有關聯性,容易把人繞暈。
那么,我希望通過結合之前我的學習經歷,以及工作經驗,站在小白的角度寫下該系列教程。當然,該教程由我個人編輯并整理,難免有些廢話,或者錯誤,還請諒解。
2
初識CAN與CANOpen
2.1 什么是CAN?
CAN:是Controller Area Network的縮寫,即控制器局域網絡,屬于工業現場總線,是ISO國際標準化的串行通信協議。
從OSI(Open System Interconnection開放系統互聯)7層網絡模型的角度來看,CAN現場總線僅僅定義了第 1 層(物理層)和第 2 層(數據鏈路層)。
而在實際設計中,這兩層完全由硬件實現,設計人員無需再為此開發相關軟件或固件(Firmware),只要了解如何調用相關的接口和寄存器,即可完成對CAN的控制。
上面介紹的內容可能太官方,初學者可能看了之后還是不明白。簡單的說:CAN總線就是一層硬件協議。比如:差分信號電平的定義、數據幀的定義等等。
PS:初學者可以結合UART來理解,比如UART串口發送一個字符’A’,它就是一種串行通信的方式。
2.2 什么是CANOpen?
CANopen是一種架構在CAN控制局域網上的高層軟件通信協議,包括通信子協議及設備子協議,常在嵌入式系統中使用,也是工業控制常用到的一種現場總線協議。
CANopen協議是在20世紀90年代末,由總部位于德國紐倫堡的 CiA 組織——CAN-in-Automation,在 CAL(CAN Application Layer)的基礎上發展而來。
所以,關于CANOpen協議內容請參看:http://www.can-cia.org
由于CAN總線只定義了OSI中的物理層和數據鏈路層,因此對于不同的應用出現了不同的【應用層協議】,為了使不同廠商的產品能夠相互兼容,世界范圍內需要通用的CAN應用層通信協議。
在過去的二三十年中涌現出許多的協議,不過到現在為止能夠廣泛被承認的協議卻不多,現在應用較廣的CAN應用層協議主要有以下三種:
CANopen協議:主要應用在汽車、工業控制、自動化儀表等領域,目前由 CIA 負責管理和維護;
J1939協議:CAN總線在商用車領域占有絕大部分市場份額的應用層協議,由美國機動車工程師學會發起,現已在全球范圍內得到廣泛的應用;
DeviceNet協議:在美國等地占有相當大的市場份額,主要用于工業通信及控制和儀器儀表等領域。
而本文說的CANOpen也是目前應用較廣的一種協議。簡單的說,CANOpen就是CAN總線應用層協議。
PS:學習CANOpen應用層協議之前請務必先了解CAN總線協議。
3
CAN總線特點
CAN總線采用差分信號傳輸,通常情況下只需要兩根信號線(CAN-H和CAN-L)就可以進行正常的通信。在干擾比較強的場合,還需要用到屏蔽地即CAN-G(主要功能是屏蔽干擾信號), CAN協議推薦用戶使用屏蔽雙絞線作為CAN總線的傳輸線。
CAN總線通信的優勢和特點:
A.CAN總線上任意節點,均可在任意時刻主動的向其它節點發起通信,但在同一時刻優先級高的節點能獲得總線的使用權。
B.標準CAN總線傳輸波特率可達到1Mbps。在5Kbps的通信波特率下最遠傳輸距離可以達到 10Km,即使在1Mbps的波特率下也能傳輸40m的距離。
C.CAN總線定義使用了硬件報文濾波,可實現點對點及點對多點的通信方式,不需要軟件來控制。
D.CAN 總線所掛接的節點數量主要取決于CAN總線收發器或驅動器,目前的驅動器一般都可以使同一網絡容量達到110個節點。
E.CAN總線通信介質可采用雙絞線、同軸電纜或光纖,選擇極為靈活??纱蟠蠊澕s組網成本。
當然,CAN總線的優勢還有許多,當你掌握之后就會明白為什么CAN總線應用得如此廣泛了。
4
教程規劃
CAN總線及CANOpen協議相關的內容相對比較多,如果每一個細節知識點都寫出來,可能花掉我業余時間寫一年也寫不完。
我寫該教程目的在于引導初學者入門,我會結合實例代碼讓大家邊學邊理解,至于實際項目編程應用不一定講述的很多(這個看后面情況)。
首先從CAN底層講起,再到CANOpen協議相關基礎知識,最后實際應用。當然,中間每一個環節內容相對可能較多,也有可能會遺漏部分內容。
-
控制器
+關注
關注
112文章
15885瀏覽量
175370 -
CAN
+關注
關注
57文章
2663瀏覽量
462448 -
CANopen
+關注
關注
8文章
235瀏覽量
43417
發布評論請先 登錄
相關推薦
評論