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

CANOpen系列教程01_ 初識CAN與CANOpen及相關內容
評論