《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電源技術(shù) > 解決方案 > STM32F103控制器的蓄電池雙向電流檢測

STM32F103控制器的蓄電池雙向電流檢測

2010-12-11
作者:高兵權(quán) 肖學(xué)福 劉金彪 張揚(yáng)奇

1 硬件設(shè)計(jì)
   
蓄電池組信號采集和處理的工作原理如圖1所示,。功能上包括獨(dú)立的兩部分:電壓檢測" title="電壓檢測">電壓檢測和電流檢測。其中電壓檢測實(shí)現(xiàn)較為簡單,。系統(tǒng)充放電" title="充放電">充放電電流的實(shí)時(shí)檢測選用瑞士LEM公司的LA28-NP電流傳感器,。


    ST公司推出的STM32F103" title="STM32F103">STM32F103系列控制器采用高性能的ARM Cortex-M3 32位的RISC內(nèi)核,工作頻率為72MHz,。該器件內(nèi)置高速存儲(chǔ)器(高達(dá)128 KB的閃存和20KB的SRAM),,豐富的增強(qiáng)I/O端口和連接到兩條APB總線的外設(shè);具有3個(gè)通用16位定時(shí)器和1個(gè)PWM定時(shí)器,,以及2個(gè)I2C和2個(gè)SPI,、3個(gè)USART、1個(gè)USB和1個(gè)CAN通信接口;工作于-40~+105℃的溫度范圍,,供電電壓" title="供電電壓">供電電壓為2.O~3.6 V,,一系列的省電模式保證低功耗應(yīng)用的要求。STM32F103系列處理器不但具有高速可靠,、資源豐富,、工作溫度和供電電壓范圍寬、功耗低,、性價(jià)比高的特點(diǎn),而且內(nèi)部集成雙路A/D轉(zhuǎn)換器(16通道,,12位精度,,1 μs轉(zhuǎn)換時(shí)間)。
1.1 電壓檢測
   
電壓信號量的檢測采用雙電阻分壓模式,,取兩個(gè)合適阻值的電阻串聯(lián)分壓,,分壓后的電壓信號送入STM32F103處理器的A/D轉(zhuǎn)換引腳。本設(shè)計(jì)中,,控制器基準(zhǔn)電壓采用+2.5 V,,故電壓信號輸入范圍須小于或等于2.5 V,即:
   
    其中,,Vbat為蓄電池組電壓值,,實(shí)際變化范圍為20~28 V,這里Vbat取最大值28 V,;R1和R2為分壓電阻,,均選用精度為1%的金屬膜電阻。R1=102 kΩ,,R2=10 Ω,,R1和R2的串聯(lián)電阻達(dá)到112 kΩ,消耗的電量對裝備工作不會(huì)產(chǎn)生過大的影響,。
1.2 充放電電流雙向采樣與處理
   
