jr9910 发表于 2012-12-2 18:51:02

EP3C5E144C8+FT232H+AL440B轻松搞定USB数据传输

曾经徘徊于USB大门之外,被USB数据传输拖累了整个项目进度,系统从最初的68001升级到了68013,为此还特地买了一块800元坑爹的开发板,还打了两块板子,现在想想确实物有所不值。硬件成本不到80块钱的板子,就算是软件开发上耗费了一定的人力,既然是销售开发板,也是一种利润复制的关系,还卖得那样贵,淘宝上确实有这种产品,确实让人费解。在这块开发板上,我开始了解固件开发,Keil使用,驱动开发,上位机应用程序等等。这些繁复的USB数据协议对于使用者来说多数情况下是根本不关心却又不得不关心的。我们常常碰到这样的情况:一个系统,其核心的功能是数据的处理,数据的传输只是其很小的一部分,而实际中我们常常为了这个小部分的数据传输花费大量的精力。
后来一个工程师给了我块FT2232H的板子,让我帮忙调试,同时指出这个东西开发很简单。当时的心情只能说是兴奋。我用了不到两天的时间把USB接口调通了。在FPGA的控制之下,上位机对数据进行接收和发送都工作的比较稳定。同时,使用频率测量方法对FT2232H的USB OUT和USB IN速率进行了测试和估算,结果OUT速率在23MBytes/Sec左右,IN速率在38MBytes/Sec,大大超出了预期。我也意识到在系统复杂度不断增加的今天,工程师需要掌握的技能不断增加,这种“傻瓜式”的开发方式所带来的便利越来越凸显出来,很多工程师可以直接拿过来集成而不必在各个环节进行学习和开发是未来发展的趋势。后来还专门咨询了FTDI公司的应用支持搞清楚为什么OUT速率和IN速率相差那么多。第一版的接收机当中已经集成了FT2232H,第二版又更新到了FT232H,同时又加入了硬件FIFO对数据进行缓存,使数据传输的实时稳定性得到了很大程度的提升。对于很多即将选择USB2.0数据传输接口进行数据传输的工程师来讲,我郑重且负责任的推荐FT232H和FT2232H;对于那些只关注数据传输,且对FPGA开发、上位机开发不是很熟的人来讲,我强烈推荐。因为对此USB控制器的开发的确很简单。说了这么多,和大家共享一下目前我做的一款板子:

基本的硬件架构:EP3C5E144C8(主控器)+ FT232H(USB控制器)+ AL440B(512KB FIFO)+ 40PIN GPIO;
功能目标:高速数据传输(数据采集和数据恢复),可实现多种接口USB的转换,为各种主机提供USB高速数据传输接口;
晒几张照片:
速率测试,条件:Cure2 CPU E8400,2G内存,Win7 32位
USB OUT(平均速率):38MBytes/Sec;
USB    IN(平均速率):48MBytes/Sec;
实时数据采集及恢复(稳定传输的数据率),条件:上位机程序优先级设置成”实时“模式
USB OUT: 30MBytes/Sec;
USB    IN: 40MBytes/Sec;

对于有能力自己制版的工程师,我强烈推荐其使用此系列USB控制器;对于暂时未有制板打算,又想评估一下产品性能的工程师,我提供这样的样板:http://item.taobao.com/item.htm?id=16629986231。一片EP3C5E144的开发板平均价格在250左右,相比于那种800多的68013板,我更愿意做技术推广。不愿意为入门的人准备800多网络搜索的工程,然后刻个DVD随板子一起发送,但提供的工程实例独具特色,为的只是加速大家的工程进度。

huatong 发表于 2012-12-2 19:03:03

好像不错哦.

pulan 发表于 2012-12-2 19:09:07

看起来不错,本来计划用68013,看来还有别的选择

chenguanglu 发表于 2012-12-2 19:11:04

楼主研究研究一片ft232 实现fpga下载就牛了

jr9910 发表于 2012-12-2 19:42:45

chenguanglu 发表于 2012-12-2 19:11 static/image/common/back.gif
楼主研究研究一片ft232 实现fpga下载就牛了

这个倒不是没研究过,只是觉得通过它只能进行烧写,而调试需要花费比较大的经历。所以就放弃了。

jr9910 发表于 2012-12-2 19:43:04

pulan 发表于 2012-12-2 19:09 static/image/common/back.gif
看起来不错,本来计划用68013,看来还有别的选择

肯定加速你工程进度,呵呵!

jordonwu 发表于 2012-12-2 22:15:42

有相关例程吗?

ffbiao 发表于 2012-12-2 22:25:05

