基于ATmega8智能充電器的設計_第1頁
基于ATmega8智能充電器的設計_第2頁
基于ATmega8智能充電器的設計_第3頁
基于ATmega8智能充電器的設計_第4頁
基于ATmega8智能充電器的設計_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、基于atmega8智能充電器的設計 【摘要】移動通訊、消費類數(shù)碼產(chǎn)品、筆記本電腦、便攜儀器等便攜設備市場的不斷擴張,使得我們對電池的性能和工作壽命的要求不斷地提高。從上世紀60年代商用鎳鎘充電電池到近幾年的鋰離子電池,可充電電池容量和性能得到了飛速的發(fā)展。充電電池的使用離不開對其補充能量的充電器,而且充電器的好壞將會直接影響到電池的充電性能和使用壽命。本文詳細介紹了鎳鎘、鎳氫、鋰電池這三種最為常用的充電電池的特點,同時介紹利用atmega8和buck開關(guān)電源設計的智能充電的設計和電路工作原理,充電期間對溫度、電壓、電流三項實時檢測,并通過測的值來改變工作狀態(tài)和停充。還設計通過恒流放電到最低限制

2、電壓來測量電池的容量。并通過lcd12864實時的顯示電壓、電流、溫度、充放電狀態(tài)等信息。1. 概述隨著人們生活水平的提高及科技的發(fā)展,很多的設備出現(xiàn)小型化和智能化,電子產(chǎn)品中的小型便攜產(chǎn)品離不開對其提供能源的電源,針對這一狀況,應運而生的充電式電池飛速的增長,而隨之對于充電器的要求也越來越高,人們希望充電器能完全按照人的思維充電,即快速、安全、準確、方便的對電池進行充電。根據(jù)人們對“智能”充電器的要求,對于純粹的硬件電路已經(jīng)很難實現(xiàn)智能化,而且勢必硬件電路會很復雜。但是嵌入式系統(tǒng)出現(xiàn)解決了這一難題,嵌入式系統(tǒng)內(nèi)部集成眾多的接口及功能模塊,而且可以通過編程去盡可能的實現(xiàn)人的思維,可以很方便的實

3、現(xiàn)軟件的更新,這樣也就加快了充電器的更新速度,使發(fā)展的更快。便攜式電子產(chǎn)品目前主要是鎳氫(nimh)、鎳鎘(nicd)、鋰充電電池(li-lon),三種充電電池都有輕便、性價比高、放電電流大、壽命長等特點,因此在各種通信設備、電動工具、儀器儀表中有著廣泛的應用。普通充電器對電池采取小電流充電方式,沒什么電壓電流保護電路。這樣,將導致電池充滿所需時間長,且容易造成電池過充,影響電池壽命甚至引起事故。所謂的智能充電器,是指在充電過程中可對電壓、電流、溫度進行實時檢測,并根據(jù)檢測的結(jié)果,對檢測的結(jié)果進行判斷以調(diào)節(jié)各種的充電狀態(tài),能最大限度的延長電池壽命,縮短充電時間的充電器。本充電器通過單片機設計的

4、智能快速充電器能夠判斷電池狀態(tài),控制電池的快速充電,適用于不同容量小型的nicd、 nimh和li-lon 電池。該方法能大大縮短充電時間,并能防止電池出現(xiàn)過充現(xiàn)象。本充電器核心是atmega8,是avr單片機的一種,具有極高的性價比,avr 微處理器是當前市場上能夠以單片方式提供flash、pwm 和10 位adc的最高效的8 位risc微處理器。由于程序存儲器為flash,因此可以不用象mask rom一樣,有幾個軟件版本就庫存幾種型號。flash 可以在發(fā)貨之前再進行編程,或是在pcb貼裝之后再通過isp 進行編程,從而允許在最后一分鐘進行軟件更新。10 位a/d 轉(zhuǎn)換器可以提供足夠的測

5、量精度,使得充好后的容量更接近其最大容量。而其他方案為了達到此目的,可能需要外部的adc,不但占用pcb 空間,也提高了系統(tǒng)成本。本充電器可對1-3節(jié)鎳鎘、鎳氫、單節(jié)鋰電池進行最優(yōu)化充電,可最大限度使電池達到最大壽命。電池在不斷的充放電中容量會逐漸的減小,但是電池究竟容量為多少?目前市場極少有此設備,為此,本充電器設計一電池容量檢測功能,通過對電池恒流放電到最低限制電壓,計算出時間得到電池容量。這也是本充電器的又一獨到之處。2. 總體設計方案2.1 設計方框圖本智能充電器主控采用的是mcu,按照充電器的設計思路,可得到如下的方框圖。 電源控制電池控制核心電壓、電流、溫度采樣顯示部分按鍵控制圖2

6、-1 智能充電器總體方框圖2.2 方案論證與比較2.2.1 控制核心的選擇核心部件必須得是可程序控制的器件,才能體現(xiàn)人性化,所以主控芯片從mcu入手。由此,得到以下幾個方案的設計。方案一:采用傳統(tǒng)8位的51單片機,具有價格低廉,使用簡單,技術(shù)支持較多等特點,但其采用復雜指令集(cisc),且機器周期長,這勢必影響到對程序讀取速度,而且51單片機內(nèi)部沒集成其他接口功能模塊,如a/d,pwm,d/a等。本設計中信號采集,電源控制需pwm,a/d,d/a模塊,這只能增加外圍模塊,硬件、軟件、成本都得增加。方案二:采用arm或dsp之類32位的嵌入式模塊。這樣的芯片具有處理速度快、程序儲存器大、功能模

