<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DS2438芯片的智能電池監(jiān)測(cè)系統(tǒng)

          基于DS2438芯片的智能電池監(jiān)測(cè)系統(tǒng)

          作者: 時(shí)間:2012-02-08 來源:網(wǎng)絡(luò) 收藏

          一、引言

          本文引用地址:http://www.ex-cimer.com/article/219083.htm

            目前設(shè)計(jì),為了滿足移動(dòng)性和輕便性的要求,通常采用電池供電。在使用電池供電時(shí),電池的當(dāng)前狀態(tài)是用戶所關(guān)心的,如MP3播放器、手機(jī)、筆記本電腦等都實(shí)時(shí)顯示電池的當(dāng)前狀態(tài)。為此在設(shè)計(jì)本文所涉及的儀器時(shí),智能被充分考慮。本文實(shí)現(xiàn)的智能電池監(jiān)測(cè)芯片、51單片機(jī)、液晶顯示模塊組成,其中核心功能是由智能電池監(jiān)測(cè)芯片完成的。本文介紹了本系統(tǒng)的硬件實(shí)現(xiàn)和軟件設(shè)計(jì),以及芯片特性和相關(guān)控制軟件程序。

          二、系統(tǒng)硬件實(shí)現(xiàn)

            本系統(tǒng)的硬件設(shè)計(jì)力求簡(jiǎn)潔,目的是盡量減少對(duì)單片機(jī)指令周期的占用,以便使單片機(jī)能夠完成更多其他功能。系統(tǒng)的硬件實(shí)現(xiàn)框圖見圖1。

            本系統(tǒng)由DS2438智能電池監(jiān)測(cè)芯片、51單片機(jī)、液晶顯示模塊組成。

            DS2438芯片完成對(duì)電池當(dāng)前各種狀態(tài)的監(jiān)測(cè),包括當(dāng)前電池的充/放電狀態(tài)、電壓、電流、溫度、剩余電量、消逝時(shí)間等參數(shù)的監(jiān)測(cè)。DS2438芯片能夠自動(dòng)采集這些參數(shù),并將其放在SRAM/EEPROM中。51單片機(jī)根據(jù)需要發(fā)出命令讀取這些參數(shù),然后處理這些參數(shù),顯示電池狀態(tài)。由于存放這些參數(shù)的EEPROM具有非易失性,所以本系統(tǒng)具有掉電保護(hù)的功能。

            51單片機(jī)按照用戶需要對(duì)電池狀態(tài)的相應(yīng)參數(shù)讀取和處理,然后送往液晶顯示模塊顯示。由圖1可見,單片機(jī)是整個(gè)系統(tǒng)的控制、處理中心。由于大量工作由單片機(jī)的軟件完成,明顯地降低了系統(tǒng)硬件復(fù)雜度。

            液晶顯示模塊顯示用戶需要了解的電池當(dāng)前狀態(tài)信息,僅僅接受單片機(jī)的控制和訪問。

            由此可見,本系統(tǒng)的主要功能是由DS2438芯片和51單片機(jī)的軟件程序完成的,其中51單片機(jī)、液晶顯示模塊的用法與其在其他系統(tǒng)中的用法相同,所以以下主要介紹DS2438芯片的功能特性和單片機(jī)軟件編程。

          三、DS2438芯片介紹

            DS2438芯片是DALLAS公司推出的新一代智能電池監(jiān)測(cè)芯片,具有功能強(qiáng)大、體積小、硬件接線簡(jiǎn)單等優(yōu)點(diǎn)。

            1.特性
            (1)僅有一根雙向數(shù)據(jù)線,故單片機(jī)僅需一個(gè)端口與之連接。
            (2)內(nèi)含數(shù)字溫度傳感器(免去在電池塊內(nèi)設(shè)裝熱敏電阻)。
            (3)片內(nèi)模數(shù)轉(zhuǎn)換器可進(jìn)行電池電壓監(jiān)測(cè),從而可判定充電和放電的結(jié)束。
            (4)片內(nèi)的積分電流累加器可實(shí)時(shí)記錄電池流入、流出電流的總量,便于統(tǒng)計(jì)電量。
            (5)內(nèi)含二進(jìn)制格式的消逝時(shí)間表。
            (6)內(nèi)含40字節(jié)可用于存放電池特殊參數(shù)的掉電保護(hù)的用戶訪問存儲(chǔ)器。

            2.芯片硬件接線(見圖2)

            3.存儲(chǔ)空間

            DS2438的存儲(chǔ)空間有8頁,每頁8個(gè)字節(jié),共64個(gè)字節(jié),每一頁都有對(duì)應(yīng)的高速暫存頁,因此存儲(chǔ)器包括RAM高速暫存器和SRAM/EEPROM (掉電保護(hù))兩部分,這兩部分是鏡像關(guān)系。高速暫存器可確保在用一線通訊時(shí)數(shù)據(jù)能夠保持一致性(數(shù)據(jù)寫入DS2438時(shí)先寫入高速暫存器,僅當(dāng)數(shù)據(jù)被確認(rèn)后,才能用暫存器復(fù)制命令將暫存頁的數(shù)據(jù)寫入相應(yīng)的掉電保護(hù)空間中),單片機(jī)對(duì)DS2438進(jìn)行數(shù)據(jù)讀/寫時(shí)只能對(duì)高速暫存器進(jìn)行操作。存儲(chǔ)空間內(nèi)包括一些特殊功能寄存器和用戶可使用的存儲(chǔ)單元。下面僅對(duì)存儲(chǔ)空間中與我們?cè)O(shè)計(jì)的實(shí)際系統(tǒng)有關(guān)的特殊寄存器做一下說明。

            (1)狀態(tài)/標(biāo)志寄存器
            狀態(tài)/標(biāo)志寄存器決定了DS2438的工作狀態(tài),單片機(jī)通過對(duì)特殊功能寄存器進(jìn)行讀/寫操作,可實(shí)現(xiàn)DS2438的各種功能,因此在對(duì)其進(jìn)行操作之前,必須對(duì)這一寄存器進(jìn)行初始化,即對(duì)相應(yīng)的控制位進(jìn)行寫操作。

            (2)電流寄存器
            DS2438內(nèi)含一個(gè)可有效測(cè)量流入、流出電池塊電流的模數(shù)轉(zhuǎn)換器,電流的測(cè)量是通過測(cè)量外部傳感電阻兩端的電壓來實(shí)現(xiàn)的。測(cè)量的結(jié)果存放于電流寄存器中。

            實(shí)際上電流寄存器存的是電壓值,要得到流入、流出電池的電流可用公式(1)行計(jì)算。
            I=電流寄存器的值/(4096×RSENS) (1)

            (3)電流積分累加寄存器
            DS2438對(duì)電池剩余電量的測(cè)量是借助其內(nèi)部的電流積分累加器(ICA)實(shí)現(xiàn)的。ICA存放的是流入、流出電池總電流的凈累加值,因此,存儲(chǔ)在這個(gè)寄存器內(nèi)的值可用于計(jì)算電池的剩余電量。

            (4)電壓寄存器
            存放采集的電壓值。

            (5)溫度寄存器
            存放采集的電池溫度值。

            (6)消逝時(shí)間記錄寄存器
            消逝時(shí)間記錄寄存器記錄相對(duì)于內(nèi)部基準(zhǔn)時(shí)間的電池充電完畢、其脫離系統(tǒng)的精確時(shí)刻,便于用戶了解電池的使用情況,正確地使用和維護(hù)電池。

            4.DS2438的操作命令

            DS2438的操作命令有兩類,一類是存儲(chǔ)功能命令,有讀/寫暫存頁、復(fù)制暫存頁、讀SRAM/EEPROM頁、溫度轉(zhuǎn)換、電壓轉(zhuǎn)換等命令,此類命令的主要作用是進(jìn)行數(shù)據(jù)采集和存儲(chǔ)。另一類是ROM功能命令,包括對(duì)DS2438的RAM序列號(hào)進(jìn)行讀、比較、跳過、尋找等四種操作,用戶可使用這類命令隨意訪問一條總線上連接的多個(gè)DS2438芯片。


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();