说得这么好,支持开源代码和电路图

jimmy_xt 发表于 2012-12-2 22:33:03

唯一的问题就在于FT232H+AL440B的价格基本上够俩68013了,成本不敏感的应用还好。

另外68013A的开发板,800多的,一般都是带FPGA的吧。单独一个68013的基本都在100~200。

fish_tian 发表于 2012-12-2 22:59:27

能不能USB3.0转光纤

jr9910 发表于 2012-12-2 23:45:31

jordonwu 发表于 2012-12-2 22:15 static/image/common/back.gif
有相关例程吗?

有的,实时数据的采集和恢复例程都经过测试,可以稍做修改后应用到自己的工程。

jr9910 发表于 2012-12-2 23:52:42

jimmy_xt 发表于 2012-12-2 22:33 static/image/common/back.gif
唯一的问题就在于FT232H+AL440B的价格基本上够俩68013了,成本不敏感的应用还好。

另外68013A的开发板,80 ...

EP1C6Q240C8单片买也就60块钱,再带上一个68013-128和max232,你说走批量成本能多少?卖890你觉得合理?我不认为这样。并不是贬低它来太高自己,只是就事论事。呵呵。至于你说的FT232H+AL440B够两个68013,本人确实不敢苟同,你拿一个512KB FIFO+USB来和两个USB比,本身就功能上不等量。我这里架构FIFO只是因为FIFO方便,事实上完全可以添加一块SDRAM,不仅成本降低,而且容量也扩大。但开发难度又上来了。设计就是成本,开发周期等等的折中。只拿其中的一方面来对比,未免有失偏颇。

jr9910 发表于 2012-12-2 23:57:53

fish_tian 发表于 2012-12-2 22:59 static/image/common/back.gif
能不能USB3.0转光纤

USB3.0的暂时没研究,不太清楚。

sunliezhi 发表于 2012-12-3 00:02:33

我有一个FT2232H的学习板,号称40M/S的速度,没怎么玩过,能教教我怎么玩吗?

jr9910 发表于 2012-12-3 00:05:46

sunliezhi 发表于 2012-12-3 00:02 static/image/common/back.gif
我有一个FT2232H的学习板,号称40M/S的速度,没怎么玩过,能教教我怎么玩吗? ...

具体什么配置?只有2232H?还是有其它主控芯片?

sunliezhi 发表于 2012-12-3 00:08:40

就2232+24C02

wajlh 发表于 2012-12-3 00:18:21

不错            

jr9910 发表于 2012-12-3 00:30:25

sunliezhi 发表于 2012-12-3 00:08 static/image/common/back.gif
就2232+24C02

这个能转很多东西,比如232,422,485,I2C,SPI,JTAG,还可以模拟CPU。你应该找个主控器或者是设备来接受它的控制。用24C02做配置,我不太清楚,官方推荐是93LC46的,你可以仔细看看手册是否可以。

jordonwu 发表于 2012-12-3 08:54:38

能放些相关资料和文档上来吗?谢谢

error_dan 发表于 2012-12-3 09:03:44

所以这个东西就是用FT2232转一个什么接口然后跟FPGA通信吗?这么高的速率似乎只有SPI了吧,请教一下LZ那我要接出来怎么办?比方说接个高速AD,接个摄像头啥的...

richards 发表于 2012-12-3 09:32:02

并行接口撒 只要速度上去了,数据能传了,用CPLDFPGA驱动.AD或摄像头撒

sunliezhi 发表于 2012-12-3 09:41:37

我开始想用他来模拟JTAG,但在网上搜到好多种电路图,不能确定用哪一种,就搁置了。

bbs2009 发表于 2012-12-3 10:20:29

ndt2000 发表于 2012-12-3 10:52:16

我也有一片FT2232H放着吃灰呢?

jimmy_xt 发表于 2012-12-3 10:58:47

jr9910 发表于 2012-12-2 23:52 static/image/common/back.gif
EP1C6Q240C8单片买也就60块钱,再带上一个68013-128和max232,你说走批量成本能多少?卖890你觉得合理? ...

我看到的很多类似您给出配置的板子,价格不到300。我没说890合理,只是说,那价位的板子多半带大规模的FPGA和一些其他外设。

我不知道您有啥可激动的,一堆不耐烦的反问语气。

说的明明白白,价格敏感应用还是得斟酌斟酌。可能我的语言表达能力太差吧。

jr9910 发表于 2012-12-3 12:56:35

ndt2000 发表于 2012-12-3 10:52 static/image/common/back.gif
我也有一片FT2232H放着吃灰呢?

