4 软件设计
USB设备开发过程中的软件设计包括设备端的固件设计和计算机端的USB客户驱动程序设计。由于本课题研究的重点是DSP的USB2.0接口设计.而主机驱动软件大部分是公开的,可以直接使用Cypess公司提供的测试软件,因此这里不再多加讨论。
4.1 固件(FirmWare)设计
由于USB2.0接口器件CY7C68001内部集成的串行接口引擎(SIE)能完成所有USB协议层功能。所以,固件任务其实就是控制CY7C68001来执行USB协议的内容并完成数据传输功能。其固件流程如图3所示。
图3 固件流程图
4.2 总线枚举
当一个USB设备接入或拔出时.主机通过枚举过程可对设备必要的状态改变进行鉴别和管理。枚举过程步骤如下:
- 通过USB所连接的集线器检测所连接的外设并通过其状态改变管道来通知主机。此时端口处于禁止状态;
- 通过询问集线器获得主机决定改变的正确状态;
- 在主机获知有新的设备连入端口后, 主机最少需要等待100ms来确保插入过程的完成.以及设备供电的稳定,然后,主机将发出一个端口使能信号和相应的端口重启命令;
- 集线器执行相应端口所需的重启过程。检测到重启时,端口必须处于使能状态.USB设备要处于默认状态,并能从VBUS线上得到最大100mA的电流供给。此时设备所有的寄存器和状态都将被重置,并以默认的地址做回应;
- 主机为USB设备分配一个唯一的地址,以使设备转入地址状态;
- 在设备收到地址之前,由于其仍可通过默认地址来访问默认的控制管道,所以,主机可通过读取设备描述符来决定USB设备的默认管道所能使用的最大有效数据载荷;
- 主机读取配置信息,在这一过程中,设备可能需要向主机提交多条配置信息;
- 基于配置信息和USB设备的使用方式,用主机给USB设备分配一个配置值,然后使设备转入配置状态。此时,设备可以从VBUS线上获得其描述符中确定的电流大小。
该系统软件中的主机程序和设备固件执行到这一步就完成了枚举过程。从设备的角度看.设备完成了配置过程,等候具体的应用。当设备被拔除时,集线器会重新发给主机一条通知信息。设备的拔除会使相应的端口处于被禁止状态。根据接收到的设备撤除信息,主机将会更新内建的设备拓扑信息。
5 实验说明
使用Bus Hound软件作为调试工具可监控计算机USB总线Hub的数据传输速度。实际测试时.可使用8 K字节作为标准测试数据。Bus Hound检测到的时间约为640 us.有效数据的传输速度可达到12.5 Mbps。
6 结束语
利用此设计方案,笔者成功地实现了基于TMS320F2812的等离子切割电源控制系统和PC机等具有主USB功能的设备之间的数据通信。并将控制系统处理后的数据实时地传输到设备的USB端口上,然后利用U盘将所需参数传递给等离子切割电源控制系统,从而取得了令人满意的效果。