文献标识码:A
DOI:10.16157/j.issn.0258-7998.2016.02.018
中文引用格式:卞楠,马聪. 基于CPLD的光伏数据采集系统的设计[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 引言
当光伏阵列处于遮阴条件时,需要对每个电池板进行光照强度的采集,以便完成最大功率点跟踪控制的设计,使光伏阵列更高效稳定地工作[1]。高速数据采集系统在现代工业的各个领域中应用越来越广泛,基于单片机、ARM的数据采集技术已经很成熟,作为一种复杂可编程逻辑器件,CPLD(Complex Programmable Logic Device)这些年来发展迅猛,以其极高的集成度、稳定的性能以及高速、易用的特点,在各个领域都得到了广泛的应用[2]。因此,本文为了实现对光照强度数据进行多路并行采集,采用CPLD作为核心器件进行系统设计。
在检测控制系统中,当需要采集的信号特别多时,传统的方法是利用单片机及其他芯片扩展系统资源来实现,但是这样做会增加大量的外部电路和系统成本,并且增大了系统设计的复杂性。CPLD是一种具有丰富的可编程I/O 引脚的器件,具有在系统可编程、使用方便灵活、可用I/O端口多的特点,可实现复杂的数字逻辑功能。和单片机结合可较容易实现数据的采集任务[3]。
FIFO(First Input First Output)是一种广泛应用在设计中的用来作为缓冲的存储器,它能对数据进行快速顺序的存储和发送,主要用来解决不同速率器件间的速率匹配问题。本系统通过精心设计FIFO体系结构,可以实现FIFO工作性能的大幅提升[4]。
1 硬件电路设计
本设计的接收点为将每一路光照强度传感器产生的模拟量转化为CPLD可以接收并处理的数字量的信号调理电路,将它直接连入I/O口即可。本设计使用了40个接收点来接收40块光伏电池板的光照强度数值,由于受到芯片资源的限制,故使用了3片CPLD同时工作。
本设计选用的CPLD芯片为Altera公司的MAX II EPM1270T144C5N芯片,此芯片在所有CPLD系列中其单位I/O成本最低,功耗最低,包含1 270个LE,相当于40 000门数、980个等效宏单元数、8 KB用户可用Flash 比特数。硬件电路设计如图1。
1.1 CPLD采集电路的设计
因为数据通过信号调理电路已经转化为CPLD可以直接读取的数字量,所以各信号直接接入CPLD 的普通I/O口即可。设计时对精度、稳定性、功率等方面综合考虑,采用了50 MHz有源晶振。CPLD在线编程和芯片自身的测试可通过JTAG接口来实现。
1.2 通信电路设计
系统与上位机通信数据输出电路采用了无线传输模块和RS232串口通信电路,采用双通信是为了适应不同环境下的工作,无线传输模块采用了挪威NORDIC公司的NRF905射频发射芯片。RS232串口通信电路则采用以MAX232电平转换芯片为核心设计而成的串口通信电路。
1.3 电源电路设计
本系统控制器单片机与CPLD使用的都是3.3 V电源,但是液晶显示屏、电池供电等采用的是5 V电源,故需要对电源进行变换才能给芯片供电,故对电源模块进行了设计,采用了以稳压块LM1117T为核心的5 V转3.3 V电路。
1.4 控制电路设计
系统数据采集芯片采用的是CPLD,但是控制核心采用了TI公司的MSP430F169单片机,MSP430具有处理能力强、运算速度快、低能耗、片内资源丰富、方便高效的开发环境等优点,被广泛应用在各种工业场合。
2 软件设计
2.1 CPLD采集数据主程序设计
由于CPLD芯片的设计特点,工作方式不像单片机等属于顺序执行,而是采用速度更快的并行执行,这意味着所有的接收口可以同时工作。每串数据都有起始位和停止位,并且起始位都为低电平,停止位为高电平。检测数据是否开始传输只需判断是否来了低脉冲,但这也可能是误差信号,所以需设置判断是否是真正的起始位,本设计采用的方法是每隔十分之一数据位的时间检测一次,如果连续五次都为低脉冲,则确认为有效数据,并且每隔一个数据位开始接收。由于篇幅限制,只给出如图2所示的一路数据端的主程序流程图。
2.2 CPLD内部FIFO算法判断程序设计
为达到高速缓存的目的,以及解决存入数据与取出数据的速率不同步的问题,设计了一套FIFO寄存器的执行流程,因为CPLD是并行操作,所以流程图中各个判断位是同时执行。图3为CPLD内部FIFO寄存器的执行程序。
2.3 单片机程序流程图
单片机作为控制核心,但由于单片机I/O资源有限,所以3片CPLD采集芯片的输出端接在一起,这就意味着需要MSP430单片机对CPLD进行片选控制,否则会出现数据紊乱。流程图中的寄存器状态位为本设计中设定的一个标志位,设定的依据为当数据超过FIFO寄存器的2/3时,就认定FIFO即将溢出,将状态位置1,否则置0。当读取到其中一片CPLD芯片的寄存器状态位为1时,就让其余2片CPLD所有的数据输出为高阻态,即输出丧能。控制核心单片机则作为数据的接收端根据需要来产生时钟信号,被选中的CPLD按照单片机的时钟信号进行数据传输,如图4所示。
3 实验结果分析
仿真验证是CPLD设计中的重要一环,Altera公司的CPLD自带的Quartus II软件本身带有仿真功能,但是无法使用TestBench(类似于一种激励产生器),对于复杂的设计,画波形图显然不是明智的选择。而Modelsim是业界最优秀的HDL仿真软件,其突出优点能为用户提供全面完善以及高性能的验证功能,不需要硬件就能对CPLD的设计进行仿真,而且能够观察具体的模拟波形图[5]。
本系统根据设计目标要求做了实验验证,如图5所示。CPLD的仿真验证使用Modelsim-altera编写了脚本程序对光照强度数据采集结果进行了实验。Lock信号是单片机读取数据的时钟信号,高电平时读取一串数据的高8位,低电平时读取数据的低8位,data为输出信号,txdb模拟输入的信号。仿真显示能够顺利读取数据,基本达到了设计要求。图6为Modelsim的仿真波形图,从图中可直观地看出读取的数据。
4 结论
本文研究设计了基于CPLD和MSP430F169单片机的光伏数据采集系统,完成了电路板的设计,测试了工作性能。通过不断地在线编程完善和调试,该系统可以快速可靠地进行数据采集和处理,效果理想,可以应用于光伏系统中。
参考文献
[1] 龚耀,林小玲.光伏系统数据采集的设计与实现[J].仪表技术与传感器,2011(8):108.
[2] 张云梓.基于CPLD的高速数据采集系统的实现[D].哈尔滨:哈尔滨工业大学,2013.
[3] 程明,毕立恒,杨晓光.基于CPLD的数据采集系统的设计[J].自动化技术与应用,2007(8):100.
[4] 李冬,赵志凯.一种高性能异步FIFO的设计与实现[J].微电子学与计算机,2010(8):145.
[5] 张桂兴,张英敏,张鹏.基于IP核与ModelSim的正弦波发生器仿真平台建立[J].测控技术,2011(1):28.