本文作者:kaifamei

BMS系統電池的認證方法、裝置、設備及存儲介質與流程

更新時間:2025-12-25 10:23:17 0條評論

BMS系統電池的認證方法、裝置、設備及存儲介質與流程


bms系統電池的認證方法、裝置、設備及存儲介質
技術領域
1.本技術涉及軟件管理系統技術領域,特別是涉及一種bms系統電池的方法、裝置、設備及存儲介質。


背景技術:



2.目前,bms系統的電池(battery management system),在認定電池是否為原裝時,一般不做驗證或者做簡單協議驗證,其加密驗證僅僅止步于sha1認證。很顯然,一般的驗證無法防止市場上盜版電池的出現,且盜版電池不僅損害了主機廠利益,還對電動摩托甚至汽車的安全行駛帶來巨大隱患,侵害消費者的人身安全。


技術實現要素:



3.本技術主要解決的技術問題是提供一種bms系統電池的方法、裝置、設備及存儲介質,能夠解決bms系統電池的認證原裝電池問題,防止非法軟硬件盜版侵權問題。
4.為解決上述技術問題,本技術采用的一個技術方案是:提供一種bms系統電池的認證方法,所述認證方法包括:計算電路板的第一密鑰,所述第一密鑰包括實時時間信息;接收來自上位機的第二密鑰;判斷所述第一密鑰和所述第二密鑰是否匹配;若匹配,則建立和所述電池的連接。
5.其中,所述計算所述電路板的第一密鑰,進一步包括:獲取所述電路板的初始私鑰,所述初始私鑰為預設字節長度的第一數組;獲取所述電路板上高精度時鐘的實時時間;根據所述初始私鑰及所述實時時間得到所述電路板的第一密鑰。
6.其中,所述根據所述初始私鑰及所述實時時間得到所述電路板的第一密鑰,進一步包括:獲取預設字節長度的第二數組;將所述第二數組和所述初始私鑰中的部分字節進行邏輯運算以得到中間值,并將所述第二數組中的所述部分字節替換為所述中間值,以得到所述第二數組的擴展數組;將所述實時時間附加到所述擴展數組的右側,以得到第三數組;將所述第三數組進行散列運算,以得到第四數組;對所述第四數組進行抽象處理,以得到抽象數組;根據所述抽象數組計算得到所述第一密鑰。
7.其中,所述將所述第三數組進行散列運算,以得到第四數組,進一步包括:形成一輔助元素數組,并根據所述輔助元素數組計算第一整數;將所述第三數組進行移位運算;判斷進行移位運算后的所述第三數組是否大于預設數值;若大于,則根據所述第一整數計算得到第二整數;形成一緩沖數組,所述緩沖數組中包括第二整數個所述第三數組的元素;形成第一狀態數組,并根據所述第一狀態數組及所述緩沖數組計算以得到所述第四數組。
8.其中,所述形成第一狀態數組,并根據所述第一狀態數組及所述緩沖數組計算以得到第四數組,進一步包括:形成一計算數組,并將所述緩沖數組中的部分起始字節復制進所述計算數組中;形成第一輔助函數及第二輔助函數;根據所述第一輔助函數及所述第二輔助函數構造公共指令以及轉換函數,其中,所述轉換函數包括選擇參數,所述選擇參數用于選擇所述第一輔助函數或所述第二輔助函數對所述計算數組進行計算;根據所述轉換函
數對所述計算數組進行計算,將計算結果與第一狀態數組中的對應的元素進行相加并替換原值以得到第四數組。
9.其中,所述根據所述抽象數組計算得到所述第一密鑰,進一步包括:獲取所述抽象數組中的索引值;根據所述索引值計算中間量;獲取一初始ascii碼數組,所述初始ascii碼數組中包括10位元素;根據所述中間量計算一數字n;獲取和所述數字n對應的ascii字符,并將所述ascii字符放置入所述初始ascii碼數組中,以得到所述第一密鑰
10.其中,所述第一密鑰及所述第二密鑰為十位的數字和字母的組合。
11.為解決上述技術問題,本技術采用的另一個技術方案是:提供一種bms系統電池的認證裝置,所述裝置包括:計算模塊,用于計算電路板的第一密鑰,所述第一密鑰包括實時時間信息;接收模塊,用于接收來自上位機的第二密鑰;判斷模塊,用于判斷所述第一密鑰和所述第二密鑰是否匹配;建立模塊,用于當所述第一密鑰和所述第二密鑰若匹配時,建立和所述電池的連接。
12.為解決上述技術問題,本技術采用的又一個技術方案是:提供一種bms系統電池的認證設備,所述設備包括處理器以及存儲器,所述存儲器存儲有計算機指令,所述處理器耦合所述存儲器,所述處理器在工作時執行所述計算機指令以實現上述任一項所述的bms系統電池的認證方法。
13.為解決上述技術問題,本技術采用的再一個技術方案是:提供一種計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行以實現上述任一項所述的bms系統電池的認證方法。
14.本技術的有益效果是:區別于現有技術的情況,本技術提供一種bms系統電池的方法、裝置、設備及存儲介質,通過計算電路板的第一密鑰,且第一密鑰包括實時時間信息,在接入電芯時通過接收通過上位機傳輸過來的第二密鑰,結合實時時間信息將第一密鑰和第二密鑰進行比對,能夠使得仿造者無法大規模應用破解法來生產未經授權的代用電池,有效解決bms系統電池的認證原裝電池問題,防止非法軟硬件盜版侵權。
附圖說明
15.為了更清楚地說明本技術實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖,其中:
16.圖1是本技術bms系統電池認證方法一實施方式的流程示意圖;
17.圖2是本技術圖1中步驟s100一實施方式的流程示意圖;
18.圖3是本技術圖2中步驟s130一實施方式的流程示意圖;
19.圖4是本技術圖3中步驟s134一實施方式的流程示意圖;
20.圖5是本技術圖3中步驟s136一實施方式的流程示意圖;
21.圖6是本技術bms系統電池認證裝置實施例的結構示意圖;
22.圖7是本技術bms系統電池認證設備實施例的結構示意圖;
23.圖8是本技術提供的計算機可讀存儲介質實施例的示意框圖。
具體實施方式
24.下面將結合本技術實施例中的附圖,對本技術實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本技術的一部分實施例,而不是全部的實施例。基于本技術中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本技術保護的范圍。
25.可以理解的是,本技術中bms系統可以包括上位機以及bms系統電路板(包括電芯),其中上位機主要用于bms數據采集和故障檢測分析。電路板上的微控制單元(mcu)內設置有固化的firmware(固件),且firmware的數據閃存中有經過加密的初始私鑰,且該初始私鑰為長度較長的密碼,一般經過隨機過程生成,且同時包含數字和字母。
26.進一步,bms系統電路板上還設置有高精度實時時鐘芯片,本技術中的高精度實時時鐘芯片的信號可以為ds3231,當然在其他實施方式中還可以采用其他型號的時鐘,此處不做具體限定。可以理解的是,為了驗證電池是否原裝,每次當bms系統電路板接入電芯后,必須要配合上位機進行驗證,通過這個驗證來允許電路板接入的電芯是被bms公司允許的,即防止非授權更換電芯,且本技術的驗證方法請詳見下文的具體描述。
27.請結合圖1,圖1為本技術bms系統電池的認證方法一實施方式的流程示意圖,如圖1本技術提供的bms系統電池的認證方法包括如下步驟:
28.s100,計算電路板的第一密鑰,第一密鑰包括實時時間信息。
29.請進一步結合圖2,圖2為本技術步驟s100一實施方式的流程示意圖,如圖2,步驟s100進一步包括如下子步驟:
30.s110,獲取電路板的初始私鑰,初始私鑰為預設字節長度的第一數組。
31.可選地,本技術的電路板的初始私鑰可以是長度為20字節(bytes)的第一數組,舉例來說,第一數組具體可以為:
32.{0x48,0x65,0x6c,0x6c,0x6f,0x21,0xde,0xad,0xbe,0xef,0x44,0x32,0x14,0xc7,0x42,0x54,0xb6,0x35,0xcf,0x39}
33.當然,在其他實施方式中還可以是其他形式,此處不做具體限定。
34.s120,獲取電路板上高精度時鐘的實時時間。
35.本技術中,高精度時鐘的實時時間可以換算成從2000年1月1日開始以來的秒鐘數量。
36.s130,根據初始私鑰及實時時間得到電路板的第一密鑰。
37.請進一步結合圖3,圖3為本技術步驟s130一實施方式的流程示意圖,如圖3,步驟s130進一步包括如下子步驟:
38.s131,獲取預設字節長度的第二數組。
39.進一步,獲取第二數組,其中所述第二數組的長度可以為64字節,其中,第二數組中每一字節都可以賦予同樣的值,例如0x59,第二數組可以表示為:
40.{0x59,0x59,...,0x59,...,0x59}
41.可選地,本技術上述第二數組中字節的值為隨機賦值,在其他實施方式中可以賦予其他值,此處不做具體限定。
42.s132,將第二數組和初始私鑰中的部分字節進行邏輯運算以得到中間值,并將第二數組中的部分字節替換為中間值。
43.進一步,將將第二數組和初始私鑰中的部分字節進行異或運算,具體地將第二數組和初始私鑰(第一數組)的前20個字節中每一個字節都進行異或運算,且第二數組中剩余的字節不變。
44.具體地,初始私鑰所代表的第一數組中的第一個字節0x48和第二數組中的第一個byte 0x59進行異或運算得到結果0x11,即第二數組和初始私鑰的中間值,并將這個中間值代替裝進第二數組的第一個字節。以此類推,分別將第一數組即第二數組中的前20個字節進行異或運算,得到的中間值替換第二數組的前20個字節,且第二數組后面的剩余字節保持不變,從而得到第二數組的擴展數組。
45.s133,將實時時間附加到擴展值數組的右側,以得到第三數組。
46.可選地,本技術中實時時間的長度可以為8字節,進一步將該實時時間附加到64字節的擴展數組中最后一個元素的右側。具體地,本技術中實時時間從2000年1月1日0時0分0秒開始算,到現在時刻的總共分鐘數目minute,這個分鐘數目minute再除以30,得到一個30分鐘的時間窗口,更換電芯的上電動作必須在這個唯一的確定的30分鐘窗口內進行,超過這個30分鐘窗口密碼就自動作廢。如此能夠有效避免大規模非授權的非法鋰電芯組的非法代換。
47.舉例來說,比如現在時間是2021年1月12日,從2000年1月1日0時0分0秒到現在共有7682*24*60=11062080分鐘,即minute=11062080,除以30得到368736這個數。其中,368736這個數就是每30分鐘的時間窗口的唯一id。進一步,將368736這個十進制轉成hex16進制:0x05a060,這是3個字節:0x05,0xa0,0x60,不夠8個字節bytes,則需要在前面進行循環復制,其中所謂循環復制就是將這3個字節重復后粘貼在前面直到補足8個字節,具體地補足的8個字節結果如下:
48.0xa06005a06005a060
49.進一步,將這8個字節bytes附加在擴展值數組的最右邊,得到了一個72個字節的數組,即第三數組。
50.上述實施方式中,通過高精度時鐘模塊產生的real time(實時時間)來作為種子,最后產生一個10位的數字和字母組合來作為初始私鑰的表象密碼,最后通過表象密碼的對比來間接實現初始私鑰的對比認證,有效的保護了初始私鑰。
51.s134,將第三數組進行散列運算,以得到第四數組。
52.請進一步結合圖4,圖4為本技術步驟s134一實施方式的流程示意圖,如圖4,步驟s134進一步包括如下子步驟:
53.s1341,形成一輔助元素數組,并根據輔助元素數組計算第一整數。
54.可選地,形成一輔助2元素數組cnt[2],其中輔助元素數組中的元素初始值都是0。然后,根據該輔助元素數組計算第一整數j=cnt[0]》》3&63。
[0055]
s1342,將第三數組進行移位運算。
[0056]
進一步,將72個字節的第三數組進行移位運算72《《3=576,并將移位運算的結果和第一整數j=cnt[0]原本的值相加,并將相加的結果賦值給cnt[0]。其中,如果cnt[0]的值小于72《《3,將cnt[1]的值自動增加1。可以理解的是,第一次運算時cnt[0]初始值為0,所以cnt[0]和72《《3相等,條件不成立。隨著后續繼續運算,會出現cnt[0]的值小于或大于72《《3的情況產生。進一步,將cnt[1]的值增加72》》29,注意后面這個數值是很大,因為第三數
組向左移位了29個位置。
[0057]
s1343,判斷進行移位運算后的第三數組是否大于預設數值。
[0058]
進一步,判斷j+72是否大于預設數值63,若大于則執行步驟s1344。
[0059]
s1344,根據第一整數計算得到第二整數。
[0060]
進一步,若j+72大于預設數值63,則根據第一整數j產生第二整數i,其中,第二整數的初始值設為i=64-j。
[0061]
s1345,形成一緩沖數組,緩沖數組中包括第二整數個第三數組的元素。
[0062]
可選地,形成一緩沖數組buffer[84],本技術實施例中緩沖數組的長度為84個字節bytes。進一步,將72字節長度的第三數組中的部分字節復制到緩沖數組buffer[84]中。需要注意的是,本技術中在將第三數組中的字節復制到緩沖數組的時候,緩沖數組接受第三數組中的第一個元素,位置為緩沖數組的第j個位置。當然也不是完全將第三數組中的字節全部復制,只需要復制第三數組中的前i個元素,即本技術緩沖數組中至少包括i(第二整數)個第三數組中的元素。
[0063]
s1346,形成第一狀態數組,并根據第一狀態數組及緩沖數組計算以得到第四數組。
[0064]
進一步,形成第一狀態數組state[5],所述第一狀態數組中的元素初始值均為0。將第一狀態數組state[5]和步驟s1345中的緩沖數組buffer[84]進行計算以得到第四數組。
[0065]
具體地,為方便描述第一狀態數組state[5]中的五個元素可以依次為s1,s2,,s3,s4,s5。其次,形成一計算數組space[64],所述計算數組space[64]包含64個元素。進一步,將緩沖數組buffer[84]中起始的部分字節復制到計算數組space中,本技術實施例中將緩沖數組buffer[84]中到前64個字節復制到計算數組中。
[0066]
進一步,使用c++的庫函數_rotl,所述庫函數_rotl的原型是在cstdlib頭文件中。其中,函數_rotl的作用是循環左移,即將一個數的二進制最高位移動到最低位,其他位置普通左移即可。然后,采用函數_rotl進行32bits(32位)的整數的循環左移運算。在進行循環左移運算之前需要利用函數_rotl建立兩個輔助函數:
[0067]
第一個輔助函數assist1:
[0068]
可選地,assist1輔助函數算法是作用在一個32bits變量上。具體地,一個32bits位的變量x,首先循環左移24位,得到_rotl(x,24),然后將_rotl(x,24)從最低位算起的第二個字節和第四個字節保持原值,將其它字節清0,再循環左移8位,得到_rotl(x,8)。進一步,將_rotl(x,8)從最低位算起的第一個字節和第三個字節保持原值,而將其它字節清0。最后將以上2個結果即_rotl(x,24)和_rotl(x,8)拼合起來,即取第一個結果的第二個字節和第四個字節,取第二個結果的第一個字節和第三個字節,拼合合并起來,組成一個有全部4個字節的32位整數值。
[0069]
第二個輔助函數assist2:
[0070]
可選地,本技術實施例中第二個輔助函數assist2和第一輔助函數assist1算法不同,第二個輔助函數assist2作用在一個數組或者向量上的。
[0071]
具體地,一個數組陣列(array),設置其元素的index作為自變量,該自變量可以命名為idx,首先將自變量idx取低字節,即idx&0xf,然后用idx&0xf作為新的index,取數組的
一個元素,可以命名element1。進一步,然后將idx加2,將加2后的變量取低字節,即(idx+2)&0xf,然后用(idx+2)&0xf這個值作為新的index,取數組的一個元素,這里暫時命名element2。
[0072]
進一步,將idx加8,給加法后的和取低字節,即(idx+8)&0xf,然后用(idx+8)&0xf這個值作為新的index,取數組的一個元素,這里暫時命名element3。
[0073]
進一步,將idx加13,給加法后的和取低字節,即(idx+13)&0xf,然后用(idx+13)&0xf這個值作為新的index,取數組的一個元素,這里暫時命名element4。
[0074]
進一步,將四個元素element1、element2、element3、element4進行異或運算,即:
[0075]
element1^element2^element3^element4
[0076]
異或運算得到的結果進行循環左移1位,即:
[0077]
_rotl(element1^element2^element3^element4,1)
[0078]
最后,將左移后的值賦值給數組陣列(array)的元素[idx&0xf],即idx取低4位作為新的index,到數組array的對應元素。
[0079]
可以理解的是,第二輔助函數assist2是一個自變量是一個數組,因變量是一個數組的函數。
[0080]
更進一步地,以上述的第一輔助函數assist1和第二輔助函數assist2為基礎構造一公共指令及轉換函數,其中,所述轉換函數包括選擇參數,所述選擇參數用于選擇所述第一輔助函數或所述第二輔助函數對所述計算數組進行計算,且具體如下:
[0081]
其中,公共指令common為:
[0082]
+_rotl(v,5);w=_rotl(w,30);
[0083]
需要注意的是,這里的“公共指令”,由2個部分構成,第一個部分本質上其實是一個多項式的“項”:+_rotl(v,5),它的自變量是v,且自變量v做了循環移位運算后,前面的“+”號讓其和前面的任何部分做和的運算。第二個部分直接是一個c語言語句指令,是將w做循環移位左移30bits的運算。其中,第一個部分和第二個部分用c語言的分號分開。進一步,之所以有“公共指令”,是因為這部分是幾個轉換函數的公共部分,每個轉換函數的最后都有這相同的部分,因此本技術將公共指令專門提出來,能夠讓思路更加清晰。
[0084]
進一步,本技術實施例中構造了三個轉換函數,具體如下:
[0085]
轉換函數一_r_0_1:
[0086][0087]
以上是轉換函數一的c語言函數原型,其中轉換函數一有7個參數,其中u32代表32位無符號數數據類型,u8代表8位無符號數數據類型,即unsigned char,&表示這個參數是c++語言的參考,即參數傳遞本質上是用不可移動的指針類型來傳遞的。
[0088]
下面是函數體:
[0089][0090]
由上述函數體積可知,首先將函數參數x和y做按位異或運算,然后將結果和參數w做按位與運算,再將結果和參數y再做按位異或運算。其中,函數參數_0_1的類型是unsigned char(無符號數數據類型),即一個選擇量,可以看作bool類型,根據_0_1的值來選擇到底是按照第二輔助函數assist2還是按照第一輔助函數assist1來進行對計算數組space的計算。最后,將結果和前面的異或運算的結果相加,在加上一個常數0x5a827999。當然在其他實施方式中,也可以選擇其他常數,此處不做具體限定。本技術中選擇常數0x5a827999,是能夠優化結果。再最后加上“公共指令common”,然后函數就返回了。
[0091]
轉換函數二_r3為:
[0092]
[0093][0094]
進一步,為簡化算法書寫,本技術需要做幾個c語言的預處理define,以下define預處理語句中的...和__va_args__是標準c,c++中的預處理宏可變數目宏參數。
[0095][0096]
進一步,做幾個c語言預處理普通宏,如下:
[0097][0098]
上述基礎工作完成后,利用上述能夠簡化并且清晰書寫的方法,寫出本技術的最核心算法,如下:
[0099]
[0100]
[0101]
[0102][0103]
最后,將上述的計算結果與第一狀態數組中的相對應元素進行相加并替換原值,得到新的狀態數組,即第四數組,如下:
[0104]
state[0]+=s1;state[1]+=s2;state[2]+=s3;state[3]+=s4;state[4]+=s5。
[0105]
s135,對第四數組進行抽象處理,以得到抽象數組。
[0106]
進一步,將計算得到的第四數組,即步驟s1346得到的新的狀態數組state[0]+=s1;state[1]+=s2;state[2]+=s3;state[3]+=s4;state[4]+=s5進行abstract處理,得到一抽象數組,可以表示為unsigned char abstract[20],如此可以根據該抽象數組得到本技術的第一密鑰。
[0107]
s136,根據抽象數組計算得到所述第一密鑰。
[0108]
請進一步結合圖5,圖5為本技術步驟s136一實施方式的流程示意圖,如圖5,步驟s136進一步包括如下子步驟:
[0109]
s1361,獲取抽象數組中的索引值。
[0110]
進一步,取出抽象數組unsigned char abstract[20]中最后一個元素的低4位作為索引值index,可以表示為:
[0111]
int index=abstract[20-1]&0xf。
[0112]
s1362,根據索引值計算中間量。
[0113]
根據索引值計算一暫時中間量tmpo,其表示為:
[0114]
u32 tmpo=(u32)(abstract[index]&0x7f)《《8*3
[0115]
|(u32)abstract[index+1]《《8*2
[0116]
|(u32)abstract[index+2]《《8*1
[0117]
|(u32)abstract[index+3]
[0118]
s1363,獲取一初始ascii碼數組,初始ascii碼數組中包括10位元素。
[0119]
可選地,準備一ascii碼數組,在所述ascii碼數組中取一初始ascii碼數組,其中,初始ascii碼數組中包括10位元素,且每一元素的初始值為0,具體如下:
[0120]
char ascii[10]={0}。
[0121]
s1364,根據中間量計算一數字n。
[0122]
進一步,為縮減最后得到的第一密鑰的字節位數,步驟s1364中可以根據中間量計算一數字n,具體為:
[0123]
u32 n=tmpo%1000000。
[0124]
s1365,獲取和數字n對應的ascii字符,并將ascii字符放置入初始ascii碼數組中,以得到第一密鑰。
[0125]
進一步,將步驟s1354中計算得到的n用ascii字符表示出來,即:
[0126]
to_ascii(n,ascii);
[0127]
可以理解的是,因為n用ascii字符表示出來是16進制,所以同時含有數字和字母
組合。故獲取和數字n對應的ascii字符,并將ascii字符放置入初始ascii碼數組中,從而得到第一密鑰。本技術中第一密鑰為10位的ascii碼數組,且可以用這個10位的ascii碼數組來進行bms電路板和電芯的authentic驗證配對。
[0128]
s200,接收來自上位機的第二密鑰。
[0129]
可選地,接收來自上位機的第二密鑰。每次bms系統電路板和電芯組裝上電時候,當最高節電芯接入時候,必須在一個窗口時間(比如1分鐘內),通過上位機連接can總線來提供第二密鑰,即10位的字母數字組合。其中,上位機的第二密鑰都必須由bms廠家實時提供,具體可以有2種方式來提供這個10位的字母數字組合密碼。
[0130]
a.通過電話或者網絡(比如)來由bms廠家傳遞到電池組裝現場。或者由bms廠家直接到電池組裝現場進行現場指導。
[0131]
b.上位機可以通過https從bms廠家服務器遠程fetch加密過的10位的字母數字組合。
[0132]
s300,判斷第一密鑰和第二密鑰是否匹配。
[0133]
進一步,當bms系統電路板的mcu接收到這個從上位機通過can總線傳過來的第二密鑰(10位的字母數字組合)后,需要和自己實時計算的第一密鑰進行匹配,若匹配成功,則表示驗證成功即電芯為經過授權的電芯,則電芯和bms系統全體可以順利正常工作。
[0134]
可以理解的是,因為第一密鑰中附加有實時的時間信息參做比對,所以只要過了這個時間,密碼就作廢,如此能夠使得仿造者無法大規模應用破解法來生產未經授權的代用電池,有效解決了bms系統電池的認證原裝電池問題,防止非法軟硬件盜版侵權。
[0135]
s400,建立和電池的連接。
[0136]
進一步,當第一密鑰和第二密鑰匹配成功,則建立和電池的連接,電芯和bms系統全體可以順利正常工作。反之,若第一密鑰和第二密鑰不匹配,則表示電池的電芯為未經過授權的電芯,則結束流程。
[0137]
上述實施方式中,通過計算電路板的第一密鑰,且第一密鑰包括實時時間信息,在接入電芯時通過接收通過上位機傳輸過來的第二密鑰,結合實時時間信息將第一密鑰和第二密鑰進行比對,能夠使得仿造者無法大規模應用破解法來生產未經授權的代用電池,有效解決了bms系統電池的認證原裝電池問題,防止非法軟硬件盜版侵權。
[0138]
圖6示出了本技術bms系統電池認證裝置實施例的結構示意圖,如圖6,本技術提供的裝置100包括計算模塊110、接收模塊120、判斷模塊130以及建立模塊140。
[0139]
其中計算模塊110用于計算電路板的第一密鑰,所述第一密鑰包括實時時間信息。
[0140]
接收模塊120用于接收來自上位機的第二密鑰。
[0141]
判斷模塊130用于判斷所述第一密鑰和所述第二密鑰是否匹配。
[0142]
建立模塊140用于當所述第一密鑰和所述第二密鑰若匹配時,建立和所述電池的連接。
[0143]
上述實施方式中,通過計算電路板的第一密鑰,且第一密鑰包括實時時間信息,在接入電芯時通過接收通過上位機傳輸過來的第二密鑰,結合實時時間信息將第一密鑰和第二密鑰進行比對,能夠使得仿造者無法大規模應用破解法來生產未經授權的代用電池,有效解決bms系統電池的認證原裝電池問題,防止非法軟硬件盜版侵權。
[0144]
圖7示出了本技術bms系統電池認證設備實施例的結構示意圖,本發明具體實施例
并不對設備的具體實現做限定。
[0145]
如圖7所示,該bms系統電池認證設備可以包括:處理器(processor)402、通信接口(communications interface)404、存儲器(memory)406、以及通信總線408。
[0146]
其中:處理器402、通信接口404、以及存儲器406通過通信總線408完成相互間的通信。通信接口404,用于與其它設備比如客戶端或其它服務器等的網元通信。處理器402,用于執行程序410,具體可以執行上述用于bms系統電池認證方法實施例中的相關步驟。
[0147]
具體地,程序410可以包括程序代碼,該程序代碼包括計算機可執行指令。
[0148]
處理器402可能是中央處理器cpu,或者是特定集成電路asic(application specific integrated circuit),或者是被配置成實施本發明實施例的一個或多個集成電路。bms系統電池認證設備包括的一個或多個處理器,可以是同一類型的處理器,如一個或多個cpu;也可以是不同類型的處理器,如一個或多個cpu以及一個或多個asic。
[0149]
存儲器406,用于存放程序410。存儲器406可能包含高速ram存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。
[0150]
程序410具體可以被處理器402調用bms系統電池認證設備執行以下操作:
[0151]
計算所述電路板的第一密鑰,所述第一密鑰包括實時時間信息;接收來自所述上位機的第二密鑰;判斷所述第一密鑰和所述第二密鑰是否匹配;若匹配,則建立和所述電池的連接。
[0152]
本實施例中的各步驟的具體實施方式請參閱上述實施例中步驟s100至步驟s400的具體描述,此處不再贅述。
[0153]
上述實施方式中,通過計算電路板的第一密鑰,且第一密鑰包括實時時間信息,在接入電芯時通過接收通過上位機傳輸過來的第二密鑰,結合實時時間信息將第一密鑰和第二密鑰進行比對,能夠使得仿造者無法大規模應用破解法來生產未經授權的代用電池,有效解決bms系統電池的認證原裝電池問題,防止非法軟硬件盜版侵權。
[0154]
參閱圖8,圖8是本技術提供的計算機可讀存儲介質實施例的示意框圖,本實施例中的計算機可讀存儲介質存儲有計算機程序310,該計算機程序310能夠被處理器執行以實現上述任一實施例中的bms系統電池的認證方法。
[0155]
可選的,該可讀存儲介質可以是u盤、移動硬盤、只讀存儲器(rom,read-only memory)、隨機存取存儲器(ram,random access memory)、磁碟或者光盤等各種可以存儲程序代碼的介質,或者是計算機、服務器、手機、平板等終端設備。
[0156]
綜上所述,本領域技術人員容易理解,本技術提供一種bms系統電池的認證方法、裝置、設備及存儲介質,通過計算電路板的第一密鑰,且第一密鑰包括實時時間信息,在接入電芯時通過接收通過上位機傳輸過來的第二密鑰,結合實時時間信息將第一密鑰和第二密鑰進行比對,能夠使得仿造者無法大規模應用破解法來生產未經授權的代用電池,有效解決了bms系統電池的認證原裝電池問題,防止非法軟硬件盜版侵權。
[0157]
以上所述僅為本技術的實施例,并非因此限制本技術的專利范圍,凡是利用本技術說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本技術的專利保護范圍內。

