本發(fā)明涉及控制器局域網(wǎng)(can)裝置以及用于控制can業(yè)務(wù)的方法。
背景技術(shù):
控制器局域網(wǎng)(can)總線是通常在汽車內(nèi)使用的基于消息的通信總線協(xié)議。can總線協(xié)議用于實現(xiàn)各個電子控制單元(ecu)之間的通信,該ecu例如發(fā)動機控制模塊(ecm)、傳動系控制模塊(pcm)、安全氣囊、防抱死剎車、巡航控制、電動助力轉(zhuǎn)向、音頻系統(tǒng)、窗戶、門、后視鏡調(diào)整、用于混合/電動汽車的電池和再充電系統(tǒng)等等。can協(xié)議的數(shù)據(jù)鏈路層被標(biāo)準(zhǔn)化為國際標(biāo)準(zhǔn)組織(iso)11898。
車載網(wǎng)絡(luò)(例如,使用can總線協(xié)議的車載網(wǎng)絡(luò))的一個日益關(guān)注的問題是網(wǎng)絡(luò)安全。攻擊例如can網(wǎng)絡(luò)等車載網(wǎng)絡(luò)的一個已知技術(shù)是包括使can總線“溢流”的“拒絕服務(wù)”攻擊。舉例來說,受損車載網(wǎng)絡(luò)的can節(jié)點被操控成發(fā)送一陣高優(yōu)先級can消息以防止其余的can節(jié)點發(fā)送任何can消息。
技術(shù)實現(xiàn)要素:
本發(fā)明公開了一種裝置和方法的實施例。在一個實施例中,公開了一種用于控制can業(yè)務(wù)的方法。用于控制can業(yè)務(wù)的方法包括:解碼來自txd路徑的can消息的標(biāo)識符的位;使用標(biāo)識符的解碼位獲得加權(quán)值;將加權(quán)值添加到接收到的can消息的運行加權(quán)值;并且如果運行加權(quán)值超過預(yù)先建立的閾值,那么限制can消息經(jīng)由txd路徑的傳輸。
在該方法的一個實施例中,使用標(biāo)識符的解碼位獲得加權(quán)值包括應(yīng)用函數(shù),其中加權(quán)隨著標(biāo)識符的優(yōu)先級提高而增大。
在一個實施例中,該方法包括以固定的時間間隔減小運行加權(quán)值。
在一個實施例中,該方法包括使運行加權(quán)值以固定的時間間隔減小固定量。
在一個實施例中,該方法包括以固定的時間間隔減小運行加權(quán)值,并且限制傳輸包括當(dāng)運行加權(quán)值超過預(yù)先建立的閾值時停止can消息的傳輸。
在該方法的一個實施例中,獲得can消息的加權(quán)值包括反轉(zhuǎn)標(biāo)識符的位。
在該方法的一個實施例中,獲得can消息的加權(quán)值包括使用標(biāo)識符的解碼位搜索查找表以尋找加權(quán)值。
在該方法的一個實施例中,獲得can消息的加權(quán)值包括將函數(shù)應(yīng)用到標(biāo)識符的解碼位,產(chǎn)生高于預(yù)先建立的閾值的特定標(biāo)識符的加權(quán)值而無論運行加權(quán)值如何。
在該方法的一個實施例中,使用標(biāo)識符的解碼位獲得加權(quán)值包括應(yīng)用函數(shù),其中加權(quán)隨著標(biāo)識符的優(yōu)先級提高而增大,并且該方法另外包括使運行加權(quán)值以固定的時間間隔減小固定量,并且其中限制can消息的傳輸包括停止can消息的傳輸。
在一個實施例中,can收發(fā)器集成電路裝置包括發(fā)射器phy、接收器phy、can解碼器和限制邏輯,該限制邏輯被配置成實施如上文所陳述的方法。
公開了一種can裝置。在一個實施例中,該can裝置包括:傳輸數(shù)據(jù)(txd)輸入接口;can總線接口;發(fā)射器phy,該發(fā)射器phy在txd路徑上連接在txd輸入接口與can總線接口之間;接收數(shù)據(jù)(rxd)輸出接口;接收器phy,該接收器phy在rxd路徑上連接在can總線接口與rxd輸出接口之間;can解碼器,該can解碼器連接到txd路徑并且被配置成解碼來自can消息的標(biāo)識符的位;以及限制邏輯。限制邏輯被配置成使用標(biāo)識符的解碼位獲得加權(quán)值、將加權(quán)值添加到接收到的can消息的運行加權(quán)值,以及如果運行加權(quán)值超過預(yù)先建立的閾值,那么限制can消息經(jīng)由txd路徑的傳輸。
在can裝置的一個實施例中,限制邏輯被配置成使用標(biāo)識符的解碼位獲得加權(quán)值,方法是將函數(shù)應(yīng)用到標(biāo)識符的解碼位,其中加權(quán)隨著標(biāo)識符的優(yōu)先級提高而增大。
在can裝置的一個實施例中,限制邏輯被配置成以固定的時間間減小低運行加權(quán)值。
在can裝置的一個實施例中,限制邏輯被配置成以固定的時間間隔減小運行加權(quán)值,并且致使不傳輸can消息直至運行加權(quán)值低于預(yù)先建立的閾值為止。
在can裝置的一個實施例中,獲得can消息的加權(quán)值包括反轉(zhuǎn)標(biāo)識符的位。
在can裝置的一個實施例中,限制邏輯被配置成獲得can消息的加權(quán)值,方法是使用標(biāo)識符的解碼位搜索查找表以尋找加權(quán)值。
在can裝置的一個實施例中,限制邏輯被配置成使用標(biāo)識符的解碼位獲得加權(quán)值,方法是將函數(shù)應(yīng)用到標(biāo)識符的解碼位,其中加權(quán)隨著標(biāo)識符的優(yōu)先級提高而增大,限制邏輯被配置成以固定的時間間隔減小運行加權(quán)值,并且限制邏輯被配置成當(dāng)運行加權(quán)值超過預(yù)先建立的閾值時停止can消息的傳輸。
在一個實施例中,can收發(fā)器集成電路裝置包括發(fā)射器phy、接收器phy、txd輸入接口、can總線接口、rxd輸出接口、can解碼器和限制邏輯,如上文所述。
在一個實施例中,微控制器集成電路裝置包括can協(xié)議控制器和如上文所述的can裝置。
公開了一種can裝置的另一實施例。can裝置包括can解碼器,該can解碼器連接到txd路徑并且被配置成解碼來自can消息的標(biāo)識符的位;以及限制邏輯。限制邏輯被配置成使用標(biāo)識符的解碼位獲得加權(quán)值、將加權(quán)值添加到接收到的can消息的運行加權(quán)值,以及如果運行加權(quán)值超過預(yù)先建立的閾值,那么限制can消息經(jīng)由txd路徑的傳輸。
根據(jù)本發(fā)明的其它方面將從借助于本發(fā)明原理的實例說明的結(jié)合附圖進行的以下詳細(xì)描述中變得顯而易見。
附圖說明
圖1描繪包括連接到can總線的多個can節(jié)點的can網(wǎng)絡(luò)。
圖2描繪圖1中的一個can節(jié)點的放大圖。
圖3a描繪can正常模式中使用的iso11898-1幀的格式。
圖3b描繪canfd模式中使用的iso/dis11898-1幀的格式。
圖4a描繪標(biāo)準(zhǔn)can幀的標(biāo)識符字段。
圖4b描繪擴展can幀的標(biāo)識符字段。
圖5描繪can收發(fā)器的實施例,該can收發(fā)器配置有安全模塊,該安全模塊包括can解碼器和限制邏輯,該限制邏輯被配置成實施基于加權(quán)的業(yè)務(wù)控制。
圖6a示出包括反轉(zhuǎn)標(biāo)識符的前8位的加權(quán)函數(shù)。
圖6b示出針對使用圖6a的反轉(zhuǎn)函數(shù)的特定can節(jié)點的運行加權(quán)值相較于時間的曲線。
圖6c示出針對在can節(jié)點嘗試使can總線充滿高優(yōu)先級的can消息的情境中特定can節(jié)點的運行加權(quán)值相較于時間的曲線。
圖7描繪圖5中的安全模塊的實施例。
圖8描繪示出加權(quán)函數(shù)的可能的每標(biāo)識符分配的表。
圖9是根據(jù)本發(fā)明的實施例用于控制can業(yè)務(wù)的方法的過程流程圖。
貫穿描述,可以使用類似的附圖標(biāo)記來識別類似的元件。
具體實施方式
應(yīng)容易理解,如本文中大體描述且在附圖中示出的實施例的組件可以用各種各樣不同的配置來布置和設(shè)計。因此,以下如圖所表示的各種實施例的更詳細(xì)描述并非旨在限制本發(fā)明的范圍,而僅僅是表示各種實施例。雖然在圖式中呈現(xiàn)了實施例的各個方面,但是除非特別地說明,否則圖式未必按比例繪制。
在不脫離本發(fā)明精神或基本特征的情況下,可以其他特定形式實施本發(fā)明。所描述的實施例應(yīng)視為在所有方面均僅為說明性而非限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求書而不是由此詳細(xì)描述來指定。在權(quán)利要求書等效物的含義和范圍內(nèi)的所有變化均涵蓋在其范圍內(nèi)。
貫穿本說明書對特征、優(yōu)點或類似語言的提及并不暗示可以本發(fā)明實現(xiàn)的所有特征和優(yōu)點應(yīng)該在或在本發(fā)明的任何單一實施例中。實際上,提及所述特征和優(yōu)點的語言應(yīng)理解成意味著結(jié)合實施例描述的特定特征、優(yōu)點或特性包含于本發(fā)明的至少一個實施例中。因此,本說明書通篇中對特征、優(yōu)點和類似語言的論述可以(但未必)參考同一實施例。
此外,本發(fā)明的所描述的特征、優(yōu)點和特性可以任何合適方式在一個或多個實施例中組合。相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識到,鑒于本文的描述,可以在沒有特定實施例的具體特征或優(yōu)點中的一個或多個具體特征或優(yōu)點的情況下實踐本發(fā)明。在其它情況下,可在某些實施例中辨識可不存在于本發(fā)明的所有實施例中的額外特征和優(yōu)點。
貫穿本說明書對“一個實施例”、“一實施例”或類似語言的提及意味著結(jié)合所指示實施例描述的特定特征、結(jié)構(gòu)或特性包含于本發(fā)明的至少一個實施例中。因此,貫穿本說明書的短語“在一個實施例中”、“在一實施例中”和類似語言可以(但未必)全部參考同一實施例。
圖1描繪包括多個can節(jié)點102的can網(wǎng)絡(luò)100,這些can節(jié)點102也被稱作“ecu”,各自被連接到can總線104。在圖1的實施例中,每個can節(jié)點包括微控制器110,該微控制器110具有嵌入的can協(xié)議控制器114和can收發(fā)器120。微控制器通常連接到至少一個裝置(未示出),例如,傳感器、致動器或一些其它控制裝置,并且被編程為確定所接收的消息的含義以及產(chǎn)生適當(dāng)?shù)膫鞒鱿?。還稱為主機處理器、主機或數(shù)字信號處理器(dsp)的微控制器是本領(lǐng)域中已知的。在一個實施例中,主機支持與can協(xié)議控制器交互的應(yīng)用程序軟件。
如本領(lǐng)域中已知,可以嵌入在微控制器110內(nèi)或在微控制器(例如,分離的ic裝置)外部的can協(xié)議控制器114實施數(shù)據(jù)鏈路層操作。舉例來說,在接收操作中,can協(xié)議控制器存儲從收發(fā)器接收到的串行位,直到全部消息可用于由微控制器提取。can協(xié)議控制器還可以根據(jù)can協(xié)議的標(biāo)準(zhǔn)化幀格式解碼can消息。在傳輸操作中,can協(xié)議控制器從微控制器接收消息并且將消息作為呈can幀格式的串行位傳輸?shù)絚an收發(fā)器。
can收發(fā)器120位于微控制器110與can總線104之間并且實施物理層操作(也被稱作“phy”)。舉例來說,在接收操作中,can收發(fā)器將來自can總線的模擬差分信號轉(zhuǎn)換成can協(xié)議控制器114可以解譯的串行數(shù)字信號。can收發(fā)器還保護can協(xié)議控制器免受can總線上的例如電浪涌等極端電氣條件影響。在傳輸操作中,can收發(fā)器將從can協(xié)議控制器接收到的串行數(shù)字位轉(zhuǎn)換成在can總線上發(fā)送的模擬差分信號。
can總線104攜帶模擬差分信號并且包括can高(canh)總線線路124和can低(canl)總線線路126。所述can總線是本領(lǐng)域中已知的。
圖2描繪圖1中的一個can節(jié)點102的放大圖。在圖2的放大圖中,微控制器包括主機116,該主機116可以例如是存儲在微控制器的存儲器中并且通過微控制器的處理電路執(zhí)行的軟件應(yīng)用程序。can節(jié)點的微控制器110和can收發(fā)器120連接在電源電壓vcc與接地gnd之間。如圖2所示,從微控制器傳送到can收發(fā)器的數(shù)據(jù)被識別為傳輸數(shù)據(jù)(txd),而從can收發(fā)器傳送到微控制器的數(shù)據(jù)被稱為接收數(shù)據(jù)(rxd)。貫穿描述,txd攜帶在txd路徑上并且rxd攜帶在rxd路徑上。數(shù)據(jù)分別通過canh總線線路124和canl總線線路126傳送至can總線以及從can總線傳送。
can協(xié)議控制器114可以被配置成支持can正常模式或can靈活數(shù)據(jù)速率模式。如本文所使用,“can正常模式”(也被稱作“經(jīng)典can模式”)是指根據(jù)iso11898-1標(biāo)準(zhǔn)格式化的幀,并且“canfd模式”是指根據(jù)新興的iso/國際標(biāo)準(zhǔn)草案(dis)11898-1標(biāo)準(zhǔn)或其等效物格式化的幀。
圖3a描繪can正常模式中使用的iso11898-1幀130的格式(呈經(jīng)典的基礎(chǔ)幀格式(cbff)或標(biāo)準(zhǔn)格式),并且圖3b描繪canfd模式中使用的iso/dis11898-1幀132的格式(呈fd基礎(chǔ)幀格式或fbff)。can正常模式和canfd模式幀的字段可以如下定義:
sof幀起始(始終顯性)
identifier標(biāo)識符位,定義消息內(nèi)容
rtr遠(yuǎn)程傳輸請求
ideid擴展
r0預(yù)留位0(由采用canfd格式的fdf代替)
fdffd格式(這是區(qū)別幀格式的位)
brs波特速率選擇開關(guān)
esi誤差狀態(tài)指示符
dlc數(shù)據(jù)長度碼
data數(shù)據(jù)字節(jié)
crc循環(huán)冗余檢查
crcdelcrc分隔符(始終隱性)
ack確認(rèn)
ackdel確認(rèn)分隔符
eof幀結(jié)束
還存在被稱作“經(jīng)典擴展幀格式(ceff)”的經(jīng)典幀格式的另一版本,其中fdf位在舊r1位置,而fdf位在cbff中的r0位置。還存在“fd擴展幀格式(feff)”,其中“擴展”是指29位標(biāo)識符。值得注意的是,can協(xié)議使用can幀內(nèi)的預(yù)留位(r0或r1)(通常也被稱為fdf位)以將幀識別為canfd模式幀。具體地說,fdf位是指示幀是can正常模式幀(iso11898-1)還是canfd模式幀(iso/dis11898-1)的1位字段。當(dāng)fdf位為顯性(例如,低或“0”)時幀是can正常模式幀,并且當(dāng)fdf位為隱性(例如,高或“1”)時幀是canfd模式幀。在can正常模式幀中,預(yù)留位(r0、r1)始終被驅(qū)動為對總線線路顯性。
can消息是廣播消息并且標(biāo)識符對于發(fā)送器can節(jié)點是唯一的。接收can節(jié)點的can協(xié)議控制器具有標(biāo)識符過濾器,這些標(biāo)識符過濾器被“調(diào)諧”到某些標(biāo)識符以確保主機接收相關(guān)消息且不受無關(guān)消息干擾。標(biāo)準(zhǔn)can幀具有11位標(biāo)識符字段以攜帶11位標(biāo)識符,并且擴展can幀具有29位標(biāo)識符字段以攜帶29位標(biāo)識符。在圖4a中描繪了標(biāo)準(zhǔn)can幀的標(biāo)識符字段152,并且在圖4b中描繪了擴展can幀的標(biāo)識符字段。如圖4b中所示,29位標(biāo)識符字段被劃分成兩個區(qū)段,即11位基礎(chǔ)標(biāo)識符字段154和18位擴展標(biāo)識符字段156。如在can協(xié)議中所規(guī)定的,標(biāo)識符的數(shù)值設(shè)置消息優(yōu)先級。
攻擊can網(wǎng)絡(luò)的一種已知的方式包括使can總線充滿具有高優(yōu)先級(例如,如通過標(biāo)識符所指示)的can消息。當(dāng)can總線充滿高優(yōu)先級can消息時,其它較低優(yōu)先級can消息隨著它們不斷地失去消息仲裁而基本上卡在它們相應(yīng)的can節(jié)點處。對can網(wǎng)絡(luò)的此類攻擊被稱為“拒絕服務(wù)”攻擊或“dos”攻擊。
為了對抗此類拒絕服務(wù)攻擊且根據(jù)本發(fā)明的實施例,用于控制can業(yè)務(wù)的技術(shù)包括:解碼來自txd路徑的can消息的標(biāo)識符的位;使用標(biāo)識符的解碼位獲得加權(quán)值;將加權(quán)值添加到接收到的can消息的運行加權(quán)值;并且如果運行加權(quán)值超過預(yù)先建立的閾值,那么經(jīng)由txd路徑限制can消息的傳輸。當(dāng)使用此類技術(shù)時,加權(quán)可以被設(shè)置成使得具有高優(yōu)先級的一陣can消息將致使運行加權(quán)值迅速超過預(yù)先建立的閾值,由此觸發(fā)can消息傳輸?shù)南拗啤Ee例來說,加權(quán)可以被設(shè)置成使得加權(quán)隨著標(biāo)識符的優(yōu)先級提高而增大。另外,限制可以包括停止can消息從相應(yīng)的can收發(fā)器的傳輸以有效地終止拒絕服務(wù)攻擊。相應(yīng)地,可以迅速檢測并停止包括發(fā)送一陣高優(yōu)先級can消息的嘗試拒絕服務(wù)攻擊。在實施例中,can收發(fā)器配置有can解碼器和用于實施上述業(yè)務(wù)控制技術(shù)的限制邏輯。在can收發(fā)器ic裝置內(nèi)實施此類業(yè)務(wù)控制能提供簡單的單芯片解決方案以用于防止依賴于使can總線溢流的拒絕服務(wù)攻擊。
圖5描繪can收發(fā)器120的實施例,該can收發(fā)器120配置有安全模塊160,該安全模塊160包括can解碼器170和限制邏輯172,該限制邏輯172被配置成實施基于加權(quán)的業(yè)務(wù)控制。can收發(fā)器120包括接收器136(也被稱作“接收器phy”)、發(fā)射器138(也被稱作“發(fā)射器phy”)、rxd接口140、txd接口142以及can總線接口144,該can總線接口144具有canh總線接口146和canl總線接口148。在can總線接口處接收的傳入can業(yè)務(wù)(例如,rxd)經(jīng)由接收器被傳遞到rxd接口140,并且在txd接口142處接收的傳出can業(yè)務(wù)(例如,txd)經(jīng)由發(fā)射器phy被傳輸離開can總線接口。如圖5中所示,安全模塊連接到txd路徑。在一個實施例中,can收發(fā)器是可以連接到印刷電路板(pcb)上的微控制器ic裝置的離散獨立集成電路(ic)裝置。
安全模塊160的can解碼器170被配置成解碼txd路徑上的串行數(shù)據(jù)。在一個實施例中,can解碼器被配置成根據(jù)can協(xié)議解碼串行數(shù)據(jù),然而can解碼器可以被配置成根據(jù)如在車載網(wǎng)絡(luò)連接的領(lǐng)域中已知的例如局部互連網(wǎng)絡(luò)(lin)或flexray等另一協(xié)議解碼串行數(shù)據(jù)。舉例來說,can解碼器連接到txd路徑,并且被配置成解碼can消息的標(biāo)識符的位并將標(biāo)識符的解碼位提供到限制邏輯172。限制邏輯被配置成使用標(biāo)識符的解碼位獲得加權(quán)值,并且將加權(quán)值添加到接收到的can消息的運行加權(quán)值。舉例來說,針對已經(jīng)經(jīng)由相應(yīng)can節(jié)點的txd路徑傳輸?shù)絚an總線104上的全部消息在連續(xù)的(例如,運行的)基礎(chǔ)上維持運行加權(quán)值。在一個實施例中,可以固定的時間間隔減小運行加權(quán)值。舉例來說,可以使運行加權(quán)值以固定的時間間隔減小固定量。
限制邏輯172還被配置成當(dāng)運行加權(quán)值超過預(yù)先建立的閾值時限制can消息經(jīng)由txd路徑和發(fā)射器phy138的傳輸。在一個實施例中,限制邏輯在接收到每個標(biāo)識符之后更新運行加權(quán)值,且隨后比較運行加權(quán)值與預(yù)先建立的閾值以確定是否已經(jīng)超過預(yù)先建立的閾值。如果已經(jīng)超過預(yù)先建立的閾值,那么限制邏輯產(chǎn)生限制can消息經(jīng)由txd路徑的傳輸?shù)目刂菩盘?。舉例來說,控制信號被應(yīng)用到can收發(fā)器120的發(fā)射器phy以停止從can收發(fā)器傳輸can消息。
在一個實施例中,在與can收發(fā)器ic裝置處于同一襯底上的電路中實施can解碼器170和限制邏輯172。此類集成提供單獨的單芯片解決方案以處理依賴于使can總線溢流的拒絕服務(wù)攻擊。單獨的單芯片解決方案可以獨立于can協(xié)議控制器且獨立于主機實施,使得車輛制造商易于采用該解決方案。
在一個實施例中,通過反轉(zhuǎn)標(biāo)識符的位獲得標(biāo)識符的加權(quán)值。舉例來說,在一個實施例中,無論標(biāo)識符具有11位還是29位,都逐位反轉(zhuǎn)標(biāo)識符的前9位。舉例來說,id=00010101100b的標(biāo)識符形成加權(quán)值:加權(quán)值=111010100b(最高有效位)。如在can協(xié)議中所規(guī)定的,二進制消息標(biāo)識符編號越小,優(yōu)先級越高。因此,完全由零組成的標(biāo)識符是can總線上的最高優(yōu)先級消息。給定can標(biāo)識符的優(yōu)先級規(guī)范,反轉(zhuǎn)標(biāo)識符的位具有產(chǎn)生針對較高優(yōu)先級標(biāo)識符的較高加權(quán)值以及針對較低優(yōu)先級標(biāo)識符的較低加權(quán)值的效果。舉例來說,加權(quán)被設(shè)置成使得針對相對較高優(yōu)先級標(biāo)識符產(chǎn)生相對較高加權(quán)值且針對相對較低優(yōu)先級標(biāo)識符產(chǎn)生相對較低加權(quán)值。這允許快速檢測高優(yōu)先級can消息的溢流。另外,在一個實施例中,運行加權(quán)值減小,例如,針對已經(jīng)經(jīng)過的每個(仲裁)位時間減小一,同時沒有can消息經(jīng)由對應(yīng)的txd路徑發(fā)送。在此類實施例中,實際預(yù)先建立的閾值可以例如是8192dec。
圖6a-6c示出了用于控制can網(wǎng)絡(luò)中的業(yè)務(wù)的上述技術(shù)的實施例。舉例來說,該技術(shù)可以由圖5的can收發(fā)器120使用以處理依賴于使can總線溢流的拒絕服務(wù)攻擊。在操作中,can消息的標(biāo)識符在txd路徑上發(fā)送并且被安全模塊160的can解碼器170拾起。can解碼器解碼txd路徑上的標(biāo)識符的位并且解析出標(biāo)識符的解碼位。參考圖6a,解碼id=02xf0=00111110000b的11位標(biāo)識符,并且通過反轉(zhuǎn)該標(biāo)識符的前8位使用該標(biāo)識符的位獲得加權(quán)值。如圖6a中所說明,標(biāo)識符id=02xf0=00111110000b用于產(chǎn)生加權(quán)值:加權(quán)值=11000001b=161dec。使用反轉(zhuǎn)函數(shù),可以將加權(quán)設(shè)置成使得加權(quán)隨著標(biāo)識符的優(yōu)先級提高而增大。
圖6b示出針對使用圖6a中示出的反轉(zhuǎn)函數(shù)的特定can節(jié)點的運行加權(quán)值相較于時間的曲線。在時間t0處,運行加權(quán)值是例如0的值,該值可以是重新設(shè)置值。在時間t1處,can節(jié)點傳輸具有id=0x2f0的標(biāo)識符的can消息。使用圖6a中示出的反轉(zhuǎn)函數(shù),從標(biāo)識符中獲得161dec的加權(quán)值,并且將該加權(quán)值添加到運行加權(quán)值,在一個實例中,將該運行加權(quán)值設(shè)置成重新設(shè)置值直至接收到第一can消息。在時間t1與t2之間,沒有can消息從can節(jié)點傳輸并且運行加權(quán)值以固定的時間間隔減小固定量。
在時間t2處,can節(jié)點傳輸具有id=0x145的標(biāo)識符的can消息。使用圖6a中示出的反轉(zhuǎn)函數(shù),從標(biāo)識符中獲得215dec的加權(quán)值并且將該加權(quán)值添加到運行加權(quán)值。在時間t2與t3之間,沒有can消息從can節(jié)點傳輸并且運行加權(quán)值以固定的時間間隔減小固定量。
在時間t3處,can節(jié)點傳輸具有id=0x3a4的標(biāo)識符的can消息。使用圖6a中示出的反轉(zhuǎn)函數(shù),從標(biāo)識符中獲得139dec的加權(quán)值并且將該加權(quán)值添加到運行加權(quán)值。在時間t3與t4之間,沒有can消息從can節(jié)點傳輸并且運行加權(quán)值以固定的時間間隔減小固定量。
在時間t4處,can節(jié)點傳輸具有id=0x00f的標(biāo)識符的can消息。使用圖6a中示出的反轉(zhuǎn)函數(shù),從標(biāo)識符中獲得254dec的加權(quán)值并且將該加權(quán)值添加到運行加權(quán)值。
在時間t0與t4之間,運行加權(quán)值并不超過預(yù)先建立的閾值。因此,并不實施傳輸限制。舉例來說,并未超過運行加權(quán)值是因為can節(jié)點尚未嘗試發(fā)送一陣高優(yōu)先級can消息。
圖6c示出針對在can節(jié)點嘗試使can總線充滿高優(yōu)先級的can消息的情境中特定can節(jié)點的運行加權(quán)值相較于時間的曲線。在時間t0處,運行加權(quán)值是例如0的值,該值可以是重新設(shè)置值。在時間t1處,can節(jié)點傳輸具有id=0x2f0的標(biāo)識符的can消息。使用圖6a中示出的反轉(zhuǎn)函數(shù),從標(biāo)識符中獲得161dec的加權(quán)值并且將該加權(quán)值添加到運行加權(quán)值。在時間t1與t2之間,沒有can消息從can節(jié)點傳輸并且運行加權(quán)值以固定的時間間隔減小固定增量。
在時間t2處,can節(jié)點傳輸具有id=0x00f的標(biāo)識符的can消息。這是具有相對較高優(yōu)先級的標(biāo)識符,并且使用圖6a中示出的反轉(zhuǎn)函數(shù),使用該標(biāo)識符獲得254dec的加權(quán)值。將該加權(quán)值添加到運行加權(quán)值并且與預(yù)先建立的閾值進行比較。此時,運行加權(quán)值并不超過預(yù)先建立的閾值,因此并不實施限制。
在時間t2之后不久,在時間t3處,can節(jié)點傳輸具有id=0x00f的標(biāo)識符的另一can消息,并且使用圖6a中示出的反轉(zhuǎn)函數(shù),同樣使用該標(biāo)識符獲得254dec的加權(quán)值。將該加權(quán)值添加到運行加權(quán)值,且隨后將運行加權(quán)值與預(yù)先建立的閾值進行比較。如圖6c中所示,嘗試傳輸具有id=0x00f的標(biāo)識符的第二can消息迅速導(dǎo)致運行加權(quán)值超過預(yù)先建立的限制。當(dāng)運行加權(quán)值超過預(yù)先建立的限制時,限制邏輯可以發(fā)布控制信號。舉例來說,限制邏輯發(fā)布控制信號以停止從can節(jié)點傳輸can消息。在一個實施例中,限制邏輯發(fā)布控制信號,該控制信號停止發(fā)射器phy傳輸當(dāng)前can消息和隨后的can消息,從而有效地結(jié)束can節(jié)點的“溢流”并且防止can總線上的拒絕服務(wù)攻擊。在一個實施例中,限制邏輯保持在相同狀態(tài)中(例如,停止can消息的傳輸)直至主機重新設(shè)置狀態(tài)。在另一實施例中,當(dāng)運行加權(quán)值減小到預(yù)先建立的閾值以下時限制邏輯返回到正常狀態(tài)(例如,允許can消息的傳輸)。在另一實施例中,當(dāng)運行加權(quán)值減小到零時限制邏輯返回到正常狀態(tài)(例如,允許can消息的傳輸)。雖然給出一些實例,但是可以使用其它技術(shù)以使限制邏輯返回到正常狀態(tài)。
如圖6a-6c中所示,以使得較高優(yōu)先級標(biāo)識符具有較高加權(quán)值的方式對標(biāo)識符進行加權(quán)能允許快速檢測和停止can節(jié)點處的溢流事件。另外,上述技術(shù)的優(yōu)勢是:使實施快速檢測和停止溢流事件的邏輯電路與can協(xié)議控制器和主機分離。因此,可以檢測和停止觸發(fā)溢流的對協(xié)議控制器和/或主機的軟件攻擊而無論can協(xié)議控制器和主機的狀態(tài)如何。
圖7描繪圖5中的安全模塊160的實施例。在圖7的實施例中,安全模塊包括can解碼器170、限制邏輯172、txd接口180和控制信號接口182。在一個實施例中,txd接口連接到txd路徑(例如,如圖5中所示)以接收串行數(shù)據(jù)。串行數(shù)據(jù)被傳遞到can解碼器,該can解碼器根據(jù)can協(xié)議解碼接收到的位。在一個實施例中,can解碼器將標(biāo)識符的解碼位傳遞到限制邏輯。在圖7的實施例中,限制邏輯包括標(biāo)識符加權(quán)邏輯186、運行加權(quán)值模塊188、比較邏輯190、控制器192和任選的查找表194。在一個實施例中,標(biāo)識符加權(quán)邏輯被配置成使用從can解碼器接收的標(biāo)識符的位獲得加權(quán)值。在一個實施例中,標(biāo)識符加權(quán)邏輯被配置成參考圖5-6c實施上文所述的反轉(zhuǎn)函數(shù)。在其它實施例中,標(biāo)識符加權(quán)邏輯被配置成使用來自標(biāo)識符的位實施其它函數(shù)以獲得加權(quán)值。舉例來說,可以存在由標(biāo)識符加權(quán)邏輯實施的許多不同加權(quán)函數(shù),這些加權(quán)函數(shù)將產(chǎn)生針對相對較高優(yōu)先級標(biāo)識符的相對較高加權(quán)值和針對相對較低優(yōu)先級標(biāo)識符的相對較低加權(quán)值。在替代實施例中,使用標(biāo)識符的位在查找表中尋找加權(quán)值。在一個實施例中,查找表填充有對應(yīng)于標(biāo)識符的加權(quán)值,并且使用標(biāo)識符的解碼位搜索該表。在一個實施例中,查找表可以包括用于識別標(biāo)識符的群組的屏蔽位。在一個實施例中,可以使用查找表通過例如搜索該表以尋找匹配來獲得針對某些指定標(biāo)識符的加權(quán)值。以此方式,如果具有受損軟件的can節(jié)點自稱是例如通常將使用特定預(yù)定義標(biāo)識符或預(yù)定義標(biāo)識符組的車外測試設(shè)備,那么該特定預(yù)定義標(biāo)識符可以包含于查找表中且給定相對較高加權(quán)值。舉例來說,加權(quán)值可以足夠高以非常迅速地或在例如僅單個can消息之后或僅若干can消息之后立即超過預(yù)先建立的閾值,而無論運行加權(quán)值如何。也就是說,當(dāng)將加權(quán)值添加到當(dāng)前運行加權(quán)值時,新的運行加權(quán)值將肯定會超過預(yù)先建立的閾值,而無論在添加之前的運行加權(quán)值的幅值如何。
運行加權(quán)值模塊188可以包括寄存器以存儲運行加權(quán)值和用以更新運行加權(quán)值的邏輯。在一個實施例中,運行加權(quán)值模塊包括用以響應(yīng)于加權(quán)值更新運行加權(quán)值并且當(dāng)未傳輸can消息時以固定的時間間隔減小運行加權(quán)值的邏輯。在一個實施例中,運行加權(quán)值以導(dǎo)致運行加權(quán)值在大約一秒內(nèi)達到零的值每位時間減小一次。
比較邏輯190被配置成比較運行加權(quán)值與預(yù)先建立的閾值。當(dāng)比較邏輯確定運行加權(quán)值超過預(yù)先建立的閾值時,指示符信號可以輸出到控制器192??刂破鞅慌渲贸僧a(chǎn)生控制信號,該控制信號從控制接口182輸出以控制can消息從對應(yīng)的can節(jié)點(例如,具體而言從can收發(fā)器)的傳輸。在一個實施例中,如上文所述,控制信號用于限制發(fā)射器phy(圖5,發(fā)射器phy138)。在一個實施例中,控制器可以被配置成取決于業(yè)務(wù)控制的期望結(jié)果以不同方式輸出控制can消息的傳輸?shù)目刂菩盘枴?/p>
在一個實施例中,在與構(gòu)成can發(fā)射器的電路制造于同一襯底上的硬件電路中實施安全模塊160。硬件電路可以包括例如使用本領(lǐng)域中已知的cmos技術(shù)制造的晶體管和二極管。
在一個實施例中,限制邏輯172被配置成取決于標(biāo)識符應(yīng)用不同的加權(quán)函數(shù)。圖8描繪示出加權(quán)函數(shù)的可能的每標(biāo)識符分配的表。在表的第一列中,指示標(biāo)識符。舉例來說,包括五行標(biāo)識符,其中至少一行包括有效地呈現(xiàn)標(biāo)識符的“類別”的多個標(biāo)識符。在表的第二列中,識別逆加權(quán)函數(shù),并且頂行中的核對標(biāo)記指示對應(yīng)的標(biāo)識符是根據(jù)逆加權(quán)函數(shù)加權(quán)的。在表的第三列中,識別替代的加權(quán)函數(shù),并且第二行和第三行中的核對標(biāo)記指示根據(jù)替代加權(quán)函數(shù)加權(quán)的標(biāo)識符。在表的第四列中,識別查找表函數(shù),并且第四行和第五行中的核對標(biāo)記指示根據(jù)查找表函數(shù)加權(quán)的標(biāo)識符。如在圖8的表中所指示,取決于所希望的業(yè)務(wù)控制需要可以將不同加權(quán)函數(shù)應(yīng)用到不同標(biāo)識符。
圖9是用于控制can業(yè)務(wù)的技術(shù)的過程流程圖。在框902處,解碼來自txd路徑的can消息的標(biāo)識符的位。在框904處,使用標(biāo)識符的解碼位獲得加權(quán)值。在框906處,將加權(quán)值添加到接收到的can消息的運行加權(quán)值(rwv)。在決策點908處,確定運行加權(quán)值是否超過預(yù)先建立的閾值。如果運行加權(quán)值并不超過預(yù)先建立的閾值,那么過程返回到框902。然而,如果運行加權(quán)值確實超過預(yù)先建立的閾值,那么在框910處,限制經(jīng)由txd路徑的can消息的傳輸。在一個實施例中,通過控制發(fā)射器phy限制can消息的傳輸,例如,通過控制發(fā)射器phy以停止傳輸can消息。在另一實施例中,通過控制發(fā)射器phy限制can消息的傳輸,例如,通過控制發(fā)射器phy以減緩can消息的傳輸速率。
如上所述,在一些實施例中,加權(quán)函數(shù)使用標(biāo)識符的不到全部的位獲得加權(quán)值。在其它實施例中,可以使用標(biāo)識符的全部的位獲得加權(quán)值。在這兩種情況中均使用標(biāo)識符的位獲得加權(quán)值。
雖然描述了使用標(biāo)識符的位獲得加權(quán)值的一些實例,但是其它技術(shù)也是可能的。舉例來說,標(biāo)識符(或標(biāo)識符的一些位)的許多不同函數(shù)是可能的。在一個實施例中,加權(quán)值表示為:加權(quán)值=f(標(biāo)識符),其中“f”是一些函數(shù)。函數(shù)f可以例如是連續(xù)或不連續(xù)的。替代函數(shù)的實例是:加權(quán)值=(229-標(biāo)識符)2,然而其它函數(shù)也是可能的。
如上所述,將運行加權(quán)值與預(yù)先建立的閾值進行比較。特定閾值是實施方案特定的并且可以基于許多不同因素而設(shè)置。在一個實施例中,設(shè)置預(yù)先建立的閾值的考慮因素包括被發(fā)送的標(biāo)識符的種類以及在某一時間段(例如,1秒)中發(fā)送標(biāo)識符的頻率。在已知這些因素的情況下,可以在不存在溢流且不限制業(yè)務(wù)的情境中針對某一時間段(例如,1秒)的結(jié)尾計算運行加權(quán)值。此類運行加權(quán)值可以被稱作“1秒運行加權(quán)值”或“rwv_1s”。接著可基于1秒運行加權(quán)值(rwv_1s)設(shè)置預(yù)先建立的閾值并且該閾值的實例可以是0.5倍的rwv_1s。在一個實施例中,設(shè)置預(yù)先建立的閾值使得預(yù)先建立的閾值與rwv_1s之間的比率低會導(dǎo)致陣發(fā)性的對應(yīng)can消息的可能性較低。在預(yù)期一連串連續(xù)的、均勻的、平穩(wěn)的can消息的情境中,可以使用較低的預(yù)先建立的閾值并且較低的預(yù)先建立的閾值可以是有利的。舉例來說,可以使用小于0.5倍rwv_1s的預(yù)先建立的閾值。在預(yù)期一連串不規(guī)則的can消息(例如,具有陣發(fā)性和停頓)的情境中,可以使用較高的預(yù)先建立的閾值并且較高的預(yù)先建立的閾值可以是有利的。舉例來說,可以使用接近1.0倍rwv_1s的較高的預(yù)先建立的閾值。在一個實施例中,限制邏輯被配置成以例如每位時間一次的固定時間間隔減小運行加權(quán)值。在一個實施例中,限制邏輯被配置成使運行加權(quán)值以每時間間隔減小固定量,其中固定量被設(shè)置成使得運行加權(quán)值在大約1秒內(nèi)減小到零。舉例來說,減小運行加權(quán)值使得在1秒內(nèi)rwv_1s=0。在一個實施例中,使運行加權(quán)值在1秒內(nèi)減小到大約零(例如,±10%)。
如上所述,當(dāng)運行加權(quán)值超過預(yù)先建立的閾值時可以檢測到使can網(wǎng)絡(luò)“溢流”的嘗試。在一個實施例中,使得運行加權(quán)值超過預(yù)先建立的閾值的can消息的數(shù)目取決于從標(biāo)識符的位獲得的加權(quán)值。因此,加權(quán)值函數(shù)與預(yù)先建立的閾值的組合影響作業(yè)網(wǎng)絡(luò)的性能。加權(quán)值函數(shù)和預(yù)先建立的閾值的具體組合是實施方案特定的。
使用用于控制can業(yè)務(wù)的上述技術(shù),有可能運行具有低優(yōu)先級標(biāo)識符的大量消息而不會限制或破壞通信,從而例如允許快速的軟件下載,同時還限制了使can總線充滿高優(yōu)先級can消息的嘗試。
在一個實施例中,上文描述的溢流檢測和防止技術(shù)可以在can裝置中實施,例如,can收發(fā)器ic裝置、微控制器ic裝置或包括can收發(fā)器和微控制器這兩者的ic裝置。
在一個實施例中,上文描述的溢流檢測和防止技術(shù)適用于can、can-fd和iso11898兼容網(wǎng)絡(luò)以及通常用于車輛的其它網(wǎng)絡(luò)協(xié)議,例如,局部互連網(wǎng)絡(luò)(lin)和flexray協(xié)議。
在以上描述中,提供各種實施例的具體細(xì)節(jié)。然而,可以在使用并非全部這些具體細(xì)節(jié)的情況下實踐一些實施例。在其它情況下,為了簡潔和清晰起見,除了本發(fā)明的各種實施例之外不再詳細(xì)描述某些方法、程序、組件、結(jié)構(gòu)和/或功能。
雖然以特定次序示出和描述了本文中的方法的操作,但是可以更改每個方法的操作次序,使得可以逆序執(zhí)行某些操作,或使得可以至少部分地與其它操作同時執(zhí)行某些操作。在其它實施例中,可以間斷的和/或交替的方式實施不同操作的指令或子操作。
還應(yīng)注意,本文中所描述的方法的至少一些操作可以使用存儲于計算機可用存儲媒體上的供計算機執(zhí)行的軟件指令來實施。作為實例,計算機程序產(chǎn)品的實施例包括用于存儲計算機可讀程序的計算機可用存儲媒體。
計算機可用存儲媒體或計算機可讀存儲媒體可以是電子、磁性、光學(xué)、電磁、紅外線或半導(dǎo)體系統(tǒng)(或設(shè)備或裝置)。非暫時性計算機可用存儲媒體和計算機可讀存儲媒體的例子包括半導(dǎo)體或固態(tài)存儲器、磁帶、可拆卸計算機磁盤、隨機存取存儲器(ram)、只讀存儲器(rom)、剛性磁盤和光盤。光盤的現(xiàn)有例子包括具有只讀存儲器的高密度磁盤(cd-rom)、具有讀取/寫入的高密度磁盤(cd-r/w)和數(shù)字視頻光盤(dvd)。
可替換的是,本發(fā)明的實施例可以完全實施于硬件中或?qū)嵤┯诎布蛙浖烧叩膶嵤┓桨钢?。在使用軟件的實施例中,軟件可以包括但不限于固件、常駐軟件、微碼等。
盡管已經(jīng)描述和示出了本發(fā)明的具體實施例,但是本發(fā)明不限于如此描述和示出的部分的特定形式或布置。本發(fā)明的范圍將由在此所附的權(quán)利要求書及其等效物限定。