首頁 > 新聞係統 > 電子技術 > 技術 > 可編程器件 正文 > 論壇 返回 打印

基於FPGA的VRLA蓄電池測試係統設計

本文相關DataSheet:
                

  1、 引言

  閥控式鉛酸蓄電池(VRLA)在實際使用中會出現電池殼變形、電解液滲漏、容量不足、電池端電壓不均勻等現象,實踐證明,整組電池的容量是以狀況最差的那塊電池的容量值為準,而不是以平均值或額定值(初始值)為準,當電池的實際容量下降到其本身額定容量的90% 以下時,電池便進入衰退期,當電池容量下降到原來的80%以下時,電池便進入急劇的衰退狀況,衰退期很短,此時電池組已存在極大的事故隱患,所以對的定時檢測和在線監測是非常重要和必須的。

  2、 硬件電路設計

  VRLA蓄電池在線監測係統主要功能是對直流電源VRLA蓄電池組中每一個VRLA蓄電池的端電壓進行巡檢,其工作方式分為實時監測和定時監測兩類,定時監測的時間間隔由用戶根據實際需要設定,用戶可隨時切換實時與定時監測兩種工作模式,通過監視器顯示電壓、溫度、內阻曲線實現對單個及整體VRLA蓄電池的監控操作。可完成圖表打印,圖形保存,曲線顯示,曆史數據回放多種管理功能,並缺省設置越限報警電壓及溫度範圍限,如有異常情況立即發出報警信號。

  2.1  測試係統硬件結構

  

整機係統框圖

圖1 整機係統框圖

  本例FPGA開發係統采

用Xilinx FPGA控製模塊Spartan-II(XC2S200)、差動式多路模擬開關(包括模擬開關CD4051及光耦合器TLP181)、A/D轉換AD0809芯片、Philips公司PDIUSBD12通用串行接口芯片、Winbond公司W29C020C並口Flash存儲器及SRAM W24257、2×4鍵盤陣列、越限報警器件等構成。理想的VRLA蓄電池測試係統,通過實時監測VRLA蓄電池組內單節VRLA蓄電池的電壓,內阻和溫度能夠有效的識別單節VRLA蓄電池的性能差異和安全臨界點,有效控製單節VRLA蓄電池的過充,過放和熱失控,實現均衡放電和均衡充電的理想功能;同時準確計算出單個VRLA蓄電池電量,根據充放電曲線,建立最佳充放電方法,並與控製器智能化配合,確定VRLA蓄電池負載特性參數選擇,延長VRLA蓄電池使用壽命。

  2.2  差動式多路模擬開關設計

  數據采集電路設計采用差動式多路模擬開關可以避免常規雙刀式繼電器模擬開關對大型VRLA蓄電池組測量時需要的繼電器太多,儀器的體積過大,功耗、成本及故障率高等眾多缺點,如圖示工作電源由所測VRLA蓄電池組提供,並采用光耦合器隔離采樣開關與低壓係統,以解決VRLA蓄電池組的電池數目多,電壓高,難以測量等問題。差動式模擬開關工作過程為:FPGA控製器通過控製端CA,CB來同時控製U1,U2八選一模擬開關,如果控製端同時選中輸入端B1,則模擬開關U1輸出端OUT1輸出VRLA蓄電池B1的正端電壓,而模擬開關U2的輸出端OUT2輸出則是B1的負端電壓,如果將OUT2接到測量係統的地電平,OUT1接到測量係統信號輸入端,則便可測得VRLA蓄電池B1的各項數據值。同理,隻要控製CA,CB就可完成對B1~B4各個單體電池數據的量測,繼而得出整組電池的各項參數數據。