7、塊多等優(yōu)點,但都采用貼片式小封裝,有眾多的管腳(本充電器只需十幾個管腳),硬件上的焊接設計難度大,成本高,大材小用。方案三:采用atmel公司生產(chǎn)的avr系列atmega8單片機,該單片機采用精簡指令集(risc),一個時鐘周期對應一個機器周期,在速度上可達到要求,而且內(nèi)部集成了a/d、pwm等模塊,具有8k的flash儲存器,而成本只和傳統(tǒng)51相當,是有極高性價比的單片機。綜上論證,本充電器采用方案三。2.2.2 電源控制的選擇電源控制主要是通過mcu輸出控制電源模塊的電流的改變,從而起到調(diào)節(jié)電壓或電流的目的。目前常有的管理電源有兩種方法,一是模擬式,二是開關(guān)式。現(xiàn)對兩種充電方式進行比較。方

8、案一:采用模擬式電源調(diào)節(jié)方法,就是用模擬量去控制功率三極管等調(diào)節(jié)器件,使其輸出隨著輸入模擬量改變而改變,這種方法的好處是電源波紋小,輸出電的質(zhì)量高,但其有一致命弱點功率消耗太大,很多的電能被功率管以發(fā)熱的形式白白浪費掉,效率一般20%-40%,不符合綠色用電規(guī)范。功率管也由于產(chǎn)生大量的熱而需面積龐大的散熱片來保護功率管。方案二:采用開關(guān)式電源調(diào)節(jié)方法。此種方式是使功率管處于開關(guān)狀態(tài),通過儲能電感間歇的充放電來改變電壓的。這種方式最大優(yōu)點是電源效率高,一般60%-90%,人們?nèi)粘I罴肮I(yè)生產(chǎn)中開關(guān)電源是越來越多。這種方式的電源輸出電壓是脈動的方波,需整流后才能使用,但存在整流輸出波紋大的缺點,

9、不過加強濾波,可以使波紋控制在一定的范圍內(nèi)。從論證來看,開關(guān)式有著模擬式不可比擬的優(yōu)點,因此選方案二。2.2.3 顯示器件的選擇一個實用的充電器必須得包含顯示電路,這樣才能使使用者查看電池的狀態(tài),及是否完成等,因此顯示電路得到以下幾個方案。方案一:采用led顯示。發(fā)光二極管具有驅(qū)動電流小,各種顏色顯示直觀,接口電路簡單,成本低的特點,一般led只是作為指示用,很難顯示一個具體的值,對于調(diào)試、程序設計者需要查看各種值就顯的無力。從設計上來看不用led。方案二:采用led數(shù)碼管來顯示,這種器件需要外圍器件電路來驅(qū)動,需要較大的電流,當顯示很多值時,需很多的數(shù)碼管,這樣在設計上復雜,成本也會很高,而

10、且需要的接口也較多,從一般的設計上不宜采用。方案三:采用lcd1602顯示。lcd1602可采用四線或八線方式傳輸數(shù)據(jù),另需兩、三根控制線,接口較簡單,成本也不高,顯示較直觀,省電,但lcd1602只能顯示字符、數(shù)字及很少的簡單漢字,在顯示多組數(shù)據(jù)時略顯不足。方案四:采用lcd12864顯示。lcd12864是圖形,漢字顯示器件,可顯示16*16漢字32個,16*8字符數(shù)字64個,功能很多,顯示直觀,不過成本較高。總體有一定的性價比。lcd12864有很多中主控芯片,根據(jù)本設計電路的特點,只是顯示漢字、字符和數(shù)字,并不需要顯示圖形,因此可采用帶中文字庫的lcd,而采用st7920作主控芯片的l

11、cd12864具有接口電路簡單,程序控制方便,不用人為生成漢字,節(jié)約程序空間。st7920的接口方式有并口和串口兩種方式,采用串口總的數(shù)據(jù)線最少只需兩根,這對于硬件設計會簡單的多。在設計中用lcd12864實時顯示電壓、電流、溫度、狀態(tài)等信息,顯示直觀,對于設計來說也提供了幫助。所以本智能充電器采用的是lcd12864。2.2.4 溫度采集模塊的選擇智能充電器得用到溫度采集模塊,這里有三種供選擇,ds18b20、lm35、熱敏電阻?,F(xiàn)在對其一一考慮。方案一:用高集成度單片機控制芯片ds18b20。這在三種選擇之中是最貴的,但是此器件溫度已經(jīng)校準,而且里面集成有溫度上下限報警、eeprom等,它

12、通過嚴格的單線時序?qū)ζ渥x或?qū)?,不過要浪費mcu很多的時間和程序儲存器。方案二:用高精度模擬輸出溫度芯片lm35。這種芯片亦不用進行調(diào)節(jié)而可直接讀取,它輸出的是把溫度值化為具體的電壓值,不過讀取器件得有ad口。這在三者中價格居中。方案三:用熱敏電阻進行讀取,它最大的優(yōu)點是價格便宜,不過熱敏電阻隨溫度變化不是直線,需手工進行測量編出數(shù)組以對應具體的溫度值,由于自己校準的設備不全,難度大,而且也得需要有ad口的mcu來讀取。綜上所述,充分發(fā)揮atmega8單片機有ad口的優(yōu)勢,采用方案二,它具有相應快,讀取簡單,接口方便的優(yōu)點。2.2.5 采樣電路的設計在充電或放電中需對電池的各種信息進行測量,以作

13、出應對,因此需信息檢測電路。因送入mcu中的信息是模擬量,若直接送入mcu的ad口,有比ad口最大測量電壓高的量,有比ad最大輸入最大值低得多的量,也有跟其反相的量,因此不能直接送入ad口,需外圍變換電路,以降低電壓保護ad口或升高電壓使ad口測量精度最高或使電壓反相以便于測量,所以需要通過運放電路來實現(xiàn)上述變換。因為充電器提供的電源是單電源,不宜使用雙電源運放,這樣會使電路很復雜,從單電源運放來看,最宜采用通用運放lm324和lm358。這兩種運放可單、雙電源供電,在單電源下供電電壓3v-30v,價格便宜,性能也不錯。本次設計一共用6個運放,因此用一片lm324(四運放)加一片lm358(雙

14、運放)。2.2.6 按鍵設計按鍵一般有兩類,一類是單一接口控制按鍵,一類是矩陣按鍵。矩陣按鍵在按鍵多的情況下用,可大大節(jié)省端口,另一類在按鍵少時用。在本次設計中共用五個按鍵,因此采用一對一接口按鍵。在這種按鍵下一般采用按下時低電平有效的方法,因此需上拉電阻,為了使設計簡單化,又充分發(fā)揮atmega8的優(yōu)點,使能內(nèi)部上拉,因此可省去外部上拉電阻,只用一按鍵接地就可。3.充電原理電池充電是通過逆向化學反應將能量存儲到化學系統(tǒng)里實現(xiàn)的。由于使用的化學物質(zhì)的不同,電池有自己的特性。設計充電器時要仔細了解這些特性以防止過度充電而損壞電池。3.1 電池技術(shù)3.1.1 鎳鎘電池(nicd)nicd 電池前幾

15、年使用普遍的充電電池。它的優(yōu)點是價格便宜,易于使用;缺點是自放電率比較高,存在記憶效應。典型的nicd 電池可以充電1,000 次。失效機理主要是極性反轉(zhuǎn)。在電池包里第一個被完全放電的單元會發(fā)生反轉(zhuǎn)。為了防止損壞電池包,需要不間斷地監(jiān)控電壓。一旦單元電壓下降到1.0v 就必須停機。nicd 電池一般以恒定電流的方式進行充電。因為鎳鎘電池會對環(huán)境產(chǎn)生污染,因此將逐漸的推出市場。3.1.2 鎳氫電池(nimh) 繼鎳鎘電池后,重量更輕容量更大的nimh電池得到更為普遍的使用。在數(shù)碼相機、數(shù)碼攝像機等便攜式設備中都能見到nimh電池的身影。鎳氫電池容量比鎳鎘電池高1.5-2倍,且具有不污染環(huán)境、價格

16、便宜、性能好等優(yōu)點。由于過充電會造成nimh 電池的失效,在充電過程中進行精確地測量以在合適的時間停止是非常重要的。和nicd 電池一樣,極性反轉(zhuǎn)時電池也會損壞。nimh 電池的自放電率大概為20%/ 月。和nicd 電池一樣,nimh 電池也為恒定電流充電。3.1.3 鋰電池(li-lon) 近幾年,鋰電池得到長足的發(fā)展。和本文中所述的其他電池相比,鋰電池具有最高的能量/ 重量比和能量/ 體積比、無記憶效應等優(yōu)點但是鋰電池成本較高而且對充電器的要求也是最高的。鋰電池以恒定電壓進行充電,同時要有電流限制以避免在充電過程的初期電池過熱。當充電電流下降到生產(chǎn)商設定的最小電流時就要停止充電。過充電將

17、造成電池損壞,甚至爆炸。3.2 電池的安全充電現(xiàn)代的快速充電器( 即電池可以在小于3 個小時的時間里充滿電,通常是一個小時) 需要能夠?qū)卧妷骸⒊潆婋娏骱碗姵販囟冗M行精確地測量,在充滿電的同時避免由于過充電造成的損壞。3.2.1 充電方法 鋰電池的充電方法為恒定電壓法要限流;nicd電池和nimh電池的充電方法為恒定電流法,且具有幾個不同的停止充電的判斷方法。3.2.2 最大充電電流 最大充電電流與電池容量(c) 有關(guān)。最大充電電流往往以電池容量的數(shù)值來表示。例如,電池的容量為750mah,充電電流為750ma,則充電電流為1c(1 倍的電池容量)。若涓流充電時電流為c/40,則充電電流即為

18、電池容量除以40。3.2.3 過熱 電池充電是將電能傳輸?shù)诫姵氐倪^程。能量以化學反應的方式保存了下來。但不是所有的電能都轉(zhuǎn)化為了電池中的化學能。一些電能轉(zhuǎn)化成了熱能,對電池起了加熱的作用。當電池充滿后,若繼續(xù)充電,則所有的電能都將轉(zhuǎn)化為電池的熱能。在快速充電時這將使電池快速升溫,若不及時停止充電就會造成電池的損壞。因此,在設計電池充電器時,對溫度進行監(jiān)控并及時停止充電是非常重要的。3.3 停止充電的判別方法 電池的不同應用場合及工作環(huán)境限制了對判斷停止充電的方法的選擇。有時候溫度不容易測得,但可以測得電壓,或者是其他情況。本文以電壓變化率(-dv/dt) 為基本的判斷停止充電的方法,而以溫度和

19、絕對電壓值為輔助和備份。但是本文所描述的硬件支持以下講述的所有的方法。3.3.1 t-時間 這是決定何時停止充電的最簡單的方法。通常用于快速充電時的后備方案。有時也作為普通充電 (14 - 16 小時)方法的基本方案。適用于各種電池。3.3.2 v-電壓當電壓超出上限時停止充電。通常與恒定電流充電配合使用。最大電流由電池決定,通常為1c。為了防止充電時電流過大導致電池過熱,此時電流限制是非常關(guān)鍵的。這個方法是鋰電池的基本充電和停止方案。實際鋰電池充電器往往在達到最大電壓之后還繼續(xù)進行第二階段的充電,以達到100% 的電池容量。對于nicd 電池和nimh 電池本方法可以作為后備的判斷停止充電方

