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