CAN和CANopen的關(guān)系
CAN最初是由德國的BOSCH公司為汽車(chē)控制系統而設計,并在1993年成為國際標準。之后因其所具有的高可靠性和良好的錯誤檢測能力受到重視,現在已經(jīng)擴展到醫療、交通、運動(dòng)控制、工業(yè)自動(dòng)化多個(gè)領(lǐng)域。
本文引用地址:http://dyxdggzs.com/article/201612/330647.htmCANopen是CAN應用層。它是在1995年由歐洲的CIA協(xié)會(huì )推出第一個(gè)標準版本,其后五年在應用中不斷完善,現在使用的主要是1999修訂的標準。
2.為什么需要CANopen
由于CAN在定義之初并未定義標準的應用層,導致在實(shí)際應用中各個(gè)廠(chǎng)家對應用層的定義各不相同,這導致同樣的CAN報文卻因應用層對其解釋的不同而產(chǎn)生了不同的功能含義,使其不能相互直接通信,阻礙了CAN網(wǎng)絡(luò )設備在不同廠(chǎng)商品牌之間的兼容性。為此歐洲專(zhuān)門(mén)成立了CIA協(xié)會(huì ),負責CANopen應用層的推廣。另外,CANopen專(zhuān)門(mén)針對有同步、實(shí)時(shí)控制要求的設備開(kāi)發(fā)了PDO報文,大大提高了報文發(fā)送的效率。相對于devicenet(CAN的另一個(gè)應用層標準),CANopen報文更為簡(jiǎn)潔和開(kāi)放,因此CANopen更值得推廣。
其實(shí),將報文格式及其實(shí)現方式(通信層)標準化還不夠,還需要將報文參數和設備的功能參數的對應關(guān)系統一起來(lái),以變頻器為例,設定頻率的參數對應報文中的哪個(gè)參數如果不統一,用戶(hù)使用時(shí)仍會(huì )因各個(gè)廠(chǎng)家對此定義的不同而限制于某個(gè)廠(chǎng)家的設備。為此CIA專(zhuān)門(mén)針對各類(lèi)設備也定義了該類(lèi)設備的標準,例如編碼器有CIA 406標準,各個(gè)IO模塊有CIA 401標準,運控方面的驅動(dòng)設備有CIA 402標準。這樣,只要用戶(hù)購買(mǎi)的設備遵從這些標準,那么就無(wú)需擔心該設備是否和其他廠(chǎng)商設備的兼容或相互通信的問(wèn)題,也就是說(shuō),同樣的報文指令可以在不同廠(chǎng)商的設備中實(shí)現相同的功能,真正做到了與廠(chǎng)商無(wú)關(guān)。這也是CANopen有更大潛力的主要原因。
3.使用CAN卡或USB-CAN可以收發(fā)CANopen報文嗎
正如可以用第三方電報機接收他人發(fā)送的電報一樣,用普通的CAN接口板卡(PCAN-PCI等)或USB-CAN(PCAN-USB/CANUSB/CAN232)可以正常接收各類(lèi)CANopen報文,但其具體含義就需要你了解CANopen報文的格式規范才能將其看懂了,類(lèi)似戰爭中接收電報用的密碼本。同樣,用戶(hù)也完全可以將CANopen報文按其規范寫(xiě)好后發(fā)給其他標準的CANopen設備。另外,由于PDO報文需要預先對接收和發(fā)送雙方配置,所以CAN接口的設備不能直接發(fā)送PDO報文。如果需要解析和發(fā)送CANopen的報文,需要借助PCANopen Magic或者CANreport等分析軟件,包括快速導入設備的EDS文件并作修改等。
4.使用支持CANopen解析的軟件能否偵測到發(fā)送CAN報文的節點(diǎn)信息
由于有些CANopen軟件不能識別CAN報文代表的含義,因此也不能識別該只支持CAN協(xié)議的節點(diǎn)。(注:它只能識別移植了標準CANopen協(xié)議的節點(diǎn),而應用層無(wú)CANopen協(xié)議的CAN節點(diǎn)往往不能被識別)。而且CAN報文協(xié)議沒(méi)有一個(gè)統一標準,各個(gè)設備廠(chǎng)家都可以定義自己的CAN協(xié)議。這樣同一設備廠(chǎng)商的所有設備都可以互相識別和通訊,但一旦某個(gè)設備出故障需要檢測或替換時(shí)便限制于該廠(chǎng)家,因為該CAN報文的含義是他自己定義的,用戶(hù)即使能用USB-CAN捕捉到該報文,但需要費很大功夫和時(shí)間才能分析出各條報文的功能,而如果是標準的CANopen報文,則無(wú)需擔心這些問(wèn)題,這也是CANopen近年來(lái)迅速發(fā)展的原因。
5.在CAN基礎上加入CANopen是否增加了報文的收發(fā)時(shí)間
這一點(diǎn)是不用擔心的。CANopen代碼通常是由經(jīng)驗豐富的廠(chǎng)商專(zhuān)門(mén)編寫(xiě),且經(jīng)過(guò)CIA和實(shí)踐的驗證,CANopen專(zhuān)門(mén)開(kāi)發(fā)的PDO功能用于運動(dòng)控制的多軸同步控制及其他實(shí)時(shí)性要求高的場(chǎng)合也證明了他并沒(méi)有影響報文執行的實(shí)時(shí)性。另外,相對于分散的廠(chǎng)商各自編寫(xiě)的應用層(對CAN報文的格式及含義賦予自己習慣的功能),CANopen不僅功能全面(覆蓋設備狀態(tài)檢測、錯誤報告、網(wǎng)絡(luò )管理報文),且各類(lèi)報文的實(shí)現方式是歐洲多方共同研究的結果,報文的實(shí)現效率更高。
評論