20、案。3.3.3 -dv/dt-電壓變化率 這個判斷停止充電的方法利用了負的電壓變化率。對于某些類型的電池,當電池充滿后繼續(xù)充電將導致電壓的下降。此時本方案就非常合適了。這個方法通常用于恒定電流充電,適用于對nicd 電池和nimh 電池的快速充電。3.3.4 i-電流 當充電電流小于某個預先設定的數(shù)值時停止充電。通常用于恒定電壓充電法。適用于鋰電池。3.3.5 t-溫度絕對溫度可以作為nicd電池和nimh電池停止充電的依據(jù),但是更適合于作為備份方案。溫度超出設定值時任何電池都得停止充電。3.4 影響充電電池使用壽命的因素3.4.1 鎳鎘、鎳氫電池影響鎳氫、鎳鎘電池使用壽命的主要因素是過充電和

21、充電時電池溫度過高(通常要求電池溫度保持在45度以下進行充電)。另外,由于鎳鎘電池具有記憶效應,因此,如果在鎳鎘電池存儲的電量沒有完全放完的情況下充電的話,也會影響電池的使用壽命。3.4.2 鋰電池影響鋰電池使用壽命的主要因素有以下幾點: 過放電:鋰電池放電過程中,鋰離子不斷地從電池負極移動到電池正極,但是不能使鋰離子完全地移動,必須保留一部分鋰離子在電池負極中。否則電池壽命就會大大地縮短。為保證電池放電結(jié)束后電池中還保留部分鋰離子,就要求電池在使用中不能過放電。通常鋰電池單體的終止放電壓為3.0,不要低于2.7v。 充電溫度:通常要求鋰電池在充電過程中溫度不能超過50度,否則會影響電池使用壽

22、命。 最高充電電壓:鋰電池的最高電壓為4.2v,否則會使正極的鋰離子移動太多,從而大大縮短電池的使用壽命。3.5 智能充電器的設計要求幾乎是所有用戶都希望充電器的充電速度越快越好。因此,充電器能夠提供的充電速率就是充電器設計的一個重要指標,但是要提高這個指標的前提是充電器必須能夠在快速充電階段能夠準確的判斷電池的狀態(tài)。快速充電器的一個本質(zhì)特征就是在過度充電之前自動降低充電速率。同時充電速率最好也不要超過電池生產(chǎn)商的建議值,通常不要超過2c的充電速率。 因此,一個安全可靠的充電器就需要能夠在電池的充電過程中能夠嚴格的控制電池的充電電流、電壓、溫度等物理參數(shù)。因此,智能型充電器通常應該包括恒流/恒

23、壓控制環(huán)路、電池電壓監(jiān)測電路、電池溫度監(jiān)測電路等基本單元。智能充電器的基本硬件方框圖如下圖所示: 圖3-1 智能充電器硬件方框圖4. 硬件設計 硬件設計包含mcu、buck變換器、信息采樣、電壓基準、按鍵、lcd顯示等電路,現(xiàn)介紹如下:4.1 mcu電路4.1.1 mcu簡介本充電器設計采用atmel公司2002年推出的一款avr高檔單片機atmega8。其內(nèi)部集成了大容量的存儲器,提供了pwm脈寬調(diào)制脈沖產(chǎn)生器、多路ad轉(zhuǎn)換器、實時時鐘電路、串行接口等硬件接口。非常適合用作智能型充電器的mcu控制單元。atmega8有dip28和tqfp/mlf32三種封裝類型。我們選擇了dip28封裝,如

24、下圖所示: 圖4-1 atmega8封裝atmega8是基于增強的avr risc結(jié)構(gòu)的低功耗8位cmos微控制器。由于其先進的指令集以及單時鐘周期指令執(zhí)行時間, atmega8 的數(shù)據(jù)吞吐率高達1 mips/mhz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。avr 內(nèi)核具有豐富的指令集和32 個通用工作寄存器。所有的寄存器都直接與算邏單元(alu)相連接,使得一條指令可以在一個時鐘周期內(nèi)同時訪問兩個獨立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的cisc微控制器最高至10 倍的數(shù)據(jù)吞吐率。atmega8有如下特點:8k字節(jié)的系統(tǒng)內(nèi)可編程flash(具有同時讀寫的能力,即rww),

25、512 字節(jié) eeprom,1k 字節(jié) sram,32 個通用i/o 口線,32 個通用工作寄存器,三個具有比較模式的靈活的定時器/ 計數(shù)器(t/c), 片內(nèi)/ 外中斷,可編程串行usart,面向字節(jié)的兩線串行接口, 10 位6 路 (8 路為tqfp 與mlf 封裝)adc,具有片內(nèi)振蕩器的可編程看門狗定時器,一個spi 串行端口,以及五種可以通過軟件進行選擇的省電模式。工作于空閑模式時cpu 停止工作,而sram、t/c、 spi 端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時晶體振蕩器停止振蕩,所有功能除了中斷和硬件復位之外都停止工作;在省電模式下,異步定時器繼續(xù)運行,允許用戶保持一個時間基準,而

