文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.02.018
中文引用格式: 卞楠,馬聰. 基于CPLD的光伏數(shù)據(jù)采集系統(tǒng)的設計[J].電子技術應用,2016,42(2):68-70.
英文引用格式: Bian Nan,Ma Cong. Design of photovoltaic data acquisition system based on CPLD[J].Application of Electronic Technique,2016,42(2):68-70.
0 引言
當光伏陣列處于遮陰條件時,需要對每個電池板進行光照強度的采集,以便完成最大功率點跟蹤控制的設計,使光伏陣列更高效穩(wěn)定地工作[1]。高速數(shù)據(jù)采集系統(tǒng)在現(xiàn)代工業(yè)的各個領域中應用越來越廣泛,基于單片機、ARM的數(shù)據(jù)采集技術已經(jīng)很成熟,作為一種復雜可編程邏輯器件,CPLD(Complex Programmable Logic Device)這些年來發(fā)展迅猛,以其極高的集成度、穩(wěn)定的性能以及高速、易用的特點,在各個領域都得到了廣泛的應用[2]。因此,本文為了實現(xiàn)對光照強度數(shù)據(jù)進行多路并行采集,采用CPLD作為核心器件進行系統(tǒng)設計。
在檢測控制系統(tǒng)中,當需要采集的信號特別多時,傳統(tǒng)的方法是利用單片機及其他芯片擴展系統(tǒng)資源來實現(xiàn),但是這樣做會增加大量的外部電路和系統(tǒng)成本,并且增大了系統(tǒng)設計的復雜性。CPLD是一種具有豐富的可編程I/O 引腳的器件,具有在系統(tǒng)可編程、使用方便靈活、可用I/O端口多的特點,可實現(xiàn)復雜的數(shù)字邏輯功能。和單片機結合可較容易實現(xiàn)數(shù)據(jù)的采集任務[3]。
FIFO(First Input First Output)是一種廣泛應用在設計中的用來作為緩沖的存儲器,它能對數(shù)據(jù)進行快速順序的存儲和發(fā)送,主要用來解決不同速率器件間的速率匹配問題。本系統(tǒng)通過精心設計FIFO體系結構,可以實現(xiàn)FIFO工作性能的大幅提升[4]。
1 硬件電路設計
本設計的接收點為將每一路光照強度傳感器產(chǎn)生的模擬量轉化為CPLD可以接收并處理的數(shù)字量的信號調(diào)理電路,將它直接連入I/O口即可。本設計使用了40個接收點來接收40塊光伏電池板的光照強度數(shù)值,由于受到芯片資源的限制,故使用了3片CPLD同時工作。
本設計選用的CPLD芯片為Altera公司的MAX II EPM1270T144C5N芯片,此芯片在所有CPLD系列中其單位I/O成本最低,功耗最低,包含1 270個LE,相當于40 000門數(shù)、980個等效宏單元數(shù)、8 KB用戶可用Flash 比特數(shù)。硬件電路設計如圖1。
1.1 CPLD采集電路的設計
因為數(shù)據(jù)通過信號調(diào)理電路已經(jīng)轉化為CPLD可以直接讀取的數(shù)字量,所以各信號直接接入CPLD 的普通I/O口即可。設計時對精度、穩(wěn)定性、功率等方面綜合考慮,采用了50 MHz有源晶振。CPLD在線編程和芯片自身的測試可通過JTAG接口來實現(xiàn)。
1.2 通信電路設計
系統(tǒng)與上位機通信數(shù)據(jù)輸出電路采用了無線傳輸模塊和RS232串口通信電路,采用雙通信是為了適應不同環(huán)境下的工作,無線傳輸模塊采用了挪威NORDIC公司的NRF905射頻發(fā)射芯片。RS232串口通信電路則采用以MAX232電平轉換芯片為核心設計而成的串口通信電路。
1.3 電源電路設計
本系統(tǒng)控制器單片機與CPLD使用的都是3.3 V電源,但是液晶顯示屏、電池供電等采用的是5 V電源,故需要對電源進行變換才能給芯片供電,故對電源模塊進行了設計,采用了以穩(wěn)壓塊LM1117T為核心的5 V轉3.3 V電路。
1.4 控制電路設計
系統(tǒng)數(shù)據(jù)采集芯片采用的是CPLD,但是控制核心采用了TI公司的MSP430F169單片機,MSP430具有處理能力強、運算速度快、低能耗、片內(nèi)資源豐富、方便高效的開發(fā)環(huán)境等優(yōu)點,被廣泛應用在各種工業(yè)場合。
2 軟件設計
2.1 CPLD采集數(shù)據(jù)主程序設計
由于CPLD芯片的設計特點,工作方式不像單片機等屬于順序執(zhí)行,而是采用速度更快的并行執(zhí)行,這意味著所有的接收口可以同時工作。每串數(shù)據(jù)都有起始位和停止位,并且起始位都為低電平,停止位為高電平。檢測數(shù)據(jù)是否開始傳輸只需判斷是否來了低脈沖,但這也可能是誤差信號,所以需設置判斷是否是真正的起始位,本設計采用的方法是每隔十分之一數(shù)據(jù)位的時間檢測一次,如果連續(xù)五次都為低脈沖,則確認為有效數(shù)據(jù),并且每隔一個數(shù)據(jù)位開始接收。由于篇幅限制,只給出如圖2所示的一路數(shù)據(jù)端的主程序流程圖。
2.2 CPLD內(nèi)部FIFO算法判斷程序設計
為達到高速緩存的目的,以及解決存入數(shù)據(jù)與取出數(shù)據(jù)的速率不同步的問題,設計了一套FIFO寄存器的執(zhí)行流程,因為CPLD是并行操作,所以流程圖中各個判斷位是同時執(zhí)行。圖3為CPLD內(nèi)部FIFO寄存器的執(zhí)行程序。
2.3 單片機程序流程圖
單片機作為控制核心,但由于單片機I/O資源有限,所以3片CPLD采集芯片的輸出端接在一起,這就意味著需要MSP430單片機對CPLD進行片選控制,否則會出現(xiàn)數(shù)據(jù)紊亂。流程圖中的寄存器狀態(tài)位為本設計中設定的一個標志位,設定的依據(jù)為當數(shù)據(jù)超過FIFO寄存器的2/3時,就認定FIFO即將溢出,將狀態(tài)位置1,否則置0。當讀取到其中一片CPLD芯片的寄存器狀態(tài)位為1時,就讓其余2片CPLD所有的數(shù)據(jù)輸出為高阻態(tài),即輸出喪能??刂坪诵膯纹瑱C則作為數(shù)據(jù)的接收端根據(jù)需要來產(chǎn)生時鐘信號,被選中的CPLD按照單片機的時鐘信號進行數(shù)據(jù)傳輸,如圖4所示。
3 實驗結果分析
仿真驗證是CPLD設計中的重要一環(huán),Altera公司的CPLD自帶的Quartus II軟件本身帶有仿真功能,但是無法使用TestBench(類似于一種激勵產(chǎn)生器),對于復雜的設計,畫波形圖顯然不是明智的選擇。而Modelsim是業(yè)界最優(yōu)秀的HDL仿真軟件,其突出優(yōu)點能為用戶提供全面完善以及高性能的驗證功能,不需要硬件就能對CPLD的設計進行仿真,而且能夠觀察具體的模擬波形圖[5]。
本系統(tǒng)根據(jù)設計目標要求做了實驗驗證,如圖5所示。CPLD的仿真驗證使用Modelsim-altera編寫了腳本程序?qū)庹諒姸葦?shù)據(jù)采集結果進行了實驗。Lock信號是單片機讀取數(shù)據(jù)的時鐘信號,高電平時讀取一串數(shù)據(jù)的高8位,低電平時讀取數(shù)據(jù)的低8位,data為輸出信號,txdb模擬輸入的信號。仿真顯示能夠順利讀取數(shù)據(jù),基本達到了設計要求。圖6為Modelsim的仿真波形圖,從圖中可直觀地看出讀取的數(shù)據(jù)。
4 結論
本文研究設計了基于CPLD和MSP430F169單片機的光伏數(shù)據(jù)采集系統(tǒng),完成了電路板的設計,測試了工作性能。通過不斷地在線編程完善和調(diào)試,該系統(tǒng)可以快速可靠地進行數(shù)據(jù)采集和處理,效果理想,可以應用于光伏系統(tǒng)中。
參考文獻
[1] 龔耀,林小玲.光伏系統(tǒng)數(shù)據(jù)采集的設計與實現(xiàn)[J].儀表技術與傳感器,2011(8):108.
[2] 張云梓.基于CPLD的高速數(shù)據(jù)采集系統(tǒng)的實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學,2013.
[3] 程明,畢立恒,楊曉光.基于CPLD的數(shù)據(jù)采集系統(tǒng)的設計[J].自動化技術與應用,2007(8):100.
[4] 李冬,趙志凱.一種高性能異步FIFO的設計與實現(xiàn)[J].微電子學與計算機,2010(8):145.
[5] 張桂興,張英敏,張鵬.基于IP核與ModelSim的正弦波發(fā)生器仿真平臺建立[J].測控技術,2011(1):28.