張洪濤,裴 浩,楊名軍,葛 林
(湖北工業大學電氣與電子工程學院,湖北 武漢430068)
鋰電池作為一種理想的新型綠色電源,由于其優越的性能,逐漸取代了以往常用的鉛酸電池和鎳鎘電池.鋰電池的優點是高能量、安全性較高、工作溫度范圍寬、工作電壓平穩、使用壽命長.但是由于鋰電池的輸出功率較小,所以通常是將鋰電池串聯起來作為鋰電池組使用.串聯使用的鋰電池組由于鋰電池個體之間制造工藝的區別,電池之間的電壓不可能完全一致,這樣會使鋰電池組在充放電過程中,容量高的電池會對容量低的電池放電,這種現象會大幅度降低鋰電池組的使用壽命,為了保證鋰電池組的使用壽命,必須給鋰電池組添加電池檢測系統.
目前的鋰電池檢測系統大多數是固定在電池組上以便實時顯示電池組的工作狀態,為了使電池組的工作狀態可以準確及時地顯示在上位機上,需要給鋰電池檢測系統添加串口通信模塊.本文針對四節鋰電池組成的鋰電池組,設計了一個以FPGA作為處理器的鋰電池檢測系統.
該系統主要分為以下三個模塊:FPGA控制模塊、電池數據采集模塊、串口通信控制模塊.其中FPGA控制模塊實現數據的處理和串口通信模塊的驅動,電池數據采集模塊主要包括電池組的電壓、電流、溫度三項數據的采集.本系統的串口通信模塊主要分成兩個模塊,數據發送模塊和數據接收模塊.數據發送模塊實時發送電池組的工作狀態數據給上位機,電池組的工作狀態數據主要包括電池的單體電壓,電池組的總體電壓、電流、溫度.數據接收模塊通過上位機給檢測系統發送控制指令,方便對電池組進行保護[1].系統結構如圖1所示.

圖1 系統結構圖
本系統硬件電路的設計平臺采用黑金開發板,該開發板配置的FPGA芯片是Cyclone II系列的EP2C8Q208C[2],該芯片具有8256個邏輯單元,同時具有64M的SDRAM和16M閃存,滿足程序的存儲需求.開發板時鐘采用外部20MHz的晶振,具有各種常用接口,包括以太網接口,USB接口,RS232串行接口,VGA接口,PS/2接口.外部設備中開發板集成了6個共陽極的數碼管,4個LED燈,5個獨立按鍵以及一個蜂鳴器.此外,開發板擴展了100個I/O口,可以給開發板添加外部電路.黑金開發板完全可以滿足設計需求.
電壓采集電路是針對四節鋰電池串聯所構成的電池組的電壓進行采集,采集芯片是常用的A/D轉換芯片ADC0809,該芯片的參考電壓是5V,工作電壓也是5V,但是每節鋰電池的工作電壓約為3.7 V,串聯起來的電壓值超過了轉換芯片的參考電壓,因此需要采用電阻分壓法,在電池組兩端串聯四個阻值完全相同的電阻,A/D轉換芯片只對其中一個電阻兩端的電壓進行采集,這樣采集到的電壓值是實際電壓值的1/4.
電池組的電壓采集不僅是對電池組的電壓進行采集,也需要對單體電池的電壓進行采集,控制電池兩端開關的關斷就可以采集任意一節電池的電壓.電壓檢測電路如圖2所示,當開關S1和S0閉合時采集電池V1的電壓值,開關S4和S6閉合時采集電池V2的電壓值,開關S2和S7閉合時采集電池V3的電壓值,開關S3和S5閉合時采集電池V4的電壓值[3].

圖2 電壓采集電路
電壓采集電路中的開關采用光電繼電器TLP521_1,其內部結構如圖3所示,當引腳tip_1為低電平時,發光二極管發光,此時光敏器件兩端tip_2和tip_3導通,就實現了開關的閉合.

