【導讀】2019年11月21日,在SPS 2019慶祝30周年展會上,CiA組織通過兩個網橋連接的網絡展示了從經典CANopen到CANopen FD的移植。那么,CANopen FD的出現帶來哪些變化?本文重點介紹一下CANopen FD的特性。
本文簡單介紹CiA 1301——從經典CANopen到CANopen FD的技術升級。
2019年11月21日,在SPS 2019慶祝30周年展會上,CiA組織通過兩個網橋連接的網絡展示了從經典CANopen到CANopen FD的移植。那么,CANopen FD的出現帶來哪些變化?本文重點介紹一下CANopen FD的特性。
自1991年頒布了CAN 2.0技術規范起,CiA便一直致力于CAN協議的推廣,其中包括CAN底層(CAN數據鏈路層、CAN物理層)設計及CAN的應用層(CANopen)。CANopen協議在CiA 301中明確規定其PDO、SDO、NMT網絡管理等協議的規范,并使用經典CAN數據鏈路層,而在SPS展會中CiA展示了CiA 1301中指定的CANopen FD協議。相比CANopen使用經典CAN數據鏈路層,數據段提供8字節有效負載,CANopen FD是基于CAN FD,數據段有效負載提升到64字節,解決了某些應用中出現數據段不夠用的問題。
CANopen協議升級到CANopen FD的相同之處
1、NMT網絡管理協議
網絡管理系統(NMT)負責啟動網絡和監控設備。工程師將CANopen FD網絡管理系統設計成一種主/從系統。在CANopen FD網絡中只允許存在一個活動的NMT主機,所有CANopen FD設備都具有NMT從機功能,并且由NMT主機來啟動、監控、重啟,同時分配給唯一的節點ID。
為了方便管理設備,所有設備都內置一個內部狀態機,狀態之間的轉變由內部事件或者主機外部觸發。
NMT從站狀態機由初始化狀態,預操作狀態,操作狀態和停止狀態組成,其狀態轉換方式如圖1所示 。
圖1 NMT網絡管理示意圖
控制設備狀態的NMT指令,通過具有最高優先級的CAN標識符來發送。CANopen FD設備一旦接收到控制設備狀態的NMT指令,則必須進行轉換。如圖2所示,NMT協議映射到具有兩個字節數據長度的單個CAN FD數據幀。第一個字節確定要發出去的指令,即指令說明符;第二個字節指定CANopen FD設備的節點ID。
圖2 NMT協議示意圖
2、錯誤控制協議
在CANopen FD網絡中通過錯誤控制協議(如圖3啟動協議、如圖4心跳協議)可以監視CANopen FD設備是否仍在網絡中,并且處于預期的NMT FSA狀態,同時也可以檢測到新加入網絡的CANopen FD設備。所有的CANopen FD設備都是基于相同的CAN FD信息,并具有CANopen FD設備的CAN-ID700H+節點ID。
注意:CANopen FD不支持CAN遠程框架,因此不支持CANopen節點/生命防護。
圖3 啟動協議示意圖
圖4 心跳協議示意圖
3、緊急通訊對象協議(EMCY)
當CANopen FD設備內部發生錯誤時,會由緊急錯誤生產者發送EMCY,從而觸發中斷報警。每次發生錯誤事件只會發送一次EMCY,并且以廣播的方式發送給所有支持EMCY功能的設備上,進而針對錯誤進行調整。沒有新錯誤發生時,將不再發送EMCY報文如圖5所示。
圖5 緊急通訊對象協議EMCY示意圖
4、SYNC同步協議
與CANopen相同,CANopen FD設備中,SYNC同步協議是由生產者定期發送,用于網絡同步。所有CANopenFD設備都可以作為SYNC的生產者。通常情況下,SYNC協議用作總線負載管理。SYNC報文提供1字節的SYNC計數器值。每次發送SYNC,對應計數器就會加1。同時,SYNC的傳輸周期是可以配置的,計數器初值為1,最大值可在數據對象同步計數器溢出寄存器(1019H)進行配置,如圖6所示。
圖6 SYNC同步協議示意圖
5、時間戳協議
時間戳協議可以使CANopen FD系統調整到唯一的網絡時間。由CANopen FD主站設備發出,用于同步所有從站的內部時鐘。時間戳被映射到一個6字節長度的CAN單幀。如圖7所示,默認情況下,該CAN幀具有標識符100h。這六字節長度的數據提供“時間“”信息,該信息是以午夜之后的毫秒數和自1984年1月1日以來的天數。
圖7 時間戳協議示意圖
CANopen到CANopen FD的改變之處
1、USDO協議
● USDO用于CANopen FD系統中的配置和診斷任務。但是,過程數據也可以通過USDO服務進行傳輸。USDO具有以下特性:
● USDO服務可以在單個或多個USDO服務器之間確認通信;
● USDO客戶端可以訪問CANopen FD設備中所有的對象字典條目;
● USDO可以提供USDO服務器對象字典中一個或幾個子索引的讀寫訪問權限;
● USDO具有路由功能,可以實現CANopen FD網絡邊界上的數據傳輸;
● USDO客戶端和USDO服務器可以連接到不同的CAN物理層;
● USDO客戶端和USDO服務器之間可以傳輸任意長度的數據內容。
如圖8所示,是USDO已確認的單播、廣播通信。
圖8 USDO單播、廣播通信
USDO協議“目的地地址”確定USDO是以點對點連接還是以多路或廣播方式進行通信。命令說明符決定USDO傳輸的類型。會話ID用作交易編號,使客戶端能夠區分對同一USDO服務器的USDO訪問。與傳統的CANopen SDO中一樣,索引和子索引標識在USDO服務器的對象字典中訪問的數據元素。除了經典的SDO,USDO還按大小和數據類型描述要傳輸的數據,這使數據接收者能夠執行一致性檢查。如圖9所示,為加速USDO協議傳輸。
圖9 加速USDO協議傳輸
對于較長的數據對象,如類型為域的數據,超過了7字節,加速USDO傳輸方式效率并不是很高。類似于CANopen協議,CANopen FD協議中為了提高USDO傳輸的效率,引入一種擴展USDO傳輸方式:即塊傳輸。這種USDO傳輸方式效率更高、速度更快。這種塊傳輸的基本原理就是將數據劃分為幾個單一的包,在連續的請求或者應答中逐塊傳輸這些包。如圖10所示,是USDO塊傳輸方式。
圖10 USDO塊傳輸方式
USDO客戶端告知USDO服務器目標索引和子索引以及預期的數據類型和長度。USDO服務器確認其請求后,給出其可以處理的最大塊的大小(連續塊消息的數量)。USDO客戶端就會發出第一塊的各個分段,知道服務器確認接收結束。
2、PDO協議
過程數據對象(PDO)在CANopen FD中用于廣播高優先級控制和狀態信息。一個PDO由一個CAN數據幀組成,并可以通信多達64個字節的數據。但是,CAN FD數據幀的數據長度從8字節之后呈非線性規律。因此,當PDO生產者使用填充字節將PDO填充到下一個支持的CAN FD幀長度時,PDO的消費者可能會收到比預期更多的數據。如圖11所示。
圖11 PDO協議示意圖
CANopen FD與嵌入式網絡、工業物聯網
現如今,工業物聯網在逐步發展崛起,慢慢走向成熟。嵌入式也在向云應運程序中集成發展,大數據時代需要更多的數據來進行更準確更安全的算法分析。CANopen FD底層基于CAN FD提供了長達64字節的有效負載,能夠更好的滿足大數據時代的安全性能要求。
CANopen FD能夠更好的滿足未來工業互聯網的發展需求,其中重要的原因還是歸功于新的USDO協議的出現。由于USDO特性靈活,CANopen FD/IOT網關可以輕松的訪問網絡中的任何數據,并且通過路由功能可以進行遠程網絡CANopen FD設備連接和訪問。
CANopen FD減輕了開發人員處理CAN硬件特定細節的負擔,例如位時序和驗收過濾。CANopen FD提供了標準化的通信對象COB,用來配置及網絡管理數據。
CANFDSM-100——串口轉CANFD轉換模塊
在實際應用中,工程師經常會使用串口來收發數據或進行調試。這樣,對于CANopen FD設備的問題,我們會需要實現串口轉CANFD,幫助我們更好的實現數據的傳輸和轉換。如圖12所示, 是廣州致遠電子研發 的一款串口轉 CAN(FD)模塊CANFDSM-100,內置微處理器。該模塊支持透明轉換、透明帶標識符轉換、格式轉換、Modbus轉換四種模式。同時,該模塊集成1路CANFD接口和1路UART接口。在CAN通訊方面,可以在40Kbps~1Mbps之間任意可編程;在CANFD通訊方面,可以在1Mbps~5Mbps之間任意可編程。滿足工業級要求,支持在線固件升級等。
圖12 CANFDSM-100示意圖
USBCANFD系列CAN FD接口卡
在CANopen FD設備的使用過程中,經常會通過抓取底層的CAN FD報文來進行數據分析或者故障排除等。如圖13所示是ZLG致遠電子開發的高性能CANFD接口卡,集成1-2路CANFD接口,每個接口具備獨立的2500VDC電氣隔離保護電路,使接口卡避免由于地環流的損壞,增強系統在惡劣環境中使用的可靠性。PC通過USB2.0端口連接USBCANFD接口卡,從而能與CAN(FD)網絡進行數據收發,構成CAN(FD)-bus控制節點。
圖13 USBCANFD-200U接口卡示意圖
推薦閱讀: