基于双CPU的嵌入式电能质量监测仪设计
大连海事大学轮机工程学院的研究人员朱琳、王晓,在2017年第5期《电气技术》杂志上撰文,针对我国电力行业面临的现状,提出了一种以DSP和ARM双CPU为核心,结合高速同步A/D采样器、双口RAM等硬件组成的电能质量监测系统。
详细阐述了各主要模块的软硬件设计。ARM模块中以嵌入式Linux为开发平台,以Qt/Embedded为开发工具,实现对DSP模块的控制,数据的实时显示、存储、网络通信等功能。经实验验证了本监测装置测量的可行性和准确性。
当今,伴随科技的持续发展与进步,人工智能技术引领的新一轮科技革命浪潮正深远影响着各行各业,自动化仪器仪表领域也不例外。其中,传统的电能质量监测装置多数是由单片机开发的,由于资源有限,使得其运算速度较慢。
针对具有在线实时监测功能电能质量监测装置的研发就需要摒弃传统的单片机技术和系统,通过新的系统化、模块化的加载加以探索和解决。由此,本文研发出一种DSP(Digital SignalProcessing)和ARM(Acorn RISC Machine)双CPU模式的嵌入式结构,因其具有系统功能强大、人机界面相对友好等特点,一定程度上满足了当前自动化仪器仪表“智能化、精度化、数字化”的改进要求,取得了较好的实验测试成果。
该监测系统主要由ARM(核心控制单元)和DSP(电能质量算法执行单元)模式嵌入构成,确保了系统管理控制水平和数据高速运算能力的实现[1-2]。具体地,该监测系统通过将Linux操作系统嵌入至ARM9,并以Qt/Embedded作为图形用户界面研发工具,满足了多任务调度、实时显示及存储数据和网络通信等系统功能。
1系统的硬件设计
系统主要由参数采集模块、AD(Analog-to-Digital)采样模块、DSP计算模块、ARM管理模块四部分组成。系统功能框图如图1所示。
图1 系统功能框图
1.1参数采集模块
参数采集模块负责将电网侧的强电信号经过一系列的变换后,变为六路弱电信号后传送给AD采样模块进行采样。模块结构详见图2所示。
图2 参数采集模块结构图
1.2 AD采样模块
参数采集模块输出的六路信号的采样由外扩的AD7656芯片实现。DSP处理模块对通过数据总线传输过来的已转换好数据进行处理。AD7656芯片性能介绍如表1所示。图3为该采样模块的结构图。
表1 AD7656芯片性能介绍[3]
本系统采用并行接口模式,由16条数据总线将AD7656与DSP连接起来,确保控制信号由DSP及时发出。CONVSTA~C及AD的启动转换由DSP发出的PWM脉冲进行控制。CONVSTA、CONVSTB和CONVSTC三个引脚相连确保6路ADC转换同时进行。DSP的片选信号相连,从而为AD7656分配0X000040000存储单元。经AD转换的数据可通过16位数据总线存储到DSP分配的内存空间里;REST作为该系统的复位信号输入,当上电或复位后对AD发送信号,使系统回归初始状态。
图3 AD采样模块结构图
1.3数字信号处理模块
数据处理模块(即DSP模块)作为对ADC转换后数据进行实时运算、采集和传送的载体和工具,至关重要。TMS320F28335型数字信号处理器是TI公司的一款高性能TMS320C28x系列32位浮点DSP处理器,具有精度高、外设集成度高、数据以及程序存储量大、功耗小、成本低等特点,外部扩展RAM(256K*16位)和FLASH(512K*16位),可实现浮点和定点并行运算。因此,该数字信号处理器非常适用于基于傅立叶变换(FourierTransform)算法且需大量数据处理的操作系统中。
1.4 DSP与ARM接口设计
在系统研发过程中,本文采用“DSP+ARM”双CPU设计虽然较好地实现了数据快速处置和实时显示的功能,但同时也发现在大量电能质量数据交换过程中,数据传送速度和准确性对终端数据的实时精确显示存在潜在影响。为了解决这一问题,设计中在DSP与ARM间接入IDT70261双口RAM芯片,完成双CPU间的数据交换。
本芯片包括片选、数据及地址总线、读写控制线各2套,以及BUSY、SEM和INT等3个左右逻辑交互接口信号线。这样避免了2个CPU同时读写同一地址单元时产生冲突。在使用时,只需选用一种信号线,将其它两种信号线置高;本设计中采用了中断仲裁方式。
利用双口RAM的两套中断逻辑,控制两个CPU产生中断。在进行数据传送时,其中一个CPU将放到双口RAM通用地址单元里的数据写入双口RAM最高奇地址,并使另一CPU进入中断程序,此时把该通用地址单元中的数据读出,然后向最高地址写数据,以清除该中断行为。这样可以确保数据的快速响应传输,且数据不易丢失[4-5]。
图4 基于双口RAM的DSP与ARM通信接口框图
1.5 ARM管理模块
本监测仪的终端管理系统硬件选用了S3C2440型核心控制器,较好地满足了系统软件和应用程序运行时的资源要求、外设接口数量以及功耗低、处理能力强、可靠性好等因素。综合各方面的考虑,其是一款基于ARM920T核的处理器,同时扩展了存储器(SDRAM和NAND FLASH)、串口控制芯片(SP3232EEN)、以太网控制芯片(DM9000EP)、SD卡控制模块、LCD/触摸屏显示控制模块等硬件资源。从而实现了数据实时显示、存储和网络传输的硬件支持。
2系统软件设计
系统软件主要由DSP和ARM两部分组成。两部分的软件不仅要完成自己独立的功能,还要相互协调。
2.1 DSP软件设计
DSP主要完成电能质量数据的采集和计算,通过双口RAM实现其与ARM的通信,将处理后的数据发送给ARM,同时实时响应ARM的控制命令。系统中选择CCS3.3作为软件开发调试环境,利用汇编和C语言混合编程实现软件的开发。主程序流程如图5所示。
程序中K用来指示AD采样中一个周期数据是否采样完毕。采样完毕后将其置1,开始进行相应的数据计算。反之,则等待循环。每次计算完成并将数据存入双口RAM后,将其清0。程序中对各项电能质量数据的计算都在相应的子函数内部实现,主函数通过调用各子函数实现数据处理及计算。
程序中所涉及的子函数包括,以中断形式调用的AD采样子函数;功率计算子函数;电压电流有效值计算子函数;FFT变换子函数;不平衡度计算子函数;双口RAM通信子函数和数据存储子函数等。
图5 DSP程序流程图
2.2 ARM软件设计
ARM软件模块的构建包括嵌入式Linux操作系统的移植以及Qt/Embedded人机交互应用程序开发。ARM模块软件架构如图6所示。
图6 ARM模块软件架构
1)嵌入式Linux操作系统
ARM模块软件的设计是在Linux操作系统的基础之上完成的。因此,首先要完成Linux操作系统的移植。
嵌入式Linux操作系统具有广泛的优良特性,具体表现为[6]:可自行编译内核且资源丰富,大大节省开发时间及工作量;内核功能强大且性能高效稳定,易于剪裁;支持多种硬件平台及文件系统;GUI界面系统友好;网络通信功能完备。
2)Qt人机交互应用程序开发
人机交互模块通过Qt/Embedded、嵌入式Linux和C、C++语言确保软件开发功能的实现。监测仪终端人机交互功能主要是通过Qt实现的。Qt是一个跨平台的C++图形用户界面(GUI)工具包。其各种类及特有的槽机制和信号,可实现图形界面的显示;与此同时,Qt Creator跨平台集成开发环境也可大大的提升研发效率。人机界面开发流程如图7所示。
图7 人机界面开发流程图
该装置中图形化界面的开发设计使用Qt Creator进行,主要通过调用各类标准部件以满足界面的设计要求。同时通过Qt中的信号和槽机制完成多窗口之间的切换,从而达到分级菜单显示功能。此外,Qt中所要解决的一个重要问题是实现对双口RAM中数据的存取。
ARM对双口RAM中数据的存取主要通过C语言和在Qt中设置专门的类函数得以实现。通过多线程的方案设计,很好的将双口RAM通信程序和Qt中各种类函数融合在一起。Qt人机交互菜单中所要实现的软件功能如图8所示[7]。
图8 软件功能结构图
3监测仪功能测试
该电能质量监测装置主要由参数采集模块、AD采样模块、数字信号处理模块以及ARM人机交互模块构成。监测装置实物图详见图9所示。
图9 电能质量监测装置实物图
文中电能质量监测仪可以实现对基本电量、电压/频率偏差、谐波、三相不平衡度、电压偏差等参数的测量,同时可以实现对各类系统参数及越限值设置、历史数据查询和网络通信等功能。图10电能质量监测仪的功能选择菜单,通过该人机交互界面的功能选择可以实现对相应电能质量的测量功能。通过对装置各种功能的测试,验证了课题的可操作性。
图10 电能质量监测仪功能选择界面
4结论
文中提出了一种以DSP+ARM双CPU为控制核心的电能质量监测系统设计方法,完成了电能质量监测装置硬件设计及软件开发,DSP负责对输入信号进行运算、处理,ARM则负责人机交互和数据管理功能。利用Qt/Embedded设计出友好的、智能化的人机界面。
经过试验证明,该监测仪能够实现电能质量在线监测、分析,具有测量精度高,操作简单方便,实时性好,运行稳定等特点,具有非常重要的实用价值。