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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于單片機的串聯(lián)鋰離子電池組監(jiān)測系統(tǒng)設(shè)計

          基于單片機的串聯(lián)鋰離子電池組監(jiān)測系統(tǒng)設(shè)計

          作者: 時間:2011-12-23 來源:網(wǎng)絡(luò) 收藏

          1.3 A/D轉(zhuǎn)換器
          無需用很高的采樣速度采樣每節(jié)電池的電壓,16節(jié)電池電壓的采樣共用1個A/D轉(zhuǎn)換器。各節(jié)電池輸入的測量電壓通過多選一模擬開關(guān)MUX16與A/D轉(zhuǎn)換器連接。根據(jù)電池電壓的更新周期和電壓要求,A/D轉(zhuǎn)換器傳送給的電壓轉(zhuǎn)換值誤差最大為10 mV。選擇美信公司MAX1272。MAX1272是具有故障保護、可通過軟件選擇輸入范圍的12位串行模擬數(shù)字轉(zhuǎn)換器,使用SPI三線通信協(xié)議,+5 V供電,模擬輸入電壓范圍0~10 V,0~5 V,±10 V,±5 V。內(nèi)部自帶+4.096 V參考電壓。當采用內(nèi)部+4.096 V參考電壓時,理想情況下模擬電壓輸入對應(yīng)的數(shù)字輸出,如表1所示。

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

          d.jpg


          由表1可知,MAX1272輸出的數(shù)字量最高位是符號位,余下的11位是數(shù)據(jù)。負數(shù)以補碼的形式給出。參考電壓為+4.096V時,1LSB=1.2207 mV。MAX1272的最大量化誤差,加上非線性、失調(diào)等誤差的影響,總誤差約為5 mV。INA117精度高,正常情況下,誤差在1 mV以內(nèi)。因此,使用INA117和MAX1272的組合,可以滿足電池在電壓誤差10 mV以下的要求。需要更高的電壓精度,需要選用更高分辨率的A/D轉(zhuǎn)換器。MAX1272的線路連接圖如圖4所示。

          e.jpg


          圖4中MAX1272采用了內(nèi)部參考電壓,6腳VREF和地之間接2.2μF鉭電容和0.1μF陶瓷電容。PCB布線時,這兩個電容都要求盡量接近MAX1272。
          1.4 溫度
          針對,傳統(tǒng)的測溫方法多采用模擬溫度傳感器進行測量,在數(shù)據(jù)的采集和傳輸過程中易受外界環(huán)境的干擾,從而使測得的結(jié)果誤差較大,且當測量點較多時,連線較復(fù)雜。文中采用和單總線數(shù)字式溫度傳感器DS18B20來解決上述問題。其原理如圖5所示。

          h.jpg


          采用外部5 V供電,總線上可掛接多片DS18B20,且可以同時進行精確的溫度轉(zhuǎn)換,而無需外接驅(qū)動電路。測溫范圍-55~+125℃;測溫精度:在-10~+85℃范圍內(nèi)的精度為±0.5℃;在溫度采集過程中,芯片需對DS18B20發(fā)命令字,同時也需要讀取由DS18B20采集到的溫度。因此,單片機控制器的I/O必須被設(shè)置為具有雙向傳輸數(shù)據(jù)能力。



          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();