usb芯片的科普

1.

高速模块一般分为控制器Controller和PHY两部分。Controller大多为数字逻辑实现,PHY通常为模拟逻辑实现。

USB芯片也分为Controller部分和PHY部分:

Controller部分主要实现USB的协议和控制。内部逻辑主要有MAC层、CSR层和FIFO控制层,还有其他低功耗管理之类层次:

(1)MAC实现按USB协议进行数据包打包和解包,并把数据按照UTMI总线格式发送给PHY(USB3.0为PIPE)。

(2)CSR层进行寄存器控制,软件对USB芯片的控制就是通过CSR寄存器,这部分和CPU进行交互访问,主要作为Slave通过AXI或者AHB进行交互。

(3)FIFO控制层主要是和DDR进行数据交互,控制USB从DDR搬运数据的通道,主要作为Master通过AXI/AHB进行交互。

PHY部分功能主要实现并转串的功能,把UTMI或者PIPE口的并行数据转换成串行数据,再通过差分数据线输出到芯片外部。

2.

USB 1.1 UHCI/OHCI

USB 2.0 EHCI

USB 3.0 XHCI

USB数据信号是差分信号,是经过编码的差分信号。控制芯片主要是用来实现接收(RX),发送(TX),编码,解串等功能。

整个主控芯片分为模拟电路和数字电路两部分:模拟电路实现的功能是将接收的信号转为数字电平(RX),数字电平转为差分信号发射(TX)。这个过程很复杂,特别是USB信号是没有时钟的,只有数据,要从数据中恢复出时钟,再用时钟恢复数据。另外信号传输的过程是有畸变的,要对信号进行处理,保证能还原信号

3.

USB 接口上有 4 个管脚, OTG 功能有 5 个。原来 4 个分别是电 D+ D- 地。 现在增加了一个 ID .

OTG设备使用插头中的ID引脚来区分host,Device,ID接地时ping脚为低电平,为连接时候的USB Host,这时始终为总线提供电力,ID悬空时ping脚为高电平,为连接时候的USB Device,设备的USB Host/USB Device角色可以通过HNP切换。

猜你喜欢

转载自blog.csdn.net/sinat_37817094/article/details/84479864