• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于STM32的鉛酸蓄電池充放電監(jiān)測(cè)系統(tǒng)設(shè)計(jì)

      2018-02-01 11:23:58王超秦會(huì)斌
      軟件導(dǎo)刊 2018年1期

      王超+秦會(huì)斌

      摘要:設(shè)計(jì)了一種鉛酸蓄電池充放電監(jiān)測(cè)系統(tǒng),實(shí)現(xiàn)對(duì)4節(jié)12V/20AH串聯(lián)鉛酸電池組充放電參數(shù)的監(jiān)測(cè)。系統(tǒng)硬件設(shè)計(jì)以STM32單片機(jī)為核心,完成溫度檢測(cè)、電壓檢測(cè)、電流檢測(cè)、顯示、聲光報(bào)警等電路設(shè)計(jì);軟件設(shè)計(jì)由單總線讀取4個(gè)DS18B20溫度傳感器數(shù)據(jù)實(shí)現(xiàn)溫度檢測(cè),并通過STM32多通道連續(xù)AD轉(zhuǎn)換和DMA(Direct Memory Access,直接內(nèi)存存?。┘夹g(shù)實(shí)現(xiàn)電壓、電流的快速檢測(cè)。

      關(guān)鍵詞:鉛酸蓄電池;STM32;充放電監(jiān)測(cè)系統(tǒng)

      DOIDOI:10.11907/rjdk.172001

      中圖分類號(hào):TP319

      文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):1672-7800(2018)001-0122-04

      Abstract:A charge and discharge monitoring system for the lead-acid battery was designed. It could monitor the charge and discharge parameters of the serial lead-acid battery pack that consists of four 12V/20AH lead-acid batteries. The temperature detection, voltage detection, current detection, display, sound and light alarm circuit design was completed in the hardware design of the system based on the STM32 microcontroller as the core. In the software design of the system, the temperature detection was realized through a single bus and it could read the data of four DS18B20 temperature sensors, the rapid voltage and current detection was achieved throug the STM32 multi-channel continuous AD conversion and DMA technology.

      Key Words:lead-acid battery; STM32; charge and discharge monitoring system

      0引言

      鉛酸蓄電池廣泛應(yīng)用于電力、交通、通信等各個(gè)領(lǐng)域,不合理的充放電使其實(shí)際使用壽命和設(shè)計(jì)使用壽命相差很多,造成極大的資源浪費(fèi),并對(duì)由其構(gòu)成的供電系統(tǒng)安全性產(chǎn)生嚴(yán)重威脅[1]。為延長(zhǎng)鉛酸蓄電池使用壽命,及時(shí)發(fā)現(xiàn)充放電過程中的過充電、過放電、超溫等異常問題,設(shè)計(jì)了一種鉛酸蓄電池充放電監(jiān)測(cè)系統(tǒng),該系統(tǒng)可對(duì)4節(jié)12V/20AH串聯(lián)鉛酸電池組充放電時(shí)的電流以及電壓和溫度進(jìn)行監(jiān)測(cè),并在充放電參數(shù)出現(xiàn)異常時(shí)進(jìn)行報(bào)警提示。

      1系統(tǒng)硬件設(shè)計(jì)

      系統(tǒng)硬件設(shè)計(jì)以SMT32單片機(jī)為核心,整體結(jié)構(gòu)如圖1所示,由含溫度檢測(cè)模塊、電壓檢測(cè)模塊、電流檢測(cè)模塊、顯示和通信模塊、聲光報(bào)警模塊組成。溫度、電壓、電流檢測(cè)模塊用于檢測(cè)充放電時(shí)電池組的電流,以及電池組中每個(gè)單體蓄電池的電壓和溫度;顯示和通信模塊用于顯示檢測(cè)到的充放電參數(shù),并將其發(fā)送給計(jì)算機(jī);聲光報(bào)警模塊在充放電參數(shù)出現(xiàn)異常時(shí)進(jìn)行報(bào)警。

      1.1主控芯片簡(jiǎn)介

      設(shè)計(jì)采用STM32F103RCT6單片機(jī)作為主控芯片,該芯片有以下特點(diǎn):①接口豐富、性能穩(wěn)定、功耗低、價(jià)格便宜;②工作電壓2.0V~3.6V,工作溫度-40℃~85℃;③使用ARM 32位Cortex-M3高性能內(nèi)核,內(nèi)置高速存儲(chǔ)器(48KB SRAM, 256KB FLASH),工作頻率最高可達(dá)72MHz;④外部有64引腳,其中51個(gè)為通用IO口,IO引腳資源豐富;⑤含有3個(gè)12位ADC,支持多通道ADC;⑥擁有2個(gè)DMA控制器(共12個(gè)通道),可用于存儲(chǔ)器到存儲(chǔ)器、④外設(shè)到存儲(chǔ)器和存儲(chǔ)器到外設(shè)的數(shù)據(jù)傳輸;⑦支持I2C、USART、SPI、CAN、USB等通信[2]。

      1.2溫度檢測(cè)模塊設(shè)計(jì)

      溫度檢測(cè)模塊實(shí)現(xiàn)對(duì)鉛酸蓄電池溫度的檢測(cè)。設(shè)計(jì)使用單總線溫度傳感器DS18B20進(jìn)行溫度檢測(cè),其提供9位溫度讀數(shù),溫度測(cè)量范圍為-55℃~125℃,精度±0.5℃,每個(gè)DS18B20的內(nèi)部光刻ROM中均有唯一的64位序列號(hào)。為節(jié)約IO資源,設(shè)計(jì)采用單根總線掛載4個(gè)DS18B20對(duì)4節(jié)鉛酸蓄電池溫度進(jìn)行檢測(cè),通過64位序列號(hào)對(duì)DS18B20進(jìn)行匹配后,逐個(gè)讀取溫度檢測(cè)數(shù)據(jù)[3-4]。溫度檢測(cè)模塊電路設(shè)計(jì)如圖2所示。

      1.3電壓檢測(cè)模塊設(shè)計(jì)

      電壓檢測(cè)模塊完成對(duì)每節(jié)單體鉛酸蓄電池電壓的檢測(cè)。設(shè)計(jì)采用電阻分壓法實(shí)現(xiàn)電壓檢測(cè),電路設(shè)計(jì)如圖3所示。串聯(lián)鉛酸電池組電壓V1-V4經(jīng)過分壓電阻RF1-RF4和采樣電阻RF01-RF04分壓后,接入STM32的PA0-PA3引腳進(jìn)行AD轉(zhuǎn)換。設(shè)計(jì)采用的12V/20AH鉛酸蓄電池最高充電電壓為15V左右。為保證分壓后的電壓信號(hào)不超過STM32 AD轉(zhuǎn)換最高輸入電壓3.3V,要進(jìn)行阻值選取,如圖3所示。電池組電壓最高時(shí),分壓后輸出電壓和分壓放大倍數(shù)如表1所示,其中60V-15V分別對(duì)應(yīng)圖3中V1-V4的電壓。STM32通過PA0-PA3引腳對(duì)分壓后的電壓進(jìn)行AD轉(zhuǎn)換,轉(zhuǎn)換結(jié)果乘以相應(yīng)的分壓放大倍數(shù)即可求得V1-V4電壓值,對(duì)V1-V4進(jìn)行減法運(yùn)算即可求得各節(jié)電池充放電時(shí)的電壓。為提高電壓endprint

      檢測(cè)精度,電壓檢測(cè)電路中電阻使用溫漂為10ppm、精度為0.1%的低溫漂精密電阻。

      1.4電流檢測(cè)模塊設(shè)計(jì)

      電流檢測(cè)模塊實(shí)現(xiàn)對(duì)鉛酸電池組充放電電流的檢測(cè)。

      設(shè)計(jì)采用量程為20A的ACS712ELCTR-20A霍爾電流傳感器進(jìn)行電流檢測(cè),電路設(shè)計(jì)如圖4所示,鉛酸電池組充放電電流通過1、2引腳和3、4引腳流經(jīng)ACS712時(shí),其7引腳會(huì)輸出一個(gè)與流經(jīng)電流IP線性相關(guān)的電壓VIOUT,VIOUT=2.5+0.1IP[5]。設(shè)計(jì)中充放電電流最大10A,ACS712輸出電壓可能超過最高輸入電壓3.3V,VIOUT需要分壓后才能接入STM32 AD轉(zhuǎn)換引腳。STM32 AD轉(zhuǎn)換引腳輸入電阻較小,將VIOUT分壓后電壓信號(hào)直接接入STM32 AD轉(zhuǎn)換引腳會(huì)對(duì)VIOUT的分壓電路產(chǎn)生影響,進(jìn)而影響電流檢測(cè)精度。如圖4所示,設(shè)計(jì)中先通過低溫漂精密電阻Rc1(30kΩ)和Rc2(20kΩ)對(duì)VIOUT進(jìn)行分壓,分壓后的電壓信號(hào)通過由運(yùn)放OPA180構(gòu)成的電壓跟隨器,再接入STM32的PA4引腳,理想狀態(tài)運(yùn)放輸入電阻無窮大,對(duì)VIOUT的分壓電路的影響可忽略。OPA180輸出電壓VPA4等于VIOUT分壓后的電壓,VPA4=1.5+0.06IP,鉛酸電池組充放電電流IP計(jì)算如式(1)所示。當(dāng)IP為正時(shí)表示電池組處于充電狀態(tài),當(dāng)IP為負(fù)時(shí)表示電池組處于放電狀態(tài)。

      1.5聲光報(bào)警模塊設(shè)計(jì)

      聲光報(bào)警模塊在充放電參數(shù)出現(xiàn)異常時(shí)進(jìn)行報(bào)警,電路設(shè)計(jì)如圖5所示。源蜂鳴器BEEP驅(qū)動(dòng)電流為30mA左右,為減少STM32負(fù)載,使用三極管S8050對(duì)STM32輸出的電流擴(kuò)流后再驅(qū)動(dòng)蜂鳴器,STM32 IO口只需提供不到1mA的驅(qū)動(dòng)電流。當(dāng)充放電參數(shù)正常時(shí)LED0為低電平,GRE(綠色LED)燈亮;當(dāng)充放電參數(shù)出現(xiàn)異常時(shí)LED1為低電平,BEEP為高電平,RED(紅色LED)燈亮,蜂鳴器響,進(jìn)行報(bào)警。

      1.6顯示和通信模塊設(shè)計(jì)

      顯示模塊用來顯示檢測(cè)到的鉛酸蓄電池充放電參數(shù),通信模塊用來將檢測(cè)到的充放電參數(shù)發(fā)送給計(jì)算機(jī)。顯示模塊使用2.8寸TFT LCD液晶進(jìn)行數(shù)據(jù)顯示,電路設(shè)計(jì)如圖6所示。通信模塊采用電平轉(zhuǎn)換芯片CH340G實(shí)現(xiàn)計(jì)算機(jī)和STM32間的RS232串口通信。

      2系統(tǒng)軟件設(shè)計(jì)

      2.1溫度檢測(cè)程序設(shè)計(jì)

      在STM32的一個(gè)IO口上設(shè)計(jì)掛載4個(gè)DS18B20,需先讀取DS18B20的64位光刻ROM以對(duì)其進(jìn)行匹配,實(shí)現(xiàn)單總線讀取4個(gè)溫度數(shù)據(jù)。DS18B20的64位光刻ROM數(shù)據(jù)結(jié)構(gòu)如圖7所示。為保證讀取到的光刻ROM數(shù)據(jù)無誤,需要根據(jù)最高8位CRC編號(hào)對(duì)低56位數(shù)據(jù)進(jìn)行校驗(yàn),DS18B20的64位光刻ROM讀取程序流程見圖8。

      根據(jù)光刻ROM數(shù)據(jù)對(duì)DS18B20進(jìn)行匹配并逐個(gè)讀取溫度檢測(cè)數(shù)據(jù),實(shí)現(xiàn)對(duì)4節(jié)鉛酸蓄電池的溫度檢測(cè),單總線讀取4個(gè)DS18B20數(shù)據(jù)程序流程如圖9所示[6]。

      2.2電壓和電流檢測(cè)程序設(shè)計(jì)

      電壓信號(hào)和電流檢測(cè)被轉(zhuǎn)換成5路電壓信號(hào)進(jìn)行檢測(cè),STM32需要對(duì)PA0-PA4引腳電壓信號(hào)進(jìn)行檢測(cè)。STM32 AD轉(zhuǎn)換支持單通道單次轉(zhuǎn)換、單通道多次轉(zhuǎn)換、多通道單次轉(zhuǎn)換、多通道連續(xù)轉(zhuǎn)換等多種轉(zhuǎn)換模式,為提高轉(zhuǎn)換速度,減少誤差,設(shè)計(jì)采用多通道連續(xù)轉(zhuǎn)換模式對(duì)PA0-PA4引腳的5路電壓信號(hào)進(jìn)行連續(xù)多次AD轉(zhuǎn)換。STM32 AD轉(zhuǎn)換支持DMA技術(shù),AD轉(zhuǎn)換結(jié)果可不經(jīng)CPU和中斷,由DMA控制器直接傳輸?shù)皆O(shè)定的目標(biāo)地址中。為提高AD轉(zhuǎn)換的效率,使用DMA技術(shù)對(duì)多通道連續(xù)AD轉(zhuǎn)換的結(jié)果進(jìn)行保存[7]。電壓和電流檢測(cè)程序流程如圖10所示。對(duì)每個(gè)通道進(jìn)行12次AD轉(zhuǎn)換,在數(shù)據(jù)處理部分,去除12次轉(zhuǎn)換結(jié)果中兩個(gè)最大值和兩個(gè)最小值后求平均值以減少誤差。將PA0-PA4 AD轉(zhuǎn)換配置為5通道連續(xù)轉(zhuǎn)換模式并開啟DMA,核心代碼如下:

      ADC_DeInit(ADC1);//復(fù)位ADC1

      ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//獨(dú)立模式

      ADC_InitStructure.ADC_ScanConvMode=ENABLE;//多通道掃描模式

      ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;//連續(xù)轉(zhuǎn)換模式

      ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//軟件觸發(fā)轉(zhuǎn)換

      ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//ADC數(shù)據(jù)右對(duì)齊

      ADC_InitStructure.ADC_NbrOfChannel=5;//順序進(jìn)行規(guī)則轉(zhuǎn)換的ADC通道的數(shù)目

      ADC_Init(ADC1,&ADC_InitStructure);//初始化外設(shè)ADCx的寄存器

      //設(shè)置指定ADC的規(guī)則組通道,設(shè)置它們的轉(zhuǎn)化順序和采樣時(shí)間

      ADC_RegularChannelConfig(ADC1,ADC_Channel_0,0,ADC_SampleTime_55Cycles5);

      ADC_RegularChannelConfig(ADC1,ADC_Channel_1,1,ADC_SampleTime_55Cycles5);

      ADC_RegularChannelConfig(ADC1,ADC_Channel_2,2,ADC_SampleTime_55Cycles5);

      ADC_RegularChannelConfig(ADC1,ADC_Channel_3,3,ADC_SampleTime_55Cycles5);endprint

      ADC_RegularChannelConfig(ADC1,ADC_Channel_4,4,ADC_SampleTime_55Cycles5);

      ADC_DMACmd(ADC1,ENABLE);//開啟ADC的DMA

      ADC_Cmd(ADC1,ENABLE);//使能ADC1

      3系統(tǒng)整體程序設(shè)計(jì)

      系統(tǒng)整體程序流程見圖11,系統(tǒng)對(duì)鉛酸蓄電池充放電溫度、電壓、電流參數(shù)進(jìn)行循環(huán)檢測(cè),將檢測(cè)到的充放電參數(shù)顯示在LCD液晶上,并通過RS232串口將充放電參數(shù)發(fā)送給計(jì)算機(jī),在充放電參數(shù)出現(xiàn)異常時(shí)進(jìn)行聲光報(bào)警。

      4測(cè)試結(jié)果與分析

      根據(jù)系統(tǒng)軟硬件設(shè)計(jì),完成電路焊接和各模塊編程調(diào)試后,對(duì)系統(tǒng)整體進(jìn)行測(cè)試。與標(biāo)準(zhǔn)溫度對(duì)比,表明系統(tǒng)DS18B20溫度傳感器工作正常,檢測(cè)精度達(dá)到±0.5℃;充放電電壓檢測(cè)數(shù)據(jù)如表2所示,表中BAT1-BAT4為圖3中鉛酸蓄電池編號(hào),電壓檢測(cè)精度達(dá)到±50mV;充放電電流檢測(cè)數(shù)據(jù)如表3所示,充放電電流較小時(shí)電流檢測(cè)誤差相對(duì)較大,可能是由于小電流時(shí)ACS712輸出電壓電路中電磁干擾造成,電流檢測(cè)整體誤差低于2%;系統(tǒng)能根據(jù)設(shè)定的報(bào)警參數(shù)在充放電參數(shù)異常時(shí)進(jìn)行聲光報(bào)警。

      5結(jié)語

      本文基于STM32單片機(jī)設(shè)計(jì)了一種鉛酸蓄電池充放電監(jiān)測(cè)系統(tǒng),該系統(tǒng)能實(shí)現(xiàn)對(duì)4節(jié)12V/20AH串聯(lián)鉛酸電池組充放電電流及每個(gè)單體鉛酸蓄電池的電壓和溫度的檢測(cè),并能在充放電參數(shù)出現(xiàn)異常時(shí)及時(shí)報(bào)警。該系統(tǒng)溫度檢測(cè)精度±0.5℃,電壓檢測(cè)精度±50mV,電流檢測(cè)誤差低于2%,能對(duì)鉛酸蓄電池充放電參數(shù)進(jìn)行有效監(jiān)測(cè)。下一步研究將對(duì)系統(tǒng)功能進(jìn)行擴(kuò)展,實(shí)現(xiàn)遠(yuǎn)程監(jiān)測(cè)、充放電控制等功能。

      參考文獻(xiàn):

      [1]常維靜.一款動(dòng)力電池充電管理芯片的研究與設(shè)計(jì)[D].合肥:合肥工業(yè)大學(xué),2016.

      [2]孫書鷹,陳志佳,寇超.新一代嵌入式微處理器STM32F103開發(fā)與應(yīng)用[J].微計(jì)算機(jī)應(yīng)用,2010(12):59-63.

      [3]湯鍇杰,栗燦,王迪,等.基于DS18B20的數(shù)字式溫度采集報(bào)警系統(tǒng)設(shè)計(jì)[J].傳感器與微系統(tǒng),2014(3):99-102.

      [4]孫明利,鮑健,張鑠.單總線技術(shù)及DS18B20的溫度測(cè)量實(shí)現(xiàn)[J].大氣與環(huán)境光學(xué)學(xué)報(bào),2010(4):322-326.

      [5]王慧.基于ACS712的直流電機(jī)電流監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)[J].自動(dòng)化技術(shù)與應(yīng)用,2014(9):103-105.

      [6]朱麗麗,王長(zhǎng)友.基于AVR單片機(jī)與溫度傳感器DS18B20的多點(diǎn)溫度測(cè)量[J].電工電氣,2010(12):47-51.

      [7]張?zhí)?基于STM32單片機(jī)DMA機(jī)制的多通道數(shù)據(jù)采集[J].黑龍江科技信息,2013(30):27-28.

      (責(zé)任編輯:杜能鋼)endprint

      通渭县| 肥城市| 工布江达县| 曲阳县| 德清县| 霞浦县| 茌平县| 项城市| 清新县| 茂名市| 阳江市| 湘阴县| 正阳县| 广饶县| 金溪县| 宁海县| 富锦市| 浮山县| 道真| 宣汉县| 湘阴县| 广宗县| 桃园市| 横山县| 甘德县| 兴业县| 宿松县| 司法| 富川| 郸城县| 兴仁县| 台州市| 石柱| 荣成市| 博兴县| 尼勒克县| 仁化县| 波密县| 阿荣旗| 军事| 博罗县|