Sl811HS嵌入式USB主从设备控制器.docx
《Sl811HS嵌入式USB主从设备控制器.docx》由会员分享,可在线阅读,更多相关《Sl811HS嵌入式USB主从设备控制器.docx(29页珍藏版)》请在冰点文库上搜索。
Sl811HS嵌入式USB主从设备控制器
Sl811HS嵌入式USB主/从设备控制器
1.0规定
2.0定义
3.0参考
4.0介绍
4.1块图表
4.2sl811hs主从模式选择
4.3特性
4.4数据口微处理器接口
4.5中断控制器
4.6缓冲器
4.7PLL时钟发生器
4.8USB传输器
5.0SL811HS寄存器
5.1开机和复位的寄存器值
5.2USB控制寄存器
5.3SL811HS控制寄存器
6.0SL811HS和SL811HST—AC物理关系
6.1SL811HS物理连接
6.2SL811HST-AC物理连接
7.0电的规格
7.1完全最大的等级
7.2推荐操作条件
7.3外部时钟输入特征
7.4DC特征
7.5USB主机传输器特征
=============================================================
1.0规定
没有注释的1,2,3,4都是十进制数
十六进制数的后面都有“h”
二进制数的后面都有“b”
斜体字用来表示USB规格或某一规格
2.0定义
USB:
通用串行总线
SL811HS:
sl811hs是cypress公司的USB主/从设备控制器,提供多种功能。
这里,我们提供28针PLCC封装(sl811hs)和48针TQFP封装(sl811hst-ac)。
这个文档中,除非说明,sl811hs包括两种封装
注释:
这个芯片不含CPU
SL11sl11是cypress公司USB外围设备的控制器,提供多种功能,这里,我们提供28针PLCC封装(sl11)和48针TQFP封装(sl11t-ac)。
这个文档中,除非说明,sl11包括两种封装
注释:
这个芯片不含CPU
SL11Hsl11h是cypress公司USB主/从设备的控制器,提供多种功能,这里,我们提供28针PLCC封装(sl11h)和48针TQFP封装(sl11ht-ac)。
这个文档中,除非说明,sl11h包括两种封装
注释:
这个芯片不含CPU
LSB最低位
MSB最高位
R/W读/写
PLL锁相环
RAM随机存储器
SIE串行接口
ACK命令正确应答
NAK没有应答
USBD通用串行总线驱动
SOF每一个帧的开始,它允许端点识别一个帧的开始,然后内部时钟与主机同步
CRC循环冗余码校验
HOST安装USB主控制器的主机
3.0参考
USB1.1的规格:
http:
//www.usb.org
4.0介绍
4.1块图表
SL811HS是一个嵌入式的主/从设备控制器,可以全速或低速与USB设备通信。
SL811HS可以接微处理器,微控制器,DSP,或者直接接到多种总线上如:
ISA,PCMCIA和其它。
SL811HS主机控制器遵从USB协议1.1,嵌入式USB主/从设备控制器SL811HS把USB串行接口和内部全速低速传输器合为一体。
SL811HS支持和运转在USB12Mbps的全速模式下,或者在1.5Mbps的低速模式下,SL811HS的数据口微处理器接口提供8bit位数的I/O或者双向的DMA,通过中断允许简单接口到标准的微处理器或控制器,如:
摩托罗拉,英特尔CPU或者其它。
SL811HS的内部,包含一个256字节用于控制寄存器和数据缓冲的随机存储器。
可用的封装有28针的PLCC(sl811hs)封装和48针的TQFP(sl811hst-ac)封装。
两者都运行在3.3伏的电压下。
I/O接口的逻辑兼容5伏电压。
4.2SL811HS主/从模式选择
SL811HS能工作于两种模式—主或从。
对于从设备模式的操作和规格,请参见SL811S的规格。
这个文件里只包含有主机模式的操作。
4.3特性
市场上唯一带基本微处理器总线接口的嵌入式系统USB主/从控制器。
支持全速(12Mbps)和低速(1.5Mbps)USB传输。
4.3.1USB规格遵从USB规格1.1
4.3.2CPU接口
在软件控制下运行为单个USB主或从设备
主机或从设备模式都有1.5Mbps的低速,12Mbps的全速
自动识别低速和全速设备
8位双向数据,I/O口(在从模式下支持DMA)
片上串行化接口和USB传输器
片上根HUB支持
256字节的内部随机存储器,乒乓操作
工作于12MHZ或48MHZ晶振或振荡器
接口兼容5伏电压
支持悬挂/恢复,唤醒,节电模式
自动产生SOF和CRC5/16
自动地址增加模式,保存存储器读/写循环
可以使用开发工具和驱动的源程序
向下兼容SL11H,包括针和功能
3.3伏电源,0.35微米CMOS技术
可使用28针PLCC封装(SL811HS)和48针TQFP封装(SL811HST-AC)
4.4数据口,微处理器接口
SL811HS微处理器接口提供8位双向数据通路,并用合适的控制线连到外部处理器或控制器。
控制线、片选、读/写输入开关和一个单独的地址线、A0、以及8位的数据线,支持程序编写和存储器映射的I/O设计。
访问存储器和控制寄存器的空间是一个简单的两步过程,需要先设A0=0后写地址,接下来设A0=1,再进行寄存器/存储器读/写周期。
另外,在从模式中,DMA双向接口通过握手信号可以作用,握手信号如:
DREQ,ACK,WR,RD,CS和INTR。
请参见SL811S说明
当nWR或nCS处于无效时,SL811HS写或读操作终止。
对于连接到SL811HS的装置,在WritenWR信号之前取消片选nCS,数据将一直保持并与指定的值相同。
因此,英特尔和摩托罗拉的CPU都能容易的与SL811HS相连工作而不需要外部的逻辑需求。
4.5中断控制器
SL811HS中断控制器提供一个输出信号(INTRQ),它能被一系列事件激活使USB激活。
控制寄存器和状态寄存器用来允许用户选择单个或多个事件,它会产生一个中断(INTRQ),让用户看到中断状态。
通过写适当的寄存器(地址为0X0d的状态寄存器)可以清除这些中断。
4.6缓冲存储器
SL811HS有256字节的内部缓冲存储器。
前面16字节的空间作为可编程I/O操作的控制和状态寄存器。
其余的空间用作数据缓冲区(最大240字节)
通过一个外部的微处理器,8位的数据总线和两种寻址模式可以存取寄存器和数据存储器。
两种寻址模式:
索引或者如果是使用用多元地址/数据线接口,直接存取。
索引寻址,首先,在A0地址线为低时写地址于设备,然后接下来的周期并且A0地址线为高电平被给于到指定的地址(读写)。
USB的事务路线自动的连到存储缓冲器。
控制寄存器用以设置存储缓冲器的指针和块大小。
4.6.1地址自动增加模式
SL811HS支持读或写周期的自动增加模式,A0模式。
在A0模式下,微控制器只设置地址一次。
在后来的数据读或写的存取中,内部的地址指针会前进到下一个数据的地址上。
4.6.1.1例子
在地址周期(已置A0=0)把0x10写到SL811HS(0x10为地址)
在数据周期(已置A0=1)把0x55写到SL811HS—>把0x55写到地址0x10
在数据周期(已置A0=1)把0xaa写到SL811HS—>把0xaa写到地址0x11
在数据周期(已置A0=1)把0xbb写到SL811HS—>把0xbb写到地址0x12
地址自动增加模式的优点是减少了SL811HS用于把数据写到/读出设备的读/写周期。
例如,用自动增加模式移动64字节的数据,对比64次的地址写周期和64次的数据周期,这种模式下,周期减少到1个地址写和64个读/写数据周期
4.7锁相环时钟发生器
12MHz或者48MHz的外部晶振都可用于SL811HS。
X1和X2引脚脚用于连接低开销的晶体电路到设备,如图表4-2和图表4-3。
在应用中如果外部的48MHz的时钟源可用,它可用来代替晶体电路来直接连到X1输入针。
当使用时钟时,X2针不用连接。
4.7.1典型的晶振需求
下面是一个“典型需求”的例子。
请注意这些规格是在标准的晶振值得到的,因此没有定制的值大。
如果这些晶振用在串联电路中,负载电容是不合适的。
负载电容在并联电路中是必需的。
12MHz晶振
最大频率:
±100ppm
工作温度范围:
0到70度
频率:
12MHz
频率在温度上的漂移:
±50ppm
串联电阻:
60欧
负载电容:
10pFmin
旁路电容:
7pFmax
驱动水平:
0.1-0.5mW
运行模式:
fundamental
48MHz晶振
最大频率:
±100ppm
工作温度范围:
0到70度
频率:
48MHz
频率在温度上的漂移:
±50ppm
串联电阻:
40欧
负载电容:
10pFmin
旁路电容:
7pFmax
驱动水平:
0.1-0.5mW
运行模式:
thirdovertone
4.8USB传输器
SL811HS中的传输器符合USB1.1规范。
传输器能够在USB全速(12Mbit)和低速(1.5Mbit)下发送和接收串行数据。
当接收部分由不同的接收器和两个单一末端接收器组成时传输器部分的驱动部分会有不同。
它的内部,传输器接口连接串行接口引擎SIE逻辑。
它的外部,传输器连接到USB的物理层。
5.0SL811HS寄存器
SL811HS的运行由16个内部寄存器控制。
内部一部分的RAM用于控制寄存器的空间,存取通过微处理器的接口。
寄存器为USB的事务,微处理器接口和中断提供控制和状态信息。
任何对控制寄存器0FH的写将把SL811HS全部特征位使能。
这是一个SL811HS的内部位把外部特征使能,在SL11H中不支持。
由于SL11H硬件向下兼容,这个寄存器不能被访问。
下面的一张表将展示SL811HS和SL11H的存储器图和寄存器图
SL11H和SL811HS
SL11H(十六进制)地址
SL811HS(十六进制)地址
USB-A主机控制寄存器
00H
00H
USB-A主机基地址
01H
01H
USB-A主机基长度
02H
02H
USB-A主机标识符,设备端点(写)/USB状态(读)
03H
03H
USB-A主机地址(写)/转移计数(读)
04H
04H
控制寄存器1
05H
05H
中断使能寄存器
06H
06H
保留寄存器
保留
保留
USB-B主机控制寄存器
保留
08H
USB-B主机基地址
保留
09H
USB-B主机基长度
保留
0AH
USB-B主机标识符,设备端点(写)/USB状态(读)
保留
0BH
USB-B主机地址(写)/转移计数(读)
保留
0CH
状态寄存器
0DH
0DH
SOF计数器LOW(写)/硬件版本寄存器(读)
保留
0EH
SOF计数器HIGH和控制寄存器2
保留
0FH
存储缓冲器
10H-FFH
10H-FFH
SL811HS中的寄存器主要分为两个主要部分。
bit一部分是USB控制寄存器。
这些寄存器为USB的事务和数据流的控制提供状态。
bit二部分为其它操作提供控制为状态。
5.1开机和复位的寄存器值
以下的寄存器当开机和复位时初始化为0:
USB-A/USB-B主机控制寄存器[00H,08H]
控制寄存器1[05H]
USB地址寄存器[07H]
实时数据设置/硬件修订/SOF低电平寄存器[0EH]
其它所有的寄存器在开机和复位时的状态未知,需要固件对他初始化
5.2USB控制寄存器
USB的通信和数据流用SL811HS的USBA-B控制寄存器。
SL811HS通过USBA或者USBB寄存器的设置可以与任何USB设备功能和特殊端点通信。
USBA-B主机控制寄存器通过“乒乓”排列来管理USB上的通道。
当USB的一个协议事务完成时,USB主机控制寄存器还提供一个中断到外部CPU或者微控制器。
上面表格展示了USB主机控制寄存器的两个组,A和B。
这两个寄存器允许重叠操作。
当一组参数设好之后,另一组就开始传输。
当一个到端点的传输完成时,下一个操作将被另一个寄存器组控制
注释:
在SL11H中,USB-B控制寄存器没有使用。
当SL811HS模式被初始化寄存器0FH使能之后,USB-B寄存器设置才能被使用。
SL811HS主机控制有2组各5个寄存器,映射在SL811HS的存储空间中。
它们的定义见下面的表格中
5.2.1SL811HS主机控制寄存器
SL11H和SL811HS的寄存器
SL11H(十六进制)地址
SL811HS(十六进制)地址
USB-A主机控制寄存器
00H
00H
USB-A主机基地址
01H
01H
USB-A主机基长度
02H
02H
USB-A主机标识符,设备端点(写)/USB状态(读)
03H
03H
USB-A主机地址(写)/转移计数(读)
04H
04H
USB-B主机控制寄存器
保留
08H
USB-B主机基地址
保留
09H
USB-B主机基长度
保留
0AH
USB-B主机标识符,设备端点(写)/USB状态(读)
保留
0BH
USB-B主机地址(写)/转移计数(读)
保留
0CH
5.2.2USB-A/USB-B主机控制寄存器[00H,08H]各位功能
位
位名称
功能
0
Arm
当设为1时允许传输。
当传输结束时,清0
1
Enable
当设为1时,允许传输到这个端点,当设为0时,事务被忽略。
如果Enable=1且Arm=0,这个端点将返回NAKs给USB事务
2
Direction
当设为1时,传输到主机;
设为0时,接收从主机传来的数据
3
Reserved
4
ISO
当设为1时,此端点允许同步模式
5
SOF
当为1时,同步SOF传输
6
DatatoggleBit
DATA0为0;DATA1为1
7
Preamble
当设为1时,一个preambletoken优先于低速包进行传输;当设为0时,preamblegeneration不可用
Bit3保留为将来使用
SL811HS用Bit5使在一个SOF包传输之后传输数据包使能。
此位设为1时,下一个被使能的包将在下一个SOF发送之后传输。
当设为0时,如果SIE空闲的话,下一个包将马上传输。
如果Bit7被设置了,SL811HS将自动的生成preamble包。
这一位仅在集线器发包给低速的设备时使用。
如果要与全速设备通信,这一位要设为0.
例如:
当SL811HS通过一个集线器与低速设备通信:
SL811HS的SIE应被设置为48MHz,也就是,寄存器05H的bit5应设为0。
寄存器0Fh的bit6应设为0,为全速DATA+和DATA-状态设置正确的极性。
Bit7,Preamble位,在主机控制寄存器中应被设置为1
当SL811HS直接和低速的设备通信时:
SL811HS,寄存器0H的bit5应设为1
寄存器0FH的bit6应设为1,设置DATA+和DATA-为低速极性
这个状态下,bit7忽略
5.2.3SL811HSUSB包传输的例子
SL811HS的存储器的设置如下:
03H-04H寄存器包含标识符PID,设备端点和设备地址
10H-FFH包含USB所需的数据
5.2.4SOF包的产生
SL811HS通过硬件自动的计算CRC5。
不需要外部固件为SL811HS产生CRC或SOF。
5.2.5USB-A/USB-B主机基地址[01H,09H]
USB-A/USB-B基地址用于USB的读写操作,它是一个指向SL811HS存储缓冲器的地址。
当转移数据从主机到设备时(OUT),USB-A和USB-B能在USB-A或USB-B主机控制寄存器中为设置ARM置优先级。
参见软件执行例子。
5.2.6USB-A和USB-B主机基长度[02H,0AH]
USB-A/B主机基寄存器包含在SL811HS和主USB外围设备之间传输的最大包长度。
本质上,它指定能被SL811HS传输的最大包长度。
基长度指定被发送的数据包的大小。
例如,在批量模式下,最大数据长度为64字节。
在ISO模式下,最大数据包长度为1023,因为SL811HS只有八位长度,在ISO模式下,用SL811HS的最大的数据包长度为255-16字节。
当主机基长度寄存器设为0时,0字节长度的包将被传输。
5.2.7USB-A/USB-B主机标识符,设备端点(写)/USB状态(读)[03H,0BH]
这个寄存器有二个模式。
当读的时候,这个寄存器提供包的状态,它包含已经被收到或传输了的与最后一个包相关的信息。
寄存器依下列各项被定义。
Bit位
Bit名称
功能
0
ACK
传送确认
1
Error
传送中探测到错误
2
Time-out
出现超时Time-out
3
Secquence
序列位。
0为DATA0,1为DATA1
4
Setup
1标识设置(setup)包
5
Overflow
溢出-超出接收器的最大长度
6
NAK
设备返回NAK
7
STALL
设备设置STALL位
当写的时候,这个寄存器为SIE引擎提供下次事务需要的PID和端点信息。
所有16个端点能够被SL811HS寻址。
D7
D6
D5
D4
D3
D2
D1
D0
PID3
PID2
PID1
PID0
EP3
EP2
EP1
EP0
PID3-04-bitPIDField(见下表)
EP3-04-bit端点值
PIDTYPE
D7-D4
SETUP
1101(DH)
IN
1001(9H)
OUT
0001(1H)
SOF
0101(5H)
PREAMBLE
1100(CH)
NAK
1010(AH)
STALL
1110(EH)
DATA0
0011(3H)
DATA1
1011(BH)
5.2.8USB-A/USB-B主机传输计数器(读),USB地址(写)[04H,0CH]
这个寄存器有两个功能。
当读的时候,在包被传输时,这个寄存器包含剩下的字节数。
如果溢出发生了,也就是,从USB设备接收到的包比指定的要大些,包状态寄存器的一位将被设置以标志这个状态。
当写的时候,这个寄存器将包含主机想要通信的USB设备地址。
D7
D6
D5
D4
D3
D2
D1
D0
0
DA6
DA5
DA4
DA3
DA2
DA1
DA0
DA6-DA0设备地址,最多127个设备
DA7保留应设为0
5.3SL811HS控制寄存器
SL11H和SL811HS的寄存器名
SL11H地址(十六进制)
SL811HS地址(十六进制)
控制寄存器1
05H
05H
中断允许寄存器
06H
06H
保留寄存器
07H
07H
状态寄存器
0DH
0DH
SOF计数器LOW(写)/硬件版本寄存器(读)
0EH
0EH
SOF计数器HIGH和控制寄存器2
保留
0FH
存储缓冲区
10H-FFH
10H-FFH
5..3.1控制寄存器1,地址[05H]控制USB传输操作使能。
见下表
位
位名字
功能
0
SOF
若设为1,硬件可自动产生SOF;0则不能
1
保留
2
保留
3
USB引擎复位
设为1,USB引擎复位;平时则设为0
4
J-K状态强制
5
USB速度
全速为0;低速为1
6
悬挂
1为允许;0为不允许
7
保留
开机时,这个寄存器将全部置0
在SL811HS之中,bit0位用来允许硬件自动产生SOF(在SL11H中,bit0位没有使用)
5.3.2J-K程序状态[控制寄存器05H中的bit3和bit4]
J-K强制状态控制和USB引擎复位用来产生USB复位条件。
强制K状态用来外围设备的远程唤醒,重新开始和其它模式。
开机时,这两位被设为0
bit4位
bit3位
功能
0
0
正常的运转模式
0
1
强制USB复位,DATA+和DATA-被设为0
1
0
强制J状态,DATA+设为高,DATA-设为低用于低速
1
1
强制K状态,DATA+设为低,DATA-设为高用于高速
5.3.3低速/高速模式[bit5控制寄存器05H]
SL811HS被设计来与全速或低速设备通信。
开机时,bit5被设为0,也就是,全速。
与低速设备通信时有两种情况。
当一个低速的设备直接连到SL811HS时,寄存器05Hbit5应被设为1且寄存器0FH的bit6,输出颠倒,应被设为1来改变D+和D-的极性。
当一个低速设备通过一个HUB连接到SL811HS时,寄存器05H的bit5应设为0且寄存器0FH的bit6应被设为0来为全速设备保持D+和D-的极性。
另外,确保USB-A/USB-B主机控制寄存器[00H,08H]被设为1
5.3.4节电模式[控制寄存器05H的bit6]
当bit6(悬挂)设为1时,传输传输器的电源将被关掉,内部随机存储器将进入悬挂模式,内部的时钟也将不可用。
注意。
USB总线上的任何动作(也就是,K状态,等等)将恢复正常操作。
为了从CPU这边重新开始正常操作,应该做一个数据写周期(也就是,A0为数据写周期设为1)
5.3.5中断允许寄存器,地址[06H]
SL811HS提供一个中断请求输出,它能工作于一系列的条件下。
中断允许寄存器允许用户选择条件来产生一个中断给外部CPU。
它提供一个单独的中断状态寄存器。
用它来检测条件来发动中断。
(参见中断状态寄存器)当一位被设为1时,相应的中断就允许了。
位
位名字
功能
0
USB-A
USB-A完成中断
1
USB-B
USB-B完成中断
2
保留
3
保留
4
SOF定时器
当为1时,允许在SOF1ms内中断
5
插入/移除
设备插入/移除检测
6
设备检测/重启
允许设备检测/恢复中断
Bit0-1位用来作为USBA/B控制器中断
Bit4位用来允许/禁止SOF定时器。
为了利用这个位的功能,寄存器05H的bit0位必须设为允许且SOF计数器0EH和0FH必须被初始化。
Bit5位用来允许/禁止设备插入/移除中断
当寄存器05H的bit6位设为1时,这个寄存器bit6位将允许恢复探测(ResumeDetect)中断。
另外,这一位用于使能设备检测状态,就如中断状态寄存器位定义的那样。
5.3.6USB地址寄存器,保留,地址[07H]
这个寄存器为从设备操作保留的设备USB地址。
不能由用户写入。
5.3.7中断状态寄存器,地址[0DH]
提供中断状态的读/写寄存器。
通过写这个寄存器可以清除中断。
为了清除一个特殊的中断,寄存器中相应位设为1
位
位名字
功能
0
USB-A
USB-A完成中断
1
USB-B
USB-B完成中断
2