本發明涉及報文傳輸技術領域,尤其涉及報文發送方法、系統及裝置。
背景技術:
can(controllerareanetwork,控制器局域網)通信是汽車常用的通信方式。一條can總線上通常會有多個can節點,當多個can設備同時向總線發送數據時,部分設備由于搶占不到總線,會出現報文延遲或丟幀,同時發送報文的can設備越多時,情況越嚴重。對于電動車主從式bms(batterymanagementsystem,電池管理系統)來說,上電后多個從板向主板發送電池數據,數據量大,報文周期短,上電后會出現個別can設備較長時間才能將報文發送到總線的問題,所以需要一種can報文的發送機制,使多個can設備發送時間錯開。
目前,在主從式bms中,通常使用的通信機制有如下兩種:
一、上電默認發送機制:從板上電后,各自以自己的報文周期向總線發送報文。這種機制在從板數量較少時,不會對通信產生影響,隨著從板數量增多,報文周期變短,丟幀或數據延遲的問題出現。
二、點名機制:由主板發送點名報文,被點名的從板將數據發送至can總線。這種機制的數據傳送效率比較低,用于總線上can設備比較少,報文周期較長的情形。當總線上can設備較多,要求發送報文周期較短時,這種機制是無法完成數據傳送任務的。
三、每個can設備在上電后延遲固定時間后,再向總線發送報文。例如:1號從板上電延時3ms后發送報文,2號從板上電延時6ms后發送報文,以此類推。每個設備都以固定的報文周期發送數據,這時總線上的報文會按時間分布開,每3ms有一個設備發送數據。這種機制需要每個從板燒寫不同的代碼,不利于生產和維護。另外,由于從板硬件的個體差異性,硬件上電時間存在一定差異,總線上出現的報文間距很難保持3ms,不完全排除同時發送的情況。
技術實現要素:
本發明提供報文發送方法、系統及裝置,以避免報文在can總線上沖突,并提高報文在can總線上的傳送效率。
本發明的技術方案是這樣實現的:
一種報文發送方法,應用于包含一個主板和多個從板的通信系統中,且主板和從板之間通過控制器局域網can總線連接,該方法包括:
主板周期性地在can總線上廣播can同步報文;
從板接收到主板廣播的can同步報文時,根據自己的同步延遲時長,延遲該同步延遲時長后通過can總線向主板發送報文,其中,各從板的同步延遲時長互不相同,且都小于can同步報文的廣播周期。
所述從板接收到主板廣播的can同步報文時,啟動一定時器,該定時器的定時時長等于自己的同步延遲時長,
且所述從板延遲該同步延遲時長后通過can總線向主板發送報文包括:
從板在所述定時器到時時,通過can總線向主板發送報文。
所述從板接收到主板廣播的can同步報文之后、延遲該同步延遲時長后通過can總線向主板發送報文之前進一步包括:
所述從板將預設的單位同步延遲時長與自己的編號的乘積作為自己的同步延遲時長,其中,各個從板的編號為:按照從1開始,依次遞增1的規則分配的。
所述通信系統為電動汽車的電池管理系統bms。
一種報文發送系統,包括:一個主板和多個從板,且主板和從板之間通過can總線連接,
主板:周期性地在can總線上廣播can同步報文;
從板:接收到主板廣播的can同步報文時,根據自己的同步延遲時長,延遲該同步延遲時長后通過can總線向主板發送報文,其中,各從板的同步延遲時長互不相同,且都小于can同步報文的廣播周期。
所述從板接收到主板廣播的can同步報文之后、延遲該同步延遲時長后通過can總線向主板發送報文之前進一步用于,
將預設的單位同步延遲時長與自己的編號的乘積作為自己的同步延遲時長,其中,各個從板的編號為:按照從1開始,依次遞增1的規則分配的。
所述主板和從板位于電動汽車的電池管理系統bms中。
一種報文發送裝置,位于包含一個主板和多個從板的通信系統中的從板上,且從板和主板之間通過can總線連接,該裝置包括:
同步報文接收模塊:接收主板廣播的can同步報文,其中,can同步報文為主板周期性地在can總線上廣播的;
發送模塊:當同步報文接收模塊接收到主板廣播的can同步報文時,根據本板的同步延遲時長,延遲該同步延遲時長后通過can總線向主板發送報文,其中,各從板的同步延遲時長互不相同,且都小于can同步報文的廣播周期。
所述發送模塊在同步報文接收模塊接收到主板廣播的can同步報文時,啟動一定時器,該定時器的定時時長等于本板的同步延遲時長,
且所述發送模塊延遲該同步延遲時長后通過can總線向主板發送報文包括:
在所述定時器到時時,通過can總線向主板發送報文。
所述發送模塊在同步報文接收模塊接收到主板廣播的can同步報文之后、延遲該同步延遲時長后通過can總線向主板發送報文之前進一步用于,
將預設的單位同步延遲時長與本板的編號的乘積作為本板的同步延遲時長,其中,各個從板的編號為:按照從1開始,依次遞增1的規則分配的。
本發明中,每個從板都以主板廣播的can同步報文為基準,在不同的時間向can總線發出報文,從而避免了報文在can總線上沖突;且報文傳送效率高,也無需每個從板分別維護不同的代碼版本。
附圖說明
圖1為本申請一實施例提供的報文發送方法流程圖;
圖2為本申請另一實施例提供的報文發送方法流程圖;
圖3為本申請實施例提供的報文發送系統的組成示意圖;
圖4為本申請實施例提供的報文發送裝置的組成示意圖。
具體實施方式
下面結合附圖及具體實施例對本發明再作進一步詳細的說明。
圖1為本申請一實施例提供的報文發送方法流程圖,該方法應用于包含一個主板和多個從板的通信系統中,且主板和從板之間通過can總線連接,其具體步驟如下:
步驟101:主板周期性地在can總線上廣播can同步報文。
步驟102:從板接收到主板廣播的can同步報文時,根據自己的同步延遲時長,延遲該同步延遲時長后通過can總線向主板發送報文,其中,各從板的同步延遲時長互不相同,且都小于can同步報文的廣播周期。
在實際應用中,步驟102中,從板接收到主板廣播的can同步報文時,可啟動一定時器,該定時器的定時時長等于自己的同步延遲時長;且從板在定時器到時時,通過can總線向主板發送報文。
另外,在實際應用中,可預先按照:從1開始,依次遞增1的規則為各從板分配編號,即為各從板依次分配編號:1、2、3、4、…;并預設一個單位同步延遲時長,例如:3ms;步驟102中,從板接收到主板廣播的can同步報文時,將預設的單位同步延遲時長與自己的編號的乘積作為自己的同步延遲時長。例如:從板1將3ms*1作為自己的同步延遲時長,從板2將3ms*2作為自己的同步延遲時長,…,這樣,從板1在接收到can同步報文時,延遲3ms后向主板發送報文,從板2在接收到can同步報文時,延遲6ms后向主板發送報文,…。
本申請適用的通信系統包括儲能系統如:電動汽車的bms等。
從板向主板發送的報文中包含:從板的運行狀態、運行參數等信息。例如:對于bms,從板向主板發送的報文中包含:電池單體電壓、電池監測點溫度、從板運行狀態等等。
圖2為本申請另一實施例提供的報文發送方法流程圖,該方法應用于包含一個主板和多個從板的通信系統中,且主板和從板之間通過can總線連接,其具體步驟如下:
步驟201:預先按照:從1開始,依次遞增1的規則為各從板分配編號,且預先在每個從板上配置單位同步延遲時長,其中,單位同步延遲時長*從板的最大編號<主板的can同步報文廣播周期。
步驟202:主板上電后,周期性地在can總線上廣播can同步報文。
步驟203:任一從板上電后,等待主板通過can總線廣播的can同步報文。
步驟204:當從板接收到can同步報文時,將單位同步延遲時長與自己的編號的乘積作為自己的同步延遲時長,延遲該同步延遲時長后,通過can總線向主板發送報文。
例如:設單位同步延遲時長為3ms,主板每100ms廣播一次can同步報文,則,編號為1的從板接收到can同步報文時,延遲3ms后發送報文;編號為2的從板接收到can同步報文時,延遲6ms后發送報文;編號為3的從板接收到can同步報文時,延遲9ms后發送報文;以此類推。
本申請的有益技術效果如下:
每個從板都以主板廣播的can同步報文為基準,在不同的時間向can總線發出報文,從而避免了報文在can總線上沖突;且報文傳送效率高,也無需每個從板分別維護不同的代碼版本。
圖3為本申請實施例提供的報文發送系統的組成示意圖,該系統包括:一個主板31和多個從板321~32n(n為整數且n>1),且主板和從板之間通過can總線連接,其中:
主板31:周期性地在can總線上廣播can同步報文。
從板321~32n:當接收到主板廣播的can同步報文時,根據自己的同步延遲時長,延遲該同步延遲時長后通過can總線向主板發送報文,其中,各從板的同步延遲時長互不相同,且都小于can同步報文的廣播周期。
一實施例中,從板321~32n接收到主板廣播的can同步報文之后、延遲該同步延遲時長后通過can總線向主板發送報文之前進一步用于,
將預設的單位同步延遲時長與自己的編號的乘積作為自己的同步延遲時長,其中,各個從板的編號為:按照從1開始,依次遞增1的規則分配的。
一實施例中,主板31和從板321~32n位于電動汽車的bms中。
圖4為本申請實施例提供的報文發送裝置的組成示意圖,該裝置位于包含一個主板和多個從板的通信系統中的從板上,且從板和主板之間通過can總線連接,該裝置主要包括:同步報文接收模塊41和發送模塊42,其中:
同步報文接收模塊41:當接收到主板廣播的can同步報文時,通知發送模塊42,其中,can同步報文為主板周期性地在can總線上廣播的。
發送模塊42:當同步報文接收模塊41接收到主板廣播的can同步報文時,根據本板的同步延遲時長,延遲該同步延遲時長后通過can總線向主板發送報文,其中,各從板的同步延遲時長互不相同,且都小于can同步報文的廣播周期。
一實施例中,發送模塊42在同步報文接收模塊接收到主板廣播的can同步報文時,啟動一定時器,該定時器的定時時長等于本板的同步延遲時長,
且發送模塊42延遲該同步延遲時長后通過can總線向主板發送報文包括:在所述定時器到時時,通過can總線向主板發送報文。
一實施例中,發送模塊42在同步報文接收模塊41接收到主板廣播的can同步報文之后、延遲該同步延遲時長后通過can總線向主板發送報文之前進一步用于,
將預設的單位同步延遲時長與本板的編號的乘積作為本板的同步延遲時長,其中,各個從板的編號為:按照從1開始,依次遞增1的規則分配的。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。