基于LIN總線的純電動車電池管理系統設計
在現代汽車中總線技術越來越多的得到應用,CAN/LIN網絡已經成為以分布式為基礎的車載電子網絡的主流發展方向。CAN 總線作為高速傳輸總線具有速度快、帶寬高、功能多的突出特點,但其成本比較昂貴;LIN 總線是一種低端總線,但其在降低成本方面具有突出優勢,適合對網絡速度要求不高、實時性不強的數據的傳輸。因此,在不需要CAN 總線的帶寬和速度的場合下,LIN 總線補充了CAN 總線引導的汽車多路復用網絡的現有總線技術。電池的溫度、電流、電壓檢測并不要求極高的實時性和總線速度,因此LIN 總線能很好地契合電池管理系統的要求。
Dspic30f4012 芯片沒有LIN 總線的接口,但具有SCI 通信接口,本文選用TPIC1021 芯片作為SCI 與LIN 總線轉換的芯片,如圖3 所示。SCI 通信引腳U1RX 與U1TX 經過磁耦合隔離器件電氣隔離后,分別接到LIN 驅動器的LIN_RXD 和LIN_TXD,經過轉換最后在LIN 引腳輸出LIN 總線信號。在底層控制器Dspic30f4012 和LIN 收發器TPIC1021 之間加上一個磁耦合隔離器件ADUM1201ARZ,用來提高電池組檢測系統通信的抗干擾能力和解決分布式檢測中共地產生短路的問題,有效地把各個檢測單元的電氣連接隔離開來,同時也把底層電壓與上層LIN 總線隔離開來。當LIN 收發器作為主機節點時,需要把圖3 中的J3 跳線用跳針短接,用于從機節點時不要跳針短接。
2.2.1 電池管理系統的軟件設計和總體結構
ECU 中的軟件設計包括底層ECU 和上層ECU 軟件設計。底層ECU 的軟件設計主要包括電壓、電流、溫度的采集程序與采集結果的計算程序、數據通信程序、中斷程序等;上層ECU 的軟件設計主要包括SOC 估算程序、LIN 總線通信程序、故障分析及報警程序、電壓、電流、溫度和荷電狀態等顯示程序、時鐘程序、中斷程序等。整個程序設計采用結構化和模塊化的編程方法來實現。上層ECU 的主程序流程圖如圖4 所示。
其中,電池的電壓檢測包括單體電池電壓的檢測和電池組電壓的檢測。當單體電壓超限時,系統能夠判斷超限單體電池的編號,判斷單體電池是低電壓超限還是高電壓超限,在顯示器上顯示并且有聲音報警。電池組電壓超限時程序能夠分析出是何種原因超限,以此來進入保護程序。電池溫度的檢測包括單體電池溫度的檢測和環境溫度的檢測,當溫度超限時,系統通過檢測到的數據能分析溫度超限的原因,以此進入保護程序。電池的荷電狀態超限主要是指電池剩余電量過低,繼續放電可能會影響電池的壽命。
2.2.2 LIN 通信的實現
LIN 協議是一種開放的總線協議,一個完整的報文幀由報文頭和響應組成。每一次數據的傳送都由主機節點開始,標志著一次數據通信過程報文幀的開始[3].
圖5 為5 號單體磷酸鐵鋰電池LIN 總線標識符場,以此為例說明LIN 總線標識符場的設定。5 號單體電池ID 位為0101,所以此節單體電池的ID 為0x5,ID4、ID5 設為01,即設定發送的數據場字節為4 個字節,通過前面的奇偶校驗得到奇偶校驗值為0、1,如圖5 所示。
由于各個信號的范圍不同,電壓、電流、溫度信號所用到的數據位數也不同,電壓的范圍在0~5 V 內,電流在0~20 A內,溫度在-40~125 ℃范圍內,所以本文在數據場中用第1個字節和第4 個字節的低兩位,共10 位來表示電壓;用第2個字節和第4 個字節的中間4 位,共12 位來表示電流;用第3 個字節和第4 個字節的高兩位,共10 位來表示溫度。由于電壓、電流、溫度都精確到小數點后,在數據場中表示小數比較復雜,本文用實際參數值的10 倍或100 倍在數據幀中表示,如圖6 所示。
表1 為各單體電池所對應的LIN 總線節點的ID 資源分配表。
上層ECU作為LIN總線的主機節點,當LIN主機節點向單體電池從機節點請求數據時,LIN 總線上將進行從機節點到主機節點的數據傳輸,此時LIN 主機節點向總線發送報文幀頭,總線上的LIN 從機節點接收報文幀頭后,判斷是否與自己的ID 匹配,若匹配發送報文幀響應,LIN 主機節點接收報文幀響應,完成主機節點的數據請求。
霍爾傳感器相關文章:霍爾傳感器工作原理
霍爾傳感器相關文章:霍爾傳感器原理
評論