差動式模擬開關電路原理圖

  圖2 差動式模擬開關電路原理圖

  3、 軟件設計

  係統軟件采用模塊化設計,底層固件程序由編程的若幹子程序塊組成,包括主    控製程序,數據采集子程序,超限判斷及報警子程序,USB端點通信子程序,中斷處理子程序;上位機應用程序在Visual Basic環境下開發,可完成圖表打印,圖形保存,曲線顯示,曆史數據回放等管理功能。

  3.1  主控製程序

  用於完成FPGA及外部模塊的上電自檢和初始化,初始化flash存儲器,SRAM工作區,A/D轉換器及差動模擬采樣通道設置、USB端口及周邊接口的上電複位。初始化將對初始狀態給予設定,包括定時器、中斷器的開放等。其中外部中斷用於響應鍵盤信號及USB口中斷響應與上位機通信等操作。

  3.2  USB控製端點中斷服務程序流程圖

  USB控製端點中斷服務程序功能是在USB通信口發出中斷響應後把當前選定的單節蓄電池的電壓、溫度等數據存入相應數據區,為係統顯示、報警、通信等功能提供原始數據,之後根據用戶設置的蓄電池組數、每組蓄電池節數及設定電壓、溫度值,將原始數據作相應修正即可在上位機應用程序處顯示每組蓄電池的單節電池電壓及整體蓄電池的電壓、溫度、內阻曲線。

USB控製端點中斷服務程序流程圖

  圖3 USB控製端點中斷服務程序流程圖

本文相關DataSheet:
                

  3.3  USB控製端點通信建立初始化程序

  參考Philips公司PDIUSBD12數據手冊,PDIUSBD12的命令字分為三種:初始化命令字、數據流命令字和通用命令字,FPGA先給PDIUSBD12的命令地址發命令,根據不同命令的要求再發送或讀出不同的數據。因此,可以將每種命令做成函數,用函數實現各個命令,以後直接調用相關函數即可。FPGA內部USB控製端點與PDIUSBD12通信初始化程序清單:

  constant D12_CONNECT_DATA: REG8x8:=                 //配置命令和數據

  ( D12_COMMAND_SET_DMA,                              //設置DMA命令

  D12_DMA,        &nbs p;                                 //發送命令數據

  D12_COMMAND_SET_MODE,                              //發送設置模式命令

  D12_MODE_CONFIG,                                  //發送模式設置

  D12_MODE_CLOCK_DIV,                               //發送分頻率模式

    others => X"00" );

  constant D12_CONNECT_DATA_TYPE: REG8x1:=             //命令、數據執行順序

  ( D12_COMMAND,

  D12_DATA,                                          //發送數據

  D12_COMMAND,

  D12_DATA,                       //發送數據

  others => '0' ); 

  constant D12_CONNECT_DATA_LENGTH: INTEGER8 := 5;     //配置參數總長度

  constant D12_EP0_ACK_DATA: REG8x8:=                  //配置0斷點命令

  (   D12_COMMAND_SEL_EP0_OUT,                  &nb sp;     //發送0斷點選擇

      D12_COMMAND_ACK_SETUP,                          //確認建立

      D12_COMMAND_CLEAR_EP_BUFFER,                    //清寄存器

      D12_COMMAND_SEL_EP0_IN,                         //接收0斷點選擇

      D12_COMMAND_ACK_SETUP,                          //確認建立

      others => X"00"  );

  constant D12_EP0_ACK_DATA_LENGTH: INTEGER8 := 5;    //配置0斷點總長度

  constant ep0_ack_data: REG8x8 := D12_EP0_ACK_DATA;  //發送0斷點數據                   

本文相關DataSheet:
                

                            

    4、 結語

  基於FPGA的測試係統充分利用固件編程調試靈活,開發成本低,片上資源豐富等優勢,能方便的實現多組輸入模擬量的擴展。可實現對單體電壓0~15V、整組電壓0~500V,電壓測量精度:±0.5%;溫度測量範圍:-20℃~+80℃;內阻測試範圍:0~99mΩ等高精度的參數測量。

  參考文獻:

  [1]. 劉韜、樓興華 FPGA數字電子係統設計與開發實例導航[M] 人民郵電出版社 2005.6,210-230

  [2]. 周誌敏、周紀海 閥控式密封鉛酸蓄電池實用技術[M] 中國電力出版社 2004.10,97-109

  [3]. 萬利峰 基於PDIUSBD12的USB數據采集係統的設計[J] 微計算機信息 2006.5-1,110-112

  [4]. 周勝海 集成多路模擬開關的應用技巧[J] 電子技術應用 2005.7,79-80

  [5]. PDIUSBD12 USB Interface Device datasheet Ver.08 Philips Co., 2001



http://www.autooo.net/autooo/Electronic/Tech/PLD/2007-10-27/39903.html