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