Loading
新闻中心库存中心价格中心PDF中心图片中心
ICGLE 电子技术支持中心,为电气人员和相关企业提供全面的信息(IC技术\IC库存\IC图片\PDF资料等)服务
总线设计PCB设计单片机DSPARM
JAVA驱动设计C/C++汇编J2EE网络协议中间件技术嵌入式系统无线通信通信网络模拟技术接口电路显示光电传感与控制EDA/PLD
气流体控制电子产品电机及工具通信设备仪器仪表电线电缆建筑电气低压电器高压电器电源工控自动化广电设备医疗器械More..
电源设计仪器仪表技术专递电路图片电子专栏储存技术汽车电子测量测试音响技术家用电器
成功方案市场分析行业标准应用前沿芯片应用综合专区
基于TMS320VC54X的USB2.0硬件接口设计
来源:中电网   作者:王秀清 于祯
字体大小:[大][中][小]

  USB总线具有传输速度高、热插拔、即插即用等特点,深受广大用户青睐,但由于USB通信协议和开发手段的复杂性,给研究人员的开发应用增加了一定的难度。CYPRESS公司生产的CY7C68001通用USB2.0接口控制器是基于应用层编程的接口器件,相对于其它基于链路层编程的接口器件,使用简单,开发方便。因此我们在深入研究CY7C68001的特点的基础上,对TMS320VC54X进行USB功能接口设计。

1 USB测控系统框图

测控系统的框图如图1所示。


                 

                 
2 CY7C68001的主要特点

  CY7C68001符合USB2.0规范;支持高速(480Mbps)或全速(12Mbps)USB数据传输;4个可编程端点共享4KB的FIFO,每个端点对应的FIFO空间大小及FIFO状态可编程;8/16位双向命令接口、配置灵活(同步/异步可配置,状态引脚、读写引脚以及极性可编程),数据I/O口可与DSP、FPGA或其它ASIC同步/异步通信;智能SIE功能(可在不借助微处理器中断的前提下完成枚举);集成的锁相环功能;I/O口为3.3VTTL电平,可承受5V电压。

3 TMS320VC54X与CY7C68001的异步接口

  接口框图如图2所示,CY7C68001相关引脚说明如下::表明CY7C68001有中断事件发生,或反映对于CY7C68001的读操作结束;READY:通知TMS320VC54X可以对CY7C68001读写;FLAGA、FLAGB、FLAGC:报告由FIFOADR[2:0]选择的FIFO状态,默认分别对应为FIFO自定义、满、空状态;FLAGD/:FIFO状态/片选可选,默认为片选信号;SLOE:CY7C68001驱动并行数据总线,常与SLRD短接;SLRD:并口读有效信号,在SLRD有效且同步通信时,FIFO指针在每个IFCLK的上升沿递增;SLWR:并口写有效信号,在SLRD有效且同步通信时,FIFO指针在每个IFCLK的上升沿递增;PKTEND:总是高电平,将当前的缓冲区提交给上位机USB;FD[15:0]:数据总线;FIFOADR[2:0]:提供给与TMS320VC54X接口的FIFO地址选择。

4 CY7C68001主要寄存器说明

命令接口寄存器:命令字的格式如表1所示:
               
 

  A/D对应地址/数据,0 表示本次操作为数据读或写,1 表示本次操作为地址写。R/W表读/写操作选择,0 写操作,1 读操作。A[5:0] 地址/数据,当A/D=0时,A[3:0]为数据半字节,A[5:4]未用。命令字为8位,命令字数据分两次读出或写入,对于每个字节而言,先读写高4位,后低4位。当A/D=1时,A[5:0]为将要寻址的命令寄存器地址。

  端点配置寄存器(EPXCFG):对USB端点类型、方向和大小进行配置。端点2、4、6和8共享8X512byte的RAM,通过配置,端点2、6分别享有2、3或4个512byte大小的缓冲区,端点4、8最大只能配置成两个缓冲区。本文使用默认端点配置(每个端点对应512B*2缓冲的Bulk配置)。EPXPKTLENH/L:端点缓冲区大小寄存器。FLAGSAB/FLAGSCD:FIFO引脚标志分配寄存器。EPXPFH/L:确定每一端点对应FIFO标志大小的寄存器。

