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