




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于DSP与PDIUSBD12的USB接口设计作 者 :东南大学机械工程系肖飞许飞云贾民平张小波关键词: DSPTMS320VC5402PDIUSBD12USB接口1 引言 DSP芯片,即数字信号处理器,是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP 指令及快速的指令周期,可以用来快速地实现各种数字信号处理算法。TMS320C54X是TI公司于1996年推出的新一代定点数字信号处理器。它使用先进的修正哈佛结构,片内共有八条总线、CPU、在片存储器和在片外围电路等硬件,加上高度专业化的指令系统,使C54X具有功耗小、高度并行等优点,可以满足电信等众多领域的实时处理的要求,是目前市场上的主流产品。而TMS320VC5402(简称为C5402)更以其独有的高性能、低功耗和低价格特性,使其倍受业内用户的欢迎,该手持式振动测试系统就是以C5402为核心芯片而设计的。USB是一种通用串行总线,由COMPAQ、INTEL、MICROSOFT和NEC等公司共同开发的一种新的、快速的、双向的、同步传输的并且可以热插拔的数据传输总线。具有用户使用方便、应用范围广、具有同步带宽、灵活稳定、易于与PC机接口、成本低廉和易于升级等优点。正是由于USB的以上优点,使得其在接口方面的使用极其方便。USB可以连接多个不同的设备,一个USB口理论上可以连接127个USB设备,而过去的串口和并口只能接一个设备。USB总线的传输速度可从USB1.1的12Mbps到USB2.0的480Mbps。本文中所采用的接口芯片PDIUSBD12(简称D12)是PHILIPS在USB1.1协议设备端使用最多的芯片之一。2 TMS320VC5402概述 当前业界中应用的最广泛的是TI的TMS320系列DSP, 其中TMS320VC5402是TI于1999年10月推出的性价比极高的定点数字信号处理器DSP。其主要特点如下:(1) 144 PIN BGA,操作速率达100MIPS; (2) 具有先进的多总线结构,三条16位数据存储器总线和一条程序存储器总线; (3) 40位算术逻辑单元(ALU),包括一个40位桶形移位器和两个40位累加器; (4) 一个1717乘法器和一个40位专用加法器,允许16位带/不带符号的乘法; (5) 整合维特比加速器,用于提高维特比编译码的速度; (6) 单周期正规化及指数译码; (7) 8个辅助寄存器及一个软件栈,允许使用业界最先进的定点DSP C语言编译器; (8) 数据/程序寻址空间1M16bit,内置4k16bit程序/数据 ROM和16k16bit DARAM; (9) 内置可编程等待状态发生器,锁相环(PLL)时钟产生器,2个多通道缓冲串行口, 1个8位并行与外部处理器通信的HPI口,2个16位定时器以及6通道DMA控制器; (10) 低功耗,工作电源为3V(I/O)和1.8V(CORE),0.32MW/MIPS,特别适合电池供电设备。 与TMS320C54X系列的其它芯片相比,C5402以其独有的高性能,低功耗和低价格特性,使得一推出就受到业内用户的欢迎。C5402适用于无线调制解调器,机顶盒(STB),下一代个人数字助理(PDA),集群电话,局域网电话和各种话音应用等单信道通信客户终端和数字无线通信等嵌入式系统。3 PDIUSBD12芯片的性能与特点 Philips公司生产的型号为PDIUSBD12的接口芯片是一个具有集成的SIE、FIFO存储器、发送器和电压调整器的高性能USB接口芯片,同时还支持DMA逻辑传输形式。它通常应用于基于微控制器的系统中,并且可以通过高速的并行接口和系统中的微控制器进行通信,其中最高并行接口速率可以达到2Mbps,是一个具有8位数据总线和1个地址的存储和数据交换设备。主端点配置有双缓冲,因此可提高数据的吞吐量,减少数据传输时间,轻松实现数据的实时传输。当采用同步传输方式时,数据的传输速度为1Mbps;而采用批量传输方式的速度为1Mbyte/s。在采用上述方式进行数据传输时,可方便的使用多种中断方式。带有可编程的时钟输出,与USB总线的连接可通过软件(SoftConnectTM)来控制。有两种工作电压可供选择:3.3V0.3V或扩展的5V电源,范围为3.6V5.5V。输出和数据传输状态可通过USB连接指示灯来控制。PDIUSBD12芯片的功能方框图如图1所示:图1 PDIUSBD12芯片的功能方框图图1中给出的仅是概念上的框图,不包括每个单独的信号。PDIUSBD12内部含有集成收发器接口,可通过端口电阻直接连接到USB通信电缆。片内集成有3.3V调节器,可为模拟收发器提供电源。该电压要么外接1.5k的上拉电阻作为输出,要么连接内部集成的1.5k上拉电阻作为SoftConnectTM的内部电源;由于其片内还集成了648MHz的倍频PLL,因此只需外接低频晶振即可工作。而且PLL在工作过程中不需要任何外部元件的干预,当使用6MHz晶振时,EMI会相应的降低。位时钟恢复电路能将时钟从USB数据流中恢复出来,它还可以对频率漂移和信号抖动进行跟踪。Philips的SIE(串行接口引擎)能完整地执行USB协议,它已经被完全固化在芯片内部,因此不再需要任何固件(firmware)的干涉。这一部分包括同步模式识别、并行/串行转换、位填充/解除填充、CRC校验/生成、PID校验/产生、地址识别和握手评估/产生。PDIUSBD12的USB软件连接可通过MCU(这里是TMS320VC5402)将指令发到D(全速设备)来实现。在MCU发命令之前,必须先完成PDIUSBD12的初始化。在这之后,用时不需拔出USB线就能完成下一次连接。PDIUSBD12的并行接口和通用并行接口一样具有使用方便、速度快的特点。对MCU来说,D12是一个具有8位数据总线和1位地址线的存储设备,它支持地址数据总线复用、非地址数据总线复用以及DMA数据传输方式。4 系统接口电路设计4.1 TMS320VC5402与PDIUSBD12接口电路示意图 由TMS320VC5402和PDIUSBD12构成的USB接口电路示意图如图2所示。D12的八位并行数据线接入C5402的数据线的低八位,即D0D7。用C5402上的A0与D12上的A0相连接,作为D12的命令和数据的选择线。片选信号接地,始终保持有效。当对D12的A0口写1时,对D12发命令;当对D12的A0口写0时,给D12写数据或从D12的Buffer中读数据。D12与C5402的数据交换采用中断方式。它的一个输出()接LED对其进行状态监控, 这个LED在USB被连接时会发光,在数据传输时会闪烁, LED常亮或一直不亮说明USB接口有问题。图2 USB接口电路示意图USB设备通过5线电缆接入主机,其中线5为SHIELD,接线如图2。那4线分别是:VBUS(电源总线),GND(地线),D和D-。其中D+和D-线上的下拉电阻就将2条数据线拉到近地,当检测到任一条数据线电压接近VBUS,而其他保持近地电压,那么主机就知道该设备已经准备好了。主机通过检测是那一条数据线电压变高来确定设备是全速或低速,当D+数据线为高时,就为全速;当D+数据线为低时,就为低速。PDIUSBD12的全速模式通过软连接(SoftConnectTM)在D上接1个1.5k的上拉电阻。4.2 TMS320VC5402与PDIUSBD12的接口时序设计 由于D12的并行接口时序较慢,只能达到2MBps。而相对于D12来说,C5402的速度非常快,因此为保证C5402与D12之间时序的匹配,需要对C5402的时钟频率进行调整。图3 TMS320VC5402并行I/O口写时序(IOSTRB0)图3是TMS320VC5402并行I/O口的写时序。经分析可知,图中的参数th(D)IOW是指在信号变高(无效)以后,所写的数据将仍然保持有效的时间。C5402中这个值最小为H-3,最大为H+7,其中H=0.5tC(CD),tC(CD)最小值为10s,即th(D)IOW的最小值为2s,最大值为12s。所以所写的数据在信号无效以后还会维持有效,大约212s,实际的延时介于这两个值之间。图4是PDIUSBD12所要求的写时序。图4中,参量tWDH是与DSP(TMS320VC5402)的参量th(D)IOW相对应的另一个参量。这个参量反映了PDIUSBD12要求微控制器在向其中写数据时,所写的数据在信号无效以后,要继续保持有效的时间。这个参量最小值为10s,也就是说,PDIUSBD12要求所写的数据在信号无效以后最少要保持有效10s。图4 PDIUSBD12的写时序由此可以看出,C5402的写时序的保持时间为212s,而D12所要求的延时至少为10s,所以C5402的写时序不能保证满足D12的要求,而且该问题不能简单地通过C5402增加软件等待周期解决。为了实现两者之间可靠的数据交换,参考文献2给出了一种硬件电路解决方案,本文则从软件的角度,通过动态调整C5402的时钟运行频率来满足D12的读写时序要求。TMS320VC5402的时钟发生器是由一个内部振荡器和一个锁相环电路(PLL)组成,其中,锁相环主要由相位比较器(PC)、压控振荡器(VCO)和低通滤波器三部分组成。锁相环电路(PLL)具有倍频的功能,其输出信号的频率是输入信号的频率乘上一个倍数。正是锁相环电路(PLL)把外部输入晶振的基准频率变成多种频率提供给每个具体系统,以满足它们的需要。对于C5402,锁相环电路(PLL)的倍频系数是可以通过时钟模式寄存器(CLKMD)来设置,即通过设置时钟模式寄存器(CLKMD)来实现各种频率的切换。复位时时钟模式见表1。从附表可以看出,当时钟模式寄存器CLKMD的值设为1007H时,输出信号的频率为PLL2,即20MHz。所以H=0.51/(20106)109=25s,此时th(D)IOW的范围为2232s,可以保证满足D12的要求。因此在与D12进行数据交换时,可通过对时钟模式寄存器编程,将C5402的时钟频率降低到20MHz,以满足D12的读写时序要求。为了实现C5402从一个倍频因子到另一个倍频因子的切换,按如下步骤进行:(1) 清除PLLDIV位,选择DIV模式;(2) 检测PLLSTATUS标志,PLLSTATUS标志位为0,说明已切换到DIV模式;(3) 按照所要求的倍率(频率),修改CLKMD寄存器中的PLLMUL、PLLDIV和PLLNDIV;(4) 按照需要的牵引时间设置PLLCOUNT中的位。将时钟模式从PLL10切换到PLL2模式的程序为:STM 0b, CLKMD ;切换到DIV模式TstStatus: LDM CLKMD,AAND 01b,A ;测试STATUS位BC TstStatus,ANEQ ;ANQE为条件(A) 0STM 0001000001001111b,CLKMD ;如果STATUS位指示DIV模;式,复位PLLON/OFF位在系统完成USB数据传输之后,需要将系统恢复到100MHz的主频下工作,这时需要将时钟模式从PLL2模式切换回PLL10模式,其程序为:STM 0b, CLKMD ;切换到DIV模式TstStatus: LDM CLKMD,AAND 01b,A ;测试STATUS位BC TstStatus,ANEQ ;ANQE为条件(A) 0STM 1001000111110111b,CLKMD ;如果STATUS位指示DIV模;式,复位PLLON/OFF位经过上述对锁相环路(PLL)的倍频系数调整,完成了时钟模式的切换,从而实现了C5402与D12时序的匹配,达到了数据传输的目的。5 系统软件设计 USB设备的软件设计主要包括两部分:一是USB设备端的软件,主要完成USB协议处理与数据交换(多数情况下是一个中断子程序)以及其它应用功能程序,这部分程序又称固件;二是PC端的程序,主机端软件包括USB通信程序(WDM驱动程序,实现USB协议传输细节的处理和数据的交换,严格遵循USB1.1规范)和用户服务程序两部分组成。用户服务程序通过USB通信程序与系统USBDI(USB Device Interface)通信,由系统完成USB协议的处理和数据传输。PC机端程序开发的难度非常大,程序员不仅要熟悉USB协议,还要熟悉Windows体系结构并能熟练运用DDK工具。5.1 DSP方面的软件设计 对于DSP控制程序,目前没有任何厂商提供自动生成固件(firmware)的工具,因此所有程序都要由自己手工编制。USB的DSP控制程序通常由三部分组成:(1) 初始化DSP和所有的外围电路, 包括PDIUSBD12;(2) 主循环部分,其任务是可以中断的;(3) 中断服务程序,其任务是对时间敏感的,必须马上执行。根据USB协议,任何传输都是有主机(HOST)开始的。这样,DSP做它的前台工作,等待中断。主机首先要发令牌包(TOKEN PACKET)给USB设备,这里是PDIUSBD12。D12接收到令牌包后就给DSP发中断,DSP进入中断服务程序,首先读D12的中断寄存器,判断USB令牌包的类型,然后执行相应的操作。因此,USB的DSP程序主要就是中断服务程序的编写。在USB的DSP程序中要完成对各种令牌包的响应,其中比较难处理的是SETUP包,主要是终端0的编程。C5402与D12的通信主要是靠C5402给D12发命令和数据来实现的。D12的命令分为三种:初始化命令、数据流命令和通用命令。D12给出了各种命令的代码和地址。C5402先给D12的命令地址(实际的存储器映射分配地址为D0001H)发命令,根据不同命令的要求再发送或读出不同的数据(实际的存储器映射分配地址为D0000H)。因此,可以将每种命令做成函数,用函数实现各个命令,以后直接调用函数即可。5.2 在编写C5402的DSP程序时,需要注意事项(1) C5402的中断设置为EDGEMODE=1,这是C5402和单片机不同的地方,在单片机中应设置为电平触发。中断后一定要读上次传输状态寄存器(命令40-45H),以清除中断寄存器中的中断标志。这样,D12的中断输出才能变回高电平,这一点非常重要;(2) 在接收到SETUP包后,一定要调用Acknowledge Setup(命令F1H)重新使能端口0;(3) 在向IN端点写完数据后,一定要调用 Validate Buffer(命令FAH),指明缓冲区中的数据有效,可以发送到主机。(4) 当从OUT端点读完数据后,一定要调用Clear Buffer(命令F2H),以保证可以接收新的包;(5) 可以通过调用Read Chip ID(命令FDH)检查D12是否工作。该命令要读两个字节数据,如果硬件电路正确的话,返回值应该依次为12H、10H,这是判断硬件电路是否正确的有效而直接的方法。(6) USB初始化过程:地址使能;终端使能(此时LED亮);软件连接先断开,延迟1-2秒再连接;读取中断寄存器。完成初始化工作后,就可作其他的前台工作了,并在前台判断是否有Setup包(通过一个变量,当中断服务程序检测到有Setup包时,设置改变量),然后执行相应的控制传输。5.3 主机方面软件设计Philips已经为用户提供了D12的驱动程序,但是用户需要根据自己的要求更改INF文件,然后在Windows DDK中重新编译连接生成新的驱动程,以满足实际应用的需要。在编写主机应用程序时要注意对主终
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环境监测工程师职业水平测验试题及答案解析
- 2025年绿化主管招聘面试问题集
- 2025年护理学专业技能考试试题及答案解析
- 2025年安全用电知识竞赛题及答案
- 2025年初创企业高管职位面试指南与预测题集萃
- 2025年机械伤害应急处理手册及测试题
- 2025年物业安保主管面试常见问题集锦
- 2025年工程设计师执业能力评价试卷及答案解析
- 2025年财务管理主管实战面试题集
- 2025年建筑员笔试高频题解析
- 保安员在岗培训法律-2
- 初中英语中考专题训练阅读理解-应用文篇
- 《古文观止 上下 》读书笔记思维导图PPT模板下载
- YC/T 210.2-2006烟叶代码第2部分:烟叶形态代码
- GB/T 20671.1-2006非金属垫片材料分类体系及试验方法第1部分:非金属垫片材料分类体系
- 熵权法教学讲解课件
- 医师病理知识定期考核试题与答案
- 课堂因“融错·容错·溶措”而精彩
- 阳光晾衣房钢结构专项施工方案
- 安宁疗护服务流程
- 热分析DSC培训new
评论
0/150
提交评论