请教如何提高采集效率

jiexici4915 2017-09-18 09:01:32
项目使用的芯片是stm32f103vct6,ADC使用外围芯片(ADS8320),现在是使用扫描模式切换采集16个通道,每个通道里面要采集4组数据。每组数据采集十几次取平均,但是由于通道太多,一轮下来的采集时间过长,原本是想找有没有内置16位的ADC的芯片,这样可以同时转换,看看能不能快一点,但是16位的内置芯片不多,有也只有几路16位的,请问还有没有什么方法可以提高采集的效率
...全文
290 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
王super 2017-09-25
  • 打赏
  • 举报
回复
换个滤波方式,十几次求平均太浪费时间。采十几个通道每次只采一次,在单片机这端做数字滤波。 推荐一个滤波方式(一阶线性滑动滤波): Data = 0.9 * Data + 0.1*NewData; NewData:采样值 Data :输出值 系数自己调,优劣自己分析。
zgl7903 2017-09-22
  • 打赏
  • 举报
回复
如果内存够大, 采用滑动平均的方法(记录所有采样值,当达到平均长度后,新加入一个采样点,丢弃最前面一个点), 这样当达到平均长度后,每一个采样点就可以出一个数据
tianxj001 2017-09-22
  • 打赏
  • 举报
回复
没有不增加成本,却可以到达快速群采样目的的手段,采用单通道多芯片同时采样,选择SPI+片选的芯片,通过片选,循环发送采集转换命令,如果芯片转换时间选择合适,那么就可以让转换在单片机发完循环控制信号的周期里面,完成所有通道的数据采集工作而不需要额外的等待,控制完成后,从头开始读转换数据,这样就可以看作只需要占用发转换命令和读转换结果的时间就获得转换数据。这样一个16通道的数据采集系统,需要的IO口是19条,而代价就是ADC转换器的成本是通道数*adc芯片单价。 整个系统是速度,看起来就像只需要转换-读-转换-读,最好选择那种带自动连续转换的ADC芯片,那么你就可以直接连续读就可以了,这样应该说是最快获得数据了。
Acuity. 2017-09-21
  • 打赏
  • 举报
回复
外度独立ADC无论是采样率、精度、准确度都要比处理器内部ADC要好;因此基本只能用独立ADC,解决办法是,读取采样数据到内存中,然后再进行处理;
dceacho 2017-09-21
  • 打赏
  • 举报
回复
如果内部主频已经到了最快,那就没办法了 还想快那就只能换双核带协处理器的片子了
C_Rabbit 2017-09-20
  • 打赏
  • 举报
回复
额,没有什么好办法 除非是,加成本,上采样速率高的专用AD芯片(高速AD芯片一般都比较贵)

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