通信网--中国通信行业门户网站 | 中国行业网站集群--通信行业电子商务唯一网站 设为首页 | 收藏本站
免费注册 商机无限 商务中心 行业展会 立即发布商机
网站首页 公司库 产品库 商机库 行业资讯 展会信息 招聘信息 招商加盟 下载中心 招标信息
关键词:
热门词汇: IP网络电话   语音识别   手机充电器   手机GPS   3G手机   传输设备   交换设备
  行业要闻 | 通信市场 | 通信技术 | 网络学院 | 5G前沿 | 4G前沿 | VoIP | IPTV | WiMAX | 呼叫中心 | IT制造 | IT就业  
  企业专栏 | 企业报道 | 通信标准 | 通信百科 | 分析预测 | 手机评测 | 增值通信 | 政策法规 | 专家观点 | 网商访谈 | 招标信息 | 物联网
网上展览:
综合厂商 | 手机 | IP电话 | 交换机 | 呼叫中心 | 网络 | 终端 | 电源 | 仪器 | 光纤 | 电缆 | 电脑 | 数码 | 软件 | 其他
中国通信网最新加盟企业: 
当前位置:网站首页 > 行业资讯 > 网络学院
【创心服务 联通你我】青春逢盛世,奋斗正当时
中国通信网 时间:2011-08-01 信息来源:现代电子技术
介绍一种应用于液晶显示的数字存储示波器波形显示的算法。通过分析相邻采样数据之间的大小关系。得到逼近波形的系列直线段;通过分析不同通道直线段的位置关系,得到最佳的线段合成效果;通过分析待清除线段和需绘制线段的位置关系,得到最优的清除和绘图列表。算法可有效地提升示波器的显示速度。

数字存储示波器所显示的波形是由系列直线段有效地逼近而得到的。画波形函数是由画点函数按照一定的算法写出的,不同的算法画出的波形在速度和效果上会有所不同。因此有效的波形显示算法可以很大程度上提高波形的显示速度和视觉效果。

1 示波器程序模块的介绍

示波器采用嵌入式μC/OS操作系统。每一个任务都是一个无限循环。为了降低耦合,增强内聚,需要建立消息邮箱,以保证不同任务之间的通信。示波器的模块示意图如图1所示。

一种高效DSO波形显示算法的实现

2 波形显示线程和画波形函数的说明

波形显示功能是由波形显示线程实现的,画点、画线、显示字符等都由基本的画点函数来实现。一种常见的波形显示方法就是:分别根据示波器通道的采样数据绘制波形,待下一屏显示数据准备就绪之后,将上一屏已经显示的波形全部擦除,再绘制准备就绪的波形数据。由于执行画点函数比较耗时,特别是在接近图形满屏的情况下,画点函数被调用次数较多,严重影响其他线程获得CPU的使用权,有可能会产生拖屏现象。示波器采用一种高效地波形显示算法,可以有效的解决上述问题,算法是在画波形函数中实现的。图2是画波形函数的流程图。

一种高效DSO波形显示算法的实现

首先,声明一个wavebuff类型的指针pdl,pdl指向封装采样数据的链表。如果示波器仅有一个通道处于工作状态,则pdl→next指向NULL;如果双通道同时工作,则将激活状态的通道数据封装于链表的头结点,next指向封装另一通道数据的结点。以链表的方式封装数据,灵活方便,节省内存,扩展性强,如果有其他功能需求可以自由扩展链表长度。波形需要由经过处理的采样值构造系列直线段逼近得到。直线段的参数由CLINE类型的数据结构封装。遮蔽分析主要是为了在两通道同时工作的情况下,尽量减少画点。清屏和绘图分析是为了将待擦除线段与待绘制线段进行比较,重复线段保留,多余线段擦除,进一步达到减少画点的目的。

一种高效DSO波形显示算法的实现

2.1 构造绘图线段

