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