cicnx 发表于 2010-8-26 11:28:40

FPGA与单片机上位机用哪种通讯方式速度最快?

下位机FPGA CII EP2C8, 跑Nios II 上位机用 STM32 或 AVR32 ,上位机要传大量数据到下位机。
不是连续传输,只是在加载数据的时候传一次。
如果用 USART 方式速度应该快不了。 当然也不能用并行总线了(远程通讯 50cm - 100cm左右距离)
传输数据量一般是 1MByte - 5MByte左右, 所以算比较大。USART在115200下花太多时间,用户会感觉
到明显很慢。
不知道还有什么方式简单又可以提高这个通讯速度的呢?

gzhuli 发表于 2010-8-26 11:36:53

不用总线只能用SPI了,STM32最快18Mbps,AVR32最快60/66Mbps。

capron 发表于 2010-8-26 11:41:04

用SPI,也省IO。
最好把SPI总线加驱动变成5V,如用74等芯片。让SPI工作于这个速度上以及这个距离,不成问题。

cicnx 发表于 2010-8-26 11:41:35

SPI可以多远距离?

cicnx 发表于 2010-8-26 11:43:12

还有要双向上位机可以读下位机的数据。
下位机到上位机的数据量比较少,只是一些状态。

capron 发表于 2010-8-26 11:49:39

再远没试过,公司里同事试过100米正常工作,且是双向通讯。

你是上电交换一下数据,如果速度放慢点,如在3秒内完成所有数据量,那SPI的速度可以下调,更可靠点,也就更远些。

lg2911 发表于 2010-8-26 11:54:35

长距离传输时,SPI这种串行传输比并行传输更可靠,可以用更高的速度

SPI有同步时钟,比UART好,节省了同步位,唯一的缺点就是比UART多用一根时钟线

楼上说的100米传输,线上的电容太大,会严重影响速度,用示波器看,振铃信号会很大,最后不得不降低速度

1米以内,地线解决好,高速SPI应该没问题

capron 发表于 2010-8-26 12:50:08

显然,如果SPI须要更远,更可靠,那每条线都用双绞差分驱动传输,是最好的办法。

cicnx 发表于 2010-8-26 13:46:21

我只是在重载的时候传一下数据过去。 大部份时间是上位机回传状态。
如果能在2,3少传完还不算太慢。 应该可以接受。

是不是上位机做主机,下位机做从机比较合适?

luzhengmao 发表于 2010-8-26 14:02:22

以太网

p.nicholas 发表于 2010-8-26 14:05:52

回复【1楼】gzhuli咕唧霖
不用总线只能用spi了,stm32最快18mbps,avr32最快60/66mbps。
-----------------------------------------------------------------------

纯通信速度有这么快,但是SPI的通信开销很大

cicnx 发表于 2010-8-26 14:18:45

以太网 就复杂了。。 还要跑IP栈
且外围要加很多。

不知道Nios的 SPI性能怎么样? 能不能跟上

eworker 发表于 2010-8-26 14:29:14

FIFO

gzhuli 发表于 2010-8-26 15:21:13

回复【10楼】p.nicholas
回复【1楼】gzhuli咕唧霖
不用总线只能用spi了,stm32最快18mbps,avr32最快60/66mbps。
-----------------------------------------------------------------------
纯通信速度有这么快,但是spi的通信开销很大
-----------------------------------------------------------------------

SPI通信会有什么开销?

cicnx 发表于 2010-8-26 15:25:28

回复【12楼】eworker
fifo
-----------------------------------------------------------------------

fifo又怎么样使用呢?

p.nicholas 发表于 2010-8-26 16:45:02

回复【13楼】gzhuli咕唧霖
回复【10楼】p.nicholas
回复【1楼】gzhuli咕唧霖
不用总线只能用spi了,stm32最快18mbps,avr32最快60/66mbps。
-----------------------------------------------------------------------
纯通信速度有这么快,但是spi的通信开销很大
-----------------------------------------------------------------------
spi通信会有什么开销?
-----------------------------------------------------------------------

XD可以测试一下,如果单次通信是一个字节,发送1W个字节到FPGA,总共消耗多少时间,SPI时钟以16M为例。

gzhuli 发表于 2010-8-26 16:57:34

回复【15楼】p.nicholas
-----------------------------------------------------------------------

谁让你单次一个字节了?LZ要一次性传1MB-5MB数据,你一次一个字节传去? -_-!

p.nicholas 发表于 2010-8-26 17:00:43

回复【16楼】gzhuli咕唧霖
回复【15楼】p.nicholas
-----------------------------------------------------------------------
谁让你单次一个字节了?lz要一次性传1mb-5mb数据,你一次一个字节传去? -_-!
-----------------------------------------------------------------------

你想一次传5MB?

gzhuli 发表于 2010-8-26 17:02:57

有问题么?

p.nicholas 发表于 2010-8-26 17:15:46

回复【18楼】gzhuli咕唧霖
有问题么?
-----------------------------------------------------------------------

没问题,我只能深深的感叹好牛的单片机啊,一次能传5MB数据

gzhuli 发表于 2010-8-26 17:26:45

如果AVR32UC3A0外挂32MB SDRAM,能不能一次传5MB数据呢你说?

p.nicholas 发表于 2010-8-26 17:28:37

那NIOS要不要也外挂一块

gzhuli 发表于 2010-8-26 17:33:06

如果LZ的NIOS吃不了5MB数据LZ会问这个问题?
你再读读LZ的说明:“只是在加载数据的时候传一次”,“传输数据量一般是 1MByte - 5MByte左右”。

cicnx 发表于 2010-8-26 17:56:17

Nios有外挂SDRAM >8MByte
谢谢这么多高手支招! 准备做些实验,打算用 AVR32 做上位机。

再问:如果用把SPI变差分信号传,有没有专用的芯片?

h2feo4 发表于 2010-8-26 18:21:36

SN65LVDT14
SN65LVDT41
很适合SPI
可以考虑用网线传输

capron 发表于 2010-8-26 18:34:43

h2feo4 无机酸 提到的都非常好。另外,LZ使用普通常用的RS485双绞传输也可。

gzhuli 发表于 2010-8-26 18:58:35

远距离传输最好封包加CRC并使用确认应答机制,否则不知道会发生什么奇怪的事情……

cicnx 发表于 2010-8-26 19:17:18

回复【26楼】gzhuli咕唧霖
远距离传输最好封包加crc并使用确认应答机制,否则不知道会发生什么奇怪的事情……
-----------------------------------------------------------------------

封包大小为多少合适? 给个经验值。。

gzhuli 发表于 2010-8-26 21:12:47

0.5~4K,根据实际情况定,包越大封包开销越小,速率越接近理论值,但如果出错率高的话速率损失也越严重。

cicnx 发表于 2010-8-26 21:14:19

回复【28楼】gzhuli 咕唧霖
-----------------------------------------------------------------------

谢谢!
页: [1]
查看完整版本: FPGA与单片机上位机用哪种通讯方式速度最快?