微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于SoPC的状态监测装置的嵌入式软硬件协同设计与实现

基于SoPC的状态监测装置的嵌入式软硬件协同设计与实现

时间:02-16 来源:互联网 点击:

ntor Graphics公司的ModelSim 6.3g。下面是一些具体的仿真结果以及和Matlab仿真的对比。

  在Matlab中产生一个正弦信号,并做4 096点FFT,计算结果如图2所示。

  图3是FFT工作的时序图,可以看到在选择了基-2(Radix-2)算法简化版,突发输入输出模式后,4 096点FFT的计算时间为533.24 μs,较软件算法快很多,从而使系统能胜任大数据量(84路16位数据)高分辨率(4 096点)信号分析。

  
图3 FFT分析仿真结果

  图2和图3是对模拟数据进行Matlab仿真和ModelSim仿真二者结果的比较,可以看到原始计算结果有一定的误差,归一化后完全一致,产生误差的主要原因是在Matlab中的FFT是浮点数计算,而在FPGA中的FFT选择的是定点数计算。仿真结果表明此模块可以完成信号分析的功能,且分析结果达到较高精度。

  3 装置软件设计

  装置的软件结构如图4所示,主要由以下几个部分组成:嵌入式Linux操作系统、设备驱动程序(SJ90Dry.o)、数据采集控制与处理程序(SJ90IOAcc)、系统组态配置与监视分析程序(SJ90Logo)、通信接口程序(SJ90Comm)、CAN网驱动和I2C驱动。

  
图4 SJ-90B软件结构图

  其中:

  (1)嵌入式Linux操作系统:主要负责进程管理、进程间通信、内存管理、实现文件系统、提供I/O接口及对其他资源进行管理;

  (2)设备驱动程序(SJ90Dry.o):运行于系统内核空间,将缓存的存贮空间映射为字符设备,响应设备中断,建立采集数据交换缓冲存贮,提供用户程序与操作系统的接口,完成用户空间和内核空间的数据交换;

  (3)数据采集控翻与处理程序(SJ90IOAcc):主要负责建立共享内存,管理系统配置信息,实时数据,提供连续、自主的在线数据采集控制、信号处理、报警检测、历史数据存贮和故障录波存贮等功能,通过设备读写和NetLink通信接口与内核态设备驱动程序进行数据交换;

  (4)系统组态配置与监视分析程序(SJ90Logo):基于MiniGUI图形环境,提供可视化的系统参数配置(含机组、传感器、通道、测点信息配置等)功能,提供多种实时数据监视图表、历史趋势分析图表和时频振摆分析图表;

  (5)数据通信接口程序(SJ90Comm):实现本系统与其他系统的数据交换,系统提供串口和网络2种方式传送数据,支持的协议分别为MODB US_RTU和MODBUS_TCP;

  (6)CAN网驱动和I2C驱动:运行于系统内核空间,提供用户程序与操作系统的接口,完成用户空间和内核空间的数据交换;CAN网驱动获取开关量以及慢变量信号;I2C驱动完成硬件点灯以及报警等功能。

  4 结语

  基于SoPC的软硬件协同设计在图像处理、无线通信、军事武器等场合已经有了较多应用,本文则将该设计方法应用于状态监测装置中,并通过该设计方法最大限度地提升和优化了该采集系统的性能。笔者认为该设计方法同样适合于电力行业中其他一些实时性强、运算量大、功能复杂的多路采集分析装置中,以该设计思路替代以往的CPU+DSP,CPU+FPGA等多处理器芯片的设计方法,可实现系统级优化设计。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top