【導讀】開(kāi)路檢測功能對于安全可靠地運行電池管理系統(BMS)起著(zhù)至關(guān)重要的作用。鑒于其重要性,我們建議對BMS感興趣或會(huì )參與BMS設計的人員花時(shí)間了解這項功能。本文以ADI公司的電芯監控器為例,詳細討論了BMS電路在與外部電芯連接后,如何利用算法準確識別幾乎所有開(kāi)路情況。文中關(guān)于開(kāi)路檢測算法的討論,目的是讓讀者更深入地了解這個(gè)BMS功能。本文提供的開(kāi)路檢測偽代碼旨在為BMS設計人員提供設計參考。
摘要
開(kāi)路檢測功能對于安全可靠地運行電池管理系統(BMS)起著(zhù)至關(guān)重要的作用。鑒于其重要性,我們建議對BMS感興趣或會(huì )參與BMS設計的人員花時(shí)間了解這項功能。本文以ADI公司的電芯監控器為例,詳細討論了BMS電路在與外部電芯連接后,如何利用算法準確識別幾乎所有開(kāi)路情況。文中關(guān)于開(kāi)路檢測算法的討論,目的是讓讀者更深入地了解這個(gè)BMS功能。本文提供的開(kāi)路檢測偽代碼旨在為BMS設計人員提供設計參考。
簡(jiǎn)介
在電池管理系統(BMS)中,各電芯和電芯監控電路之間存在大量的布線(xiàn)連接。這些布線(xiàn)連接是確保電芯監控器可靠監控電芯參數(包括電壓、電流、溫度等)的關(guān)鍵,同時(shí)還可以用作電芯被動(dòng)平衡放電的電流路徑或繼電器控制信號的傳輸路徑。BMS需要管理的電芯數量通常非常龐大,因此布線(xiàn)連接的數量也相當可觀(guān)。這些連接不僅數量繁多,部分線(xiàn)路甚至相當冗長(cháng),因為它們往往需要跨越不同的印刷電路板(PCB),或是連接PCB與由眾多獨立電芯組成的電池包。此外還需要配合使用許多連接元件。BMS設計過(guò)程中,應盡量避免出現開(kāi)路的情況。如果某個(gè)電芯發(fā)生開(kāi)路,就意味著(zhù)對其狀態(tài)的有效監控將大打折扣或完全失效,而失去監控的電芯將給整個(gè)BMS帶來(lái)潛在的安全隱患,甚至可能在未知時(shí)刻對系統造成致命威脅。當出現開(kāi)路情況時(shí),首要任務(wù)是快速、準確、高效地確定開(kāi)路位置并及時(shí)通報。有效、準確的開(kāi)路檢測算法將大大提高BMS的可靠性,并有利于BMS和電池包的故障排除。通過(guò)算法精準地定位故障,可以有效減少人工排除故障過(guò)程中許多不必要的重復檢查、拆卸和組裝工作。
BMS的C引腳中的開(kāi)路檢測
開(kāi)路檢測對BMS至關(guān)重要,因此ADI公司的大部分電芯監控器都配備了開(kāi)路檢測命令及相應的實(shí)現方法。不同型號ADI電芯監控器使用的開(kāi)路檢測方法可能有所不同,例如ADBMS6830B使用的方法就與LTC6813不同。本文將圍繞后者展開(kāi)討論。LTC6813采用的開(kāi)路檢測方法也是ADI各型號電芯監控器常用的方法,具有通用性,其核心是基于A(yíng)DOW(開(kāi)路檢查)命令。
ADOW命令主要用于檢查L(cháng)TC6813-1的ADC與外部電芯之間是否存在開(kāi)路。此命令與ADCV(測量電芯電壓)命令一樣,對C引腳輸入執行模數轉換,但在測量?jì)蓚€(gè)C引腳時(shí),兩個(gè)內部電流源會(huì )為其提供電流或吸收電流。ADOW命令的上拉(PUP)位決定電流源是提供還是吸收100μA電流??梢允褂靡韵潞?jiǎn)單算法來(lái)檢查19個(gè)C引腳是否有開(kāi)路:
? 設置PUP = 1,運行18電芯命令ADOW至少兩次。結束時(shí)讀取電芯1至18的電芯電壓一次,并將其存儲在數組CELLPU(n)中。
? 設置PUP = 0,運行18電芯命令ADOW至少兩次。結束時(shí)讀取電芯1至18的電芯電壓一次,并將其存儲在數組CELLPD(n)中。
? 對于電芯2至18,求上述步驟中進(jìn)行的上拉和下拉測量結果之差:CELLΔ(n) = CELLPU(n) – CELLPD(n)。
? 對于從1到17的所有n值:如果CELLΔ(n+1) < -400mV,則C(n)開(kāi)路。如果CELLPU(1) = 0.0000,則C0開(kāi)路。如果CELLPD(18) = 0.0000,則C18開(kāi)路。
數據手冊清晰易懂地解釋了LTC6813中使用的ADOW開(kāi)路檢測命令及其算法實(shí)現。圖1以圖形方式展示了該算法,幫助讀者更直觀(guān)地了解算法的精妙之處。
圖1.LTC6813中的開(kāi)路檢測算法示意圖。
除了圖1中基于A(yíng)DOW命令的開(kāi)路檢測圖形展示之外,我們還使用LTC6813評估板和18650電池進(jìn)行了實(shí)際的開(kāi)路檢測實(shí)驗和波形測試。這讓我們能夠更清楚地了解開(kāi)路檢測期間電路的行為。實(shí)驗中每個(gè)電芯的電壓約為4V,示波器的4個(gè)探頭分別連接到LTC6813的C1/C2/C3/C4引腳。實(shí)驗中分別測量了CELL2/CELL3/CELL4的電壓波形。結合數據手冊中提供的ADCV命令執行時(shí)序規范(如圖2和表1所示),我們能夠更深入地分析本次實(shí)驗的波形檢測結果。ADOW命令執行的時(shí)序規范可以參考ADCV命令的時(shí)序規范,因為ADOW命令與ADCV命令一樣,對C引腳輸入執行模數轉換。不同的是,在測量?jì)蓚€(gè)C引腳時(shí),ADOW命令會(huì )通過(guò)兩個(gè)內部電流源向其注入或吸收電流。開(kāi)路檢測實(shí)驗的測試結果如圖3和圖4所示。圖3所示的電路測試沒(méi)有出現開(kāi)路,主要作為參考實(shí)驗。在圖4所示的電路測試中,C2引腳位置發(fā)生了開(kāi)路,圖中給出了ADOW命令執行過(guò)程中,該開(kāi)路情況下CELL2/CELL3/CELL4的波形測試結果。從測試結果來(lái)看,觀(guān)察到的電路行為變化與圖1所示一致。
圖2.測量所有18個(gè)電芯的ADCV命令時(shí)序。
表1.以不同模式測量所有18個(gè)電芯的ADCV命令的轉換和同步時(shí)間
圖3.開(kāi)路檢測及波形測試的實(shí)驗結果(實(shí)驗1)。
圖4.開(kāi)路檢測及波形測試的實(shí)驗結果(實(shí)驗2)。
BMS中出現多處開(kāi)路的問(wèn)題
設想BMS面臨一種嚴重情況,即有多條導線(xiàn)開(kāi)路,例如電芯監控電路中多個(gè)C引腳開(kāi)路。雖然這種情況不太可能發(fā)生,但概率低并不意味著(zhù)不可能。在這種情況下,數據手冊所述的算法對于檢測單個(gè)C引腳開(kāi)路更為有效。當多個(gè)C引腳同時(shí)出現開(kāi)路時(shí),機械地應用數據手冊中的算法可能無(wú)法產(chǎn)生準確的結果。
例如,在圖5所示的多條導線(xiàn)開(kāi)路場(chǎng)景中,應用LTC6813數據手冊所述的算法進(jìn)行開(kāi)路檢測得到的結果是,只能檢測到C6、C7、C8、C9引腳的開(kāi)路,而無(wú)法檢測到C2、C3、C4、C5引腳是否開(kāi)路。這不是我們想要的結果。
圖5.BMS中出現多處開(kāi)路的檢測算法示意圖(例1)。
盡管如此,數據手冊中提到的開(kāi)路檢測算法仍然非常有效,能夠準確識別單個(gè)C引腳開(kāi)路,并且還為檢測多處開(kāi)路提供了有價(jià)值的參考。
當電芯監控器的C引腳出現開(kāi)路情況時(shí),無(wú)論是單個(gè)開(kāi)路還是多處開(kāi)路,機械地應用數據手冊中概述的算法可能無(wú)法準確檢測到所有開(kāi)路情況及其各自的位置,尤其是當多處開(kāi)路同時(shí)發(fā)生時(shí)。然而,該算法必定會(huì )提醒BMS存在開(kāi)路故障。如果BMS電路板出現開(kāi)路錯誤,電路用戶(hù)需要手動(dòng)檢查并更精準地修復電路。通常,在進(jìn)一步的手動(dòng)仔細檢查中,可以發(fā)現算法未檢測到的開(kāi)路錯誤。
檢測C引腳上多處開(kāi)路的算法
有沒(méi)有更好的算法可以快速、準確、高效地識別出電芯監控器內的所有開(kāi)路情況,即使多個(gè)C引腳上同時(shí)出現多處開(kāi)路也能檢測到,而不必僅僅依靠經(jīng)驗豐富的工程師手動(dòng)檢查來(lái)發(fā)現電路中的所有開(kāi)路情況?答案是肯定的。
深入研究ADOW開(kāi)路檢測算法和數據手冊中獲得的數據,我們發(fā)現,只需增加一個(gè)計算步驟,就能準確識別出電路中C引腳的幾乎所有開(kāi)路情況。無(wú)論是單處開(kāi)路還是多處開(kāi)路,也不管開(kāi)路的位置在哪,幾乎全部都能識別出來(lái)。之所以說(shuō)“幾乎全部”,是因為在實(shí)際測試中,當C0引腳或C18引腳出現開(kāi)路情況時(shí),想要準確檢測出電路中的所有開(kāi)路故障還是很困難的。與C0引腳和C18引腳相關(guān)的開(kāi)路情況,將在本文的后面部分討論?,F在,我們重點(diǎn)介紹如何檢測引腳C1至C17出現開(kāi)路時(shí)的所有開(kāi)路情況。
所謂“只需增加一個(gè)計算步驟”是指,只需計算CELLΔ[n]和CELLΔ[n+1]的差值,如此就能得到一個(gè)高效、準確的開(kāi)路檢測算法。下面介紹該算法的實(shí)現和步驟。
第1步:首先,按照數據手冊所述的方法,向電芯監控器發(fā)送ADOW命令以啟動(dòng)開(kāi)路檢測。然后,在測量?jì)蓚€(gè)C引腳的同時(shí),兩個(gè)內部電流源向其注入或吸收電流。每個(gè)電芯的電壓數據通過(guò)芯片內的ADC獲得,并存儲在三個(gè)數組中,分別是CELLPU、CELLPD和CELLΔ數組。
第2步:開(kāi)始從下往上觀(guān)察從CELL 1到CELL 18的數據。搜索CELLΔ數據中的某些特征值,判斷是否發(fā)生開(kāi)路情況。通常,對于一系列相鄰連續開(kāi)路的起始位置,如果該起始位置出現在Cn引腳(n = 1至17)處,則可以在相應的CELLΔ[n]數據中觀(guān)察到大于正閾值+400 mV的電壓值。這個(gè)超過(guò)閾值的電壓值標志著(zhù)Cn引腳出現開(kāi)路,表示它可能是后續一系列相鄰連續開(kāi)路情況的起點(diǎn)。檢測到此標志后,繼續執行第3步。
第3步:從第2步中確定的Cn引腳位置開(kāi)始,啟動(dòng)一個(gè)循環(huán)來(lái)計算CELLΔ[n]和CELLΔ[n+1]的差值,同時(shí)遞增n的值,n的最大值不應超過(guò)17。這就是前面提到的新增計算步驟。在開(kāi)路檢測過(guò)程中,差值結果呈現出一定的特點(diǎn):從開(kāi)路的起始位置到后續相鄰連續的開(kāi)路位置,如果連續開(kāi)路情況沒(méi)有中斷,則CELLΔ[n]與CELLΔ[n+1]的差值永遠是一個(gè)很小的負值1、0或是一個(gè)正值。與第2步中設置的正閾值一樣,此步驟使用-400 mV的負閾值來(lái)判斷開(kāi)路情況。在循環(huán)計算CELLΔ[n]和CELLΔ[n+1]差值的過(guò)程中,如果差值結果大于-400 mV,則表明Cn引腳存在開(kāi)路情況。
1閱讀本文時(shí),如果結合對圖5和圖6的觀(guān)察來(lái)理解該算法,讀者會(huì )注意到在這兩幅圖中,在相鄰和連續的開(kāi)路位置,CELLΔ[n]和CELLΔ[n+1]的差值始終為0或正值,而不會(huì )出現較小的負值。這看起來(lái)可能很奇怪。究其原因是,為了便于計算,圖5和圖6中的多個(gè)電路模型已被簡(jiǎn)化,這會(huì )得到更理想的數據。不過(guò),這種簡(jiǎn)化對于電路行為的近似描述是可以接受的。在實(shí)際的電路開(kāi)路測試中,此差值確實(shí)可能是一個(gè)很小的負數、0或是一個(gè)正數。
第4步:繼續第3步中描述的循環(huán)計算。當開(kāi)路情況停止時(shí),CELLΔ[n]和CELLΔ[n+1]的差值不再大于-400 mV,而是會(huì )變成一個(gè)非常大的負值。當檢測到結果小于-400mV時(shí),表示一系列相鄰連續開(kāi)路終止于Cn引腳位置。此時(shí),跳過(guò)之前檢測到的開(kāi)路位置,重復第2步至第4步的計算,直至完成所有18個(gè)電芯通道和C引腳(不包括C0引腳和C18引腳)的所有開(kāi)路檢測。
圖5和圖6以多個(gè)C引腳同時(shí)出現開(kāi)路的情況為例,對上述算法進(jìn)行了具體化展示,以幫助讀者直觀(guān)地掌握檢測邏輯。
圖6.BMS中出現多處開(kāi)路的檢測算法示意圖(例2)。
同樣,我們使用LTC6813評估板(DC2350B)和18650電池,開(kāi)展了檢測C引腳上多處開(kāi)路的實(shí)際實(shí)驗和波形測試。這讓我們能夠更清楚地了解LTC6813電路在多處開(kāi)路檢測期間的行為。測試結果如圖7和圖8所示。在圖7所示的電路測試中,C2引腳和C3引腳位置同時(shí)出現開(kāi)路;而在圖8所示的電路測試中,C2引腳、C3引腳和C4引腳位置同時(shí)出現開(kāi)路。另外,圖7和圖8還提供了在A(yíng)DOW命令執行期間,相應開(kāi)路情況下CELL2/CELL3/CELL4的波形測試結果。從測試結果來(lái)看,觀(guān)察到的電路行為變化與圖5和圖6所示一致。
圖7.開(kāi)路檢測及波形測試的實(shí)驗結果(實(shí)驗3)。
圖8.開(kāi)路檢測及波形測試的實(shí)驗結果(實(shí)驗4)。
該算法不僅能高效檢測多個(gè)C引腳同時(shí)出現開(kāi)路故障的情況,而且同樣適用于整個(gè)電芯監控器中僅出現單個(gè)開(kāi)路的情況。讀者可以獨立應用上述算法,僅有一個(gè)C引腳開(kāi)路的情況下(C0引腳和C18引腳除外)進(jìn)行開(kāi)路檢測。讀者會(huì )發(fā)現,仍然可以得到正確的開(kāi)路檢測結果。上述算法不僅繼承了數據手冊所述算法的優(yōu)點(diǎn),而且克服了數據手冊算法應用于多個(gè)C引腳同時(shí)出現開(kāi)路情況的局限性,使得多處開(kāi)路故障的檢測更加準確、高效。
C0引腳或C18引腳出現開(kāi)路的情況
上述算法用于檢測LTC6813引腳C1至C17的開(kāi)路情況?;氐角懊嫣岬降乃惴?,當C0引腳或C18引腳出現開(kāi)路情況時(shí),想要準確檢測出電路中的所有開(kāi)路故障還是非常困難的。接下來(lái)我們將探討這兩個(gè)引腳出現開(kāi)路時(shí)的復雜性:
情況1:如圖1所示,使用數據手冊中提到的方法可以評估C0引腳或C18引腳的開(kāi)路,前提是它們不與相鄰的C引腳同時(shí)出現開(kāi)路。具體來(lái)說(shuō),若C0引腳與C1引腳、C18引腳與C17引腳不是同時(shí)出現開(kāi)路,則可作出如下判斷:如果CELLPU[1] = 0,則C0開(kāi)路。如果CELLPD[18] = 0,則C18開(kāi)路。
情況2:如圖9和圖10所示,當C0引腳或C18引腳與其相鄰的C引腳同時(shí)出現開(kāi)路時(shí),通常在這種情況下,仍可使用以下條件來(lái)識別C18引腳的開(kāi)路情況:若CELLPD[18] = 0,則C18開(kāi)路。但是,當C18引腳與多個(gè)相鄰C引腳同時(shí)出現開(kāi)路時(shí),建議將C18引腳的開(kāi)路檢測規則設置為CELLPD[18] < +400 mV。與此同時(shí),仍然可以使用前面提到的算法來(lái)識別與C18引腳相鄰的開(kāi)路。
對于C0引腳,可以使用以下條件來(lái)識別其開(kāi)路:若CELLPU[1] = 0,則C0開(kāi)路。然而,與C0引腳相鄰的開(kāi)路無(wú)法用前面提到的算法來(lái)識別,因為它們不滿(mǎn)足觸發(fā)條件。對于算法無(wú)法識別的開(kāi)路,仍然可以通過(guò)數據手冊中提到的開(kāi)路檢測規則來(lái)識別:若CELLΔ[n+1] <–400 mV,則C(n)開(kāi)路。但需要注意的是,為了精準檢測情況2下C1引腳的開(kāi)路情況,需要在前面提到的算法中添加一條額外的開(kāi)路檢測規則:若C0開(kāi)路且CELLPD[1] < 400 mV,則C1開(kāi)路。
情況3:如圖11所示,在PCB內將C0短接至V-并將C18短接至V+,這種方法的優(yōu)點(diǎn)在于可以免去V-引腳和V+引腳與電池包之間的兩個(gè)布線(xiàn)連接。但缺點(diǎn)是,如果C0引腳和C18引腳之間的導線(xiàn)連接阻抗不夠低,則可能會(huì )給CELL1和CELL18的電壓檢測引入額外的誤差。因為當C0和V-、C18和V+共用同一連接時(shí),V-引腳和V+引腳在芯片運行期間會(huì )承載電源電流,此電源電流相比于采樣電流通常較大。例如,當電芯監控器的內核處于MEASURE狀態(tài),isoSPI處于READY狀態(tài)(IB = 1 mA)時(shí),根據LTC6813數據手冊中表2和表3所列出的公式,電流消耗可能達到約21 mA。如果布線(xiàn)阻抗不夠低,C0和C18布線(xiàn)連接處可能會(huì )出現明顯的電壓降,從而影響CELL1和CELL18的電壓檢測精度。
圖9.C18引腳開(kāi)路檢測算法示意圖(基于情況2)。
圖10.C0引腳開(kāi)路檢測算法示意圖(基于情況2)。
圖11.C0與V-、C18與V+共用同一連接時(shí)的示意圖。
表2.LTC6813內核電源電流
表3.LTC6813 isoSPI電源電流公式
基于圖11所示的連接方法,我們來(lái)觀(guān)察圖12。當C0引腳或C18引腳與其相鄰的C引腳同時(shí)出現開(kāi)路時(shí),通常在這種情況下,仍可使用以下條件來(lái)識別C18引腳的開(kāi)路情況:若CELLPD[18] = 0,則C18開(kāi)路。但是,當C18引腳與多個(gè)相鄰C引腳同時(shí)出現開(kāi)路時(shí),建議將C18引腳的開(kāi)路檢測規則設置為CELLPD[18] < +400 mV。與此同時(shí),與C18引腳相鄰的開(kāi)路無(wú)法用數據手冊中的算法或前面提到的算法來(lái)識別,因為它們不滿(mǎn)足觸發(fā)條件。在這種情況下,可以額外添加一條開(kāi)路檢測規則,作為前面提到的算法的一部分:如果C18開(kāi)路,并且同時(shí)滿(mǎn)足CELLPU[n] < +400 mV和CELLPD[n] < +400 mV兩個(gè)條件,則Cn開(kāi)路。然而,隨著(zhù)與C18引腳相鄰且連續的開(kāi)路數量增多,這條檢測規則也有可能失效,芯片無(wú)法正常執行ADOW命令。
至于圖12中的C0引腳開(kāi)路,它將導致芯片無(wú)法正常執行ADOW命令。在這種情況下,C0引腳開(kāi)路無(wú)法通過(guò)ADOW命令識別。盡管如此,芯片仍然可以執行ADCV命令來(lái)完成電芯電壓檢測,并且可能發(fā)現CELL1的電壓轉換結果異常低,從而表明C0引腳可能存在開(kāi)路情況。但是,該方法不被視為本文所述算法的一部分。
圖12.C0引腳或C18引腳開(kāi)路檢測算法示意圖(基于情況3)。
這些情況說(shuō)明了上述論斷的理由。當C0引腳或C18引腳出現開(kāi)路情況時(shí),想要準確檢測出電路中的所有開(kāi)路故障還是非常困難的。
總之,將本文介紹的所有算法結合起來(lái),我們可以準確識別出電路中C引腳的幾乎所有開(kāi)路情況,無(wú)論其位置和數量如何。然而,一旦要檢測涉及C0引腳或C18引腳的開(kāi)路故障,該組合算法可能無(wú)法保證100%檢測到電路中的所有開(kāi)路故障。在這種情況下,算法最好發(fā)出警示:在C0/C18中檢測到開(kāi)路故障,實(shí)際開(kāi)路數量可能與算法得出的值不一致。
開(kāi)路檢測的偽代碼和實(shí)驗結果
本文介紹的所有算法均已集成并整合到LTC6813開(kāi)路檢測偽代碼示例中,如圖13所示,僅供參考。此外,這里還給出了開(kāi)路檢測的一些實(shí)驗結果。圖14至圖17的結果是在對LTC6813評估板電路的實(shí)際開(kāi)路檢測實(shí)驗獲得的。實(shí)驗所采用的開(kāi)路檢測算法是基于本文所介紹算法的組合;開(kāi)路功能的驅動(dòng)代碼是基于所提供的偽代碼編寫(xiě)。從實(shí)驗結果可以看出,在設定的條件下,所有開(kāi)路情況(即使存在多處開(kāi)路)都可以被準確檢測出來(lái),包括數量和位置。也就是說(shuō),本文所述的開(kāi)路檢測算法既準確,又可靠。
結論
雖然本文主要討論LTC6813的開(kāi)路檢測方法及算法,但該IC所采用的開(kāi)路檢測方法具有通用性,也是ADI各型號電芯監控器所采用的共同方法。因此,本文介紹的開(kāi)路檢測算法只需稍加修改,即可輕松移植到使用類(lèi)似開(kāi)路檢測方法的其他ADI電芯監控器上。
圖13.LTC6813器件中開(kāi)路檢測的偽代碼示例。
圖14.開(kāi)路實(shí)驗及結果(實(shí)驗1)。
圖15.開(kāi)路實(shí)驗及結果(實(shí)驗2)。
圖16.開(kāi)路實(shí)驗及結果(實(shí)驗3)。
圖17.開(kāi)路實(shí)驗及結果(實(shí)驗4)。
(來(lái)源:ADI公司,作者:Frank Zhang,應用工程師)
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問(wèn)題,請聯(lián)系小編進(jìn)行處理。
推薦閱讀:
貿澤聯(lián)手Micron推出全新電子書(shū)帶你探索面向AI邊緣應用的創(chuàng )新內存解決方案與設計
利用STM32MP1和STM32MP2在嵌入式 Linux 平臺上部署有效的安全保護機制
瑞芯微殺瘋了!全新視覺(jué)芯片RV1126B實(shí)測數據曝光,算力已達RK3588一半!
驅動(dòng)電路設計(六)——驅動(dòng)器的自舉電源動(dòng)態(tài)過(guò)程
小角色,大作用:汽車(chē)信息娛樂(lè )系統中,不可或缺的連接器