一種控制器局域網絡can總線報文的發送方法及裝置的制造方法
【技術領域】
[0001] 本發明涉及汽車領域,尤其是涉及一種控制器局域網絡CAN總線報文的發送方法 及裝置。
【背景技術】
[0002] 隨著汽車上電子功能的增多,控制器局域網絡CAN總線上節點數量也越來越多, CAN總線負載率也隨之增高。CAN總線采用事件觸發方式的通訊方式,其中,當CAN總線上的 某一個節點需要發送報文時,該節點可以準備向CAN總線上發送報文,如果此時CAN總線上 沒有報文正在發送,且同時也沒有比該節點上準備發送的報文優先級高的報文也在準備發 送,那么該節點上的報文就能夠得到發送。但是,如果CAN總線上一直有報文在發送,或者有 很多優先級更高的報文也在等待發送,那么該節點上的報文只能等這些高優先級的報文發 送完之后再發送,從而導致該節點上的報文發送延遲。如圖1所示,為現有技術中各個節點 在不同時刻向CAN總線發送報文的示意圖。在圖1中,節點A、B、C和D在不同時刻分別向CAN總 線發送標識為5、7、3和6的報文,參見圖1可以看到,B節點上標識為7的報文雖然發送時間較 早,但由于標識為7的報文優先級比其他節點上的報文優先級低,因此該標識為7的報文發 送到CAN總線上的時間延遲最多。
[0003] 綜上所述,基于事件觸發的通訊方式,當CAN總線上有很多高優先級的報文準備發 送時,低優先級的報文從準備發送到發送完成則會有一個比較長的時間延遲,該時間延遲 是基于事件觸發的通訊方式所不可避免的問題。
【發明內容】
[0004] 為了解決CAN總線上報文發送延遲的問題,本發明提供了一種控制器局域網絡CAN 總線報文的發送方法及裝置。
[0005] 為了解決上述技術問題,本發明提供了一種控制器局域網絡CAN總線報文的發送 方法,應用于CAN控制器,所述發送方法包括:
[0006] 根據CAN總線上所有節點的報文發送周期,確定CAN總線上所有節點發送報文的公 共時鐘周期,所述公共時鐘周期為CAN總線上所有節點的報文發送周期的最小公倍數的整 數倍;
[0007] 根據所述所有節點的報文發送周期和所述公共時鐘周期,配置每一節點在各自報 文發送周期內的報文發送時段,其中,任意兩個節點的報文發送時段均沒有重疊部分;
[0008] 將所述公共時鐘周期發送至CAN總線上報文發送優先級最高的第一節點,以使所 述第一節點根據所述公共時鐘周期周期性的向所述CAN總線上的其他節點發送用于節點時 鐘同步的同步報文,并根據所述同步報文與所述其他節點同步時鐘;
[0009] 將每一節點在各自報文發送周期內的報文發送時段發送至CAN總線上的對應節 點,以使所述對應節點根據所述報文發送時段和報文發送周期發送報文。
[0010] 可選的,所述根據CAN總線上每一節點的報文發送周期,獲取CAN總線上所有節點 發送報文的公共時鐘周期之前,所述發送方法還包括:接收CAN總線上每一節點上報的報文 發送周期。
[0011] 可選的,所述根據CAN總線上所有節點的報文發送周期,確定CAN總線上所有節點 發送報文的公共時鐘周期,具體為:根據所述CAN總線上所有節點的報文發送周期,計算所 有節點的報文發送周期的最小公倍數;將計算得到的所述最小公倍數的整數倍數值設置為 CAN總線上所有節點發送報文的公共時鐘周期。
[0012] 依據本發明的另一個方面,本發明還提供了一種控制器局域網絡CAN總線報文的 發送方法,應用于CAN總線上報文發送優先級最高的第一節點,所述發送方法包括:
[0013] 接收CAN控制器發送的公共時鐘周期,其中,所述公共時鐘周期為CAN總線上所有 節點的報文發送周期的最小公倍數的整數倍;
[0014]根據所述公共時鐘周期,周期性的向所述CAN總線上的其他節點發送用于節點時 鐘同步的同步報文,并根據所述同步報文與所述其他節點同步時鐘;
[0015] 接收CAN控制器發送的所述第一節點的報文發送時段,其中,任意兩個節點的報文 發送時段均沒有重疊部分;
[0016] 在需要發送報文時,根據所述報文發送時段和所述報文發送周期發送報文。
[0017] 可選的,所述接收CAN控制器發送的公共時鐘周期之前,所述發送方法還包括:將 所述第一節點的報文發送周期上報至CAN控制器。
[0018] 依據本發明的另一個方面,本發明還提供了一種控制器局域網絡CAN總線報文的 發送方法,應用于CAN總線上除報文發送優先級最高的第一節點外的其他節點,所述發送方 法包括:
[0019] 接收第一節點周期性發送的用于節點時鐘同步的同步報文,并根據所述同步報文 與所述第一節點同步時鐘;
[0020] 接收CAN總線發送的所述其他節點的報文發送時段,其中,任意兩個節點的報文發 送時段均沒有重疊部分;
[0021] 在需要發送報文時,根據所述報文發送時段和所述報文發送周期發送報文。
[0022] 可選的,所述接收第一節點周期性發送的用于節點時鐘同步的同步報文之前,所 述發送方法還包括:將所述其他節點的報文發送周期上報至CAN控制器。
[0023] 依據本發明的另一個方面,本發明還提供了一種控制器局域網CAN總線報文的發 送裝置,應用于CAN控制器,所述發送裝置包括:
[0024] 確定模塊,用于根據CAN總線上所有節點的報文發送周期,確定CAN總線上所有節 點發送報文的公共時鐘周期,所述公共時鐘周期為CAN總線上所有節點的報文發送周期的 最小公倍數的整數倍;
[0025] 配置模塊,用于根據所述所有節點的報文發送周期和所述公共時鐘周期,配置每 一節點在各自報文發送周期內的報文發送時段,其中,任意兩個節點的報文發送時段均沒 有重疊部分;
[0026] 第一發送模塊,用于將所述公共時鐘周期發送至CAN總線上報文發送優先級最高 的第一節點,以使所述第一節點根據所述公共時鐘周期周期性的向所述CAN總線上的其他 節點發送用于節點時鐘同步的同步報文,并根據所述同步報文與所述其他節點同步時鐘;
[0027] 第二發送模塊,用于將每一節點在各自報文發送周期內的報文發送時段發送至 CAN總線上的對應節點,以使所述對應節點根據所述報文發送時段和報文發送周期發送報 文。
[0028] 可選的,所述發送裝置還包括:第一接收模塊,用于接收CAN總線上每一節點上報 的報文發送周期。
[0029] 可選的,所述確定模塊具體用于,根據所述CAN總線上所有節點的報文發送周期, 計算所有節點的報文發送周期的最小公倍數;將計算得到的所述最小公倍數的整數倍數值 設置為CAN總線上所有節點發送報文的公共時鐘周期。
[0030] 依據本發明的另一個方面,本發明還提供了一種控制器局域網CAN總線報文的發 送裝置,應用于CAN總線上報文發送優先級最高的第一節點,所述發送裝置包括:
[0031] 第二接收模塊,用于接收CAN控制器發送的公共時鐘周期,其中,所述公共時鐘周 期為CAN總線上所有節點的報文發送周期的最小公倍數的整數倍;
[0032]第三發送模塊,用于根據所述公共時鐘周期,周期性的向所述CAN總線上的其他節 點發送用于節點時鐘同步的同步報文,并根據所述同步報文與所述其他節點同步時鐘; [0033]第三接收模塊,用于接收CAN控制器發送的所述第一節點的報文發送時段,其中, 任意兩個節點的報文發送時段均沒有重疊部分;
[0034] 第四發送模塊,用于在需要發送報文時,根據所述報文發送時段和所述報文發送 周期發送報文。
[0035] 可選的,所述發送裝置還包括:第五發送模塊,用于將所述第一節點的報文發送周 期上報至CAN控制器。
[0036] 依據本發明的另一個方面,本發明還提供了一種控制器局域網CAN總線報文的發 送裝置,應用于CAN總線上除報文發送優先級最高的第一節點外的其他節點,所述發送裝置 包括:
[0037] 第四接收模塊,用于接收第一節點周期性發送的用于節點時鐘同步的同步報文, 并根據所述同步報文與所述第一節點同步時鐘;
[003