基于DSP和专用接口芯片的USB实现方案

发布者:JoyfulSunflower最新更新时间:2012-01-03 关键字:DSP  USB 手机看文章 扫描二维码
随时随地手机看文章

  自1994年11月提出通用串行总线(USB)以来,USB以其传输速率高、支持热插拔、易于扩展的突出优势,发展速度惊人,迅速席卷电子产品世界。在市场需求的强力驱动下,从1998年开始,USB接口进入测量仪器领域,并逐步被许多著名仪器公司接纳。在测量仪器中扩展USB接口已经成为一种发展趋势。针对不同的测量仪器,寻求一种普遍适用的USB接口解决方案,对于测量仪器的开发设计有十分重要的意义。

  方案选择

  开发USB设备一般有三种方式:一种是使用带USB接口的专用微控制器(MCU),这类MCU有自己的系统结构和指令,从底层专用于USB控制,比如Cypress公司的CY7C63xxx和CY7C64013,这类MCU的开发需要用专用工具,且性能有限;第二种方式是使用带USB接口的通用MCU,这类MCU只是基于一般芯片内核增加了USB接口,比如Intel公司的8x931、8x930以及Cypress公司的EZUSB等,这类MCU的开发语言和开发工具都和一般MCU相似,因而较易入手,但其缺点是成本较高;第三种方式是使用纯粹的USB接口芯片,通过外加MCU对其控制。如Philips公司的PDIUSBD12、ISP1581以及National公司的USBN9602、南京沁恒公司的CH372、CH375等。这类USB接口芯片价格较低、接口方便、灵活性高,针对不同的硬件环境可以配合多种MCU使用,如单片机、DSP、FPGA都可以。综合各方面因素考虑,本设计选用第三种方式,即采用专用USB接口芯片为测量仪器扩展USB接口。

  硬件设计

  USB控制器

  USB控制器通过控制USB接口芯片实现协议处理和数据交换。在本设计中选用DSP芯片TMS320VC33作为微控制器,这主要是基于两方面的考虑:一是其运算速度较快,指令周期仅为13nS,可以最大限度地发挥USB接口芯片的潜力;二是该DSP芯片性价比高,且具有浮点运算功能,扩展浮点精度可达40位。

  USB接口芯片

  USB接口芯片用以完成USB通信底层的数据链路级交换,并对本地微控制器提供一个并行接口。

  本文选用PHILIPS公司的PDIUSBD12作为USB接口芯片。该芯片可与任何微控制器实现高速并行接口(2Mb/s),允许使用现存的体系结构并使固件投资减到最小。这种灵活性减少了开发时间、风险和成本,是开发高效低成本的USB外围设备的一种快捷途径。

  PDIUSBD12一共有三组端点:端点0完成控制传输;端点1可以配置成中断传输;端点2有128B的缓冲区,是主要的数据传输端点。

  接口电路

  采用单独地址/数据总线配置,即用DSP的某地址线控制PDIUSBD12的A0引脚,实现命令数据的选择。A0=1表示传送命令,A0=0表示传送数据。片选(CS )及挂起(SUSPEND)信号分别由DSP的I/O口控制。读写选通信号WR 、RD 可以用DSP的R/W引脚及其取反后控制。但这样需要在电路中增加反相器,为了节约器件从而缩小电路体积,可以另外选择一个I/O口控制PDIUSBD12的读选通RD。本设计中选用PAGE1,通过对不同地址的访问来区分对PDIUSBD12的读写操作。这样PDIUSBD12只占用微控制器的三个地址资源,其一用来向PDIUSBD12写命令,其二用来向PDIUSBD12写数据,另外一个用来从PDIUSBD12读数据。对DSP而言,PDIUSBD12就相当于一个有8位数据总线和3个地址的存储器件。

  设备采用自供电方式,需要将EOT 通过一个10k?的电阻接至USB电缆的VCC(+5V)端,并加1M?下拉电阻,借此检测USB设备是否已经连接到USB口。

  软件设计

  USB软件设计包括固件(firmware)程序、PC端的驱动程序和应用程序。其中固件程序要求编写者对复杂的USB通信协议有深刻的理解,编程难度较高,在本论文中将详细介绍。

  固件编程

  固件程序是写入MCU内的程序,使MCU可以完全按照USB协议,识别接收到的信息包类型,对包的内容、意义进行分析,并按照要求完成相应的动作。通过这些不同类型包的传递,完成MCU与接口芯片的命令及数据交换,进而实现主机与设备间的通信。

  固件程序设计成中断驱动模式,采用模块化设计。  

  主循环

  主循环中主要完成DSP的寄存器及端口初始化,向PDIUSBD12发送设置模式命令,接通SoftConnect。判断是否接收到建立包(setup package),若收到则调用标准请求处理程序进行处理,若收到主机请求信号,则调用数据发送程序发送数据。

  中断处理程序

  中断处理程序是整个固件程序设计的重点。将DSP设置为下降沿触发,当PDIUSBD12接收到主机发送的信息包时,触发DSP进入中断。首先通过读取PDIUSBD12的中断寄存器判断所发生中断的类型,然后根据具体的中断类型进入相应的处理子程序。  

  标准请求处理程序

  USB协议中规定了11条所有USB设备都必须支持的标准请求,这些请求都是通过端点0发送的。标准请求处理程序对主机发出的标准请求进行响应,获取设备的性能及状态,并给设备分配地址且进行相应配置,最终完成枚举过程。

  硬件接口及PDIUSBD12命令操作程序

  硬件接口程序集成了DSP对PDIUSBD12的读写操作,是整个固件程序中最底层也是使用最频繁的部分,将它独立成一个模块编写极大地方便了程序在不同硬件平台上的移植。值得注意的是:PDIUSBD12要求数据线上的数据建立时间和保持时间必须大于40nS,因此编程时需要插入至少4个软件等待状态。另外,因为PDIUSBD12的最小读写周期为500nS,所以在每次对其进行读写操作后必须增加适当的延时。

  数据发送及接收程序

  当用户通过主机端应用程序向设备索要数据时,DSP调用数据发送子程序完成数据发送,针对发送数据量的大小,可以选择使用端点1或者端点2完成。对于主机发送数据的接收,在端点0及端点1的IN中断子程序中即可完成。发送数据子程序如下:

  

  调试

  固件程序对时间敏感,所以编程时要特别注意时序问题。由于USB枚举过程很快,如果连续三次接收不到应答包就结束枚举,所以调试时要注意不能采用CCS的单步调试,可以采用断点调试。调试过程之初经常会遇到的一种状况是指示灯闪烁三次以后熄灭,这说明主机检测到了设备连接,但无法和设备进行对话来了解设备的信息。这表明固件程序还没有开始正常工作,需仔细检查程序中的错误之处。

  调试过程之初,可以使用以下两种方法检测硬件连接是否正确:

  1. 使用命令字FDh读取PDIUSBD12的ID号,正常状态下读出的两个字节应该为12H和10H。

  2. 通过设置PDIUSBD12工作模式,改变输出时钟频率。在CLKout引脚测量输出波形,观察是否与设置值相符。

  若以上两条满足,则说明硬件连接基本没有问题。

  PC端软件

  PC端软件包括设备驱动程序和应用程序两部分。

  系统驱动程序是基于WDM (Windows Driver Model) 驱动程序模型设计的,包括四个模块:初始化模块、即插即用管理模块、电源管理模块和I/O功能模块。本设计选用辅助工具DriverStudio,它能很好地和DDK结合,编程思路也比较清晰。首先使用驱动向导(DriverWizard)建立项目,设置驱动程序类型,设置USB设备的VID(Vendor ID)和PID(Product ID)及其各端点的属性。给端点2增加读写函数代码。这样就创建了一个驱动程序的总体框架。再对生成的代码进行修改编译和测试,完成USB驱动程序的开发。

  应用程序是为了实现用户和设备的接口,基本功能包括检测USB设备、开启或闭合USB设备、设置USB数据传输管道、实时从USB接口采集数据以及显示数据等。程序使用VC++编写,调用Win32的应用程序接口(API)函数,实现应用程序和设备驱动的通信。使用PHILIPS公司提供的EasyD12.dll动态链接库可以使开发过程更加轻松快捷。

  结束语

  系统测试结果表明:主机与设备间的数据传输平均速率达到130kb/s,完全可以满足一般测量仪器的需要。此项接口设计方案具有良好的可移植性,针对不同的硬件平台仅需做少许修改即可应用。随着USB技术的进一步发展,USB2.0和USB OTG规范的推出以及无线USB的出现,USB仪器将成为测量仪器的发展方向,并推动传统仪器向小型化和微型化方向发展。

