USB协议基础及S3C2410 USB控制器(2)
二、S3C2410 内置USB1.1 Device控制器
S3C2410 内置的 USB Device 控制器具有一下特性:
(1) 完全兼容 USB1.1 协议
(2) 支持全速(Full Speed)设备
(3) 集成的 USB 收发器
(4) 支持Control、Interrupt 和 Bulk传输模式
(5) 5 个具备 FIFO 的通讯端点
(6) Bulk 端点支持DMA操作方式
(7) 接收和发送均有 64Byte 的FIFO
(8) 支持挂起和远程唤醒功能
下图(图9-25)是 USB 控制器的内部逻辑示意图
FUNC_ADDR_REG :USB 设备地址寄存器(见图9-26)
FUNCTION_ADDR :CPU 将由 USB 主机分配的器件地址写入该字段
ADDR_UPDATE :当 CPU 写入新的地址后,置该位来更新 FUNCTION_ADDR 字段中的值
SUSPEND_EN :使能SUSPEND模式
SUSPEND_MODE :当设备进入 SUSPEND 状态时,由 USB 控制器设置
MCU_RESUME :由 CPU 设置 进入 RESUME 状态
USB_RESET :当 USB 主机发出复位(RESET)命令后,由CPU设置
ISO_UPDATE :只用于 ISO 传输模式
EP_INT_EN_REG :Endpoint 中断使能寄存器(见图9-30) |
图9-30
|
INT_MASK_REG :USB 中断屏蔽寄存器(见图9-31) |
图9-31
|
FRAME_NUM_REG:帧计数器(低位资料)(见图9-32) |
|
图9-32
|
FRAME_NUM_REG:帧计数器(高位资料)(见图9-33) |
图9-33
|
INDEX_REG:索引寄存器(见图9-34) INDEX:指向 USB 控制器内的某个Endpoint |
图9-34
|
EP0_CSR : Endpoint0 控制状态寄存器(图9-35) |
图9-35
|
IN_CSR1_REG : Endpoint IN 控制状态寄存器(见图9-36)
IN_PKT_RDY :当 CPU 将资料写入 FIFO 后,由 CPU 置该位 UNDER_RUN :仅对 ISO 传输模式有效(当 ISO 传输时,资料来不及传输的情况) FIFO_FLUSH :清除 FIFO 内容控制位 SEND_STALL : 0: CPU 清除该位来结束 STALL 状态 1: CPU 发送一个 STALL 握手信号给 USB 控制器 SENT_STALL : 当收到一个 STALL 的 IN 信令后,由 USB 控制器置该位 CLR_DATA_TOGGLE:切换 DATA0 和 DATA1 资料包 |
图9-36
|
IN_CSR2_REG : Endpoint IN 控制状态寄存器(见图9-37)
IN_DMA_INT_EN :DMA中断使能位 MODE_IN :配置响应的 Endpoint的类型(IN 还是 OUT) ISO :配置响应 Endpoint 的传输类型 AUTO_SET :使能当资料量过大时,是否自动拆包 |
图9-37
|
OUT_CSR1_REG 和 OUT_CSR2_REG 的定义类同 OUT_CSR1_REG 等(见图9-38,9-39) |
图9-38
|
图9-39
|
EPn_FIFO :FIFI资料寄存器(见图9-40)
|
图9-40
|
MAXP_REG :最大资料包长度配置寄存器(见图9-41) |
图9-41
|
OUT_FIFO_CON1_REG 和 OUT_FIFO_CON1_REG :指明 OUT FIFO 中有多少 Byte 资料(见图9-42,9-43) |
图9-42
|
图9-43
|
EPn_DMA_CON :Endpoint DMA 控制器(见图9-44) DMA_MODE_EN :使能 DMA 工作模式 IN_DMA_RUN :IN DMA 启动控制位 OUT_DMA_RUN :OUT DMA 启动控制位 DEMAND_MODE :DMA Demand 模式使能位 STATE :DMA 状态标志位 IN_RUN_OB :IN DMA 状态位 |
图9-44
|
EP0_UNIT_CNT :Endpoint 0 DMA 传输长度寄存器(见图9-45) |
图9-45
|
EPn_UNIT_CNT :Endpoint DMA 传输长度寄存器(见图9-46) |
图9-46 |
EPn_TTC_x :Endpoint DMA 总传输长度寄存器(见图9-47) |
图9-47
|