26、其余功能模塊處于休眠狀態(tài); adc 噪聲抑制模式時終止cpu 和除了異步定時器與adc 以外所有i/o 模塊的工作,以降低adc 轉(zhuǎn)換時的開關(guān)噪聲; standby 模式下只有晶體或諧振振蕩器運行,其余功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時具有快速啟動能力。本芯片是以atmel 高密度非易失性存儲器技術(shù)生產(chǎn)的。片內(nèi)isp flash 允許程序存儲器通過isp 串行接口,或者通用編程器進行編程,也可以通過運行于avr 內(nèi)核之中的引導程序進行編程。引導程序可以使用任意接口將應用程序下載到應用flash存儲區(qū)(applicationflash memory)。在更新應用flash存儲區(qū)

27、時引導flash區(qū)(boot flash memory)的程序繼續(xù)運行,實現(xiàn)了rww 操作。 通過將8 位risc cpu 與系統(tǒng)內(nèi)可編程的flash 集成在一個芯片內(nèi),atmega8 成為一個功能強大的單片機,為許多嵌入式控制應用提供了靈活而低成本的解決方案。4.1.2 mcu控制單元電路mcu控制單元電路如下圖所示:圖4-2 atmega8控制口電路 圖4-3 lc濾波電路mcu系統(tǒng)時鐘和實時時鐘的選擇: atmega8具有5種類型的系統(tǒng)時鐘源,即外部晶振、外部低頻晶振、外部rc振蕩、內(nèi)部rc振蕩及外部時鐘。由于充電器在充電過程中需要計算充電時間,因此智能充電器的設計中必須包括實時時鐘源。

28、根據(jù)atmega8的時鐘源特點,本充電器的mcu系統(tǒng)時鐘選擇使用可校準的內(nèi)部rc振蕩器產(chǎn)生8m時鐘,外接32.768khz的晶振做為實時時鐘的時鐘源。pwm脈寬調(diào)制波產(chǎn)生器: atmega8具有3個定時/計數(shù)器,可以實現(xiàn)定時/計數(shù)功能外,還具有任意小于16位相位和頻率可調(diào)的pwm脈寬調(diào)制輸出功能。本充電器使用t/c1產(chǎn)生pwm,為了獲得較高的pwm脈沖頻率,t/c1的工作模式選擇快速模式。pwm脈沖從pb1(15腳)輸出,送入buck變換器中。pb2是做為放電控制輸出,它經(jīng)過兩級rc濾波,用運放提高電壓和驅(qū)動能力,控制功率三極管去改變電流,從而改變了放電電流。ad轉(zhuǎn)換器: dip28封裝形式的

29、atmega8具有4個10位精度和2個8位精度的ad轉(zhuǎn)換通道。本充電器在充電過程中需要隨時采集電池的充電電流、放電電流、電池電壓和電池溫度,共需要4個ad轉(zhuǎn)換通道。我們采用adc0(pc0)采集充電電流數(shù)據(jù),adc1(pc1)采集放電電流,adc2(pc2)采集電壓,adc3(pc3)采集溫度信息。 模擬地的處理:atmega8的21腳aref是ad轉(zhuǎn)換器的電壓參考源。20腳avcc是ad轉(zhuǎn)換器的電源引腳,為了減小電磁干擾提高測量精度,avcc是通過l1和c6組成的lc網(wǎng)絡才連接至5v電源端。下載端口:atmega8單片機下載方式為isp下載,只需用四根數(shù)據(jù)線接口即可引出即可。它采用的是spi

30、傳輸方式,這種方式下載簡化了程序更新的難度,可隨時更新程序。4.2 buck變換器這部分也就是用pwm方式控制的恒流/恒壓電路。由于此種電路中開關(guān)管是工作在開關(guān)狀態(tài),因此電路的工作效率較高。buck電路如下圖所示: 圖4-4 buck變換器原理圖工作原理:當開關(guān)管q導通時,輸入電源通過電感l(wèi)向電容c充電,同時電感l(wèi)開始存儲能量。當q斷開后,電感要保持電流從而開始釋放能量,二極管d開始導通,電感繼續(xù)給電容充電。開關(guān)管周期性的導通,從而保證了電路輸出恒定的輸出電壓。如果開關(guān)管的導通時間增加,則輸出電壓升高,充電電流加大。反之則輸出電壓下降,充電電流下降。因此,通過調(diào)整pwm的占空比,就可以實現(xiàn)實現(xiàn)

31、充電器的恒流和恒壓功能。占空比與輸出電壓的關(guān)系如下: (4-1) 其中: :開關(guān)管導通時間 t :pwm脈沖的周期 :輸入電壓 :輸出電壓 :開關(guān)管的飽和壓降 :二極管導通壓降 電感l(wèi)的計算方法如下: (4-2) 其中: = 2 = 最大輸出電流 本充電器的buck電路下圖所示:圖4-5 充電器buck模塊下面講述本充電器buck的設計: 從圖中可看出開關(guān)電源的功率管采用mosfet,而沒有采用晶體管,是因為mosfet在開關(guān)狀態(tài)有著更小的導通電阻和更快的導通速度,本設計用p型mosfet管irf9640,其導通電阻為0.5,導通電壓為9v,因此單片機的pwm輸出只有5v,不能使功率管完全導通

32、,所以用了一個8050三極管所為驅(qū)動,8050放電倍數(shù)大約300倍,可使功率管工作于開關(guān)狀態(tài),同時8050還可起到保護單片機芯片的作用,免受漏感導致的端口穿擊,效率較高。二極管可采用導通時間小的肖基特二極管或快速二極管,其電流需2a。atmega8采用內(nèi)部rc生成12mhz的頻率,pwm采用快速模式,9位精度,可得到下列數(shù)據(jù): 振蕩器頻率: = 12mhz輸入電壓: = 12v 輸出最大電壓: = 5v最大輸出電流: = 1a開關(guān)管飽和壓降: = 0.5v二極管導通壓降: = 1v可得: 由公式(4-1)得: 再由公式(4-2)算得為: 4.3 ad基準源的設計本電路為了使ad誤差減小,沒有內(nèi)

