yushiqian_2012 发表于 2014-3-4 13:59:25

8个SPI通信,FPGA可以胜任吗?

是这样的,之前做的一款传感器,使用AVR的芯片做主控芯片,连接相同的基于SPI通信的核心板,每个核心板控制采集三个不同的点,每个点采集速度为2ms,这样的话,顺序采集,一轮下来,需要48ms,时间有点长了,请问一下,有没有好的控制芯片,或是做在FPGA里面,做出8个SPI口,并行采集,这样的话,可以缩短为6ms。请问一下大侠们,这样做可行吗?

mengf 发表于 2014-3-4 14:03:15

只要FPGA的资源和I/O口,你做80个也能

zkf0100007 发表于 2014-3-4 14:05:42

小意思啦

yushiqian_2012 发表于 2014-3-4 14:09:32

zkf0100007 发表于 2014-3-4 14:05
小意思啦

主要是之前没有做过FPGA方面的东西,能不能推荐一款芯片,价钱不要太贵,相对来说好开发的

yushiqian_2012 发表于 2014-3-4 14:10:50

zkf0100007 发表于 2014-3-4 14:05
小意思啦

或是推荐一款开发板

浮华一生 发表于 2014-3-4 14:52:20

Actel 的   A3P060 应该OK

gwnpeter 发表于 2014-3-4 15:15:01

没有问题,我的一个设备上就是这样处理的。要轮询8个spi设备,sck速度太高了。所以加了fpga,并行spi了

mkliop 发表于 2014-3-4 15:52:35

做硬件SPI然后把数据集中到一起吗

yushiqian_2012 发表于 2014-3-4 17:16:18

mkliop 发表于 2014-3-4 15:52
做硬件SPI然后把数据集中到一起吗

是啊,就是这个意思

honeybear 发表于 2014-3-4 17:45:16

FPGA擅长做这个了

y595906642 发表于 2014-3-4 18:01:31

FPGA完全没有问题
不过你采集一个点需要2ms那是多大的数据量啊?
SPI速度还是挺快的。
完全可以在其中一个设备干活的时候,
跟下一个设备通信。

yushiqian_2012 发表于 2014-3-4 18:06:53

y595906642 发表于 2014-3-4 18:01
FPGA完全没有问题
不过你采集一个点需要2ms那是多大的数据量啊?
SPI速度还是挺快的。


不是,主要是那些采集点需要2ms才能返回数据,数据就2个字节的

zkf0100007 发表于 2014-3-4 18:19:18

yushiqian_2012 发表于 2014-3-4 14:09 主要是之前没有做过FPGA方面的东西,能不能推荐一款芯片,价钱不要太贵,相对来说好开发的 ...

spartan 6系列

y595906642 发表于 2014-3-4 18:22:05

yushiqian_2012 发表于 2014-3-4 18:06
不是,主要是那些采集点需要2ms才能返回数据,数据就2个字节的

主机呼叫节点一 开始工作,
主机呼叫节点二 开始工作,
.
.
.
主机呼叫节点八 开始工作,

节点一告诉主机我干完了,主机读数据
节点二告诉主机我干完了,主机读数据
.
.
.
节点八告诉主机我干完了,主机读数据
以上循环....

一个大周期也就3ms吧

偏偏倒倒 发表于 2014-3-4 18:40:25

找最便宜的FPGA就足以胜任了。

myxiaonia 发表于 2014-3-4 18:54:37

y595906642 发表于 2014-3-4 18:22
主机呼叫节点一 开始工作,
主机呼叫节点二 开始工作,
.


确实,软件的问题比较大

蓝色风暴@FPGA 发表于 2014-3-4 19:14:26

小意思、FPGA玩的就是并行、高速、大量的数据处理

ndk 发表于 2014-3-4 19:29:47

10元的epm240应该就够了

yirenonege 发表于 2014-3-4 19:32:53

每间隔 2ms/48 的时间点上,发送读取第(n)个传感器的命令然后,读取(n+1)传感器的值,(n为48时,读取第一个),开个定时器,流水起来基本就是2ms一个周期。占用的CPU时间远不到2ms。。。

yushiqian_2012 发表于 2014-3-6 08:46:21

y595906642 发表于 2014-3-4 18:22
主机呼叫节点一 开始工作,
主机呼叫节点二 开始工作,
.


我先试一试啊

yushiqian_2012 发表于 2014-3-6 08:54:50

y595906642 发表于 2014-3-4 18:22
主机呼叫节点一 开始工作,
主机呼叫节点二 开始工作,
.


但是有可能在给从机3发送数据的时候,从机1已经读完了,这可怎么办?因为数据现在已经进来了,岂不是乱了吗?

y595906642 发表于 2014-3-6 09:46:34

yushiqian_2012 发表于 2014-3-6 08:54
但是有可能在给从机3发送数据的时候,从机1已经读完了,这可怎么办?因为数据现在已经进来了,岂不是乱了 ...

每间隔 2ms/48 的时间点上,发送读取第(n)个传感器的命令然后,读取(n+1)传感器的值,(n为48时,读取第一个),开个定时器,流水起来基本就是2ms一个周期。占用的CPU时间远不到2ms。。。

他这个方法比我说的要清楚
你是主机 你想什么时候读数据就什么时候读, 从机数据采完了就让他等着。
总的来说就是 采样时间是2ms没错,
但是采样的时候SPI是空闲的,这段时间里面你想和别的从机通讯也好,还是主机干自己的活也好,都可以。
只有控制从机和读数据的时候占用SPI。

yushiqian_2012 发表于 2014-3-6 10:11:37

y595906642 发表于 2014-3-6 09:46
每间隔 2ms/48 的时间点上,发送读取第(n)个传感器的命令然后,读取(n+1)传感器的值,(n为48时,读 ...

哦,我大概明白了,今天试一下。多谢!

skyxjh 发表于 2014-3-15 10:26:56

软件的问题,根本用不着上FPGA

reynold007 发表于 2014-3-18 08:55:16

加个缓冲,单片几就搞定了,大不了上dsp

mcu_mouse 发表于 2014-3-18 09:00:19

我也这么做过,ARM的并行数据口接到FPGA,再分了8个SPI来控制8个器件

shockstar 发表于 2014-3-18 09:07:49

用cpld实现8通道4ms采样的飘过

steven0419 发表于 2014-12-8 16:18:53

找最便宜的FPGA就足以胜任了。

Ray______ 发表于 2014-12-10 01:37:01

轻而易举,不费力,就像51跑马灯

GunGun 发表于 2014-12-10 20:52:09

mengf 发表于 2014-3-4 14:03
只要FPGA的资源和I/O口,你做80个也能

正确。{:smile:}
页: [1]
查看完整版本: 8个SPI通信,FPGA可以胜任吗?