搜索
bottom↓
回复: 16

大数量ADC结果数组存放在单片机哪里比较合适?

[复制链接]

出340入0汤圆

发表于 2013-7-11 12:55:34 | 显示全部楼层 |阅读模式
本帖最后由 ajfan 于 2013-7-11 12:58 编辑

请教有经验的同学,目前用C8051F320驱动ADS7871(48K,14BIT ADC)做数据采集及IO控制,用串口送命令及取数据,

准备 让ADC采集500次或更多数量后结果依次在单片机内做暂存,所有采集完成后1次性通过串口送出,尝试按标准变量存放在RAM区,但容量超出范围,如果将数组放在flash区是否可行?(每次采集前需要先全部清零数组,然后将ADC结果依次存入flash内数组)

因为目前暂还不是太熟悉单片机内部USB FIFO操作,所以目前不考虑用该FIFO做数据暂存,请问下是否还有比较好的方式或对单片机操作可以做类似大容量的数据暂存?



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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出340入0汤圆

 楼主| 发表于 2013-7-11 15:19:55 | 显示全部楼层
本帖最后由 ajfan 于 2013-7-11 15:24 编辑

是不是放flash 区域不太现实?flash区域理论上应该是只读或通过命令小量修改,且如果频繁的读取擦写对寿命也有问题?
难道需要考虑外部FIFO?

出0入0汤圆

发表于 2013-7-11 15:27:35 | 显示全部楼层
换MCU
外扩RAM

出0入0汤圆

发表于 2013-7-11 15:33:56 | 显示全部楼层
用STM32了

出0入0汤圆

发表于 2013-7-11 15:55:56 | 显示全部楼层
FLASH是只读的。

出0入0汤圆

发表于 2013-7-11 15:56:36 | 显示全部楼层
zhugean 发表于 2013-7-11 15:27
换MCU
外扩RAM

+10086.


                 

出340入0汤圆

 楼主| 发表于 2013-7-11 16:01:42 | 显示全部楼层
看datasheet好像有XRAM外部数据存储区,这个是否可以用来做数据暂存啊?

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2013-7-11 16:08:38 | 显示全部楼层
你要把数据传给哪位大侠啊,还是大瞎啊

出340入0汤圆

 楼主| 发表于 2013-7-11 16:17:08 | 显示全部楼层
本帖最后由 ajfan 于 2013-7-11 16:43 编辑

楼上见笑,这就是大侠与大瞎的差异啊
即使XRAM外部数据存储区能用,1024字节,按int格式来存放数据(14位ADC),也就能放500多组,本意是让这个存储区域尽可能大点,采集完数据1次性将数组上传到PC,对上位机来讲一次性中断,开销会小一点(不做成采集1次,上传1次的方式),看样子只能用USB FIFO(也只有500多组数据)或外扩RAM,FIFO了。

对了,外扩RAM,FIFO芯片大家有了解的么?哪种型号比较常用?谢谢。

出0入0汤圆

发表于 2013-7-11 21:51:53 | 显示全部楼层
干嘛要500次,100次或者少一点   采集完了就发送出去  然后在接着采集。。。和你一次采集500次在弄出去   效率应该不会低太多。。

出340入0汤圆

 楼主| 发表于 2013-7-12 04:16:46 | 显示全部楼层
ADC采样率48KHZ,串口用9600,如果需要采集数量比较大的时候(如1000个数据),很容易出现串口在忙着送上一批数据,ADC在等待,出现采集空挡。

出340入0汤圆

 楼主| 发表于 2013-7-17 09:00:42 | 显示全部楼层
来顶一下,看看大侠们是否有做过类似的数据上传应用,怎么处理的。

出0入0汤圆

发表于 2013-7-17 09:06:11 | 显示全部楼层
ajfan 发表于 2013-7-12 04:16
ADC采样率48KHZ,串口用9600,如果需要采集数量比较大的时候(如1000个数据),很容易出现串口在忙着送上一 ...

串口传输和AD采集有冲突吗?这俩功能貌似都不占用CPU吧,仅在传输完一字节,或者AD采集完成,CPU去放入下一个字节,或者读取一下AD结果而已。

出0入93汤圆

发表于 2013-7-17 09:39:46 | 显示全部楼层
ajfan 发表于 2013-7-12 04:16
ADC采样率48KHZ,串口用9600,如果需要采集数量比较大的时候(如1000个数据),很容易出现串口在忙着送上一 ...

ADC采样率那么高,串口速率那么低,无论你怎么暂存,都会出现串口在忙着送上一批数据,ADC在等待,出现采集空挡。而且暂存的越多,等待的时间越长。
解决办法就是提高串口速率,或降低采样率,或忍受采集空挡。
最简单的办法,同步采样发送,每采样一次足够发送2个字节。你的上位机是PC?那他自己就有FIFO,而且操作系统可以调节缓冲区大小,默认是2048Byte还是多少,比起你的区区500次采样来说那是绰绰有余了。
真不明白你所谓的上位机是什么,为什么需要频繁中断?

出340入0汤圆

 楼主| 发表于 2013-7-17 09:45:25 | 显示全部楼层
本帖最后由 ajfan 于 2013-7-17 09:47 编辑

adc  采样率高,串口传输慢,担心来不急上传数据。
如需要连续采样1000个数据,如果采样一个传送一个,很有可能出现采样的1000个值是不连续的,因为串口传输时间长,导致ADC在等待。。。。。。

出340入0汤圆

 楼主| 发表于 2013-7-17 10:04:49 | 显示全部楼层
谢谢takashiki
上位机一般用labview编程,目前做的这个只是想学习NI的数采卡,他们的方案也是用C8051F320进行采样控制,但通过USB传输,因为相对传输数据快,不知道是否能做到采集,传输实时。
目前看如果用串口的话,好像是不能做到非常完美的实时,除非提高串口速度(但考虑到会增加485端口,所以也不可能无限制提速),否则肯定有采集空挡。

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-7-23 16:26

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

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