我曾經(jīng)設(shè)計(jì)過(guò)一個(gè)系統(tǒng),這個(gè)系統(tǒng)中安裝許多個(gè)分布的設(shè)備,所有設(shè)備都由一個(gè)總電源供電。
這個(gè)電源除了供電之后,還需要管理系統(tǒng)設(shè)計(jì)的工作狀態(tài)。
因此,該電源內(nèi)部集成了PIC16F1936處理器。通過(guò)該處理器進(jìn)行狀態(tài)管理以及故障保護(hù)。
對(duì)于電源,短路、過(guò)流、過(guò)壓、過(guò)溫等保護(hù)是至關(guān)重要的功能。
否則,電源非常容易被損壞。
在我設(shè)計(jì)的這個(gè)系統(tǒng)之前,公司的其它類似產(chǎn)品使用簡(jiǎn)單的閾值判斷進(jìn)行過(guò)流保護(hù)。
當(dāng)檢測(cè)到超過(guò)額定電流的1.2倍左右時(shí),切斷輸出。
為什么不能用閾值判斷法進(jìn)行過(guò)流保護(hù)
這個(gè)做法最致命的缺點(diǎn)是,
1) 所有的電源都有一定的過(guò)流能力,只要散發(fā)的熱量不超過(guò)其能承受的范圍,短時(shí)間的過(guò)流沒(méi)有任何問(wèn)題。
2) 所有的設(shè)備的電源輸入都連接了一些大電容,用于儲(chǔ)能和去耦,上電瞬間,電源以比較大的電流向這些電容充電,由于系統(tǒng)中連接的設(shè)備數(shù)比較大,所有設(shè)備同時(shí)上電,充電電流可以超過(guò)額定電流的許多倍。
3) 設(shè)備上電時(shí)的電流并非一種非此即彼的二值曲線,而是一種動(dòng)態(tài)變化的曲線,如下圖:
上電電流波形
如果按上電電流的峰值進(jìn)行保護(hù),則不能發(fā)揮電源的最大性能,使用系統(tǒng)中能連接的設(shè)備數(shù)減少。
如果按上電電流的中間值進(jìn)行保護(hù),有可能保護(hù)不及時(shí),損壞電源;
什么是反時(shí)限保護(hù)
按照焦耳定律,電源所耗散的熱量與負(fù)載電流的平方成正比。
如果電源允許的溫升為一個(gè)固定值,則允許耗散的熱量為固定值。根據(jù)下述關(guān)系式:
功率 P∝I*I,
熱量Q=Pt∝II*t。
從而t∝Q/(I*I)。
可見(jiàn),當(dāng)Q固定時(shí),I*I的數(shù)值越大,則t時(shí)間越小。
電流與保護(hù)時(shí)間的反時(shí)限關(guān)系曲線如下:
過(guò)流的反時(shí)限保護(hù)曲線
基于上述的考慮,我在上設(shè)計(jì)了一套適合運(yùn)行在ROM/RAM等都非常有限的PIC16F1936上的反時(shí)限過(guò)流保護(hù)的算法:
1)電路一如既往的簡(jiǎn)單,一個(gè)0.17R的負(fù)載電流采樣電阻將電流轉(zhuǎn)成電壓之后,經(jīng)過(guò)R/C組成的低通濾波器送入單片機(jī)AD口。
電路原理圖
2)考慮到RAM的限制,采用一個(gè)int型的變量(16bits)記錄熱量值,保護(hù)熱量值設(shè)置為50000。
3)根據(jù)電源的過(guò)流特性,設(shè)計(jì)檢測(cè)電流所得到的AD值與熱量值的關(guān)系表,
已知AD值與電流關(guān)系為:0.17I/3.34096。
每隔1ms采樣AD并計(jì)算一次熱量,
比如額定電流為1.2A的電源,當(dāng)電流超過(guò)額定電流3倍,即3.6A時(shí),立即保護(hù)。
ADC值大于760時(shí),熱量為50000。
過(guò)流2倍,ADC為506時(shí),1.5 秒之后保護(hù),熱量為50000/1000/1.5=33。
過(guò)流1.5位, ADC為379時(shí),2秒之后保護(hù),熱量為50000/1000/2=25。
依此類推,可以得到一個(gè)關(guān)系表。
單片機(jī)程序每隔1ms做一次AD轉(zhuǎn)換,將轉(zhuǎn)換到的AD做如下的邏輯處理:
如果大于760,將熱量變量值置為50000。
如果在253與760之間,從上述的表中找到對(duì)應(yīng)的數(shù)值加入到熱量變量中。
如果小于253,則將熱量變量值置為-5,使得電源能夠在5秒之后嘗試再次輸出,同時(shí)在過(guò)流判斷時(shí),能夠根據(jù)散熱情況實(shí)現(xiàn)一些恢復(fù)的機(jī)制。
如果熱量變量值大于等于50000,則斷開(kāi)輸出,進(jìn)入故障狀態(tài)。
在故障狀態(tài),如果熱量變量值減到0,則再次輸出;
軟件代碼如下:
osdet.adcres = convert(); index = os_getindex(osdet.adcres); if(index >= TAB_NUM){ osdet.heatsum = HEATER_MAX; osdet.state = STATE_OVER; } else { if(uidata < AD_OVERCURRENT) { minus = TRUE; } wtemp = pstab[index]; if(flag) { if(minus) { if( osdet.heatsum >= wtemp) { osdet.heatsum -= wtemp; } else { osdet.heatsum = 0; } } else { if((0xffff - wtemp) > osdet.heatsum) { osdet.heatsum += wtemp; } else { osdet.heatsum = 0xffff; } } if( osdet.heatsum >= HEATER_MAX) { osdet.state = STATE_OVER; } } }
-
電源
+關(guān)注
關(guān)注
184文章
17704瀏覽量
249955 -
處理器
+關(guān)注
關(guān)注
68文章
19259瀏覽量
229649 -
單片機(jī)
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634615 -
過(guò)流保護(hù)
+關(guān)注
關(guān)注
10文章
236瀏覽量
32042 -
充電電流
+關(guān)注
關(guān)注
2文章
54瀏覽量
10488
原文標(biāo)題::
文章出處:【微信號(hào):電路一點(diǎn)通,微信公眾號(hào):電路一點(diǎn)通】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論