新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种基于FPGA的在线监控系统设计

一种基于FPGA的在线监控系统设计

作者:时间:2014-07-24来源:网络收藏

  在SoC系统的设计及使用过程中,对其内部行为的实时监控十分重要,目前普遍通过监控端和目标系统间的监控信息通信来实现,UART常用作通信信道。

本文引用地址:http://www.eepw.com.cn/article/255998.htm

  目标SoC系统常使用中断方式或轮询方式获取监控通信数据包,对其解析并进行相应数据操作后回复应答信息。中断方式中SoC需完成保存中断现场、调用中断服务程序、恢复现场系列任务,上下文的切换占据了系统额外开销;轮询方式中,系统定时检查设备请求,若有数据到达则调用相应处理程序,固定的轮询周期增加了数据等待处理时间,数据量较小时频繁查询造成对CPU资源的浪费。

  针对上述问题,提出一种的新监控方法,设计一个通信系统,由其作为SoC与监控计算机数据交互的桥梁,负责完成的通信过程,保证被调试系统和调试主机之间调试信息和命令的交互可靠性,可避免目标SoC频繁的处理通信中断,提高其控制性能。监控功能实现机制与通信系统主要模块的设计方法将被讨论,通过对比嵌入式CPU在不同监控方法中的通信时间消耗,说明该方法具有一定实用价值。

  1 系统组成结构

  基于设计片上通信系统如图1所示,其主要组成部分为Modbus解析模块和存储模块。上位机发出监控命令帧数据时,由Modbus模块完成命令帧的接收、解析过程,并将待操作地址、数据等信息存入中,目标CPU据此将自身内存映像区的相应数据一次搬入,搬移完毕后,Modbus协议模块进行应答数据组帧,并向监控上位机发回应答数据,实现对监控数据的实时可靠采集。

  

 

  图 1 通信系统组成结构

  2 基于双口RAM的数据交互设计

  2.1 双口RAM定制及内存映射设计

  目标SoC中的待监控数据状态量在内存中的存储方式,可抽象表示为如图2中内存映像。

  

 

  图 2 双口 RAM 的内存映射机制

  双口RAM中存储当前待监控数据对象集合,是目标CPU内存映像区的一个数据子集。由于当前监控对象可随机落在内存映像区的任意存储块上,双口RAM的内存映射方式选取为随机映射,如图2所示。

  分散存放于CPU内存映像区的监控对象,映射为双口RAM中的连续存储区。上位机基于Modbus协议与片上系统通信时,访问连续的地址单元,保证了数据访问速度,提高系统的通信效率。

  2.2 双口RAM中的数据操作设计

  2.2.1 上位机对双口RAM的读写操作

  PC上位机为通信发起方,通过串口与FPGA片上系统连接,采用Modbus-RTU协议进行数据通信,完成对运行参数的读取和写入等操作,实现监控功能。

  表 1 监控通信过程占用 CPU 时间

  

 

  用户在人机界面输入本次待监控对象信息, 后台软件依据Modbus帧结构及约定的双口RAM内存映射机制,组成监控命令帧并通过串口发出。FPGA片上系统对收到的命令帧进行解析,获取操作功能码、目标地址、数据包大小等信息,据此向双口RAM区写入待操作数据地址集,写入完毕后向目标CPU申请通信中断。根据Modbus命令帧中给出的数据操作长度,一次可对多个数据单元进行读/写操作。

fpga相关文章:fpga是什么



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