CAN和CANopen相關(guān)技術(shù)
CAN總線(xiàn)全稱(chēng)為Controller Area 包裝機械、煙草等行業(yè)得到了廣泛的應用。CAN總線(xiàn)是德國B(niǎo)OSCH公司從80年代初為解決現代汽車(chē)中眾多的控制與測試儀器之間的數據交換而開(kāi)發(fā)的一種串行數據通信協(xié)議,它是一種多主總線(xiàn),通信介質(zhì)可以是雙絞線(xiàn)、同軸電纜或光導纖維。通信速率可達1MBPS。CAN總線(xiàn)通信接口中集成了CAN協(xié)議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等項工作。
CAN協(xié)議的一個(gè)最大特點(diǎn)是廢除了傳統的站地址編碼,而代之以對通信數據塊進(jìn)行編碼。采用這種方法的優(yōu)點(diǎn)可使網(wǎng)絡(luò )內的節點(diǎn)個(gè)數在理論上不受限制,數據塊的標識碼可由11位或29位二進(jìn)制數組成,因此可以定義211或229個(gè)不同的數據塊,這種按數據塊編碼的方式,還可使不同的節點(diǎn)同時(shí)接收到相同的數據,這一點(diǎn)在分布式控制系統中非常有用。數據段長(cháng)度最多為8個(gè)字節,可滿(mǎn)足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測試數據的一般要求。同時(shí),8個(gè)字節 不會(huì )占用總線(xiàn)時(shí)間過(guò)長(cháng),從而保證了通信的實(shí)時(shí)性。CAN協(xié)議采用CRC檢驗并可提供相應的錯誤處理功能,保證了數據通信的可靠性。CAN卓越的特性、極高的可靠性和獨特的設計,特別適合工業(yè)過(guò)程監控設備的互連,因此,越來(lái)越受到工業(yè)界的重視,并已公認為最有前途的現場(chǎng)總線(xiàn)之一。
另外,CAN總線(xiàn)采用了多主競爭式總線(xiàn)結構,具有多主站運行和分散仲裁的串行總線(xiàn)以及廣播通信的特點(diǎn)。CAN總線(xiàn)上任意節點(diǎn)可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò )上其它節點(diǎn)發(fā)送信息而不分主次,因此可在各節點(diǎn)之間實(shí)現自由通信。CAN總線(xiàn)協(xié)議已被國際標準化組織認證,技術(shù)比較成熟,控制的芯片已經(jīng)商品化,性?xún)r(jià)比高,特別適用于分布式測控系統之間的數通訊。CAN總線(xiàn)插卡可以任意插在PC、AT、XT兼容機上,方便地構成分布式監控系統。
而CANopen是基于CAN總線(xiàn)的應用層協(xié)議,在開(kāi)放的現場(chǎng)總線(xiàn)標準中CANopen是最著(zhù)名和成功的一種,已經(jīng)在歐洲和美國獲得廣泛的認可和大量應用。1992年在德國成立了“自動(dòng)化CAN用戶(hù)和制造商協(xié)會(huì )”(CiA,CANinAutomation),開(kāi)始著(zhù)手制定自動(dòng)化CAN的應用層協(xié)議CANopen。此后,協(xié)會(huì )成員開(kāi)發(fā)出一系列CANopen產(chǎn)品,在機械制造、鐵路、車(chē)輛、船舶、制藥、食品加工等領(lǐng)域獲得大量應用。目前CANopen協(xié)議已經(jīng)成為了一種新的工業(yè)現場(chǎng)總線(xiàn)標準EN-50325-4。CANopen協(xié)議是CAN-in-Automation(CiA)定義的標準之一,在歐洲,CANopen協(xié)議被認為是在基于CAN的工業(yè)系統中占領(lǐng)導地位的標準。大多數重要的設備類(lèi)型,例如數字和模擬的輸入輸出模塊、驅動(dòng)設備、操作設備、控制器、可編程控制器或編碼器,都在稱(chēng)為“設備描述”的協(xié)議中進(jìn)行描述;“設備描述”定義了不同類(lèi)型的標準設備及其相應的功能。依靠CANopen協(xié)議的支持,可以對不同廠(chǎng)商的設備通過(guò)總線(xiàn)進(jìn)行配置。
二、CANopen的基本知識
EDS文件
EDS (Electronic Data Sheet) EDS文件描述了CAN網(wǎng)絡(luò )上設備通信屬性(波特率、輸出類(lèi)型、I/O提供…)。它由設備制造商提供,用于在配置工具中配置節點(diǎn)(就像Windows里的設備驅動(dòng)程序)。
PDO PDO (過(guò)程數據對象)
CANopen幀包含I/O數據 區分在:
1、傳送PDO:TXPDO 帶有節點(diǎn)提供給其他節點(diǎn)的數據
2、接收PDO:RXPDO 節點(diǎn)消耗的數據 傳送的方向從節點(diǎn)的觀(guān)點(diǎn)看總是可見(jiàn)的。PDO沒(méi)有必要包含所有節點(diǎn)映象。通常模擬量和數字量被分成不同的PDO進(jìn)行傳送。對輸出也是同樣如此! SDO SDO (服務(wù)數據對象) CANopen幀包含參數 SDO主要用于在程序運行時(shí),從設備讀參數或者向設備寫(xiě)參數 COB-ID COB-ID(通訊對象標識符) 每個(gè)CAN幀以一個(gè)COB-ID開(kāi)頭,COB-ID作為CAN幀的標識符。
在配置階段,每個(gè)節點(diǎn)在接收COB-ID時(shí),對幀來(lái)說(shuō),他是提供者或者消費者。
三、關(guān)于CANopen
介紹
CANopen是一個(gè)標準的工業(yè)控制系統現場(chǎng)總線(xiàn)協(xié)議。它特別適合實(shí)時(shí)控制的PLC ,因為它為集成的和可傳輸的工業(yè)應用提供了一個(gè)高效、低成本的解決方案。
CANopen協(xié)議
CANopen協(xié)議是建立在CAL協(xié)議基礎上的一個(gè)子協(xié)議。通過(guò)定義設備規范,它甚至更加適合于標準工業(yè)組件。C ANopen是一個(gè)CIA(CAN in Automation)標準,投入市場(chǎng)之初,它就迅速被推廣。在歐洲,CANopen現在已經(jīng)被公認為基于CAN設計的工業(yè)系統的工業(yè)標準。
物理層
CAN使用差分驅動(dòng)兩總線(xiàn)(公共回路)。CAN信號是CAN-high和CAN-low線(xiàn)之間的電壓差值。
CANopen協(xié)議
1:CAN-high線(xiàn)
2:CAN-low線(xiàn)
3:終端電阻:120Ω
4:節點(diǎn)
根據電磁兼容要求,總線(xiàn)可以使用平行、雙絞或者屏蔽走線(xiàn)方式。單線(xiàn)結構使反射最小化。
CANopen規范文件
通訊規范文件
CANopen規范文件時(shí)基于“通信規范文件”的,用來(lái)規定主要通訊機制和它們的描述(DS301)。
設備規范文件
在設備規范文件中描述了工業(yè)自動(dòng)化領(lǐng)域最重要的設備類(lèi)型,同時(shí)也定義了設備功能類(lèi)型。
標準設備描述例子為: ◆數字量和模擬量輸入/輸出模塊(DS401) ◆電機(DS402) ◆控制設備(DS4P403) ◆閉環(huán)控制器(DSP404) ◆PLC (DS405) ◆編碼器(DS406) 通過(guò)CAN總線(xiàn)配置設備 通過(guò)CAN總線(xiàn)配置設備的可能性是制造商要求自治的基本原則之一。
CANopen規范文件的通用規格 CANopen是符合以下規定文件的,用于CAN系統的一套規范: ◆開(kāi)發(fā)的總線(xiàn)系統 ◆無(wú)協(xié)議超負荷的實(shí)時(shí)數據交換 ◆可重新定義尺寸的模塊化設計 ◆設備互用性和交換性 ◆被大量國際制造商支持 ◆標準的網(wǎng)絡(luò )配置 ◆訪(fǎng)問(wèn)所有的參數設備 ◆同步和循環(huán)過(guò)程數據/事件驅動(dòng)數據 CANopen產(chǎn)品認證 在市場(chǎng)上提供CANopen認證產(chǎn)品的制造商都是CiA組織成員。
CAN標準 CANopen協(xié)議被CIA組織定義并且可訪(fǎng)問(wèn)該組織(須遵守某些限制)站點(diǎn):http://www.can-cia.com.對主從設備的源代碼可以從不同的供應商得到。
與CANopen網(wǎng)絡(luò )通訊 通訊協(xié)議文件基于CAL服務(wù)和協(xié)議。
它提供用戶(hù)對兩種交換類(lèi)型的訪(fǎng)問(wèn):SDO、PDO。
在上電時(shí),設備進(jìn)入一個(gè)初始化階段,接著(zhù)進(jìn)入預處理階段。在這個(gè)階段,只有SDO可以通訊。在接到一個(gè)啟動(dòng)命令后,設備進(jìn)入工作狀態(tài),在這個(gè)階段PDO可以進(jìn)行通訊,SDO通訊仍然有效。
CANopen啟動(dòng)Boot-up 啟動(dòng)過(guò)程 最小設備配置指定了簡(jiǎn)化的啟動(dòng)程序。這個(gè)過(guò)程描述如下: CANopen啟動(dòng)Boot-up 詳細步驟介紹: 1、模塊上電 2、模塊初始化,進(jìn)入預處理狀態(tài) 3、NMT服務(wù):?jiǎn)?dòng)遠程節點(diǎn) 4、NMT服務(wù):預處理 5、NMT服務(wù):停止遠程節點(diǎn) 6、NMT服務(wù):重啟節點(diǎn) 7、NMT服務(wù):重啟節點(diǎn)通訊 初始 進(jìn)入“重新啟動(dòng)通訊”后,設備進(jìn)入初始模式。
該狀態(tài)允許的操作有: ◆定義要求的通訊對象(SDO、PDO、緊急事件處理) ◆安裝相關(guān)的CAL服務(wù) ◆配置CAN控制器 初始化完成后設備自動(dòng)進(jìn)入預處理模式。
預處理 進(jìn)入預處理的條件: ◆在初始化完成后 ◆在正常工作模式下,接收到“進(jìn)入預處理”NMT命令 在這種情況下,設備的配置可以被修改。然而只有SDO可以用來(lái)讀或寫(xiě)設備的參數。
當配置完成后,通過(guò)接收相關(guān)的命令,設備進(jìn)入以下的工作狀態(tài): ◆停止 ,當接收到“停止遠程節點(diǎn)”NMT命令 ◆運行 ,當接收到“啟動(dòng)遠程節點(diǎn)”NMT命令 停止 如果設備處于“預處理”或者“正常工作”狀態(tài),接收到“節點(diǎn)停止”命令(NMT服務(wù)),設備進(jìn)入“停止狀態(tài)”。
在這種情況下,設備不能被配置。不能讀寫(xiě)設備相關(guān)參數(SDO),只有從設備的監視功能(即節點(diǎn)保護)有效。
操作 當設備處于“預處理”狀態(tài),接收到“啟動(dòng)遠程節點(diǎn)”,設備進(jìn)入操作狀態(tài)。在“運行”狀態(tài),當使用“節點(diǎn)啟動(dòng)”NMT服務(wù)啟動(dòng)CANopen網(wǎng)絡(luò ),所有的設備功能性被使用,PDO、SDO均可進(jìn)行通訊。
過(guò)程數據對象(PDO) PDO定義 PDO是過(guò)程數據通信相關(guān)的通信對象,它能保證過(guò)程數據的實(shí)時(shí)交換。
一個(gè)CANopen設備的PDO對象定 義了它與網(wǎng)絡(luò )上其他CANopen設備之間的隱式數據交換。
當設備運行時(shí),PDO交換被激活。
PDO類(lèi)型 有兩種PDO類(lèi)型: ◆ TXPDO/TPDO:PDO被設備傳送 ◆ RXPDO/RPDO:PDO被設備接收 PDO的供給者與消費者 PDO基于“供給者/消費者”模型。傳送的叫“供給者”,接收的叫“消費者”。
PDO的傳送模式 ◆同步(通過(guò)接收SYNC對象實(shí)現同步) 非周期:由遠程幀預觸發(fā)傳送,或者由設備子協(xié)議中規定的對象特定事件預觸發(fā)傳送。 周期:傳送在每1到240個(gè)SYNC消息后觸發(fā)。
◆ 異步 由遠程幀觸發(fā)傳送。
由設備子協(xié)議中規定的對象特定事件觸發(fā)傳送。
服務(wù)數據對象(SDO) SDO定義 服務(wù)數據對象SDO允許使用顯示請求交換數據。
當設備處于預處理、工作狀態(tài),SDO服務(wù)是有效的 。
SDO的類(lèi)型 有兩種SDO類(lèi)型: ◆讀SDO(上傳) ◆寫(xiě)SDO(下載) 客戶(hù)端/服務(wù)器模型 SDO協(xié) 議是基于“客戶(hù)端/服務(wù)器”模型。
對于下載SDO 客戶(hù)端發(fā)送一個(gè)標示被寫(xiě)對象的請求,服務(wù)器返回一個(gè)確認信息。
對于上傳SDO 客戶(hù)端發(fā)送一個(gè)標示被讀對象的請求,服務(wù)器返回被讀對象的數據。
對于一個(gè)未處理的SDO 對于以上的兩種情況,如果一個(gè)SDO不能被處理,服務(wù)器返回一個(gè)錯誤代碼。
“節點(diǎn)保護”和“壽命保護” 使用期限的定義 “使用期限”參數是按以下來(lái)計算的: 使用期限=保護時(shí)間(看門(mén)狗時(shí)間)使用期限系數;保護時(shí)間的典型值在250ms到2S之間。對象0X100CH含有以毫秒時(shí)間定義的保護時(shí)間,對象0X100DH含有“使用期限系數”。
監控機制: 1、節點(diǎn)保護 2、心跳報文 監控激活 如果兩個(gè)參數中有一個(gè)為零,那么模塊不執行監控,即無(wú)壽命保護。為了激活監控,必須在兩個(gè)對象中輸入非零的數值。
保證可靠工作 為了保證可靠工作,建議設置“使用期限系數”為2。如果不是只樣,主模塊會(huì )產(chǎn)生延時(shí)(例如,在“節點(diǎn)保護”時(shí)高優(yōu)先級信息的處理或者內部處理時(shí)),模塊會(huì )轉入預處理模式而不產(chǎn)生錯誤。
監控的重要性 這兩種保護機制對CANopen系統的安全運行特別重要,特別是對不工作于事件-被控模式的設備。
從設備的監控 監控按以下的方法執行: ◆ 主設備發(fā)送遠程幀,來(lái)讀取從設備的狀態(tài); COB-ID 0x700+Node_ID 從設備答復: COB-ID Byte0 0x700+Node_ID Bit 7 : toggle Bit6-0 : 狀態(tài) ◆從設備可以被配置為產(chǎn)生周期性的被稱(chēng)著(zhù)“心跳報文”的報文,周期性的發(fā)送從設備的狀態(tài)。
COB-ID Byte0 0x700+Node_ID狀態(tài) 主設備的監控 如果主設備基于嚴格循環(huán)請求“保護”信息,從設備可以檢測主設備的狀態(tài)。如果從設備在也定義的使用期限內沒(méi)有收到主設備的請求(保護錯誤),它會(huì )認為主設備故障。這種情況下相應輸出進(jìn)入出錯狀態(tài)并且從設備進(jìn)入預處理狀態(tài)。
“保護”協(xié)議 在第一個(gè)“保護”信息里,“鎖住位”(t)的值是0,然后在每個(gè)后來(lái)的保護信息里,該位都會(huì )改變,只有可以顯示信息是否丟失??偩€(xiàn)頭部用7個(gè)剩余的位來(lái)指示網(wǎng)絡(luò )狀態(tài): 網(wǎng)絡(luò )狀態(tài) 響應 被停止 0x04或0x84 預處理 0x7f或0xff 操作 0x05或0x85 四、CANopen設備 CAN總線(xiàn)網(wǎng)絡(luò )中有如下幾類(lèi)設備: (1) PLC:PLC做CAN上的一個(gè)主站,起到中央控制器的作用,對整個(gè)系統的工作起安排、調度、執行各個(gè)操作等作用。作為CAN網(wǎng)絡(luò )中的主站,PLC可以訪(fǎng)問(wèn)網(wǎng)絡(luò )中任何節點(diǎn)的任何可以訪(fǎng)問(wèn)的數據,并起總線(xiàn)監控作用,實(shí)時(shí)監控總線(xiàn)上各個(gè)節點(diǎn)的工作狀態(tài),如果出現錯誤并執行相應的處理程序; (2) 分散式I/O:通常由電源部分、通信適配器部分、接線(xiàn)端子部分組成。 分散式I/O不具有程序存儲和程序執行,通信適配器部分接收主站指令,按主站指令驅動(dòng)I/O,并將I/O輸入及故障診斷等信息返回給主站。
(3) 驅動(dòng)器、傳感器、執行機構等現場(chǎng)設備:即帶CAN接口的現場(chǎng)設備,可由主站在線(xiàn)完成系統配置、參數修改、數據交換等功能。至于哪些參數可進(jìn)行通信及參數格式由CANopen行規決定。
評論