日期:2023-01-24 阅读量:0次 所属栏目:计算机应用
摘 要:本文深入探讨了USB2.0协议,在此基础之上设计了基于USB2.0的DSP与PC通信接口的硬件电路和软件。
关键词:USB 2.0; DSP;通信接口;硬件设计;软件开发
一、系统设计需求分析
一般超声检测信号的频率都不会超过2-10MHz,根据采样定理,采样频率最好是信号最高频率的3-5倍。目前高速数据采集系统使用的采样频率在50MHz-100MHz之间,采样位数为12位,那么要处理的数据量将达到每秒75MB-150MB,故应满足:
(1)要求数据传输的时间必须尽量短,从而减少DSP与PC之间通信的时间开销,故需要选用高速数据接口;
(2)需要建立数据缓冲机制,以减小数据传输过程中的丢失或错误;
(3)为避免模拟数字混合电路带来的噪声干扰,保证数据传输的可靠性与稳定性,需要为接口电路设计独立的供电电源。
二、系统设计思路
针对设计要求,本文的设计思路是:
(1)与其他类型的接口比较而言,USB 2.0接口具有较高的通用性和快速性,60MB/S的高速传输速度可满足数据传输需要;
(2)采用FIFO作为数据缓冲通道,以简化传输程序设计,提高控制器的效率,减小数据的错误传输;
(3)以USB 2. 0控制芯片为核心,设计接口硬件电路,包括独立电源电路、USB控制器与DSP的连接电路以及USB控制器与FIFO芯片的连接子电路等。
三、硬件软件电路设计
3.1电源电路
电源是保证各芯片正常工作的基础,本文采用Linear Technology公司的电源稳压芯片LT1763CS8-3.3来实现。其输入电压为1.8-20伏,输出电压3.3伏,为CY7C68013USB控制器芯片提供电压电源电路如图1所示:
图1芯片电源电路
3.2软件系统设计思路
本系统的软件设计主要分为四个部分:主机程序、USB固件程序设计、USB驱动程序设计以及DSP数据传输程序设计。对于USB固件程序采用了GP工F波形图设计的方法,简化了设计步骤;USB驱动程序的设计参考了Cypress公司提供的通用软件开发包。系统软件总体设计思路如图2所示。
图2软件总体设计思路
3.3固件程序设计
固件(Firmware)程序负责处理PC主机发来的各种USB请求,实现数据的传输。在GPIF模式下,CY7C68013的固件采用中断方式,固件总是在等待主机的命令,然后根据命令去执行相应的程序。这样既保证了快速的数据传输和较好的软件结构,又简化了编程和测试并且使得程序功能易于扩展。
Cypress公司针对其EZ-USBFX2系列的USB芯片给出了一个Firmware库和Firmware框架,均使用Kei1C51开发。
Firmware库提供了一些常量、数据结构、宏、函数来简化对芯片的使用。用户只需要在源程序中包含进加到项目中即可。fx2.h、fxZregs.h和fxZsdly.h,并且把和添Firmware框架实现了初始化芯片、处理USB电源管理功能。该框架不需添加任何代码,编译后产生的.HEX文件下载到芯片就能和主机进行基本的USB通信,只是不能完成用户特定的任务。对于TD_Init()、TD_Poll()等函数中添加初始化代码和完成特定的功能的代码即可。该程序首先初始化所有的内部状态变量,然后调用TD_Init()函数进行初始化,并打开中断。之后,固件程序开始列举USB设备(调用UsbDisconnect函数),直到在端点0上接受到SETUP令牌包时为止。具体步骤为:
(1)初始化休眠模式、远程唤醒与自供电等;
(2)初始化用户设备;
(3)定向USB描述符;
(4)使能中断;
(5)重列举;
(6)主循环,等待主机请求。
USB设备的使用需要驱动程序的支持,驱动程序是连接USB控制器与PC机的纽带。很多USB芯片厂商都为其USB芯片提供通用的驱动程序,这在一定程度上简化了设计步骤。
3.4 INF文件
INF文件(Device Information File)主要用来指示安装Windows驱动程序*.SyS,一般一个Windows驱动程序要配合一个INF文件才可以进行安装。INF文件包含了相应的USB设备及其驱动程序的详细信息,这些信息包括什么设备使用什么驱动程序,设备信息在系统注册表中的存储等。INF文件可以确保USB设备能够在连接到主机的时候被正确地配置。
1、INF文件处理过程
在安装了USB设备驱动程序后,通过INF文件将该USB设备的一些基本信息保存在系统注册表中,另外驱动程序文件(*.SyS)和相应的INF文件也将复制到指定的系统目录中。
当USB设备连接到PC后,windows操作系统将检测到USB设备的连接,然后将系统中所有的INF文件中的数据信息与该USB设备进行比较,逐个找到与之相符合的INF文件,整个过程可以分为三步:
(1)系统从连接的USB设备中获取设备描述符的供应商字段(idVender)和产品字段 (idProduct),从中得到设备的硬件ID。
(2)系统查找与该硬件ID相符合的INF文件,如果找不到,系统将读取接口描述符,从中提取该USB设备的兼容ID,并查找与兼容ID相符合的INF文件。
(3)如果仍然没有找到,则系统提示用户自己安装该USB设备的驱动程序。
2、INF文件的结构
INF文件是windows操作系统下用来描述设备或文件等数据信息的文件,其是一个文本文件,由标准的ASCII码组成,可以用任何一款文字编辑器查看修改其中的内容。
INF文件的组成有节(Sections)、键(Key)和值(Value)3部分,INF文件的节按照层次结构排列,以方括号形式开始,Key为项目名称,Value为该项目的值。
3.5 Cypress通用USB驱动程序
Cypress为其EZ-USB系列USB接口芯片提供了一个完整的开发包,其中包括通用的USB驱动程序,用户可以在其基础上进行修改以满足USB设备的开发和调用。
Cypress的通用USB驱动程序的特点如下:
(1)采用WDM驱动模型,经由WHQL鉴定;
(2)兼容USB2.0设备;
(3)支持Windows即插即用和电源管理;
(4)支持USB远程唤醒;
(5)支持控制传输端点、块传输端点、中断传输端点和同步传输端点;
(6)支持同时连接多个USB设备;
(7)支持用户自定义GUID,而不用重新编译驱动程序;
(8)支持高带宽的USB数据传输。
3. 6 DSP与USB通信程序
DSP需要通过USB接口把大量数据传输到主机中。在GPIF模式下,GPIF状态机产生特定的触发和握手信号来与DSP进行通信。当USB读取指令,通过FIFO的EF会向DSP发出FIFO内存空的信号,DSP接收到后
会产生一个中断,跳转到数据传输程序,当FIFO向USB控制器发出满信号,说明FIFO存储器己满,DSP停止发送,USB控制器开始接收数据,完成读数据操作。下面简单介绍DSP的读写控制算法:
USB WR=1;
Int n=0;
for(int i=0;I
FD 2004,2(10): 63-66. 本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/241985.html
上一篇:浅谈计算机教学改革中的素质教育