射天狼 发表于 2019-5-28 16:24:02

两个STM32F4实现高速数据采集并发送方案,各位看看可行性

本帖最后由 射天狼 于 2019-5-28 16:48 编辑

如图,高速AD   范围200k~1M采样率

ESP8266无线用于≤200K以下采样率传输FT232H或DP83848以太网 用于200k-1M采样率传输
主控1:主控1采集数据 给AL422 满1024字节(也可以更多)给主控2一个中断信号

主控2:收到主控1的中断信号 读取AL422 打包发送
串口用于之间命令传输比如设置包大小 选择什么方式传输···等


之所以不用一个单片机 个人认为 一个完成不了F7也一样
因为像以太网或者ESP8266 、USB也一样 都是以包形式发送包越大 速度越快 效率越高
而以太网发送一个包 是需要时间的这个时间内 AD采集会停止无法实时传输

FT232H这个应该是可以完成的 他的FT245模式很猛


其他都还好,就那个AL422用法心里没底

不知道AL422那个FIFO用的对不对 能不能这样用




stm32_xiaocai 发表于 2019-5-28 16:42:49

做复杂了吧,F4速度不够上F7,还不够上I.MX RT,你这个方案做起来就复杂了。

zhucezhuanyong 发表于 2019-5-28 17:34:25

为什么以太网、USB发一包数据时AD采样会停?如果发数据时AD会停,只能说明设计有问题

1a2b3c 发表于 2019-5-28 18:32:46

ad采用dma模式,两边缓冲区来回切,测试下网络打包需要的时间,说不定选择一定的ad采集数量后还刚好可以

chishangpiao 发表于 2019-5-28 21:53:18

见有人用F4的IO驱动80M的ADC

zkmcu 发表于 2019-5-28 22:07:06

合格的4楼,DMA双缓存或半中断,1M的采样率用1K缓存,网络带宽上M的,传2k字节很轻松

rmdyj 发表于 2019-5-28 22:10:28

chishangpiao 发表于 2019-5-28 21:53
见有人用F4的IO驱动80M的ADC

你说是某宝上那个用IPOD外壳做的示波器吗?

chishangpiao 发表于 2019-5-28 22:30:30

rmdyj 发表于 2019-5-28 22:10
你说是某宝上那个用IPOD外壳做的示波器吗?

不是的,不方便透露,确实是IO直接驱动的,应该是用来DMA对IO操作

射天狼 发表于 2019-5-29 10:48:00

zhucezhuanyong 发表于 2019-5-28 17:34
为什么以太网、USB发一包数据时AD采样会停?如果发数据时AD会停,只能说明设计有问题 ...

这是以前做的一个采集电路AD7175用的以太网UDP传输 双缓冲方式 25k采样率稳稳的40k和50k就乱套了 波形就失真了

测试了一下

以太网这段函数执行这些需要的时间用串口传回超过了25us不知道这么测试对不对







arndei 发表于 2019-5-29 11:32:49

真浪费资源,1M采样率算不上高速,1个F4就OK,甚至一个F1都足够了

ZXF_CUG 发表于 2019-5-29 11:40:24

方案设计有问题~DMA双缓冲完全可以搞定

zqf441775525 发表于 2019-5-29 11:49:54

这个很明显是用ADC+DMA+乒乓缓冲的节奏。
我用AD7606做到了2路100Ksps,TCP传输。
用的103.

bolizhicheng204 发表于 2019-5-29 11:53:57

zqf441775525 发表于 2019-5-29 11:49
这个很明显是用ADC+DMA+乒乓缓冲的节奏。
我用AD7606做到了2路100Ksps,TCP传输。
用的103. ...

怎么缓冲?FIFO?

zqf441775525 发表于 2019-5-29 12:20:31

bolizhicheng204 发表于 2019-5-29 11:53
怎么缓冲?FIFO?

不用FIFO,直接乒乓操作。
AD7606是用的SPI接口,如果用FSMC,速度会更快。也可以使用更多通道。

huangqi412 发表于 2019-5-29 13:17:48

串口16位采样10m则160mad1m采样8位则直接能dma匹配

wenming 发表于 2019-5-29 16:20:06

STM32MP157这样的处理器就是为你这样的应用准备的。可以配1GB 内存,做缓冲。
内置的协处理器来处理与ADC的接口,千兆以太网连上位机,而且EMMC与SD卡接口可以同时存储。

主楼一区401 发表于 2019-5-30 10:33:41

1a2b3c 发表于 2019-5-28 18:32
ad采用dma模式,两边缓冲区来回切,测试下网络打包需要的时间,说不定选择一定的ad采集数量后还刚好可以 ...

