版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 畢 業(yè) 設(shè) 計 (論 文)</p><p> 機械與電氣工程學院 系(院) 電氣工程及其自動化 專業(yè)</p><p> 畢業(yè)設(shè)計(論文)題目 基于單片機的鋰離子電池電量檢測系統(tǒng)設(shè)計 </p><p> 學生姓名 </p><p> 班 級 電氣工程及
2、其自動化(1)班 </p><p> 學 號 </p><p> 指導教師 xx </p><p> 完成日期 2013 年 5 月 20 日</p><p> 基于單片機的鋰離子電池電量檢測系統(tǒng)設(shè)計</p><
3、p> Lithium-ion battery detection system design based on MCU</p><p> 總計 畢業(yè)設(shè)計(論文) 34 頁</p><p> 表 格 7 個</p><p> 插 圖 15 幅</p>
4、<p><b> 摘 要</b></p><p> 鋰離子電池與其他種類的電池相比有著諸多優(yōu)勢,已經(jīng)成為我們?nèi)粘I钪斜夭豢缮俚囊徊糠帧O嘈旁谑褂娩囯x子電池的過程中,我們常會考慮還剩多少電量的問題,但是又找不到好的電量檢測方法,針對該要求,本文設(shè)計了一種基于單片機的鋰離子電池電量檢測系統(tǒng),該檢測系統(tǒng)可以滿足我們?nèi)粘I钪袑︿囯x子電池電量檢測的需求,以全面掌握鋰離子電池的電量狀
5、態(tài)。</p><p> 本文主要敘述了基于單片機的鋰離子電池電量檢測系統(tǒng)的研究和設(shè)計,該系統(tǒng)主要由模擬量采集、鋰離子電池檢測模塊、單片機模塊、以及LED驅(qū)動顯示電量等相應的部分組成,介紹了鋰離子電池的特點、電池電量檢測原理、系統(tǒng)的結(jié)構(gòu)及性能,重點介紹了該系統(tǒng)的軟硬件設(shè)計等。</p><p> 考慮到檢測系統(tǒng)的復雜程度、精確性、可靠性等各個方面,本文介紹的設(shè)計方案能夠滿足我們對鋰離子電池
6、電量檢測的要求。</p><p> 關(guān)鍵字:鋰離子電池 BQ2040 電池檢測 單片機 LED顯示</p><p><b> Abstract</b></p><p> Compared with other types of batteries, the lithium-ion battery have many advanta
7、ges, becoming an indispensable part of our daily lives. I believe that in the process of using lithium-ion battery, we often consider the question of how much power is left, but they can not find a good power detection m
8、ethod. for the requirements, we design a lithium-ion battery detection system based on MCU, the detection system can meet the demand for lithium-ion battery detection in our daily lives , in order to</p><p>
9、 This paper describes the research and design of lithium-ion battery detection system based on MCU The system consists of a Analog acquisition module, battery detection module, MCU module and LED drive power display mod
10、ules. the article describes the characteristics of the lithium-ion battery, the battery detection principle, structure and performance of the system,, focusing on the system hardware and software design. </p><
11、p> Taking into account the complexity of the detection system, accuracy, reliability, and other aspects, the article describes the design can meet the requirements of our lithium-ion battery detection. </p>&l
12、t;p> Key words:Lithium-ion battery BQ2040 Battery detection MCU LED display</p><p><b> 目錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p>
13、<p><b> 第一章 緒論1</b></p><p> 1.1 本課題研究的目的及意義1</p><p> 1.2 本課題研究內(nèi)容1</p><p> 1.3 鋰離子電池的放電及溫度特性2</p><p> 1.4 鋰離子電池電量檢測系統(tǒng)的發(fā)展方向3</p>&
14、lt;p> 第二章 系統(tǒng)總體結(jié)構(gòu)設(shè)計4</p><p> 2.1 系統(tǒng)總體結(jié)構(gòu)框圖4</p><p> 2.2 單片機的選擇5</p><p> 2.2.1 W78E365A40PL引腳說明5</p><p> 2.2.2 W78E365特性介紹6</p><p> 2.3 電池
15、電量檢測芯片BQ20407</p><p> 2.3.1 BQ2040 引腳說明7</p><p> 2.3.2 BQ2040的檢測原理8</p><p> 2.4 LED驅(qū)動控制芯片TM16299</p><p> 2.4.1 TM1629引腳說明9</p><p> 2.4.2 TM1
16、629特性介紹10</p><p> 2.5 數(shù)據(jù)傳輸存儲芯片24C6411</p><p> 2.5.1 24C64概述11</p><p> 2.5.2 24C64引腳說明11</p><p> 2.5.3 24C64特性介紹12</p><p> 2.6 時鐘芯片DS130212&
17、lt;/p><p> 2.6.1 DS1302概述12</p><p> 2.6.2 DS1302引腳說明12</p><p> 第三章 硬件系統(tǒng)設(shè)計14</p><p> 3.1 單片機與時鐘電路部分14</p><p> 3.1.1 W78E365概述14</p><p
18、> 3.1.2 電路圖設(shè)計14</p><p> 3.2 BQ2040部分15</p><p> 3.2.1 BQ2040概述15</p><p> 3.2.2 電路圖設(shè)計16</p><p> 3.3 TM1629驅(qū)動控制LED顯示部分16</p><p> 3.3.1 TM1
19、629概述16</p><p> 3.3.2 LED數(shù)碼管16</p><p> 3.3.3 電路圖設(shè)計17</p><p> 第四章 軟件系統(tǒng)設(shè)計18</p><p> 4.1 程序設(shè)計流程18</p><p> 4.1.1 初始化18</p><p> 4.
20、1.2 主程序流程圖19</p><p> 4.1.3 A/D轉(zhuǎn)換與中斷服務(wù)20</p><p> 4.2 BQ2040總線時序21</p><p> 第五章 系統(tǒng)測試23</p><p><b> 結(jié) 論24</b></p><p><b> 參考文獻2
21、5</b></p><p><b> 致 謝26</b></p><p><b> 附 錄27</b></p><p><b> 第一章 緒論</b></p><p> 1.1 本課題研究的目的及意義</p><p>
22、鋰離子電池自問世以來,到現(xiàn)在已經(jīng)發(fā)展成為我們每個人眾多生活必需品當中的一部分,是如今人們在日常生活中使用極其廣泛的一種電池。我國通訊、電力電子等相關(guān)行業(yè)的飛速發(fā)展,使人們對鋰離子電池的利用率和維護工作的重視程度不斷提高,鋰離子電池電量檢測的市場需求隨之越來越大。然而現(xiàn)在的實際情況卻是由于國內(nèi)目前的一些檢測設(shè)備的檢測方法不精確等原因,使其不能完全滿足我們對鋰離子電池電量檢測的需求,同時國外的同類檢測設(shè)備雖然性能較好,但是價格太高,不適合我
23、們?nèi)粘z測使用。微處理器技術(shù)的發(fā)展與電池電量檢測方法的不斷改善,為提高鋰離子電池電量檢測系統(tǒng)的性能和降低其制造成本提供了可能。針對該要求,本文設(shè)計了一種基于單片機的鋰離子電池電量檢測系統(tǒng),該檢測系統(tǒng)的設(shè)計對全面掌握鋰離子電池的電量狀態(tài),提高其利用率具有現(xiàn)實意義。本設(shè)計的研究成果如果能夠得到大家的一致認同,以致今后被廣泛應用于我們的日常生活當中,比如應用于生活中常用的或常見的便攜式電子產(chǎn)品領(lǐng)域,這必將提高人們的日常生活質(zhì)量,并且還能起到提
24、高鋰離子電池利用率的作用,從另一方面看,這也是從某種程度上響應了國家“節(jié)能減排”政策。</p><p> 1.2 本課題研究內(nèi)容</p><p> 該課題是設(shè)計一個鋰離子電池電量檢測系統(tǒng),研究對象為符合國標GB/T 18287-2000的鋰離子電池,其主要參數(shù)有:標稱電壓3.7V,標稱容量1050mAH,充電電壓4.2V。在做畢業(yè)設(shè)計的這段時間里,自己通過互聯(lián)網(wǎng)查詢、圖書館書籍資料搜
25、索等多種途徑,對該課題的研究內(nèi)容進行了充分的理解與學習,使我對鋰離子電池的電量檢測原理,以及一些基于單片機的C程序編寫等內(nèi)容,都有了進一步的了解與掌握。</p><p> 本課題研究如何設(shè)計一個滿足我們?nèi)粘I钜蟮匿囯x子電池電量檢測系統(tǒng),要求適用于日常使用,必須控制成本,并且需要滿足精度的要求。本文的設(shè)計思路是利用單片機及一些市場上常見的功能芯片,經(jīng)過綜合所有應考慮的重要因素后,最終確定了該檢測系統(tǒng)里的一些重
26、要器件類型,其中單片機部分就選用W78E系列中的W78E365A40PL,鋰離子電池的電量檢測部分就選用流行于目前市場上并且較專業(yè)的電池電量檢測芯片BQ2040,輸出部分決定采用TM1629驅(qū)動控制LED數(shù)碼輸出顯示。TM1629是一款專業(yè)用于驅(qū)動控制LED數(shù)碼輸出顯示的芯片,已經(jīng)被廣泛應用于目前的市場中,其次,輸出采用數(shù)碼顯示,易于用戶讀取所需要的鋰離子電池的電量信息,更加人性化。綜上,最終設(shè)計出基于W78E365A40PL,利用電池
27、電量檢測芯片BQ2040,并且數(shù)碼輸出顯示我們所需數(shù)據(jù)的鋰離子電池電量檢測系統(tǒng),該系統(tǒng)由模擬量參數(shù)采集部分、電量檢測部分、中央處理控制部分(單片機)以及LED驅(qū)動顯示等相應模塊組成,前兩部分可由BQ2040完成。至此,該基于單片機的鋰離子電池電量檢測系統(tǒng)的整體框架便已明了。</p><p> 本文重點介紹了該鋰離子電池電量檢測系統(tǒng)的硬件設(shè)計和軟件設(shè)計。硬件設(shè)計的主要職責就是將系統(tǒng)分割成的各個功能部分組合成一個合
28、理的可行性方案;軟件設(shè)計則負責根據(jù)系統(tǒng)相關(guān)的功能要求,進行模塊的編程等,最后用Protel等相關(guān)軟件畫出原理圖,并利用Proteus仿真,對檢測結(jié)果的準確性進行測試。</p><p> 1.3 鋰離子電池的放電及溫度特性</p><p><b> 放電特性</b></p><p> 本文必須先對鋰離子電池的放電特性進行簡單說明,因為如果
29、要檢測鋰離子電池的電量,對鋰離子電池進行放電檢測是檢測過程中必須經(jīng)過的一道程序,大部分我們所需要的參數(shù)都是在對鋰離子電池進行放電過程中得到的,但是對鋰離子電池進行放電測試時,其放電力度必須要得到精確的控制,鋰離子電池對過放電相當?shù)拿舾校坏┓烹婋妷夯蚍烹婋娏鞒^了本身的承受范圍,將會導致鋰離子電池自身快速升溫,影響鋰離子電池的使用壽命及使用性能。</p><p><b> 溫度特性</b>
30、</p><p> 雖然在檢測過程中需要控制鋰離子電池的溫度在一定的范圍之內(nèi),因為不適合的溫度,將導致鋰離子電池內(nèi)部生成許多影響檢測結(jié)果的無用化合物,這是鋰離子電池內(nèi)部化學反應的結(jié)果,而且溫度影響著鋰離子的遷移速度,但是日常生活中的環(huán)境溫度不會超過鋰離子電池正常使用的溫度范圍,在進行鋰離子電池電量檢測的過程中,我們不用對鋰離子電池所在環(huán)境溫度進行嚴格控制。不可以將鋰離子電池置于溫度過高或過低的環(huán)境中存儲或使用,
31、不然嚴重影響鋰離子電池的使用壽命及使用性能。</p><p> 另外附帶一句,如果我們要存儲鋰離子電池時,必須將溫度范圍控制在(-15一+55)℃,如果是使用鋰離子電池或?qū)ζ溥M行放電測試,最好將溫度范圍控制在(-35一+75)℃。</p><p> 1.4 鋰離子電池電量檢測系統(tǒng)的發(fā)展方向</p><p> 人性化設(shè)計是任何產(chǎn)品能否面向市場并取得成功的決定因
32、素之一。需要為用戶提供直觀易懂方便操作的界面,鋰離子電池電量檢測系統(tǒng)的發(fā)展方向應從以下幾個方面考慮:</p><p> 人機互動。在用戶進行操作使用的過程中,系統(tǒng)會根據(jù)用戶的操作反饋顯示出諸多的相關(guān)提示信息,用戶使用起來簡單,提升該系統(tǒng)的用戶體驗。</p><p> 系統(tǒng)的內(nèi)部結(jié)構(gòu)須采用插板式形式。這樣就可以打消用戶擔心產(chǎn)品不易維修的顧慮,對于自己有相關(guān)維修經(jīng)驗及能力的用戶,也提供了讓
33、用戶維修的機會,解決了與維修相關(guān)的一連串問題。</p><p> 相關(guān)功能的延伸。善于挖掘、開發(fā)出鋰離子電池電量檢測系統(tǒng)應具備的功能,使產(chǎn)品具備更多有實用價值的相關(guān)功能,以適應不同用戶對鋰離子電池電量檢測要求,進一步完善用戶體驗。</p><p> 當然,在鋰離子電池的使用過程中,還存在諸多的實際性問題,比如說老化,諸多其他不確定性因素也會對檢測結(jié)果有所影響。未來在開發(fā)鋰離子電池電量檢
34、測系統(tǒng)時,必須全面考慮會對檢測過程中或者檢測結(jié)果造成多多少少影響的因素。這樣才能使該鋰離子電池電量檢測系統(tǒng)一直發(fā)展下去,隨著時間的推移而不被淘汰。</p><p> 第二章 系統(tǒng)總體結(jié)構(gòu)設(shè)計</p><p> 2.1 系統(tǒng)總體結(jié)構(gòu)框圖</p><p> 該系統(tǒng)總體結(jié)構(gòu)可以劃分為幾個重要部分:鋰離子電池模擬量參數(shù)采集部分、電量檢測部分、中央處理控制部分(單片
35、機)和LED驅(qū)動顯示部分。每個部分重要器件的選型已經(jīng)在前面具體說明,將系統(tǒng)總體結(jié)構(gòu)分為以上各部分后,整個系統(tǒng)的工作原理及重要模塊等信息便簡單明了,系統(tǒng)每個部分都有著其自己重要的責任,只有系統(tǒng)內(nèi)的每個模塊都按其職責正常運行,整個鋰離子電池電池檢測系統(tǒng)才能正常工作。如圖2-1所示,該圖為鋰離子電池電量檢測系統(tǒng)的總體結(jié)構(gòu)框圖,其中模擬量參數(shù)采集部分負責通過傳感器及測量電路等來采集鋰離子電池的模擬量參數(shù),這些參數(shù)包括鋰離子在放電過程中的電流(壓
36、)大小、檢測到的溫度值等相關(guān)參數(shù);電量檢測部分主要負責依據(jù)上部分已經(jīng)采集到的參數(shù),對鋰離子電池的電量進行檢測與計算,這兩個部分可由BQ2040完成;中央處理控制部分即單片機負責對整個系統(tǒng)進行控制;LED驅(qū)動顯示部分負責驅(qū)動LED,并對被測鋰離子電池的剩余電量信息進行數(shù)碼輸出顯示。</p><p> 圖2-1 系統(tǒng)總體結(jié)構(gòu)框圖</p><p> 2.2 單片機的選擇</p>
37、;<p> 2.2.1 W78E365A40PL引腳說明</p><p> 在能夠滿足鋰離子電池電量檢測系統(tǒng)相關(guān)功能的前提下,如何選擇一款合適的單片機是關(guān)鍵。本設(shè)計采用了W78E系列中的W78E365A40PL,其引腳如下圖所示</p><p> 圖2-2 W78E365A40PL引腳</p><p> 表2.1 W78E365A40PL引
38、腳說明</p><p><b> 續(xù)表2.1</b></p><p> 2.2.2 W78E365特性介紹</p><p><b> 電氣特性:</b></p><p> 表2.2 W78E365電氣特性</p><p> 注釋:使用過程中若長時間超出最大額定值
39、,將會對器件的使用壽命、使用性能、使用可靠性等多方面均造成嚴重損害。</p><p><b> (2)功能特性:</b></p><p> 全靜態(tài)設(shè)計的CMOS 8位微處理器</p><p> 64KB帶ISP功能的Flash EPROM</p><p> 4KB輔助Flash EPROM用于存儲裝載程序<
40、/p><p> 4個8位雙向I/O口,一個附加4位I/O口</p><p><b> 3個16位定時器</b></p><p> 一個增強型全雙工串行口</p><p><b> 看門狗定時器</b></p><p> 8個中斷源,2級中斷能力</p>&
41、lt;p> 電源管理帶空閑模式和掉電模式</p><p><b> 代碼保護</b></p><p> 2.3 電池電量檢測芯片BQ2040</p><p> 2.3.1 BQ2040引腳說明</p><p> BQ2040引腳分布如下圖所示:</p><p> 圖2-3
42、BQ2040引腳分布</p><p> 表2.3 BQ2040引腳說明</p><p><b> 續(xù)表2.3</b></p><p> 2.3.2 BQ2040的檢測原理</p><p> BQ2040的電量檢測原理我們也需要做簡單的了解,BQ2040內(nèi)置了溫度傳感器,它通過內(nèi)置的溫度傳感器和內(nèi)部計數(shù)器來估算
43、被測鋰離子電池的放電程度,放電的同時還可以根據(jù)溫度需要進行溫度補償,并且能夠通過鋰離子電池的放電周期,校準鋰離子電池的實際容量,外接內(nèi)部寫有初始化程序的EEPROM,負責控制電池的管理工作,串口和外部EEPROM可以用來編程。</p><p> 在日常生活中,使用鋰離子電池是一般都不需要進行溫度保護,因為日常情況下,鋰離子電池工作所在環(huán)境溫度不會超過其工作溫度范圍之外,除非需要該鋰離子電池一直處于長期的持續(xù)的工
44、作狀態(tài),這時候應該采取適當?shù)臏囟缺Wo措施。但是BQ2040是一款流行與目前市場上相當專業(yè)的電池電量檢測芯片,BQ2040對被測鋰離子電池進行電量檢測的同時,會檢測鋰離子電池的溫度情況,因為BQ2040內(nèi)置了溫度傳感器,可以進行過熱保護等控制措施,不需要外接熱敏電阻,如果檢測到溫度過低,這時候BQ2040還可以進行溫度補償,不需要外接諧振器等相關(guān)器件,進一步減少了器件,降低了設(shè)計成本。</p><p> 2.4
45、 LED驅(qū)動控制芯片TM1629</p><p> 2.4.1 TM1629引腳說明</p><p> 圖2-4 TM1629引腳分布</p><p> 表2.4 TM1629引腳說明</p><p><b> 續(xù)表2.4</b></p><p> 注意:在DIO端口輸出數(shù)據(jù)的時候
46、,該引腳需要外接一個帶有一定阻值上拉電阻,推薦使用10K的上拉電阻,并且讀數(shù)時要選擇在時鐘的上升沿進行,這樣才能保證讀數(shù)的穩(wěn)定性。讀數(shù)時若選擇在時鐘的下降沿,此時讀數(shù)并不穩(wěn)定,影響數(shù)據(jù)準確性。</p><p> 圖2-5 芯片內(nèi)部電路</p><p> 2.4.2 TM1629特性介紹</p><p> 采用功率CMOS工藝</p><
47、p> 顯示模式16段×8位</p><p> 鍵掃描(8×4bit)</p><p><b> 輝度調(diào)節(jié)電路</b></p><p> 串行接口(CLK,STB,DIO)</p><p><b> 內(nèi)置上電復位電路</b></p><p>
48、<b> 采用QFP44封裝</b></p><p> 2.5 數(shù)據(jù)傳輸存儲芯片24C64</p><p> 2.5.1 24C64概述</p><p> 24C64芯片屬于24C系列里面常見的一款,該系列的主要功能是數(shù)據(jù)的存儲及傳輸。既然是數(shù)據(jù)傳輸存儲芯片,那么就會有每款芯片帶有多少存儲位的問題,該系列的芯片擁有多少存儲位可以從2
49、4C后面的數(shù)字讀出來。如ATMEL的24C64,從后面的數(shù)字可以讀出其存儲位為64K。這個系列的芯片具有許多的優(yōu)勢,例如能重復擦寫1百萬次以上,并且在其內(nèi)部已經(jīng)存儲成功的數(shù)據(jù)能夠長期保持,時間達100年之久。24C64具有多種封裝形式可供選擇,現(xiàn)如今已被廣大電子行業(yè)從業(yè)者所接受,廣泛應用于電力電子各個領(lǐng)域。</p><p> ATMEL的24C64是I2C 總線的EEPROM,I2C總線(Inter Integ
50、rated Circuit 內(nèi)部集成電路總線)是兩線式串行總線,只占用微處理器的2個I/O 引腳,僅需要時鐘和數(shù)據(jù)兩根線就可以進行數(shù)據(jù)傳輸,令用戶使用起來十分便捷。</p><p> 2.5.2 24C64引腳說明</p><p> 圖2-6 24C64引腳分布</p><p> 表2.5 24C64引腳說明</p><p>
51、2.5.3 24C64特性介紹</p><p><b> 低功耗器件</b></p><p><b> 2線串行接口</b></p><p><b> 雙向數(shù)據(jù)傳輸協(xié)議</b></p><p> 寫保護引腳用于硬件數(shù)據(jù)保護</p><p>&l
52、t;b> 高可靠性</b></p><p> 2.6 時鐘芯片DS1302</p><p> 2.6.1 DS1302概述</p><p> DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。通過簡單的串行接口,采用
53、三線接口與CPU進行同步通信,內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的靜態(tài)RAM。它具有主電源/后備電源雙電源引腳,VCC1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由VCC1或VCC2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,DS1302由VCC2供電;當VCC2小于VCC1時,DS1302由VCC1供電。</p><p> DS1302功
54、能:①日期時間信息;②每月的天數(shù)和閏年的天數(shù)可自動調(diào)整;③通過AM/PM指示決定采用24或12小時格式;④保持數(shù)據(jù)和時鐘信息時功率小于1mW。</p><p> 2.6.2 DS1302引腳說明</p><p> 圖2-7 DS1302引腳分布</p><p> 表2.6 DS1302引腳說明</p><p> 第三章 硬件系
55、統(tǒng)設(shè)計</p><p> 3.1 單片機與時鐘電路部分</p><p> 3.1.1 W78E365概述</p><p> W78E365是帶有在線編程(In System Program)功能的低功耗8位微控制器。在線編程功能使其具有開發(fā)門檻較低的便捷性,只需要一條ISP并行下載線,就可以把程序?qū)懭雴纹瑱C。</p><p> W
56、78E365既含有主ROM,同時也帶有從ROM;既含有片內(nèi)RAM,同時也帶有從RAM。從ROM為Flash EPROM,這些存儲器的存儲容量分別為:64K字節(jié)主ROM;4K字節(jié)從Flash EPROM;256字節(jié)片內(nèi)RAM;1K字節(jié)從RAM。</p><p> W78E365具有高速和高可靠性,其I/O口功能強、驅(qū)動能力大,并且低功耗。同時具有程序保護性好等諸多有點,當用戶寫入了程序后,單片機會對其進行數(shù)據(jù)保護
57、,使用戶編寫的程序不被讀出,防止用戶的成果被竊取。</p><p> 3.1.2 電路圖設(shè)計</p><p> 單片機與時鐘電路部分的電路圖如圖3-1所示,W78E365A40PL接口分別與DS1302時鐘電路部分、BQ2040鋰離子電池電量檢測部分及LED驅(qū)動顯示部分相連,構(gòu)成一個完整的鋰離子電池電量檢測系統(tǒng)。</p><p> DS1302與單片機的連接
58、也僅需要3條線:CE引腳、SCLK串行時鐘引腳、I/O串行數(shù)據(jù)引腳,圖中VCC1為備用電源。外接32.768kHz晶振,為芯片提供計時脈沖。</p><p> 此處添加DS1302時鐘電路部分的目的是為了定時讀取測鋰離子電池電量時對應的時間,然后存儲于24C64芯片中,以便在我們需要的時候,如系統(tǒng)出錯,需對其進行檢修時,就可以把這些時間結(jié)果全部調(diào)用出來,為排查故障提供條件。</p><p&g
59、t; 圖3-1 單片機與時鐘電路原理圖</p><p> 3.2 BQ2040部分</p><p> 3.2.1 BQ2040概述</p><p> 作為一款電池電量檢測芯片,BQ2040負責完成鋰離子電池的電量檢測模塊的功能,它先采集所需被測鋰離子電池的信號參數(shù),然后按照原先已經(jīng)設(shè)定好的算法檢測計算出被測鋰離子電池的電量,通過I2C總線與單片機部分進
60、行數(shù)據(jù)交換,最終通過LED驅(qū)動顯示部分數(shù)碼輸出顯示鋰離子電池的電量信息給用戶。電量檢測結(jié)果用LED數(shù)碼輸出顯示,從而讓我們及時了解電量信息,完全掌握鋰離子電池的用電狀態(tài),提高利用率。</p><p> 本系統(tǒng)電量檢測部分采用電池電量檢測芯片BQ2040,除了支持對鋰離子電池的高精度電量檢測,還滿足其他多種電池的電量檢測工作,比如能夠很好的檢測鎳鎘電池、鎳氫電池的電量。</p><p>
61、 3.2.2 電路圖設(shè)計</p><p> 圖3-2 BQ2040電路圖</p><p> 3.3 TM1629驅(qū)動控制LED顯示部分</p><p> 3.3.1 TM1629概述</p><p> TM1629是一款專業(yè)LED驅(qū)動控制的芯片,支持驅(qū)動的點數(shù)較多,其內(nèi)部集成了串行接口、RC振蕩器、鍵盤掃描存儲單元、命令譯碼器
62、、顯示存儲器、輝度調(diào)節(jié)器、斷鎖存器、段驅(qū)動器等部分,已經(jīng)被廣泛應用于各種驅(qū)動電路中,特別是專用于驅(qū)動控制LED數(shù)碼顯示輸出。</p><p> 3.3.2 LED數(shù)碼管</p><p> 在實際的應用中,如果需要顯示出的內(nèi)容只有數(shù)字和字母,則LED數(shù)碼管是不錯的選擇,LED數(shù)碼管分為共陰極與共陽極兩種,如圖3-3所示。LED數(shù)碼管具有成本低廉、顯示清晰的優(yōu)點。綜上,本文選擇LED數(shù)碼
63、管作為輸出顯示部分。輸出顯示模塊將系統(tǒng)檢測出的鋰離子電池剩余電量數(shù)碼顯示出來,通過兩個數(shù)碼管就可以顯示出剩余電量的百分比。這樣我們就可以對當前鋰離子電池的電量信息有一個更加直觀的了解。</p><p> 圖3-3 LED數(shù)碼管共陽極和共陰極示圖</p><p> 3.3.3 電路圖設(shè)計</p><p> 圖3-4 TM1629電路圖</p>
64、<p> 第四章 軟件系統(tǒng)設(shè)計</p><p> 軟件設(shè)計包括主程序和中斷服務(wù)程序。主程序完成單片機的初始化,以及等待中斷,中斷跳轉(zhuǎn)等;中斷服務(wù)程序包括上電中斷服務(wù)程序、定時器/計數(shù)器中斷服務(wù)程序等。</p><p> 4.1 程序設(shè)計流程</p><p> 4.1.1 初始化</p><p> 初始化程序流程圖如
65、圖4-1所示:</p><p> 圖4-1 初始化程序流程圖</p><p> 初始化程序的功能就是初始化各個端口,使其各部件完成先前的準備工作。設(shè)置好各個端口的功能,比如哪些端口設(shè)置為中斷的輸入口,哪些設(shè)置為外部模塊。設(shè)置完成以后就可以打開各個中斷使能,使系統(tǒng)響應相對應的中斷跳轉(zhuǎn)程序。</p><p> 4.1.2 主程序流程圖</p>&
66、lt;p> 圖4-2 主程序流程圖</p><p> 主程序完成初始化后,便等待定時器中斷狀態(tài)或外部中斷的到來,然后完成鋰電池電壓、電流和溫度值的信號采集,最后完成鋰離子電池電量的計算,并在LED輸出顯示屏上顯示出來。</p><p> A/D轉(zhuǎn)換與中斷服務(wù)</p><p> 圖4-3 A/D轉(zhuǎn)換與中斷服務(wù)流程圖</p><p&
67、gt; 我們可以通過讀時鐘信息得到每一次鋰離子電池電量檢測時的時間,當然還有另外一個重要作用,如果知道了每次電量檢測的結(jié)果及相對應的時間,就能幫助我們有效地監(jiān)測該鋰離子電池電量檢測系統(tǒng)的工作情況是否正常,方便我們排查故障原因,及時對該系統(tǒng)進行維護和檢修。</p><p> 參考子程序(以每50ms中斷一次舉例):</p><p> void time0(void) interrupt
68、 1 using 2</p><p><b> {</b></p><p><b> TH0=0x3c;</b></p><p><b> TL0=0xb0;</b></p><p> TIME_count++;</p><p> if(TIM
69、E_count==21)</p><p><b> {</b></p><p> TIME_count = 0;</p><p> TIME_seconds++;// 秒寄存器加1</p><p><b> }</b></p><p><b> }<
70、;/b></p><p> 4.2 BQ2040總線時序</p><p> BQ2040采用電源系統(tǒng)管理Veil.0(SMBus)協(xié)議,支持智能電池數(shù)據(jù)管理命令(SBData)和智能電池充電控制(SBData)功能,通過串行接口可以檢測鋰離子電池的充電狀態(tài)、剩余電量、放電剩余時間、電池材料等信息。</p><p> SMBus是System Manag
71、ement Bus的縮寫,譯為系統(tǒng)管理總線,SMBus是一種二線制串行總線,它大部分基于I2C(Inter-Integrated Circuit)總線規(guī)范。I2C兩線(串行數(shù)據(jù)SDA和串行時鐘SCL線)式串行總線,用于連接微控制器及其外圍設(shè)備,是微電子通信控制領(lǐng)域廣泛采用的一種總線標準。I2C是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點。和I2C一樣,SMBus不需增加額外引腳,但是工作頻率只
72、能在10kHz到最高100kHz范圍內(nèi),且專門面向智能電池管理應用。SMBus為系統(tǒng)電源管理等任務(wù)提供了一條控制總線,使用SMBus的系統(tǒng),設(shè)備之間發(fā)送和接收消息都是通過SMBus,而不是使用單獨的控制線,這樣可以節(jié)省設(shè)備的管腳數(shù)。</p><p> SMBus最初的目的是為智能電池、充電電池和與其他系統(tǒng)通信的微控制器之間的通信鏈路而定義的,如今也被用來連接各種設(shè)備,包括電源相關(guān)設(shè)備,系統(tǒng)傳感器,EEPROM通
73、訊設(shè)備等等,但SMBus最適用于筆記本電腦上,檢測各元件狀態(tài)并更新硬件設(shè)置。</p><p> 圖4-4 BQ2040總線時序</p><p> 表4.1 時序特性</p><p><b> 第五章 系統(tǒng)測試</b></p><p> 硬件設(shè)計完成將待設(shè)計的系統(tǒng)分割成各個功能模塊,然后組合成一個合理的可行性
74、方案的任務(wù),用Protel等相關(guān)軟件完成硬件原理圖的設(shè)計后,制成PCB板。軟件設(shè)計則負責根據(jù)系統(tǒng)相關(guān)的功能要求,進行模塊的編程等,完成硬件設(shè)計后,我們可以通過Keil4.0等類似軟件對單片機燒入程序,最后便可進行鋰離子電池電量檢測系統(tǒng)的檢測試驗,定時記錄相關(guān)數(shù)據(jù),對鋰離子電池電量檢測結(jié)果的準確性進行測試。</p><p> 系統(tǒng)測試的思路可以針對BQ2040內(nèi)的三個重要寄存器:Full Charge Capac
75、ity(FCC)、Remaining Capacity(RM)、Discharge Count Register(DCR)。通過每隔一定時間讀取這三個寄存器的數(shù)據(jù),這樣記錄多組數(shù)據(jù)后,可以通過以下幾個主要關(guān)系進行驗證分析系統(tǒng)的準確性及可靠性:</p><p><b> RM ≤ FCC。</b></p><p> 放電的逆過程即充電,充電期間,若RM數(shù)值停止遞增,
76、則RM=FCC,這時我們讀取的RM應近似等于FCC,此時DCR=0。若要鋰離子電池充分充電,我們還可以根據(jù)BQ2040進行充電控制,向RM寫入一個用戶自定義的值。</p><p> DCR隨著RM的遞減逐漸增大,直到RM=0,鋰離子電池放電和自放電都會使DCR增大,但當RM=0后,只有放電才使DCR增大。</p><p><b> 結(jié) 論</b></p&g
77、t;<p> 本文針對基于單片機的鋰離子電池電量檢測系統(tǒng)的設(shè)計進行研究,對該系統(tǒng)的總體設(shè)計等方面進行了詳細敘述,硬件系統(tǒng)設(shè)計主要包括模擬量信號采集部分,電量檢測部分,中央處理控制部分,LED驅(qū)動輸出顯示等各個部分的設(shè)計,檢測結(jié)果采用了直觀的數(shù)碼顯示,可直接顯示鋰離子電池的剩余電量信息,避免了人工計算。另外本文還完成了軟件系統(tǒng)的設(shè)計,用C語言進行編程,實現(xiàn)數(shù)據(jù)的采集、轉(zhuǎn)換、存儲和傳輸,進一步證實了本設(shè)計的有效性和可行性,同
78、時本文給出了硬件原理圖、軟件流程圖及源程序設(shè)計。</p><p> 在設(shè)計過程當中,充分考慮了鋰離子電池的性能特點,本系統(tǒng)的電路設(shè)計結(jié)構(gòu)簡單,基于W78E365單片機,用BQ2040進行鋰離子電池電量檢測,以TM1629驅(qū)動控制LED數(shù)碼輸出顯示鋰離子電池的剩余電量,用較少的外部元件實現(xiàn)高精度測量,降低了開發(fā)成本,提高了鋰離子電池電量檢測效率。經(jīng)過反復多次的設(shè)計及修改,該系統(tǒng)的各項指標均達到了設(shè)計要求,具有很高
79、的實用價值。</p><p> 由于畢業(yè)設(shè)計的時間限制,希望今后在以下方面進行更深一層的研究:</p><p> 硬件方面:硬件抗干擾能力上還需得到進一步的提高。</p><p> 軟件方面:增加鋰離子電池電量檢測更多相關(guān)功能。</p><p><b> 參考文獻</b></p><p>
80、 [1] 趙靈智,汝強.鋰離子電池材料的研究現(xiàn)狀[Z],2009:3~4.</p><p> [2] 李申飛,易菊蘭.電池電量精確測量方法的研究與實現(xiàn)[J].計算機工程與應用,2009,45(17):244~224.</p><p> [3] 郭炳焜,鋰離子電池.長沙:中南大學出版社,2002.</p><p> [4] 王海明,鄭繩楦,劉興順.鋰離子電池的
81、特點及應用[Z],2004:132~134.</p><p> [5] 張俊謨.單片機中級教程[M].北京:北京航空航天大學出版社,2006.3.</p><p> [6] 張友德,趙志英,涂時亮.單片機微型機原理、應用與實驗.上海:復旦大學出版社,2004.</p><p> [7] 張培根,孫占輝,張欣,張村峰.MCS-51單片機原理與應用.北京:清華大學
82、出版社.</p><p> [8] 戴仙金.51單片機及其C語言程序開發(fā)實例[M]北京:清華大學出版社,2008.</p><p> [9] 朱清慧等.Proteus教程—電子線路設(shè)計、制版與仿真[M].北京:清華大學出版社,2008.</p><p> [10] bq2040 Gas Gauge IC With SMBus Interface, Texas
83、Instruments Incorporated,2005.</p><p> [11] Anbuky A.H,Pascoe P.E,VRLA.battery state-of-charge estimation in telecommunication power systems[J].Industrial Electronics, IEEE Transactions on Volume 47, Issue
84、3, June 2000 Page(s):565~573.</p><p><b> 致 謝</b></p><p> 畢業(yè)設(shè)計象征著大學生涯的結(jié)束,這也是一個至關(guān)重要的環(huán)節(jié),它能有效地檢驗我們的學習成果,也是我們理論聯(lián)系實際的一次機會。在這幾個月的時間里,xx老師嚴謹?shù)闹螌W態(tài)度和熱忱的工作作風使我十分佩服,其淵博的專業(yè)知識,嚴以律己、寬以待人的崇高風范,樸實無
85、華、平易近人的人格魅力對我影響深遠。雖然在畢業(yè)設(shè)計的整個過程中我遇到過很多的問題,但他的指導讓我受益匪淺,和我同一組的同學也給我了我極大的幫助,加上自己不斷的努力摸索,最終完成了畢業(yè)設(shè)計。在此對幫助我的老師和同學們表示深深的感謝。</p><p> 經(jīng)過這次畢業(yè)設(shè)計,我在理論知識、研究能力及外語水平等各方面的能力都有了很大的提升,并且還提高了我的動手能力與設(shè)計能力,同時還學會了使用Protel、KeilC、Au
86、tocad等軟件的常用操作。這些都是我在平時學習和生活中所得不到的鍛煉,更是我人生中寶貴的經(jīng)歷。</p><p> 大學四年,學到的不僅是書本上的知識,對我來說最重要的是學會如何做人,這才是這幾年得到的最寶貴,最值得珍惜的財富,相信在以后的人生道路上,會有我的一番作為。感謝母校四年來對我的培養(yǎng)與教導。</p><p> 最后,我在此感謝在百忙之中為我的畢業(yè)設(shè)計評閱并提出寶貴意見的專家們
87、!</p><p> 由于水平有限,本文難免有遺漏和錯誤之處,懇請各位老師批評指正,謝謝!</p><p><b> 附 錄</b></p><p> #include <AT89X51.H></p><p> #include <absacc.h></p><p&g
88、t; #include <intrins.h></p><p> sbit SMBC=P1^6;//sbit SMBC=P1^4; //bq2040中SMbus的時鐘端</p><p> sbit SMBD=P1^7;//sbit SMBD=P1^5; //bq2040中SMbus的數(shù)據(jù)端</p><p>
89、; unsigned char bq2040_Command_RC=0x0f; //讀剩余電量的指令</p><p> signed char bq2040_Command_C=0x0a; //讀電流的指令</p><p> unsigned char bq2040_Command_BS=0x16; //讀電池狀態(tài)</p><p>
90、unsigned char ReceiveData_L, ReceiveData_H, Current_H_7, </p><p> BatteryStatus_L_6, BatteryStatus_L_5;</p><p> //從BQ2040接收數(shù)據(jù)的低位,高位,電流正負位(正表示充電,負表示放電),電池狀態(tài)充放電判斷(0表示充電,0x40表示放電),電池狀態(tài)滿充判斷(0表示未充滿
91、,0x20表示充滿)</p><p> unsigned char ack; //用于判斷接收確認是否超時,超時為1,未超時為0</p><p> void Delay(void) //延時子程序</p><p><b> {</b></p><p><b> _nop_();</b
92、></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><
93、p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop
94、_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p
95、><p><b> }</b></p><p> //以下函數(shù)詳見SMbus原理</p><p> void Star(void) //開始子程序 當SMBC為高電平時,SMBD上出現(xiàn)一個下降沿。該條件啟動一次傳輸過程</p><p><b> {</b></p>&l
96、t;p><b> SMBC=0;</b></p><p><b> Delay();</b></p><p><b> SMBD=1;</b></p><p><b> Delay();</b></p><p><b> SMBC
97、=1;</b></p><p><b> Delay();</b></p><p><b> SMBD=0;</b></p><p><b> Delay();</b></p><p><b> }</b></p><
98、;p> void Stop(void) //停止子程序 當SMBC為高電平時,SMBD上出現(xiàn)一個上升沿。該條件停止一次傳輸過程</p><p><b> {</b></p><p><b> SMBC=0;</b></p><p><b> Delay();</b></
99、p><p><b> SMBD=0;</b></p><p><b> Delay();</b></p><p><b> SMBC=1;</b></p><p><b> Delay();</b></p><p><b&
100、gt; SMBD=1;</b></p><p><b> Delay();</b></p><p><b> }</b></p><p> void Ackw(void) //ACKNOWLEDGE寫子程序 SMBC為高時,采樣到SMBD為低電平</p><p><
101、;b> {</b></p><p> unsigned char a=0;</p><p><b> ack=0;</b></p><p><b> SMBC=0;</b></p><p><b> Delay();</b></p>&
102、lt;p><b> SMBD=1;</b></p><p><b> Delay();</b></p><p><b> SMBC=1;</b></p><p><b> Delay();</b></p><p><b> }&l
103、t;/b></p><p> void Ackr(void) //ACKNOWLEDGE讀子程序 SMBC為高時,采樣到SMBD為低電平</p><p><b> {</b></p><p><b> SMBC=0;</b></p><p><b> Delay();
104、</b></p><p><b> SMBD=0;</b></p><p><b> Delay();</b></p><p><b> SMBC=1;</b></p><p><b> Delay();</b></p>
105、<p><b> }</b></p><p> void Nack(void) //NOT ACKNOWLEDGE子程序 SMBC為高電平時,采樣到SMBD為高電平</p><p><b> {</b></p><p><b> SMBC=0;</b></p>
106、<p><b> Delay();</b></p><p><b> SMBD=1;</b></p><p><b> Delay();</b></p><p><b> SMBC=1;</b></p><p><b> De
107、lay();</b></p><p><b> }</b></p><p> void Send(unsigned char b) //發(fā)送子程序 將b按從最高位到最低位的順序,逐位的發(fā)送給bq2040</p><p><b> {</b></p><p> unsi
108、gned char i,x,y,z;</p><p><b> z=0x80;</b></p><p> for(i=1;i<9;i++)</p><p><b> {</b></p><p><b> x=b&z;</b></p><
109、p><b> if(x==0)</b></p><p><b> y=0;</b></p><p><b> else</b></p><p><b> y=1;</b></p><p><b> SMBC=0;</b>
110、;</p><p><b> Delay();</b></p><p><b> SMBD=y;</b></p><p><b> Delay();</b></p><p><b> SMBC=1;</b></p><p>
111、<b> Delay();</b></p><p><b> z>>=1;</b></p><p><b> }</b></p><p><b> }</b></p><p> unsigned char Receive(void)
112、 //接收子程序 將bq2040中的數(shù)據(jù)逐位的讀出</p><p><b> {</b></p><p> unsigned char i,g=0x00;</p><p> for(i=1;i<9;i++)</p><p><b> {</b></p><p
113、><b> SMBC=0;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> SMBD=1;</b></p><p><b> Delay()
114、;</b></p><p><b> SMBC=1;</b></p><p><b> Delay();</b></p><p><b> g<<=1;</b></p><p><b> if(SMBD)</b></p
115、><p><b> g++;</b></p><p><b> Delay();</b></p><p><b> }</b></p><p><b> return g;</b></p><p><b> }<
116、;/b></p><p> void Read(unsigned char Command) //讀剩余電量子程序</p><p><b> {</b></p><p> unsigned int a; </p><p> Star(); //開始</p><p>&l
117、t;b> a=0x16;</b></p><p> Send(a); //發(fā)送器件地址0x16</p><p> Ackw(); //發(fā)送確認</p><p> if(ack) //未確認則重新發(fā)送</p><p><b> return;</b></p>
118、<p> Send(Command); //發(fā)送讀剩余電量指令</p><p> Ackw(); //發(fā)送確認</p><p> if(ack) //未確認則重新發(fā)送</p><p><b> return;</b></p><p><b> Star();</b&g
119、t;</p><p> a=0x17; //發(fā)送器件地址0x17</p><p><b> Send(a);</b></p><p> Ackw(); //發(fā)送確認</p><p> if(ack) //未確認則重新發(fā)送</p><p><b> return
120、;</b></p><p> ReceiveData_L=Receive(); //接收剩余電量低8位數(shù)據(jù)</p><p> Ackr(); //接收確認</p><p> ReceiveData_H=Receive(); //接收剩余電量高8位數(shù)據(jù)</p><p> Nack(); //非確認</p
121、><p> Stop(); //結(jié)束</p><p><b> }</b></p><p> void Delay2(void) //4s顯示延時</p><p><b> {</b></p><p> unsigned char i,j,k;</p&g
122、t;<p> for(i=0;i<255;i++)</p><p> for(j=0;j<255;j++)</p><p> for(k=0;k<20;k++);</p><p><b> }</b></p><p><b> main()</b></
123、p><p><b> { </b></p><p> unsigned char RemainingCapacity_H,RemainingCapacity_L,Current_H,BatteryStatus_L;</p><p> TMOD=0x20; //串口波特率9600bps,方式3,無校驗,數(shù)據(jù)位8,停止位1.</p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機的鋰離子電池電量檢測系統(tǒng)設(shè)計畢業(yè)論文
- 畢業(yè)論文--基于單片機的鋰離子電池電量檢測系統(tǒng)設(shè)計
- 開題報告--基于單片機的鋰離子電池電量檢測系統(tǒng)設(shè)計
- 基于單片機的蓄電池電量檢測系統(tǒng)課程設(shè)計
- 基于avr單片機的鋰離子電池組充電電路設(shè)計
- 鋰電池電量檢測系統(tǒng)設(shè)計.pdf
- 基于電池電量檢測的低功耗設(shè)計.pdf
- 鋰離子電池,磷酸鐵鋰畢業(yè)論文
- 畢業(yè)論文---基于單片機的煙霧檢測系統(tǒng)
- 基于單片機的室內(nèi)甲醛檢測系統(tǒng)設(shè)計——畢業(yè)論文
- 基于單片機的電流智能檢測系統(tǒng)畢業(yè)論文
- 基于單片機的居室環(huán)境檢測系統(tǒng)【畢業(yè)論文】
- 基于單片機的門控系統(tǒng)設(shè)計畢業(yè)論文
- 鋰電池電量檢測原理
- 畢業(yè)論文——基于單片機的脈搏信號檢測
- 基于單片機的酒精氣體檢測系統(tǒng)設(shè)計【畢業(yè)論文】
- 基于51單片機的無線溫度檢測系統(tǒng)畢業(yè)論文
- 基于單片機的酒精氣體檢測系統(tǒng)設(shè)計【畢業(yè)論文】
- 單片機畢業(yè)論文--基于單片機的自動售貨機的系統(tǒng)設(shè)計
- 基于單片機倒車雷達系統(tǒng)設(shè)計【畢業(yè)論文】
評論
0/150
提交評論