智能型充電器的電源和顯示的設(shè)計(jì)
AVR單片機(jī)是Atmel公司1997年推出的RISC單片機(jī)。RISC(精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī))是相對(duì)于CISC(復(fù)雜指令系統(tǒng)計(jì)算機(jī))而言的。RISC并非只是簡(jiǎn)單地去減少指令,而是通過使計(jì)算機(jī)的結(jié)構(gòu)更加簡(jiǎn)單合理而提高運(yùn)算速度的。RISC優(yōu)先選取使用頻率最高的簡(jiǎn)單指令,避免復(fù)雜指令;并固定指令長(zhǎng)度,減少指令格式和尋址方式的種類,從而縮短指令周期,提高運(yùn)算速度。由于AVR采用了RISC這種結(jié)構(gòu),使AVR系列的單片機(jī)都具備了1MIPS/MHz的高速處理能力。
AVR單片機(jī)吸收了DSP雙總線的特點(diǎn),采用Harvard總線結(jié)構(gòu),因此單片機(jī)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器是分離的,并且可對(duì)具有相同地址的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器進(jìn)行獨(dú)立的尋址。
目前,AVR單片機(jī)具有多個(gè)系列,包括ATtiny、AT90和ATmega。雖然在功能和存儲(chǔ)器容量等方面有很大的不同,但基本結(jié)構(gòu)和原理都類似。同傳統(tǒng)的MCS51單片機(jī)相比,AVR單片機(jī)的主要特點(diǎn)有:
(1) AVR單片機(jī)中,CPU執(zhí)行當(dāng)前指令時(shí)取出將要執(zhí)行的下一條指令放入指令寄存器中,從而避免了傳統(tǒng)MCS51系列單片機(jī)中多指令周期的出現(xiàn)。
(2) 傳統(tǒng)的MCS51系列單機(jī)所有的數(shù)據(jù)處理都是基于一個(gè)累加器的,因此累加器與程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器之間的數(shù)據(jù)交換就成了單片機(jī)的瓶頸;在AVR單片機(jī)中,寄存器由32個(gè)通用寄存器組成,并且任何一個(gè)寄存器都可以充當(dāng)累加器,從而有效地避免了累加器的瓶頸效應(yīng),提高了系統(tǒng)的性能。
(3) AVR單片機(jī)具有良好的集成性能。AVR系列的單片機(jī)都具備在線編程接口,含有片內(nèi)看門狗電路、片內(nèi)程序Flash、同步串口SPI等;AVR單片機(jī)的I/O接口還具有很強(qiáng)的驅(qū)動(dòng)能力,灌電流可直接驅(qū)動(dòng)繼電器、LED等器件,從而省去驅(qū)動(dòng)電路,節(jié)約系統(tǒng)成本。
(4) AVR單片機(jī)采用低功率、非揮發(fā)的CMOS工藝制造,除具有低功耗、高密度的特點(diǎn)外,還支持低電壓的聯(lián)機(jī)Flash、EEPROM寫入功能。
(5) AVR單片機(jī)支持Basic、C等高級(jí)語言編程。
此外在傳統(tǒng)的單片機(jī)系統(tǒng)中,都是用匯編語言作為系統(tǒng)的編程語言。匯編語言作為嵌入式系統(tǒng)的編程語言,具有執(zhí)行效率高等優(yōu)點(diǎn),但其本身是一種低級(jí)語言,編程效率低下,且可移植性和可讀性差,維護(hù)極不方便,從而導(dǎo)致整個(gè)系統(tǒng)的可靠性也較差。而C語言以其結(jié)構(gòu)化和能產(chǎn)生高效代碼等優(yōu)勢(shì)滿足了電子工程師的需要。用C語言進(jìn)行嵌入式系統(tǒng)的開發(fā),具有匯編語言編程所不可比擬的優(yōu)勢(shì)
1. AVR單片機(jī)的主要特征,系統(tǒng)概況,指令系統(tǒng)以及系統(tǒng)的擴(kuò)展技術(shù)的學(xué)習(xí)和掌握。
2. 電源電路的設(shè)計(jì)
3. 熟悉智能充電器的工作過程
4.編寫LCD顯示的C程序設(shè)計(jì)
本設(shè)計(jì)要求用AVR單片機(jī)完全實(shí)現(xiàn)電池充電器設(shè)計(jì),可以對(duì)各種流行的電池類型進(jìn)行快速充電而無須修改硬件,從而圍繞單個(gè)硬件平臺(tái)實(shí)現(xiàn)一個(gè)完整的充電器。
1. 弄懂弄清智能充電器的基本原理
電池充電是通過逆向化學(xué)反應(yīng)將能量存儲(chǔ)到化學(xué)系統(tǒng)里實(shí)現(xiàn)的。由于使用的化學(xué)物質(zhì)的不同,電池有自己的特性。設(shè)計(jì)充電器時(shí)要仔細(xì)了解這些特性以防止過度充電而損壞電池。
電池技術(shù)現(xiàn)代消費(fèi)類電器主要使用如下四種電池:
? 密封鉛酸電池 (SLA)
? 鎳鎘電池 (NiCd)
? 鎳氫電池(NiMH)
? 鋰電池(Li-Ion)
電池的安全充電
停止充電的判別
2. 硬件的實(shí)現(xiàn)
1. 電源電路的設(shè)計(jì)
2. PC接口的設(shè)計(jì)
3. LED和按鍵的設(shè)計(jì)
4. ISP 接口的設(shè)計(jì)
5. Buck 變換器
6. 電壓基準(zhǔn)的設(shè)定
7. 電池溫度的設(shè)定
8. 測(cè)量電路的設(shè)計(jì)(包括電池電壓和充電電流等參數(shù)的計(jì)算)
1. 軟件的實(shí)現(xiàn)
在編譯時(shí)要確定電池類型。軟件可以進(jìn)行擴(kuò)展以支持多個(gè)電池同時(shí)充電。一個(gè)直接的方案是在進(jìn)行涓流充電時(shí)對(duì)各個(gè)電池進(jìn)行分時(shí)充電。若每個(gè)電池的電池單元數(shù)目一樣,則SLA 電池和Li-Ion 電池 可以恒定電壓的方式并行充電。每個(gè)電池單元的充電電流是受限的,電壓也一樣?!半姵靥匦浴?(b_car.h)的所有數(shù)據(jù)都根據(jù)標(biāo)度因子計(jì)算得到。這些數(shù)據(jù)在包含文件里定義,在編譯時(shí)計(jì)算,在程序運(yùn)行時(shí)以常數(shù)方式處理。所有從ADC 輸出的數(shù)據(jù)都可以直接與這些常數(shù)進(jìn)行比較。也就是說,在程序運(yùn)行過程當(dāng)中不需要進(jìn)行實(shí)時(shí)計(jì)算,從而節(jié)省了計(jì)算時(shí)間和程序空間。計(jì)算公式以及數(shù)據(jù)都是從“測(cè)量電路”一節(jié)獲取的。 對(duì)于NiCd 電池,如果電池溫度在允許范圍之內(nèi),充電程序就會(huì)啟動(dòng)。在溫度超出限制,或電壓超過最大值,或超出最大快速充電時(shí)間時(shí)停止。檢測(cè)電池已經(jīng)充滿的普通方法是檢測(cè)溫度上升速率(dT/dt) 和電壓降低速率(-dV/dt)。因此,充電器會(huì)每隔一分鐘檢測(cè)一次溫度,每隔一秒鐘檢測(cè)一次電壓。這些數(shù)據(jù)將與上一次數(shù)據(jù)進(jìn)行比較。一旦電池充滿,充電狀態(tài)就自動(dòng)切換到涓流充電,充電程序跳轉(zhuǎn)到trickle_charge() 函數(shù)。trickle_charge() 循環(huán)檢測(cè)充電狀態(tài)、溫度/ 電壓的改變,并適當(dāng)?shù)卣{(diào)節(jié)充電電流。一旦溫度或電壓超標(biāo),錯(cuò)誤標(biāo)志置位,函數(shù)終止。若沒有錯(cuò)誤,用戶也沒有改變充電狀態(tài),函數(shù)將一直循環(huán)工作。
2. 編制LCD的顯示程序
特點(diǎn)
?完整的電池充電器設(shè)計(jì)方案
?模塊化的“C”源代碼和極緊湊的匯編代碼
?低成本
?支持多數(shù)電池類型
?快速充電算法
?可選的串行接口
?充電參數(shù)易修改
?片內(nèi)EEPROM 可用于存儲(chǔ)電池信息