您说的是乒乓操作吗?乒乓操作可以看做2级fifo吧,个人感觉弄一个二维数组当循环fifo是不是也可以啊?

主楼一区401 发表于 2019-5-30 10:37:13

wenming 发表于 2019-5-29 16:20
STM32MP157这样的处理器就是为你这样的应用准备的。可以配1GB 内存,做缓冲。
内置的协处理器来处理与ADC的 ...

您说的√,之前STM32MP157也想做类似的事情。不过内部的M4核不知道可以接并行ADC不,用SPI总感觉不太好

1a2b3c 发表于 2019-5-30 19:14:21

主楼一区401 发表于 2019-5-30 10:33
您说的是乒乓操作吗?乒乓操作可以看做2级fifo吧,个人感觉弄一个二维数组当循环fifo是不是也可以啊? ...

看芯片手册,DMA部分有自动乒乓操作,手工去整数组咋行,切换的时候你能保证你的切换操作可以在adc采集一次前完成?

fghfguytu 发表于 2019-5-30 20:11:38

方案太复杂了

主楼一区401 发表于 2019-5-30 22:22:58

1a2b3c 发表于 2019-5-30 19:14
看芯片手册,DMA部分有自动乒乓操作,手工去整数组咋行,切换的时候你能保证你的切换操作可以在adc采集一 ...

今天看手册了,谢谢提示

日日♂夜夜 发表于 2019-5-31 14:11:35

这个太复杂了 这个你标的问题都是程序设计的问题
应该把采集 数据处理 数据输出三个部分分开
采集用 DMA双缓冲 或者 半中断
dma中断来触发数据处理
处理完丢到输出缓冲 等待通讯带走数据
要是不触发cpu数据处理瓶颈的话 这个F1足以应对

stm32_xiaocai 发表于 2019-5-31 14:29:02

主楼一区401 发表于 2019-5-30 10:33
您说的是乒乓操作吗?乒乓操作可以看做2级fifo吧,个人感觉弄一个二维数组当循环fifo是不是也可以啊? ...

STM32的DMA有传输过半中断,这个配合DMA循环模式可以实现类似双缓冲

angler12 发表于 2019-5-31 15:29:21

上F4和FPGA吧

think_a_second 发表于 2019-5-31 16:22:29

射天狼 发表于 2019-5-29 10:48
这是以前做的一个采集电路AD7175用的以太网UDP传输 双缓冲方式 25k采样率稳稳的40k和50k就乱套了 波 ...

1. ADC 采用DMA 双缓冲,中断优先级高。无论以太网端干什么,都能实时采集。
2. 你说的波形失真?哪里的波形?上位机显示么?以太网给上位机不需要实时的,可以缓冲再发送
3. 不需要2片F4那么复杂

射天狼 发表于 2019-5-31 16:43:45

think_a_second 发表于 2019-5-31 16:22
1. ADC 采用DMA 双缓冲,中断优先级高。无论以太网端干什么,都能实时采集。
2. 你说的波形失真?哪里的 ...

嗯因为这个没用SPI+DMA+TIMPWM那个方式所以不太行
按照这个帖子大神方法试了试200k采样 超级好用 速度到1M应该没问题不过局限性就是必须16位或以下我需要的精度高点都是18位或者24位ADC
https://www.amobbs.com/thread-5630455-1-1.html?_dsign=c067ad21

think_a_second 发表于 2019-5-31 19:13:20

射天狼 发表于 2019-5-31 16:43
嗯因为这个没用SPI+DMA+TIMPWM那个方式所以不太行
按照这个帖子大神方法试了试200k采样 超级好用 速 ...

STM32的SPI 最大16位位宽。大于16位位宽是实现不了。可以尝试STM32 F4的串行音频接口SAI, SAI是比SPI多了一个帧同步信号,原理大致一样。它可以设置8位、10位、16位、20位、24位、32位。使用2个子模块同步,FS脚不用,只用主模块的时钟脚和2个模块数据脚。

ZEY123 发表于 2023-11-1 09:41:19

zqf441775525 发表于 2019-5-29 12:20
不用FIFO,直接乒乓操作。
AD7606是用的SPI接口,如果用FSMC,速度会更快。也可以使用更多通道。 ...
(引用自14楼)

哥,怎么样才可以联系你呀,最近在做AD7606的,想数据通过udp上传,可是不太会想请教一下。
页: [1]
查看完整版本: 两个STM32F4实现高速数据采集并发送方案,各位看看可行性