技術特征:


1.一種bms系統電池的認證方法,其特征在于,所述認證方法包括:計算電路板的第一密鑰,所述第一密鑰包括實時時間信息;接收來自上位機的第二密鑰;判斷所述第一密鑰和所述第二密鑰是否匹配;若匹配,則建立和所述電池的連接。2.根據權利要求1所述的認證方法,其特征在于,所述計算電路板的第一密鑰,進一步包括:獲取所述電路板的初始私鑰,所述初始私鑰為預設字節長度的第一數組;獲取所述電路板上高精度時鐘的實時時間;根據所述初始私鑰及所述實時時間得到所述電路板的第一密鑰。3.根據權利要求2所述的認證方法,其特征在于,所述根據所述初始私鑰及所述實時時間得到所述電路板的第一密鑰,進一步包括:獲取預設字節長度的第二數組;將所述第二數組和所述初始私鑰中的部分字節進行邏輯運算以得到中間值,并將所述第二數組中的所述部分字節替換為所述中間值,以得到所述第二數組的擴展數組;將所述實時時間附加到所述擴展數組的右側,以得到第三數組;將所述第三數組進行散列運算,以得到第四數組;對所述第四數組進行抽象處理,以得到抽象數組;根據所述抽象數組計算得到所述第一密鑰。4.根據權利要求3所述的認證方法,其特征在于,所述將所述第三數組進行散列運算,以得到第四數組,進一步包括:形成一輔助元素數組,并根據所述輔助元素數組計算第一整數;將所述第三數組進行移位運算;判斷進行移位運算后的所述第三數組是否大于預設數值;若大于,則根據所述第一整數計算得到第二整數;形成一緩沖數組,所述緩沖數組中包括第二整數個所述第三數組的元素;形成第一狀態數組,并根據所述第一狀態數組及所述緩沖數組計算以得到所述第四數組。5.根據權利要求1所述的認證方法,其特征在于,所述形成第一狀態數組,并根據所述第一狀態數組及所述緩沖數組計算以得到第四數組,進一步包括:形成一計算數組,并將所述緩沖數組中的部分起始字節復制進所述計算數組中;形成第一輔助函數及第二輔助函數;根據所述第一輔助函數及所述第二輔助函數構造公共指令以及轉換函數,其中,所述轉換函數包括選擇參數,所述選擇參數用于選擇所述第一輔助函數或所述第二輔助函數對所述計算數組進行計算;根據所述轉換函數對所述計算數組進行計算,將計算結果與第一狀態數組中的對應的元素進行相加并替換原值以得到第四數組。6.根據權利要求1所述的認證方法,其特征在于,所述根據所述抽象數組計算得到所述第一密鑰,進一步包括:
獲取所述抽象數組中的索引值;根據所述索引值計算中間量;獲取一初始ascii碼數組,所述初始ascii碼數組中包括10位元素;根據所述中間量計算一數字n;獲取和所述數字n對應的ascii字符,并將所述ascii字符放置入所述初始ascii碼數組中,以得到所述第一密鑰。7.根據權利要求1所述的認證方法,其特征在于,所述第一密鑰及所述第二密鑰為十位的數字和字母的組合。8.一種bms系統電池的認證裝置,其特征在于,所述裝置包括:計算模塊,用于計算所述電路板的第一密鑰,所述第一密鑰包括實時時間信息;接收模塊,用于接收來自所述上位機的第二密鑰;判斷模塊,用于判斷所述第一密鑰和所述第二密鑰是否匹配;建立模塊,用于當所述第一密鑰和所述第二密鑰若匹配時,建立和所述電池的連接。9.一種bms系統電池的認證設備,其特征在于,包括:處理器、存儲器、通信接口和通信總線,所述處理器、所述存儲器和所述通信接口通過所述通信總線完成相互間的通信;所述存儲器用于存放至少一可執行指令,所述可執行指令使所述處理器執行如權利要求1-7任意一項所述的bms系統電池的認證方法的操作。10.一種計算機可讀存儲介質,其特征在于,所述存儲介質中存儲有至少一可執行指令,所述可執行指令在設備/裝置上運行時,使得bms系統電池的認證設備/裝置執行如權利要求1-7任意一項所述的bms系統電池的認證方法的操作。

技術總結


本申請提供了一種BMS系統電池的認證方法、裝置、設備及存儲介質,認證方法包括:計算電路板的第一密鑰,所述第一密鑰包括實時時間信息;接收來自上位機的第二密鑰;判斷所述第一密鑰和所述第二密鑰是否匹配;若匹配,則建立和所述電池的連接。方本申請能夠有效解決BMS系統電池的認證原裝電池問題,防止非法軟硬件盜版侵權。硬件盜版侵權。硬件盜版侵權。


技術研發人員:

韓金奎

受保護的技術使用者:

深圳市睿能技術服務有限公司

技術研發日:

2021.06.11

技術公布日:

2022/12/12


文章投稿或轉載聲明

本文鏈接:http://m.newhan.cn/zhuanli/patent-1-45697-0.html

來源:專利查詢檢索下載-實用文體寫作網版權所有,轉載請保留出處。本站文章發布于 2022-12-18 00:59:23

發表評論

驗證碼:
用戶名: 密碼: 匿名發表
評論列表 (有 條評論
2人圍觀
參與討論