数字示波器中的波形存储、录制与回放
扫描二维码
随时随地手机看文章
摘要:波形存储、录制与田放是数字示波器的重要功能。在此采用闪速存储器(FLASH Memory)存储重要的波形数据,方便用户事后调出观察、分析和对比。每段波形存储的长度固定,根据存储波形的序号、大小、起始地址等建立波形存储索引表,通过查询波形索引表可选择要回放的波形。还可以通过波影录制功能把信号波影录制到静态数据存储器(SDRAM)中,然后回放波形,寻找并观察自己需要的波形。通过直接存储(DMA)方式实现将显示缓冲区存储的波形搬移到波形录制的缓存中去,实现了数据的高速存储。在手持式示波表的研制过程中实现了此波录制和回放方法达到了预期的效果。
关键词:数字示波器;波形存储;波形录制;波形回放
0 引言
自然界的信号大多都是瞬时变化的一过性信号,采用示波器的触发功能可以捕获符合触发条件的信号,一些重要的信号需要存储并做进一步的观察和分析。早期的模拟示波器无法完成对波形的存储和回放,而现在的数字存储示波器都具有波形存储和回放功能。波形存储是将波形数据存储在闪速存储器(FLASHMemory)中,可以长时间保存数据,掉电之后数据不会丢失,方便用户存储一些重要的波形以便后期观察或对比。在观察一些瞬态信号时,用户来不及捕捉这样的信号,可以通过波形录制功能将信号存储在静态数据存储器(SDRAM)中,然后可回放信号波形,再仔细观察信号的特征。波形录制是一种连续存储波形的功能,即存储从开始录制波形的时刻起到结束时刻的每幅波形。利用波形录制与回放功能可以检测那些不易确定触发条件的瞬态信号。
根据波形存储的长度是否可变将波形存储分为固定波形数据长度存储方法和可变波形数据长度存储方法。固定波形数据长度存储方法比较简单,而且回放方便。示波器在使用过程中,正常触发模式和扫描模式所要存储的波形点数是不一样的。需要用可变存储长度方式存储波形数据。
本文只考虑存储示波器2个通道的各一组数据,给每个通道的正常触发模式和扫描模式各分出一个存储区。正常触发模式的数据长度与扫描模式的数据长度不同。根据存储波形的关键信息建立波形存储索引表,通过查询波形索引表选择要回放的波形。波形存储索引表存储在铁电存储器(FM24CL04)中,对铁电存储器可以进行快速读写,掉电之后数据可以保存10年。所述波形存储、录制和回放方法已经用于所研制的手持式示波表中,可方便地对所观察的信号进行记录和分析。达到了预期的效果。
1 方案设计
固定大小存储方法是一种简单的波形存储方法,可以完成波形和设置的基本存储要求,虽然正常触发和扫描模式下的波形点数不一样,但是每种模式下的波形点数是固定的,可以把2种模式下的波形分开存储。根据存储波形的序号、大小、起始地址等在铁电存储器(FM24CL04)中建立波形存储索引表,通过查询波形索引表可选择要回放的波形。由波形存储在铁电存储器中的逻辑位置计算出实际存储地址。比如存储10幅波形,FLASH就分出10个区(A,B,…,J),每个区的起始地址是一定的。而铁电存储器也分出10个位置(100,101,…,109)分别对应于FLASH的10个区,假设位置101存储B区的逻辑位置N,每一组波形的大小是固定的,设为M个字节,则当前的波形(起始位置设为ADDR_STAR)位置就是ADDR_STAR+M*(N-1)。
波形录制是把波形数据存储在SDRAM中,本设计中应用ADSP的DMA方式不通过CPU直接实现波形数据的高速传输,这样可以很大程度地节省CPU的资源,实现更加方便。
2 方案实现
2.1 波形FLASH存储与回放
采用固定大小存储方案实现波形FLASH存储与回放,通过单通道的波形存储来讨论。FLASH分出个区A1,A2分别给通道1的正常触发模式和扫描模式,铁电储存器一时也分出2个位置X1,X2与A,B2个区一一对应。逻辑位置N1表示第N1个波形的位置,波形大小即波形点数为K1或K2,起始地址AD-DR1,ADDR2表示A,B两个区的起始地址,波形地址就是本幅波形存储位置的首地址。波形存储地址示意表如表1所示。
[!--empirenews.page--]
对FLASH的操作主要有复位、写、读和擦除操作。其中写操作只能将FLASH的数据由1写为0,如果试图将0写为1就会出错。如果该区域已经写过就只能先擦除,而FLASH的擦除只能以块为单位,如果对FLASH频繁擦除会减少寿命,因此给A1,A2;2个区各分2个块。假设每1块可以存储10幅波形。当第1块存满10幅波形数据后,下一幅波形存储在第2块中,同时擦除第1块,注意必须是在开始写第2块之后才能擦除第1块,这样可以避免有效数据被擦除。当第2块数据写满之后重新写第1块,并擦除第2块,这样整体看来,存储20幅波形才会对一个块进行擦除,避免了频繁擦除FLASH的某些位置。波形存储流程示意图如图1所示。
存储1幅波形(例如通道1的正常触发时候的波形)的具体过程如下:
(1)A1区中包含2个块(a、b)可以存储该波形。确定每一个块最多可以存储波形数量(count),a块的起始地址ADDR_START;b块起始地址就是ADDR_START+0x08000,定义一个实际的存储地址FLASH_addr。
(2)从FM24LC02中读取该区中已存波形的逻辑位置N1,N1+1就是现在要存波形的逻辑位置。
如果N1≤count,数据存储在a中,地址是FLASH_addr=ADDR_START+(N1-1)K1。
如果N1=count+1,数据存储在b中,地址是FLASH_addr=ADDR_START+0x08000+(N1-count-1)K1,数据存储之后擦除a中的数据。
如果count+1<N1<2count,数据存储在b中,地址是FLASH_addr=ADDR_START+0x08000+(N1-count-1)K1。
如果N1=2count,数据存储在b中,地址是FLASH_addr=ADDR_START+0x08000+(N1-count-1)K1,存储之后,N1=0。下一幅波形存储在a中,然后擦除b中的数据。
(3)将逻辑位置N1存储在FM24CL04的X1的位置。
注意,DSP接收到采样数据后,需要根据时基通过软件再次抽点后的数据才是需要显示的波形数据。FLASH中存储的波形数据是软件抽点以前的数据,这样在调出波形数据以后可以根据用户的要求做相应处理。
调出FLASH中的波形只需要计算出该波形在FLASH中的位置就可以。根据触发模式从铁电存储器中的对应位置读出对应波形的逻辑位置N,根据N来计算数据的起始地址。如果N≤count,FLASH_addr=ADDR_START+(N-1)K,如果N>count,FLASH_addr=ADDR_START+(N-count-1)K,根据计算出的地址按照对应波形数据的大小读取数据。
存储与回放过程的重点在于对FLASH进行操作的程序,主要是对FLASH内部的命令寄存器按照一定的时序写入命令。
2.2 波形录制与回放
用户在使用示波器时,常常遇到一些瞬态信号,在还没有来得及捕捉之前信号已经消失,这样就需要波形录制与回放功能,将波形录制下来,事后再慢慢寻找并观察。波形录制是将波形数据存储在SDRAM中。本设计中最多可以录制100幅波形,并且是最近的100幅,如果已经录制满之后就会替换最先录制的波形数据,而每副波形数据大小为400个点,这样就需要分配出400×100大小的空间。本设计中使用ADSP BF531
的DMA方式,把显示缓存中的波形数据直接传送给波形录制的缓存,这样可以不经过CPU就实现了数据的高速存储,本设计中采用的是Memory到Memory之间的DMA方式。BF531中的具体配置如下:
以上是目的地址的DMA设置。注意数据源的DMA必须在目的地址的DMA使能之前使能。
每次波形显示之后启动DMA方式把波形数据存储到录制缓存中。录制满100幅波形之后就必须剔除最先录制的波形,定义一个波形数目wave_data,一个波形覆盖数目cover_data,cover_data在0~99之间循环变化。录制缓存的首地址为Luzhi_addr,每存储一幅波形wave_data加1。
如果wave_data<100,波形录制的地址为Luzhi_addr+400*wave_data。
如果wave_data=100,wave_data保持100不变,cover_data加1,波形录制的地址为Luzhi_addr+400*(cover_data-1)。cover_data在0~100之间循环。[!--empirenews.page--]
波形录制流程图如图2所示。
波形回放与录制相反,从录制缓存中调出波形数据放到显示缓存中显示波形。回放状态下不需要采集数据,直接将录制缓存中的波形显示出来。波形回放时,是从最先存进来的波形开始显示的,如果cover_data!=0,表明已经录制满100幅波形,并且有cover_data个波形被新的波形覆盖,所以回放的时候应该从luzhi_addr+400*cover_data的地址开始调出波形进行显示,依次往后调出数据进行显示,100幅波形循环调出。如果cover_data=0,表明没有波形被覆盖,从Luzhi_data的起始地址开始调出波形进行显示,wave_data个幅波形循环显示。回放的时候还要向用户显示波形的序号,注意,波形回放支持暂停。波形回放的流程图如图3所示。
3 结语
数字示波器中的波形存储、录制与回放为用户提供了多种回顾性操作方法,更好地满足了测量需要。本文采用FLASH存储正常触发模式和扫描模式的波形数据,在铁电存储器中存储波形的索引信息,方案设计保证了对FLASH存储器按块进行擦除。采用SDRAM录制难以捕获信号特征的瞬态信号。用户可以通过对波形的回放、拉伸和压缩,观察和寻找所关心的信号波形。本文所述的波形存储、录制与回放方法已经在项目手持示波表中得到了应用,到达了用户对数字式示波器波形存储功能的基本要求。