基于can總線的自動化設(shè)備通信方法
【專利摘要】本發(fā)明公開了一種基于CAN總線的自動化設(shè)備通信方法,該通信方法基于CAN總線協(xié)議,其應(yīng)用層協(xié)議采用擴展幀格式的CAN數(shù)據(jù)幀;仲裁域包括優(yōu)先級識別域、源地址域、目標(biāo)地址域、源任務(wù)號域以及目的任務(wù)號域;所述通信方法包括以下步驟:接收發(fā)送方通過CAN總線發(fā)送的CAN數(shù)據(jù)幀;獲取所述CAN數(shù)據(jù)幀的優(yōu)先級別;判斷所述CAN數(shù)據(jù)幀的優(yōu)先級別是否為最高優(yōu)先級別;若是,則將所述CAN數(shù)據(jù)幀通過高速通信的方式與CAN應(yīng)用通信層進(jìn)行數(shù)據(jù)交互;若否,將所述CAN數(shù)據(jù)幀發(fā)送到相應(yīng)優(yōu)先級別列隊采用消息列隊的方式與CAN應(yīng)用通信層進(jìn)行數(shù)據(jù)交互。上述基于CAN總線的自動化設(shè)備通信方法能夠?qū)崿F(xiàn)對數(shù)據(jù)報文進(jìn)行實時、多任務(wù)處理。
【專利說明】基于CAN總線的自動化設(shè)備通信方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及供配電【技術(shù)領(lǐng)域】,特別是涉及基于CAN總線的自動化設(shè)備通信方法。
【背景技術(shù)】
[0002]隨著配電自動化的快速發(fā)展,配電自動化終端(Distribut1n Terminal Unit,DTU)被廣泛應(yīng)用。配網(wǎng)自動化終端中的多個分散采集和監(jiān)控單元之間需要進(jìn)行通信,以實現(xiàn)采集數(shù)據(jù)以及監(jiān)控結(jié)果的數(shù)據(jù)交互??刂破骶钟蚓W(wǎng)絡(luò)(Controller Area Network,CAN)總線以其高性能、高可靠性以及實時性等優(yōu)點被應(yīng)用于配電自動化終端的通訊中。CAN總線通信接口中集成了 CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等多項工作,保證了通信的高可靠性、實時性等特性。CAN總線通過一種非破壞性的仲裁技術(shù)來實現(xiàn)報文的優(yōu)先級傳輸,仲裁的依據(jù)是CAN數(shù)據(jù)幀格式中仲裁域中的標(biāo)識(Identify)字段。一個CAN的擴展幀格式,包括仲裁域、控制域以及數(shù)據(jù)域。其中仲裁域包括29位標(biāo)識符。在CAN標(biāo)準(zhǔn)中,邏輯O代表顯性位,邏輯I代表隱性位,顯性位的優(yōu)先級高于隱性位。由于CAN控制器采用按位進(jìn)行仲裁,所以標(biāo)識字段越小,優(yōu)先級越高。但是,CAN標(biāo)準(zhǔn)中并未就仲裁域中的標(biāo)識字段進(jìn)行明確規(guī)定,完全由應(yīng)用決定標(biāo)識的分配策略,使得配網(wǎng)自動化終端不能夠很好的根據(jù)系統(tǒng)自身的優(yōu)先級需求對數(shù)據(jù)報文進(jìn)行實時的、多任務(wù)處理。
【發(fā)明內(nèi)容】
[0003]基于此,有必要針對上述問題,提供一種能夠?qū)?shù)據(jù)報文進(jìn)行實時、多任務(wù)處理的基于CAN總線的自動化設(shè)備通信方法。
[0004]一種基于CAN總線的自動化設(shè)備通信方法,用來在自動化設(shè)備的發(fā)送方和接收方之間通信;所述通信方法基于CAN總線協(xié)議,所述CAN總線協(xié)議的應(yīng)用層協(xié)議采用擴展幀格式的CAN數(shù)據(jù)幀,所述CAN數(shù)據(jù)幀的仲裁域包括29位標(biāo)識符;所述仲裁域包括優(yōu)先級識別域、源地址域、目標(biāo)地址域、源任務(wù)號域以及目的任務(wù)號域;所述優(yōu)先級識別域用于識別所述CAN數(shù)據(jù)幀的優(yōu)先級別;所述源地址域用于識別發(fā)送方的通信地址;所述目標(biāo)地址域用于獲取目標(biāo)接收方的通信地址;所述源任務(wù)號域用于標(biāo)識發(fā)送方的任務(wù)號;所述目的任務(wù)號域用于標(biāo)識接收方的任務(wù)號;所述通信方法包括以下步驟:接收發(fā)送方通過CAN總線發(fā)送的CAN數(shù)據(jù)幀;獲取所述CAN數(shù)據(jù)幀的優(yōu)先級別;判斷所述CAN數(shù)據(jù)幀的優(yōu)先級別是否為最高優(yōu)先級別;若是,則將所述CAN數(shù)據(jù)幀通過高速通信的方式與CAN應(yīng)用通信層進(jìn)行數(shù)據(jù)交互;若否,將所述CAN數(shù)據(jù)幀發(fā)送到相應(yīng)優(yōu)先級別列隊采用消息列隊的方式與CAN應(yīng)用通信層進(jìn)行數(shù)據(jù)交互;所述數(shù)據(jù)交互為:獲取所述CAN數(shù)據(jù)幀的目標(biāo)地址以及目的任務(wù)號,將所述CAN數(shù)據(jù)幀發(fā)送到目標(biāo)地址中的目的任務(wù)中。
[0005]在其中一個實施例中,所述優(yōu)先級識別域占兩位。
[0006]在其中一個實施例中,所述優(yōu)先級識別域用于確定四種優(yōu)先級別,所述四種優(yōu)先級別從高到底依次為實時信息、突發(fā)信息、普通信息以及低優(yōu)先級信息。
[0007]在其中一個實施例中,所述優(yōu)先級識別域至少占兩位。
[0008]在其中一個實施例中,所述源地址域和所述目標(biāo)地址域所占位數(shù)相同,均為4?8位。
[0009]在其中一個實施例中,所述源任務(wù)號域和所述目的任務(wù)號域所占位數(shù)相同,均為I?5位。
[0010]在其中一個實施例中,所述接收發(fā)送方通過CAN總線發(fā)送的CAN數(shù)據(jù)幀的步驟之前還包括步驟:發(fā)送方將任務(wù)標(biāo)識號轉(zhuǎn)換為源任務(wù)號后形成所述CAN數(shù)據(jù)幀;所述獲取所述CAN數(shù)據(jù)幀的目標(biāo)地址以及目的任務(wù)號的步驟之后還包括步驟:將所述目的任務(wù)號轉(zhuǎn)換為目標(biāo)任務(wù)標(biāo)識號。
[0011]在其中一個實施例中,所述仲裁域還包括多幀識別域,所述多幀識別域用于識別所述CAN數(shù)據(jù)幀是否為數(shù)據(jù)報文的最后一幀;所述通信方法還包括步驟:判斷所述CAN數(shù)據(jù)幀是否為數(shù)據(jù)報文的最后一幀;若是,則發(fā)送末幀通知給上層任務(wù);若否,則緩存所述CAN數(shù)據(jù)幀。
[0012]在其中一個實施例中,所述多幀識別域占一位;所述判斷所述CAN數(shù)據(jù)幀是否為數(shù)據(jù)報文的最后一幀的步驟具體為:識別所述多幀識別域,若所述多幀識別域為“O”則判斷所述CAN數(shù)據(jù)幀為最后一幀,發(fā)送末幀通知給上層任務(wù);若所述多幀識別域為“ I ”,則判斷所述CAN數(shù)據(jù)幀不是最后一幀,緩存所述CAN數(shù)據(jù)幀。
[0013]在其中一個實施例中,所述優(yōu)先級識別域占兩位,所述多幀識別域占一位,所述源地址域和所述目標(biāo)地址域分別占八位,所述源任務(wù)號域和所述目的任務(wù)號域分別占五位。
[0014]上述基于CAN總線的自動化設(shè)備通信方法,通過對基于CAN總線協(xié)議的應(yīng)用層傳輸?shù)臄U展幀格式的CAN數(shù)據(jù)幀中的仲裁域進(jìn)行自定義的劃分,從而可以獲取CAN數(shù)據(jù)幀的優(yōu)先級別以及目標(biāo)地址和目的任務(wù)號。通過優(yōu)先級識別域可以實現(xiàn)對最高優(yōu)先級數(shù)據(jù)報文的實時處理,且不影響其他數(shù)據(jù)的正常傳送。通過源任務(wù)號和目的任務(wù)號則可以真正實現(xiàn)端對端的通信,將CAN數(shù)據(jù)幀發(fā)送到目標(biāo)地址中的目標(biāo)任務(wù)中去,實現(xiàn)應(yīng)用層的多任務(wù)處理功能。
【專利附圖】
【附圖說明】
[0015]圖1為一實施例中的基于CAN總線的自動化設(shè)備通信方法中CAN數(shù)據(jù)幀中的仲裁域的自定義劃分示意圖;
[0016]圖2為圖1所示實施例中的基于CAN總線的自動化設(shè)備通信方法的流程圖;
[0017]圖3為圖2所示實施例中的基于CAN總線的自動化設(shè)備通信方法的示意圖。
【具體實施方式】
[0018]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0019]一種基于CAN總線的自動化設(shè)備通信方法,用于在自動化設(shè)備的發(fā)送方和接收方之間通信。在本發(fā)明中,自動化設(shè)備可以為配電自動化終端,也可以為利用CAN總線通信的多主系統(tǒng)、實時系統(tǒng)。在本實施例中,以配電自動化終端為例來對本通信方法進(jìn)行詳細(xì)介紹。
[0020]在本實施例中,自動化設(shè)備通信方法是基于CAN總線協(xié)議,且在CAN總線協(xié)議的應(yīng)用層協(xié)議采用擴展幀格式的CAN數(shù)據(jù)幀。擴展幀格式的CAN數(shù)據(jù)幀包括仲裁域,其仲裁域包括29位標(biāo)識符。本實施例中,需對CAN數(shù)據(jù)幀中的仲裁域中的29位標(biāo)識符進(jìn)行自定義劃分,以實現(xiàn)對數(shù)據(jù)報文的實時、多任務(wù)處理。
[0021]圖1所示為一實施例中的CAN數(shù)據(jù)幀中仲裁域的劃分方法。在本實施例中,CAN數(shù)據(jù)幀中的仲裁域由11位基本標(biāo)識符和18位擴展標(biāo)識符組成,其規(guī)定最低有效位為0,最高有效位為28,依次被劃分為優(yōu)先級識別域、多幀識別域、源地址域、目標(biāo)地址域、源任務(wù)號域以及目的任務(wù)號域。其中,優(yōu)先級識別域用于識別CAN數(shù)據(jù)幀的優(yōu)先級別。在本實施例中,優(yōu)先級識別域占2位,表示4種優(yōu)先級別,如:00表示實時信息;01表示突發(fā)信息;10表示普通信息;11則表示低優(yōu)先級信息。設(shè)置2位的優(yōu)先級識別域能夠滿足配電自動化終端設(shè)備中幾種常用數(shù)據(jù):實時性要求高的保護類數(shù)據(jù);突發(fā)的C0S(Change Of Status,狀態(tài)變化)、S0E (Sequence Of Event,事故順序記錄)等數(shù)據(jù);一般的遙信、遙測的采集數(shù)據(jù);優(yōu)先級別最低的文件傳輸?shù)葦?shù)據(jù)的處理需求。依據(jù)CAN總線的位仲裁機制,數(shù)字越小,發(fā)送的優(yōu)先級別越高。在其他的實施例中,優(yōu)先級識別域所占位數(shù)并不限于2位,也可以多于2位,具體可以根據(jù)自動化設(shè)備所需要處理的優(yōu)先級數(shù)據(jù)種類來進(jìn)行設(shè)定。
[0022]多幀識別域則用于識別當(dāng)前數(shù)據(jù)幀是否為數(shù)據(jù)報文的最后一幀。由于CAN數(shù)據(jù)幀是短幀,最多攜帶8個字節(jié)的數(shù)據(jù)域,往往一個報文需要分多幀來發(fā)送。因此,可以通過多幀識別域來對當(dāng)前數(shù)據(jù)幀是否為報文的最后一幀進(jìn)行判斷。在本實施例中,多幀識別域占I位。當(dāng)多幀識別域為“O”時,則表示當(dāng)前數(shù)據(jù)幀為最后一幀;當(dāng)多幀識別域為“1”,則表示當(dāng)前數(shù)據(jù)幀不是最后一幀。
[0023]源地址域用于識別發(fā)送方的通信地址,而目標(biāo)地址域則用于獲取目標(biāo)接收方的通信地址。在本實施例中,發(fā)送方的通信地址以及接收方的通信地址均是指發(fā)送方以及接收方的MAC地址,即CAN節(jié)點訪問CAN總線資源的介質(zhì)訪問控制地址。CAN通信應(yīng)用層會給每一個連入CAN通信網(wǎng)絡(luò)的設(shè)備設(shè)置和配置唯一的MAC地址,因此獲取通信地址即可確定發(fā)送方以及接收方,確保數(shù)據(jù)的正常傳輸。在本實施例中,源地址域和目標(biāo)地址域均占8位,因此最多可以表示255個設(shè)備之間的通信地址。源地址域和目標(biāo)地址域所占位數(shù)可以根據(jù)實際需要連接的設(shè)備數(shù)量進(jìn)行設(shè)定,可以為4?8位,也可為其他位數(shù)。在實際應(yīng)用中,可以規(guī)定如廣播地址為全O或者全I(xiàn)地址,通過對CAN控制器的報文濾波寄存器進(jìn)行設(shè)置,實現(xiàn)報文濾波,從而既可以接受目標(biāo)地址節(jié)點的報文也可以接收廣播報文。
[0024]源任務(wù)號域用于標(biāo)識發(fā)送方的任務(wù)號,而目的任務(wù)號域則用于標(biāo)識接收方的任務(wù)號。通過設(shè)置源任務(wù)號域和目的任務(wù)號域,可以真正實現(xiàn)端對端的通信。不同任務(wù)給予不同的任務(wù)號,從而將CAN數(shù)據(jù)幀精確的發(fā)送到相應(yīng)的任務(wù)中去。不同任務(wù)可以處理不同的應(yīng)用層報文,不同的業(yè)務(wù)邏輯共享CAN總線作為網(wǎng)絡(luò)底層進(jìn)行通信。故,CAN總線支持多種應(yīng)用協(xié)議,大大擴展了應(yīng)用業(yè)務(wù)的功能范圍。在本實施例中,源任務(wù)號域和目的任務(wù)號域所占位數(shù)均為5位,最多支持32個任務(wù)進(jìn)行端對端通信。在其他的實施例中,其位數(shù)也可以根據(jù)需要處理的任務(wù)數(shù)進(jìn)行確定,可以為I?5位,或者更多。
[0025]在本實施例中,自動化設(shè)備通信是基于對CAN數(shù)據(jù)幀中的仲裁域進(jìn)行自定義劃分后進(jìn)行的?;贑AN總線的自動化設(shè)備通信方法,如圖2所示,包括以下步驟。
[0026]S210,接收發(fā)送方通過CAN總線發(fā)送的CAN數(shù)據(jù)幀。
[0027]發(fā)送方對CAN數(shù)據(jù)幀中的仲裁域進(jìn)行了如上的區(qū)域劃分,從而使得CAN數(shù)據(jù)幀中的仲裁域包括了優(yōu)先級識別域、多幀識別域、源地址域、目標(biāo)地址域、源任務(wù)號域以及目的任務(wù)號域。
[0028]在本實施例中,在步驟S210之前,還需要執(zhí)行步驟:發(fā)送方將任務(wù)標(biāo)識轉(zhuǎn)換為源任務(wù)號后形成所述CAN數(shù)據(jù)幀。由于不同的操作系統(tǒng)任務(wù)有不同的任務(wù)標(biāo)識,如windows和Iinux等系統(tǒng)的任務(wù)標(biāo)識是進(jìn)程ID ;而vxworks系統(tǒng)中任務(wù)標(biāo)識則是任務(wù)ID, —般以int (整數(shù))型變量表示。因此,應(yīng)用程序編程時,需要用一個任務(wù)映射表,把int型標(biāo)識的32位任務(wù)ID轉(zhuǎn)換成相應(yīng)位數(shù)的源任務(wù)號。即,在本實施例中,需要將int型標(biāo)識的32位任務(wù)ID轉(zhuǎn)換為5位的源任務(wù)號。由于5位源任務(wù)號域的限制,最多支持32個任務(wù)進(jìn)行端對端通信。
[0029]S220,獲取CAN數(shù)據(jù)幀的優(yōu)先級別。
[0030]通過CAN數(shù)據(jù)幀中的優(yōu)先級識別域獲取到CAN數(shù)據(jù)幀的優(yōu)先級別。在本實施例中,優(yōu)先級識別域占2位,表示4種優(yōu)先級別,如:00表示實時信息;01表示突發(fā)信息;10表示普通信息;11則表示低優(yōu)先級信息。因此,通過獲取CAN數(shù)據(jù)幀中的優(yōu)先級識別域即可對CAN數(shù)據(jù)幀的優(yōu)先級別進(jìn)行確定。
[0031]S230,判斷所述CAN數(shù)據(jù)幀的優(yōu)先級別是否為最高優(yōu)先級別。
[0032]CAN總線是采用位仲裁機制的,數(shù)字越小,發(fā)送的優(yōu)先級別越高。因此,只需要對優(yōu)先級識別域的數(shù)字大小進(jìn)行判斷或者對其優(yōu)先級進(jìn)行查詢即可獲得該CAN數(shù)據(jù)幀的優(yōu)先級別,從而判斷出是否為最高優(yōu)先級別。在本實施例中,優(yōu)先級識別域為“00”時可以判斷其為最高優(yōu)先級別,否則,則判斷該CAN數(shù)據(jù)幀為其他優(yōu)先級別。若判斷出當(dāng)前的CAN數(shù)據(jù)幀是最高優(yōu)先級別則執(zhí)行步驟S240,若否則執(zhí)行步驟S250。根據(jù)優(yōu)先級識別域可以依據(jù)不同的策略實現(xiàn)數(shù)據(jù)的服務(wù)質(zhì)量,即不同優(yōu)先級對應(yīng)不同的服務(wù)質(zhì)量,可以通過任務(wù)優(yōu)先級別、任務(wù)間的通信策略相結(jié)合來實現(xiàn)。
[0033]S240,將CAN數(shù)據(jù)幀通過高速通信的方式進(jìn)行數(shù)據(jù)交互。
[0034]當(dāng)CAN數(shù)據(jù)幀具有最高優(yōu)先級別時,通過高速通信的方式與CAN應(yīng)用通信層進(jìn)行數(shù)據(jù)交互,從而實現(xiàn)具有最高優(yōu)先級別的實時信息優(yōu)先實時傳輸。高速通信方式包括信號量以及共享內(nèi)存等方式。在本實施例中,具有最高優(yōu)先級別的CAN數(shù)據(jù)幀采用共享內(nèi)存的方式與CAN應(yīng)用通信層進(jìn)行數(shù)據(jù)交換。由于共享內(nèi)存是進(jìn)程間通信中最快的方式,有利于提高具有最高優(yōu)先級的CAN數(shù)據(jù)幀傳輸以及處理過程的實時性。數(shù)據(jù)交互過程具體是指:獲取CAN數(shù)據(jù)幀的目標(biāo)地址以及目標(biāo)任務(wù)號,將所述CAN數(shù)據(jù)幀發(fā)送到目標(biāo)地址中的目的任務(wù)中。通過對CAN數(shù)據(jù)幀中的目標(biāo)地址域以及目的任務(wù)號域的獲取以及識別,可以獲得目標(biāo)地址以及目的任務(wù)號。在本實施例中,由于接收方的操作系統(tǒng)并不能對CAN數(shù)據(jù)幀中的目的任務(wù)號進(jìn)行識別,因此在獲取CAN數(shù)據(jù)幀的目標(biāo)地址以及目標(biāo)任務(wù)號的步驟之后還需要執(zhí)行步驟:將目的任務(wù)號轉(zhuǎn)換為目標(biāo)任務(wù)標(biāo)識號。接收方根據(jù)CAN數(shù)據(jù)幀中的目的任務(wù)號,查找任務(wù)映射表,轉(zhuǎn)換為真正的操作系統(tǒng)能夠識別的目標(biāo)任務(wù)標(biāo)識號,通過共享內(nèi)存的方式將CAN數(shù)據(jù)幀分發(fā)到具體的任務(wù)中去。
[0035]S250,將CAN數(shù)據(jù)幀發(fā)送到相應(yīng)優(yōu)先級列隊采用消息列隊的方式進(jìn)行數(shù)據(jù)交互。
[0036]由于CAN數(shù)據(jù)幀不是最高優(yōu)先級別,因此,獲取CAN數(shù)據(jù)幀的優(yōu)先級別后將CAN數(shù)據(jù)幀發(fā)送到相應(yīng)優(yōu)先級別的列隊中以消息列隊的方式與CAN應(yīng)用通信層進(jìn)行數(shù)據(jù)交互。數(shù)據(jù)交互過程與最高優(yōu)先級別的數(shù)據(jù)交互相同,其區(qū)別僅在于,當(dāng)轉(zhuǎn)換為目標(biāo)任務(wù)標(biāo)識號后,通過消息列隊的方式將CAN數(shù)據(jù)分發(fā)到具體的任務(wù)中去。
[0037]上述基于CAN總線的自動化設(shè)備通信方法,通過對基于CAN總線協(xié)議傳輸?shù)臄U展幀格式的CAN數(shù)據(jù)幀中的仲裁域進(jìn)行自定義的劃分,從而可以獲取數(shù)據(jù)幀的優(yōu)先級別以及目標(biāo)地址和目的任務(wù)號。通過優(yōu)先級識別域可以實現(xiàn)對最高優(yōu)先級數(shù)據(jù)的實時優(yōu)先處理,且不影響其他數(shù)據(jù)的正常傳送。通過源地址域以及目標(biāo)地址域可以按節(jié)點地址(MAC地址)實現(xiàn)多節(jié)點通信和報文路由。通過源任務(wù)號和目的任務(wù)號則可以真正實現(xiàn)端對端的通信,將CAN數(shù)據(jù)幀發(fā)送到目標(biāo)地址中的目標(biāo)任務(wù)中去。同一通信節(jié)點多個任務(wù)可以共用CAN總線通信,各自走不同的應(yīng)用層協(xié)議處理不同的邏輯,實現(xiàn)數(shù)據(jù)報文的多任務(wù)處理。CAN總線支持多種應(yīng)用協(xié)議,大大擴展了應(yīng)用業(yè)務(wù)的功能范圍。并且,上述通信方法,系統(tǒng)層次清晰,充分利用了 CAN總線作為通信底層的優(yōu)點,增強了系統(tǒng)的穩(wěn)定性。
[0038]在本實施例中,上述通信方法還包括步驟:判斷所述CAN數(shù)據(jù)幀是否為數(shù)據(jù)報文的最后一幀。在數(shù)據(jù)交互過程中,需要對CAN數(shù)據(jù)幀是否為數(shù)據(jù)報文的最后一幀進(jìn)行判斷。具體地,獲取CAN數(shù)據(jù)幀中的多幀識別域來進(jìn)行判斷。在本實施例中,多幀識別域占I位。當(dāng)多幀識別域為“O”時,則表示當(dāng)前數(shù)據(jù)幀為最后一幀;當(dāng)多幀識別域為“ 1”,則表示當(dāng)前數(shù)據(jù)幀不是最后一幀。當(dāng)判斷當(dāng)前CAN數(shù)據(jù)幀為最后一幀時,發(fā)送末幀通知給上層任務(wù),通知其當(dāng)前數(shù)據(jù)報文傳輸結(jié)束。若否,則不發(fā)送末幀通知給上層任務(wù),而是將當(dāng)前數(shù)據(jù)幀進(jìn)行緩存直至接收到報文的最后一幀,即接收到完整報文后再通知上層任務(wù)。這樣可以減少任務(wù)之間的通信次數(shù),從而提高了通信效率。
[0039]圖3所示為上述基于CAN總線的自動化設(shè)備通信方法的示意圖。在本實施例中,通過兩位的優(yōu)先級識別域?qū)?shù)據(jù)報文中要處理的任務(wù)分為實時數(shù)據(jù)任務(wù)、突發(fā)數(shù)據(jù)任務(wù)、一般任務(wù)以及文件傳輸任務(wù),且各自的優(yōu)先級別依次降低。因此,當(dāng)CAN數(shù)據(jù)幀具有最高優(yōu)先級別即為實時數(shù)據(jù)任務(wù)時,通過共享內(nèi)存的高速通信方式與CAN應(yīng)用通信層進(jìn)行數(shù)據(jù)交換,并驅(qū)動CAN控制器進(jìn)行數(shù)據(jù)報文的收發(fā)、對收發(fā)數(shù)據(jù)報文的緩存、以及報文濾波等操作。而當(dāng)CAN數(shù)據(jù)幀的優(yōu)先級別不是最高優(yōu)先級別時,則將其放入對應(yīng)優(yōu)先級別的列隊中去。例如,將突發(fā)的COS、SOE數(shù)據(jù)幀等放入到突發(fā)數(shù)據(jù)任務(wù)中,以消息列隊的方式與CAN應(yīng)用通信層進(jìn)行數(shù)據(jù)交換,通過CAN控制器將數(shù)據(jù)報文進(jìn)行收發(fā)。通過對數(shù)據(jù)報文的優(yōu)先級進(jìn)行獲取,不同的優(yōu)先級對應(yīng)不同的服務(wù)質(zhì)量,滿足實時數(shù)據(jù)報文的實時處理,同時,通過對不同優(yōu)先級的任務(wù)采用不同策略可以實現(xiàn)數(shù)據(jù)報文的多任務(wù)處理,有效提高了處理效率。
[0040]以上所述實施例僅表達(dá)了本發(fā)明的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種基于CAN總線的自動化設(shè)備通信方法,用來在自動化設(shè)備的發(fā)送方和接收方之間通信;所述通信方法基于CAN總線協(xié)議,所述CAN總線協(xié)議的應(yīng)用層協(xié)議采用擴展幀格式的CAN數(shù)據(jù)幀,所述CAN數(shù)據(jù)幀的仲裁域包括29位標(biāo)識符;其特征在于,所述仲裁域包括優(yōu)先級識別域、源地址域、目標(biāo)地址域、源任務(wù)號域以及目的任務(wù)號域;所述優(yōu)先級識別域用于識別所述CAN數(shù)據(jù)幀的優(yōu)先級別;所述源地址域用于識別發(fā)送方的通信地址;所述目標(biāo)地址域用于獲取目標(biāo)接收方的通信地址;所述源任務(wù)號域用于標(biāo)識發(fā)送方的任務(wù)號;所述目的任務(wù)號域用于標(biāo)識接收方的任務(wù)號;所述通信方法包括以下步驟: 接收發(fā)送方通過CAN總線發(fā)送的CAN數(shù)據(jù)幀; 獲取所述CAN數(shù)據(jù)幀的優(yōu)先級別; 判斷所述CAN數(shù)據(jù)幀的優(yōu)先級別是否為最高優(yōu)先級別; 若是,則將所述CAN數(shù)據(jù)幀通過高速通信的方式與CAN應(yīng)用通信層進(jìn)行數(shù)據(jù)交互;若否,將所述CAN數(shù)據(jù)幀發(fā)送到相應(yīng)優(yōu)先級別列隊采用消息列隊的方式與CAN應(yīng)用通信層進(jìn)行數(shù)據(jù)交互;所述數(shù)據(jù)交互為:獲取所述CAN數(shù)據(jù)幀的目標(biāo)地址以及目的任務(wù)號,將所述CAN數(shù)據(jù)幀發(fā)送到目標(biāo)地址中的目的任務(wù)中。
2.根據(jù)權(quán)利要求1所述的基于CAN總線的自動化設(shè)備通信方法,其特征在于,所述優(yōu)先級識別域占兩位。
3.根據(jù)權(quán)利要求2所述的基于CAN總線的自動化設(shè)備通信方法,其特征在于,所述優(yōu)先級識別域用于確定四種優(yōu)先級別,所述四種優(yōu)先級別從高到底依次為實時信息、突發(fā)信息、普通信息以及低優(yōu)先級信息。
4.根據(jù)權(quán)利要求1所述的基于CAN總線的自動化設(shè)備通信方法,其特征在于,所述優(yōu)先級識別域至少占兩位。
5.根據(jù)權(quán)利要求1所述的基于CAN總線的自動化設(shè)備通信方法,其特征在于,所述源地址域和所述目標(biāo)地址域所占位數(shù)相同,均為4?8位。
6.根據(jù)權(quán)利要求1所述的基于CAN總線的自動化設(shè)備通信方法,其特征在于,所述源任務(wù)號域和所述目的任務(wù)號域所占位數(shù)相同,均為I?5位。
7.根據(jù)權(quán)利要求1所述的基于CAN總線的自動化設(shè)備通信方法,其特征在于,所述接收發(fā)送方通過CAN總線發(fā)送的CAN數(shù)據(jù)幀的步驟之前還包括步驟:發(fā)送方將任務(wù)標(biāo)識號轉(zhuǎn)換為源任務(wù)號后形成所述CAN數(shù)據(jù)幀; 所述獲取所述CAN數(shù)據(jù)幀的目標(biāo)地址以及目的任務(wù)號的步驟之后還包括步驟:將所述目的任務(wù)號轉(zhuǎn)換為目標(biāo)任務(wù)標(biāo)識號。
8.根據(jù)權(quán)利要求1所述的基于CAN總線的自動化設(shè)備通信方法,其特征在于,所述仲裁域還包括多幀識別域,所述多幀識別域用于識別所述CAN數(shù)據(jù)幀是否為數(shù)據(jù)報文的最后一幀;所述通信方法還包括步驟: 判斷所述CAN數(shù)據(jù)幀是否為數(shù)據(jù)報文的最后一幀;若是,則發(fā)送末幀通知給上層任務(wù);若否,則緩存所述CAN數(shù)據(jù)幀。
9.根據(jù)權(quán)利要求8所述的基于CAN總線的自動化設(shè)備通信方法,其特征在于,所述多幀識別域占一位;所述判斷所述CAN數(shù)據(jù)幀是否為數(shù)據(jù)報文的最后一幀的步驟具體為:識別所述多幀識別域,若所述多幀識別域為“O”則判斷所述CAN數(shù)據(jù)幀為最后一幀,發(fā)送末幀通知給上層任務(wù);若所述多幀識別域為“ I ”,則判斷所述CAN數(shù)據(jù)幀不是最后一幀,緩存所述CAN數(shù)據(jù)幀。
10.根據(jù)權(quán)利要求8所述的基于CAN總線的自動化設(shè)備通信方法,其特征在于,所述優(yōu)先級識別域占兩位,所述多幀識別域占一位,所述源地址域和所述目標(biāo)地址域分別占八位,所述源任務(wù)號域和所述目的任務(wù)號域分別占五位。
【文檔編號】G05B19/418GK104333517SQ201410510741
【公開日】2015年2月4日 申請日期:2014年9月28日 優(yōu)先權(quán)日:2014年9月28日
【發(fā)明者】曹建平 申請人:航天科工深圳(集團)有限公司