新闻中心

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

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

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

  2.2.2 目标CPU对的读写操作

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

  目标CPU收到通信中断请求后,读区的中断邮箱,邮箱信息包含本次申请功能(读或写)及申请的数据项个数等。根据申请地址集,将自身内存映像区相应数据集一次搬入,或将双口RAM中数据集一次搬入内存映像区相应地址处,搬移完毕后,清空中断邮箱,向监控模块发出中断应答。

  3 Modbus协议栈模块的设计与实现

  采用自顶向下的设计方法,根据功能需求设计Modbus协议栈顶层原理框图如图3。使用VHDL硬件描述语言编程实现各组成子模块,功能如下述。

  

图 3 Modbus 协议栈顶层框图

 

  图 3 Modbus 协议栈顶层框图

  (1)时钟生成模块:通过分频和相移产生位时钟clk和1/16位时钟bclk,作为控制其他模块的运行节拍,保证系统运行同步。

  (2)串口接收模块:以bclk作为控制时钟,对接收的位数据作中点采样,进行串并装换得到字节数据。

  (3)串口发送模块:以bclk作为控制时钟,发送使能信号有效时,输入端的字节数据进行并串装换,通过串口发出。

  (4)接收控制模块:判断帧的起始、结束、是否接收错误;提供地址数据,接收的字节数据被存储至RAM1中相应存储单元。

  (5)CRC校验/生成模块:使用基于字节的CRC_16校验码运算方法。接收端的校验过程与数据接收同步进行,接收控制模块每收到一个字节数据,CRC校验模块对其作一次CRC码计算;CRC生成模块运行机制类同。同步运算可有效减少一次对帧数据的遍历。

  (6)解析主控模块:作为系统的核心,负责解析收到的命令帧,根据解析信息进行数据读写操作,组成应答帧,控制串口发送模块发送应答数据等多项任务。收到一个校验无误的命令帧后,控制读取接收缓存区RAM1中数据,比照Modbus帧格式解析命令帧含义,通过对外数据、地址等接口完成对双口RAM的读写操作;解析及操作完毕后,控制应答帧组帧过程,将应答数据依次写入RAM2发送缓存区,全部写入后,将CRC生成模块中CRC_16校验值按低位在前高位在后顺序,依次存放到发送缓存的下两个地址位置处,此时应答帧准备完毕;控制发出应答帧,依次读取出发送缓存区数据(读脉冲间的时间间隔至少大于串口发送单个字节所需时间),每取出一个数据,提供发送使能脉冲供串口发送模块工作,脉宽等于串口发送单个字节所需时间,直至应答帧全部发送完毕。

  (7)接收缓存RAM1/发送缓存RAM2:存储串口接收模块收到的字节数据/存储待发送的应答帧。

  4 性能分析

  分析监控通信对Soc系统性能的影响,设定一系列参数如下:时间基数T(min)、监控频率m(帧/min)、监控命令帧平均长度n(byte/帧)、Soc主循环平均周期k(ms)、通信波特率B(bit/s)、中断处理指令数r(条)、查询语句指令数s(条)、处理器主频f(HZ)。针对常用的轮询监控、中断监控,及该文所提出的基于的DRAM监控方法,可按照表1公式计算其监控通信过程占用的CPU时间。

  对于常用ARM处理器,可例举部分参数值f=72M,r=15,s=5。设定其余参数值T=1,m=100,n=30,k=0.05,B=115200。在当前设定下,计算得出三种监控方法对CPU的时间占用百分比,如表1所示。对比应用单一的中断或轮询方式,使用该文提出的监控方法时,嵌入式系统CPU的利用率得到了明显的提高。

  5 结语

  该文提出一种针对嵌入式片上系统的方法。利用技术设计了辅助监控系统,由该系统完成监控通信过程中的接收通信命令帧、解析命令帧及组成应答数据帧等任务,加快了对通信数据的处理速度。SoC有效减少了处理监控所需时间,更集中于其控制功能的执行,从而获得更高的实时性。设计工作在Altera公司的QuartusII开发平台上采用VHDL语言完成,使用CycoloneII系列芯片作功能验证,通信系统的Modbus接口与上位机在115200的波特率下收发正确,双口RAM内数据交互稳定,达到了预计效果。

fpga相关文章:fpga是什么



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