System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及汽車通訊,具體而言,涉及一種can數據處理方法、裝置、設備和介質。
技術介紹
1、can總線在汽車電子系統中廣泛應用,它主要解決了隨著汽車中電子控制單元(ecus)數量增加而帶來的布線復雜性、重量增加等問題,通過構建一個局域網絡來實現ecu之間的信息共享和通信。本地ecu想要獲取車載其他ecu發出的信息時就會面臨can報文的有效接收與處理,通常軟件會采用輪詢和中斷方式實現。
2、然而,現有的方案實車測試階段會出現接收報文丟幀的情況,分析發現其can控制器接收結構的緩沖區容易出現接收緩沖滿載的情況,若接收器fifo已滿,之后所有接收到的報文都會被丟棄,直到fifo中的接收緩沖器再次可用,才可以接收新的有效報文。雖然can控制器fifo滿時會生成數據過載中斷,但硬件不能通過軟件釋放接收buffer操作而自動清除該故障位,同時一旦出現過載必須將can模塊進行初始化操作,才能恢復接收緩沖器再次可用。
3、由此,本專利技術提出了一種can數據處理方法,以解決車輛ecu系統數據幀較多時易出現報文丟幀導致重要報文丟失的問題。
技術實現思路
1、為解決車輛ecu系統數據幀較多時易出現報文丟幀導致重要報文丟失的問題,本專利技術提供了一種can數據處理方法。
2、第一方面,本專利技術提供了一種can數據處理方法,包括:
3、獲取車輛can網絡中的報文;
4、基于預設的整理和分段對所述報文進行過濾;
5、將過濾后的報文
6、在所述緩沖區滿載時,產生can報文接收中斷;
7、將所有過濾后的報文從緩沖區取出,存入接收數組;
8、根據目標id匹配接收數組中的報文對應的報文id,其中,目標id對應的報文為can控制器所需要的報文;
9、將與目標id相匹配的接收數組中的報文發送至can控制器。
10、在一些實施例中,所述預設的整理和分段,包括:
11、整理車輛所需報文對應的報文id所在數據段;
12、基于報文id所在數據段,配置過濾器的id和掩碼。
13、在一些實施例中,所述過濾器采用屏蔽位模式;
14、所述過濾器的標準幀和擴展幀的id和掩碼設置方式一致。
15、在一些實施例中,所述對所述報文進行過濾,包括:
16、提取總線報文中的報文id;
17、將所述報文id與標識符驗收寄存器中的內容進行比較,其中,標識符驗收寄存器用于存放驗證id,所述驗證id用于與所述報文id進行比較;
18、若所述報文id與所述驗證id匹配,則該報文id對應的報文允許被接收。
19、在一些實施例中,若所述報文id與所述驗證id不匹配,則將所述報文id與標識符掩碼寄存器中的內容進行比較,其中,所述標識符掩碼寄存器用于存放所述掩碼,所述掩碼用于與所述報文id進行比較;
20、若所述掩碼中的關心位與所述報文id相應位匹配,則該報文id對應的報文將被接收;
21、若所述掩碼中的關心位與所述報文id相應位不匹配,則該報文id對應的報文將被過濾。
22、在一些實施例中,所述將所有過濾后的報文從緩沖區取出,存入接收數組,包括:
23、不再進行報文數據內容解析與判斷;
24、遍歷緩沖區中報文,并將所有報文取出放入接收數組;
25、若緩沖區為空,所述緩沖區重新開始接收報文。
26、在一些實施例中,若接收數組中報文對應的報文id與所述目標id不匹配,丟棄不匹配的報文id對應的報文。
27、第二方面,本專利技術提出了一種can數據處理裝置,該裝置包括如下模塊:
28、采集模塊:用于實現獲取車輛can網絡中的報文;
29、過濾模塊:用于實現基于預設的整理和分段對所述報文進行過濾,并將過濾后的報文放入緩沖區;
30、中斷模塊:用于實現在所述緩沖區滿載時,產生can報文接收中斷;將所有過濾后的報文從緩沖區取出,存入接收數組;
31、匹配模塊:用于實現根據目標id匹配接收數組中的報文對應的報文id,將與目標id相匹配的接收數組中的報文發送至can控制器,其中,目標id對應的報文為can控制器所需要的報文。
32、第三方面,本專利技術提出了一種電子設備,其特征在于,包括處理器和存儲器,所述存儲器存儲可在所述處理器上運行的程序,所述程序被所述處理器執行時實現如第一方面所述的can數據處理方法。
33、第四方面,本專利技術提出了一種存儲介質,其特征在于,所述存儲介質上存儲有計算機程序,所述計算機程序被至少一個處理器執行時實現如第一方面所述的can數據處理方法。
34、為解決車輛ecu系統數據幀較多時易出現報文丟幀導致重要報文丟失的問題,本專利技術有以下優點:
35、本專利技術的can數據處理方法,通過減少網絡報文進入接收緩沖區的數量,以及優化接收報文處理方式等手段,解決了現有車輛的can總線在接收整車報文時易出現報文丟幀等現象,避免了關鍵報文信息的丟失,從而避免了車輛因關鍵報文的丟失導致的性能損耗。
本文檔來自技高網...【技術保護點】
1.一種CAN數據處理方法,其特征在于,包括:
2.如權利要求1所述的一種CAN數據處理方法,其特征在于,所述預設的整理和分段,包括:
3.如權利要求2所述的一種CAN數據處理方法,其特征在于,所述過濾器采用屏蔽位模式;
4.如權利要求1所述的一種CAN數據處理方法,其特征在于,所述對所述報文進行過濾,包括:
5.如權利要求4所述的一種CAN數據處理方法,其特征在于,若所述報文ID與所述驗證ID不匹配,則將所述報文ID與標識符掩碼寄存器中的內容進行比較,其中,所述標識符掩碼寄存器用于存放所述掩碼,所述掩碼用于與所述報文ID進行比較;
6.如權利要求1所述的一種CAN數據處理方法,其特征在于,所述將所有過濾后的報文從緩沖區取出,存入接收數組,包括:
7.如權利要求1所述的一種CAN數據處理方法,其特征在于,若接收數組中報文對應的報文ID與所述目標ID不匹配,丟棄不匹配的報文ID對應的報文。
8.一種CAN數據處理裝置,其特征在于,所述裝置包括:
9.一種電子設備,其特征在于,包括處理器和
10.一種存儲介質,其特征在于,所述存儲介質上存儲有計算機程序,所述計算機程序被至少一個處理器執行時實現如權利要求1-7任一項所述的CAN數據處理方法。
...【技術特征摘要】
1.一種can數據處理方法,其特征在于,包括:
2.如權利要求1所述的一種can數據處理方法,其特征在于,所述預設的整理和分段,包括:
3.如權利要求2所述的一種can數據處理方法,其特征在于,所述過濾器采用屏蔽位模式;
4.如權利要求1所述的一種can數據處理方法,其特征在于,所述對所述報文進行過濾,包括:
5.如權利要求4所述的一種can數據處理方法,其特征在于,若所述報文id與所述驗證id不匹配,則將所述報文id與標識符掩碼寄存器中的內容進行比較,其中,所述標識符掩碼寄存器用于存放所述掩碼,所述掩碼用于與所述報文id進行比較;
6.如權利要求1所述的一種can數據處理方法...
【專利技術屬性】
技術研發人員:段珍珍,顧紅萍,馬銳,陳穎,徐銀寬,
申請(專利權)人:萬向錢潮股份公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。