不免費
CANopen是壹種架構在控制局域網絡(Controller Area Network, CAN)上的高層通信協議,是包括通信子協議及設備子協議,常在嵌入式系統中使用,也是工業控制常用到的壹種現場總線。
CANopen是壹種架構在控制局域網路(Controller Area Network, CAN)上的高層通訊協定,包括通訊子協定及設備子協定常在嵌入式系統中使用,也是工業控制常用到的壹種現場總線。
CANopen 實現了OSI模型中的網絡層以上(包括網絡層)的協定。CANopen 標準包括尋址方案、數個小的通訊子協定及由設備子協定所定義的應用層。 CANopen 支援網絡管理、設備監控及節點間的通訊,其中包括壹個簡易的傳輸層,可處理資料的分段傳送及其組合。壹般而言數據鏈結層及物理層會用CAN來實作。除了 CANopen 外,也有其他的通訊協定(如EtherCAT)實作 CANopen 的設備子協定。
CANopen由非營利組織CiA(CAN in Automaion)進行標準的起草及審核工作,基本的 CANopen 設備及通訊子協定定義在 CAN in Automation (CiA) draft standard 301. 中。針對個別設備的子協定以 CiA 301 為基礎再進行擴充。如針對 I/O 模組的 CiA401 及針對運動控制的 CiA402。
設備模型
以下是所有 CANopen 設備都要具備的功能:
通訊單元 處理和網絡上其他模組通訊所需要的通訊協定。 設備的啟動及重置由狀態機(state machine)控制。狀態機需包括以下的幾個狀態:Initialization, Pre-operational, Operational 及 Stopped。當接收到網絡管理 (NMT) 通訊對象,狀態機會轉換到對應的狀態。 對象字典 (Object Dictionary) 是壹個有 16 位元索引 (Index) 的變量陣列。每個變量可以(但非必須)有 8 位元的子索引 (Subindex)。變量可用來調整設備的組態,也可以對應設備量測的資料或設備的輸出。 當狀態機設定為 operational 之後,設備的應用 (application) 部份就會實現設備預期的機能。此部份可以由對象字典中的變量調整其設定,而資料由通訊層傳送或接收。