搜索
bottom↓
回复: 18

关于LA的存储深度,有疑惑请教版主

[复制链接]

出0入0汤圆

发表于 2009-11-2 09:40:45 | 显示全部楼层 |阅读模式
请问版主,如果使用两片SRAM,一片存完后发送数据到PC的时候另外一片继续接受采集数据。这样两片SRAM交替采集,可否这样一直无限制采集下去?
或者将SRAM换成DDR这样更好实现点? 换成DDR后采样频率会变差吗? 谢谢~

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2010-1-22 00:02:15 | 显示全部楼层
1. 从理论上说2块SRAM做乒乓操作是可行的,不过基于目前的设计,数据总线只有一条,也就是说当你抓数的时候是不能读数的。所以要先分配独立的IO给2个芯片使用,同时你要确保上位机拿数据够快,如果出现一块写满了,另一块还没有读完,那你让他怎么处理,不写,新的数据进不来就会丢数。写了以前存下来的数据会被复写一样丢数。
2. 之所以不用DDR是因为DDR的控制器挺复杂的,既要控制好刷新,又要管理好行列地址的复用关系,其复杂程度是这个简易逻辑分析仪的5倍不止。

如果上位机速度是足够的话,我建议使用双端口RAM或者是FIFO的存储器来代替SRAM,这样你就可以无限抓数了。

出0入0汤圆

发表于 2010-1-22 08:49:01 | 显示全部楼层
传输速度是不可能有这么快的,32通道×100MHz=400MByte/S,这相当于PCIE2.0 X1的理论速度了。。。而且如果是这样的话,PC处理这些海量数据也会束手无策

出0入0汤圆

发表于 2010-1-22 09:27:28 | 显示全部楼层
不能,如果这样能行的话,就不需要外扩RAM了,直接实时传输数据就行。瓶颈在USB传输速度

出0入0汤圆

发表于 2010-1-22 18:25:23 | 显示全部楼层
回复【2楼】
-----------------------------------------------------------------------
你说的是对的,不过现在基本采用的都是压缩的算法来实现的,参考我的blog
信号无变化时也就6103Bytes/Seconds的数据流量,我移植好的环境上可以抓
200+MB的采样数据,还是因为板卡上资源的限制。
-----------------------------------------------------------------------
下面描述采样数据的解析。通过阅读模块uDataHold.pas可以看的比较清楚。首先说明一个概念,就是代码里多次出现的一个变量FStateAnalysis,官方网站上在FPGA代码的地方有2个版本,一个是FStateAnalysis=true的版本,一个是false的。

False,就是不支持状态分析,这样32bits描述的是32个采样通道上的电平状态,其采样触发条件就是每个采样时钟的上跳沿。



True,支持状态分析(其实是一种简单有效的压缩算法),就是在低16bits上存放16个输入信号的电平状态,高16bits是一个计数值,描述的是此次采样和上次采样所经历的采样时钟的个数。其采样的触发条件有两个,每个成立都产生触发。

1.        当16个通道上的信号有一个或多个发生了变化。这时候把和上次采样点的时钟计数器的值以及变化前的电平状态记录下来。(例如这是一个下跳,那就记录1而不是0)

2.        当16bits的计数器发生了溢出前,当到0xffff的时候强制产生一次触发。



和flase的情况相比,虽然可使用的通道从32个变成了16个,但是他带来的数据压缩效率是相当可观了。例如我们使用100MHz的采样时钟,如果信号没有发生过任何变化,那么这个时候的码率(也叫idel sample rate)ISR = (100000000/2^16)*4Bytes/Second = 6103Bytes/Seconds


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jerryutscn/archive/2010/01/14/5191283.aspx

出0入0汤圆

发表于 2010-1-22 18:44:12 | 显示全部楼层
回复【3楼】roasn 冰封的心
-----------------------------------------------------------------------
的确是可以,在我的硬件环境上FPGA外围没有SRAM,我是用片内的资源构建了一个16KBytes的FIFO,经过测试在500KBytes/S下是不会丢数的,其实我用PowerPC取数据和用上位机取数是一个道理。

外扩RAM的目的是为了做缓存,应付突发传输,也就是burst。
其原因是我们的桌面系统都不是实时系统,即使是内核线程也是对CPU资源分时访问的。
例如Linux,时间片是10ms
见linux/include/asm-ppc/param.h
#ifndef HZ
#define HZ 100
#endif
也就是说当应用程序做一次系统调用再得到CPU资源那是10ms之后的事情了,比如说你测试下来从通道拿数的平均速率是20MBytes/S
但真正做搬运的时间就只有一点点。那么2次搬运之间的时间所产生的数据,就必须通过缓存在保存。

当然我说了这些都是针对双端口RAM或FIFO的结构的,如果像现在的设计这样只有1条总线,那就没什么好说的了。

另:USB 2.0协议上是480MBits/S,我记得CY的芯片里面是精简的高速51来做搬运的可能到不了多快,但是测量些低频的信号是足够了,
因为我们传输的数据是经过压缩的,见楼上。

出0入0汤圆

发表于 2010-1-24 08:41:31 | 显示全部楼层
500Kbyte/s当然不会丢数,问题是如果遇到高速变化的信号怎么办?

出0入0汤圆

发表于 2010-1-25 13:04:50 | 显示全部楼层
回复【6楼】roasn 冰封的心
-----------------------------------------------------------------------
那就不行了,例如有个持续的1MHz的时钟,那速率就不会小于4MBytes/Seconds
PowerPC处理能力有限,我启用了DMA可以到1.5MBytes/Seconds.在往上就不行了。

出0入0汤圆

发表于 2010-4-9 21:41:49 | 显示全部楼层
我记得CY的芯片里面是精简的高速51来做搬运的可能到不了多快,但是测量些低频的信号是足够了,
====>
谁说的, 用51去处理当然不行,要用GPIF去做! 我做的,单cy7c68013A ,不用任何缓冲芯片,连续实时采样可以到10M bytes /s ,比

你的powerpc dma强多了 !加了4kb的 FIFO ,可以做到24Mhz 实时连续采样!

其实cy7c68013A是usb high speed 中一个非常好的芯片!

出0入0汤圆

发表于 2010-4-9 22:02:24 | 显示全部楼层
既然传输瓶颈在与PC通讯,那就不应当拼命向PC送数,而是应当先缓存在外部(SDRAM)

出0入0汤圆

发表于 2010-4-9 22:17:46 | 显示全部楼层
楼主 您得知道 USB不是独享的 而且 不能保证100%可靠的。可能会有错误,所有必须加缓存,另外DRAM需要刷新 这时候是没法往里面些数据 必须要BUFFER

出0入0汤圆

发表于 2010-4-9 22:30:55 | 显示全部楼层
CY的USB速度是非常强悍的.

出0入0汤圆

发表于 2010-4-9 22:53:39 | 显示全部楼层
嘿嘿 楼上的牛人。。

出0入0汤圆

发表于 2010-4-9 23:36:23 | 显示全部楼层
回复【12楼】heqinlong
-----------------------------------------------------------------------

我是一坨屎,不是牛人。

出0入0汤圆

发表于 2010-4-10 15:48:46 | 显示全部楼层
回复【9楼】888888888888
既然传输瓶颈在与PC通讯,那就不应当拼命向PC送数,而是应当先缓存在外部(SDRAM)
-----------------------------------------------------------------------

24MB/s 就算是usb High speed的瓶颈吗?Cy的usb 跑这个速度是毛毛雨阿,如果pc处理不了这个数据,那干脆换了算了! 估计也是n年之前的配置

出0入0汤圆

发表于 2010-4-10 15:51:55 | 显示全部楼层
回复【10楼】heqinlong
楼主 您得知道 USB不是独享的 而且 不能保证100%可靠的。可能会有错误,所有必须加缓存,另外DRAM需要刷新 这时候是没法往里面些数据 必须要BUFFER

-----------------------------------------------------------------------

缓存是要成本的,而且你存下来再usb传出去,就不会错了吗?cy的68000系列芯片,做的ide硬盘盒是 业内的头名! 移动硬盘读写数据那么大,也没听说过总是出错的!

出0入0汤圆

发表于 2010-4-11 07:33:04 | 显示全部楼层
回复【14楼】zclcom79
回复【9楼】888888888888  
既然传输瓶颈在与PC通讯,那就不应当拼命向PC送数,而是应当先缓存在外部(SDRAM)
-----------------------------------------------------------------------
24MB/s 就算是usb High speed的瓶颈吗?Cy的usb 跑这个速度是毛毛雨阿,如果pc处理不了这个数据,那干脆换了算了! 估计也是n年之前的配置

-----------------------------------------------------------------------

其实不必要拼命向PC送,如果外部用128MSDRAM缓冲,你的分析仪128MB深度应当够用的。当然我知道你可能会有另一个疑问:如何实时显示,这个问题我暂时不想回答,因为较高高速采集(比如100MB/S,再高器件成本大幅度上升,这样速度,你不能说CY做事毛毛雨吧,嘿,我知道你简单用CY注定带宽上不去)不丢数据并实时送PC,目前还没有公开资料,所以我也不公开,要靠FPGA参与,简单说就是并行处理。

出0入0汤圆

发表于 2010-4-17 21:23:04 | 显示全部楼层
回复【16楼】888888888888
回复【14楼】zclcom79  
回复【9楼】888888888888   
既然传输瓶颈在与PC通讯,那就不应当拼命向PC送数,而是应当先缓存在外部(SDRAM)  
-----------------------------------------------------------------------  
24MB/s 就算是usb High speed的瓶颈吗?Cy的usb 跑这个速度是毛毛雨阿,如果pc处理不了这个数据,那干脆换了算了! 估计也是n年之前的配置  
-----------------------------------------------------------------------
其实不必要拼命向PC送,如果外部用128MSDRAM缓冲,你的分析仪128MB深度应当够用的。当然我知道你可能会有另一个疑问:如何实时显示,这个问题我暂时不想回答,因为......
-----------------------------------------------------------------------

用cy,本身就是一个usb high speed的通道,在和pc的通信协议中,兼顾速度和开发成本,usb 480Mbit/s是最有性价比的!单芯片cy当然不能实现很高采样率的实时传输,这谁都知道,usb 2.0速度就不可能达到100MB/s,现在的3.0 ,应该可以了。

平时工作,经常接触sdRAM 和DDR,这不神秘,你选了SDRAM,那么速度也就能在100M,因为,很多SDRAM的MCP工作频率就是100M的,当然有少数是133M的。还有一个问题,FPGA是可以控制SDRAM,或者DDR,但是器件成本和开发成本都上去了,这就是为什么很多商用分析仪都采用FPGA+SRAM架构的原因!

实时,说白了就是伪实时,加DPRAM 或 FIFO,采样和传输同时进行,方案很多,但是都是要增加成本的,中国的研发环境是,能一块钱搞定的,决不花一块零一分!当然了,自己玩玩的除外!

出0入0汤圆

发表于 2011-11-2 11:06:43 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-3 02:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表