关键字:DSP  USB 引用地址:基于DSP和专用接口芯片的USB实现方案

上一篇:关于数Gpbs高速存储器接口设计的分析
下一篇:苹果3.9亿美元收购闪盘组建供应商Anobit

推荐阅读最新更新时间:2024-05-02 21:49

利用USB UART桥接器实现单片机在线编程
引 言:   通用串行总线(USB)是一种支持即插即用的新型串行接口,使外设到计算机的连接更加高效便利。这种接口适合于多种设备,不仅具有快速、即插即用、支持热插拔的特点,还能同时连接多达127个设备,解决了如资源冲突、中断请求和直接数据通道等问题。因此,越来越多的开发者欲在自己的产品中使用这种标准接口。RS232是单个设备接入计算机时常采用的一种接入方式,其硬件和软件协议比较简单,有很多传统设备采用了这种通信方式。将USB转UART技术应用于单片机与PC机之间的数据通信,在计算机上产生一个虚拟的COM口,用户只需按照通用串行口一样使用USB口即可。这样不仅能使单片机具备USB通信的诸多优点,简化了USB编程,同时还可以利用USB对
[应用]
USB转RS232 TTL
USB转RS232 TTL    电路图      usb虚拟串口与232串口的通信 以前我的数据采集器用的是串口缺点很多1,耗电大5-8毫安,但是采集电路耗电才2毫安以下。第二速度慢。我现在根据别人的电路加以改造用一个mega8制作了一个usb口的下载线它只要直接接到单片机的RXD,TXD就可以与计算机的USB口通信了,而且速度比com口快10倍,但是我用不上。用19200的速度我已经满意了。用USB口有许多优点我发现可以同时多个设备通过多个USB口工作,还解决了供电的问题,有的电脑没有串口现在就不用担心了。我的电路只要输入驱动程序,我只要插入设备计算机就可以自动识别我的USB
[嵌入式]
DSP应用设计关键之接口设计(四)
四、TMS320C32的存储器接口设计   1 TMS320C32的外部 存储器接口 的特点   TMS320C32是一个32位微处理器,它可以通过24位地址总线、32位数据总线和选通信号对外部存储器进行访问。其外部存储器接口结构如下图l所示。      图1,TMS320C32的外部存储器接口图   在图1中,引脚(引脚,又叫管脚,英文叫Pin。就是从集成电路(芯片)内部电路引出与外围电路的接线,所有的引脚就构成了这块芯片的接口)PRGW是用来配置外部程序存储器的宽度的。当PRGW引脚为低电平时程序存储器宽度为16位;当PRGW引脚为高电平时程序存储器宽度为32位。STRBO和STRBl各为一组访问外部存储器
[模拟电子]
<font color='red'>DSP</font>应用设计关键之接口设计(四)
DSP与PC机串行通信接口设计及应用
tms320f24x 是美国 ti 公司tms320系列定点数字信号处理器(dsp)之一,tms320f240是f24x系列面向数字控制芯片的典型代表。由于tms320f240并不具备人机界面,在实际使用过程中,需要为它提供一个人机接口或上层控制接口,以便于观察控制效果或传递必要的控制信息。因此,实现tms320f240与pc之间串行通信接口的设计方法,具有较高的实用价值。 串行通信接口的硬件设计 f240芯片内部集成了一个串行通信接口(sci)模块,该模块是一个标准的通用异步接收/发送(uart)通信接口,通信接口有scitxd(sci发送输出引脚)和scirxd(sci接收输入引脚)两个外部引脚,引脚的信号电平为ttl类型。
[嵌入式]
<font color='red'>DSP</font>与PC机串行通信接口设计及应用
百佳泰正式取得USB PD 2.0 Silicon和USB Type-C™ Power Bricks认证
USB-IF 协会正式授权百佳泰成为大中华区第一家 USB PD 2.0 认证测试实验室( Authorized Test Lab ; ATL ),提供 USB PD 2.0  芯片( silicon )以及 USB Type-C ™外部电源供应器( USB Type-C ™  Power Bricks )相符性测试服务与技术咨询。 USB PD 2.0 (USB Power Delivery 2.0) 支持 USB Type-C 连接器规格、双向电流输出,另可提供高达 100 瓦功率,能够满足一般消费者对于快速充电之需求,可应用在手机、笔记本电脑、一般家电、车用电子产品等。目前 USB-IF 协会开放认证测试的项目包含 USB
[嵌入式]
基于USB的无线传输系统设计
   引言   距离产生了通信的需求,距离的增加对通信提出了更高的要求。和有线通信相比,无线通信技术由于其更为方便实用而越来越得到更多的应用,实现无线传输的方案也是多种多样。本文中设计并实现了一种应用无线传输技术的单片机系统,该系统中使用USB2.0 接口与上位机相连,将数据传输到下位机,数据经无线传输后控制手持式便携设备。应用该系统的教学仿真器已经在实际中进行了应用,且得到了很好的效果。   1 系统的设计   为了实现计算机对某些系统的控制,常常使用单片机对下位机进行控制,而上位机和下位机之间可以通过串行接口、并行接口等接口实现通信。本文中通过USB2.0 接口实现了一个无线通信系统,系统的连接如图1 所示。 图
