專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
摘 要:
設(shè)計(jì)了基于單片機(jī)的智能充電器,介紹了其硬件和軟件實(shí)現(xiàn)。該充電器可以實(shí)時(shí)采集和計(jì)算電池的參數(shù),并進(jìn)行智能控制,還可以通過串口和上位機(jī)進(jìn)行通訊并進(jìn)行實(shí)時(shí)
關(guān)鍵詞:智能充電器 單片機(jī) 開關(guān)電源 鋰離子電池
現(xiàn)代通訊設(shè)備、便攜式電子產(chǎn)品、筆記本電腦、電動(dòng)汽車、小衛(wèi)星等普遍使用蓄電池作為電源,應(yīng)用非常廣泛。然而大多數(shù)設(shè)備中的蓄電池,只能使用專用的充電器,而且普通的充電器大多充電時(shí)間長(zhǎng),無法判斷其充電參數(shù)和剩余的充電時(shí)間。
本文介紹一種基于單片機(jī)的通用智能充電器的設(shè)計(jì)。充電器可以實(shí)時(shí)采集電池的電壓、電流,對(duì)充電過程進(jìn)行智能控制,計(jì)算電池已充的電量和剩余的充電時(shí)間;還可以通過串口和上位機(jī)進(jìn)行通訊并給用戶顯示必要的信息,有虛擬儀表的作用;另外,它也可以改變參數(shù),適應(yīng)各種不同電池的充電。這里列舉幾種不同的電池充電試驗(yàn),來說明智能充電器的實(shí)用價(jià)值。
1 智能充電器的硬件設(shè)計(jì)
智能充電器如圖1所示。主要包括電源變換電路、采樣電路、處理器、脈寬調(diào)制控制器和電池組等,形成了一個(gè)閉環(huán)系統(tǒng)[4]。下面對(duì)系統(tǒng)的工作原理分幾個(gè)部分進(jìn)行簡(jiǎn)述。
1.1 處理器
處理器采用51系列單片機(jī)89C51。單片機(jī)內(nèi)部有兩個(gè)定時(shí)器、兩個(gè)外部中斷和一個(gè)串口中斷、三個(gè)八路的I/O口,采用11.0592MHz的晶振。單片機(jī)的任務(wù)是通過采樣電路實(shí)時(shí)采集電池的充電狀態(tài),通過計(jì)算決定下一階段的充電電流,然后發(fā)送命令給控制器控制電流的大小。單片機(jī)通過串口RS232和上位機(jī)相連,用于存儲(chǔ)數(shù)據(jù)和虛擬顯示。
1.2 采樣部分
電壓和電流采樣采用模/數(shù)轉(zhuǎn)換器AD574。AD574為±15V雙電源供電,12位輸出,最大誤差為±4bit,合計(jì)電壓0.01V。
充電電流通過電流傳感器MAX471轉(zhuǎn)換為電壓值。電流采樣的電壓值和電池組的端電壓值兩者經(jīng)過模擬開關(guān)CD4051,再經(jīng)過電壓跟隨器輸入到AD574,分別進(jìn)行轉(zhuǎn)換,其結(jié)果由單片機(jī)讀取,并進(jìn)行存儲(chǔ)和處理。主要的電路連接如圖2所示。
1.3 控制器
控制器采用脈寬調(diào)制(PWM)方式控制供電電流的大小。PWM發(fā)生器由另一個(gè)20MHz的單片機(jī)構(gòu)成,主控制器和它采用中斷的方式進(jìn)行通訊,控制其增大或減小脈寬。PWM信號(hào)通過光電隔離驅(qū)動(dòng)主回路上的MOSFET。開關(guān)管、二極管、LC電路構(gòu)成開關(guān)穩(wěn)壓電源。用PWM方式控制的開關(guān)電源可以減小功耗,同時(shí)便于進(jìn)行數(shù)字化控制,但母線的紋波系數(shù)相對(duì)較大。PWM控制電路如圖3所示。
2 智能充電器的軟件設(shè)計(jì)
2.1 數(shù)據(jù)測(cè)量
在單片機(jī)的測(cè)量中,電池電壓值和電流測(cè)量值經(jīng)過多路選擇器進(jìn)行選擇,然后通過A/D轉(zhuǎn)換器轉(zhuǎn)換為16進(jìn)制數(shù),直接存入單片機(jī)。電池電容量C則需要間接計(jì)算,由于每個(gè)循環(huán) 周期檢測(cè)電流一次,故可以利用電流值的積分求出電容量C??紤]電池內(nèi)阻r的影響,可以得到計(jì)算電容量的計(jì)算公式為:
Cn+1=Cn+I·t-I2·r·t
充電時(shí)間和剩余充電時(shí)間由上位機(jī)進(jìn)行計(jì)算,剩余充電時(shí)間等于預(yù)設(shè)的充電時(shí)間與已充電時(shí)間的差值。其中,預(yù)設(shè)時(shí)間可根據(jù)電池的型號(hào)預(yù)先得到。
2.2 單片機(jī)控制程序設(shè)計(jì)
對(duì)于不同的電池和不同的參數(shù),單片機(jī)需要設(shè)定不同的充電參數(shù),選擇不同的充電策略。另外,程序需要在電池過電流、過電壓等異常情況下強(qiáng)制終止充電。以鋰離子電池為例,一般采用恒流-恒壓充電方式,其充電過程包括小電流預(yù)充電、大電流充電、恒壓充電等幾部分。其充電控制程序流程圖如圖4所示。
在控制恒定電流和恒定電壓的過程中,采用比例控制,即如果充電電流I大于設(shè)定電流Is,就按照比例減小脈寬;反之按照比例增大脈寬。單片機(jī)還需要接收和處理上位機(jī)的命令,并根據(jù)上位機(jī)的要求將數(shù)據(jù)實(shí)時(shí)回送給上位機(jī)。兩者的通訊協(xié)議要在程序中預(yù)先設(shè)定。
2.3 上位機(jī)處理程序設(shè)計(jì)
上位機(jī)程序由VisualC++編寫。其任務(wù)是每隔1秒鐘向串口發(fā)送一個(gè)查詢命令,并讀取單片機(jī)回送的信息,提取充電電流、充電電壓、工作狀態(tài)等參數(shù)。參數(shù)經(jīng)過數(shù)制轉(zhuǎn)換和計(jì)算后進(jìn)行顯示。軟件有著良好的用戶界面,可以方便地觀測(cè)電池目前的工作狀態(tài)以及剩余充電時(shí)間等信息。上位機(jī)程序會(huì)同時(shí)把讀到的數(shù)據(jù)存儲(chǔ)到文件中,這些數(shù)據(jù)可以利用其它數(shù)學(xué)軟件(如Matlab)進(jìn)行處理。
另外,程序在初始化時(shí)要把充電電池的型號(hào)參數(shù)發(fā)送給智能充電器,參數(shù)一般包括充電電池的種類(鋰離子電池、鎳鎘電池)、充電電池的容量(單位為mAh)等。根據(jù)不同的電池型號(hào),單片機(jī)可以設(shè)定不同的充電參數(shù),程序可以直接控制單片機(jī)的運(yùn)行與停止。
3智能充電器的應(yīng)用試驗(yàn)
3.1充電性能試驗(yàn)
這里選用型號(hào)為US18650的SONY鋰離子電池,其額定容量為1800mAh;經(jīng)過測(cè)量,電池在4.2V左右時(shí)的內(nèi)阻約為0.3Ω。取恒流充電電流為1/3C=0.6A,截止電壓為4.2V,充電結(jié)束標(biāo)志電流為0.06A,進(jìn)行充電試驗(yàn)。圖5為充電過程的電壓、電流和電容量的曲線。
圖6 NOKIA商用電池充電試驗(yàn)
充電時(shí)間約為240分鐘,如果需要進(jìn)一步縮短充電時(shí)間,只需在初始化時(shí)設(shè)定更大的充電電流即可。因?yàn)椴捎肞WM控制器,所以電源供電的效率高,從供電電源到充電電池的工作效率,最低時(shí)在85%左右。充電電流波動(dòng)較大,波動(dòng)系數(shù)約為5%。
3.2 智能充電器通用性試驗(yàn)
選用NOKIA6100鋰離子電池(額定容量為550mAh),用恒流-恒壓充電方式進(jìn)行充電,取恒流充電電流為0.15A,截止電壓為4.2V,充電曲線如圖6所示。
從充電曲線來看,電池電壓達(dá)到3.96V時(shí)就不再上升了,充電電流也不再下降了??梢耘袛嗌逃秒姵貎?nèi)部有保護(hù)電路,將多余的電流旁路了,這樣的保護(hù)電路使充電過程中能量損耗很大。試驗(yàn)曲線顯示在四小時(shí)時(shí)電池電量已經(jīng)達(dá)到550mAh,但實(shí)際上并沒有達(dá)到滿充。此實(shí)驗(yàn)證明,此充電器可以作為一般的商用電池的通用充電器,充電速度快,效果良好。不足的是它與實(shí)際的充電電池在機(jī)械接口上還不能匹配,需要進(jìn)一步改進(jìn)