本發明涉及汽車網絡技術領域,特別涉及一種報文傳輸的方法、車載網絡系統及車輛。
背景技術:
隨著電子信息技術的快速發展,汽車也進入了電子化、網絡化的控制時代,其中最明顯的標志是ECU(Electronic Control Unit,電子控制單元)在汽車中的應用。隨著汽車中ECU數量的不斷增多,各個ECU之間需要相互交換信息,于是就誕生了在汽車控制系統中應用的互聯網絡。其中,CAN(Controller Area Network,控制器局域網絡)由于其具有的實時性強、可靠性高、結構簡單、互操作性好和價格低廉等特點,作為車載網絡系統被廣泛應用于汽車控制系統中。
在現有技術中,CAN包括多個ECU,CAN中的任意ECU在任意時刻都可以主動地向其他的ECU發送報文,本申請發明人在研發過程中發現,當CAN的總線網段負載率超過40%時,接收報文的ECU在等待一段時間但還未接收到報文后,退出接收報文狀態,導致報文丟失率較高。同理,若想要降低報文丟失率,就要保證總線網段負載率低于40%,如此會導致總線網段的利用率較低。
技術實現要素:
有鑒于此,本發明旨在提出一種報文傳輸的方法,以在保證報文丟失率較低的基礎上,提高總線網段的利用率。
為達到上述目的,本發明的技術方案是這樣實現的:
一種報文傳輸的方法,應用于車載網絡系統,所述車載網絡系統包括網關和多個總線網段,每個所述總線網段包括多個電子控制單元;對于車載網絡系 統中的任意一個總線網段,所述報文傳輸的方法包括:
所述網關獲取待傳輸報文的數量和傳輸周期;
所述網關根據所述待傳輸報文的數量和傳輸周期,確定傳輸時隙t,所述傳輸時隙t為使得每條所述待傳輸報文能夠完整發送出去的時間間隔;
所述網關向所述總線網段中的所述電子控制單元發送時鐘同步命令,所述時鐘同步命令用于使所述總線網段中的所有所述電子控制單元在同一時間啟動計時;
所述電子控制單元計時,當計時到所述傳輸時隙t的起始時刻時,將所述待傳輸報文在所述傳輸時隙t發送,其中,一條所述待傳輸報文在一個所述傳輸時隙t中發送。
進一步的,所述根據所述待傳輸報文的數量和傳輸周期,確定傳輸時隙t,包括:
根據所述待傳輸報文的傳輸周期,將所述待傳輸報文劃分為多個待傳輸報文集合,每個所述待傳輸報文集合中的所述待傳輸報文的傳輸周期相同;
獲取最小的傳輸周期T1,以及所述最小的傳輸周期T1對應的所述待傳輸報文集合;
根據所述最小的傳輸周期T1對應的所述待傳輸報文集合中一條所述待傳輸報文完整發送出去所需要的時長,確定所述傳輸時隙t,所述傳輸時隙t大于所述最小的傳輸周期T1對應的所述待傳輸報文集合中一條所述待傳輸報文完整發送出去所需要的時長,且所述最小的傳輸周期T1對應的所述待傳輸報文集合中所述待傳輸報文的數量a1與所述傳輸時隙t之積小于或等于所述最小的傳輸周期T1。
具體的,所述傳輸時隙t大于或等于所述最小的傳輸周期T1對應的所述待傳輸報文集合中一條所述待傳輸報文完整發送出去所需要的時長的兩倍。
具體的,所述傳輸時隙t≥(1/2)*(T1/a1)。
進一步的,所述將所述待傳輸報文在所述傳輸時隙t發送,包括:
將所述傳輸周期不同的所述待傳輸報文在所述傳輸時隙t間隔發送。
進一步的,所述將所述待傳輸報文在所述傳輸時隙t發送,包括:
獲取所述傳輸周期相同的所述待傳輸報文的優先級,按照優先級由高到低的優先順序依次在所述傳輸時隙t發送所述待傳輸報文。
進一步的,在所述將所述待傳輸報文在所述傳輸時隙發送之后,還包括:
所述電子控制單元檢測所述待傳輸報文在所述傳輸時隙t發送的過程中是否發生傳輸錯誤;
若發生傳輸錯誤,則檢測當前所述傳輸時隙t的剩余時長是否能夠完整發送錯誤幀;
若當前所述傳輸時隙t的剩余時長能夠完整發送錯誤幀,則發送所述錯誤幀。
進一步的,在發送所述錯誤幀之后,還包括:
檢測當前所述傳輸時隙t的剩余時長是否能夠完整發送發生傳輸錯誤時發送的所述待傳輸報文;
若當前所述傳輸時隙t的剩余時長能夠完整發送發生傳輸錯誤時發送的所述待傳輸報文,則重新發送發生傳輸錯誤時發送的所述待傳輸報文。
相對于現有技術,本發明所述的報文傳輸的方法具有以下優勢:
本發明所述的報文傳輸的方法,利用待傳輸報文的數量和傳輸周期,確定傳輸時隙t,并使得同一總線網段中的所有電子控制單元在同一時間開啟計時,保持計時同步,當計時到傳輸時隙t時,電子控制單元安排待傳輸報文在傳輸時隙t發送,從而在已經確定的傳輸時隙t中發送待傳輸報文,接收待傳輸報文的電子控制單元能夠從確定的傳輸時隙t中接收待傳輸報文,避免了現有技術中電子控制單元無法在準確的時段接收待傳輸報文的情況,與現有技術中的傳輸報文的方法相比,本發明能夠在降低報文丟失率的基礎上,將待傳輸報文合理安排在傳輸時隙t中發送,提高了總線網段的負載率,從而提高了總線網段的利用率。
本發明的另一目的在于提出一種車載網絡系統,以在保證報文丟失率較低的基礎上,提高總線網段的利用率。
為達到上述目的,本發明的技術方案是這樣實現的:
一種車載網絡系統,所述車載網絡系統包括網關和多個總線網段,每個所述總線網段包括多個所述電子控制單元;
其中,所述網關用于獲取待傳輸報文的數量和傳輸周期;以及根據所述待傳輸報文的數量和傳輸周期,確定傳輸時隙t,所述傳輸時隙t為使得每條所述待傳輸報文能夠完整發送出去的時間間隔;以及向所述總線網段中的所述電子控制單元發送時鐘同步命令,所述時鐘同步命令用于使所述總線網段中的所有所述電子控制單元在同一時間啟動計時;
所述電子控制單元用于計時,當計時到所述傳輸時隙t的起始時刻時,將所述待傳輸報文在所述傳輸時隙t發送,其中,一條所述待傳輸報文在一個所述傳輸時隙t中發送。
相對于現有技術,本發明所述的車載網絡系統具有以下優勢:
所述車載網絡系統與上述報文傳輸的方法相對于現有技術所具有的優勢相同,在此不再贅述。
本發明的另一目的在于提出一種車輛,以在保證報文丟失率較低的基礎上,提高總線網段的利用率。
為達到上述目的,本發明的技術方案是這樣實現的:
一種車輛,所述車輛安裝有上述技術方案中所述的車載網絡系統。
相對于現有技術,本發明所述的車輛具有以下優勢:
所述車輛與上述車載網絡系統相對于現有技術所具有的優勢相同,在此不再贅述。
附圖說明
構成本發明的一部分的附圖用來提供對本發明的進一步理解,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
圖1為本發明實施例一所述的報文傳輸的方法的流程圖;
圖2為本發明實施例二所述的報文傳輸的方法的流程圖;
圖3為本發明實施例二中的待傳輸報文占用傳輸時隙的示意圖;
圖4為本發明實施例三所述的報文傳輸的方法的流程圖;
圖5為本發明實施例四所述的車載網絡系統的結構示意圖。
附圖標記說明:
20-車載網絡系統, 21-網關,
22-總線網段, 23-電子控制單元。
具體實施方式
需要說明的是,在不沖突的情況下,本發明中的實施例及實施例中的特征可以相互組合。
下面將參考附圖并結合實施例來詳細說明本發明。
本發明提供的報文傳輸的方法應用于車載網絡系統,其中,車載網絡系統包括網關和多個總線網段,車輛可以劃分為多個區域,每個區域對應一個總線網段,比如,將車輛劃分為動力區域、舒適區域、新能源區域以及輔助區域等區域,總線也可以分為動力總線網段、車身總線網段、舒適總線網段、新能源總線網段以及輔助總線網段等總線網段;每個總線網段包括多個電子控制單元,網關與每個總線網段中的多個電子控制單元之間能夠進行通信。
實施例一
請參閱圖1,本發明實施例提供了一種報文傳輸的方法,下面以車載網絡系統中任意一個總線網段為例進行說明,該方法包括:
步驟101,網關獲取待傳輸報文的數量和傳輸周期;其中,各個待傳輸報文的傳輸周期可能相同,也可能不同。在網關獲取待傳輸報文的數量和傳輸周期之前,需要喚醒網關,其中可以通過電源喚醒方式或電子控制單元喚醒方式來喚醒網關,電源喚醒方式即電源為網關上電,上電后,網關即被喚醒;電子控制單元喚醒方式即由電子控制單元作為喚醒源,向網關發送喚醒命令,網關接收喚醒命令后即被喚醒。
步驟102,網關根據待傳輸報文的數量和傳輸周期,確定傳輸時隙t;傳輸時隙t為使得每條待傳輸報文能夠完整發送出去的時間間隔,在傳輸時隙t這段時間間隔中能夠將一條待傳輸報文完整的發送出去,具體傳輸時隙t的設置根據實際情況中待傳輸報文的數量和傳輸周期而定,具體制定方法將在后續實施例中詳細說明。
步驟103,網關向總線網段中的所有電子控制單元發送時鐘同步命令;時鐘同步命令用于使得總線網段中的電子控制單元在同一時間啟動計時;在網關向總線網段中的電子控制單元發送時鐘同步命令后,各個電子控制單元在接收到時鐘同步命令后,均向網關做出響應,該總線網段中的所有電子控制單元均向網關做出響應后,電子控制單元在約定的同一時間啟動計時,從而保證同一總線網段中的電子控制單元在時間線上保持同步,從而便于在后續步驟中各個電子控制單元能夠同步待傳輸報文發送的傳輸時隙。
步驟104,電子控制單元計時,當計時到傳輸時隙t的起始時刻時,將待傳輸報文在傳輸時隙t發送;其中,一條待傳輸報文在一個傳輸時隙t中發送,當有多條待傳輸報文需要發送時,上述多條待傳輸報文分別在多個傳輸時隙t中發送,比如,相鄰的三個傳輸時隙中,在第一個傳輸時隙中發送待傳輸報文b1,在第二個傳輸時隙中發送待傳輸報文b2,在第三個傳輸時隙中發送待傳輸報文b3。由于總線網段中的各個電子控制單元的計時是同步的,所以,各個電子控制單元均可以得知待傳輸報文發送的傳輸時隙t的具體時間段,從而能夠準確接收到被發送的待傳輸報文,并且由于將能夠用于發送待傳輸報文的時間段分為多個傳輸時隙t,且每個傳輸時隙t中均可以發送一條待傳輸報文,充分的利用了用于發送待傳輸報文的時間段,提高了總線網段的負載率。
本發明所述的報文傳輸的方法,利用待傳輸報文的數量和傳輸周期,確定傳輸時隙t,并使得同一總線網段中的所有電子控制單元在同一時間開啟計時,保持計時同步,當計時到傳輸時隙t時,電子控制單元安排待傳輸報文在傳輸時隙t發送,從而在已經確定的傳輸時隙t中發送待傳輸報文,接收待傳輸報文的電子控制單元能夠從確定的傳輸時隙t中接收待傳輸報文,避免了現有技術 中電子控制單元無法在準確的時段接收待傳輸報文的情況,與現有技術中的傳輸報文的方法相比,本發明能夠在降低報文丟失率的基礎上,將待傳輸報文合理安排在傳輸時隙t中發送,提高了總線網段的負載率,從而提高了總線網段的利用率。
實施例二
請參閱圖2,進一步的,為了詳細說明具體如何確定傳輸時隙,實施例一中的步驟102能夠細化為步驟1021-步驟1023;并且,為了更有規律的在傳輸時隙發送待傳輸報文,且便于編程實現,實施例一中的步驟104能夠細化為步驟1041和/或步驟1042,下面將詳細介紹步驟1021-步驟1023以及步驟1041和步驟1042的具體內容:
步驟1021,網關根據待傳輸報文的傳輸周期,將待傳輸報文劃分為多個待傳輸報文集合;每個待傳輸報文集合中的待傳輸報文的傳輸周期相同,不同待傳輸報文集合中的待傳輸報文的傳輸周期不同;比如,將動力總線網段中的待傳輸報文按照傳輸周期劃分,得到傳輸周期為T1的待傳輸報文集合A,待傳輸報文集合A中共有待傳輸報文a1條,傳輸周期為T2的待傳輸報文集合B,待傳輸報文集合B中共有待傳輸報文a2條,以此類推,直至傳輸周期為Tn的待傳輸報文集合X,待傳輸報文集合X中共有待傳輸報文an條,其中,T1<T2<…<Tn。
步驟1022,網關獲取最小的傳輸周期T1,以及最小的傳輸周期T1對應的待傳輸報文集合;在步驟1021中得到的各個不同的傳輸周期中,在其中獲取最小的傳輸周期T1,以及該傳輸周期T1對應的待傳輸報文集合,以最小的傳輸周期T1以及該最小的傳輸周期T1對應的待傳輸報文集合作為確定傳輸時隙t的參數。
步驟1023,網關根據最小的傳輸周期T1對應的待傳輸報文集合中一條待傳輸報文完整發送出去所需要的時長,確定傳輸時隙t;其中,傳輸時隙t大于最小的傳輸周期T1對應的待傳輸報文集合中一條待傳輸報文完整發送出去所需要的時長,且最小的傳輸周期T1對應的待傳輸報文集合中待傳輸報文的數量a1 與傳輸時隙t之積小于或等于最小的傳輸周期T1;任意兩條傳輸周期相同的待傳輸報文完整發送出去的時間是相同的,為了最大可能的保證總線網段中的各條待傳輸報文均能夠完整的發送出去,選用傳輸周期T1對應的待傳輸報文集合中一條待傳輸報文完整發送出去所需要的時長作為參考標準,傳輸時隙t至少要大于傳輸周期T1對應的待傳輸報文集合中一條待傳輸報文完整發送出去所需要的時長,同時,也需要保證傳輸周期相同的待傳輸報文全部完整發送出去所花費的時間要小于傳輸周期,因此最小的傳輸周期T1對應的待傳輸報文集合中待傳輸報文的數量a1與傳輸時隙t之積小于或等于最小的傳輸周期T1,即t*a1≤T1。比如,傳輸周期為10ms的待傳輸報文在動力總線網段中共有20條,且發送每一條待傳輸報文需要240μs,傳輸時隙的范圍一般為250μs至500μs。
進一步地,由于在發送待傳輸報文的過程中可能會發生錯誤,此時需要發送錯誤幀來告知待傳輸報文發送出現錯誤,完整發送錯誤幀所需要的時長,基本等于或小于最小的傳輸周期T1對應的待傳輸報文集合中一條待傳輸報文完整發送出去所需要的時長,因此,為了在傳輸時隙中能夠預留出足夠的時間為錯誤幀等其他類型的報文使用,傳輸時隙t大于或等于最小的傳輸周期T1對應的待傳輸報文集合中一條所述待傳輸報文完整發送出去所需要的時長的兩倍。
在具體操作中,為了方便計算得到傳輸時隙t,可以選取傳輸時隙t≥(1/2)*(T1/a1),T1為最小的傳輸周期,a1為最小的傳輸周期T1對應的待傳輸報文集合中待傳輸報文的數量。
步驟1041,電子控制單元計時,當計時到傳輸時隙t的起始時刻時,將傳輸周期不同的待傳輸報文在傳輸時隙間隔t發送;比如,在第一個傳輸時隙中發送一條傳輸周期為T1的待傳輸報文,在第二個傳輸時隙中發送一條傳輸周期為T2的待傳輸報文。下面將通過一個具體的例子來進行說明:請參閱圖3,圖3中的每一個小方格均為一個傳輸時隙t,不同傳輸周期的待傳輸報文間隔占用傳輸時隙t發送,每隔一個傳輸時隙t,發送一條待傳輸報文集合A中的待傳輸 報文;每隔三個傳輸時隙t,發送一條待傳輸報文集合B中的待傳輸報文;每隔七個傳輸時隙t,發送一條待傳輸報文集合C中的待傳輸報文;每隔三十九個傳輸間隙t,發送一條待傳輸報文集合D中的待傳輸報文;其余的待傳輸報文集合中的待傳輸報文的發送規律與上述內容類似,在此不再贅述。需要說明的是,若在應該發送某個待傳輸報文集合中的待傳輸報文的傳輸時隙t中,但已經沒有需要發送的該待傳輸報文集合中的待傳輸報文時,設置該傳輸時隙t空閑。而且,為了能夠靈活的安排不同的待傳輸報文集合中的待傳輸報文占用的傳輸時隙t,也可以設置無待傳輸報文的傳輸時隙t。
步驟1042,電子控制單元計時,當計時到傳輸時隙t的起始時刻時,獲取傳輸周期相同的待傳輸報文的優先級,按照優先級由高到低的優先順序依次在傳輸時隙t發送待傳輸報文;即先發送優先級高的待傳輸報文,后發送優先級低的待傳輸報文。比如,請參閱圖3,第一個傳輸時隙、第三個傳輸時隙和第五個傳輸時隙均用來發送待傳輸報文集合A中的待傳輸報文,其中,第一個傳輸時隙用來發送待傳輸報文集合A中優先級第一高的待傳輸報文,第三個傳輸時隙用來發送待傳輸報文集合A中優先級第二高的待傳輸報文,第五個傳輸時隙用來發送待傳輸報文集合A中優先級第三高的待傳輸報文,以此類推。同理,第二個傳輸時隙、第六個傳輸時隙、第十個傳輸時隙均用來發送待傳輸報文集合B中的待傳輸報文,第二個傳輸時隙用來發送待傳輸報文集合B中優先級第一高的待傳輸報文,第六個傳輸時隙用來發送待傳輸報文集合B中優先級第二高的待傳輸報文,第十個傳輸時隙用來發送待傳輸報文集合B中優先級第三高的待傳輸報文,以此類推。
需要說明的是,也可以將步驟1041和步驟1042的內容結合起來,將傳輸周期不同的待傳輸報文在傳輸時隙t間隔發送的基礎上,按照優先級由高到低的優先順序依次在傳輸時隙t發送傳輸周期相同的待傳輸報文。
利用本發明中實施例一和實施例二中的傳輸報文的方法,能夠提升總線網段的負載率,設一條待傳輸報文的長度為Lf,總線傳輸速率為Sbus,位速率為Sbit,發送一條待傳輸報文使用的時長為tf,總線網段的負載率為BL,則總線網 段的負載率計算公式為其中Sbit=Sbus×10-3,m為待傳輸報文集合的個數,也就是說待傳輸報文的傳輸周期有m種,p為與傳輸周期對應的待傳輸報文集合中的待傳輸報文的數量,假設動力總線網段中,傳輸周期為10ms的待傳輸報文有20條,傳輸周期為20ms的待傳輸報文有20條,傳輸周期為50ms的待傳輸報文有10條,傳輸周期為100ms的待傳輸報文有10條,傳輸周期為200ms的待傳輸報文有10條,傳輸周期為500ms的待傳輸報文有10條,利用現有技術中的報文傳輸的方法,該總線網段的負載率約為80%,且由于80%遠遠超過了40%,因此待傳輸報文丟失率較高;而利用本發明的傳輸報文的方法,該總線網段的負載率約為92%,且待傳輸報文的丟失率極低;與現有技術相比,本發明大大提高了總線網段的負載率,從而提高了總線網段的利用率。
實施例三
請參閱圖4,為了進一步降低待傳輸報文發送過程中的丟失率以及錯誤率,在實施例一的基礎上,在步驟104之后還可以添加步驟105-步驟109,下面將詳細說明步驟105-步驟109的內容:
步驟105,電子控制單元檢測待傳輸報文在傳輸時隙t發送的過程中是否發生傳輸錯誤;待傳輸報文發送過程中可能會出現傳輸錯誤,電子控制單元在傳輸時隙中已經將與該傳輸時隙對應的待傳輸報文發送完畢的時刻,檢測與該傳輸時隙對應的待傳輸報文是否發生傳輸錯誤,若發生傳輸錯誤則執行步驟106,若沒有發生傳輸錯誤,則繼續計時,等待下一個傳輸時隙的到來,在下一個傳輸時隙中發送下一條待傳輸報文。
步驟106,若發生傳輸錯誤,則檢測當前傳輸時隙t的剩余時長是否能夠完整發送錯誤幀;錯誤幀用于在總線網段中廣播,表示待傳輸報文發送過程中出現了傳輸錯誤。獲取完整發送錯誤幀的時長和當前傳輸時隙t的時長,當前傳輸時隙t與發送對應于該傳輸時隙的待傳輸報文所耗用的時長之差為當前傳輸時隙t的剩余時長,若當前傳輸時隙t的剩余時長能夠完整發送錯誤幀,則執行 步驟107,若當前傳輸時隙t的剩余時長不能夠完整發送錯誤幀,則結束當前傳輸時隙t對應的待傳輸報文的生命周期。
步驟107,若當前傳輸時隙t的剩余時長能夠完整發送錯誤幀,則發送錯誤幀。
步驟108,檢測當前傳輸時隙t的剩余時長是否能夠完整發送發生傳輸錯誤時發送的待傳輸報文;為了減低待傳輸報文發送過程中的錯誤率,在傳輸時隙t的時長允許的情況下,需要重新發送發生傳輸錯誤時發送的待傳輸報文,即重新發送該傳輸時隙t對應的待傳輸報文;當前傳輸時隙t的時長減去第一次發送對應于該傳輸時隙的待傳輸報文所耗用的時長后,再減去發送錯誤幀所耗用的時長,能夠得到當前傳輸時隙的剩余時長,若當前傳輸時隙t的剩余時長不能夠完整發送發生傳輸錯誤時發送的待傳輸報文,則不再重新發送發生傳輸錯誤時發送的待傳輸報文。
步驟109,若當前傳輸時隙t的剩余時長能夠完整發送發生傳輸錯誤時發送的待傳輸報文,則重新發送發生傳輸錯誤時發送的待傳輸報文。
實施例四
請參閱圖5,本發明實施例提供了一種車載網絡系統20,車載網絡系統20包括網關21和多個總線網段22,每個總線網段22包括多個電子控制單元23;其中,網關21用于獲取待傳輸報文的數量和傳輸周期;根據待傳輸報文的數量和傳輸周期,確定傳輸時隙t,傳輸時隙t為使得每條待傳輸報文能夠完整發送出去的時間間隔;向總線網段22中的電子控制單元23發送時鐘同步命令,時鐘同步命令用于使得總線網段23中的電子控制單元23在同一時間啟動計時;電子控制單元23用于計時,并將待傳輸報文在傳輸時隙t發送,其中,一條待傳輸報文在一個傳輸時隙t中發送。
本發明實施例中的車載網絡系統應用上述實施例中的傳輸報文的方法來發送待傳輸報文,故所述車載網絡系統與上述實施例中的傳輸報文的方法相對與現有技術所具有的優勢相同,在此不再贅述。
實施例五
本發明實施例還提供了一種車輛,所述車輛安裝有上述實施例中的車載網絡系統,故所述車輛與上述實施例中的車載網絡系統相對于現有技術所具有的優勢相同,在此不再贅述。
本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于車載網絡系統和車輛的實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。