73Microcontrolle rs & Embedded Systems2005.1
经验
班主任工作经验交流宣传工作经验交流材料优秀班主任经验交流小学课改经验典型材料房地产总经理管理经验
交流EXPERIENCE EXCHANGE
DSP的USB接口芯片固件程序开发
■ 大连海事大学 李勇 宋巨伟 夏志忠
USB(Universal Serial Bus)即通用串行总线,由于其
有着设备自动识别,自动安装驱动程序和配置,支持不
同速率的同步和异步传输方式,支持热插拔和即插即用
等优点,而得到广泛的应用。
PDIUSBD12是Philips在USB1.1协议设备端使用最多
的芯片之一。此芯片是带有并行总线和局部D M A传输
能力的全速USB接口器件。片内集成了高性能USB接口
器件、SIE(串行接口引擎)、FIFO存储器、收发器以及电
压调制器等,可与任何外部微控制器/微处理器实现高
速并行接口(2MB/s)。此外,D12还集成了SoftConnect、
GoodLink、可编程时钟输出、低频晶振等,这使得USB
的应用变得简单。其中SoftConnect技术可以人为控制
USB的连接与断开而无需拔出电缆。GoodLink技术可提
供良好的USB连接指示。
1 USB协议简介
USB总线发展至今经历了3个主要的阶段:USB 1.1、
USB 2.0、USB OTG(On-The -Go)。由于采用阶梯式星型
拓扑结构和以令牌包为主的通信协议,而使得一个主机
可以连接高达127个外围设备。USB被
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
为
可以处理对传输速率、响应时间和错误校正有
不同要求的很多类外设。USB的传输类型共有
四种,分别是控制传输(Control Transfer)、中断
传输(Interrupt Transfer)、批量传输(Bulk Transfer)
和实时传输(Isochronous Transfer)。四种数据传
输类型每一种都处理不同的需要,并且一个外
设可以支持它最适合的传输类型。
在实体上,USB包含4条线,2条电源线
(Vcc和GND),2条差分方式的信号线(D+和D-)。
所有USB的沟通都是由主机来启动的,主机硬
件中包含USB主机控制器(USB Universal Host
Controller),负责启动USB系统上的数据交易
和根集线器(USB Root Hub),负责给USB设备
提供连接端口。这两个硬件设备在PC机“设
备管理器”中的通用串行总线控制器中可以
看到。
USB标准设备请求是用来完成U S B设备枚举的命
令。USB设备要想让主机识别,就必须对标准设备请求
做出响应,不管该设备是否已经被分配了一个默认的地
址或该设备目前正在配置。所有的标准设备请求都是使
用控制传输和默认管道(端口0)来传输的,而USB设备
的描述符是USB设备请求中对USB设备的属性说明。标
准USB设备有5种USB设备描述符:设备描述符、配置
描述符、接口描述符、端点描述符和字符串描述符。
2 USB芯片的硬件连接
自供电、非D M A方式的连接电路如图1所示。
D12的8根数据线直接与DSP的数据线相连。读写
使能由CPLD译码DSP的R/W、IOSTRB后提供。当D12
在以12Mbps的速度传输并与微控制器并口连接时,存
储器管理单元(MMU)和集成RAM作为USB之间速度差
异的缓冲区。这就允许微控制器以自己的速度对USB信
息包进行读写。
SUSPEND引脚直接拉低,使得D12芯片不挂起,但
是中断寄存器中的挂起中断仍会置位。在没有使用
DSP-D0
DSP-D1
DSP-D2
DSP-D3
DSP-D4
DSP-D5
DSP-D6
DSP-D7
USB-INT
USB-CS
U13
USB-A0
USB-GL
USB-RS
USB-WR
USB-RD
PDIUSBD12
VCC3
R67
10kW
18WR68
B
CON4
1
2
3
4
Y2
6MHz
C96
33pF
33pF
R69
10kW
R70
VCC3
10kW
R201
VCC3
150 W
R82 R83
LED3
USB-INT
USB-GL
VCC3
画PCB图的时候 ,13脚CLKOUT 应该接出来。
D0
D1
D2
D3
GND
D4
D5
D6
D7
ALE
CS-N
SUSPEND
CLKOUT
INT-N
A0
VOUT3
D+
D-
VCC
XTAL2
XTAL1
GL-N
RESET-N
EOT-N
DMACK-N
DMREQ
WR-N
RD-N
28
27
26
25
24
23
22
21
20
19
18
17
16
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
18W
图 1
74 2005.1
经验交流
EXPERIENCE EXCHANGE
DMA方式时,DMACK_N、EOT_N上接上拉电阻与Vcc
相连。D+/D-信号线上串接18Ω的匹配电阻。
3 基于DSP的USB设备枚举过程详解
固件设计的目标是使D12在USB上达到最大的传输
速率。固件要实现的功能包括:对PDIUSBD12的初始
化;响应主机的标准请求,并做出合适的动作;主机要
求进行通信时,能够做出应有的响应。这里将固件设计
成中断方式(而USB真正意义上的中断就是轮询)。
要主机识别一个USB设备必须经过枚举过程,主机
使用总线枚举来识别和管理必要的设备状态变换。下面
对D12芯片的USB固件编程中设备枚举过程及设备响应
进行介绍(本设计中D12芯片采用自供电方式)。
(1)设备连接
USB设备经USB总线连接主机。
(2)设备上电
USB设备采用自供电的外部电源供电。主机对USB
设备存在与否的检测是通过D+与D-的电平来实现的。
也就是说,当D+与D-有电平差达2.5μs以上后,主机
就确认设备已连接上了;反之若D +与D-无电平差达
2.5μs以上后,主机就确认设备已脱离了。而此时USB
总线上的D+和D-皆为低电平,所以设备上电并不意味
着此时主机就能够检测到USB设备的存在。D12上电后,
挂起引脚为低,默认输出频率为4MHz,此时LED指示
为灭。
(3)软上拉,主机检测到设备,发出复位
固件程序中设置模式参数(D12_SetMode(0x12,0x03))
使得D12芯片的D+引脚软上拉,2.5μs后,主机开始
进行总线复位。当总线复位后,给USB设备产生一个复
位中断并将D 1 2芯片中断寄存器的总线复位位置位。
SoftConnect技术就是与USB的连接通过1.5kΩ的上拉电
阻将D+设置为高实现的。1.5kΩ的上拉电阻集成在D12
片内,默认不与Vcc相连,通过软件指令可实现连接与
断开。这样USB总线的连接可以重新初始化而无需拔出
电缆。D12设备在总线复位后,LED会闪烁3次。
(4)设备在默认状态下响应主机地址
USB设备从总线上接收到一个复位信号后,就使用
默认地址0来对主机进行寻址;而主机收到设备对默认
地址0响应的时候,就对设备分配一个空闲地址,以后
设备就只对该地址进行响应。此过程是D12芯片自动完
成的,无需编程实现。
(5)读取USB识别描述符
下面是读取数据的过程。
① 读取设备描述符。USB设备收到80 06 00 10 00 00
40 00,回复DeviceDescr[]={0x12,0x01,0x00,0x01,0xdc,
0x00,0x00,0x10,0x71,0x04,0x66,0x06,0x00,0x01,
0x00,0x00,0x00,0x19},其中9~12字节为Philips公司
的设备ID和产品ID。
② 地址分配。USB设备收到00 05 02 00 00 00 00 00,
回复一个空的应答数据包。
③ 读取设备描述符。USB设备收到80 06 00 10 00 00
12 00,回复DeviceDescr[]={0x12,0x01,0x00,0x01,0xdc,
0x00,0x00,0x10,0x71,0x04,0x66,0x06,0x00,0x01,
0x00,0x00,0x00,0x19}。
④ 读取配置描述符。USB设备收到80 06 00 02 00 00
09 00,回复ConfigDescr[]= {0x09,0x02,0x2e,0x00,0x01,
0x01,0x00,0x60,0x01},其中第8个字节表示自供电,
支持远程唤醒。
⑤ 读取设备描述符集合(配置描述符+接口描述符+
端点描述符)。USB设备收到80 06 00 02 00 00 ff 00,回复
ConfigDescr[]={0x09,0x02,0x2e,0x00,0x01,0x01,0x00,
0x60,0x01};InterfaceDescr[]={0x09,0x04,0x00,0x00,0x04,
0xdc,0xa0,0xb0,0x00}。
EP1_TXDescr[]={0x07,0x05,0x81,0x03,0x10,0x00,
0x0a},端点1 IN,中断传输。
EP1_RXDescr[]={0x07,0x05,0x01,0x03,0x10,0x00,
0x0a},端点1 OUT,中断传输。
EP2_TXDescr[]={0x07,0x05,0x82,0x02,0x40,0x00,
0x0a},端点2 OUT,批量传输。
EP2_RXDescr[]={0x07,0x05,0x02,0x02,0x40,0x00,
0x0a},端点2 IN,批量传输。
此过程不需要主机USB设备驱动程序的支持,此过
程完成后操作系统就会弹出“发现新设备”窗口,要求
安装USB驱动程序,这就需要我们来安装所需的USB驱
动程序,然后固件程序继续执行。
(6)设备配置
主机依照读取的USB设备描述符来进行配置,如果
设备所需的USB资源得以满足,就发送配置命令给USB
设备,表示配置完毕。
① 设置配置。USB设备收到00 09 01 00 00 00 00 00,
回复返回0字节作为应答。
② 读取配置状态。USB设备收到80 08 00 00 00 00 01
00,回复发送应答00。
③ 读取接口状态。USB设备收到80 0a 00 00 00 00 01
00,回复发送应答00。
此后固件程序枚举和配置成功,LED指示将一直点
亮。随后与D12之间成功的传输(带应答)将关闭 80
80 2005.1
经验交流
EXPERIENCE EXCHANGE
桥梁,无论是向LonWorks网络发送数据、消息还是从
LonWorks网络接收数据、消息都必须通过收发器。例
如在LonWorks智能节点中,在LonWorks路由器中,收
发器都充当了LonTalk协议中物理层接口的作用。在使
用收发器时,收发器的外围电路非常重要,它是收发器
正常工作的保证。图3给出了TP1250收发器P1口和P2
口的外部连线图。其中P1口与NeuronC 微理器芯片相
连,而P2口与LON双绞线接口相连。在组建LonWorks
网络时,在网络的两端必须分别加装一个终端器。终端
器电路如图4所示,它设于主干电缆的两端尽头,跨接
在两根信号线之间。终端器与电缆屏蔽层之间不应有任
何连接,以保证总线与地之间的电气绝缘性能。
4 应 用
在水轮机状态监
测系统中,不但要求
高性能的数据采集速
度而且对数据传输的
实时性要求也很高。
针对这些要求,笔者自行开发研制了LonWorks高速采
集节点,在所有的采集节点中都使用了TP1250收发器作
为L o n W o r k s的物理通信接口,用来提高数据在
LonWorks现场总线上的传输速度。实践证明使用该收
发器后,系统处理数据的实时性得到了整体提高。对于
正在进行LonWorks总线研究的人来说,可不必再购买
Echelon公司价格昂贵的收发器。只要根据本文给出的
电路原理图就可自己制作出高速的1.25Mbps收发器。对
于对开发成本很敏感的系统,使用自己制作的性价比很
高的收发器可大大降低系统开发的成本。
参考文献
1 阳宪惠. 现场总线技术及其应用. 北京:清华大学出版社,
2002
2 Datasheet of LonWorks Transceiver Revision 4 NewYork: Ech-
elon Corp. Pub,1999
(收稿日期:2004-09-02)图3 LonWorks 1.25Mbps收发器端口接线图
CP2
CP1
CP0
CP3
+5V
GND
CP4
+5V
GND
NET1
CT
NET2
P1P2
CP2
CP1
CP0
CP3
+5V
GND
GND
L
on
双
绞
线
口
TP1250
NeuronC
3150
59 340
0.15μF 0.33μF
图4 1.25Mbps收发器终端器
接线图
LED,在通信过程中LED会根据通信状况间歇闪烁。
(7)挂 起
当D12没有收到3个帧的起始(SOF)时,将会进入挂
起状态,并将挂起改变中断位置1。其实任何挂起或唤
醒状态的改变都会将该位置位并产生中断。主机总线保
持空闲状态超过3ms以后,设备的驱动程序就进入挂起
状态。
结 语
在编写U S B的固件程序时,还需要注意如下几点。
① DSP中使用软件查询方式检测D12中的中断寄存
器进行通信。
② 在接收到SETUP包后,一定要调用应答SETUP命
令来重新使能端口0。一个SETUP信息包的到达会将IN
缓冲区刷新并禁止对IN和OUT端点的两条命令:使缓
冲区有效和清零缓冲区命令。微控制器需要通过应答
SETUP命令重新使能这些命令。
③ 在向IN端点写完数据后,一定要调用“使缓冲
区有效”命令,指明缓冲区中有数据并且可以发送给主
机,这样D12才可以在接收到下一个IN标志时将其送入
主机。
④ 当读完数据后,一定要调用“清除缓冲区”命令,
以保证可以接收新的包。
⑤ 给I/O口发数据时要根据DSP的运行速度加以固
定的延时。
⑥ 复位后等待至少3ms再对D12寄存器进行访问,
以使得晶振有足够的时间稳定下来。
总之,固件程序的开发是USB外设开发中很重要的
一个方面。U S B已经在各个方面都得到了广泛的应用,
随着USB协议和器件的发展,USB必将得到更加广泛的
应用,使用好USB器件对以后的系统设计会带来很多方
便之处。
参考文献
1 周立功, 等编著. PDIUSBD12 USB固件编程与驱动开发. 北
京:北京航空航天大学出版社,2003
2 许永和编著. USB外围设备设计与应用. 健莲科技改编. 北
京:中国电力出版社,2002
3 Chirs Cant(美). Windows WDM设备驱动程序开发
指南
验证指南下载验证指南下载验证指南下载星度指南下载审查指南PDF
. 孙
义,马莉波,国雪飞, 等译. 北京:机械工业出版社,2000
4 张惠娟, 周利华, 翟鸿鸣编著. Windows环境下的设备程序设
计. 西安:西安电子科技大学出版社,2002
5 Jan Axelson. USB大全. 陈逸, 等译. 北京:中国电力出版社,
2001
(收稿日期:2004-07-22)
74