canopen協議是流行于歐洲的一種協議,初看還是挺懵逼的,有需要的同學可以下來看看
0.jpg (25.5 KB, 下載次數: 118)
下載附件
2018-9-20 16:31 上傳
1、介紹
從OSI網絡模型的角度來看同,現場總線網絡一般只實現了第1層(物理層) 、第2 層(數據鏈路層) 、第7層(應用層) 。因為現場總線通常只包括一個網段,因此不需要第3層(傳輸層)和第4層(網絡層) ,也不需要第5層(會話層)第6層(描述層)的作用。 CAN(Controller Area Network)現場總線僅僅定義了第1 層、第2層(見ISO11898標準) ;實際設計中,這兩層完全由硬件實現,設計人員無需再為此開發相關軟件(Software)或固件(Firmware) 。 同時,CAN只定義物理層和數據鏈路層,沒有規定應用層,本身并不完整,需要一個高層協議來定義CAN報文中的 11/29位標識符、8字節數據的使用。而且,基于CAN總線的工業自動化應用中,越來越需要一個開放的、標準化的高層協議:這個協議支持各種CAN 廠商設備的互用性、互換性,能夠實現在CAN網絡中提供標準的、統一的系統通訊模式,提供設備功能描述方式,執行網絡管理功能。
z 應用層(Application layer) :為網絡中每一個有效設備都能夠提供一組有用的服務與協議。
z 通訊描述(Communication profile) :提供配置設備、通訊數據的含義,定義數據通訊方式。
z 設備描述(Device proflile) :為設備(類)增加符合規范的行為。
下面的章節將介紹基于CAN 的高層協議: CAL協議和基于CAL協議擴展的CANopen 協議。 CANopen協議是CAN-in-Automation(CiA)定義的標準之一,并且在發布后不久就獲得了廣泛的承認。尤其是在歐洲,CANopen協議被認為是在基于CAN的工業系統中占領導地位的標準。大多數重要的設備類型,例如數字和模擬的輸入輸出模塊、驅動設備、操作設備、控制器、可編程控制器或編碼器,都在稱為“設備描述”的協議中進行描述; “設備描述”定義了不同類型的標準設備及其相應的功能。依靠CANopen協議的支持,可以對不同廠商的設備通過總線進行配置。
在OSI模型中,CAN標準、CANopen協議之間的關系如下圖所示:
0.png (54.34 KB, 下載次數: 86)
下載附件
2018-9-20 16:32 上傳
圖1.1 CAN、CANopen標準在OSI網絡模型中的位置框圖
2、CAL 協議
CAL(CAN Application Layer)協議是目前基于 CAN的高層通訊協議中的一種,最早由 Philips醫療設備部門制定。現在CAL由獨立的CAN用戶和制造商集團CiA(CAN in Automation)協會負責管理、發展和推廣。
CAL提供了4種應用層服務功能:
z CMS (CAN-based Message Specification)
CMS 提供了一個開放的、面向對象的環境,用于實現用戶的應用。CMS 提供基于變量、事件、域類型的對象,以設計和規定一個設備(節點)的功能如何被訪問(例如,如何上載下載超過8 字節的一組數據(域) ,并且有終止傳輸的功能) 。
CMS 從MMS (Manufacturing Message Specification)繼承而來。MMS是OSI 為工業設備的遠程控制和監控而制定的應用層規范。
z NMT (Network ManagemenT)
提供網絡管理(如初始化、啟動和停止節點,偵測失效節點)服務。這種服務是采用主從通訊模式(所以只有一個NMT主節點)來實現的。
z DBT (DistriBuTor)
提供動態分配CAN ID(正式名稱為COB-ID,Communication Object Identifier)服務。這種服務是采用主從通訊模式(所以只有一個DBT主節點)來實現的。
z LMT (Layer ManagemenT)
LMT提供修改層參數的服務:一個節點(LMT Master)可以設置另外一個節點(LMT Slave)的某層參數(如改變一個節點的NMT地址,或改變CAN接口的位定時和波特率) 。
CMS為它的消息定義了8個優先級,每個優先級擁有220個COB-ID,范圍從1到1760。剩余的標志(0,1761-2031)保留給NMT,DBT和LMT,見表2-1。
0.png (60.83 KB, 下載次數: 103)
下載附件
2018-9-20 16:33 上傳
注意這是CAN2.0A標準,11 位ID范圍[0,2047],由于歷史原因限制在[0,2031]。如果使用CAN2.0B標準, 29位ID并不改變這個描述; 表中的11位映射到29位COB-ID中的最高11位, 以至于表中的COB-ID范圍變得增大許多。
3、CANopen
CAL提供了所有的網絡管理服務和報文傳送協議,但并沒有定義CMS 對象的內容或者正在通訊的對象的類型(它只定義了how,沒有定義what) 。而這正是CANopen切入點。 CANopen是在 CAL基礎上開發的,使用了CAL通訊和服務協議子集,提供了分布式控制系統的一種實現方案。CANopen在保證網絡節點互用性的同時允許節點的功能隨意擴展:或簡單或復雜。 CANopen的核心概念是設備對象字典 (OD: Object Dictionary) , 在其它現場總線 (Profibus, Interbus-S)系統中也使用這種設備描述形式。注意:對象字典不是CAL的一部分,而是在CANopen中實現的。 下面先介紹對象字典(OD:Object Dictionary) ,然后再介紹CANopen通訊機制。
3.1 對象字典 OD
對象字典(OD:Object Dictionary)是一個有序的對象組;每個對象采用一個16位的索引值來尋址,為了允許訪問數據結構中的單個元素,同時定義了一個8位的子索引,對象字典的結構參照表3-1。不要被對象字典中索引值低于 0x0FFF 的‘data types’項所迷惑,它們僅僅是一些數據類型定義。一個節點的對象字典的有關范圍在0x1000到0x9FFF之間。
完整的pdf格式文檔51黑下載地址(共21頁):
canopen中文協議.pdf
(2.08 MB, 下載次數: 238)
2018-9-20 10:31 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|