5 CY7C68001提供给DSP两种软件接口

  (1)FIFO接口:CY7C68001内部4Kbyte的RAM(8个512byte块)通过编程,分配给EP2、EP4、EP6和EP8直接作为FIFO。
  (2)命令接口:用于设置CY7C68001、读状态、加载描述符和访问端点0 。

  DSP通过对CY7C68001地址线FIFOADR[2:0]的访问完成上述两种接口,地址分配如表2:


                  
6 DSP与CY7C68001的通信

  本部分包括DSP自身初始化、DSP对CY7C768001初始化、DSP协助HOST计算机枚举CY7C68001、中断处理以及对CY7C68001的各状态监控。由于本文使用CY7C68001默认的描述符信息,所以在枚举时只要提供厂商、产品及设备代码(VD、PD、DD)即可,如果把这部分代码烧写到符合I2总线接口的EEPROM,并连接到CY7C68001的SCL、SDA引脚,USB枚举时,在SIE作用下,可以自动完成枚举。在DSP初始化中对I/O口等待状态寄存器设置为7,以适应同CY7C68001的数据交换。

  CY7C68001的初始化:CY7C68001的初始化是通过对它的一系列寄存器进行设置完成的。CY7C68001的地址FIFOADR[2:0]为100时,选中CY7C68001的命令接口。通过CY7C68001的命令接口,可以访问37个寄存器、端点零缓冲器(64个字节FIFO)和描述表(500bytes的FIFO)。对于这些寄存器、缓冲器和描述表的读写操作,根据上面的论述要分两步进行,即在READY有效时,先向命令口写入要寻址寄存器的子地址和操作类型(读或写),之后,在READY再次有效时分两次读写命令口,即可读写一个字节的数据。相应读写时序(图3、图4)及代码如下:
void WriteRegister (BYTE r, BYTE d) //寄存器号r,要写入的数据d
{
low_level_command_write (0x04, (r | 0x80)); // bit7 = 1, bit6 = 0,写请求
low_level_command_write (0x04, (d & 0xF0) >> 4); //写数据的高四位
low_level_command_write (0x04, (d & 0x0F)); //写数据的低四位
}
BYTE ReadRegister (BYTE r) //寄存器号r
{
BYTE d; //临时变量d
read_interrupt = TRUE;
low_level_command_write (0x04, (r | 0x80 |
0x40));  //读请求, bit7 = 1, bit6 = 1
while (read_interrupt) //等待 SX2 有数据
d = low_level_command_read (0x04);//读数据
return (d);
}
                


                   

  FIFO标志的获取:FLAGA-FLAGC的高低电平反映由FIFOADR[2:0]所选取的FIFO状态,FIFO标志所代表的信息可以通过对FLAGSAB/FLAGSCD寄存器进行编程配置,对FLAGX的获取可以通过硬件中断裁决,也可以通过对相应状态寄存器的查询裁决,本文对FLAGA、FLAGB通过硬件中断裁决,对FLAGC通过状态寄存器的软件查询裁决。

  有关中断:CY7C68001有6个中断源,可以分别通过对中断使能寄存器的各位进行设置,一旦中断事件发生,CY7C68001的 引脚就被置低,并且置中断使能寄存器的相应位(即中断使能寄存器同时充当中断标志寄存器,中断使能寄存器具有读写属性)。当中断发生时,中断标志寄存器的状态字映射到FD[7:0],所以中断发生后,DSP对CY7C68001简单的一次读操作即可获取中断信息,识别中断源并进行相应处理。相对于中断标志寄存器的读操作,其它对CY7C68001寄存器的读操作通常要先发送一次读请求,并且收到READY响应后,才可以读取数据。

7 USB固件程序的组织

本设计主程序流程如图5所示:



                     图5 固件主程序流程图

8 结束语

  在设计开发中,DSP固件程序的组织应综合考虑以中断方式工作的USB通信部分和以查询方式工作的DSP数据采集、控制部分。由于以中断方式工作的USB通信程序随时都可能打断以查询方式工作的DSP数据采集、控制程序,造成数据丢失,相位紊乱,我们采用CPLD进行AD、DA逻辑控制,并运用FIFO数据缓冲机制,减小了DSP压力,取得了良好的效果。

  本设计中,TMS320VC5402与CY7C68001接口之间采用异步信息交换。该方案对于使用其它微处理器开发基于CY7C68001的USB2.0接口,或在微处理器与CY7C68001之间采用同步信息交换也有良好的借鉴作用。
