31.6.3.4 管道配置
管道数据能被放置到RAM的任何地方。USB控制器访问这些管道直接通过AHB主机(建立在DMA中)带有管道
描述符的帮助。在管道描述符中的基地址需要用户写进描述地址寄存器(DESCADD)。请参考管道描述结构
在"Pipe Descriptor Structure"
在用一个管道之前,用户应配置管道的方向和类型,在主机管道配置寄存器的管道类型段(PCFG.PTYPE)
。管道描述寄存器应被初始化为知道的值在用管道之前,所以USB控制器不用从RAM中读随机值。
管道长度段在包长度寄存器(PCKSIZE.SIZE)应被配置为通过设备的与这个通道相关端点每次长度的报告
。数据缓冲寄存器的地址(ADDR)应被设置为管道传输用的缓冲。
如果需要两个bank,在PCFG中的管道Bank比特应被设为1。双bank是被控制管理支持的。
当一个管道是禁止的,那个管道下列寄存器将清零:
。Bulk-Out/Pin事件转换寄存器(BINTERVAL)
。管道中断使能清除/设置寄存器(PINTENCLR/SET)
。管理中断标志寄存器(PINTFLAG)
。在管道状态寄存器中的管道冻结比特(PSTATUS.FREEZE)
31.6.3.5 管道活动
一个禁止的管道是不活动的,并且在复位时相关的寄存器都复位(管道n管道寄存器)。管道使能通过写在
PCFG中的一个管道类型值,不同与0的值。0为禁止。
当一个管道使能,在管道状态寄存器管道冻结比特(PSTATUS.FREEZE)被设置。这允许用户完成管道的配置
,没有开始USB传输。
当开始枚举时,用户取回设备描述符通过发一个GET_DESCRIPTIR USB请求。这个描述含有设备的最大包长
度默认控制端点(bMaxPacketSize0),这些用户可以用来重新配置默认配置管道的长度。
31.6.3.6 管道地址的设置
一但设备默认设备地址0回答了每一个主机的请求,主机分配一个新地址给设备。主机控制器发送一个USB
复位到设备并且一个SET_ADDRESS(地址)设置请求,带有设备用的新地址。一但SETUP交易完成,用户把新地
址写到主机控制管道寄存器管道设备地址字段(CTRL_PIPE.PDADDR)在管道描述中。所有的以后请求通过这个
管道的都用这个新地址。
31.6.3.7 挂起和唤醒
当在主机模式写CTRLB.SOFE为零,将导致USB由于发送开始帧在USB总线进入一个挂起状态。USB设备将在
3MS后进入挂起状态。
在进入挂起之前通过写CTRLB.SOFE为0,用户必须通过设置它们的PSTATUS.FREEZE比特冻结活动管道。任何
当前的连续运行的管道将完成它的执行,并且所有的管道将不活动。用户将等至少一个完全帧在进入挂起模
式之前以免任何数据丢失。
|