画波形函数是由画点函数按照一定的算法写出的,不同的算法绘制波形在速度和效果上会有所不同。波形显示算法要求达到波形粗细均匀,连续,绘制的速度快。示波器每屏显示600个离散数据。如果仅是将经处理后的采样离散数据在LCD对应的位置画出点来,波形不是连续的,而是离散的点,且看起来不清晰。构造绘图线段的作用就是根据相邻离散数据的大小关系得到绘制连续波形的一系列直线段的上下端点数值,流程图如图3所示。其方法如下:定义一个wavebuff类型的指针pdl。如果当前点的值大于与之相邻的下一点的值即pdl→buff[i]>pdl→buff[i+1],那么当前点所对应的直线段的上端点值hi=pdl→buff[i],下端点值lo=pdl→buff[i+1]+1;如果pdl→buff[i]<pdl→buff[i+1],则hi=pdl→buff[i+1]-1,lo=pdl→buff[i];如果pdl→buff[i]=pdl→buff[i+1],则hi=lo=buff[i]。这样,离散的点就被一系列直线段所代替,构成连续的波形。波形的显示区域有一定范围,d_limit是显示区域的下边界值;u_limit是上边界值;如果整个直线段都超出上下界的范围,整个直线段将被舍去,不显示。如果直线段仅是下端超出下边界,那么直线段的下端值就被赋为下边界的值;同理,相反情况下,直线段的上端值就被赋为上边界的值。

一种高效DSO波形显示算法的实现

2.2 遮蔽分析

遮蔽分析主要作用就是在两个通道同时工作的情况下,分析代表不同通道数据的直线段在绘图时互相的遮挡关系,以达到少画点的目的,这种会相互遮挡的直线段在液晶屏上的横坐标总是相同的。数据先进入的通道的优先级高即此通道的波形可以覆盖其他通道的波形。当代表不同通道的直线段在位置上有重合关系时,优先级高的线段覆盖优先级低的线段,这样可以避免重合部分的重复绘制。根据线段之间不同位置关系,遮蔽关系有6种:即(nlo>lo,nhi<hi),(nlo>lo,nhi>=hi,nlo<=hi),(nlo>-hi),(nlo<=lo,nhi<hi,nhi>=lo),(nlo<= lo,nhi>=hi),(nhi<lo)。其中:hi,lo分别代表高优先级线段的上、下端点值,nhi、nlo分别代表低优先级线段的上、下端点值。以nlo<lo,nhi>hi的情况为例说明遮蔽分析的原理如图4所示。图中1代表先入数据线段,2代表后入数据线段,其程序具体流程如下:获取先入数据的lo,hi,color,声明一个CLINE类型的指针变量pdline,判断是否还有其他通道数据,如果没有,则直接结束遮蔽分析(遮蔽分析在这种情况下无意义,它起到减少画点作用是两通道同时工作时);如果有另一通道工作,则处理之后线段被分为了三部分。其遮蔽后的效果如图5所示,最下面的线段2将作为链表头结点,成员值分别是pdline→lo=nlo,pdline→hi=lo-1,pdline→color=ncolor;线段1则成为第二结点,pdline→next→lo=lo,pdline→next→hi=hi,pdline→next→color=color;最上面的线段2为第三结点,pdline→next→next→lo= hi+1,pdline→next→next→hi=nhi,pdline→next→next→color=ncolor。链表的方向是由下至上的指向各线段的,这样可以简化清除和绘图分析,具体将在下文说明。可见,如果不进行遮蔽分析,当两个通道同时工作时,考虑到数据线段的优先级,线段绘制的先后顺序是先2后1,绘制线段的总长度为(nhi-nlo)+(hi-lo)。进行遮蔽分析后,线段绘制的顺序是由链表的指向性确定的,绘制线段总长度为nhi-nlo。

一种高效DSO波形显示算法的实现

2.3 清除和绘图分析

在绘制新波形之前,总要先清除旧波形。一般的方法就是,将旧波形数据存于待清除波形列表中,通过画点函数将旧波形画成背景色,然后再绘制新波形,清除和绘图本质都是调用画点函数进行绘图。大多数情况下,待清除的波形和待绘制的波形都会有重合部分,如果通过一定的分析找到重合部分,重合部分不清除也不重新绘制,等同于少调用了两次画点函数,这就大幅缩短波形显示线程占用CPU的时间,特别是在示波器采样率较低,波形接近满屏的情况下,效果更加明显。