33、部2.56v基準源,而采用tl431作為基準源,以減小誤差。tl431是一個具有良好的熱穩(wěn)定性能的三端可調(diào)基準電源。其典型工作原理圖如下圖所示: 圖4-6 tl431典型接法tl431有3個引腳,分別為:陰極c(cathode)、陽極a(anode)和參考端r(ref)。tl431的內(nèi)部含有一個2.5v左右的基準電壓,所以當在ref端引入輸出反饋時,器件可以通過從陰極到陽極很寬范圍的分流,控制輸出電壓。輸出電壓可以控制在(2.5v)到36v范圍內(nèi)。當r12和r16的阻值確定時,兩者對vo的分壓引入反饋,若v o增大,反饋量增大,tl431的分流也就增加,從而又導致下降。顯見,這個深度的負反饋電

34、路必然在vi等于基準電壓處穩(wěn)定,此時。選擇不同的r1和r2的值可以得到從2.5v到36v范圍內(nèi)的任意電壓輸出,特別地,當r1=r2時,vo=5v。需要注意的是,在選擇電阻時必須保證tl431工作的必要條件,就是通過陰極的電流要大于1 ma 。 充電器基準源部分如下圖所示: 圖4-7 充電器電壓基準模塊 本充電器選擇的基準電壓值(10)2.52.5v ,實際測量基準為2.49v。4.4 信息采樣電路 本充電器需要實時監(jiān)控充電過程中的充電電流、電池電壓、電池溫度以及放電電流值。因此需要運放電路來對這些參數(shù)進行放大。lm324是一款使用普遍且價格便宜的4運放集成電路。其工作電壓為332v,封裝如下圖

35、所示: 圖4-8 lm324封裝圖 由于正常工作狀態(tài),buck電路會產(chǎn)生高頻干擾,因此為了是lm324收到較小的干擾,lm324的工作電壓用atmega8經(jīng)過lc濾波后的模擬電源。4.4.1 充電電流采樣的設計充電器電流采樣是用串入電路的0.25采集電阻兩端電壓來檢測電流的,具體電路如下圖所示: 圖4-9 充電電流采集電路由圖可以看出,此電路為同相比例運算電路,因此輸出和輸入的關(guān)系如下: (4-3) 因此可得出當充電電流最大(1a)時,r14 、r15上的電壓為 而當adc0可采集的最大電壓(2.49v)時對應輸入為 因此可符合最大電流的條件。4.4.2 放電電流采集的設計放電電流同充電采集是

36、用同一個采用電阻,不過當放電時,流過電阻的電流同充電是電流的流向是反向的,因此在不涉及負電源供電的情況下,采用反相比例運算電路,具體電路如下圖: 圖4-10 放電電流采集電路 反相比例運算電路輸出與輸入的關(guān)系為: (4-4)充電器最大放電電流設計為0.75a,因此可得到采用電阻上的最大電壓為 當ad1采集到最大值(2.49v)時對應的輸入為 可滿足最大放電電流的條件。4.4.3 電池兩端電壓采集設計電壓的采集是電池兩端的電壓,而不是電池正極的電位值,因此充電器設計是用差分放大電路來實現(xiàn)的。具體電路如下圖所示: 圖4-11 電池電壓檢測電路如圖所示,輸入電壓與輸出電壓的關(guān)系為: (3-5)其中

37、r18=r8 r19=r11當電池最大電壓(設為5v)時,輸出值為: ad2最大值可為2.49v,所以滿足條件。4.4.4 溫度采集設計 充電器溫度采集采用的是lm35集成電路,它具有以下特點: lm35是一款精密集成電路溫度傳感器,其輸出的電壓線性地與攝氏溫度成正比。lm35系列傳感器生產(chǎn)制作時就已經(jīng)過校準過,其輸出電壓與攝氏溫度一一對應,使用極為方便。其靈敏度為10.0mv/,精度在0.4至0.8(-55至+150溫度范圍內(nèi)),低輸出阻抗,線性輸出和內(nèi)部精密校準使其與讀出或控制電路接口簡單和方便,可單電源和正負電源工作。 本充電器選用了lm35dm型號,封裝類型為貼片封裝,如下圖所示。工作

38、溫度范圍為0至+100。 圖4-12 lm35dm封裝圖 典型應用 利用數(shù)字表可以直接測量溫度,如室溫25時,表上讀數(shù)為0.25v。如下圖所示: 圖4-13 lm35測試圖本充電器溫度測量電路如下圖所示: 圖4-14 充電器溫度采集電路從圖中可看出,采用的是同相比例放電電路,由公式(4-3),ad3口最大電壓可為2.49v,可算出最大溫度為 電池最大溫度為10t,而t50,符合條件,兩級的目的使變成更為平滑的直流,即實現(xiàn)了pwm-da的轉(zhuǎn)化,rc的值也不宜極限大,否則輸出衰減太大,同時動態(tài)響應也慢。兩級rc輸出的直流信號最大值為mcu的工作電壓,即5v。為了能更好的驅(qū)動功率管,雙運放lm358

