1 接口设计方案
在信号处理系统上实现USB接口扩展的结构框图如图1所示。图中.控制系统将处理结果通过DSP芯片传输给USB控制器,接着由后者驱动USB接口以将数据传给外部器件; 另一方面,USB控制器通过USB接口接收外部器件传来的信息,然后再把它们转发给信号处理系统。图1中的阴影部分表示的是DSP与USB的接口连接.是该文着重介绍的部分。
图1 信号处理系统的USB接口扩展框图
2 芯片介绍
在以TMS320F2812 DSP为核心的嵌入式系统中, 由于处理器的速度快(主频可达150 MHz),处理的数据量大,使用USB1.1及其它内嵌微处理器的总线控制器已经不能满足数据吞吐率的要求。因此,本接口设计选用的是Cypress公司生产的不含微控制器的USB2.0总线接口控制芯片CY7C68001。
CY7C68001可用来连接微处理器或DSP的DMA从装置,该芯片内部不含微处理器,但它集成有USB2.0收发器(物理层)、USB2.0串行接口引擎SIE(链路层、实现底层通信协议)、4 kB的FIFO和电压调节器、锁相环等,CY7C68001可以支持高速(480 Mb/s)或全速(12 Mb/s)传输,采用3.3 V操作电压和24 MHz外部振荡频率,可以选择8位或16位总线方式,具有同步与异步的FIFO接口。
CY7C68001可以向用户提供足够的端口、缓冲区和传输速度,并可提供USB2.0协议要求的全部4种传输方式(控制传输、中断传输、批量传输和同步传输),可以满足用户对各种类型数据传输的需求。其片上的串行接口处理器(SIE)能完成大部分USB协议操作.使用户可以摆脱复杂的协议细节,简化用户配置代码,加快程序开发过程。但是,由于采用的是不带MCU内核的USB接口芯片. USB的应用层协议应该由TMS320F2812编程实现.USB固件的加载必须靠DSP控制CY7C68001来完成。
3 TMS320F2812与CY7C68001的互连
该设计将CY7C68001配置在TMS320F2812的Zone0空间,并采用CY7C68001的异步读写方式来完成二者之间的数据和命令交换。其接口原理电路如图2所示。
图2 TMS320F2812与CY7C68001的接口电路
CY7C68001除了带有存储器接口外.还有一个中断信号/USBINT和4个状态信号(READY、FLAGA、FLAGB和FLAGC)。中断信号/USBINT占用TMS320F2812的外部中断/XINT1,状态信号READY、FLAGA、FLAGB和FLAGC则可配置在本系统的状态寄存器0(sysstat0) 中,并可由TMS320F2812查询。本接口设计由于采用了CPLD.因而增强了系统的灵活性和可扩充性。
3.1 对CY7C68001寄存器的写操作
通过TMS320F2812对CY7C68001的寄存器进行写操作的上体过程如下:
3.2 对CY7C68001寄存器的读操作
用TMS320F2812对CY7C68001的寄存器进行读操作的具体过程如下:
4 软件设计
USB设备开发过程中的软件设计包括设备端的固件设计和计算机端的USB客户驱动程序设计。由于本课题研究的重点是DSP的USB2.0接口设计.而主机驱动软件大部分是公开的,可以直接使用Cypess公司提供的测试软件,因此这里不再多加讨论。
4.1 固件(FirmWare)设计
由于USB2.0接口器件CY7C68001内部集成的串行接口引擎(SIE)能完成所有USB协议层功能。所以,固件任务其实就是控制CY7C68001来执行USB协议的内容并完成数据传输功能。其固件流程如图3所示。
图3 固件流程图
4.2 总线枚举
当一个USB设备接入或拔出时.主机通过枚举过程可对设备必要的状态改变进行鉴别和管理。枚举过程步骤如下:
该系统软件中的主机程序和设备固件执行到这一步就完成了枚举过程。从设备的角度看.设备完成了配置过程,等候具体的应用。当设备被拔除时,集线器会重新发给主机一条通知信息。设备的拔除会使相应的端口处于被禁止状态。根据接收到的设备撤除信息,主机将会更新内建的设备拓扑信息。
5 实验说明
使用Bus Hound软件作为调试工具可监控计算机USB总线Hub的数据传输速度。实际测试时.可使用8 K字节作为标准测试数据。Bus Hound检测到的时间约为640 us.有效数据的传输速度可达到12.5 Mbps。
6 结束语
利用此设计方案,笔者成功地实现了基于TMS320F2812的等离子切割电源控制系统和PC机等具有主USB功能的设备之间的数据通信。并将控制系统处理后的数据实时地传输到设备的USB端口上,然后利用U盘将所需参数传递给等离子切割电源控制系统,从而取得了令人满意的效果。
文章评论(0条评论)
登录后参与讨论