新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于PIC16F676的鎳氫電池充電管理系統設計

        基于PIC16F676的鎳氫電池充電管理系統設計

        作者: 時間:2007-08-15 來源:網絡 收藏

        摘要:分析了需求,提出了一種采用電壓、溫度和時間進行綜合管理的管理方案。的新型柔性系統,同時給出了該系統的軟硬件方法。
        關鍵詞;電池;充電器

        隨著科技的發展,對便攜式儀器儀表的需求越來越多。為這些儀表選擇充電電池并設計充電管理電路是這類產品設計的重要內容。與其它類型電池相比,具有比容量大(相當于鎳鎘電池的兩倍),無污染、無記憶、重量輕,價格適中(只有鋰離子電池一半的價格)等優點,在國內儀器儀表行業中越來越受到青睞。

        1充電系統設計理論基礎

        正極上析出氧氣,負極上析出氫氣。這三個化學反應決定了鎳氫電池充電電路要求如下:

        1)電池充電終止電壓:

        電池充電時,極板上的活性物質已經全部飽和,電池電壓不再上升而是略有下降。此時,若繼續大電流充電,將會大大影響電池的壽命,此時的電壓稱為充電終止電壓,一般單節電池不超過1.6伏。充電終止電壓與電流充電率、環境溫度、電池生產工藝等因素有關。電壓負增量控制方法是一種公認的比較先進的控制方法(-V),電壓從峰值下降5~10Mv/節時及時終止快速充電;最大電壓控制方法可以作為輔助控制方法。

        2)電池充電電流:

        充電電流取決于電池容量C。現在新型鎳氫電池可以達到1C以上的充電率,但充電電流過大會使電池內部壓力升高較快,安全閥打開,電池漏液,引起安全問題。在設計中,充電電流取0.5C

        3)電池充電時間:

        電池充電時間和充電電流的大小有關,充電電流取0.5C左右時,電池充滿約需要2~3小時。

        4)電池溫度:

        在電池充滿電后會發生析氧和析氫反應,使電池內部壓力增大,溫度上升。當電池溫度超過55度或者溫度超過2/分時候應及時終止快速充電。另外,如果環境溫度低于5度或者高于40度時候不應該啟動快速充電。

        目前,大多數充電電路僅采用上述的一個或者兩個參數進行控制,很難達到理想的控制要求。為此,本文設計了一種新型柔性充電管理電路;通過對上述幾個參數同時進行綜合控制,可以更高效、更加安全地完成充電管理過程。

        2鎳氫電池充電管理電路硬件設計

        電池充電原理圖如圖1所示,包括充電控制電路和充電狀態檢測電路。充電電路以為核心,PIC16F676Microchip推出的一款新型PIC單片機,DIP14或者SOIC14封裝,2個定時器,輸出IO口切換頻率可以達到250KHZ2KFlash,多路AD,使得PIC16F676特別適用于低成本的電池。芯片內部集成了上電復位、欠壓檢測和看門狗電路,使用內部晶振(4M晶體),這些都極大的簡化了外圍電路的設計。

        充電電路以及充電過程:

        PIC16F676RC3口或者RC4口用于輸出占空比可調的PWM脈沖信號控制NPN三極管8050的通斷。啟動RC3口通過定時器1控制引腳輸出高低電平即可以對電池進行充電控制。電池充滿時候,停止定時器,RC3輸出低電平,NPN三極管截止,便可以停止充電。

        在一個PWM脈沖周期中,當NPN三極管導通時,MOSFETBD442的柵極為高電平,外部電源經過肖特基二極管,檢測電阻給電池充電;當NPN三極管8050截止時候,MOSFETBD442的柵極為低電平,外部電源停止充電。在下一個PWM脈沖周期,重復上述過程。

        充電狀態檢測電路:

        1) 電池端電壓檢測:通過精密電阻R18R19分壓獲得電池端電壓,將此信號接到PIC16F676RC1引腳AD檢測引腳。

        2) 電池溫度檢測:在電池組內內置一個具有負溫度系數的熱敏電阻,通過測量熱敏電阻的端電壓可以準確地測量到電池組的溫度。為保證測量精度,回路中采用了精密穩壓源LM385以產生精確的基準電壓(1.25V)。此基準電壓1.25V同時作為PIC16F676芯片AD轉換的參考電壓。

        3) 充電電流檢測:由運算放大器LM324構成一個差動放大器,檢測PIC16F676的充電電流。充電電流過大時候,應減小PWM的占空比;反之,應增大PWM的占空比,從而使充電電流維持在何時的范圍內。

        3 鎳氫電池充電管理電路軟件設計

        本系統利用電池電壓,溫升、充電時間以及電壓變化量等參數來綜合判斷是否應該結束充電過程。軟件按功能可以分為PWM控制模塊、計時模塊以及電壓檢測、電流檢測、溫度檢測等幾個部分。程序流程圖如圖2所示。

        系統工作時候,PIC16F676不斷檢測電池組端電壓。若此電壓數值低于1.25NVN為電池節數),檢測環境溫度,如果環境溫度在5~40度之內,則啟動PWM開始充電。在充電過程中,CPU不斷采集充電電流的大小,并將實測電流數值與設定數值相比較。若兩者相差超過10%時,調整占空比,可使充電電流維持在設定數值附近。另外,CPU還將不斷測量電池端電壓、電池溫度,并對充電時間進行計時。當這些參數滿足下列的充電終止條件時候,停止充電:當電池電壓大于設定電壓或者電池電壓出現5~10毫伏/分鐘/節的負△V變化時;電池溫度超過55度,或者出現0.5/分的溫升時候,充電時間大于180分鐘(本系統采用0.5C充電),都應該停止充電。

        在電池長時間閑置或者放電情況下,在充電前期電壓會出現起伏,形成-V。通過設置延時定時器,在充電初始10分鐘內不判斷電池電壓變化,可防止誤判斷終止充電。

        本系統軟件的核心部分為AD轉換和定時器產生PWM這兩個模塊。下面給出這兩個部分的相應的程序,編譯環境為PIC16

        ///////////////////////////////////AD初始化程序//////////////////////

        void AD() //電量測試子程序

        {

        ADCON0=0X59; //啟動AN3 AN0,AN1作模擬口

        ADCON1=0X84; //結果右移

        TRISA3=1; //做輸入口用

        ADGO=1; //啟動AD

        ADIF=0; //清除AD標志

        while(ADIF==1); //等待AD采樣完成

        ADIF=0; //清除AD標志

        while(ADGO)continue; //等待轉換結束

        }

        ///////////////////////////////////TMR1 定義///////////////////////////

        void tmint()

        {

        GIE=1;

        PEIE=1;

        TMR1IF=0;

        TMR1IE=1; //設置中斷使能

        T1CON=0x31; // 預分頻設置18 開定時器

        TMR1H=0x9E;

        TMR1L=0x57; //定時參數

        }

        /////////////////////////////////定時器中斷服務程序////////////////////////

        void interrupt clkint0(void)

        {

        TMR1IF=0;

        TMR1H=0x9E; //初值25000200毫秒

        TMR1L=0x57; //25000-1

        s0=1;

        }

        4 結論

        此充電電路經過實際調試,試驗性能可靠,可很好地實現快速充電和電池保護等功能能。而且簡單實用。通過修改軟件中相應的設定值,此電路不僅可以給不同節數的電池充電,也可以用來給鉛酸、鎳鉻、鋰離子等不同品種的電池充電。該電路具有很好的推廣價值。若能進一步完善該電路,在充電過程中加入具有去極化功能的放電環節,將會提高電池的充電接受能力。

        參考文獻:

        1 www.microchip.com
        2 www.corun.com
        金屬氫化物密封蓄電池技術手冊

        作者:武漢理工大學信息工程學院鄧穎
        武漢理工大學信息工程學院葉慶云
        北京建筑工程學院周渡海
        北京瑞薩科技半導體單片機應用事業部何此昂



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 舟曲县| 平度市| 张掖市| 虎林市| 临城县| 静安区| 临洮县| 庆云县| 铜梁县| 育儿| 阜城县| 兴宁市| 绥阳县| 五家渠市| 北辰区| 根河市| 阜阳市| 尚志市| 翼城县| 沙河市| 察隅县| 澄迈县| 蓬莱市| 建昌县| 静海县| 三台县| 华容县| 河间市| 康定县| 三门县| 乌拉特后旗| 亳州市| 丹寨县| 龙南县| 关岭| 普陀区| 公安县| 马山县| 安塞县| 本溪| 穆棱市|