CAN最初是由德國的BOSCH公司為汽車控制系統而設計,并在1993年成為國際標準。之后因其所具有的高可靠性和良好的錯誤檢測能力受到重視,現在已經擴展到醫療、交通、運動控制、工業自動化多個領域。 CANopen是CAN應用層。它是在1995年由歐洲的CIA協會推出第一個標準版本,其后五年在應用中不斷完善,現在使用的主要是1999修訂的標準。
1.二者的歷史淵源
CAN最初是由德國的BOSCH公司為汽車控制系統而設計,并在1993年成為國際標準。之后因其所具有的高可靠性和良好的錯誤檢測能力受到重視,現在已經擴展到醫療、交通、運動控制、工業自動化多個領域。
CANopen是CAN應用層。它是在1995年由歐洲的CIA協會推出第一個標準版本,其后五年在應用中不斷完善,現在使用的主要是1999修訂的標準。
2.為什么需要CANopen
由于CAN在定義之初并未定義標準的應用層,導致在實際應用中各個廠家對應用層的定義各不相同,這導致同樣的CAN報文卻因應用層對其解釋的不同而產生了不同的功能含義,使其不能相互直接通信,阻礙了CAN網絡設備在不同廠商品牌之間的兼容性。為此歐洲專門成立了CIA協會,負責CANopen應用層的推廣。另外,CANopen專門針對有同步、實時控制要求的設備開發了PDO報文,大大提高了報文發送的效率。相對于devicenet(CAN的另一個應用層標準),CANopen報文更為簡潔和開放,因此CANopen更值得推廣。
其實,將報文格式及其實現方式(通信層)標準化還不夠,還需要將報文參數和設備的功能參數的對應關系統一起來,以變頻器為例,設定頻率的參數對應報文中的哪個參數如果不統一,用戶使用時仍會因各個廠家對此定義的不同而限制于某個廠家的設備。為此CIA專門針對各類設備也定義了該類設備的標準,例如編碼器有CIA 406標準,各個IO模塊有CIA 401標準,運控方面的驅動設備有CIA 402標準。這樣,只要用戶購買的設備遵從這些標準,那么就無需擔心該設備是否和其他廠商設備的兼容或相互通信的問題,也就是說,同樣的報文指令可以在不同廠商的設備中實現相同的功能,真正做到了與廠商無關。這也是CANopen有更大潛力的主要原因。
3.使用CAN卡或USB-CAN可以收發CANopen報文嗎
正如可以用第三方電報機接收他人發送的電報一樣,用普通的CAN接口板卡(PCAN-PCI等)或USB-CAN(PCAN-USB/CANUSB/CAN232)可以正常接收各類CANopen報文,但其具體含義就需要你了解CANopen報文的格式規范才能將其看懂了,類似戰爭中接收電報用的密碼本。同樣,用戶也完全可以將CANopen報文按其規范寫好后發給其他標準的CANopen設備。另外,由于PDO報文需要預先對接收和發送雙方配置,所以CAN接口的設備不能直接發送PDO報文。如果需要解析和發送CANopen的報文,需要借助PCANopen Magic或者CANreport等分析軟件,包括快速導入設備的EDS文件并作修改等。
4.使用支持CANopen解析的軟件能否偵測到發送CAN報文的節點信息
由于有些CANopen軟件不能識別CAN報文代表的含義,因此也不能識別該只支持CAN協議的節點。(注:它只能識別移植了標準CANopen協議的節點,而應用層無CANopen協議的CAN節點往往不能被識別)。而且CAN報文協議沒有一個統一標準,各個設備廠家都可以定義自己的CAN協議。這樣同一設備廠商的所有設備都可以互相識別和通訊,但一旦某個設備出故障需要檢測或替換時便限制于該廠家,因為該CAN報文的含義是他自己定義的,用戶即使能用USB-CAN捕捉到該報文,但需要費很大功夫和時間才能分析出各條報文的功能,而如果是標準的CANopen報文,則無需擔心這些問題,這也是CANopen近年來迅速發展的原因。
5.在CAN基礎上加入CANopen是否增加了報文的收發時間
這一點是不用擔心的。CANopen代碼通常是由經驗豐富的廠商專門編寫,且經過CIA和實踐的驗證,CANopen專門開發的PDO功能用于運動控制的多軸同步控制及其他實時性要求高的場合也證明了他并沒有影響報文執行的實時性。另外,相對于分散的廠商各自編寫的應用層(對CAN報文的格式及含義賦予自己習慣的功能),CANopen不僅功能全面(覆蓋設備狀態檢測、錯誤報告、網絡管理報文),且各類報文的實現方式是歐洲多方共同研究的結果,報文的實現效率更高。
一般會影響CANopen設備實時性的,更多取決于所編寫的CANopen源代碼的合理性和規范性,另外編寫的CANopen源代碼質量還很大程度上影響了設備的穩定和可靠性。如何編寫高效高質的源代碼,或者如何選擇易于移植的市場上成熟的源代碼?如需更多關于CAN/CANopen解決方案和服務(CAN分析儀,CANopen分析儀,CANopen協議棧源碼,定制CANopen協議棧)等可以聯系:廣州虹科電子技術團隊:support@hkaco.com 免費熱線:400-999-3848;獲取更多的技術資料。
版權聲明:版權歸中國自動化網所有,轉載請注明出處!
熱詞: