一種雙can總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu)及其方法
【專利摘要】本發(fā)通過檢測雙路CAN總線報(bào)文傳輸至CAN控制器節(jié)點(diǎn)時(shí)間,CAN控制器節(jié)點(diǎn)以此時(shí)間作為冗余超時(shí)判斷機(jī)制,并由接收方節(jié)點(diǎn)判斷接收到的雙路CAN總線同步報(bào)文的有效性進(jìn)行處理。這種雙路CAN總線同步傳輸?shù)淖龇梢宰畲蟪潭壬媳WC數(shù)據(jù)傳輸?shù)目煽啃?,同時(shí)由于超時(shí)機(jī)制存在,對系統(tǒng)故障的判斷非常及時(shí)。雙路同步熱冗余的方式使得在總線故障或節(jié)點(diǎn)故障時(shí)可以保證至少有一路CAN總線的正常運(yùn)行,且不需要冗余切換過程。
【專利說明】一種雙CAN總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu)及其方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及總線數(shù)據(jù)通信領(lǐng)域,特別涉及一種雙CAN總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu)及其方法,適用于船用、樓宇、工業(yè)生產(chǎn)等領(lǐng)域采用CAN總線網(wǎng)絡(luò)構(gòu)成可靠性通信的場合。
【背景技術(shù)】
[0002]CAN是控制器局域網(wǎng)絡(luò)(Controller Area Network)的簡稱,是由研發(fā)和生產(chǎn)汽車電子產(chǎn)品著稱的德國BOSCH公司開發(fā)的,并最終成為國際標(biāo)準(zhǔn)(I SO11898 ),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。
[0003]CAN總線技術(shù)已經(jīng)廣泛應(yīng)用于各種檢測和控制系統(tǒng)中。CAN總線有諸多的優(yōu)點(diǎn),如支持多主結(jié)構(gòu)、基于優(yōu)先級的無破壞性仲裁機(jī)制、較高的傳輸速率等,可以滿足多數(shù)應(yīng)用系統(tǒng)對實(shí)時(shí)性和可靠性的要求。但是CAN總線本身只定義了底層物理層和數(shù)據(jù)鏈路層實(shí)現(xiàn)方式,沒有規(guī)定應(yīng)用層,應(yīng)用層的實(shí)現(xiàn)仍需要一個(gè)高層協(xié)議來定義,對于保證工業(yè)現(xiàn)場應(yīng)用實(shí)時(shí)性和可靠性的要求仍顯不足,主要存在:1) CAN總線本身是基于事件觸發(fā)的,總線上數(shù)據(jù)的傳輸時(shí)間存在不確定性,同時(shí)總線仲裁導(dǎo)致優(yōu)先級反轉(zhuǎn)更加劇這種可能性;2) CAN總線數(shù)據(jù)鏈路層編碼機(jī)制使得報(bào)文填充及長度不確定,對其內(nèi)部復(fù)雜的錯(cuò)誤檢測機(jī)制有影響,數(shù)據(jù)通訊可靠性并不能達(dá)到預(yù)期。
[0004]目如,提聞CAN總線實(shí)時(shí)性和可罪性的技術(shù)方案有很多,實(shí)時(shí)性的提聞多停留在理論階段,比如針對CAN總線時(shí)間傳輸不確定性提出的TTCAN技術(shù),是在數(shù)據(jù)鏈路層之上增加以時(shí)間片觸發(fā)方式發(fā)送的機(jī)制,使得任何優(yōu)先級任務(wù)都可以得到執(zhí)行,但是這種各個(gè)CAN節(jié)點(diǎn)之間需要精確時(shí)鐘同步,增加了應(yīng)用成本及設(shè)計(jì)復(fù)雜性,由于CAN的高層協(xié)議可以由用戶自定義,這種方式對實(shí)時(shí)性提高仍有改進(jìn)空間??煽啃缘脑黾幽壳岸嗍且栽黾尤哂鄼C(jī)制,改進(jìn)CAN總線網(wǎng)路拓?fù)浣Y(jié)構(gòu)實(shí)現(xiàn),現(xiàn)在常用的拓?fù)渚W(wǎng)絡(luò)有總線型拓?fù)洹h(huán)形拓?fù)?、星型拓?fù)?、網(wǎng)狀拓?fù)?,這些拓?fù)浣Y(jié)構(gòu)各有優(yōu)缺點(diǎn),實(shí)際應(yīng)用中總線型拓?fù)浣Y(jié)構(gòu)以網(wǎng)絡(luò)簡單可靠得到大量應(yīng)用,但此種網(wǎng)絡(luò)結(jié)構(gòu)往往只能檢測到總線級錯(cuò)誤,無法及時(shí)檢測到節(jié)點(diǎn)級故障成為其弊端。
[0005]中國的一申請?zhí)枮?00810106342.6,名稱為“雙冗余CAN總線通信系統(tǒng)及其通信方法”的發(fā)明專利,公開了一種雙冗余CAN總線通信系統(tǒng)及其通信方法,是利用一個(gè)通訊登記表記錄兩路冗余總線的故障狀態(tài),故障的判斷是分別通過兩路總線發(fā)送測試幀測試的,因此首先該專利數(shù)據(jù)傳輸是異步方式;再次所提專利對于故障的識別是通過單路(A路或B路)自身的超時(shí)做出標(biāo)記的,根據(jù)原文兩路冗余線路之間是在自身線路超時(shí)溢出時(shí)做主副通道切換的;另外根據(jù)該專利說明書介紹,當(dāng)數(shù)據(jù)傳輸量大時(shí),采用兩路同時(shí)發(fā)送,降低單路總線帶寬,但是這種兩路同時(shí)發(fā)送仍是異步發(fā)送的,即一部分報(bào)文通過A路,一部分報(bào)文通過B路,這種做法的缺陷在于只能保證數(shù)據(jù)的有效傳輸,但無法保證數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。
【發(fā)明內(nèi)容】
[0006]本發(fā)明針對現(xiàn)有技術(shù)存在的上述不足,設(shè)計(jì)一種雙CAN總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu),偵測報(bào)文可以快速偵測CAN主控制器兩路CAN總線與CAN控制器節(jié)點(diǎn)間通訊時(shí)間差,該時(shí)間差作為兩路CAN總線接收超時(shí)判斷依據(jù),保證CAN控制器節(jié)點(diǎn)通過兩路總線同步收發(fā)報(bào)文時(shí),數(shù)據(jù)通信的可靠性和實(shí)時(shí)性。并且即使一路CAN總線出現(xiàn)故障仍能快速應(yīng)對故障對系統(tǒng)的影響。
[0007]本發(fā)明通過以下技術(shù)方案實(shí)現(xiàn):
[0008]一種雙CAN總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu),雙CAN總線架構(gòu)包括一 CAN主控制器、若干CAN控制器節(jié)點(diǎn),CAN主控制器、若干CAN控制器節(jié)點(diǎn)包括兩路CAN總線接口,分別連接在兩路CAN總線上;
[0009]其中,CAN主控制器分別同步向兩路CAN總線發(fā)送兩路偵測報(bào)文,CAN控制器節(jié)點(diǎn)接收兩路偵測報(bào)文,計(jì)算接收到的兩路偵測報(bào)文的時(shí)間差,并向兩路CAN總線發(fā)送兩路響應(yīng)報(bào)文,CAN主控制器接收兩路響應(yīng)報(bào)文;
[0010]偵測報(bào)文及響應(yīng)報(bào)文包括一時(shí)間序列號,同步發(fā)送的兩路偵測報(bào)文或同步發(fā)送的兩路響應(yīng)報(bào)文的時(shí)間序列號相同,CAN控制器節(jié)點(diǎn)根據(jù)時(shí)間序列號判斷兩路偵測報(bào)文是否同步發(fā)送,CAN主控制器根據(jù)時(shí)間序列號判斷兩路響應(yīng)報(bào)文是否同步發(fā)送,響應(yīng)報(bào)文的時(shí)間序列號填充在響應(yīng)報(bào)文的擴(kuò)展幀;
[0011]若兩路偵測報(bào)文的時(shí)間差大于一預(yù)設(shè)上限值,則CAN控制器節(jié)點(diǎn)將其后接收到或未接收到偵測報(bào)文的一路CAN總線接口標(biāo)記為異常,并通知CAN主控制器,CAN控制器節(jié)點(diǎn)采用其另一路CAN總線接口進(jìn)行單通道數(shù)據(jù)通信;若兩路偵測報(bào)文的時(shí)間差小于預(yù)設(shè)上限值,CAN控制器節(jié)對兩路偵測報(bào)文的時(shí)間差作一預(yù)設(shè)裕量作為主控制器冗余線路超時(shí)時(shí)間差執(zhí)行超時(shí)判斷,CAN控制器節(jié)點(diǎn)在主控制器冗余線路超時(shí)時(shí)間差不超時(shí),且兩路偵測報(bào)文的時(shí)間序列號相同的情況下執(zhí)行偵測報(bào)文,反之則執(zhí)行異常處理。
[0012]較佳的,兩路響應(yīng)報(bào)文為同步發(fā)送,CAN主控制器接收兩路響應(yīng)報(bào)文并計(jì)算接收到的兩路響應(yīng)報(bào)文的時(shí)間差;
[0013]若兩路響應(yīng)報(bào)文的時(shí)間差大于一預(yù)設(shè)上限值,則CAN主控制器將后接收到或未接收到響應(yīng)報(bào)文的CAN控制器節(jié)的一路CAN總線接口標(biāo)記為異常,CAN控制器節(jié)點(diǎn)采用其另一路CAN總線接口進(jìn)行單通道數(shù)據(jù)通信;反之,CAN主控制器根據(jù)兩路響應(yīng)報(bào)文的時(shí)間差作一預(yù)設(shè)裕量作為控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差執(zhí)行超時(shí)判斷,CAN主控制器在控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差不超時(shí),且兩路響應(yīng)報(bào)文的時(shí)間序列號相同的情況下執(zhí)行響應(yīng)報(bào)文,反之則執(zhí)行異常處理。
[0014]較佳的,異常處理包括:
[0015]在CAN總線短路的情況下,CAN主控制器及CAN控制器節(jié)點(diǎn)采用其自帶的檢測機(jī)制進(jìn)行處理或提示;
[0016]在CAN控制器節(jié)點(diǎn)異常的情況下,CAN控制器節(jié)點(diǎn)請求CAN主控制器重發(fā)偵測報(bào)文,則CAN控制器節(jié)點(diǎn)將其后接收到或未接收到偵測報(bào)文的一路CAN總線接口標(biāo)記為異常,并通知CAN主控制器,CAN控制器節(jié)點(diǎn)采用其另一路CAN總線接口進(jìn)行單通道數(shù)據(jù)通信;
[0017]在CAN總線阻塞的情況下,CAN控制器節(jié)點(diǎn)連續(xù)接收η次同步偵測報(bào)文皆超時(shí),或CAN主控制器連續(xù)接收η次同步響應(yīng)報(bào)文皆超時(shí),則CAN主控制器和CAN控制器節(jié)點(diǎn)復(fù)位、初始化后重新發(fā)送。[0018]較佳的,兩路響應(yīng)報(bào)文為先后異步發(fā)送,CAN控制器節(jié)點(diǎn)接收到一路偵測報(bào)文后直接向偵測報(bào)文所在的CAN總線發(fā)送響應(yīng)報(bào)文,CAN主控制器將先收到響應(yīng)報(bào)文的一路作為主CAN總線,另一路作為輔助CAN總線。
[0019]較佳的,若干CAN控制器節(jié)點(diǎn)包括在線狀態(tài)和離線狀態(tài),在線狀態(tài)的若干CAN控制器節(jié)點(diǎn)計(jì)算接收到的兩路偵測報(bào)文的時(shí)間差,離線狀態(tài)的若干CAN控制器節(jié)點(diǎn)在上線后向CAN主控制器發(fā)送請求偵測報(bào)文命令。
[0020]較佳的,若CAN主控制器或CAN控制器節(jié)點(diǎn)的一路或兩路CAN總線接口為異常,則兩路偵測報(bào)文或兩路響應(yīng)報(bào)文的時(shí)間差記為0,表示CAN總線故障。
[0021]較佳的,CAN控制器節(jié)點(diǎn)中包括若干節(jié)點(diǎn)控制器,主控制器冗余線路超時(shí)時(shí)間差取若干節(jié)點(diǎn)控制器的若干主控制器冗余線路超時(shí)時(shí)間差的最大值,控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差取最先接收到響應(yīng)報(bào)文的若干節(jié)點(diǎn)控制器的控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差。
[0022]本發(fā)明還提供一種雙CAN總線保證數(shù)據(jù)通信可靠性的方法,偵測報(bào)文可以快速偵測CAN主控制器兩路CAN總線與CAN控制器節(jié)點(diǎn)間通訊時(shí)間差,該時(shí)間差作為兩路CAN總線接收超時(shí)判斷依據(jù),保證CAN控制器節(jié)點(diǎn)通過兩路總線同步收發(fā)報(bào)文時(shí),數(shù)據(jù)通信的可靠性和實(shí)時(shí)性。并且即使一路CAN總線出現(xiàn)故障仍能快速應(yīng)對故障對系統(tǒng)的影響。
[0023]一種雙CAN總線保證數(shù)據(jù)通信可靠性的方法,提供如權(quán)利要求1的雙CAN總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu),包括步驟:
[0024]S1、CAN主控制器同步發(fā)送兩路同步偵測報(bào)文;
[0025]S2、CAN控制器節(jié)點(diǎn)同步偵測報(bào)文超時(shí)判斷;
[0026]S3、CAN控制器節(jié)點(diǎn)同步發(fā)送兩路響應(yīng)報(bào)文;
[0027]其中,步驟S2包括:
[0028]S21、CAN控制器節(jié)點(diǎn)接收兩路偵測報(bào)文并計(jì)算接收到兩路偵測報(bào)文的時(shí)間差是否大于一預(yù)設(shè)上限值;
[0029]S22、若是,則CAN控制器節(jié)點(diǎn)將其后接收到或未接收到偵測報(bào)文的一路CAN總線接口標(biāo)記為異常,并通知CAN主控制器,CAN控制器節(jié)點(diǎn)采用其另一路CAN總線接口進(jìn)行單通道數(shù)據(jù)通信;
[0030]若兩路偵測報(bào)文的時(shí)間差小于預(yù)設(shè)上限值,則CAN控制器節(jié)對兩路偵測報(bào)文的時(shí)間差作一預(yù)設(shè)裕量作為主控制器冗余線路超時(shí)時(shí)間差執(zhí)行超時(shí)判斷;
[0031]S23、若CAN主控制器在主控制器冗余線路超時(shí)時(shí)間差不超時(shí),且兩路偵測報(bào)文的時(shí)間序列號相同的情況下執(zhí)行偵測報(bào)文,反之則執(zhí)行異常處理。
[0032]較佳的,在步驟S3之后還包括:S4、CAN主控制器同步響應(yīng)報(bào)文超時(shí)判斷;
[0033]步驟S4進(jìn)一步包括:
[0034]S41、CAN主控制器接收兩路響應(yīng)報(bào)文并計(jì)算接收到的兩路響應(yīng)報(bào)文的時(shí)間差;
[0035]S42、若兩路響應(yīng)報(bào)文的時(shí)間差大于一預(yù)設(shè)上限值,則CAN主控制器將后接收到或未接收到響應(yīng)報(bào)文的CAN控制器節(jié)的一路CAN總線接口標(biāo)記為異常,CAN控制器節(jié)點(diǎn)采用其另一路CAN總線接口進(jìn)行單通道數(shù)據(jù)通信;
[0036]若兩路響應(yīng)報(bào)文的時(shí)間差小于一預(yù)設(shè)上限值,CAN主控制器根據(jù)兩路響應(yīng)報(bào)文的時(shí)間差作一預(yù)設(shè)裕量作為控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差執(zhí)行超時(shí)判斷,CAN主控制器在控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差不超時(shí),且兩路響應(yīng)報(bào)文的時(shí)間序列號相同的情況下執(zhí)行響應(yīng)報(bào)文,反之則執(zhí)行異常處理。
[0037]較佳的,異常處理包括:
[0038]在CAN總線短路的情況下,CAN主控制器及CAN控制器節(jié)點(diǎn)采用其自帶的檢測機(jī)制進(jìn)行處理或提示;
[0039]在CAN控制器節(jié)點(diǎn)異常的情況下,CAN控制器節(jié)點(diǎn)請求CAN主控制器重發(fā)偵測報(bào)文,則CAN控制器節(jié)點(diǎn)將其后接收到或未接收到偵測報(bào)文的一路CAN總線接口標(biāo)記為異常,并通知CAN主控制器,CAN控制器節(jié)點(diǎn)采用其另一路CAN總線接口進(jìn)行單通道數(shù)據(jù)通信;
[0040]在CAN總線阻塞的情況下,CAN控制器節(jié)點(diǎn)連續(xù)接收η次同步偵測報(bào)文皆超時(shí),或CAN主控制器連續(xù)接收η次同步響應(yīng)報(bào)文皆超時(shí),則CAN主控制器和CAN控制器節(jié)點(diǎn)復(fù)位、初始化后重新發(fā)送。
[0041]較佳的,CAN控制器節(jié)點(diǎn)包括在線狀態(tài)和離線狀態(tài);
[0042]在線狀態(tài)的CAN控制器節(jié)點(diǎn)接收到兩路偵測報(bào)文后計(jì)算其接收到的時(shí)間差;離線狀態(tài)的CAN控制器節(jié)點(diǎn)在上線后向CAN主控制器發(fā)送請求偵測報(bào)文命令,在CAN主控制器同步發(fā)送兩路偵測報(bào)文后計(jì)算接收到兩路偵測報(bào)文的時(shí)間差。
【專利附圖】
【附圖說明】
[0043]圖1所示的是本發(fā)明系統(tǒng)架構(gòu)的結(jié)構(gòu)示意圖;
[0044]圖2所示的是本發(fā)明報(bào)文傳輸?shù)氖疽鈭D;
[0045]圖3所示的是本發(fā)明同步偵測報(bào)文、同步響應(yīng)報(bào)文的傳輸流程圖;
[0046]圖4所示的是本發(fā)明同步偵測報(bào)文、同步響應(yīng)報(bào)文的超時(shí)判斷流程圖。
【具體實(shí)施方式】
[0047]以下將結(jié)合本發(fā)明的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整的描述和討論,顯然,這里所描述的僅僅是本發(fā)明的一部分實(shí)例,并不是全部的實(shí)例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明的保護(hù)范圍。
[0048]為了便于對本發(fā)明實(shí)施例的理解,下面將結(jié)合附圖以具體實(shí)施例為例作進(jìn)一步的解釋說明,且各個(gè)實(shí)施例不構(gòu)成對本發(fā)明實(shí)施例的限定。
[0049]本發(fā)明系統(tǒng)架構(gòu)方式為,一個(gè)CAN主控制器1、若干個(gè)CAN控制器節(jié)點(diǎn)2,每個(gè)控制器均有兩路CAN總線接口,分別引出兩路CAN總線線纜,構(gòu)成典型雙總線型冗余網(wǎng)絡(luò)結(jié)構(gòu)。CAN控制器節(jié)點(diǎn)上可以包含多個(gè)節(jié)點(diǎn)控制器,以總線型方式聯(lián)接在一起。系統(tǒng)架構(gòu)示意圖如圖1。
[0050]實(shí)施原理:
[0051]報(bào)文偵測:報(bào)文偵測目的主要是為快速確定兩路CAN總線數(shù)據(jù)報(bào)文傳輸時(shí)間延時(shí)。CAN主控制器上電時(shí)首先同步發(fā)送兩路偵測報(bào)文,由于CAN報(bào)文傳輸時(shí)間主要由兩部分決定,一個(gè)是CAN控制器準(zhǔn)備向網(wǎng)絡(luò)上發(fā)送報(bào)文時(shí)需要的阻塞等待時(shí)間,另一個(gè)是CAN控制器開始將報(bào)文發(fā)送至物理網(wǎng)絡(luò)上所需要的鏈路發(fā)送時(shí)間。阻塞等待時(shí)間由CAN網(wǎng)絡(luò)繁忙程度決定,為了快速偵測出線路傳輸時(shí)間,考慮到偵測報(bào)文由CAN主控制器兩路同步觸發(fā)發(fā)出,且時(shí)間序列號在報(bào)文發(fā)送至CAN主控制器發(fā)送緩沖區(qū)之前加入,阻塞等待時(shí)間對兩路同步的CAN總線是一致的,因此CAN報(bào)文的傳輸時(shí)間主要是物理鏈路的發(fā)送時(shí)間。時(shí)間序列號是提供給接收方作為同步報(bào)文標(biāo)識和計(jì)數(shù)用的。CAN主控制器發(fā)送同步偵測報(bào)文后,由CAN控制器節(jié)點(diǎn)接收并響應(yīng),CAN控制器節(jié)點(diǎn)根據(jù)接收到的兩路偵測報(bào)文的時(shí)間序列號,啟動定時(shí)機(jī)制計(jì)算兩路偵測報(bào)文時(shí)間差。此時(shí)CAN控制器節(jié)點(diǎn)存在著在線或離線兩種情況,對于前者CAN控制器節(jié)點(diǎn)可分別由兩路CAN總線接口接收偵測報(bào)文,并計(jì)算兩路偵測報(bào)文的時(shí)間差,如果雙路CAN總線存在不完整情況下(CAN主控制器或CAN控制器節(jié)點(diǎn)的一路或兩路CAN總線接口異常,CAN總線接口異常將在下文中介紹),偵測報(bào)文時(shí)間差將以Λ t=0的形式存在,表示CAN總線有故障;對于后者節(jié)點(diǎn)控制器重新上線后向主控制器發(fā)送請求報(bào)文偵測命令,通知CAN主控制器向該節(jié)點(diǎn)發(fā)送同步偵測報(bào)文,然后計(jì)算偵測報(bào)文的時(shí)間差。CAN控制器節(jié)點(diǎn)是根據(jù)兩路偵測報(bào)文的時(shí)間序列號的一致性判斷是否為同步的偵測報(bào)文,并啟動自身定時(shí)器,計(jì)算兩路同步偵測報(bào)文時(shí)間差,CAN控制器節(jié)點(diǎn)對這兩個(gè)時(shí)間差作適當(dāng)裕量作為主控制器冗余線路超時(shí)時(shí)間差。對于兩路CAN總線,熱冗余狀態(tài)的同步偵測報(bào)文具有相同的時(shí)間序列號。對于CAN主控制器,CAN控制器節(jié)點(diǎn)在接收到數(shù)據(jù)響應(yīng)時(shí)也是以同步方式發(fā)送響應(yīng)報(bào)文,這樣依據(jù)CAN主控制器接收到的各節(jié)點(diǎn)響應(yīng)報(bào)文計(jì)算出兩路響應(yīng)報(bào)文時(shí)間差,同樣作適當(dāng)裕量作為控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差,由于CAN控制器節(jié)點(diǎn)可能存在多個(gè)節(jié)點(diǎn)控制器的情況,為簡化判斷選取時(shí)間差最長的作為主控制器或控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差。此種方式仍可擴(kuò)展為CAN主控制器兩路CAN發(fā)送同步偵測報(bào)文,CAN控制器節(jié)點(diǎn)接收到偵測報(bào)文后立即響應(yīng)不再以同步方式響應(yīng)偵測報(bào)文,這樣可以以接收到的響應(yīng)報(bào)文先后順序?yàn)橐罁?jù),根據(jù)兩路CAN總線響應(yīng)報(bào)文的時(shí)間選擇CAN總線的優(yōu)先級,選擇數(shù)據(jù)傳輸速度快的線路為高優(yōu)先級的主通道,另一通道作為輔助通道。偵測報(bào)文格式如下表1,該報(bào)文屬于CAN應(yīng)用層報(bào)文,可以由用戶定義,該報(bào)文格式只用于線路偵測階段。
[0052]CAN同步偵測報(bào)文數(shù)據(jù)域時(shí)間序列號設(shè)置:
[0053]
【權(quán)利要求】
1.一種雙CAN總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu),其特征在于,所述雙CAN總線架構(gòu)包括一 CAN主控制器、若干CAN控制器節(jié)點(diǎn),所述CAN主控制器、若干CAN控制器節(jié)點(diǎn)包括兩路CAN總線接口,分別連接在兩路CAN總線上; 其中,所述CAN主控制器分別同步向所述兩路CAN總線發(fā)送兩路偵測報(bào)文,所述CAN控制器節(jié)點(diǎn)接收所述兩路偵測報(bào)文,計(jì)算接收到的所述兩路偵測報(bào)文的時(shí)間差,并向所述兩路CAN總線發(fā)送兩路響應(yīng)報(bào)文,所述CAN主控制器接收所述兩路響應(yīng)報(bào)文; 所述偵測報(bào)文及響應(yīng)報(bào)文包括一時(shí)間序列號,同步發(fā)送的兩路偵測報(bào)文或同步發(fā)送的兩路響應(yīng)報(bào)文的所述時(shí)間序列號相同,所述CAN控制器節(jié)點(diǎn)根據(jù)所述時(shí)間序列號判斷兩路偵測報(bào)文是否同步發(fā)送,所述CAN主控制器根據(jù)所述時(shí)間序列號判斷兩路響應(yīng)報(bào)文是否同步發(fā)送,所述響應(yīng)報(bào)文的時(shí)間序列號填充在所述響應(yīng)報(bào)文的擴(kuò)展幀; 若所述兩路偵測報(bào)文的時(shí)間差大于一預(yù)設(shè)上限值,則所述CAN控制器節(jié)點(diǎn)將其后接收到或未接收到偵測報(bào)文的一路CAN總線接口標(biāo)記為異常,并通知所述CAN主控制器,所述CAN控制器節(jié)點(diǎn)采用其另一路CAN總線接口進(jìn)行單通道數(shù)據(jù)通信;若所述兩路偵測報(bào)文的時(shí)間差小于所述預(yù)設(shè)上限值,所述CAN控制器節(jié)對所述兩路偵測報(bào)文的時(shí)間差作一預(yù)設(shè)裕量作為主控制器冗余線路超時(shí)時(shí)間差執(zhí)行超時(shí)判斷,所述CAN控制器節(jié)點(diǎn)在所述主控制器冗余線路超時(shí)時(shí)間差不超時(shí),且所述兩路偵測報(bào)文的所述時(shí)間序列號相同的情況下執(zhí)行所述偵測報(bào)文,反之則執(zhí)行異常處理。
2.根據(jù)權(quán)利要求1所述的一種雙CAN總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu),其特征在于,所述兩路響應(yīng)報(bào)文為同步發(fā)送,所述CAN主控制器接收所述兩路響應(yīng)報(bào)文并計(jì)算接收到的所述兩路響應(yīng)報(bào)文的時(shí)間差; 若所述兩路響應(yīng)報(bào)文的時(shí)間差大于一預(yù)設(shè)上限值,則CAN主控制器將后接收到或未接收到響應(yīng)報(bào)文的所述CAN控制器節(jié)的一路CAN總線接口標(biāo)記為異常,所述CAN控制器節(jié)點(diǎn)采用其另一路CAN總線接口進(jìn)行單通道數(shù)據(jù)通信;反之,所述CAN主控制器根據(jù)所述兩路響應(yīng)報(bào)文的時(shí)間差作一預(yù)設(shè)裕量作為控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差執(zhí)行超時(shí)判斷,所述CAN主控制器在所述控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差不超時(shí),且所述兩路響應(yīng)報(bào)文的所述時(shí)間序列號相同的情況下執(zhí)行所述響應(yīng)報(bào)文,反之則執(zhí)行異常處理。
3.根據(jù)權(quán)利要求1或2所述的一種雙CAN總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu),其特征在于,所述異常處理包括: 在CAN總線短路的情況下,CAN主控制器及CAN控制器節(jié)點(diǎn)采用其自帶的檢測機(jī)制進(jìn)行處理或提示; 在CAN控制器節(jié)點(diǎn)異常的情況下,CAN控制器節(jié)點(diǎn)請求CAN主控制器重發(fā)偵測報(bào)文,則所述CAN控制器節(jié)點(diǎn)將其后接收到或未接收到偵測報(bào)文的一路CAN總線接口標(biāo)記為異常,并通知所述CAN主控制器,所述CAN控制器節(jié)點(diǎn)采用其另一路CAN總線接口進(jìn)行單通道數(shù)據(jù)通信; 在CAN總線阻塞的情況下,CAN控制器節(jié)點(diǎn)連續(xù)接收η次同步偵測報(bào)文皆超時(shí),或CAN主控制器連續(xù)接收η次同步響應(yīng)報(bào)文皆超時(shí),則CAN主控制器和CAN控制器節(jié)點(diǎn)復(fù)位、初始化后重新發(fā)送。
4.根據(jù)權(quán)利要求1所述的一種雙CAN總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu),其特征在于,所述兩路響應(yīng)報(bào)文為先后異步發(fā)送,所述CAN控制器節(jié)點(diǎn)接收到一路所述偵測報(bào)文后直接向所述偵測報(bào)文所在的CAN總線發(fā)送響應(yīng)報(bào)文,所述CAN主控制器將先收到所述響應(yīng)報(bào)文的一路作為主CAN總線,另一路作為輔助CAN總線。
5.根據(jù)權(quán)利要求1所述的一種雙CAN總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu),其特征在于,所述若干CAN控制器節(jié)點(diǎn)包括在線狀態(tài)和離線狀態(tài),所述在線狀態(tài)的若干CAN控制器節(jié)點(diǎn)計(jì)算接收到的所述兩路偵測報(bào)文的時(shí)間差,所述離線狀態(tài)的若干CAN控制器節(jié)點(diǎn)在上線后向所述CAN主控制器發(fā)送請求偵測報(bào)文命令。
6.根據(jù)權(quán)利要求1所述的一種雙CAN總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu),其特征在于,若所述CAN主控制器或所述CAN控制器節(jié)點(diǎn)的一路或兩路CAN總線接口為異常,則所述兩路偵測報(bào)文或所述兩路響應(yīng)報(bào)文的時(shí)間差記為O,表示CAN總線故障。
7.根據(jù)權(quán)利要求1所述的一種雙CAN總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu),其特征在于,CAN控制器節(jié)點(diǎn)中包括若干節(jié)點(diǎn)控制器,所述主控制器冗余線路超時(shí)時(shí)間差取所述若干節(jié)點(diǎn)控制器的若干主控制器冗余線路超時(shí)時(shí)間差的最大值,所述控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差取最先接收到響應(yīng)報(bào)文的所述若干節(jié)點(diǎn)控制器的控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差。
8.—種雙CAN總線保證數(shù)據(jù)通信可靠性的方法,其特征在于,提供如權(quán)利要求1所述的雙CAN總線保證數(shù)據(jù)通信可靠性的系統(tǒng)架構(gòu),包括步驟: SUCAN主控制器同步發(fā)送兩路同步偵測報(bào)文; 52、CAN控制器節(jié)點(diǎn)同步偵測報(bào)文超時(shí)判斷; 53、CAN控制器節(jié)點(diǎn)同步發(fā)送兩路響應(yīng)報(bào)文; 其中,步驟S2包括:` 521、CAN控制器節(jié)點(diǎn)接收兩路`偵測報(bào)文并計(jì)算接收到兩路偵測報(bào)文的時(shí)間差是否大于一預(yù)設(shè)上限值; 522、若是,則所述CAN控制器節(jié)點(diǎn)將其后接收到或未接收到偵測報(bào)文的一路CAN總線接口標(biāo)記為異常,并通知所述CAN主控制器,所述CAN控制器節(jié)點(diǎn)采用其另一路CAN總線接口進(jìn)行單通道數(shù)據(jù)通信; 若所述兩路偵測報(bào)文的時(shí)間差小于所述預(yù)設(shè)上限值,則所述CAN控制器節(jié)對所述兩路偵測報(bào)文的時(shí)間差作一預(yù)設(shè)裕量作為主控制器冗余線路超時(shí)時(shí)間差執(zhí)行超時(shí)判斷; 523、若所述CAN主控制器在所述主控制器冗余線路超時(shí)時(shí)間差不超時(shí),且所述兩路偵測報(bào)文的所述時(shí)間序列號相同的情況下執(zhí)行所述偵測報(bào)文,反之則執(zhí)行異常處理。
9.根據(jù)權(quán)利要求8所述的一種雙CAN總線保證數(shù)據(jù)通信可靠性的方法,其特征在于,在步驟S3之后還包括:S4、CAN主控制器同步響應(yīng)報(bào)文超時(shí)判斷; 所述步驟S4進(jìn)一步包括: ` 541、CAN主控制器接收所述兩路響應(yīng)報(bào)文并計(jì)算接收到的所述兩路響應(yīng)報(bào)文的時(shí)間差; ` 542、若所述兩路響應(yīng)報(bào)文的時(shí)間差大于一預(yù)設(shè)上限值,則CAN主控制器將后接收到或未接收到響應(yīng)報(bào)文的所述CAN控制器節(jié)的一路CAN總線接口標(biāo)記為異常,所述CAN控制器節(jié)點(diǎn)采用其另一路CAN總線接口進(jìn)行單通道數(shù)據(jù)通信; 若所述兩路響應(yīng)報(bào)文的時(shí)間差小于一預(yù)設(shè)上限值,所述CAN主控制器根據(jù)所述兩路響應(yīng)報(bào)文的時(shí)間差作一預(yù)設(shè)裕量作為控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差執(zhí)行超時(shí)判斷,所述CAN主控制器在所述控制器節(jié)點(diǎn)冗余線路超時(shí)時(shí)間差不超時(shí),且所述兩路響應(yīng)報(bào)文的所述時(shí)間序列號相同的情況下執(zhí)行所述響應(yīng)報(bào)文,反之則執(zhí)行異常處理。
10.根據(jù)權(quán)利要求8或9所述的一種雙CAN總線保證數(shù)據(jù)通信可靠性的方法,其特征在于,所述異常處理包括: 在CAN總線短路的情況下,CAN主控制器及CAN控制器節(jié)點(diǎn)采用其自帶的檢測機(jī)制進(jìn)行處理或提示; 在CAN控制器節(jié)點(diǎn)異常的情況下,CAN控制器節(jié)點(diǎn)請求CAN主控制器重發(fā)偵測報(bào)文,則所述CAN控制器節(jié)點(diǎn)將其后接收到或未接收到偵測報(bào)文的一路CAN總線接口標(biāo)記為異常,并通知所述CAN主控制器,所述CAN控制器節(jié)點(diǎn)采用其另一路CAN總線接口進(jìn)行單通道數(shù)據(jù)通信; 在CAN總線阻塞的情況下,CAN控制器節(jié)點(diǎn)連續(xù)接收η次同步偵測報(bào)文皆超時(shí),或CAN主控制器連續(xù)接收η次同步響應(yīng)報(bào)文皆超時(shí),則CAN主控制器和CAN控制器節(jié)點(diǎn)復(fù)位、初始化后重新發(fā)送。
11.根據(jù)權(quán)利要求10所述的一種雙CAN總線保證數(shù)據(jù)通信可靠性的方法,其特征在于,CAN控制器節(jié)點(diǎn)包括在線狀態(tài)和離線狀態(tài); 所述在線狀態(tài)的CAN控制器節(jié)點(diǎn)接收到所述兩路偵測報(bào)文后計(jì)算其接收到的時(shí)間差;所述離線狀態(tài)的CAN控制器節(jié)點(diǎn)在上線后向所述CAN主控制器發(fā)送請求偵測報(bào)文命令,在所述CAN主控制器同步發(fā)送兩路 偵測報(bào)文后計(jì)算接收到所述兩路偵測報(bào)文的時(shí)間差。
【文檔編號】H04L1/22GK103516571SQ201310312434
【公開日】2014年1月15日 申請日期:2013年7月22日 優(yōu)先權(quán)日:2013年7月22日
【發(fā)明者】張軍凱, 袁延波, 黃巖峰, 朱敏, 顏建國 申請人:浙江中控研究院有限公司