怎么在FPGA或ASIC系统中实现高效高速USB 2.0接口?

网友投稿 309 2022-11-02

怎么在FPGA或ASIC系统中实现高效高速USB 2.0接口?

USB提供的吞吐量足够大,适合高带宽应用,如硬盘驱动器和扫描器。事实上,对于大部分计算机外设,如键盘,鼠标,PDA,游戏键盘,操纵杆,扫描仪,数码相机,打印机,USB已经是互连标准。

图1 基于USB的分布式数据采集系统

图2 典型的USB系统

收发器实现了USB协议的物理层。收发器形成了主设备和从设备之间数据连结的两端。USB接收器会有差分和单端两种输出。SIE进行串行数据的编码和解码,位填充,错误校验和其他信号级处理任务。它还将并行数据转换成串行数据,反之亦然。SIE应该连接到智能master,其通过控制端点相应主设备请求实施高级USB协议。master也将实现器件功能所需的应用级任务。

在这篇文章中,我们将讨论三种不同的方法,实现USB接口添加到FPGA或者ASIC系统。

使用USB协议栈知识产权(IP)及外部收发器

在第一种方法中,我们可以在FPGA或ASIC中实现SIE(见图3)。

图3 FPGA + USB协议栈IP + USB收发器

该方法的优点是所需外部硬件最少。使用这种方法的缺点是开发复杂的USB堆栈IP需要时间以及工程资源。SIE IP执行,上层协议和应用功能也占用了FPGA的大量资源。使用第三方的IP成本会很昂贵。

使用集成SIE和收发器芯片的USB桥

另一种把USB接口整合到FPGA设计的方式是连接一个外部串行接口引擎IC和收发器(见图4)。

图4. FPGA +桥芯片(SIE+ PHY)

这种实现的最大好处是,减少了FPGA一半的复杂性(例如,信号级协议管理)。然而,即使在这种情况下,还要占用一定数量的FPGA资源来执行上层USB协议。在这种情况下,需要做的决定是,要分析要分析所需外部硬件成本 vs. 节省的FPGA资源。

使用USB控制器与FPGA

图5. USB控制器+ FPGA

最后一种方式是,连接全功能 USB控制器到FPGA(见图5)。在这种情况下,所有的USB协议管理都会发生在FPGA以外。专门的USB控制器IC包含PHY,SIE,协议控制逻辑。

赛普拉斯的FX2LP 是专门的外设控制器芯片,其可以减少将USB集成到FPGA或ASIC系统的开发时间。它包含了一个简单的“从FIFO”接口,使得和FPGA系统互联很简单。从FIFO接口功能具备从读和从写信号,可以读或写数据到FX2LP 4 K FIFO空间。

这篇文章里提到的这三种设计方法都有自己的优点和缺点。选择时要进行仔细分析,要权衡成本,线路板空间,和FPGA资源。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何保障系统稳定性并实现绿色减排?蚂蚁集团有这些关键技术
下一篇:Java常用测试工具大全
相关文章

 发表评论

暂时没有评论,来抢沙发吧~