基于SoPC的状态监测装置的嵌入式软硬件协同设计与实现
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等多处理器芯片的设计方法,可实现系统级优化设计。
软硬件协同 状态监测 Linux PLC SoPC 相关文章:
- 基于FPGA的软硬件协同仿真加速技术(02-25)
- 工控机在IC卡加油工程中的应用(05-13)
- 联网汽车为什么选择Linux开源平台?(07-10)
- 多网络和Linux代理的Android无线远程控制系统(02-02)
- 基于嵌入式Linux的家居监控系统设计(02-22)
- 基于嵌入式Linux系统的导航软件设计思路(03-17)