基于OMAPL138 + Xilinx spartan6的电力数据采集与传输设计
1 评估板简介
基于TI OMAP-L138(定点/浮点 DSP C674x+ARM9)+ Xilinx Spartan-6 FPGA处理器;
OMAP-L138 FPGA 通过uPP、EMIFA、I2C总线连接,通信速度可高达 228MByte/s;OMAP-L138主频456MHz,高达3648MIPS和2746MFLOPS的运算能力;
FPGA 兼容 Xilinx Spartan-6 XC6SLX9/16/25/45,平台升级能力强;
开发板引出丰富的外设,包含千兆网口、SATA、EMIFA、uPP、USB 2.0 等高速数据传输接口,同时也引出 GPIO、I2C、RS232、PWM、McBSP 等常见接口;
通过高低温测试认证,适合各种恶劣的工作环境;
DSP+ARM+FPGA三核核心板,尺寸为 66mm*38.6mm,采用工业级B2B连接器,保证信号完整性; Ø
支持裸机、SYS/BIOS 操作系统、Linux 操作系统。
在电力系统中的运行中,需要对大量的电气设备的数据,如三相电压、三相电流、开关量等进行采集和远距离传输,电力系统的不断发展也对电力数据的采集精度和传输的时效性提出了越来越高的要求[1]。
传统的基于单片机的低端测量仪表存在着数据处理能力差,模块功能单一的缺点,而基于DSP的中高端仪表充分利用了DSP较强的数据处理能力,但又存储空间和通讯能力较弱的缺点。
自2000年国际电工委员会决定将IEC61850作为电力系统无缝通信体系的规约以来,IEC61850规约已经在国内外电力系统及变电站自动化领域得到了逐步应用[2]。然而,目前状态是很多的仪表以及自动化测控设备等还不能满足IEC61850的要求,在实际应用中也存在着Modbus,IEC61850的规约同时存在的问题,只能满足单一传输规约的设备,在使用中受到了很大的局限。
针对这种状况本文提出了基于OMAPL138的能够满足多种传输规约的数据采集和传输装置的设计方案,该方案可以同时满足两种传输规约,灵活方便,具有很好的使用价值。
1 总体设计
本设计的硬件设计基于OMAPL138处理器,OMAPL138是德州仪器公司的一款嵌入式ARM+DSP双内核微处理器,外围接口非常丰富,主要包括DDR2控制器,以太网控制器,异步收发器,SPI,I2C接口,液晶控制器,USB等[3]。
FPGA 兼容 Xilinx Spartan-6 XC6SLX9/16/25/45,平台升级能力强;采用OMPAL138+SPARTAN6核心板便于二次开发。
本设计的总体方案是微处理器OMAPL138的通过EMIFA总线连接Nand-Flash,Nand-Flash用来存放UBOOT,操作系统内核,文件系统,应该用程序以及相关数据;OMAPL138通过DDR2总线连接一片DDR2SDRAM,用于操作系统、应用程序运行以及临时文件的存放。
如图1所示,OMAPL138通过SPI接口与外部模数转换器连接实现模拟量的采集;通过通用异步串口(UART)实现RS232和RS485的方式复用,发送Modbus规约的采集数据,用于本采集终端向后台发送采集数据。
OMAPL138通过MII接口将自身的以太网控制器与外部的以太网的物理层芯片相连,实现以太网通信,通过以太网接口以IEC61850规约向后台发送采集数据。
图1 硬件系统框图
2 硬件设计
2.1 采集模块设计
1) 模拟量采集模块设计
本设计采用的模数转换器是ADI公司的AD7689,它具有8个模拟量通道,16位的分辨率和250kSPS的采样率[4]。AD7689将采集来的模拟量进行模数转换,完成数模转换后通过SPI总线接口将数字量送入处理器进行处理。
本设计中的配置如下:(1)ADC的电源为5V,ADC的参考电压为4.096V,参考电压有内部基准源提供;(2)ADC数字输出的电压为3.3V,与处理器的IO电压保持一致;(3)模拟输入信号为单极性输入,其输入电压由信号调理电路将互感器输入的差分信号调整为单极性信号;(4)数据输出速率由处理器控制。
2) 开关量采集模块设计
开关量作为数字输入量经过光电隔离后,直接送入处理器OMAPL138的IO引脚,通过软件配置将处理器的IO引脚配置为输入状态采集外部的数字量,然后存入共享内存中,进一步通过相应的规约上送数据。
2.2 通信模块设计
本设计支持Modbus和IEC61850双重规约,可以灵活地适应不同场合的通信要求。其中Modbus规约可以采用RS232或者RS485方式通信,RS232或者RS485可以通过软件配置的方式实现复用和自动切换。IEC61850通信规约采用光口或者电口以太网方式通信。
1)RS232/RS485复用接口
RS232/RS485复用方案电路图如图2所示,OMAPL138的UART口的发送引脚接RS232模块MAX3232的发送输入引脚和RS485模块MAX485的发送输入引脚,UART口的接收引脚接RS232模块MAX3232的接收输出引脚和RS485模块MAX485的接收输出引脚。
OMAPL138的两个IO引脚经过分别驱动双线圈磁保持微型切换继电器的置位线圈和复位线圈,通过这两个IO引脚的脉冲电平使继电器的转换触点处于置为位状态或者复位状态。
为提高OMAPL138的IO引脚的驱动能力,本设计采用IO引脚驱动三极管,三极管驱动继电器的方法来实现。这样就能通过改变处理器的IO引脚状态来选择将RS232模块或者RS485模块的输入输出信号接通到装置对外通信的连接线上,从而使RS232和RS485这两种不同通信方式可以通过改变软件配置的方法方便地实现复用。
图2 RS232/RS485复用通信模块
2) 以太网通信接口设计
处理器OMAPL138带有一个以太网控制器,支持10M/100MBps以太网,提供的MII和RMII接口与外接的以太网物理层芯片连接即可实现以太网通信。本设计使用的以太网物理层芯片是Micrel的KSZ8001,支持10M/100MBps光口或者电口以太网,OMAPL138和KSZ8001以太网接口部分的电路图如图3所示。
图3 以太网通信接口电路图
2.3 电源设计
本设计的所用的电源有三种1.2V、1.8V和3.3V,分别是处理器的内核电压、DDR2控制器电压、处理器IO电压及其他芯片工作电压。本设计中所需要的这三种电源采用专用的电源芯片将外部的5V电源转换而来,所使用的电源转换芯片是Intersil公司的ISL6410A和ISL65426,ISL6410A输出1.2V,ISL65426输出1.8V和3.3V。
ISL6410A和ISL65426是Intersil公司的提供的高性能PWM调制的DC/DC电压转换芯片,能够在-40度到85度的工业级温度范围内提供稳定的电压电流输出且具有较高的转换效率[5][6]。
这两款芯片均集成了内部MOSFET,且配备了合理的power-good引脚和使能引脚,极大地方便了用户设计。
在利用这两款电源芯片进行电源设计时需要注意以下几点:
(1)由于处理器OMAPL138对上电时序有特殊要求,因此必须保证1.2V先于1.8V建立完成,1.8V先于3.3V建立完成。ISL6410A的使能引脚EN上拉至5V,它的power-good引脚PG接至ISL65426的1.8V输出通道的电源使能引脚EN1,ISL65426的1.8V输出通道的power-good引脚PG1接至3.3V输出通道的电源使能引脚EN2。这样保证了合理的上电时序。
(2)通过设置ISL6410A输出配置引脚VSET上拉至5V,使ISL6410A在5V电源输入的状态下正确地输出1.2V电压。
(3)ISL65426有2个输出通道和6个可调节的电源输出模块,可以进行独立配置。两个输出通道的输出电压可以通过编程引脚配置;在特殊的输出电压要求下,输出电压也可以通过分压电阻反馈进行调节。本设计所需的1.8V和3.3V是该芯片能够通过编程引脚提供的,因此将引脚V1SET1、V1SET2、V2SET1和、V2SET2均上拉至5V即可。本设计在功率消耗方面3.3V的电流消耗大于1.8V电流消耗,因此将电流输出配置引脚ISET1和ISET2配置为1和0。
3 软件设计
本设计软件部分包含ubl、uboot、linux内核、文件系统、应用程序五部分。其中ubl和uboot执行OMAPL138的一些初始化以及内核的加载和引导。
本设计使用的内核版本为linux2.6.32,并在其中扩展了串口驱动。应用程序实现多种通信规约,支持ModbusRTU和IEC61850规约上送。CPU将采集到的信号经过算法处理后填入共享内存,以供各规约模块封装报文。
3.1 底层串口驱动
本设计支持的Modbus规约通过串口与上层设备通信,串口收发数据由内核中串口驱动程序实现。Linux内核的串口驱动由底层驱动层、线路规程、tty设备驱动核心层三部分组成,软件模块架构如图4。
从图4中可以看出,用户空间的指令传递数据至底层驱动层,经线路规程处理调度后传递到tty设备驱动核心层,从而按照指令对应的功能操作硬件。某些情况下也可不经过线路规程,直接经底层驱动传递到驱动核心层进行处理。
3.2 数据采集与处理
1) 数据精度算法
为尽可能排除因环境干扰或其他硬件异常造成的A/D采集数据异常,本设计对采集的结果先进行算法处理再填入共享内存。处理流程为对连续采到的十个信号去掉最大值和最小值,其余的取平均值,作为本次采到的有效信号,存入共享内存。该算法降低了数据采集效率但同时也提高了数据可靠性,适用于对数据采样速率要求不高的应用环境。
图4 串口驱动层次结构图
2) 数据传递
本设计为保障协议间数据传递效率,采用共享内存的方式实现数据传递。各协议数据结构实际上是同一块物理内存。在主进程启动时会申请一块内存,随后读取配置文件,按照配置定义各协议数据结构中成员对应关系,已实现协议间数据传递。
3.3 通讯协议
本设计支持ModbusRTU协议,作为终端支持上层设备通过ModbusRTU协议发送的各种操作。本设计通过RS485或RS232接口与上层设备进行Modbus通信,可通过配置文件选择支持的接口类型。程序设计时考虑到RS485的半双工特性,在发送与接收时应做适量延时,以确保数据收发的完整性。
本系统还支持IEC61850协议,通过以太网上从数据至后台管理。各协议的数据均来自共享内存,系统模块框图如图5所示。从图5中可以看出,两个规约模块均为独立的任务进程,即本系统可同时支持以上两种规约,从而实现同时支持多种规约的上层设备。
3.4 数据记录
本设计具有完善的故障点记录设置,可将运行过程中各种数据的异常信息及故障时间保存到log文件中,并写入flash保存,便于维护人员排查故障。另外本系统也支持数据历史信息记录,可将每次变化后的数据及对应的时间点记录在log文件中,并写入flash。本系统总共支持128M的log文件存入。
图5 数据采集与内存共享模块图
4 测试验证
为检验本设计的数据采集功能以及Modbus和IEC61850通信的功能,采用以下方案来验证:通过继电保护测试仪输出三相电流,三相电压和开关量等信息给本设计,本设计对数据进行采集和处理并通过Modbus和IEC61850规约上送至PC机。对于Modbus通信的验证,采用PC机通过串口调试助手向本设计发送Modbus轮询报文,检查设备回复数据情况。
IEC61850通信的验证可通过以太网抓包工具MMS Ethereal抓取MMS报文查看数据上送情况。两种规约的上送报文的截屏分别如图6和图7所示,通过两种规约报文和继电保护测试仪输出的数据进行对比可以得知本设计能够满足最初的设计要求。
图6 Modbus轮询与回复
图7 mms报文
5 结论
本文给出了一种基于OMAPL138的电力数据采集与多规约传输方案,采用了模块化设计,并能够提供多种通信规约进行数据传输,极大地方便了用户的使用。同时也为更多的硬件功能以及规约的增加提供了软硬件平台,具有很高的应用价值。
- 点赞
- 收藏
- 关注作者
评论(0)