本發明涉及汽車通信技術,尤其涉及一種控制器。
背景技術:
目前,CAN總線技術已經廣泛應用于各種檢測和控制系統中,它是一種有效支持分布式控制系統的串行通信網絡,CAN總線將汽車電子設備和汽車底盤的電子控制單元(Electronic Control Unit,ECU)有效的連接了起來,通常CAN總線連接不止一個ECU。
現有技術中,CAN總線系統架構中的兩個ECU之間只存在一條CAN路徑,當該條CAN路徑出現故障時,會造成ECU之間無法通信。因此,亟需提出一種與雙冗余CAN總線通訊的控制器,以增強CAN總線抗失效的能力。
技術實現要素:
本發明提供一種控制器,以增強CAN總線抗失效的能力。
本發明提供一種控制器,用于與第一CAN總線和第二CAN總線通訊,包括:
編碼模塊,用于按照預設編碼規則對第一報文信息進行編碼;其中,所述第一報文信息包含多幀CAN消息;
發送模塊,用于將編碼后的所述第一報文信息發送給所述第一CAN總線和所述第二CAN總線;
接收模塊,用于從所述第一CAN總線接收第二報文信息,同時從所述第二CAN總線接收所述第二報文信息;
判斷模塊,用于按照判斷所述預設判斷規則判斷所述第二報文信息是否正確;
選擇模塊,用于根據預設選擇規則,確定所應用的所述第二報文信息;其中,所述預設選擇規則包括:從所述第一CAN總線接收的所述第二報文信息錯誤時,監測從所述第一CAN總線接收的所述第二報文信息,若監測到從所 述第一CAN總線接收的所述第二報文信息正確的次數達到預設次數,則切換為應用從所述第一CAN總線接收到的所述第二報文信息中的報文數據。
如上所述的控制器,其中,所述預設編碼規則包括:使用所述CAN消息中的預設字節作為所述CAN消息的編碼字節,所述CAN消息的編碼由初始值逐幀增加至預設最大值。
如上所述的控制器,其中,所述預設判斷規則包括:根據預設數據范圍判斷所述第二報文信息中的報文數據是否可信。
如上所述的控制器,其中,所述預設選擇規則還包括:若從所述第一CAN總線接收的所述第二報文信息正確,則應用從所述第一CAN總線接收的所述第二報文信息中的報文數據;若從所述第一CAN總線接收的所述第二報文信息錯誤,從所述第二CAN總線接收的所述第二報文信息正確,則應用從所述第二CAN總線接收的所述第二報文信息中的報文數據。
本發明提供的控制器,用于與第一CAN總線和第二CAN總線通訊,包括:編碼模塊,用于按照預設編碼規則對第一報文信息進行編碼;其中,所述第一報文信息包含多幀CAN消息;發送模塊,用于將編碼后的所述第一報文信息發送給所述第一CAN總線和所述第二CAN總線;接收模塊,用于從所述第一CAN總線接收第二報文信息,同時從所述第二CAN總線接收所述第二報文信息;判斷模塊,用于按照判斷所述預設判斷規則判斷所述第二報文信息是否正確;選擇模塊,用于根據預設選擇規則,確定所應用的所述第二報文信息;其中,所述預設選擇規則包括:從所述第一CAN總線接收的所述第二報文信息錯誤時,監測從所述第一CAN總線接收的所述第二報文信息,若監測到從所述第一CAN總線接收的所述第二報文信息正確的次數達到預設次數,則切換為應用從所述第一CAN總線接收到的所述第二報文信息中的報文數據;從而實現了對雙冗余CAN總線的應用,第一CAN總線和第二CAN總線互為冗余,增強了CAN總線抗失效的能力。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在 不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明應用雙冗余CAN總線的物理結構圖;
圖2為本發明實施例提供的控制器的結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
圖1為本發明應用雙冗余CAN總線的物理結構圖,如圖1所示,多個電子控制單元(Electronic Control Unit,ECU)連接在兩條獨立的CAN總線之間,在物理上,以CAN-A為主CAN總線,即本發明實施例中的第一CAN總線,以CAN-B為冗余總線,即本發明實施例中的第二CAN總線。需要說明的是,CAN-A和CAN-B遵循相同的協議,每個ECU向CAN-A和CAN-B發送相同的報文信息。
圖2為本發明實施例提供的控制器的結構示意圖。如圖2所示,該控制器具體用于與第一CAN總線和第二CAN總線通訊,包括:
編碼模塊11,用于按照預設編碼規則對第一報文信息進行編碼;其中,所述第一報文信息包含多幀CAN消息;
發送模塊12,用于將編碼后的所述第一報文信息發送給所述第一CAN總線和所述第二CAN總線;
接收模塊13,用于從所述第一CAN總線接收第二報文信息,同時從所述第二CAN總線接收所述第二報文信息;
判斷模塊14,用于按照判斷所述預設判斷規則判斷所述第二報文信息是否正確;
選擇模塊15,用于根據預設選擇規則,確定所應用的所述第二報文信息;其中,所述預設選擇規則包括:從所述第一CAN總線接收的所述第二報文信息錯誤時,監測從所述第一CAN總線接收的所述第二報文信息,若監測到從所述第一CAN總線接收的所述第二報文信息正確的次數達到預設次數,則切 換為應用從所述第一CAN總線接收到的所述第二報文信息中的報文數據。
需要說明的是,所述預設編碼規則包括:使用所述CAN消息中的預設字節作為所述CAN消息的編碼字節,所述CAN消息的編碼由初始值逐幀增加至預設最大值。
所述預設判斷規則包括:根據預設數據范圍判斷所述第二報文信息中的報文數據是否可信。
所述預設選擇規則還包括:若從所述第一CAN總線接收的所述第二報文信息正確,則應用從所述第一CAN總線接收的所述第二報文信息中的報文數據;若從所述第一CAN總線接收的所述第二報文信息錯誤,從所述第二CAN總線接收的所述第二報文信息正確,則應用從所述第二CAN總線接收的所述第二報文信息中的報文數據。
本實施例提供的控制器,用于與第一CAN總線和第二CAN總線通訊,包括:編碼模塊,用于按照預設編碼規則對第一報文信息進行編碼;其中,所述第一報文信息包含多幀CAN消息;發送模塊,用于將編碼后的所述第一報文信息發送給所述第一CAN總線和所述第二CAN總線;接收模塊,用于從所述第一CAN總線接收第二報文信息,同時從所述第二CAN總線接收所述第二報文信息;判斷模塊,用于按照判斷所述預設判斷規則判斷所述第二報文信息是否正確;選擇模塊,用于根據預設選擇規則,確定所應用的所述第二報文信息;其中,所述預設選擇規則包括:從所述第一CAN總線接收的所述第二報文信息錯誤時,監測從所述第一CAN總線接收的所述第二報文信息,若監測到從所述第一CAN總線接收的所述第二報文信息正確的次數達到預設次數,則切換為應用從所述第一CAN總線接收到的所述第二報文信息中的報文數據;從而實現了對雙冗余CAN總線的應用,第一CAN總線和第二CAN總線互為冗余,增強了CAN總線抗失效的能力。
最后應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。