数据信号的波形显示系统及其方法

文档序号:6362424阅读:388来源:国知局
专利名称:数据信号的波形显示系统及其方法
技术领域
本发明涉及一种用计算机软件实现的对待测数据信号进行分析显示的系统及方法,特别是一种用软件实现的逻辑分析仪系统及方法。
背景技术
在计算机的硬件测试领域,为了更有效的对计算机及其接口装置进行测试,需要将待测硬件系统的数据信号采集出来进行各种显示分析。有时也需要制作一些测试工具来配合测试程序进行测试工作,例如对计算机的串行端口、并行端口、PCMCIA或者CRT端口进行测试时,经常需要将从这些已经装置中采集到数据显示出来,进行进一步的分析处理。
但是,在先前技术中,一般都是依靠特殊的专业设备来完成信号的采集、显示与分析工作,例如逻辑分析仪,虽然这些设备功能强大而齐备,但这种专业设备的造价也非常昂贵。
而另一方面,目前的计算机具有很强的运算处理能力,自身又拥有很多通讯端口可以利用,这些通讯端口都具有基本的输入/输出功能,因此,能否利用计算机的强大处理能力来对采集到的待测硬件数据信号进行显示分析,用软件程序来取代昂贵的逻辑分析仪设备,则成为一有待解决的问题。

发明内容
本发明为解决上述问题而提供一种软件实现的逻辑分析仪系统及方法,通过普通计算机来完成对采集到的信号进行显示与分析。
本发明提供一种数据信号的波形显示方法,用以将采集到的数据信号通过计算机显示器显示出来,首先确定显示参数以及当前显示的数据起始位置,然后根据显示参数确定可显示的数据总量,根据数据起始位置从数据区读取一待显示数据,再将该数据分离为8个数据通道的独立值,根据该显示参数将每个通道的数据转换为数字波形,当达到可显示的数据总量时停止显示。
本发明进而提供一种数据信号的波形显示系统,用以将采集到的数据信号通过计算机显示器显示出来,包括参数采集模块,总量计算模块,数据读取模块,数据分离模块以及数据显示模块,其中,参数收集模块用以收集显示参数,总量计算模块用以根据显示参数计算出可显示的数据总量,数据读取模块用以从数据区读取待显示数据,数据分离模块用以将该读取的待显示数据分离为8个数据通道的独立值,数据显示模块用以将每个通道的独立值转换为数字波形。
以下结合附图以进一步说明本发明。