Upload by 小刘(2008-8-11)
IC
·基于PIC16F639的可低频唤醒的..
·灵活的MCU架构实现产品的轻松升级
·嵌入式微型投影显示技术前景广阔
·嵌入式分布模块控制系统与网络的互连研..
·华恒HHS3C6400-Integr..
·Windows Embedded C..
·评论:在Web开发领域编程语言PHP..
·让Windows CE 6.0 R2..
·基于Intel CE 2110媒体处..
·嵌入式4G技术将迎来大发展
·电子垃圾处理中存在隐患
·市场报:让电子垃圾走向绿色
·Atmel推出最新触摸控制器
·摇摆在串行/并行模式间的I/O接口
·扩展x86并行编程技术AMD再次挑战..
·IBM呼吁Linux开发者勿模仿Wi..
·2008中国热水器产业国标年
·动画制作成为法国发展最快的行业
·富士通:责任感让绿色IT触手可及
·利用CAN收发器提高CAN网络的安全..
·高性能T比特路由器高可用性的研究与实..
·从以太网供电中获取更多的电力
·串行ATA总线应用技术
·基于USB2.0与FPGA技术的高速..
·基于嵌入式Linux的便携式RFID..
·滑动相关法伪码捕获的FPGA实现
·基于嵌入式Linux的智能手机系统设..
·电源应用中场效应晶体管的崩溃效应
·基于AD7888的高稳定度激光器多路..
·一种高速低压低静态功耗欠压锁定电路
·MAX2140内部ESD二极管的保护..
·电流测量的原理和产品
·利用PCI1510实现PCI板卡的热..
·基于VC的USB接口通信程序设计
·基于I2C总线技术的USB接口设计
·LCD控制器驱动的24位TFT真彩屏..
·GPS99808模块在汽车防盗系统中..
·热插拔可靠性的新标准
·基于LT1641的双路热插拔电路设计
·四通道I2C多路复用器提供了地址扩展..
IC
推荐技术文章:
·基于PCI总线和DSP芯片的图像处理....
·Linux 2.6 内核中的最新电源....
·高功率以太网供电不再困难..
·采用UCC28051的100W通用线....
·电压不足期间支持电信电源的小电容..
·负载管理与负载开关的设计与实现..
·交叉耦合门防止推挽驱动器交叠..
·台式电源测试的革命..
·锂电池组的主动电荷平衡..
·绿色动力新潮流——燃料电池..
·输出电容器的等效串联电阻对滞环控制功....
·动态电源路径管理简化了太阳能板对电池....
·今天的绿色 POL DC/DC 转换....
·使用LXI加强汽车电子测试..
·针对无线宽带相位噪声的测试方案..
·在低成本测试夹具上实现对表面贴装射频....
·基于CC1100的无线手持终端的设计..
·核磁共振系统中微波射频开关的设计与应....
·基于无线传感器网络的电机运行状态监测....
·Zigbee无线传感器网络平台的设计....
·利用红外技术解决音频无线传输难题
·温度传感器TMP275在家庭环境监控..
·CF+插槽宿主的供电及热插拔控制设计
·一种新型的高压变频分布式控制系统
·固定翼飞机竖直飞行控制系统的设计
·霍尔效应技术提供紧凑型电流测量传感器
·语音控制的智能小车设计
·高精度超声波测距系统的设计与实现
·基于PLC的玩具整体燃烧自动测试仪的..
·用于各类摄像应用的高速CMOS图像传..
·设计下一代自动化测试系统
·基本电能质量测量方法和常见问题原因
·基于FPGA的通用开关电源控制器硬件..
·FPGA器件的设计实现、设计优化与模..
·ARM的位置无关程序设计在Bootl..
·基于OV6630图像传感器和DSP的..
·基于DSP和CPLD的软开关电源数字..
·解决DSP设计面临的终极挑战
·基于P89C52RD2和FPGA的可..
·单片机的图形化编程方法探讨
IC
IC

©2007 版权归ICGLE所有   页面执行时间:62.500毫秒