[单片机]
基于<font color='red'>USB</font>的无线传输系统设计
基于DSP的忙音检测设计
忙音是某一频率单音和静音交互出现的一种提示音,通常用于表示电话占线。在某些实际应用过程中,需要对这种忙音进行检测。现阶段这类的信号音检测大多是用专用芯片实现的,多数是在出厂前需要预先设定需要检测的频率值等参数。提出一种基于DSP 的软件实现忙音检测的方法,利用单音和静音通过 陷阱 滤波器 后的能量幅值不同来检测单音,再根据单音和静音所占的比例来检测忙音。软件实现不需要额外的芯片,可以集成于已有的DSP 软件中,而且可以灵活配置检测参数,同时检测多种频率忙音。 1 单音检测 的DSP 实现 1.1 单音检测原理 单音信号检测的方法是将输入信号通过一个陷阱滤波器,然后通过比较输出信号和原始信号的平均幅值来判断是否
[嵌入式]
基于<font color='red'>DSP</font>的忙音检测设计
飞机刹车模糊神经网络DSP嵌入式控制系统
    摘要: 对现有飞机刹车防滑系统的控制算法进行了改进,采用了神经网络的BP算法和模糊实时控制,并且数字信号处理器(DSP)在嵌入式系统中实现了神经网络算法。结果表明,飞机防滑刹车效率有了明显改进,鲁棒性增强。     关键词: 数字信号处理 飞机刹车系统 神经网络 模糊控制 飞机刹车系统是飞机上具有相对独立功能的子系统,承受飞机的动、静态载荷及着陆时的动能,实现飞机制动控制。 从20世纪40年代至今,飞机刹车系统已发展到第四代。第一代飞机刹车系统由离合开关调节压力来实现刹车控制;第二代用固定参考减速度为误差门限进行控制;1967年Hydro-Aire公司的第三代飞机刹车系统,以一定的滑移率为误差门限
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved