USB2 0 高速实时数据采集系统的设计与实现.doc_第1页
USB2 0 高速实时数据采集系统的设计与实现.doc_第2页
USB2 0 高速实时数据采集系统的设计与实现.doc_第3页
USB2 0 高速实时数据采集系统的设计与实现.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

文章编号:1009-8119(2004)04-0000-00USB2.0高速实时数据采集系统的设计与实现任敬辉 吴嗣亮 (北京理工大学 电子工程系,北京,100081)摘 要 介绍了一种基于USB2.0的高速实时数据采集系统的硬件及固件程序设计方案,及在不同的DSP、单片机之间移植固件程序的方法和调试过程中可能出现的问题及解决办法。关键词 USB2.0,DSP,ISP1581,数据采集Design and Implementation of the High-Speed Real-time Data Collection System Based on USB2.0Ren JingHui Wu Siliang(Department of Electronics Engineering, Beijing Institute of Technology, Beijing, 100081, China)Abstract To introduce the hardware design for the high-speed real-time data collection system based on USB2.0. To introduce the design of firmware and how to migrate it to various DSP and microprocessor. Keywords USB2.0, DSP, ISP1581, Data Collection高速数据采集中,数据采集速率通常会达到几兆甚至几十兆字节每秒。在这些大批量的数据面前,通常的存储设备是无能为力的。在众多的解决方案中,将数据实时的传输到PC机上存储成为方案中的首选。目前应用于PC的接口中,标准的串口速率只能达到230Kbps,虽然标准的并行口是串口速率的8倍,可仍不能满足实际的需求,因此需要有更快、更稳定的接口来解决这个问题。微软、Intel等公司联合制订的通用串行总线(USB)具有速率高、方便易用、价格低廉、易于扩展等特点。目前的USB2.0标准支持速率达到480Mbps,能很好的满足大部分的接口需求。本文以Philips公司的ISP1581为例介绍了基于USB2.0接口的高速数据采集与实时存储系统的软硬件设计方法。1 ISP1581简介ISP1581是Philips公司2002年推出的一款符合USB2.0协议的设备控制器,它除了具有一般USB设备控制器具有的特点外,还拥有诸如软连接、低频晶体振荡器、多种不同结构的DMA模块等自身特性。除了内部通用的DMA接口外,ISP1581还可通过一个高速的并行接口和不同的DSP、ASIC、单片机等微控制器相连接以实现高速的数据通信,这些特点使其可以理想地应用于打印机、扫描仪、CD、DVD、数码相机等外部设备上。ISP1581可直接与ATA/ATAPI外设相连接。内部集成了3.3V的电压调整器,因此可用5V或3.3V供电。频率为12MHz,内部集成了40倍PLL时钟乘法器来产生USB收发器的480MHz时钟信号。ISP1581是一款工业级芯片,工作温度范围从-4085,适合应用于对温度要求较高的产品设计中。2 硬件设计ISP1581的硬件设计相对比较简单。因其内部没有集成标准的8051,所以必须通过外接微控制器来完成初始化、枚举甚至传输等工作,这也使得它的固件设计和使用的微处理器有着很大的关系,在后续内容中将找到如何在不同的微处理器之间移植固件。ISP1581有两种总线结构配置,上电时通过BUS_CONF输入管脚进行选择。通用处理器工作模式(BUS_CONF=1)在这种模式下,芯片有独立的8位地址线、16位数据线可以方便的和各种DSP与单片机相连接,此外还有读写、片选等控制信号。这种工作模式的极限速度是25MB/s。电路连接如图1所示。分开总线模式(BUS_CONF=0)在这种模式下,芯片有8位地址/数据复用的微处理器总线和16位DMA数据总线以及一些控制信号,通常工作与不同类型的DMA方式下,如GDMA、UDMA等。这种工作模式的极限速度是25MB/s-30MB/s。电路连接如图2所示。DSP/ASIC/单片机(R/W)/RD读信号写信号DS/WRISP1581地址/数据8AD7:0ALE/A0地址锁存使能中 断INTDMA16DATADREQDACKDIORDIOW图2片 选CSDSP/ASIC/单片机等各种MCUISP1581AD7:0地址线数据线DATA15:0读信号写信号中 断(R/W)/RDDS/WRINT图1168可以看出,ISP1581的电路设计非常简单,ISP1581完全可以作为通用外设来处理。它与MCU数据的交换是通过寄存器来进行的,例如写了端点索引后,就可以通过数据端口寄存器(地址0x20)来往端点中填充或者从端点里读出数据。3 固件程序设计ISP1581的固件程序可分为主程序、中断服务程序和请求处理程序三部分。其中主程序的主体部分是个无限循环,用来循环查询一些标志,如请求处理、需要填充数据等标志,一旦标志有效就进入相应的子程序进行处理。中断服务程序来处理ISP1581产生的硬件中断,同时根据中断的不同来将不同的标志置位或清除。请求处理程序负责完成枚举阶段收到的标准请求以及在正常工作阶段收到的厂商请求等。3.1主程序设计主程序里需要完成的工作有:初始化MCU,初始化和配置ISP1581,循环查询标志等工作,总体流程如图3。对于不同的MCU和硬件设计,固件程序的主要差别在ISP1581的寄存器地址映射及访问方法、中断的产生及处理方法以及不同MCU的自身初始化部分。以ISP1581与TMS320F206接口为例,如把ISP1581的寄存器地址映射到数据空间,范围为0x7F00 0x7FFF,则对于通用处理器模式,初始化ISP1581的C代码如下:*((unsigned short *)0x7F0C) = 0x08; /设置模式寄存器,使能全局中断*((unsigned short *)0x7F00) = 0x80; /使能缺省的地址0*((unsigned short *)0x7F10) = 0x60; /设置中断配置寄存器*((unsigned short *)0x7F14) = 0x3d21; /设置中断屏蔽寄存器*((unsigned short *)0x7F0C) = 0x09; /设置模式寄存器,使能软连接当使能软连接后,ISP1581就会收到主机的复位信号,从而进入复位中断。如果把寄存器地址映射到I/O空间,那么寄存器的读写则要改为I/O读写方式。ISP1581的中断触发方式可设置为电平或边沿,且极性可设置,这使得它可以方便的和不同MCU的中断触发方式相匹配。中断处理方式可以是硬件中断或者查询中断,经验证,只要中断能及时的得到处理,两种方式均可正常工作。读写端点与读写寄存器相同,只需先写索引寄存器选中端点,然后对数据端口寄存器读写即可,一次可以读写8位或16位,依据数据总线的位数确定。图4中断服务程序读中断寄存器否总线复位中断?是否Setup中断?是否EP0中断?是否其它端点中断?是置连接速度标志重新初始化1581读取setup数据置主机请求标志进入中断服务程序并作相应处理设置有数据in或out传输标志中断结束主程序MCU自身初始化初始化配置ISP1581否有主机请求?有数据传输?是是否进入请求处理程序循环进行数据读写操作图3在进行高速实时数据传输时,往端点写或从端点读出数据的程序段可放在主程序的循环中,并通过空满标志来判断。这种处理的优点是可以随时响应硬件中断,不会因USB读写数据时间过长而影响其它需要及时处理的中断。当然,如果数据是非实时的,那完全可以放在中断处理程序中完成,只要把USB中断的优先级设置低一些,允许中断嵌套即可。对于实时传输,除了固件要做时间估算外,驱动程序也要作相应的处理才能达到数据完整性的要求。在实际应用中,将ISP1581与输入时钟12Mhz(内部5倍频)的DSP TMS320VC33接口,采用通用处理器模式,使用批量传输方式,实现了数据率为30Mbps 40Mbps的无误传输。当与输入时钟30MHz(内部5倍频)的TMS320F2812接口时,传输速率达到70 Mbps 80Mbps。如果提高MCU的时钟频率或改用DMA方式,速度将会有进一步的提高。3.2 中断服务程序USB设备控制器是全中断驱动的,所有的信息交互都通过中断来进行,并且除远程唤醒外的所有传输都要由主机启动,设备只负责对主机的请求做出响应,因此,USB设备的主要功能部件需在主机端实现,使USB设备端的制造成本大大降低,这也是USB接口获得如此广泛应用的一个重要原因。中断服务程序实现对各种中断事件的处理,总体流程如图4所示。进入中断服务程序后,首先要读取ISP1581的中断寄存器,判断产生中断的原因,然后调用相应的子程序来处理。中断原因主要有:Setup中断、挂起、唤醒、SOF、高速状态检测、端点0中断以及其它端点中断。其中流程图中提到的中断是必须处理的,而其它的中断则根据情况的不同而做相应的增减。当收到Setup中断时,首先要读出8字节Setup包的内容,然后设置标志位,当主程序查询到该标志后,执行请求处理程序。当收到端点0中断时,除读写数据外,还要根据情况给主机发送握手信号,当收到其它端点中断时,设置有数据的标志,当主程序查询到该标志后会根据情况从端点读出数据,或者把数据填充到端点中。3.3 标准或厂商请求处理程序请求处理程序负责处理枚举阶段主机发给设备的标准请求以及正常工作时主机发送的厂商请求,标准请求包括获得设备描述符、设置地址、获得配置描述符等。此部分程序可以在中断处理程序中完成,也可以在主程序中完成,对于前者,该程序位于Setup中断处理子程序之后。对于后者,一般是在Setup中断中设置标志位,然后在主程序的循环中查询这个标志位,一旦标志位有效则执行请求处理程序,在程序中根据请求的类型再调用相应的子程序处理。3.4 调试中可能遇到的问题及相应解决方法在USB固件程序调试中,枚举部分,也就是标准请求处理部分是个难点,下面根据可能出现的现象来分析原因并给出解决办法。硬件设计完成后,连接电缆,然后运行固件程序,但主机并未发现新设备。这种现象一般是硬件电路的问题,需要检查D+、D信号线是否接反、输入时钟信号是否正确以及复位电路是否正确等。运行固件程序后,主机显示“发现新硬件”,但没有出现加载驱动的窗口。这种现象说明枚举没有成功。枚举分两个阶段,第一个阶段包括5个标准请求:获得设备描述符(80 06 00 01 00 00 00 40),设置地址(00 05 00 xx 00 00 00 00),获得全部设备描述符(80 06 00 01 00 00 00 12),获得配置描述符(80 06 00 02 00 00 00 09),获得包括接口和端点信息的配置描述符(80 06 00 02 00 00 00 xx),括号内为8字节Setup包内容的16进制表示,其中设置地址中的xx表示设备的地址,它是一个1127内的数值,由主机确定。最后一个xx是全部配置描述符的长度或者为FF。这5个标准请求正确完成后,主机上会弹出发现新硬件,加载驱动的对话框。枚举不成功最可能的原因是描述符错误或者发送给主机的数据长度与主机要求的不符,也有可能因为硬件电路设计不好而造成干扰过大,使得传输的数据出现错误,因此要着重检查描述符及请求处理程序。主机弹出加载驱动窗口,但出现了“指定位置不包含硬件信息”错误。这种现象最可能的原因:固件程序里设备描述符中的PID和VID与INF文件中的不一致,将二者统一后即可解决。主机弹出加载驱动窗口,但加载驱动后设备不可用。出现这种现象可能是枚举的第二阶段没有成功,或者加载的驱动程序与设备不匹配。枚举第二阶段一般只要设置接口(00 09 00 xx 00 00 00 00,其中xx是接口号,如果设备只有一个接口,那么该值为01)成功,设备即可正常工作。对于这种情况需要调试驱动,可用调试驱动的软件如Softice来跟踪驱动的加载过程,其中着重检查建立管道列表的程序部分,通常问题就能解决。设备驱动加载成功,无法读写数据或者读写数据出现错误。导致这种现象的原因有可能是固件程序、驱动程序、应用程序的问题,因此需进行联合调试。通常的方法是在固件程序的相应代码段设置断点,运行应用程序,然后用Softice等工具跟踪到驱动程序,这样就可以找到问题出现在数据传输通道的哪一部分,然后进行相应的修改。总之,在调试中遇到问题时,要耐心分析问题产生的原因,找到原因后就可找到解决的办法。5 结束语本设计使用ISP1581的通用处理器模式,MCU采用速率较高的DSP,达到了80Mbps的较高传输速率,但是这与ISP1581 200Mbps的极限速率还有很大的差距。影响速度的最根本的因素在于与之相接口的MCU的速率,如果要提高传输速率,可以采用ISP1581的DMA模式或者提高MCU的速率。但要注意的是,在设计过程中要考虑ISP1581的读写时序是否与MCU的兼容,否则设备将无法正常工作。由于USB接口拥有很高的传输速率和低廉的成本,因此获得了广泛

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论