新聞中心

EEPW首頁(yè) > 嵌入式系統(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ò) 收藏


四、系統(tǒng)功能軟件實(shí)現(xiàn)及流程圖

  為了滿足監(jiān)測(cè)的實(shí)時(shí)性,本系統(tǒng)單片機(jī)采用定時(shí)中斷的方式訪問,進(jìn)行電池參數(shù)采集。首先設(shè)置單片機(jī)的計(jì)數(shù)器為定時(shí)方式,開啟計(jì)數(shù)器,定時(shí)長(zhǎng)短可隨需要靈活設(shè)定。然后單片機(jī)運(yùn)行其它程序,等待定時(shí)中斷的到來。定時(shí)中斷發(fā)生之后進(jìn)入中斷服務(wù)程序,調(diào)用的控制操作程序,進(jìn)行數(shù)據(jù)采集,并將采集來的數(shù)據(jù)進(jìn)行處理和顯示,最后重新初始化定時(shí)中斷,返回。圖3是系統(tǒng)總體流程圖,圖4是中斷服務(wù)程序流程圖。

  與單片機(jī)進(jìn)行數(shù)據(jù)通訊時(shí)僅用一根數(shù)據(jù)線,因此必須嚴(yán)格按照芯片的讀寫時(shí)序要求來編寫程序,這樣才能保證數(shù)據(jù)的正確讀寫。這一過程雖然繁瑣,但并不復(fù)雜,因篇幅有限,本文對(duì)此不予說明。下面介紹如何實(shí)現(xiàn)利用基于DS2438芯片的智能對(duì)儀器的供電方式(直流或交流)和電池的電壓、電流、溫度、剩余電量進(jìn)行監(jiān)測(cè)。

  1.供電方式的監(jiān)測(cè)

  要確定儀器在使用中處于何種供電方式,可利用前面介紹的電流寄存器的值進(jìn)行判定。

  首先單片機(jī)控制DS2438使其電流A/D轉(zhuǎn)換器使能,DS2438便會(huì)以每秒36.41次的速度對(duì)流入、流出電池塊電流自動(dòng)進(jìn)行測(cè)量,測(cè)量的結(jié)果存放于電流寄存器中。電流寄存器的高字節(jié)的高六位是流入電池電流的符號(hào)位,為1時(shí)表示電池正在充電,也就是儀器正由交流電源供電;為0表示電池正在放電,即儀器正由直流電池供電。因此,單片機(jī)讀出電流寄存器的值,對(duì)其高六位進(jìn)行判斷就可獲悉供電方式,同時(shí)也獲得了電流值。軟件流程圖見圖5。

  2.電池電壓、溫度的測(cè)量

  由于DS2438內(nèi)部有A/D轉(zhuǎn)換器和數(shù)字溫度傳感器,要獲得電池的電壓、溫度只需要由單片機(jī)對(duì)DS2438發(fā)出采集電壓、溫度的控制命令,然后等待其采集完畢并自動(dòng)將電壓、溫度測(cè)量值存入相對(duì)應(yīng)的寄存器后,再由單片機(jī)讀取寄存器的內(nèi)容即可。在讀取寄存器值時(shí),若單片機(jī)與DS2438之間的數(shù)據(jù)線為低電平,則表明DS2438正在進(jìn)行電壓、溫度轉(zhuǎn)換,此時(shí)不能讀取數(shù)據(jù),只有當(dāng)數(shù)據(jù)線為高電平時(shí),才能正確的讀取數(shù)據(jù)。
  
  3.剩余電量的監(jiān)測(cè)

  電池的剩余電量是儀器在使用過程中用戶所需要的重要信息,它可用電流積分累加(ICA)寄存器的值求得。ICA寄存器的值是由DS2438定時(shí)自動(dòng)測(cè)量電池電流后更改的,無需對(duì)其進(jìn)行控制,只需單片機(jī)讀出ICA寄存器的值,然后將讀出的值代入公式(2),便可得到電池的剩余電量。剩余電量監(jiān)測(cè)的流程圖見圖6。

  剩余電量=ICA/(2048×RSENS) (2) 其中RSENS的單位為Ω。

  說明:(1) 單片機(jī)對(duì)DS2438進(jìn)行任意存儲(chǔ)命令操作時(shí),在發(fā)出每個(gè)命令之前都必須按照DS2438的復(fù)位時(shí)序要求,先發(fā)復(fù)位信號(hào)且等待DS2438的應(yīng)答(以示 DS2438準(zhǔn)備接受或發(fā)送數(shù)據(jù)),然后再發(fā)出一個(gè)ROM命令用以選擇總線上要訪問的DS2438,在本文的程序流程圖中,此過程用“DS2438的初始化”來代替;
  (2) 在對(duì)DS2438控制之前,必須先寫狀態(tài)/標(biāo)志寄存器;
  (3) 在讀取寄存器的值時(shí),為防止讀取錯(cuò)誤,先要檢查DS2438是否正在修改寄存器的內(nèi)容,這可通過對(duì)狀態(tài)/標(biāo)志寄存器中的NVB位進(jìn)行判斷實(shí)現(xiàn)。


五、結(jié)束語

  本文介紹的基于DS2438芯片的智能是一種便攜式儀器的一部分,實(shí)際使用證明本系統(tǒng)運(yùn)行可靠、功能強(qiáng)大、操作方便、能夠與其他功能協(xié)同工作。隨著各種便攜式電子產(chǎn)品的廣泛應(yīng)用,電池實(shí)時(shí)監(jiān)測(cè)已成為一種必不可少的功能。因此本文所介紹的具有較強(qiáng)的實(shí)用性。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

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

關(guān)閉