p1,p2分别是指向待清除、绘制线段数据结构的CLINE类型指针,待清除和待绘制的直线段位置关系有6种:(p1→lo<p2→lo,p1→hi>p2 →hi),(p1→lo<p2→lo,p1→hi>=p2→lo,p1→hi<=p2→hi),(p1→lo>=p2→lo,p1→hi<=p2→hi,p1→hi>p2→lo),(p1→lo>=p2→lo,p1→hi<=p2→hi,p1→hi<=p2→lo),(p1→hi<p2→lo),(p1→lo>p2→hi)。以p1→lo<p2→lo,p1→hi>p2→hi的情况为例,如图5所示,说明分析的原理。如果p1或p2任一为空,则结束分析;若都不为空,则需要对链表进行插入操作,即将原待清除的线段分成两部分。令value= p1→hi,当待清除和待绘制线段的颜色相同时,p1→lo不变,p1→hi=p2→lo-1,p1→next→lo=p2→hi+1,p1→next→hi=vslue,由于重合部分颜色相同,故不清除也不用绘图,p2指向的结点被删除。当颜色不同时,p1→lo不变,p1→hi=p2→lo-1,p1→next→lo=p2→hi+1,p1→next→hi=value,重合部分颜色不同故此部分仍需绘制,p2→hi、p2→lo都不变。由于遮蔽分析使链表方向是自下而上的指向各个线段,故只需让p1或者p2中指向位置在下面线段的指针指向其下一结点即可,之后判断是否符合循环条件。这样可以大大简化循环流程,假设清除线段和绘图线段各有三段,由于链表具有自下而上的指向性,则最多循环3次即可以完成分析;如果没有指向性,那么就至少需要循环3×3次才能完成分析。

一种高效DSO波形显示算法的实现

3 结语

采样频率是衡量数字存储示波器示波器性能的重要指标,但如果显示算法不理想,即使采样频率较高也无法将采集的波形及时的显示在使用者面前。画点函数占用CPU时间较其他函数久,这会导致优先级低的任务长时间无法得到CPU的使用权。因此一种有效的波形显示算法对于提升示波器的性能同样是十分重要的。算法已在投产的示波器上得到很好的应用,有效解决了波形接近满屏情况下的拖屏现象,对于提升示波器的显示速度乃至整机性能有很大帮助。

相关资讯
· 【创心服务 联通你我】青春逢盛世,奋斗正当时 (2012-01-17)
· 【创心服务 联通你我】青春逢盛世,奋斗正当时 (2012-01-14)
· 【创心服务 联通你我】青春逢盛世,奋斗正当时 (2012-01-12)
· 【创心服务 联通你我】青春逢盛世,奋斗正当时 (2012-01-11)
· 【创心服务 联通你我】青春逢盛世,奋斗正当时 (2012-01-09)
发表评论
昵   称:   匿名发表
验证码: 
 
热门资讯
【创心服务 联通你我】青春逢盛... (2009-09-15)
【创心服务 联通你我】青春逢盛... (2011-04-28)
【创心服务 联通你我】青春逢盛... (2009-09-16)
【创心服务 联通你我】青春逢盛... (2008-07-15)
【创心服务 联通你我】青春逢盛... (2008-05-23)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2012-01-09)
【创心服务 联通你我】青春逢盛... (2011-01-30)
【创心服务 联通你我】青春逢盛... (2010-05-28)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2011-02-17)
【创心服务 联通你我】青春逢盛... (2009-08-13)
【创心服务 联通你我】青春逢盛... (2011-05-03)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2009-08-12)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2010-07-20)
【创心服务 联通你我】青春逢盛... (2009-08-12)
【创心服务 联通你我】青春逢盛... (2010-08-27)
【创心服务 联通你我】青春逢盛... (2009-08-12)
【创心服务 联通你我】青春逢盛... (2009-10-11)
【创心服务 联通你我】青春逢盛... (2009-07-24)
国之鑫科技 | 泰尔网 | 中华网科技 | 信息产业网 | 通讯世界 | 数字通信世界 | 文传商讯 | 中华英才网 | 电话视频会议 | 凤凰科技 | 呼叫中心 | 新浪科技 | 新传媒网 | 和讯科技 | 中国科技网 | 通信英才网 | 江苏星光发电设备 | 中劳网 | 赛迪网 | MSCBSC移动通信网 | 中国软件网 | 新华网 | 腾讯科技 | 3G通信网 | 千龙网 | 光通信人才招聘网 | 通信人才网 | 中商顾问网
返回首页 | 网站简介 | 企业理念 | 免责声明 | 广告服务 | 代理政策 | 联系我们 | 铭万网 | 中国产品推广联盟
南京国之鑫科技有限公司版权所有©2008-2016 客户服务热线:025-83752991, 客户服务邮箱:gzx@gzxinfo.com
苏ICP备18005078号-1
本站图片及文字仅供功能演示,本站保留对本演示内容及功能的最终解释权

加入铭万联盟中国行业网站集群独家技术供应商