39、用的是12v供電,大約輸出口為10v電壓,圖中的運放是同相比例放大,由公式4-3得 圖4-16為了加強功率三極管的驅(qū)動而采用一射級跟隨器,特點是輸入與輸出不變,圖中的d1264為功率三極管,最大電流為3a,最大功率為30w,完全可滿足要求,其放電倍數(shù)大約,所以可得到如下結(jié)果: 而放電電流最大,滿足條件。 4.6 lcd12864顯示電路的設計 本設計中用的lcd12864是漢字圖形點陣液晶顯示模塊,主控芯片是st7920和st7921,可顯示漢字及圖形,內(nèi)置8192個中文漢字(16x16點陣)、128 個字符(8x16 點陣)及64x256 點陣顯示ram(gdram)。主要技術(shù)參數(shù)和顯示特性

40、:電源:vdd 3.3v+5v(內(nèi)置升壓電路,無需負壓);顯示內(nèi)容:128 列 64 行顯示顏色:黃綠顯示角度:6:00 鐘直視lcd 類型:stn與mcu 接口:8 位或4 位并行或2、3 位串行配置 led 背光多種軟件功能:光標顯示、畫面移位、自定義字符、睡眠模式等在本設計中用的是串行通訊協(xié)議,所以這里只對串行通訊進行介紹。串行線模式數(shù)據(jù)傳輸工程如下圖:圖4-17 串行線模式數(shù)據(jù)傳輸串行數(shù)據(jù)傳送共分三個字節(jié)完成:第一字節(jié):串口控制格式 11111abca 為數(shù)據(jù)傳送方向控制:h 表示數(shù)據(jù)從lcd 到mcu,l 表示數(shù)據(jù)從mcu 到lcdb 為數(shù)據(jù)類型選擇:h 表示數(shù)據(jù)是顯示數(shù)據(jù),l 表示

41、數(shù)據(jù)是控制指令c 固定為0第二字節(jié):(并行)8 位數(shù)據(jù)的高4 位格式 dddd0000第三字節(jié):(并行)8 位數(shù)據(jù)的低4 位格式 dddd0000串口接口管腳如下圖:此種lcd的控制命令較多,現(xiàn)介紹如下:1、 清除指令功能:清除顯示屏幕,把ddram 位址計數(shù)器調(diào)整為“00h”2、 位址歸位 功能:把ddram 位址計數(shù)器調(diào)整為“00h”,游標回原點,該功能不影響顯示ddram3、 進入點設定 功能:把 ddram 位址計數(shù)器調(diào)整為“00h”,游標回原點,該功能不影響顯示ddram 功能:執(zhí)行該命令后,所設置的行將顯示在屏幕的第一行。顯示起始行是由z 地址計數(shù)器控制的,該命令自動將a0-a5

42、位地址送入z 地址計數(shù)器,起始地址可以是0-63 范圍內(nèi)任意一行。z 地址計數(shù)器具有循環(huán)計數(shù)功能,用于顯示行掃描同步,當掃描完一行后自動加一。4、 顯示狀態(tài)開/關(guān)功能: d=1;整體顯示on c=1;游標on b=1;游標位置on5、 游標或顯示移位控制功能:設定游標的移動與顯示的移位控制位:這個指令并不改變ddram 的內(nèi)容6、 功能設定功能:dl=1(必須設為1) re=1;擴充指令集動作 re=0:基本指令集動作7、 設定cgram 位址功能:設定cgram 位址到位址計數(shù)器(ac)8、 設定ddram 位址功能:設定ddram 位址到位址計數(shù)器(ac)9、 讀取忙碌狀態(tài)(bf)和位址功

43、能:讀取忙碌狀態(tài)(bf)可以確認內(nèi)部動作是否完成,同時可以讀出位址計數(shù)器(ac)的值10、 寫資料到ram功能:寫入資料到內(nèi)部的 ram(ddram/cgram/tram/gdram)11、 讀出ram 的值功能:從內(nèi)部 ram 讀取資料(ddram/cgram/tram/gdram)12、 待命模式(12h)功能:進入待命模式,執(zhí)行其他命令都可終止待命模式13、 卷動位址或iram 位址選擇(13h)功能:sr=1;允許輸入卷動位址 sr=0;允許輸入iram 位址14、 反白選擇(14h)功能:選擇4 行中的任一行作反白顯示,并可決定反白的與否15、 睡眠模式(015h)功能:sl=1;脫

44、離睡眠模式 sl=0;進入睡眠模式16、 擴充功能設定(016h)功能:re=1;擴充指令集動作 re=0;基本指令集動作 g=1;繪圖顯示on g=0;繪圖顯示off17、 設定iram 位址或卷動位址(017h)功能:sr=1;ac5ac0 為垂直卷動位址 sr=0;ac3ac0 寫iconram 位址18、 設定繪圖ram 位址(018h)功能:設定gdram 位址到位址計數(shù)器(ac)在本設計中l(wèi)cd12864采用兩線式串行傳輸方式,cs腳直接接高電位,表示時刻有效,sid傳輸數(shù)據(jù),clk是時鐘驅(qū)動口,由于atmega8工作頻率大約12mhz,傳輸很快,不會影響到數(shù)據(jù)的傳輸速度。若用51

45、單片機,當機器周期較低時,用串口會看到數(shù)據(jù)的刷屏,傳輸時間長,不宜采用。5、軟件設計軟件介紹的是用c語言實現(xiàn)atmega8充電器的設計,軟件可以進行擴展以支持多個電池同時充電。若每個電池的電池單元數(shù)目一樣,則li-ion 電池可以恒定電壓的方式并行充電。對于nicd 電池,如果電池溫度在允許范圍之內(nèi),充電程序就會啟動。在溫度超出限制,或電壓超過最大值,或超出最大快速充電時間時停止。檢測電池已經(jīng)充滿的普通方法是檢測電壓降低速率(-dv/dt)。因此,充電器會每隔5秒鐘檢測一次電池電壓,而不是充電電壓。這些數(shù)據(jù)將與上一次數(shù)據(jù)進行比較。一旦電池充滿,充電狀態(tài)就自動切換到涓流充電,充電程序跳轉(zhuǎn)到涓流充

