|
2. 總體方案設(shè)計
2.1方案選擇
在本設(shè)計中主體主要分為單片機系統(tǒng)、采集系統(tǒng)、報警系統(tǒng)以及溫度測量系統(tǒng),設(shè)計中需要對每個系統(tǒng)模塊的硬件進(jìn)行選型,經(jīng)過對設(shè)計原理的簡化可以得出整體主要分為處理模塊,采集模塊和報警模塊,需要對系統(tǒng)的組成進(jìn)行確定,針對這樣的功能可以考慮采用數(shù)字電路或者單片機系統(tǒng),其中采用數(shù)字電路,具有原理簡單,成本低的優(yōu)點,但是由于數(shù)字電路結(jié)構(gòu)復(fù)雜,后期如有損壞需要逐步的檢查損壞點,不便于維修,數(shù)字電路雖然成本較低,但是采用的微控芯片較多,不便于后期設(shè)計的擴展和推廣。采用單片機電路,雖然需要較為復(fù)雜的編程,但是由于單片機系統(tǒng)是比較完善的開發(fā)系統(tǒng),當(dāng)出現(xiàn)損壞時,只需要替換損壞的元件即可完成維修。所以在本設(shè)計中主要采用單片機作為主控電路,溫度傳感器采用18B20作為測溫傳感器,采集部分主要分為電壓和電流檢,其中電壓部分經(jīng)過分壓電路后采用單片機自帶的AD進(jìn)行采集,電流部分主要通過伏安特性原理,經(jīng)過采樣電阻的采樣后通過比例運放電路測量。由于電池電壓和電流的變化是取決于負(fù)載以及自身的壽命,為了便于測量本設(shè)計測量方案主要分為兩種,其中一種是測量電池實際的電壓和電流,另外一種通過電位器來模擬電池的變化。單片機采用STM32F103作為主控芯片,顯示屏采用LCD1602,報警器采用三極管驅(qū)動的蜂鳴器,溫度傳感器采用18B20,電流采樣使用lm358作為運放。
圖2-1 系統(tǒng)框圖
2.2單片機電路設(shè)計
經(jīng)過主控方案的對比,決定采用單片機系統(tǒng)作為設(shè)計的主控芯片,由于設(shè)計需要采集模擬量,結(jié)合自身能力考慮,最終采用STM32F103作為主控芯片,該芯片是一款基于arm內(nèi)核的32位處理芯片,支持傳統(tǒng)的指令集,內(nèi)部通過PLL方式使得系統(tǒng)頻率最高能達(dá)到72MHZ,該芯片的硬件資源也比較豐富,存在9個通訊接口、兩個USB轉(zhuǎn)TTL接口、支持多種下載方式,內(nèi)部含有RC振蕩器,也可通過外接8MHZ至晶振實現(xiàn)程序的精準(zhǔn)運行。
圖2-2 系統(tǒng)的核心板電路圖
主控芯片是整個系統(tǒng)的核心部分,由于設(shè)計需要采集模擬量,對精度有所要求,所以制作和設(shè)計一個完整的核心板電路是設(shè)計的關(guān)鍵,圖2-2所示是系統(tǒng)的核心板電路圖,主控芯片的型號是STM32F103C8T6,設(shè)計采用8兆赫茲的無源外部晶振,經(jīng)過PLL方式將系統(tǒng)的工作頻率穩(wěn)定在72兆赫茲,由于無源晶振啟動要求需要有匹配電容,所以在設(shè)計中采用C9、C10兩顆22pF的起振電容,BOOT0和BOOT1是單片機啟動方式的選擇模式開關(guān),將兩個接口均通過R10、R14下拉電阻和GND連接,使得系統(tǒng)的啟動方式為閃存啟動模式, R 1、C2、S1為系統(tǒng)的復(fù)位電路,當(dāng)系統(tǒng)存在死機或者程序紊亂的情況下,按下S1可以使得系統(tǒng)發(fā)生復(fù)位,重新開始運行,在常見的控制系統(tǒng)中,一般采用的電源均為5V,而STM32的供電電壓為3.3V為了匹配常見的電路,所以在芯片核心板上增加了穩(wěn)壓芯片,能夠?qū)?V的直流電轉(zhuǎn)化為STM32能夠正常運行的3.3V。
2.3 LCD顯示設(shè)計
2.3.1 顯示屏選型
在本設(shè)計中為了能夠顯示電壓電流的數(shù)據(jù),使得用戶能夠直觀的查看,所以在設(shè)計中增加了顯示屏電路,顯示部分主要分為數(shù)碼管、oled和LCD三類顯示方式,數(shù)碼管電路具有結(jié)構(gòu)簡單成本低的優(yōu)點,但是數(shù)碼管的驅(qū)動電路占用的硬件資源較多,尤其在本設(shè)計中需要顯示電壓電流和溫度等多個數(shù)據(jù),需要采用多個數(shù)碼管進(jìn)行顯示,由于數(shù)碼管驅(qū)動是動態(tài)顯示,當(dāng)數(shù)碼管的段數(shù)越多,最終顯示出的數(shù)字就會發(fā)生頻閃,使得系統(tǒng)的數(shù)據(jù)顯示不夠穩(wěn)定。oled顯示屏具有分辨率高,能夠顯示出高分辨率的圖片,并且能夠?qū)崿F(xiàn)多種顏色文字的顯示,其功耗也較低,但是成本較為高,不利于設(shè)計的推廣。LCD顯示屏是一款自帶背光的顯示屏幕,其功耗較大并且無法顯示出圖片和顏色,經(jīng)過對比本設(shè)計主要側(cè)重的是數(shù)據(jù)顯示對系統(tǒng)的功耗要求不大,為了便于后期的推廣和降低整體成本,最終采用了LCD顯示屏。
2.3.2 LCD1602電路設(shè)計
LCD1602液晶顯示屏是一種字符型液晶顯示電路,能夠顯示字符數(shù)字以及標(biāo)點符號的點陣型液晶屏幕,1602內(nèi)部存儲器存儲了160多個不同類型的字符和圖形,包含了數(shù)字字母以及常用的標(biāo)點符號。其中每個字符都有對應(yīng)的編碼,單片機控制時,只需要將對應(yīng)的編碼存入對應(yīng)的地址,就能夠顯示出相應(yīng)的字符,例如顯示‘A’字符,只需要在對應(yīng)的地址存入01000001B,就能顯示出‘A’,由于1602是能夠識別ASCII碼,所以通過單片機編程直接將對應(yīng)的ASCII碼進(jìn)行賦值就能夠顯示出對應(yīng)的數(shù)據(jù),例如如需顯示‘A’直接通過單片機對變量進(jìn)行賦值 LCD_Write_String(4,0,"C");圖2-3為 LCD顯示電路,其中電源管腳和外部輸入電源直接連接, D0-D7端口和單片機的PA端口連接, Rt2是電位器,主要目的是可以調(diào)節(jié)顯示屏的背光亮度,使得系統(tǒng)能夠適應(yīng)更廣泛的應(yīng)用場合。
圖2-3 LCD顯示電路
2.4 電池電壓電流檢測設(shè)計
2.4.1電壓檢測電路設(shè)計
電壓檢測電路需要涉及到模擬量的檢測,在本設(shè)計中可以采用STM32的內(nèi)部adc電路進(jìn)行采集,STM32的adc是12位逐次逼近型模擬轉(zhuǎn)數(shù)字電路,逐次逼近型電路也叫逐次漸進(jìn)型,其轉(zhuǎn)換的思路是將采集到的模擬量,從高位到低位進(jìn)行逐次的比較,如果最高位相等,則保持該狀態(tài),如果不相等,則對該寄存器進(jìn)行清零,循環(huán)整個過程直到將所有位的數(shù)據(jù)都比較完畢,最終得出數(shù)字量的輸出, STM32是能夠?qū)崿F(xiàn)12位的精度,即能夠?qū)⒉杉降碾妷悍殖?096份,如果輸入量是0~5V,那么精度就是5/4096=0.0012V;
在STM32中AD轉(zhuǎn)換的部分主要有4個: AD轉(zhuǎn)換器、模擬量輸入、引腳、數(shù)字量輸出;其中模擬量的輸入一般是電壓、光照等自然量,其特性是隨時間連續(xù)變化,像這種的自然量和單片機的管腳進(jìn)行連接,可以將模擬量輸入給AD轉(zhuǎn)換器, AD轉(zhuǎn)換器有外部的基準(zhǔn)電壓可以通過改變基準(zhǔn)電壓,進(jìn)而改變自然量的變化幅值,最終可以將模擬量轉(zhuǎn)換成數(shù)字量輸送至對應(yīng)的寄存器中。圖2-4 為ADC轉(zhuǎn)換電路,框圖1是AD轉(zhuǎn)換器的核心部分,將數(shù)據(jù)進(jìn)行處理,框圖2是外部基準(zhǔn)電壓,通過外部電源調(diào)節(jié)adc的轉(zhuǎn)換精度,框圖3是adc的輸入管腳,STM32主要分為10個外部AD,分別是PA0-PA8以及PB0、PB1;在本設(shè)計中,由于LCD1602占用了PA端口,所以電壓電流輸入量主要是通過PB端口進(jìn)行轉(zhuǎn)換。
圖2-4 ADC轉(zhuǎn)換電路
2.4.2電流檢測電路設(shè)計
圖2-5 電流轉(zhuǎn)換電路
電流檢測電路主要目的是將電流轉(zhuǎn)換成電壓,再通過2.4.1章節(jié)的電壓采樣進(jìn)行采集,主要原理是通過伏安特性將電流進(jìn)行轉(zhuǎn)換,伏安特性是指在對應(yīng)的元器件的兩端施加電壓,由于對應(yīng)元器件的參數(shù)已知,可通過施加的電壓得到通路的電流,基于這個原理可以在被測的通路上施加一個電阻,通過測量該電阻兩端的電壓和阻值進(jìn)行比值即可得到電流,由于需要保證采集的電壓不會過大并且不能對待測的通路產(chǎn)生過大的內(nèi)阻,所以采樣電阻的組織應(yīng)當(dāng)盡可能的小,在本設(shè)計中采用0.05歐的采樣電阻,以采樣的電壓范圍0-5V為例,該電路所能測的電流范圍為0-100A,由于絕大多數(shù)情況下電流所產(chǎn)生的電壓數(shù)值較小,所以在設(shè)計中需要采用放大電路對所采得的電壓進(jìn)行放大,關(guān)系式為Vo=(1+R3/R2)Vi;
2.5 電池溫度檢測設(shè)計
采集物體表面溫度的方式有很多,絕大多數(shù)的蓄電池溫度是通過熱電耦進(jìn)行采集,其優(yōu)點是測量范圍廣,但是由于熱電偶采集電路較為復(fù)雜并且成本較高,在本設(shè)計中需要測量的為普通鋰電池,其工作時所產(chǎn)生的溫度范圍較低,為了便于測量以及系統(tǒng)的穩(wěn)定,所以采用DS18B20作為溫度采集電路,該電路能夠測量的范圍是-50度到正130度。
DS 18B20是一款單總線溫度傳感器,其整體除了電源線之外,只有一根數(shù)據(jù)線,實現(xiàn)數(shù)據(jù)的采集和控制,溫度的數(shù)據(jù)分為高位和低位,分別存儲在TH、TL兩個寄存器當(dāng)中。測溫原理2-6所示,通過兩個溫度系數(shù)的振蕩器產(chǎn)生的不同頻率分別給不同的計數(shù)器進(jìn)行計數(shù),其中低溫度系數(shù)振蕩器,受溫度的影響較低,所以當(dāng)溫度發(fā)生變化時,高溫度系數(shù)振蕩器輸出的頻率會發(fā)生明顯變化,計數(shù)器通過檢測振蕩器頻率的變化,即可得到當(dāng)前溫度變化的范圍,
圖2-6 溫度采集電路
2.6 電源電路設(shè)計
由于設(shè)計需要驅(qū)動顯示屏顯示以及單片機的工作,所以需要采用外部電源,考慮到使用便捷,可以采用外部USB線供電的方式。其中由于輸入的電壓過高,而單片機需要使用5伏進(jìn)行供電,所以設(shè)計中需要額外增加穩(wěn)壓電路,將較高的電壓通過穩(wěn)壓電路進(jìn)行轉(zhuǎn)換為5伏給單片機和顯示屏等系統(tǒng)進(jìn)行供電。圖2-7為電源模塊電路圖。
圖2-7 電源模塊電路圖
2.7 報警電路設(shè)計
由于蜂鳴器內(nèi)部含有線圈,所需要的驅(qū)動電流較大,而單片機的輸出電流不足以驅(qū)動蜂鳴器發(fā)聲鳴叫,所以需要對單片機的輸出進(jìn)行擴流,擴流的常見方法,就是通過三極管進(jìn)行控制為了避免蜂鳴器在系統(tǒng)開機的瞬間發(fā)生鳴叫,所以在本系統(tǒng)中采用PNP的三極管,是由于PNP三極管的基極,需要低電平進(jìn)行控制,所以單片機上電瞬間即便輸出了高電平對蜂鳴器沒有影響,可以有效的解決蜂鳴器鳴叫的問題。系統(tǒng)中蜂鳴器采用單片機的管腳進(jìn)行驅(qū)動,當(dāng)檢測到電壓、電流、溫度超過限定值時,單片機的管腳會由高電平改為低電平輸出。報警模塊的硬件原理圖如圖2-8所示。
圖2-8 報警電路
3. 軟件系統(tǒng)設(shè)計
3.1系統(tǒng)環(huán)境簡介
系統(tǒng)軟件設(shè)計采用C語言編程,編譯環(huán)境為keil。keil 是美國Keil Software 公司出品的ARM 系列兼容單片機C 語言軟件開發(fā)系統(tǒng)和匯編相比,C 在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。
3.2 單片機程序設(shè)計
系統(tǒng)主要是由單片機采集程序,顯示屏驅(qū)動程序、蜂鳴器報警程序、溫度采集程序、以及電壓電流檢測程序,主體流程是通過電壓電流電路檢測對應(yīng)的參數(shù),并采集當(dāng)前的電池溫度,單片機將對應(yīng)的參數(shù)通過顯示屏顯示出來,并與存儲的報警閾值進(jìn)行比對,如果測量的數(shù)據(jù)大于所存儲的閾值,則驅(qū)動蜂鳴器發(fā)聲報警提醒用戶進(jìn)行修改,主程序流程圖如圖3-1所示。
圖3-1 主程序流程圖
3.3 LCD顯示程序設(shè)計
首先設(shè)置顯示模式,設(shè)置第(x,y)個字符的DDRAM的地址,為15×2顯示,因為液晶顯示為15列,所以x位置的范圍是0到15,同理,因為顯示2行,所以y位置的范圍是0到1。顯示子程序流程圖3-2。
圖3-2 顯示子程序流程圖
顯示部分的原理主要是通過修改顯示區(qū)域的地址,通過改變對應(yīng)地址的寄存器中的數(shù)據(jù)來實現(xiàn)數(shù)據(jù)的顯示,例如當(dāng)D/I=1時,在下降沿作用下,圖形顯示數(shù)據(jù)寫入DR,或在E信號高電平作用下由DR讀到DB7-DB0數(shù)據(jù)總線。DR和DDRAM之間的數(shù)據(jù)傳輸是模塊內(nèi)部自動執(zhí)行的,例如 write_string(1,5,"ab cd ef;")主要的意義就是在顯示屏的第1行,第5列顯示“abcdef”6個數(shù)據(jù)。
3.4 電壓電流檢測程序設(shè)計
圖3-3為電壓電流采集程序流程圖,由于電流檢測通過硬件已經(jīng)將電流轉(zhuǎn)換為電壓,所以設(shè)計主要是電壓檢測程序設(shè)計,系統(tǒng)上電后進(jìn)行初始化并打開中斷檢測,PB0、PB1管角檢測電壓數(shù)值是否變化,如果發(fā)生變化,則啟動中斷開始進(jìn)行adc轉(zhuǎn)換, Adc測量的范圍是基準(zhǔn)電壓的范圍VREF-≤VIN≤VREF+,將基準(zhǔn)電壓0與3.3V進(jìn)行連接,所測得的外部電壓范圍就為0-3.3V,如果adc的轉(zhuǎn)換通道不同,則需要不同的中斷函數(shù)進(jìn)行處理,在本設(shè)計中,兩路adc均為PB通道,所以無需SQR1、SQR2、SQR3寄存器來修改中斷處理函數(shù)。 adc的開始采集是需要通過起始信號進(jìn)行觸發(fā),通過配置CR2的寄存器,ADON位就可以控制adc的啟停,置1時開始進(jìn)行adc轉(zhuǎn)換,置0時停止轉(zhuǎn)換,此外還可以通過內(nèi)部定時器進(jìn)行觸發(fā)以及外部電壓進(jìn)行觸發(fā),在本設(shè)計中,由于電池電壓和電流的數(shù)據(jù)會時刻改變,所以設(shè)計主要通過定時器進(jìn)行定時采集,圖3-4 為ADC控制寄存器。 adc轉(zhuǎn)換的一個重要指標(biāo)為轉(zhuǎn)換時間,轉(zhuǎn)換時間代表著每次進(jìn)行完整轉(zhuǎn)換流程所需的時間,這個時間主要取決于輸入的晶振頻率以及時鐘周期,也決定了采樣數(shù)據(jù)的精度和穩(wěn)定性, ST M32的adc是掛載在APB2中,所以對應(yīng)的adc轉(zhuǎn)換頻率是通過PCLK2將時鐘頻率進(jìn)行分頻,采樣的周期可以通過adc的寄存器ADC_SMPR1 和 ADC_SMPR2 來進(jìn)行配置,配置的最小周期是1.5個時鐘周期,由于時鐘頻率為72MHz,所以1.5個時鐘,周期所得出的轉(zhuǎn)換時間最短為1.17微秒。
由于轉(zhuǎn)換后的數(shù)字量是12位的二進(jìn)制數(shù)據(jù),而顯示屏所需要顯示的是十進(jìn)制數(shù)據(jù),所以需要將該二進(jìn)制數(shù)據(jù)進(jìn)行轉(zhuǎn)換,例如待測的電壓是0~3.3V,經(jīng)過adc采樣后所得出的數(shù)據(jù)是0~4096,經(jīng)過比例公式可以得出實際數(shù)據(jù)為adcx2 = 3300000/4096*adcx2/1000;
圖3-3 電壓電流采集程序流程圖
圖3-4 ADC控制寄存器
3.5 溫度檢測程序設(shè)計
讀取溫度數(shù)據(jù)是讀RAM中的字節(jié),數(shù)據(jù)的尾端是有CRC校驗碼,當(dāng)校驗碼發(fā)生錯誤時,單片機會自動舍棄該段數(shù)據(jù),不對以往的數(shù)據(jù)進(jìn)行修改,避免將錯誤的信息錄入顯示屏當(dāng)中。讀取溫度主要分為三個時序:初始化時序、讀時序、寫時序。初始化程序是將數(shù)據(jù)線拉低500毫秒隨后釋放,DS18B20接收到下拉信號后,會將數(shù)據(jù)線拉低60毫秒,單片機通過檢測這個電平信號即可判斷傳感器連接是否正常,隨后傳感器會將采集到的數(shù)據(jù)再通過總線進(jìn)行返回,而返回的數(shù)據(jù)是二進(jìn)制單片機還需要將二進(jìn)制碼轉(zhuǎn)換成十進(jìn)制碼。圖3-5為溫度子程序流程圖。
圖3-5 溫度子程序流程圖
3.6 報警電路程序設(shè)計
報警電路主要是通過三極管進(jìn)行控制,單片機只需要控制三極管的通斷即可使得蜂鳴器發(fā)聲報警,在本設(shè)計中采用的是PNP三極管,對應(yīng)的基極與單片機的PB12管腳進(jìn)行連接,正常情況下需要將PB12管腳電平置為高電平,使得三極管截止,當(dāng)數(shù)據(jù)超限時,可以將PB12管腳電平置為低電平,此時三極管導(dǎo)通,使得蜂鳴器與電源連接發(fā)生報警。if(adcx1<2000||adcx2>1500||temperature/10>40)BEEP=0;;
附錄
程序編譯圖
整體電路圖
文獻(xiàn)
[1]蔣久明,樊巧玲,張京卯,郭亮,石磊,郭琦.一種保護(hù)電池過放電的微功耗電路設(shè)計[J/OL].現(xiàn)代電子技術(shù):1-7[2022-04-16].
[2]馬曉濤.鋰電池管理系統(tǒng)單體電壓采樣斷線檢測功能的分析[J].電工電氣,2021(08):53-56.
[3]鐘志賢,劉珺,包愛民,姜維,繆蕊.基于STC單片機的電池電壓監(jiān)測報警器[J].電子設(shè)計工程,2021,29(15):40-44.DOI:10.14022/j.issn1674-6236.2021.15.009.
[4]王黎雯,郭佩,何鵬林,陳迪.鋰電池檢測實驗室認(rèn)可關(guān)鍵要求[J].安全與電磁兼容,2017(06):21-22+34.
[5]莫慧芳.鋰電池檢測系統(tǒng)的設(shè)計[J].自動化技術(shù)與應(yīng)用,2016,35(06):139-140+144.
[6]沈鳴飛,施敏杰,周航.基于STM32的UPS電池實時檢測系統(tǒng)設(shè)計[J].科技風(fēng),2016(01):55-56.DOI:10.19392 1671-7341.2016.01.049.
[7]陳巍,王國富,張法全,葉金才.基于ARM電池檢測管理系統(tǒng)的設(shè)計與實現(xiàn)[J].電視技術(shù),2015,39(05):61-64+82.DOI:10.16280/j.videoe.2015.05.016.
[8], 電池檢測、修復(fù)及評估技術(shù)研究應(yīng)用. 遼寧省,國網(wǎng)遼寧省電力有限公司電力科學(xué)研究院,2015-01-16.
[9]朱艷秋. 鋰離子電池測控系統(tǒng)設(shè)計與仿真[D].哈爾濱理工大學(xué),2014.
|
|