圖3 TLP521_1的內部結構
電池組的充放電電流有很大的不確定性,要盡量提高電流的采集頻率.采集電流的A/D轉換芯片使用TLC2543,該芯片的轉換時間為10μs,輸出12位數據,可以滿足采樣頻率和精度的要求.由于電流的變化量微小,為了實現電流采集的準確性,在進行A/D轉換之前,添加了電流放大檢測芯片MAX4172.[4]該芯片可以將采樣的電流放大50倍后再輸出,輸出后的電流值經過一個接地電阻轉化為電壓值,再由TLC2543采集.電流采集電路如圖4所示,MAX4172采樣經過R5的電流,在其內部將電流放大50倍后,通過OUT引腳輸出到電阻R6,將電流轉化成電壓.TLC2543采集電阻R6兩端的電壓值.電池組的充放電電流計算公式如下:

為了防止鋰電池在充放電過程中溫度過高,必須實時對電池組的溫度進行采集.本設計中采用數字溫度傳感器DS18B20采集電池組的溫度.DS18B20的硬件電路簡單,只有三個引腳,其中VCC和GND分別接電源和接地,DQ引腳則用于數據的傳輸,溫度采集電路見圖5.
因為電池的數據采集電路中A/D轉換芯片都需要外部提供時鐘脈沖才能工作,ADC0809的工作時鐘脈沖為500kHz,TLC2543的時鐘脈沖為5 MHz,DS18B20的單總線通信的時序需要精確到us,因此需要1MHz的時鐘脈沖.時鐘的分頻可以通過 Quartus II中的軟件 Mega Wizard Plug-In Manager來構建一個分頻電路.分頻電路如圖6所示,inclk0接50MHz的外部晶振,c0為50MHz的1/50,所以為1MHz.同理,c1為5MHz,c2為500 kHz.[5]

圖4 電流采集電路


為了驅動系統中各個模塊的正常工作,需要通過軟件的方法對各個模塊進行控制.本設計中采用Verilog HDL來實現軟件的設計,Verilog HDL的部分語法參照C語言的語法設立,因此也具備了C語言的優點.Verilog HDL的代碼使用靈活,具有很強的電路描述能力,可以提高系統設計的效率和可靠性.
本系統的軟件流程見圖7,分為電壓采集控制、電流采集控制、溫度采集控制、串口通信控制.其中電池的數據采集、串口通信的數據發送都是同時進行的,以方便實時地將電池組的數據準確發送給上位機.

圖7 系統軟件流程圖
最后的串口通信控制,是用戶通過上位機觀察到系統發送過來的電池組的數據,可以根據這些數據向系統發送指令,停止電池組的充放電,以達到對電池組的保護.
本文在軟件Quartus II中對ADC0809,TLC2543進行了時序仿真(圖8).由圖8,clk_500k是ADC0809的時鐘脈沖,d是經過ADC0809轉換后輸入給處理器的數字量,q是處理器經過處理后顯示的數字量,第一個周期由于輸出使能端oe在eoc為高電平的時候沒有置高,所以數據不能傳輸到處理器.第二和第三個周期可以看到數據正常傳輸到處理器并顯示.
圖9是TLC2543的時序仿真圖形,icclk是TLC2543所需的時鐘脈沖,icout是處理器的控制字輸入端,icin是經過TLC2543轉換后的數字量,data是處理器處理后顯示的數字量.因為TLC2543是在處理器輸入控制字的同時,將上一次轉換的數據傳輸到處理器,所以第一個周期的數據為0,第二個周期的數據則是第一個周期是icin的輸入數據.


[1]張洪濤,周 航,彭瀟麗,等.FPGA的動力電池檢測系統研究[J].湖北工業大學學報,2012,27(2):4-7.
[2]褚振勇,奇 亮.FPGA設計及應用[M].第二版.西安:西安電子科技大學出版社,2002.
[3]陳洪超,李相東.鋰離子電池原理、研究現狀與應用前景[J].南京:軍事通信技術,2005(1):12-15.
[4]楊新偉.便攜式電動工具鋰電池組智能監控系統設計[D].武漢:武漢理工大學圖書館,2010.
[5]周朝陽.基于FPGA_NIOS的電池充電均衡系統研究[D].西安:西安交通大學圖書館,2008.