当前位置:   article > 正文

USB的PHY_usb phy

usb phy
网卡芯片,也有 controller(mac芯片) 和 PHY部分
USB 芯片,也有 controller 和 PHY部分
5G  芯片,也有 协议层 和 PHY部分
  • 1
  • 2
  • 3
USB主机控制器和USB PHY是如何完成收发数据的
USB 全套硬件组成
	Controller
		CSR
		FIFO
		MAC
	PHY
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

CSR层
	简述: 寄存器的接口部分,被cpu运行的指令(load,store)访问
	角色: slave
	总线: AXI/AHB总线
	驱动力: 来自于 cpu运行的指令
	详述:
		可以被软件写入,从而控制USB芯片
		可以被软件读取,从而获取USB芯片的状态

FIFO层
	简述: 作为master,控制 USB到DDR,DDR到USB的数据通路
	角色: master
	总线: AXI/AHB
	驱动力: 运行时, 来自于 FIFO层自身
	详述:
		当 USB host  operate 一个 发送 TD 时,FIFO层 控制 DMA搬运 数据 从 DDR 到 USB
		当 USB host  operate 一个 接收 TD 时,FIFO层 控制 DMA搬运 数据 从 USB 到 DDR

MAC层
	简述:
		作为master,控制 USB中数据 到 PHY侧数据 的 数据通路
	角色:
		master
	总线:
		并行的UTMI(2.0)/并行的ULPI(2.0,相比UTMI线序少)/并行的PIPE(3.0)
	驱动力: 运行时,来自于 MAC层自身
	详述:

		数据通过FIFO层的DMA 到 USB后,MAC层封包 ,把封包后的数据通过 并行总线 sendto PHY
		把数据通过 并行总线 receivefrom PHY ,将数据包解包 , FIFO层的DMA 读取解包后的数据,DMA到 DDR


PHY
	简述:
		作为master,控制 PHY侧数据(数字信号) 到 USB总线(模拟信号) 的数据通路
	角色:
		master
	总线:
		并行的UTMI(2.0)/并行的PIPE(3.0)  和 USB总线

	驱动力: 运行时,来自于 PHY层自身

	详述:
		PHY接收到 来自 MAC层的数据后, 发送到 USB总线
		PHY层接收到USB总线的 数据后,发送到 并行的UTMI(2.0)/并行的PIPE(3.0),被 MAC层接收
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
USB controller 和 USB PHY的接口
版本		USB controller和PHY的接口
1.0
2.0			UTMI
3.0 		PIPE
  • 1
  • 2
  • 3
  • 4
OK6410 USB 1.1 PHY 实例

在这里插入图片描述

S3C6410里面有两个USB PHY , 如上图圈中的内容.我们只关注 USB
// 注意: 当 0x7C10_0004 的 bit[6] 为 1 , 表示如下
// Data on the D+ and D- lines is transmitted and received through the USB1.1 Serial Interface.
// 则 USB 1.1 host 有两个端口
// 一个是XusbDP/XusbDN,一个是 XuhDP/XuhDN

在手册里面叫做 USB 1.1 Transceiver ,寄存器 在 OTG PHY 里面 "26.8 OTG PHY CONTROL REGISTERS"
里面有几种寄存器
	1. 电源控制  (开 USB1.1 的 PHY 即可)
	2. 时钟控制  (USB1.1 的PHY 和 USBOTG的 PHY 共用同一个时钟)
	3. 复位控制  (该复位的都复位, assert 之后要 deassert)
	4. 调谐控制  (默认值即可)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
PHY寄存器初始化之后的值
0X7C100000:0X00000010 // 如果是 0X00000000 ,代表 把 OTG PHY 也 power up 了
0X7C100004:0X00000010
0X7C100008:0X00000000
0X7C10000C:0X00000000
0X7C100010:0X00000000
0X7C100014:0X00000008
0X7C100018:0X00000000
0X7C10001C:0X00000000
0X7C100020:0X00271B93
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
PHY的初始化顺序为
1. 强制要求
	This bit must set before USB PHY is used.
2. 将外面接的时钟频率信息 设置 OPHYCLK , 这个时钟供给给 两个 PHY
3. 打开了 USB 2.0 的 PHY 和 USB 1.0 的 PHY, 并设置 suepend 不断电
4. 复位 两个phy
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/614012
推荐阅读
相关标签
  

闽ICP备14008679号