打印

USB总线模块 --逻辑传输模式

[复制链接]
1014|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
quangg|  楼主 | 2016-1-31 17:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
PSoC的USB模块支持两种类型的逻辑传输模式,即存储转发和直通模式。逻辑传输使用每个端点的寄存器设置进行配置。任何一种逻辑传输模式都支持三种数据传输(中断、块、同步)。
        逻辑传输模式是存储器管理与DMA配置的结合。逻辑传输模式和USB模块内的数据传输有关(比如:为端点读/写SRAM存储单元)。它并不代表设备和主机之间的传输方法。USB支持两种基本的逻辑传输模式:存储转发和直通模式。表5.3给出了更详细的USB的传输模式。
沙发
zya888| | 2016-1-31 17:49 | 只看该作者
USB传输模式

QQ截图20160131174909.png (133.99 KB )

QQ截图20160131174909.png

使用特权

评论回复
板凳
quangg|  楼主 | 2016-1-31 17:49 | 只看该作者
非DMA访问
         如图 (a)所示,给出了非DMA访问的IN(CPU写和SIE读)交易的流程图。如图 (b)所示,给出了非DMA访问的OUT(CPU读和SIE写)交易的流程图。

使用特权

评论回复
地板
zzzhui| | 2016-1-31 17:50 | 只看该作者
USB传输模式

99.png (139.03 KB )

99.png

使用特权

评论回复
5
peace555| | 2016-1-31 17:50 | 只看该作者
手工DMA访问
      这个模式要求配置DMA控制器。这个模式和非DMA访
问类似,只不过是DMA执行包的写/读操作。通过设置
ARB_EPx_CFG寄存器的DMA_CFG位来产生一个端点的
DMA请求。
        当DMA服务被确认和执行(DMA_GNT),可以通
过编程产生一个仲裁器中断。可以使用单或多DMA周期
完成传输。当每个DMA周期完成后,产生仲裁器中断。
类似的,当所有的数据字节都写到存储器时,产生仲裁器
中断,同时设置IN_BUF_FULL位。

使用特权

评论回复
6
zzzhui| | 2016-1-31 17:50 | 只看该作者
CPU编程初始化用于IN/OUT包所要求初始化缓冲区
的大小,并且通知端点仲裁器模块详细的配置信息。块然
后控制存储器的分配和处理所有存储器的指针。在存储器
分配过程中,每个活动的IN端点(EP_ACTIVE 和
EP_TYPE寄存器设置)分配BUF_SIZE寄存器所指定的一小
块存储空间。剩余的存储器留下作为“公共区域”,用于其
它所有的端点。

使用特权

评论回复
7
zya888| | 2016-1-31 17:50 | 只看该作者
给出了手工DMA访问的IN(CPU写和SIE读)交易的流程图。如图(b)所示,给出了手工DMA访问的OUT(CPU读和SIE写)交易的流程图

使用特权

评论回复
8
zya888| | 2016-1-31 17:51 | 只看该作者
类似的,当接收到一个OUT命令时,用于输出端点的数据写道了公共区。一旦公共区的数据数量大于USB_DMA_THRES_MSB和USB_DMA_THRES寄存器指定的在SRAM内可用的数据数量时,仲裁器初始化到PHUB的DMA请求,并且数据写道设备中。设备不需要等待填满公共区。

使用特权

评论回复
9
peace555| | 2016-1-31 17:51 | 只看该作者
在这种模式下,需要的存储器是较少的,适合于全速同步传输,最多1023个字节.当主机发送IN命令时,设备使用在专用存储器区域的数据进行响应。同时为该EP更多的数据产生一个DMA请求。这个数据填充公共区域。不需要等待填充整个数据包。只等到USB_DMA_THRES_MSB和USB_DMA_THRES寄存器指定的在SRAM内可用的数据数量,然后从公共区传输数据

使用特权

评论回复
10
quangg|  楼主 | 2016-1-31 17:52 | 只看该作者
如图 (a)所示,给出了直通模式下的IN(CPU写和SIE读)交易的流程图。
如图(b)所示,给出了直通模式下OUT(CPU读和SIE写)交易的流程图。

使用特权

评论回复
11
peace555| | 2016-1-31 17:52 | 只看该作者
这个模式要求配置USB_DMA_THRES_MSB和USB_DMA_THRES寄存器。类似的,必须配置PHUB寄存器用于BURSCNT的值。BURSCNT的值总是和DMA_THRES寄存器中设置的值相等。当传输数据包的最后一个字节时,向PHUB发送Termin信号。 除了DMA寄存器外,该模式还需要配置用于IN和OUT的BUF_SIZE寄存器,EP_ACTIVE和EP_TYPE寄存器。

使用特权

评论回复
12
quangg|  楼主 | 2016-1-31 17:52 | 只看该作者
控制端点有一个特殊的传输模式。该传输模式不需要共享512个字节的存储器,而是有一个专用的8字节的
寄存器缓冲区。
        如图(a)所示,给出了控制端点逻辑传输的IN(CPU写和SIE读)交易的流程图。如图(b)所示,给出了控制端点逻辑传输的OUT(CPU读和SIE写)交易的流程图。

使用特权

评论回复
13
zya888| | 2016-1-31 17:53 | 只看该作者
独立于驱动模式,可以在Vdd和D+,D-之间接上拉电阻(使用p2puen位)。
         支持一个内部的1.5kΩ的上拉电阻,通过USBIO_CR1寄存器来使用这个上拉电阻。USBIO_CR1寄存器也用来轮询D+和D-的状态。

使用特权

评论回复
14
peace555| | 2016-1-31 17:53 | 只看该作者
USB收发器能发送其它信号电平。在发送器端点使用上拉电阻,能使用而外的信号电平。配置寄存器USB_USBIO_CR1和USB_USBIO_CR2得到不同的信号电平。在USBIO_CR2寄存器的”test_res”将发送器处于上拉模式。USBIO_CR1寄存器的I/O模式将使USB处理USB模式
或者驱动模式。当处于驱动模式下,禁止USB信号,DMI和DPI位用于驱动D-,D+。这儿有两个不同的驱动模式。在CMOS驱动模式下,D+和DMI关联,D-和DPI关联。在开漏模式下,上拉电阻起作用。在这种状态下,当DPI和DMI位设置为高时,D+和D-处于高阻状态。

使用特权

评论回复
15
quangg|  楼主 | 2016-1-31 17:53 | 只看该作者
在日常生活中,经常见到HID的应用,典型的是和计算机连接的键盘和鼠标。正如HID这个名字所描述的那样,它是一个设备,用来在人和设备(计算机)之间创建一个接口。由接口描述符实现将一个设备定义成HID。

使用特权

评论回复
16
zzzhui| | 2016-1-31 17:53 | 只看该作者
目前,计算机上的RS232和PS2端口绝大多数都被USB端口取代。而且,越来越多的USB设备出现在市场上。对USB设备的建立、配置和使用步骤,是USB设备设计者比较头疼的事情。但实际上USB设备是很容易配置和使用的。人体接口设备(Human Interface Device, HID)是一种和USB连接的简单接口,有很多令人感兴趣的应用。

使用特权

评论回复
17
zya888| | 2016-1-31 17:54 | 只看该作者
描述符以结构化的形式提供了,连接到主机设备的相关信息。
        当把一个USB设备插入计算机时,计算机(主机)通过USB描述符表要求设备的相关信息。通过接口描述符,计算机知道所连接的设备是HID。
       很多时候,主机要求一个设备所搜集数据的数据报告。为了理解这些信息,一个报告描述符用来定义HID报告内的数据格式,以及如何使用这些数据。

使用特权

评论回复
18
zzzhui| | 2016-1-31 17:54 | 只看该作者
下面给出的一个鼠标的工程,在这个工程中,设备报告按键和X/Y移动的信息。这个信息以主机能理解和使用的格式传递给主机。
        在报告描述符中,声明了鼠标数据的结构和格式.主机周期性的轮询设备数据;如果设备没有准备好,它不响应(NAK)主机。如果设备准备好,则它响应(ACK)鼠标,并且通过一个中断类型的传输来传输信息。基于前面报告描述符所发送的信息,当主机从设备接收到数据,它理解数据的含义和如何使用数据

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

226

帖子

1

粉丝