图1是本发明的数据信号的波形显示方法的流程图;图2是本发明所提的数据信号的采集方法流程图;图3是本发明的数据信号的波形显示系统的模块结构图;图4是本发明所提的数据信号的采集系统模块结构图;图5是本发明所提的并行端口接口示意图;图6是本发明所提的触发条件配置接口示意图;图7是应用本发明收集CRT接口的数据信号显示示意图;图8A是应用本发明捕捉串行线路数据的触发条件示意图;及图8B是应用本发明捕捉串行线路数据信号的波形显示示意图。
具体实施例方式
本发明提供一种数据信号的波形显示方法,用以将采集到的数据信号通过计算机显示器显示出来,图1是本发明的数据信号的波形显示方法的流程图,其步骤首先确定显示参数以及当前显示的数据起始位置(步骤101),显示参数包括显示器的当前分辨率以及用户设定的图形/数据显示比例等,然后根据显示参数确定可显示的数据总量(步骤102),根据数据起始位置从数据区读取一待显示数据(步骤103),再将该数据分离为8个数据通道的独立值(步骤104),例如一个byte为45H,分离为8位,从低位到高位依次为1,0,1,0,0,0,1,0,分别代表channel0,channel1,....channel7的数据,根据该显示参数将每个通道的数据转换为数字波形(步骤105),当达到可显示的数据总量时停止显示(步骤106)。
对于显示图形的展开与压缩,实际上就是每像素代表多少数据量的问题,因为计算机屏幕宽度一般是1024像素,故需确定多少个像素对应多少个数据。比如图形/数据的比例为1∶2,则每像素代表2个数据,若数据总量为32k byte,则为了显示这些数据需要32*1024/2=16*1024个像素的宽度。如图形/数据的比例改为1∶4,则只需32*1024/4=8*1024个像素的宽度。相反的情况,如图形/数据的比例为2∶1,即两个像素表示一个数据,则这时这两个像素代表的数据肯定是相同的,也就是要重复显示若干次相同的数据。
这些待显示数据可以是事先已经存储在硬盘中的数据,也可以是在应用程序的数据存储区的数据,或者是通过数据采集程序实时采集到的数据,例如,本发明还可以包括一数据采集过程,图2给出了一种数据信号的采集方法的流程图,其步骤为将待测硬件与计算机通讯端口相连(步骤201),设置数据采集量与采集触发条件(步骤202),根据数据采集量从内核分配相应数量的内存空间(步骤203),屏蔽操作系统的多线程切换功能(步骤204),根据采集触发条件连续从通讯端口读入待测硬件数据(步骤205),将采集到的数据存入内核分配的内存空间直至存满(步骤206);恢复操作系统的多线程切换功能(步骤207),将采集到的数据从内核分配的内存空间转存入数据存储区(步骤208),释放该内核分配的内存空间(步骤209)。
其中该屏蔽/恢复操作系统的多线程切换功能的步骤,是通过关闭/重启系统中断来实现的。所述内核分配的内存空间为不可交换的内存空间。
本发明进而提供一种数据信号的波形显示系统,用以将采集到的数据信号通过计算机显示器显示出来,图3是这种数据信号波形显示系统的模块结构图,该系统包括参数收集模块301,总量计算模块302,数据读取模块303,数据分离模块304,数据显示模块305。
其中,参数收集模块301用以收集显示参数,总量计算模块302用以根据显示参数计算出可显示的数据总量,数据读取模块303用以从数据区读取待显示数据,数据分离模块304用以将该读取的待显示数据分离为8个数据通道的独立值,数据显示模块305用以将该每个通道的独立值转换为数字波形。
同样,如果需要采集数据时,本发明还包括一信号采集装置,图4是这种信号采集系统模块的结构图,它包括通讯端口接口装置401,屏蔽控制模块402,配置模块403,采集模块404,储存模块405。
其中,通讯端口接口装置401用于连接待测硬件并传输测试数据,屏蔽控制模块402用于屏蔽或恢复操作系统的多线程切换功能,配置模块403用于设置数据采集量以及采集触发条件,采集模块404用于根据采集触发条件采集数据,储存模块405用于储存由该采集模块采集到的数据。
对于类似Windows等的保护模式操作系统,还需要一暂存模块,用于临时储存采集到的数据并在该屏蔽恢复后将数据转存入该存储模块。
其中该通讯端口接口装置包括一信号传输线,一端连接于通讯端口的数据线与地线,另一端与待测硬件系统的相应信号端相连。
对于不同的通讯端口,其外部输入电压不同,因此,接口装置还可以包括一电压转换电路,用于匹配待测硬件的输出电压与通讯端口的外部输入电压。
下面举一具体实施例来说明本发明,在本实施例中,首先经过了数据采集过程,再对采集到的数据进行显示分析,但本发明并不限于此实施例,对于任何已经获得的数据,都可以应用本发明进行波形显示。
以并行端口为例,我们知道,计算机的并行端口除了连接打印机外,还可做一般的通讯端口使用,具有普通的I/O功能,这就提示我们,可以使用并行端口作为数据采集通道,充分利用PC机强大的运算控制能力实现数据采集功能。
图5是本发明所提的并行端口接口示意图,在本发明的并行端口实施例中,为实现数据采集功能而要制作的通讯端口接口装置,结构非常简单,利用一个普通的并行端口插头,9条细的硬芯线,分别焊接在并行端口接头的数据线和地线,然后将并行端口接头插在计算机的并行端口即可,使用时将地线与被测系统的地线接好,将其它信号线接在需要采集数据的信号端即可。
需要注意的是,并行端口的外部输入电平为TTL电平,范围是0~5V,如待测电路的电压高于此范围,必须增加电压转换电路,以免造成并行端口损坏。
一般情况下,计算机的并行端口有四种工作方式SPP模式(Standard Parallel Port)最普通的并行端口模式,用于控制并行端口打印机,可通过并行端口的控制端发出控制命令,通过状态端读取打印机状态,数据端为单向输出,用于向打印机输出数据。
EPP模式(Extended Parallel Port)此模式支持数据的高速(最高2Mb/s)双向传输,并可寻址多个(256)设备。
ECP模式(Enhanced Capability Port)与EPP模式类似,但增加了数据压缩,FIFO(高速缓存)等功能。
双向模式(Bidirectional,或称PS2模式)在此模式下,并行端口不仅能实现SPP下的功能,而且通过控制寄存器的bit5,可选择数据线工作于输入或输出模式bit5=0,表示输出,bit5=1,则表示输入。本发明可采用此模式。由于要采集外部信号,因此要求将并行端口置于输入状态,即bit5=1。
虽然并行端口的原理并不复杂,但如何在Windows环境下实现数据采集仍是问题。在DOS环境下读取并行端口状态并无困难,用C语言简单的import命令即可,但DOS下的用户接口很难做的友好,同时现在绝大多数PC是工作在Windows环境,因此必须解决Windows下并行端口数据读写的问题。
现在广泛使用的Windows系统按基本原理可分为两大类Windows 98系列和Windows 2000系列。前者包括Windows 95/98/ME,对底层操作采用VxD的方式;后者包括Windows NT/2000/XP,对底层操作则需采用WDM的技术实现。这两种技术在具体实现上是完全不同的,但他们的原理则是一样的。
Windows系统对硬件及I/O端口的保护是通过Intel x86系列CPU的保护模式机制实现的,要想获得对硬件通讯端口的操作权限,必须使程序运行于Ring0特权级。WDM(VxD)就是工作在Ring0级,在这种状态下,可以象在DOS中一样对系统执行任何操作,但特权级的切换需要消耗大量的CPU时间,严重影响端口数据的读取速度,造成数据丢失,为此,本发明需要一直工作在Ring0级,直到采集完全部数据。
另外,数据信号的采集特点在于将某个采集点的数字信号连续完整地纪录下来,以供用户分析,因此必须保证数据采集过程的连续性。然而Windows是一个多任务系统,即使对工作在Ring0级别的程序,也要遵守线程调度的机制。这就有可能发生这种情况程序正在从并行端口读取数据,却被系统将控制权切换到其它线程,显然这将造成数据丢失。而如何关闭系统的线程调度机制,并没有通用的技术手段来实现,但我们可以分析系统线程调度的基本原理,其显然是基于PC系统的时钟及中断系统,只要关闭系统中断,就可以屏蔽线程切换功能。
由上面的分析,我们知道在数据采集期间,本发明关闭了系统的中断以防止数据丢失,但这随之带来一个问题采集到的数据存放在那里呢?如果按照一般的编程方法,申请一块内存,则由于Windows系统虚拟内存的机制,申请到的内存不一定真的在RAM里,可能在交换文件中,这样在使用时必须进行读写硬盘的操作,但是系统的中断却已经被关闭了,硬盘中断无法响应,这样一来,显然系统将会崩溃。因此,我们必须使用Windows函数new(NonPagedPool)UCHAR[bufsize],即可分配到bufsize字节的RAM,而且保证不会被交换到硬盘上去。这样我们可以将采集到的数据存放在这个buffer里并且不会触发硬盘的操作。
在数据采集过程中,如果只是简单地记录并行端口的一切数据,那么数据就没有什么用了,因为无法控制采集的时机。因此用户必须可以在接口中设定数据采集的触发条件,只有当条件满足时才开始纪录数据,这样就可保证最终显示的是用户真正需要的数据。图6是触发条件的配置接口示意图,选择0表示低电平触发,选择1表示高电平触发,X表示任意电平触发。因此,如图中所示表示在通道0为低电平且通道1为高电平时,开始采集数据。
存储于存储区中的,或是经过采集到的数据为纯粹的数字信号,即0或1,因此这里不涉及信号的放大或缩小的问题,只需根据预先设定的显示比例将数据转换为数字波形即可。
由于一次采集到的数据量可能比较大,用户为了观察尽可能多的数据,希望对显示的波形进行缩放。图形/数据的比例大于1∶1的情况比较简单,只要对每一个数据,无论0或1,重复显示若干次相同的数据即可。但对于图形/数据小于1∶1的比例的情况则不能采取从原始数据中按比例抽取部分数据显示的方法。因为这样会造成显示波形的严重失真,误导用户作出错误的逻辑分析。例如对于1∶2的比例,假设有如下数据序列001101011000,如果按上面的错误方法,我们将会取序列中的1,3,5,7……位数据进行显示,则数据变为010010波形显示就会失真,因此在这种情况下仍应采取与图形/数据大于1∶1的比例相同的方法处理。
本发明可以应用于各种硬件系统的测试,例如,在有的项目开发过程中,需要准确地了解计算机CRT接口的输出信号,主要是行同步信号及场同步信号的具体波形及它们的时序关系,利用本发明就可以收集CRT接口的数据信号,然后再进行分析,图7是应用本发明收集CRT接口的数据信号显示示意图,其中,Channel0为行同步脉冲,Channel1为场同步脉冲。
再例如,单板机的串行通讯程序如发生错误,要找出原因是很麻烦的,因为既可能是串行端口设定的问题,又可能是线路断线,也可能是波特率不匹配,甚至串行设备损坏,这就需要收集串行设备的数据信号,观察线路上的信号波形,迅速确定故障原因。我们知道,串行端口线路平时的状态为高电平,发送数据时起始位用0表示,为了捕捉串行端口数据在线的有效数据,可以设定相应的捕捉触发条件,图8A是应用本发明捕捉串行线路数据的触发条件示意图,采用这种设定采集到的串行端口发送数据波形如图8B所示,结合串行端口通讯协议分析可知,该数据为0x55,0xaa。
应用本发明,可以将数据信号通过计算机显示器显示出来,而不用再依靠专用的信号分析设备,而从大大节约了成本,并且也容易使用,如果需要采集数据,采集数据的硬件成本也非常低廉,只需一个通讯端口接口,几根电缆线就可以进行数据采集,简单实用,充分考虑一般硬件开发中的需求,可满足大多数开发的需要,而且性能也是可靠的。
以上所述仅为本发明的较佳实施例,并非用来限定本发明的范围;各种根据本发明进行的等效变化与修饰均应涵盖于为发明的范围之内。
权利要求
1.一种数据信号的波形显示方法,用以将采集到的数据信号通过计算机显示器显示出来,该方法包括确定显示参数以及当前显示的数据起始位置;根据显示参数确定可显示的数据总量;根据数据起始位置从数据区读取一待显示数据;将该数据分离为8个数据通道的独立值;根据该显示参数将每个通道的数据转换为数字波形;及当达到该可显示的数据总量时停止显示。
2.如权利要求1所述的数据信号的波形显示方法,其特征在于所述的显示参数包括显示器的当前分辨率以及用户设定的图形/数据显示比例。
3.如权利要求1所述的数据信号的波形显示方法,其特征在于所述的从数据区读取一待显示数据的步骤,是从硬盘存储区读取。
4.如权利要求1所述的数据信号的波形显示方法,其特征在于所述的从数据区读取一待显示数据的步骤,是从应用程序的数据存储区读取。
5.如权利要求1所述的数据信号的波形显示方法,其特征在于该方法还包括一数据采集过程,包括将待测硬件与计算机通讯端口相连;设置数据采集量与采集触发条件;根据数据采集量从内核分配相应数量的内存空间;屏蔽操作系统的多线程切换功能;根据采集触发条件连续从通讯端口读入待测硬件数据;将采集到的数据存入内核分配的内存空间直至存满;恢复操作系统的多线程切换功能;将采集到的数据从内核分配的内存空间转存入数据存储区;及释放该内核分配的内存空间。
6.如权利要求5所述的数据信号的波形显示方法,其特征在于所述的屏蔽/恢复操作系统的多线程切换功能的步骤,是通过关闭/重启系统中断来实现的。
7.一种数据信号的波形显示系统,用以将采集到的数据信号通过计算机显示器显示出来,该系统包括参数收集模块,用以收集显示参数;总量计算模块,用以根据显示参数计算出可显示的数据总量;数据读取模块,用以从数据区读取待显示数据;数据分离模块,用以将该读取的待显示数据分离为8个数据通道的独立值;及数据显示模块,用以将该每个通道的独立值转换为数字波形。
8.如权利要求7所述的数据信号的波形显示系统,其特征在于所述的显示参数包括显示器的当前分辨率以及用户设定的图形/数据显示比例。
9.如权利要求7所述的数据信号的波形显示系统,其特征在于该系统还包括一信号采集装置,包括一通讯端口接口装置,用于连接待测硬件并传输测试数据;一屏蔽控制模块,用于屏蔽或恢复操作系统的多线程切换功能;一配置模块,用于设置数据采集量以及采集触发条件;一采集模块,用于根据采集触发条件采集数据;及一储存模块,用于储存由该采集模块采集到的数据。
10.如权利要求9所述的数据信号的波形显示系统,其特征在于所述的信号采集装置还包括一暂存模块,用于临时储存采集到的数据并在该屏蔽恢复后将数据转存入该存储模块。
11.如权利要求9所述的数据信号的波形显示系统,其特征在于所述的通讯端口接口装置包括一信号传输线,一端连接于通讯端口的数据线与地线,另一端与待测硬件系统的相应信号端相连。
12.如权利要求9所述的数据信号的波形显示系统,其特征在于所述的通讯端口接口装置还包括一电压转换电路,用于匹配待测硬件的输出电压与通讯端口的外部输入电压。
全文摘要
一种数据信号的波形显示系统及其方法,用以将采集到的数据信号通过计算机显示器显示出来,首先确定显示参数以及当前显示的数据起始位置,然后根据显示参数确定可显示的数据总量,根据数据起始位置从数据区读取一待显示数据,再将该数据分离为8个数据通道的独立值,根据该显示参数将每个通道的数据转换为数字波形,当达到可显示的数据总量时停止显示。
文档编号G06F3/14GK1577245SQ0313314
公开日2005年2月9日 申请日期2003年7月29日 优先权日2003年7月29日
发明者刘文涵, 宋建福, 张桐瑞 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1