本發(fā)明涉及通信,尤其涉及一種車載網關及一種用于can報文轉發(fā)的車載網關控制方法。
背景技術:
1、隨著汽車智能化、電動化和網聯(lián)化的發(fā)展,車載電控設備不斷增加,不同網段電控設備之間的can網絡通訊需求越來越多,因此以can通訊為主的車載網絡通訊也變得越來越復雜。車載網關作為眾多電控設備相互通訊的中繼設備,在確保can報文能被正確接收并轉發(fā)的基礎上,當can通信負載較高情況下,提高can報文信號的轉發(fā)效率,有效降低報文轉發(fā)延時的需求變得越來越突出。
2、現(xiàn)有方案一般采用一個消息緩存接收所有id的can報文,通過多個消息緩存對can報文數(shù)據幀進行中斷接收,并通過多個發(fā)送消息緩存對can報文數(shù)據幀進行排隊發(fā)送;此種設計方法,當總線負載率較高,對于一些id優(yōu)先級較高發(fā)送周期短的數(shù)據幀,有可能出現(xiàn)消息緩存存儲的舊數(shù)據幀處理不及時,被新接收的can報文數(shù)據幀覆蓋,導致接收丟幀問題,can報文數(shù)據幀轉發(fā)延時相對也會較大,也有可能出現(xiàn)因頻繁的中斷打斷處理,導致系統(tǒng)其他任務處理不及時的問題。
技術實現(xiàn)思路
1、為了解決上述問題,本發(fā)明提出了一種車載網關及一種用于can報文轉發(fā)的車載網關控制方法。
2、具體方案如下:
3、一種用于can報文轉發(fā)的車載網關控制方法,包括:
4、在車載網關支持的每路can網段對應的所有消息緩存中均設置一個用于對can報文的id進行過濾的獨立掩碼寄存器;
5、統(tǒng)計每路can網段需要接收和發(fā)送的can報文總數(shù)量,并判斷該路can網段對應的消息緩存的總數(shù)量是否大于或等于該路can網段需要接收和發(fā)送的can報文總數(shù)量,如果是,則為每個接收和發(fā)送的can報文一對一分配一個對應的消息緩存,且將分配的消息緩存對應的獨立掩碼寄存器的過濾id配置為一對一模式,并將消息緩存對應的報文接收或發(fā)送模式設置為查詢模式;否則,將部分消息緩存對應的獨立掩碼寄存器的過濾id配置為一對一模式,且對應id優(yōu)先級較高的報文,并將消息緩存對應的報文接收或發(fā)送模式設置為查詢模式;將剩下的消息緩存對應的獨立掩碼寄存器的過濾id配置為一對多模式,且對應優(yōu)先級較低的報文,并將消息緩存對應的報文接收或發(fā)送模式設置為中斷模式。
6、進一步的,為每個對應的獨立掩碼寄存器配置為一對多模式的消息緩存構建一個對應的發(fā)送緩存隊列;對于每路can網段上接收到的can報文,如果有轉發(fā)到其他網段的需求,當對應的消息緩存中的獨立掩碼寄存器為一對一模式時,當前發(fā)送處于空閑狀態(tài)則立即發(fā)送,否則將需要轉發(fā)的can報文存儲于發(fā)送緩存隊列;當對應的消息緩存中的獨立掩碼寄存器為一對多模式時,先判斷該消息緩存是否有正在執(zhí)行的發(fā)送任務以及發(fā)送緩存隊列中是否還有未發(fā)送的can報文,如果該消息緩存中沒有正在執(zhí)行的發(fā)送任務且發(fā)送緩存隊列中沒有未發(fā)送的can報文,則立即發(fā)送需要轉發(fā)的can報文;否則等待發(fā)送任務空閑時再發(fā)送。
7、進一步的,將所有支持can通訊的電控設備按照功能域進行劃分,相同功能域的電控設備整合到同一路網段內。
8、一種車載網關,包括處理器、存儲器以及存儲在所述存儲器中并可在所述處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)本發(fā)明實施例上述的方法的步驟。
9、本發(fā)明采用如上技術方案,根據can報文id優(yōu)先級特點,來對消息緩存對應的獨立掩碼寄存器進行不同設置,實現(xiàn)了對不同優(yōu)先級的can報文的不同的處理方式,同時針對每個需要接收或發(fā)送的消息緩存,根據過濾id優(yōu)先級順序再單獨設置成中斷或查詢模式,可以實現(xiàn)當總線負載較高時,在確保所有報文能被正確接收并轉發(fā)的基礎上,提高對can報文的轉發(fā)效率,減少can報文轉發(fā)延時時間,同時也兼顧系統(tǒng)其他任務能被及時處理。
1.一種用于can報文轉發(fā)的車載網關控制方法,其特征在于,包括:
2.根據權利要求1所述的用于can報文轉發(fā)的車載網關控制方法,其特征在于:為每個對應的獨立掩碼寄存器配置為一對多模式的消息緩存構建一個對應的發(fā)送緩存隊列;對于每路can網段上接收到的can報文,如果有轉發(fā)到其他網段的需求,當對應的消息緩存中的獨立掩碼寄存器為一對一模式時,當前發(fā)送處于空閑狀態(tài)則立即發(fā)送,否則將需要轉發(fā)的can報文存儲于發(fā)送緩存隊列;當對應的消息緩存中的獨立掩碼寄存器為一對多模式時,先判斷該消息緩存是否有正在執(zhí)行的發(fā)送任務以及發(fā)送緩存隊列中是否還有未發(fā)送的can報文,如果該消息緩存中沒有正在執(zhí)行的發(fā)送任務且發(fā)送緩存隊列中沒有未發(fā)送的can報文,則立即發(fā)送需要轉發(fā)的can報文;否則等待發(fā)送任務空閑時再發(fā)送。
3.根據權利要求1所述的用于can報文轉發(fā)的車載網關控制方法,其特征在于:將所有支持can通訊的電控設備按照功能域進行劃分,相同功能域的電控設備整合到同一路網段內。
4.一種車載網關,其特征在于:包括處理器、存儲器以及存儲在所述存儲器中并在所述處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如權利要求1~3中任一所述方法的步驟。