46、電狀態(tài)。下面就結(jié)束通過軟件來實現(xiàn)智能充電的方法:5.1 系統(tǒng)的總體設計在總體設計中,主函數(shù)處理的是按鍵,電池的選擇,穩(wěn)壓、穩(wěn)流的處理,及一些標志位,1s的中斷函數(shù)是在按鍵設置,正式充電時才啟動,處理的是顯示、計時和關(guān)pwm測電池電壓的標志位。主函數(shù)芯片初始化端口、功能設置lcd初始化等待電池的接入及l(fā)cd顯示按鍵處理程序選標志位代表不同類型電池及節(jié)數(shù)鎳鎘電池標志對其節(jié)數(shù)充電鎳氫電池標志對其節(jié)數(shù)充電測電池容量標志鋰電池標志鋰電池充電恒壓方式充電恒流方式充電恒流方式充電恒流放電到電池最低值錯誤或完成?錯誤或完成?錯誤或完成?錯誤或完成?停止pwm,置錯誤或完成的標志位nnnnyyyyny主函數(shù)流程

47、圖如下:圖5-1 主程序流程圖 按鍵程序處理的是電池充電電流的大小,電池的種類,鎳鎘、鎳氫電池的節(jié)數(shù),放電電流的大小,放電終止電壓等,一共用了五個按鍵,“+”鍵、“-”鍵、“確定”鍵、“返回”鍵、“放電”鍵。具體的按鍵流程圖如下:按鍵程序充電選擇電流“放電”鍵是否按下?yn充電電流選好,確認按下?ny電池種類選擇電池種類選好,確認?ny鋰電池鎳鎘電池鎳氫電池電池節(jié)數(shù)選擇1、2、3電池節(jié)數(shù)選擇1、2、3選好電池節(jié)數(shù)選好電池節(jié)數(shù)nnyy鎳氫標志鎳鎘標志鋰電池標志根據(jù)各個類型的標志及電池節(jié)數(shù)的選擇對應的電池充電程序,啟動pwm1.放電電流的選擇確認?ny放電終止電壓選擇放電電壓選好,確定?ny記錄放

48、電電流和放電終止電壓,啟動pwm2圖5-2 按鍵程序流程圖當采集溫度、電壓、電流時,采集到的得值都是變?yōu)殡妷褐邓偷絾纹瑱C中,因此能否使采集到有效的電壓值是很重要的,因此要對電壓做濾波處理,這里用的濾波是平均值濾波法,因為ad切換通道后的第一次值可能不準,因此舍去,再對8次采樣值求平均值,流程圖如下:采樣濾波程序選擇對應的通道并啟動adad轉(zhuǎn)化完成?nyi=0 value=0i=3返回value 圖5-3 ad采樣程序流程圖5.2 鎳鎘電池充電函數(shù) nicd 電池的快速充電算法采用恒定電流法。在快速充電模式下充電電流設置為1a ;在涓流模式下則為50ma。判斷充電過程結(jié)束的方法是電壓下降 (-d

49、v/dt) 法。備用的結(jié)束充電判別方案還有最大充電電壓以及最大充電時間。電池充滿后自動切換到涓流模式,mcu 開始執(zhí)行涓流充電函數(shù)。充電參數(shù)簡介充電條件: 快速充電: 快速充電電流 = 1a、0.75a、0.5a、0.3a 涓流充電: 涓流充電電流 = 50ma 一般充電過程結(jié)束的判別標準: 絕對最高溫度t = 絕對最大充電電壓v = 電池單元數(shù)(1、2、3) * 1550 mv 快速充電過程結(jié)束的判別標準: 電壓下降門限-dv/dt = 15 mv/單元 快速充電過程的錯誤: 快速充電時的最高溫度t = 電池松開單節(jié)電池充電曲線如下:當電壓下降15mv時,選擇快速充電結(jié)束,進入涓流補充充電階

50、段,又因為鎳鎘電池有記憶效應,所以充電前先對電池放電處理,再對電池快速恒流充電。 圖5-4 鎳鎘電池充電電壓曲線所以軟件設計充電的過程為:以單節(jié)電池為例,充電一開始關(guān)閉pwm1,檢測電池電壓,如果電壓小于1v,就立即啟動pwm1,進入快速充電階段。若開始電池電壓大于1v,就啟動pwm2先以一定的電流恒流放電,直到電壓檢測到小于1v,就停止pwm2,啟動pwm1,進入快速充電階段。當充電電壓到達1.4v時,轉(zhuǎn)為快速脈沖充電階段,這時充電電流和上一階段電流相同,而此階段判定的是電池電壓,而非充電電壓,階段判定放在1s的中斷中,這階段內(nèi)容是恒流充電5 s,然后在中斷中關(guān)閉pwm1等待300ms,此時的電池電壓已經(jīng)趨于穩(wěn)定,檢測電池電壓,啟動pwm1,在主程序中繼續(xù)恒流充電,5s后等待下一次電池電壓檢測。在中斷函數(shù)電池電壓檢測時都跟上一次檢測的電池電壓比較,選出最大值進行保留,直到判斷出最新電壓值比最大值小15mv時,置標志位stop為1作為電池正常充滿,這就是-dv判定法則,或者當電池電壓超過1.55v時,也作為電池充滿的標志。下一階段就是小電流涓流充電以補充充電5小時,以補充充電。5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論