jimmylinxiaohai 发表于 2012-7-27 00:46:32

STM32和FPGA双向通信的实现

我刚刚接触FPGA现在老师要求我用STM和FPGA实现双向通信,目前的想法是通过接口和FPGA通信,在FPGA里面例化一个双口RAM,来作为STM32和FPGA读写的缓冲区,但是我不知道FPGA如何读写例化好的双端RAM,大家能不能帮忙提供个思路,我想很多人都对这块感兴趣吧,大家讨论下,方便的话加我QQ849816909

xivisi 发表于 2012-7-27 07:56:28

双向通信?仅这个功能的话 方法有很多啊,UART SPICAN FSMC甚至GPIO 等等

水哥 发表于 2012-7-27 09:17:38

我只用过ALTERA的片子,当用其双端口RAM的IP核设计的时候,你会发现工程文件夹里多出了四张图片,这些图片就是该双端口RAM的时序图,当初我主要就是根据这些图来设计的读写时序。上传一张让楼主看看。
楼主可以试一试。

苹果520 发表于 2012-7-27 09:21:33

学习,这个想法不错, 估计以后用得上!!

jimmylinxiaohai 发表于 2012-7-27 10:14:53

xivisi 发表于 2012-7-27 07:56 static/image/common/back.gif
双向通信?仅这个功能的话 方法有很多啊,UART SPICAN FSMC甚至GPIO 等等



谢谢你的回答哈。我针对昨晚的那个问题进一步想了一下,存在这些疑问,能不能请教你下。
你的QQ名叫行风吗,

jimmylinxiaohai 发表于 2012-7-27 10:16:22

水哥 发表于 2012-7-27 09:17 static/image/common/back.gif
我只用过ALTERA的片子,当用其双端口RAM的IP核设计的时候,你会发现工程文件夹里多出了四张图片,这些图片 ...



谢谢你的回答哈。我针对昨晚的那个问题进一步想了一下,存在这些疑问,能不能请教你下。

水哥 发表于 2012-7-27 13:24:03

jimmylinxiaohai 发表于 2012-7-27 10:16 static/image/common/back.gif
谢谢你的回答哈。我针对昨晚的那个问题进一步想了一下,存在这些疑问,能不能请教你下。
...

关于STM32单片机的FSMC总线我就不说了,因为我不会,刚刚接触到这个单片机。{:loveliness:}
data_a,data_b是数据输入端口,q_a,q_b是输出口,你看后缀的话应该知道哪两个是一组吧。那两个时钟线还真是搞不掉,双端口模式的RAM就是要有这两个时钟线,你看我前面发的时序图也能看出来,可能M4K单元本身的结构就是这样的。
地址线10根是对的啊,因为你数据线16根啊,一个地址单元数据长度为16,所以2^10*16=16384 bits。
推荐你看本书《AVR单片机与CPLD/FPGA综合应用入门》,挺薄的,没几块钱,里面谈到了关于单片机和FPGA之间数据交换的几种方法,UART,SPI,双口RAM等。
FPGA那边读写数据确实要用到状态机,至于怎么设计,还是看时序图呗,你FPGA水平比较低,这个没人能帮你,建议你练练。
这个两者通信的,感觉调试起来挺费劲的,FPGA这边应该要用上SIGNAL TAP辅助。

gyth_lx 发表于 2012-7-27 13:27:04

水哥 发表于 2012-7-27 09:17 static/image/common/back.gif
我只用过ALTERA的片子,当用其双端口RAM的IP核设计的时候,你会发现工程文件夹里多出了四张图片,这些图片 ...

嗷>.<难道说当初我做双口FIFO时也出现了四张图片但我没看到???{:cry:}

jimmylinxiaohai 发表于 2012-7-27 16:33:09

水哥 发表于 2012-7-27 13:24 static/image/common/back.gif
关于STM32单片机的FSMC总线我就不说了,因为我不会,刚刚接触到这个单片机。
data_a,data_ ...

那本书还不错哈,谢谢了。我再研究下

jimmylinxiaohai 发表于 2012-7-27 16:33:39

欢迎大家继续交流啊。

Nuker 发表于 2012-7-27 23:16:17

速度要求不是太高的话用I2C接口吧:
AN 494: GPIO Pin Expansion Using I2C Bus Interface in MAX II CPLDs
AN 494 Design Example

NJ8888 发表于 2012-7-28 14:26:49

本帖最后由 NJ8888 于 2012-7-28 14:30 编辑

我的看法,这个系统不好,也许你老师是为了考你。我认为,尽量减少MCU与FPGA之间的信息交互(弱耦合)好的办法是MCU发些带参数的信息给FPGA,FPGA自己处理完毕返回结果,这样减少信息交换引起的时间开销。我的系统是通过SPI+两个IO握手(主要是为了中断),MCU是SPI的主动方。MCU通过SPI发送命令给FPGA,数据处理完毕给MCU中断信号,然后MCU通过SPI读回。如果不用IO中断,那只好由MCU通过SPI轮询FPGA的状态了,所以多加IO提高效率

andyskyboy 发表于 2012-8-28 14:56:25

看了好多楼上的建议也学习了。。。

jjj 发表于 2012-10-11 17:36:45

mark!!!!!!!!!!!!!!!!!!!!!! stm32fpga

qg_zhu 发表于 2012-10-12 22:49:45

建议用SPI,线少,布线简单,速度也不错,把MISO复用中断,效果就更佳了

xts 发表于 2012-10-16 17:22:46

感觉12楼说的有道理,俩MCU本身的计算再加上通信,肯定会很延迟的还是做中断任务的好。

我惯的女人 发表于 2013-2-23 10:36:19

qg_zhu 发表于 2012-10-12 22:49 static/image/common/back.gif
建议用SPI,线少,布线简单,速度也不错,把MISO复用中断,效果就更佳了

LZ是不是在对32与FPGA通信时使用过SPI?刚刚接触32的SPI2天,这几天正想与FPGA使用SPI进行通信。麻烦楼主说说个人经验,请教了。

suxilong 发表于 2013-2-25 09:15:44

我惯的女人 发表于 2013-2-23 10:36 static/image/common/back.gif
LZ是不是在对32与FPGA通信时使用过SPI?刚刚接触32的SPI2天,这几天正想与FPGA使用SPI进行通信。麻烦楼主 ...

是a !!!l楼主 用spi 吧!!我最近用FPGA 控制SPI 的flash。。。。顺便可以向你学习学习如何与其他器件通讯~~~

叶子飞翔 发表于 2013-7-6 10:40:38

真是受益匪浅

youpeng 发表于 2013-7-14 14:38:44

讨论的精彩!学习

feitianhu 发表于 2013-8-23 11:47:27

用SPI吧 速度很快 也很简单

Fourier00 发表于 2013-8-25 14:57:52

这个要看你要求速度有多快吧

zlpvch 发表于 2013-8-26 00:44:25

spi确实不错的      

zlpvch 发表于 2013-8-26 00:44:50

我最近也在研究这个

xmu234 发表于 2014-1-7 22:25:47

怎么没后文了,期待

xmu234 发表于 2014-1-7 22:26:02

怎么没后文了,期待!

beyondme37 发表于 2014-1-16 00:15:34

我要用以太网使两者通信。。{:cry:}

biansf2001 发表于 2014-1-16 08:59:43

挖坟?多老的贴了
页: [1]
查看完整版本: STM32和FPGA双向通信的实现