可以利用起来,功能还是很强大的,开发也不困难。

jr9910 发表于 2012-12-3 13:01:28

jimmy_xt 发表于 2012-12-3 10:58 static/image/common/back.gif
我看到的很多类似您给出配置的板子,价格不到300。我没说890合理,只是说,那价位的板子多半带大规模的FP ...

价格这个芯片批量走应该在56pin的68013和100pin的68013之间,绝对比128pin的便宜。只不过我没有量,价格降不下来罢了。

jr9910 发表于 2012-12-3 18:48:50

jordonwu 发表于 2012-12-3 08:54 static/image/common/back.gif
能放些相关资料和文档上来吗?谢谢



lanliang714 发表于 2012-12-3 20:51:29

请教楼主一个问题用fpga内部ram资源来做fifo不好吗?

446410831 发表于 2012-12-3 21:04:31

这东西看起来还不错 …… {:biggrin:}

jr9910 发表于 2012-12-4 00:01:36

lanliang714 发表于 2012-12-3 20:51 static/image/common/back.gif
请教楼主一个问题用fpga内部ram资源来做fifo不好吗?

我提供的一个数据采集的例程就是用内部FIFO来做的,而数据恢复是用外部FIFO来做的。用FPGA内部FIFO来做不是不可以,但需要看具体应用,如果速率不是很高,对FIFO的容量要求就不大,同时FPGA内部也有资源,这时候可以采用内部FIFO。但是如果资源比较紧张,通信速率又比较高的话,就需要一个缓冲区,缓冲区的大小选取和通信速率以及上位机响应USB数据传输的平均周期有一定的关系。这时候就要使用外部缓冲区了。这个缓冲区可以是SRAM,但是SRAM有两方面问题,第一容量不能太大,否则价钱比较高;第二,SRAM只有一套数据总线,这样势必限制读写速率;第三也要求读写时钟要一致(当然可以利用FPGA来切换读写时钟)。另一种可选方案就是双口RAM,这样可以做到独立的读写端口,能提高吞吐率。再者可以选则SDRAM,SDRAM可以做到大的缓冲数据容量,同时通信速率又很高,但开发难度要高一点。作为开发难度和通信速率以及价格的折中,FIFO满足了一定的用户需求。我这里架构用了FIFO但不是绝对。速率要求更高的可以用两个SDRAM,做乒乓操作。在此权作抛砖引玉吧。哪里讲得不对,欢迎高手斧正。

lanliang714 发表于 2012-12-4 17:24:42

jr9910 发表于 2012-12-4 00:01 static/image/common/back.gif
我提供的一个数据采集的例程就是用内部FIFO来做的,而数据恢复是用外部FIFO来做的。用FPGA内部FIFO来做不 ...

fpga内部ram资源不够做大容量缓存,
我有个疑问:使用内部ram不至于影响通信速率吧?
不是很懂,指点一下

sky5566 发表于 2012-12-4 17:30:36

為什麼要 FT232H ??{:smile:}

jr9910 发表于 2012-12-4 18:40:39

lanliang714 发表于 2012-12-4 17:24 static/image/common/back.gif
fpga内部ram资源不够做大容量缓存,
我有个疑问:使用内部ram不至于影响通信速率吧?
不是很懂,指点一下 ...

缓冲区如果太小,而上位机又没来得及及时读出数据,那么采集的数据就会被冲掉。

jr9910 发表于 2012-12-4 18:43:03

sky5566 发表于 2012-12-4 17:30 static/image/common/back.gif
為什麼要 FT232H ??

这就是个USB控制芯片,当然用别的也可以,只要满足应用中通信速率的需要。最常用的MAX232,上点速度就得以太网或者USB了,要求再高可能是PCI、PCIE等。不一定非要FT232H。对于USB通信,目前我看到的这款比较简单,不需要使用者了解任何USB协议就可以操作,大大的简化了用户开发。

sky5566 发表于 2012-12-4 18:52:11

本帖最后由 sky5566 于 2012-12-4 18:53 编辑

jr9910 发表于 2012-12-4 18:43 static/image/common/back.gif
这就是个USB控制芯片,当然用别的也可以,只要满足应用中通信速率的需要。最常用的MAX232,上点速度就得 ...

usb opencode已經開放原碼 IP core 產用 wishbone 模式{:smile:}

cyclone3 是否可以異步雙口RAM?(雙clock-enable模式)

jr9910 发表于 2012-12-4 19:05:54

sky5566 发表于 2012-12-4 18:52 static/image/common/back.gif
usb opencode已經開放原碼 IP core 產用 wishbone 模式

