基于FPGA的VRLA蓄電池測(cè)試系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要:采用FPGA現(xiàn)場(chǎng)可編程器件實(shí)現(xiàn)VRLA蓄電池測(cè)試系統(tǒng)的復(fù)雜數(shù)據(jù)采集電路、USB數(shù)據(jù)通信接口、寄存器電路、越限報(bào)警電路等關(guān)鍵模塊的設(shè)計(jì),其中數(shù)據(jù)采集電路模塊用差動(dòng)式模擬開關(guān)電路替代雙刀式繼電器模擬開關(guān),整體架構(gòu)利用了FPGA編程靈活、加密性好、設(shè)計(jì)制造成本低等優(yōu)點(diǎn),其固件開發(fā)的數(shù)據(jù)采集電路比常規(guī)采集卡穩(wěn)定性更高,系統(tǒng)運(yùn)行性能良好。
關(guān) 鍵 詞:現(xiàn)場(chǎng)可編程門陣列;VRLA蓄電池;差動(dòng)式模擬開關(guān);VHDL語(yǔ)言
1、 引言
閥控式鉛酸蓄電池(VRLA)在實(shí)際使用中會(huì)出現(xiàn)電池殼變形、電解液滲漏、容量不足、電池端電壓不均勻等現(xiàn)象,實(shí)踐證明,整組電池的容量是以狀況最差的那塊電池的容量值為準(zhǔn),而不是以平均值或額定值(初始值)為準(zhǔn),當(dāng)電池的實(shí)際容量下降到其本身額定容量的90% 以下時(shí),電池便進(jìn)入衰退期,當(dāng)電池容量下降到原來的80%以下時(shí),電池便進(jìn)入急劇的衰退狀況,衰退期很短,此時(shí)電池組已存在極大的事故隱患,所以對(duì)VRLA蓄電池的定時(shí)檢測(cè)和在線監(jiān)測(cè)是非常重要和必須的。
2、 硬件電路設(shè)計(jì)
VRLA蓄電池在線監(jiān)測(cè)系統(tǒng)主要功能是對(duì)直流電源VRLA蓄電池組中每一個(gè)VRLA蓄電池的端電壓進(jìn)行巡檢,其工作方式分為實(shí)時(shí)監(jiān)測(cè)和定時(shí)監(jiān)測(cè)兩類,定時(shí)監(jiān)測(cè)的時(shí)間間隔由用戶根據(jù)實(shí)際需要設(shè)定,用戶可隨時(shí)切換實(shí)時(shí)與定時(shí)監(jiān)測(cè)兩種工作模式,通過監(jiān)視器顯示電壓、溫度、內(nèi)阻曲線實(shí)現(xiàn)對(duì)單個(gè)及整體VRLA蓄電池的監(jiān)控操作??赏瓿蓤D表打印,圖形保存,曲線顯示,歷史數(shù)據(jù)回放多種管理功能,并缺省設(shè)置越限報(bào)警電壓及溫度范圍限,如有異常情況立即發(fā)出報(bào)警信號(hào)。
2.1 測(cè)試系統(tǒng)硬件結(jié)構(gòu)
本例FPGA開發(fā)系統(tǒng)采用Xilinx FPGA控制模塊Spartan-II(XC2S200)、差動(dòng)式多路模擬開關(guān)(包括模擬開關(guān)CD4051及光耦合器TLP181)、A/D轉(zhuǎn)換AD0809芯片、Philips公司PDIUSBD12通用串行接口芯片、Winbond公司W(wǎng)29C020C并口Flash存儲(chǔ)器及SRAM W24257、2×4鍵盤陣列、越限報(bào)警器件等構(gòu)成。理想的VRLA蓄電池測(cè)試系統(tǒng),通過實(shí)時(shí)監(jiān)測(cè)VRLA蓄電池組內(nèi)單節(jié)VRLA蓄電池的電壓,內(nèi)阻和溫度能夠有效的識(shí)別單節(jié)VRLA蓄電池的性能差異和安全臨界點(diǎn),有效控制單節(jié)VRLA蓄電池的過充,過放和熱失控,實(shí)現(xiàn)均衡放電和均衡充電的理想功能;同時(shí)準(zhǔn)確計(jì)算出單個(gè)VRLA蓄電池電量,根據(jù)充放電曲線,建立最佳充放電方法,并與控制器智能化配合,確定VRLA蓄電池負(fù)載特性參數(shù)選擇,延長(zhǎng)VRLA蓄電池使用壽命。
圖1 整機(jī)系統(tǒng)框圖
2.2 差動(dòng)式多路模擬開關(guān)設(shè)計(jì)
數(shù)據(jù)采集電路設(shè)計(jì)采用差動(dòng)式多路模擬開關(guān)可以避免常規(guī)雙刀式繼電器模擬開關(guān)對(duì)大型VRLA蓄電池組測(cè)量時(shí)需要的繼電器太多,儀器的體積過大,功耗、成本及故障率高等眾多缺點(diǎn),如圖示差動(dòng)式模擬開關(guān)工作電源由所測(cè)VRLA蓄電池組提供,并采用光耦合器隔離采樣開關(guān)與低壓系統(tǒng),以解決VRLA蓄電池組的電池?cái)?shù)目多,電壓高,難以測(cè)量等問題。差動(dòng)式模擬開關(guān)工作過程為:FPGA控制器通過控制端CA,CB來同時(shí)控制U1,U2八選一模擬開關(guān),如果控制端同時(shí)選中輸入端B1,則模擬開關(guān)U1輸出端OUT1輸出VRLA蓄電池B1的正端電壓,而模擬開關(guān)U2的輸出端OUT2輸出則是B1的負(fù)端電壓,如果將OUT2接到測(cè)量系統(tǒng)的地電平,OUT1接到測(cè)量系統(tǒng)信號(hào)輸入端,則便可測(cè)得VRLA蓄電池B1的各項(xiàng)數(shù)據(jù)值。同理,只要控制CA,CB就可完成對(duì)B1~B4各個(gè)單體電池?cái)?shù)據(jù)的量測(cè),繼而得出整組電池的各項(xiàng)參數(shù)數(shù)據(jù)。
圖2 差動(dòng)式模擬開關(guān)電路原理圖
3、 軟件設(shè)計(jì)
系統(tǒng)軟件采用模塊化設(shè)計(jì),底層固件程序由VHDL語(yǔ)言編程的若干子程序塊組成,包括主 控制程序,數(shù)據(jù)采集子程序,超限判斷及報(bào)警子程序,USB端點(diǎn)通信子程序,中斷處理子程序;上位機(jī)應(yīng)用程序在Visual Basic環(huán)境下開發(fā),可完成圖表打印,圖形保存,曲線顯示,歷史數(shù)據(jù)回放等管理功能。
3.1 主控制程序
用于完成FPGA及外部模塊的上電自檢和初始化,初始化flash存儲(chǔ)器,SRAM工作區(qū),A/D轉(zhuǎn)換器及差動(dòng)模擬采樣通道設(shè)置、USB端口及周邊接口的上電復(fù)位。初始化將對(duì)初始狀態(tài)給予設(shè)定,包括定時(shí)器、中斷器的開放等。其中外部中斷用于響應(yīng)鍵盤信號(hào)及USB口中斷響應(yīng)與上位機(jī)通信等操作。
3.2 USB控制端點(diǎn)中斷服務(wù)程序流程圖
USB控制端點(diǎn)中斷服務(wù)程序功能是在USB通信口發(fā)出中斷響應(yīng)后把當(dāng)前選定的單節(jié)蓄電池的電壓、溫度等數(shù)據(jù)存入相應(yīng)數(shù)據(jù)區(qū),為系統(tǒng)顯示、報(bào)警、通信等功能提供原始數(shù)據(jù),之后根據(jù)用戶設(shè)置的蓄電池組數(shù)、每組蓄電池節(jié)數(shù)及設(shè)定電壓、溫度值,將原始數(shù)據(jù)作相應(yīng)修正即可在上位機(jī)應(yīng)用程序處顯示每組蓄電池的單節(jié)電池電壓及整體蓄電池的電壓、溫度、內(nèi)阻曲線。
圖3 USB控制端點(diǎn)中斷服務(wù)程序流程圖
3.3 USB控制端點(diǎn)通信建立初始化程序
參考Philips公司PDIUSBD12數(shù)據(jù)手冊(cè),PDIUSBD12的命令字分為三種:初始化命令字、數(shù)據(jù)流命令字和通用命令字,F(xiàn)PGA先給PDIUSBD12的命令地址發(fā)命令,根據(jù)不同命令的要求再發(fā)送或讀出不同的數(shù)據(jù)。因此,可以將每種命令做成函數(shù),用函數(shù)實(shí)現(xiàn)各個(gè)命令,以后直接調(diào)用相關(guān)函數(shù)即可。FPGA內(nèi)部USB控制端點(diǎn)與PDIUSBD12通信初始化程序清單:
constant D12_CONNECT_DATA: REG8x8:= //配置命令和數(shù)據(jù)
( D12_COMMAND_SET_DMA, //設(shè)置DMA命令
D12_DMA, //發(fā)送命令數(shù)據(jù)
D12_COMMAND_SET_MODE, //發(fā)送設(shè)置模式命令
D12_MODE_CONFIG, //發(fā)送模式設(shè)置
D12_MODE_CLOCK_DIV, //發(fā)送分頻率模式
others => X"00" );
constant D12_CONNECT_DATA_TYPE: REG8x1:= //命令、數(shù)據(jù)執(zhí)行順序
( D12_COMMAND,
D12_DATA, //發(fā)送數(shù)據(jù)
D12_COMMAND,
D12_DATA, //發(fā)送數(shù)據(jù)
others => '0' );
constant D12_CONNECT_DATA_LENGTH: INTEGER8 := 5; //配置參數(shù)總長(zhǎng)度
constant D12_EP0_ACK_DATA: REG8x8:= //配置0斷點(diǎn)命令
( D12_COMMAND_SEL_EP0_OUT, //發(fā)送0斷點(diǎn)選擇
D12_COMMAND_ACK_SETUP, //確認(rèn)建立
D12_COMMAND_CLEAR_EP_BUFFER, //清寄存器
D12_COMMAND_SEL_EP0_IN, //接收0斷點(diǎn)選擇
D12_COMMAND_ACK_SETUP, //確認(rèn)建立
others => X"00" );
constant D12_EP0_ACK_DATA_LENGTH: INTEGER8 := 5; //配置0斷點(diǎn)總長(zhǎng)度
constant ep0_ack_data: REG8x8 := D12_EP0_ACK_DATA; //發(fā)送0斷點(diǎn)數(shù)據(jù)
4、 結(jié)語(yǔ)
基于FPGA的VRLA蓄電池測(cè)試系統(tǒng)充分利用固件編程調(diào)試靈活,開發(fā)成本低,片上資源豐富等優(yōu)勢(shì),能方便的實(shí)現(xiàn)多組輸入模擬量的擴(kuò)展??蓪?shí)現(xiàn)對(duì)單體電壓0~15V、整組電壓0~500V,電壓測(cè)量精度:±0.5%;溫度測(cè)量范圍:-20℃~+80℃;內(nèi)阻測(cè)試范圍:0~99mΩ等高精度的參數(shù)測(cè)量。
參考文獻(xiàn):
[1]. 劉韜、樓興華 FPGA數(shù)字電子系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例導(dǎo)航[M] 人民郵電出版社 2005.6,210-230
[2]. 周志敏、周紀(jì)海 閥控式密封鉛酸蓄電池實(shí)用技術(shù)[M] 中國(guó)電力出版社 2004.10,97-109
[3]. 萬利峰 基于PDIUSBD12的USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J] 微計(jì)算機(jī)信息 2006.5-1,110-112
[4]. 周勝海 集成多路模擬開關(guān)的應(yīng)用技巧[J] 電子技術(shù)應(yīng)用 2005.7,79-80
[5]. PDIUSBD12 USB Interface Device datasheet Ver.08 Philips Co., 2001