本文介绍了一种依据DSP的USB 接口规划计划,分别从接口的硬件规划、接口操作原理、软件规划流程以及中止服务程序规划关键等方面进行论述,并运用Cypress 公司供应的USB2.0 接口芯片CY7C68001 完成了USB2.0 从机接口规划,经过硬件渠道的搭建和软件程序规划,完成了PC 机与DSP 之间高速双向地传输数据。
1 导言
近年来,跟着数字信号技能的开展,需求处理的数据量越来越大,处理的速度也越来越快,因而具有高速功能DSP 芯片的运用得到了广泛注重。而经过DSP 处理的数据往往要传输给PC 机进行存储和再处理,那么就必须处理DSP 与 PC 机之间的高速通讯问题。本规划计划以德州仪器(TI)的C5000 系列DSP 芯片TMS320VC5416为微处理器,运用Cypress公司供应的USB2.0接口芯片CY7C68001 完成了USB2.0 从机接口规划,然后使PC机与DSP 经过USB2.0 接口完成高速双向地传输数据。
2 TMS320VC5416 与CY7C68001 EZUSBSX2硬件接口规划
体系计划选用PC机作为上位机,担任USB总线上检测到设备接入并进行枚举、辨认的进程,而且能够经过在PC机上运转运用程序来操控数据的传输。USB芯片作为USB设备端,衔接DSP与上位机的数据交换。DSP用于完成USB协议,经过DSP编程完成DSP数据经过USB接口与PC机通讯,且USB芯片的描绘符写入及各种指令状况的处理均经过DSP编程完成。
TMS320VC5416 是TI 的一款16bit 定点高功能DSP,因为VC5416的功耗低、功能高,其分隔的指令和数据空间使该芯片具有高度的并行操作能力,在单周期内答应指令和数据一起存取,再加上高度优化的指令集,使得该芯片具有很高的运算速度,一起该芯片自身具有丰厚的片内存储器资源以及多种片上外设,因而在工程界得到了广泛的运用。
Cypress 公司的CY7C68001 EZ-USB SX2 是一款高功能、运用方便的USB2.0 接口芯片,满意USB2.0 协议,可作业在高速(480Mbps)或全速(12Mbps)形式下,供应一个操控端点用于处理USB设备的恳求以及四个可装备端点用于传输操控和数据信号,这四个端点同享一个4KB的FIFO空间,具有规范的8位或16位外部主机接口,可无缝衔接多种规范微处理器,比方说DSP、ASIC和FPGA等,并可依据需求设置为同步或异步接口,片内集成锁相环(PLL),该芯片广泛运用于DSL调制解调器、MP3、读卡器、数码照机、扫描仪、打印机等设备。
体系的硬件接口规划如图1、图2所示,两者经过数据、地址总线以及读、写信号线等进行通讯,CY7C68001的片选信号衔接至TMS320VC5416 的I/O空间片选信号上,CY7C68001 的FIFO扩展在VC5416 的I/O 空间上。
电源部分选用一片1117 将5V 转为3.3V供应CY7C68001EZ-USB SX2,模仿地与数字地之间选用磁珠衔接,复位部分选用RC电路规划,且芯片材料上介绍有典型值100KΩ和0.1μF。
3 接口操作原理
CY7C68001 有两个外部接口:
(1) 指令接口:用来拜访CY7C68001 寄存器、Endpoint 0缓冲器,以及描绘表。
(2) FIFO数据接口:用来拜访4个1K字节的FIFO中的数据。
这两个外部接口均能够经过同步或异步的办法进行拜访。
本规划选用异步的办法进行拜访。依据图3 的地址分配,运用TMS320VC5416 的三根高位地址线(A11、A12、A13)衔接CY7C68001 的FIFOAD0/1/2,用以挑选FIFO2、FIFO4、FIFO6、FIFO8以及指令接口,其地址表如图3所示。CY7C68001的地址线FIFOADR[2:0]为100B 时,选中CY7C68001 的指令口(Command)。经过CY7C68001的指令口,能够拜访37个寄存器、Endpoint 0缓冲器(64个字节FIFO)和描绘表(500个字节FIFO)等,对这些寄存器进行读写办法选用二次寻址办法,即首要经过指令口即将寻址的寄存器的子地址和操作类型(读或写)写入,然后再经过指令口将数据读出或写入相应的寄存器。
写入指令口的内容称为指令字,指令字包含要寻址的寄存器的子地址,或要写入寄存器的数据的高4位或低4位。读指令口必需要跟在给指令口写读指令字之后,读出的为相应寄存器的8位数据。所以,寄存器的写操作由3 个进程组成:
4 USB 接口的软件规划
USB接口的软件规划由两部分组成:一是在PC机Windows中运转USB 2.0 Utility 东西,是一个Windows 图形用户界面软件,供应CY7C68001 与Windows 操作体系的接口程序,使得CY7C68001的开发变得简略。二是在在DSP中运转嵌入式运用程序代码,供应硬件的驱动,用来办理CY7C68001进行不同办法的数据处理,然后完成USB2.0 传输协议。
4.1 USB 接口的软件规划流程
USB接口的软件规划,DSP端代码大致包含DSP芯片初始化(vc5416_init 函数)、USB芯片初始化(sx2_init 函数)、USB芯片装备程序( s x 2 _ s e t u p 函数) 以及USB 芯片数据读写程序(sx2_processdata 函数),程序流程如图4 所示。
DSP芯片初始化(vc5416_init函数)首要担任设置VC5416的作业频率,装备SWCR以及SWWSR寄存器,别的本运用体系选用一个GPIO引脚作为68001的复位信号,所以还需求对其进行相关设置。
USB芯片初始化(sx2_init函数)首要担任铲除Buffer缓冲区以及使能VC5416 的外部中止INT1,待初始化结束后宣布READY中止,此刻DSP将描绘符写入68001,进行枚举进程,待枚举经往后宣布ENUMOK中止,枚举办法能够选用外部EEPROM经过I2C总线上电后从外部导入描绘符,也可选用经过运转DSP程序从DSP导入到68001,本运用体系选用第二种枚举办法。
USB芯片装备程序(sx2_setup函数)是在指令通道(0节点)收到无法主动处理的上位机恳求,68001向VC5416宣布SETUP中止后履行的程序,此刻VC5416 经过对SETUP寄存器接连履行八次读操作流程即可得到8字节恳求,体系能够响应该恳求或STALL该恳求。
USB 芯片数据读写程序(sx2_processdata 函数)即PC 机与USB从设备端遵循USB传输协议进行数据通讯。
CY7C68001的地址FIFOAD[2:0]为100时,选中CY7C68001的指令接口。关于指令接口的读写要分两步进行,即在READY有用时,先经过指令接口写入要寻址寄存器的子地址和操作类型(读或写),之后,在READY再次有用时分两次读写指令接口,即可读写一个字节的数据。
4.2 中止服务程序规划关键
DSP运用一个外部中止引脚(INT1)与CY7C68001的INT脚相连,USB总线上发生一系列的活动,均会触发相应的中止,一旦中止发生,DSP 会从CY7C68001 的Command 口中读取相应的值,来判别发生的是何种中止。
CY7C68001 EZ-USB SX2 包含六个中止源:SETUP(收到来自于USB 上位机(PC)发送过来的Set-up 包时发生的中止)、EP0BUF(端点0 缓存可用时发生的中止)、FLAGS(OUT 端点FIFO的状况从空变为非空时发生的中止)、ENUMOK(SX2枚举完成后发生的中止)、BUSACTIVITY(SX2检测到总线活动时发生的中止)以及READY(SX2上电而且复位结束后发生的中止),每一个中止源都能够经过置位或铲除INTENABLE寄存器中相应位来使能或制止。
CY7C68001芯片选用中止缓冲机制,每次只会有一个中止源,其他中止源只要在上一个中止被读走后才会宣布新的中止恳求。
因而,当一个中止发生时,INT引脚为低电平状况,一起中止状况位会置入指令接口,在进入中止程序后应先对中止源进行判别,首要判别是否是读寄存器所发生的中止,如果是则将数据准备好标志方位1然后回来,不然外部PC经过选通SLRD/SLOE信号从指令接口中读取中止状况位来判别发生的是何种中止,然后依据中止源进行相应操作,DSP读取中止状况位后主动铲除中止标志位。
5 结束语
依据上述办法完成的USB接口电路,为DSP构筑与PC机之间的高速双向传输通路。经过硬件渠道的搭建和软件程序的完成,验证了该接口电路能够满意高速信号处理的数据传输要求,并具有速度快和可靠性高级长处,信任跟着嵌入式技能的开展以及依据USB2.0 协议的芯片的遍及运用,依据USB的接口技能将得到愈加广泛的运用。