CANopen協議的幾個關鍵知識點
CANopen在工業領域應用極為廣泛,具體到國內的話,它在移動式工程機械、伺服運動控制中出鏡率較高。
圖1 工程機械行業常見的某品牌CANopen介面壓力感測器。
CANopen很常見的出現在工程機械的運動控制器和一些感測器中。我曾經工作於工程機械近九年,2007年接觸CANopen。在那個時候,CANopen對我來說完全是個極度陌生的東西,一頭霧水的google一下,找到的全是純英文的CiA官方協議文本。這麼多年下來,經歷過自學、培訓、實戰,個人覺得以下幾個關鍵知識點對於搞清CANopen是很必要的。
1、CiA301是所有CANopen協議的根本所在,它定義了CANopen的基本框架;而諸如CiA402之類的CANopen協議,只是在CiA301基礎之上,面向特定設備或領域制定的協議子集。
要深入認識CANopen,必須先熟悉CiA301協議。
2、CANopen通信的本質是通訊節點之間對象字典的數據傳遞,此外,附加了一些網路管理、狀態監測、特定輔助報文的通訊。
圖2 CANopen通訊模型
3、對象字典中用索引、子索引的方式,記錄了各種通訊對象的配置參數、通訊內容;對象字典的數字化文件就是.eds文件。
圖3 EDS文件編輯
4、用於數據傳遞的主要通信方式是PDO、SDO。PDO傳輸的是節點間的大量實時數據(過程數據),可根據需要定義其發送方式(同步、定時、事件等);而SDO傳輸的本質是對目標節點數據字典中索引/子索引的讀寫,這種讀寫的主要目的是獲取或配置目標節點的運行參數,其讀寫是一對一的一來一往的方式。
5、網路中不一定要有主站,NMT主站可以讓任何一個節點充當。
6、網路狀態監測機制優選Heartbeat。當前,其他方式在很多商用的產品上已不支持。
7、CANopen協議棧的運行是基於如下的狀態機,不同的狀態可以進行不同的數據通信,不同的狀態通過NMT報文切換。
圖4 CANopen狀態機
8、CANopen協議預定義了各種通信對象的ID組成,應遵照其定義。
圖5 CANopen預定義連接集


TAG:CatchCAN |