凯迪东尼是几线品牌:STM32处理器的USB接口

来源:百度文库 编辑:偶看新闻 时间:2024/05/05 19:55:18
1、接口模块的内部结构
在书上有一个很好的USB内部接口模块内部结构图,比较好的解释了各个模块之间的关系,我这里试着用我自己的理解阐述一下吧。
首先在总线端(与D+、D-相连的那一端),通过模拟收发器与SIE连接。SIE使用48MHz的专用时钟。
与SIE相关的的有三大块:CPU内部控制、中断和端点控制寄存器,挂起定时器(这个好像是USB协议的要求,总线在一定时间内没有活动,SIE模块能够进入SUSPEND状态以节约电能),还有包缓冲区接口模块。
说到包缓冲区接口模块,这个对应的含义是,USB设备应该提供USB包缓冲区。这块缓冲区同时受到SIE和CPU核心的控制,用于CPU与SIE共享达到数据传输的目的。
所以CPU通过APB1总线接口访问,SIE通过包缓冲区接口模块访问,中间通过Arbiter来协调访问。
当然我们关注的中心点是控制、中断和端点控制寄存器。我们通过这些寄存器来获取总线传输的状态,控制各个端点的状态,并可以产生中断来让CPU处理当前的USB事件。
CPU可以通过APB1总线接口来访问这些寄存器。它们使用的都是PCLK1时钟。
2、USB模块的寄存器认识
(1)控制寄存器CNTR
传输完成中断允许位。CTRM,1有效,如果SIE置位传输完成标志,则相应的数据传输完成中断发生。
第15位
包缓冲区溢出中断允许位
错误中断允许位
唤醒中断允许位。WKUPM。1有效,如果唤醒请求标志位置位,则产生唤醒中断。
挂起中断允许位。SUSPM,1有效,当总线挂起标志置位时,发生挂起中断。
复位中断允许位。RESETM。1有效,软件强制复位和总线复位信号,都能触发复位中断。
帧首中断允许位
期望帧首中断允许位。ESOFM。它的含义是没有收到帧首信号,允许发生中断。
第8位
向主机发送的唤醒请求,RESUME。1有效,主机收到该信号,将唤醒设备。这个由软件置位。
第4位
强制挂起控制,FSUSP。1有效。与由于总线无活动引起挂起的效果相同。
低功耗模式。前提是先进入挂起状态。由软件设置,一般又硬件复位(被唤醒后自动清零)。
断电模式控制位。PDWN。此位为1时,USB模块关闭。
强制复位控制。FRES。与总线上的复位信号产生相同的效果。也能产生复位中断.
第0位。
(2)中断状态寄存器ISTR
这个寄存器主要是反映USB模块当前的状态的。第15-8为与控制寄存器的中断允许是意义对应的。相应的标志位置位,且中断未屏蔽,则向CPU发出对应的中断。
CTR标志,数据传输完成后硬件置1.
PMAOVR标志
ERR标志
WKUP请求,总线检测到主机唤醒请求时由硬件置位。
SUSP请求标志位。
RESET请求标志位。
SOF帧首标志
ESOF,期待帧首标志。
DIR传输方向,此位由硬件控制。IN时为0,OUT为1.
第4位。
发生数据传输的端点的地址。
(3)USB设备地址寄存器
第7位,EF,USB模块允许位。如果EF=0,则USB模块将停止工作。
第6-0位。USB当前使用的地址。复位时为0.
(4)端点状态和配置寄存器,8个寄存器,支持8个双向端点和16个单向端点。
CTR_RX,正确接收标志位。
第15位。
DTOG_RX,用于检测的数据翻转位。一般由硬件自动设置,软件写1可使其手动翻转。
STAT_RX,占据两位。
00表示该端点不可用,无回应。
01表示响应STALL
10响应NAK
11表示端点有效,可接收数据。
SETUP标志。收到SETUP令牌包时置位。用户收到数据后需检查次位。
第11位。
EP_TYPE,两位,表示端点类型。
00表示批量端点。
01表示控制端点
10表示等时端点。
11表示中断端点。
EP_KIND,端点特殊类型。在EP_TYPE=01时,表示设备期望主机的0字节状态包。
CTR_TX。
正确发送标志。主机的IN包之后。
第7位。
DTOG_TX,用于检测的数据翻转位。一般由硬件自动设置,软件写1可使其手动翻转。
STAT_TX,占据两位。
00表示该端点不可用,无回应。
01表示响应STALL
10响应NAK
11表示端点有效,可发送数据。
端点地址:EA【3:0】,表明该寄存器对应的端点号码。比如1、2号寄存器都可以对应端点1(在双缓冲情况下)。
第3-0位。
(5)端点描述符表相关寄存器
首先有一个描述符表地址寄存器,指明了包缓冲区内端点描述符表的地址。
每一个端点都对应一个描述附表。描述符表也在包缓冲区内。每个端点寄存器对应的描述符表的地址可根据公式计算。
单缓冲、双向的端点描述符表有四项,每项占据两个字节:分别是端点n的发送缓冲区地址、发送字节数、接收缓冲区地址、接收字节数。
了解USB相关寄存器的知识以后,接下来就可以分析“JoyStickMouse”详细的工作过程了。