新手求助,如何实现ARM与DSP+FPGA通信
系统的结构如下:
电气设备连接一块DSP的板子,由该DSP板上的ADC从设备上取数据并做AD转换,然后通过DSP板上FPGA控制的Ethernet接口与ARM板上的Ethernet接口连接,向ARM板发送数据并从ARM板接收指令消息。
以太网口由DM9000A芯片控制,FPGA(cyclone II)与DM9000A连接。
我需要完成的工作是:
1. 在FPGA上编程使以太网口可以正常工作
2. 在DSP上写驱动使DSP可以跟FPGA通信,从而正常的通过网口收发数据
我现在可以说对FPGA和DSP一窍不通,想请教有经验的朋友,以我的程度,完成这项工作最少需要多长时间?如果可能的话,可否给点建议,从哪里入手,应该学习哪些方面的东西,以及这项工作可以分成几个部分做,在下感激不尽!
这个很麻烦,如果你手头上所有的硬件设备都准备好的话,至少需要半年到一年的时间左右。如果系统都没有的话,一个门外汉,两年时间都可能要。
首先,FGPA的编程需要学习以下:
1. verilog HDL编程,最少要从初级学习到中级。能够独立的写出以太网控制器和数据收发器。同时还要写和DSP通信的接口(当然,也可以SOPC)。对于新手来说,还蛮耗费时间的。
2. Altera的Quartus工具的使用,这个找本书,按照例子来搞倒还好。但是真正设计中遇到问题需要调试,那就是时间堆出来的。
2. DSP方面的编程,这一点,因为你本来就是做软件,应该不太难。我本身做硬件的,对这一块也不好评估。
多谢小编~
我这几天也在自己学习,现在发现我们这个板子,FGPA部分跟ALTERL的DE2开发板一样,都是Cyclone II连接DM9000来控制以太网口,我们的板子上FPGA-DSP跟DE2上的管脚连接完全一样,网上DE2的fpga代码能找到,我想先把这部分代码放到我的板子上看看行不行
如果可行,下一步再考虑DSP跟FPGA的接口,DSP跟FPGA用EMIF标准接口,我想实现起来应该也不会太难,应该也有一些示例代码可以借鉴
我也看了一些VHDL的资料,如果从头学起是要花相当多的时间,有现成代码就用这个代码当例子边用边学了
根据你的描述,通信方式大概如上图所示
但是有一点你没有说清楚:DSP到底有什么作用?AD芯片的输出到底是DSP采集还是FPGA采集?FPGA与DSP芯片又是怎样的关系?
你说打算用EMIF接口来实现FPGA与DSP的通信,这是有问题的。DSP的EMIF接口是用来与外部储存设备进行的通信接口,比如DDR2,如果你用这个接口,完全是没有理解这个接口的意义。一般DSP与FPGA的接口通信有SPI,uart,UPP,以及一个并行接口(具体的忘记了),根据通信速率选择适当的接口。
从你的通信来看,DSP的程序编写不是问题(如果你只是用于数据储存或者传输,而不是复杂的算法计算),问题主要在FPGA如何控制以太网芯片上,你在这方面可能下的功夫更大些。
-
你好,多谢回复!
AD芯片是和DSP连接的,然后DSP和FPGA连接,FPGA和DM9000连接,DM9000和以太网口连接
板子设计是有点奇怪的地方,不过是别人定制的我也只能这样做
DSP和FPGA设计的确实是使用EMIF接口,我查了一下网上,好像也有这么做的,我现在还在找这方面的资料
如您所说,现在DSP确实不做什么工作,需要写的应该就是一个EMIF接口的驱动程序,以及DSP跟AD芯片的接口驱动程序
FPGA方面,我在上面一个贴里提到,ALTERA公司的开发板DE2上面,FGPA-DM9000-以太网口的管脚连接方法跟我们这块板子完全一样,我想把这部分code直接烧到我们的板子上去,看看能不能工作,不过现在还没有做哪怕你有code,以你的基础,debug都会郁闷死你。
先不说别的了,就算硬件平台已经搭好,就是给FPGA和DSP写点代码,再调试完成,对于一个有一定基础的人来说也要好几个月。更何况你现在硬件环境都没有搞定,对于FPGA和DSP也不了解。在没有其他帮助的情况下,要完成都很困难。
另外,DSP用来干什么的?如果不是用来实现很复杂的算法,那用FPGA内嵌的DSP硬核就可以了,硬件设计也简单点。
请问你说的硬件环境没有搞定是什么意思啊?
FPGA内嵌DSP硬核确实不了解,请问有没有什么相关资料可以学习一下的?DSP在这里不实现什么复杂算法
多谢!Spartan-3A DSP FPGA 的datasheet:可以看一下
http://www.xilinx.com/support/documentation/spartan-3a_dsp_data_sheets.htm
简单的说,你PCB板子做出来了没有?要知道从原理图到PCB还有一段路要走,就是PCB出来了,调试还要花一定时间。如果你没有硬件基础,那就更难了。不要太打击人,一切就绪的话,就开始努力吧!半年足够用了吧
不要太打击人,一切就绪的话,就开始努力吧!半年足够用了吧
板子已经在手上了,不知道您说的调试是什么意思,板子应该是可以正常使用的
其实我是接手别人的东西,板子有,只是板子上没有任何code
我其实真正要做的是在通过这一套板子在两个设备之间发送我们定义好的通信协议的信息,是纯软件的东西。可是由于现在片子上什么code都没有,我只能先把这部分工作做了,让板子能跑起来
多谢楼上的鼓励,我原本也不指望个把月就能搞定,最近也读了很多资料和代码,开始对这个东西有一些认识了,希望能如你所说,半年能完成这个项目,哈哈这硬件设计也太坑爹了,有着fpga不用,AD接到DSP上,脱裤子放P,关键是DSP不写程序这个系统都工作不了。
个人建议一步一步来,先别搞DSP程序了,先在FPGA里面做一个数据发生器,用FPGA自己产生的数据送ARM,然后调网络,最后再搞DSP那一块。FPGA先分3个月,拉通之后,再搞3个月DSP。
看情况原来是有原型板的吧,用DSP采集数据到FPGA来处理,ARM为上位机。 这样的话,DSP只是简单的数据采集,不会太复杂;小编是搞软件的,DSP基本上用C,应该不会有太多问题。
就是FPGA这一块,如果是白纸一张的话,还是要先学习一下HDL,最好能用板子跑几个例程。
没想过要打击小编,不过FPGA设计还是有一定难度的,而且HDL的和一般的软件语言很不一样。如果对C比较熟悉的话,可以从verilog开始 吧。原来的板子没有源码吗?如果有的话,很多东西直接拿来用就可以了,可以省不少时间。
是的。连我现在就学了一个月的人也觉得设计很奇怪,DSP用的还是c6000的,感觉就像只需要上上网看看电影的人花一万块钱攒了一台电脑一样
谢谢你的建议,我也是准备一步一步来,现在正在学习怎么看片子的文档,也在看一些code,我以前大概了解过verilog,边看教程边看code了
没有源码,手上只有一块白板。
前面的人给我留下的就只有我前面说的那个DE2的源码了,我正在读这个
多谢大家的热心回复,小弟随时上来汇报学习情况,还请大家多多指教深圳市爱欣文科技有限公司是台湾联杰国际(DAVICOM) 股份有限公司﹑台湾磁威(MAGCOM)公司在中国大陆的授权代理商,供应DAVICOM全系列產品DM9000EP DM9161AEP DM9000AEP DM9601EP DM9161EP DM9620 DM9006EP DM8806AFP 及MAGCOM全系列产品:HS12369 HS12361 HS9001 HS9016 .....原装正品,供货稳定价格优惠,欢迎大家咨询订购。我们不仅负责销售,更加注重的是产品的推广和服务;
贵公司在开发产品时,我们可以免费为贵公司提供:
1)芯片的数据手册,原理图.
2)Layoeut PCB(布板指南).
3) 中文编程指南
4)Drive. ps:Linux drive/wince drive/vxworks/neucleus/.c/csos
5)如遇技术问题,原厂FAE免费提供技术支持。
[联系我们]:如需开发资料的请与我联系,谢谢!
李 sir:027-87880506,027-87207595
Mobile:13469977252
E-mail:baron_li@axwdragon.com
MSN:baron_li1@hotmail.com
QQ:1596190376如果不差钱,建议使用zynq7000系列, arm+fpga全有了,dsp也可以实现
收获良多
good job
学习中,谢谢