在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1660|回复: 0

[原创] 例说FPGA连载86:工业现场实时监控界面设计之波形产生模块代码解析

[复制链接]
发表于 2017-4-1 20:54:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
例说FPGA连载86:工业现场实时监控界面设计之波形产生模块代码解析

特权同学,版权所有

配套例程和更多资料下载链接:

http://pan.baidu.com/s/1c0nf6Qc

1.jpg


该模块实现NIOS IIAvalon-MM总线从机接口,将NIOS II写入的数据缓存到寄存器或双口RAM中。该模块从NIOS II获取的数据将实现LCD显示的波形窗口的控制。


该模块的基本功能框图如图17.13所示,Avalon-MM总线从机逻辑接收到的数据或者直接用于LCD的波形窗口控制,或者锁存到双口RAM中用于波形点的显示。

2.jpg

17.13 波形控制器模块功能框图


该模块的接口定义如表17.1所示。

17.1 波形控制器模块信号接口定义

  

信号名

  
  

方向

  
  

功能描述

  
  

avawave_cs_n

  
  

input

  
  

Avalon-MM总线片选信号,低电平有效。

  
  

avawave_wr_n

  
  

input

  
  

Avalon-MM总线写使能信号,低电平有效。

  
  

avawave_addbus[9:0]

  
  

input

  
  

Avalon-MM总线地址信号,可寻址访问0-1023

  
  

avawave_datbus[7:0]

  
  

input

  
  

Avalon-MM总线数据信号。

  
  

wave_rclk

  
  

input

  
  

双口RAM读时钟信号。

  
  

wave_rden

  
  

input

  
  

双口RAM读使能信号

  
  

wave_datbus[7:0]

  
  

output

  
  

双口RAM读出数据,即当前波形高度数据。

  
  

wave_xs[9:0]

  
  

output

  
  

波形显示起始X坐标。

  
  

wave_ys[9:0]

  
  

output

  
  

波形显示起始Y坐标。

  
  

wave_xe[9:0]

  
  

output

  
  

波形显示结束X坐标。

  
  

wave_ye[9:0]

  
  

output

  
  

波形显示结束Y坐标。

  
  

wave_fcor[15:0]

  
  

output

  
  

波形显示前景色。

  
  

wave_bcor[15:0]

  
  

output

  
  

波形显示背景色。

  
  

wave_disp

  
  

output

  
  

波形显示使能信号,高电平有效。

  


         Avalon-MM总线可读写的寄存器及其地址定义如表17.2所示。

17.2 波形控制器模块可访问寄存器定义

  

寄存器

  
  

地址

  
  

功能描述

  
  

dram_wrdata[7:0]

  
  

10'd0-10'd999

  
  

双口RAM的写入数据,即LCD显示波形点的高度。

  
  

wave_xs[9:8]

  
  

10'd1000

  
  

波形显示起始X坐标。

  
  

wave_xs[7:0]

  
  

10'd1001

  
  

波形显示起始X坐标。

  
  

wave_ys[9:8]

  
  

10'd1002

  
  

波形显示起始Y坐标。

  
  

wave_ys[7:0]

  
  

10'd1003

  
  

波形显示起始Y坐标。

  
  

wave_xe[9:8]

  
  

10'd1004

  
  

波形显示结束X坐标。

  
  

wave_xe[7:0]

  
  

10'd1005

  
  

波形显示结束X坐标。

  
  

wave_ye[9:8]

  
  

10'd1006

  
  

波形显示结束Y坐标。

  
  

wave_ye[7:0]

  
  

10'd1007

  
  

波形显示结束Y坐标。

  
  

wave_add_en

  
  

10'd1008

  
  

LCD读双口RAM起始地址递增使能信号,高电平有效。当完成一行完整的波形点显示后,希望实现类似示波器的波形右移效果,则使能该寄存器位。

  
  

wave_fcor[15:8]

  
  

10'd1010

  
  

波形显示前景色。

  
  

wave_fcor[7:0]

  
  

10'd1011

  
  

波形显示前景色。

  
  

wave_bcor[15:8]

  
  

10'd1012

  
  

波形显示背景色。

  
  

wave_bcor[7:0]

  
  

10'd1013

  
  

波形显示背景色。

  
  

dram_clr

  
  

10'd1014

  
  

双口RAM清除信号,高电平有效。

  
  

wave_disp

  
  

10'd1016

  
  

波形显示使能信号,高电平有效。

  



使用这些寄存器,如图17.14所示,我们可以在LCD上配置出一个起始点为(wave_xs,wave,ys),终点为(wave_xe,wave_ye),背景色为wave_bcor(黑色),波形色为wave_fcor(白色)的矩形波形窗口。


当我们设置wave_add_en0wave_disp1,并且连续送入(wave_xe - wave_xs)个波形点数据后,则出现图示的波形效果。若我们再送数据,则波形点会从wave_xs坐标开始覆盖原来的点。只有当我们设置wave_add_en1,那么原波形将右移一个像素点,并且新的波形从wave_xe的位置出现,这就实现了类似示波器的移动效果。

3.jpg

17.14 波形显示界面示意图





您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-25 21:54 , Processed in 0.017660 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表