cyclone3 是否可以異步雙口RAM?(雙c ...

我这个中文不太好,古典文字看着很费劲。大概看清楚了,其实那个IP Core我用过,不过没有拿出来作为产品的一部分卖,这样不道德。那个Core通信速率并不高,起码在Nios II里面是这样。至于你说的第二个问题,我确实不清楚,只是觉得可以通过一个选择器来切换读写时钟罢了,真正没有在里面都建过。

jr9910 发表于 2012-12-4 19:09:17

RE: EP3C5E144C8+FT232H+AL440B轻松搞定USB数据传输

先上一副FT_TRANS板卡的原理图,其它东东抽时间整理上传!

aworker 发表于 2012-12-4 19:50:25

学习了!{:smile:}

mysunmax 发表于 2012-12-4 21:19:50

强烈关注哦~

jr9910 发表于 2012-12-5 00:34:45

开源进行时,FT232H基本操作,也适用于FT2232H,FPGA控制读写,FT232H工作在FT245模式下,同步FIFO,最高速率的那种。

littleGnss 发表于 2012-12-5 00:53:18

jr9910 发表于 2012-12-5 00:34 static/image/common/back.gif
开源进行时,FT232H基本操作,也适用于FT2232H,FPGA控制读写,FT232H工作在FT245模式下,同步FIFO,最高速 ...

这个板子能采集外部带时钟同步的数字信号么。 采样率26M左右。不过是2Bit量化。如果合成1个byte的话,可能也就3MB/s. 如果采集这种数据的例程的话,我就预订两块。

jr9910 发表于 2012-12-5 01:00:37

littleGnss 发表于 2012-12-5 00:53 static/image/common/back.gif
这个板子能采集外部带时钟同步的数字信号么。 采样率26M左右。不过是2Bit量化。如果合成1个byte的话,可 ...

这个完全没问题,我原来用来做5.715MHz采样的2bit数字信号的采集,合成一个字节以后传输给上位机,我用FPGA内部的2048的FIFO就达到了稳定效果。我扩展的GPIO里面有四个全局时钟信号,在38楼有原理图,你可以看看。还有PLLOUT的接口,既可以接收外部板卡的同步时钟,也可以给外部板卡提供同步时钟。我的QQ:489628962,有什么需要可以联系。

shushanxiaoyao 发表于 2013-10-25 23:03:20

mark mark mark

gongping 发表于 2014-2-6 15:37:43

好东西,非常感谢!

applededipan 发表于 2018-6-5 11:30:41

jr9910 发表于 2012-12-4 19:05
我这个中文不太好,古典文字看着很费劲。大概看清楚了,其实那个IP Core我用过,不过没有拿出来作为产品 ...

楼主,fpga用nisii的话应该是用c或c++编程把,那这样的话是不是可以用stm32等控制器替换掉fpga?

jr9910 发表于 2018-7-11 21:14:43

applededipan 发表于 2018-6-5 11:30
楼主,fpga用nisii的话应该是用c或c++编程把,那这样的话是不是可以用stm32等控制器替换掉fpga? ...

stm32有自带的usb,为什么还要再接这个FT232H的芯片呢

向北 发表于 2018-11-2 11:31:49

jr9910 发表于 2018-7-11 21:14
stm32有自带的usb,为什么还要再接这个FT232H的芯片呢

楼主大大你好,我想用这个芯片做USB转IIC通信,,我不会用,,您可以给我一些帮助吗?或者我可以直接加您的qq向您请教吗

zxq6 发表于 2018-11-2 12:19:57

向北 发表于 2018-11-2 11:31
楼主大大你好,我想用这个芯片做USB转IIC通信,,我不会用,,您可以给我一些帮助吗?或者我可以直接加您 ...

usb转iic就别折腾这个了,wch有专门的芯片做这个事情。

向北 发表于 2018-11-2 14:01:17

zxq6 发表于 2018-11-2 12:19
usb转iic就别折腾这个了,wch有专门的芯片做这个事情。

您可以帮我推荐一款或者几款吗?最好是纯硬件的那种{:tongue:}

zxq6 发表于 2018-11-2 17:33:35

向北 发表于 2018-11-2 14:01
您可以帮我推荐一款或者几款吗?最好是纯硬件的那种

ch331,你可以看看资料。

billy_jhgg 发表于 2018-11-5 09:25:51

看起来不错的样子,不知道实际怎么样
页: [1]
查看完整版本: EP3C5E144C8+FT232H+AL440B轻松搞定USB数据传输