采用LA28-NP電流傳感器對充放電電流進(jìn)行實(shí)時(shí)檢測,。該傳感器是利用霍爾原理的閉環(huán)(補(bǔ)償)電流傳感器,原邊回路和副邊回路之間絕緣,,可用于測量直交流脈沖和混合型電流,,供電電壓±15 V。系統(tǒng)中采用1000:5的匝比,,原邊回路的充放電±5 A電流對應(yīng)副邊回路的額定電流Is,,其有效值為±25 mA。在應(yīng)用中,,感應(yīng)電流Is通過精密電阻Rm,,取得電壓量V1,電阻Rm的取值取決于A/D轉(zhuǎn)換器對于V2的要求。
    LA28-NP的輸出電流為雙向,,即±25 mA的電流信號,。在實(shí)際工作中,放電時(shí)輸出最大電流為+25 mA,,而充電時(shí),,輸出最大電流為-25mA,由此而取得的電壓信號V1相對于地電平也為相應(yīng)的正負(fù)電壓,。STM32F103內(nèi)置的ADC電壓輸入范圍為Vref-≤Vin≤Vref+,。本設(shè)計(jì)中Vref-接模擬地,Vref+接2.5 V基準(zhǔn)電壓,,故ADC輸入范圍為O~2.5 V,。目前存在的問題是:STM32F103采用單3.3 V工作,模擬量輸入無法處理反向電壓,。在傳統(tǒng)的方式下,,如果電阻Rm基準(zhǔn)電平端接入地,充電時(shí)V1為負(fù)電壓,,控制器無能為力,。針對這個(gè)問題,本文設(shè)計(jì)了圖2所示的累加升壓,、跟隨反向信號預(yù)處理電路,,解決了雙向電流的A/D采樣問題。


    該設(shè)計(jì)的基本思想是將雙向電流的電壓變化范圍均控制在0~Vref+范圍內(nèi),。這是以犧牲A/D轉(zhuǎn)換精度為代價(jià)的,。詳細(xì)過程如下:
    ①串入電阻Rm=50 Ω,獲得模擬量電壓輸出V1范圍為-1.25~+1.25 V,。
    ②利用兩門運(yùn)算放大器構(gòu)建求和電路,,實(shí)現(xiàn)V1和+1.25 V基準(zhǔn)電壓累加,將V1擴(kuò)展至0~-2.5 V,。再做一次反向跟隨放大,,實(shí)現(xiàn)電壓反向功能,輸出電壓V2為0~+2.5 V,。
    運(yùn)算放大器選用通用運(yùn)放LM324,,供電電壓±15V,和電流傳感器LA28-NP采用同一供電電路,。
    取R3=R4=R5=10 kΩ,,Vmid=-(1.25+V1),故Vmid電壓范圍為O~-2.5 V,。
    在第二級反相放大電路中可得:

    ③STM32F103的A/D轉(zhuǎn)換器精度為12位,,理論上對應(yīng)數(shù)字量范圍0~4096,。實(shí)際情況下,由于接插件,、線纜,、PCB和器件的綜合影響,充放電流計(jì)算公式為:y=kx-5.046,,k=0.00244,。在實(shí)際的程序編制中,k定義為float數(shù)據(jù)類型,,至少取3位有效數(shù)字,,才能保證O.01 A的電流精度。x表示A/D轉(zhuǎn)換器得到的數(shù)字量,。y表示實(shí)際電流值,,負(fù)數(shù)表示充電電流,正數(shù)表示放電電流,。充放電電流和A/D數(shù)字量的曲線關(guān)系如圖3所示。



2 軟件設(shè)計(jì)
2.1 基本思路

    監(jiān)控系統(tǒng)軟件的開發(fā)采用ARM公司的Real View MDK開發(fā)工具,,統(tǒng)一采用C語言編程,。為提高開發(fā)效率,ST公司推出了針對STM32控制器的固件函數(shù)庫,,目前的最新版本為STM32F10x_StdPeriph_Lib_V3.2.O,。電壓和電流檢測A/D轉(zhuǎn)換的軟件設(shè)置如下:
    ①配置模擬量輸入的GPIO口。STM32控制器有個(gè)很大的優(yōu)點(diǎn),,其A/D轉(zhuǎn)換輸入引腳可以是任意GPIO,,只要GPIO配置為GPIO_Mode_AIN模式,即可以實(shí)現(xiàn)模擬量輸入,。STM32F103共有16個(gè)外部通道,,該設(shè)計(jì)中將PCA和PC6作為電壓量和電流量的ADC輸入端。
    ②將ADC設(shè)置為連續(xù)轉(zhuǎn)換模式,、右對齊,、非外部觸發(fā)。
    ③啟動(dòng)ADC,,開始采樣轉(zhuǎn)換和處理,。
2.2 軟件濾波措施
   
該應(yīng)用中電壓量和電流量為變化較緩的信號,故軟件采取防脈沖干擾平均濾波算法,。連續(xù)采樣N個(gè)數(shù)據(jù),,去掉一個(gè)最大值和一個(gè)最小值,然后計(jì)算N-2個(gè)數(shù)據(jù)的算術(shù)平均值,。通過實(shí)驗(yàn)N取5時(shí)可達(dá)到滿意的效果,。該算法能夠剔除偶然出現(xiàn)的脈沖性干擾,,消除由于脈沖干擾所引起的采樣值偏差。

3 提高信號檢測精度的措施
   
為提高ADC處理的精度和系統(tǒng)抗干擾能力,,該設(shè)計(jì)從ADC的使用,、電壓基準(zhǔn)" title="電壓基準(zhǔn)">電壓基準(zhǔn)和供電、濾波及元器件的選擇等方面采取了系列的措施,。
3.1 ADC的使用
    使用STM32F103的ADC時(shí)考慮兩個(gè)方面:
    ①兩個(gè)模擬量輸入口臨近的引腳不安排數(shù)字量I/O,。I/O腳之間存在耦合電容,因此I/O端口的翻轉(zhuǎn)可能對ADC的模擬輸入產(chǎn)生一些噪聲,。這可能是因?yàn)镻CB走線過于靠近,,或互相交叉而產(chǎn)生的。
    ②溫度會(huì)對ADC的精度產(chǎn)生較大的影響,,主要包括偏移誤差和增益誤差,。這些誤差可以通過微控制器的固件程序補(bǔ)償。一種方法是,,根據(jù)不同的溫度范圍測量出完整的偏移和增益變化,,再在存儲(chǔ)器中建立一個(gè)對照表,需要耗費(fèi)額外的費(fèi)用和時(shí)間,。另一種方法是,,當(dāng)溫度達(dá)到某個(gè)數(shù)值時(shí),使用內(nèi)部的溫度傳感器和ADC看門狗功能,,重新校準(zhǔn),。
3.2 電壓基準(zhǔn)芯片和獨(dú)立電源供電
   
在該設(shè)計(jì)中為保證信號的質(zhì)量,重要的電平信號采用專用芯片來實(shí)現(xiàn),。例如使用REF2912和REF2925電壓基準(zhǔn)芯片產(chǎn)生+1.25 V和+2.5 V兩個(gè)電壓基準(zhǔn)源,,+1.25 V基準(zhǔn)信號用于放大器累加電路,+2.5 V基準(zhǔn)信號提供給SFM32F103的Vref+,。另外,,模擬電路、控制器模擬供電和數(shù)字電路供電采用獨(dú)立電源,,由專用DC/DC提供±15 V電源,,為電流傳感器LA-28P及運(yùn)算放大器LM324供電,STM32F103的模擬部分VDDA和數(shù)字部分VDD使用獨(dú)立的+3.3 V供電,。三種獨(dú)立電源于一點(diǎn)共地,,盡可能地減少電源間的互擾。這樣做的好處是,,避免了很多的I/O端口翻轉(zhuǎn)操作在直流電源上產(chǎn)生的大量的噪聲干擾,。
3.3 其他抗干擾措施
   
該設(shè)計(jì)還采取了其他的一些抗干擾措施:STM32F103控制器的VDDA和Vref+引腳連接2個(gè)外部的去耦電容器(10 nF瓷介電容+1 μF的鉭電容);模擬電路中的所有電阻采用1%精度的金屬膜電阻,;在PCB的布置中,,模擬電路部分遠(yuǎn)離數(shù)字部分,,避免了在模擬電路底下通過數(shù)字信號線。

結(jié)語
   
該設(shè)計(jì)實(shí)現(xiàn)了充放電電流信號的累加升壓,、跟隨反向,,利用STM32F103控制器片內(nèi)12位A/D實(shí)現(xiàn)了實(shí)時(shí)監(jiān)測。最終電壓檢測實(shí)際精度達(dá)到O.005 V,,電流實(shí)際精度達(dá)到O.005 A,,效果穩(wěn)定、可靠,,滿足了設(shè)計(jì)要求,。需進(jìn)一步改進(jìn)之處在于處理系統(tǒng)的溫漂問題,即溫度對電路的影響,。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。