打印

PSoC3/5数字子系统 --USB总线模块

[复制链接]
1611|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
PSoC USB作为一个USB设备和一个主机进行通信。USB模块作为PSoC内的一个固定功能的设备。只支持全速通信(12Mbps),并且和USB2.0协议兼容。USB设备设计成即插即用,也支持热插拔。
沙发
peace555|  楼主 | 2016-1-31 17:25 | 只看该作者
   USB总线模块的特点有:
与USB2.0规范兼容;
支持全速外设,最高速率到12Mbps;
支持8个数据端点和1个控制端点;
支持四种类型的传输-块(批量)数据传输,中断传输,同步传输和控制传输;
支持热插拔;
支持两种类型的逻辑传输模式:存储转发模式和直通模式;
差分信号(D+和D-)输出;
存储转发模式下支持最大的包为512个字节,直通模式的同步传输支持最大的包为1023个字节;
支持P2/2和CMOS信号;
操作电压范围为3.3V和5V

使用特权

评论回复
板凳
zzzhui| | 2016-1-31 17:29 | 只看该作者
SIE用于处理译码,以及在发送和接收时,创建数据
和控制包。在接收时,SIE将USB的位流解码成USB的包;
在发送时,创建USB的位流。下面给出SIE的主要特性:
兼容USB2.0规范;
支持1个设备地址;
支持8个数据端点和1个控制端点;
每个端点支持中断;
在48MHz时钟下全速运行;
在控制端点集成一个8字节缓冲区;

使用特权

评论回复
地板
peace555|  楼主 | 2016-1-31 17:31 | 只看该作者
USB模块的结构图

图片1.png (101.45 KB )

图片1.png

使用特权

评论回复
5
peace555|  楼主 | 2016-1-31 17:31 | 只看该作者
SIE用于处理译码,以及在发送和接收时,创建数据
和控制包。在接收时,SIE将USB的位流解码成USB的包;
在发送时,创建USB的位流。下面给出SIE的主要特性:
兼容USB2.0规范;
支持1个设备地址;
支持8个数据端点和1个控制端点;
每个端点支持中断;
在48MHz时钟下全速运行;
在控制端点集成一个8字节缓冲区;

使用特权

评论回复
6
peace555|  楼主 | 2016-1-31 17:33 | 只看该作者
这个模块的寄存器主要用于配置数据端点操作和控制
端点的数据缓冲,寄存器也控制每个端点可用的中断。
        SIE在每次传输结束后产生中断。使用
USB_SIE_INT_EN寄存器可以使能/禁止端点的中断。通
过USB_SIE_INT_SR寄存器可以得到端点的中断状态。

使用特权

评论回复
7
zzzhui| | 2016-1-31 17:34 | 只看该作者
SIE寄存器CNT0和CNT1保持着每个端点的计数
值,这个计数值表示USB传输的数据字节的个数。在输
出(OUT)端点情况下,固件程序确定端点所能接收到
的最大的字节。SIE用所接收到的字节数更新寄存器。在
输入(IN)端点情况下,它保持将要发送数据的字节
数。
        USB_SIE_EPx_CR0寄存器保持每个端点的模式值。
模式值决定了USB模块对主机的响应。表5给出了
USB_SIE_EPx_CR0寄存器MODE位域的值。

使用特权

评论回复
8
peace555|  楼主 | 2016-1-31 17:36 | 只看该作者
USB模块结构

QQ截图20160131173609.png (253.41 KB )

QQ截图20160131173609.png

使用特权

评论回复
9
zzzhui| | 2016-1-31 17:36 | 只看该作者
SIE也报告发送错误,USB_SIE_EPx_CR0寄存器的
比特为“err_in_txn“表示错误的发生。
        当设置该位时,当它接收到来自主机的其它IN令牌
时,硬件自动重发相同的数据。
        这种重发只出现在存储转发模式下。在直通模式
下,通过固件读取该位来确定重发数据。

使用特权

评论回复
10
zzzhui| | 2016-1-31 17:37 | 只看该作者
模块仲裁器用于处理端点对SRAM存储器访问。  CPU
和SIE都可以访问SRAM存储器. 仲裁器负责处理CPU和
SIE访问SRAM的仲裁。仲裁器包含下面的模块:
SIE接口模块;
CPU接口模块;
存储器接口;
DMA引擎;
仲裁逻辑;
同步模块;

使用特权

评论回复
11
peace555|  楼主 | 2016-1-31 17:38 | 只看该作者
仲裁器寄存器用于处理端点的配置,读端点地址和
写端点地址。它也用于配置每个端点所要求的逻辑传输
类型。每个端点支持中断。
        仲裁器只有一个中断线用于中断控制器。
        仲裁器寄存器处理使能/禁止端点的中断和保持中
断状态。仲裁器也负责存储器的管理(比如在数据端点
共享512字节的SRAM)。

使用特权

评论回复
12
zzzhui| | 2016-1-31 17:39 | 只看该作者
1.SIE接口模块
       该模块负责处理和SIE模块的所有交易。SIE从SRAM
读数据,然后发送到主机。类似的,将来自主机的数据
写到SRAM中。在SIE接口登记这些请求,模块来处理
它。
       2.CPU接口模块
      这个模块处理和CPU的所有交易。CPU提出为每个端
点读/写SRAM的请求。这些请求在CPU接口模块被登
记,然后由模块来处理。

使用特权

评论回复
13
peace555|  楼主 | 2016-1-31 17:39 | 只看该作者
3.存储器接口
        存储器接口用于控制USB块和SRAM存储单元之间
的接口。最大支持512个字节(256x16位)的存储器容
量。这是USB专用的存储器,在USB和存储器单元之间
的所有的控制和数据线,包括:数据输入线、数据输出
线和使能线,地址线和方向控制线,是由存储器接口来
管理的。SIE和CPU都可以请求访问存储器。SIE接口模
块和CPU接口模块用来处理这些请求。

使用特权

评论回复
14
zzzhui| | 2016-1-31 17:42 | 只看该作者
4.DMA接口
      当配置DMA后,DMA接口负责在DMA和USB之间的数
据来回传输。这个模块支持用于每个数据端点的DMA请
求。DMA的行为取决于在配置寄存器中所配置的逻辑传
输模式。

使用特权

评论回复
15
peace555|  楼主 | 2016-1-31 17:42 | 只看该作者
5.仲裁器逻辑
       这是仲裁器的主要模块。用于仲裁所有发生在仲裁器
的交易。它仲裁CPU,DMA和SIE对存储器和寄存器的访
问。这个模块也处理存储器管理。
       存储器管理可以“手工”或者“自动”。
手工模式下,固件处理读写地址的操作。
在自动模式下,该模块处理所有的存储器管理。这个
   模块处理缓冲区大小的分配(取决于USB_BUF_SIZE的设置)。它也处理公共存储区域。

使用特权

评论回复
16
zzzhui| | 2016-1-31 17:43 | 只看该作者
USB模块的工作条件包括:
工作频率;
工作电压;
收发器;
    下面进行详细的说明。

使用特权

评论回复
17
peace555|  楼主 | 2016-1-31 17:43 | 只看该作者
这个模块也处理每个端点的中断请求,每个端点的
中断来自:DMA授权(DMA Grant)、 输入缓冲区满、
缓冲区上溢、缓冲区下溢。

       6.同步化模块
       USB模块使用两个时钟:系统时钟和USB时钟。仲裁
器使用系统时钟,SIE和OsClock模块使用USB时钟。由
于这是两个不同的时钟,因此要求同步,这个模块负责
处理同步。

使用特权

评论回复
18
zzzhui| | 2016-1-31 17:43 | 只看该作者
1.工作频率
       最小的时钟频率为24MHz,用于全速操作的USB时
钟48MHz(0.25%的误差)。
       到USB的时钟称为clk_usb,这个时钟来自IMOCLK,
IMOCLK*2,PLL或者DSI时钟。
       USB的OsClock模块用来确定USB包的频率。

使用特权

评论回复
19
peace555|  楼主 | 2016-1-31 17:44 | 只看该作者
2.工作电压
    标准电压范围4.35V-5.25V;低电压范围3.15V-3.45V。
USB使用3.3V工作电压。该模块使用数字电压Vccd。支
持内部的管理器用于电压的管理。在标准电压围内,
电压通过内部的管理器调整到3.3V。
      USB_USB_CR1寄存器的reg_enable将用于控制电源
管理器的使用。

使用特权

评论回复
20
zzzhui| | 2016-1-31 17:45 | 只看该作者
3.收发器
       USB模块包括收发器。主机和USB之间使用的是差分
信号。
接收器接收差分信号,然后转换为单端信号。给到
          USB模块的单端信号电压范围为1.55V-1.95V。
发送器将单端信号转换成差分信号,并且传送给主机。差分
    信号给到“上游设备”,电压范围0V-3.3V。
      收发器也支持PS/2信号,能在0V-5V范围内接收/发送
PS/2信号。收发器有上拉电阻支持PS/2信号。除了PS/2信
号外,收发器还支持CMOS信号。使用USB_USBIO_CR1
和USB_USBIO_CR2寄存器来选择PS/2和CMOS模式。

使用特权

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

本版积分规则

89

主题

620

帖子

2

粉丝