1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
USB3.0 PHY简介
首先我们需要了解PHY具体完成哪些工作以及我利用FPGA能 实现哪些工作才能实现USB通信。 要实现USB通信大致需要两部分:Controller和PHY两部分,Controller大多为数字逻辑实现(逻辑控制主要分为:MAC、CSR以及FIFO,MAC部分主要按照USB协议进行数据的打包和分解,并按照PIPE(USB3.0)或者UTMI(2.0)的总线的数据格式发送给PHY(2.0或者3.0);CSR部分主要进行寄存器的控制(软件对寄存器进行操作主要是操作CSR寄存器;FIFO部分主要是实现高速和低俗转换。));PHY通常为模拟逻辑实现(实现并转串的功能,把UTMI或者PIPE口的并行数据转换成串行数据,再通过差分数据线输出到芯片外部)。大致的通信方式如下图所示: PHY部分负责最底层的信号转换,作用类似于网口的PHY,这里如果大家需要了解具体的工作可以查看u*** specification,因为和本文关系不大,所以不过多介绍了。 Controller部分主要实现USB的协议和控制。也是目前普通FPGA可以实现的,整个作用类似网络中的MAC层。 PS:目前高级一点的FPGA(带SerDes),可以在不借助外部PHY的情况实现USB(主要原因还是USB大量地借鉴了第二代PCIe协议,所以基本实现和PCIe差不多),但是相对外置PHY成本过高,需要使用IP等原因市场上还是很少这么做的。 在上图中还看到UTMI和PIPE,这是PHY和controller通信的接口,USB2.0PHY主要使用ULPI和UTMI,USB3.0主要使用PIPE,对于ULPI和UTMI的区别如下: UTMI LEVEL0 通信连接示意图 升级的UTMI+接口 ULPI(UTMI+ Low Pin Interface) 通信连接示意图 以上三种接口都是和USB2.0 PHY通信的接口(如果还不理解的话,这三种接口类似网口中媒体接口-MII、RGMII、GMII等)。区别大概为USB PHY的位置:如果芯片的u*** phy封装在芯片内,采用UTMI+的接口。不封装到芯片内的采用ULPI接口,这样可以降低pin的数量。 举例如下:我用FPGA实现USB2.0通信,我使用逻辑实现cntroller+外挂USB PHY的方式,那么我的接口基本使用ULPI接口(降低pin的数量); USB3316 芯片逻辑框图 (来源:芯片数据手册) 我觉得逻辑部分有点复杂,我想把逻辑部分放到外部PHY里,我只需要控制FIFO或者一些低速接口即可实现整个USB通信,这种芯片内部带了cntroller+USB PHY,如下图所示: FTDI600/601Q 芯片逻辑框图 (来源:芯片数据手册) 上图中可以看到FPGA和controller通信方式为FIFO或者SPI等接口,SPI主要时用在2.0/1.1时代,典型代表(MAX3421E)。而FIFO则是目前3.0时代比较常用的方式。 通过以上分析,其实目前常用的USB3.0 PHY也可以大致分为两种:带controller和不带controller,这两种PHY市场上倾向于带controller的芯片,主要原因是简单、方便、性价比高,这里在多说一句,目前市场上为了方便开发,USB3.0芯片内部会放置一个单片机,主要还是方便扩展接口,以方便芯片不单单只在USB3.0通信方面应用。下面一节我们就简单介绍一下市场上常见的USB3.0 PHY片。 市场上常见的PHY 上图中可以将PHY分为两种,下面会标注是第一种还是第二种,两种的区别在上一节中已经进行区分了,这里就不再赘述了。 [tr]公司型号功能APP接口物理层接口CPU核第几种PHY[/tr]
❞TUSB1310A 框图 2、CYUSB3014 CYUSB3014 框图 3、FT600/FT601 FT600/FT601 框图 4、CH569/5 南京沁恒 CH569/565 框图 PS:RISC-V内核,120MHz系统主频,支持单周期乘法和硬件除法、可编程中断控制器、低功耗两级流水线。 总结 上面的表格也很清晰表现出各个芯片的区别,这里就不展开描述了,这里在介绍几个USB 3.0 的ReDrive(NXP , PTN36221AHX 单通道桥,PTN36241BBS单通道桥,PTN36242LBS 双通道桥(数据手册:https://www.nxp.com/docs/en/data-sheet/PTN36221A.pdf))。 今天的文章就到这里,综合考虑上面的芯片,我们后续的方案使用使用广泛的CYUSB3014继续接下来的系列文章。 我是碎碎思期待下篇文章与你相遇! |
||||||
|
||||||
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9057 浏览 16 评论
4086 浏览 18 评论
1175浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 15:26 , Processed in 1.257404 second(s), Total 80, Slave 61 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号