版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于EZ-USB的数据传输接口设计摘要:利用EZ-USB接口芯片AN2131Q实现了基于TMS320C5409的水声信号采集及混沌特性研究系统中的高速数据通信,提出了一种采用FIFO缓存芯片实现AN2131Q与TMS320C5409的连接方法,深入研究了EZ-USB序列接口芯片的固件、设备驱动和用户程序开发过程。 关键词:AN2131Q; TMS320C5409; IDT72V02;数据通信 0 引言USB控制器采用通用连接技术以实现与外设的简单快速连接,具有连接灵活、使用方便、速度快、扩展能力强等优点,使得其一些高速、高精度的信号采集领域中, 具有极大的应用价值1。 EZ
2、-USB序列芯片AN2131Q是Cypress公司的内嵌微控制器的80pin的USB接口控制芯片,它采用了一种基于内部RAM的解决方案,允许客户随时不断地设置和升级,不受端口数、缓冲大小、传输速度及传输方式的限制2。片内嵌有一个增强型8051微控制器,与标准的8051相比,其速度快3倍。本文将USB控制器EZ-USB2131Q用于基于TMS320C5409的水声信号采集及混沌特性研究系统中,实现了数据的高速传输。 1 USB控制器与DSP的连接1.1 AN2131Q和TMS320C5409的硬件连接 在TMS320C5409和USB控制
3、器AN2131Q硬件连接中,采用FIFO(first in first out SRAM连接方法,除了能确保DSP和主机间的数据传输速度只受USB协议限制外,还能使USB控制器和DSP之间的最大数据交换速度超过USB总线的速度。 由于USB控制器AN2131Q内嵌有加强型的8051处理器,可使用两片FIFO(FIFO选用IDT72V02,它具有1K×9位的内存可以实现USB控制器和DSP之间的双向通信。从USB控制器AN2131Q或者DSP传输的数据首先保存在FIFO中,然后再由DSP或者AN2131Q读走,从而使得数据的传输不会出现堵塞情况,其硬
4、件连接框图如图1所示。图1 AN2131Q和TMS320C5409的连接图1.2 AN2131Q和IDT72V02的连接IDT72V02状态信号有空(EF、半满(HF和满(FF,它们都在FIFO为低电平时有效。其与AN2131Q的连接如图2所示。图2 AN2131Q和IDT72V02的连接图1.3 AN2131Q和TMS320C5409的软件连接USB控制器AN2131Q和DSP之间的软件部分包括4个部分,分别是USB控制器AN213lQ对FIF01的
5、写、USB控制器AN2131Q对FIF02的读、TMS320C5409对FIF01的读、TMS320C5409对FIFO2的写。为了描述的方便,将FIF01的3个状态信号分别称为 、 和 ,对应FIF02的为 、 、 。(1USB控制器AN2131Q写FIFO1 当USB总线上有数据要传送至TMS320C5409时, AN2131Q查询 ,若 无效, AN2131Q一次向FIFO1写入一个数据包(数据包要小于或等于FIFO1容量的一半,而且AN2131Q一次向FIFO1写入每一个字节时不需再查询 。(2 TMS320C5409读FIFO1TMS320C540
6、9每次从FIFO1中读入一个数据包,每读一个字节前,DSP需要查询 ,只有当 无效(FIFO1不为空时,DSP才能进行读操作。(3 TMS320C5409写FIFO2当TMS320C5409有数据要传送至主机时,TMS320C5409把数据打包,每次向FIFO2中写入一包数据,方法与USB控制器AN2131Q写FIFO1相同,惟一不同的是TMS320C5409查询的信号是 。写完一包数据后,TMS320C5409通过操作控制字向USB控制AN2131Q发一个中断信号,TMS320C5409在写下一包数据时必须等到AN2131Q应答。AN2131Q应答的方法是利用TMS320C5409的外部中断
7、INT1中断DSP。(4USB控制器AN2131Q读FIFO2USB控制器AN2131Q收到TMS320C5409发出的中断信号,应答DSP后,从FIFO2中读入一包数据,不用再查询 。 2 USB接口软件设计USB接口软件主要分为三部分:固件程序、驱动程序、主机应用程序。主机应用程序通过驱动程序与系统USBDI( USB Device Interface进行通信,由系统产生USB数据的传送动作,固件程序则响应来自系统的USB标准请求,完成各种数据的交换的时间处理。2.1 EZ-USB固件程序开发固件代码存储在AN2131Q内部的8KBR AM中,它是用来初始化USB总线设备的。固件
8、代码包括了设备的信息,它以描述符形式指定了制造商号、产品号和其他USB总线协议中所需要的信息,其主要功能是实现设备枚举过程3。为了简化和加速用户对EZ-USB芯片的开发过程,Cypress公司提供了Keil C51 环境下编写固件程序的框架。该框架集成了开发USB总线设备所需的基本函数,用户可以在此基础上加入自己的代码实现特定的要求。固件程序框架如图3所示。图3 EZ一USB固件程序框架EZ一USB固件程序框架首先初始化所有的内部状态变量,然后调用用户初始化函数TD_Init(,然后初始化USB总线设备接口为非配置状态,并同时打开中断。当完成上面的任务后,EZ一USB 固件程序就开
9、始重新枚举设备直到端点0收到SETUP包为止。一旦EZ-USB收到SETUP包,固件程序就开始进行任务分配4。任务分配就是依次重复地执行下面的过程:(1 调用用户函数TD_Poll(。(2 检测是否有标准的设备请求,如果有,则执行指令并做出相应的操作。(3 检测USB核是否有USB挂起事件。如果有USB挂起事件,则调用用户程序TD_Suspend(。当TD_Suspend(返回为真时,USB核检测是否有重新开始事件。当检测到有重新开始的事件,USB调用用户程序TD_Resume(,并继续执行步骤3.固件代码在Keil Vision2环境中编译后,最终生成ezusb.hex文件。用USB线把DS
10、P开发板接到PC机上,启动“EZ-USB Control Panel”,就可以把ezusb.hex文件下载到ANZ13lQ内部的8K RAM 中。2.2 EZ-USB驱动程序开发驱动程序(USBD是USB总线系统中负责管理USB的工作. USB总线客户软件包含了用来控制不同USB总线外设的功能程序,它通过一个Windows定义的软件接口与根集线器驱动程序进行通信;而USB总线根集线器驱动程序则通过包含在USBD中的USBDI(USB驱动程序接口。实现USBD的通信;然后,USBD 会选择两种主控制器之一同下方的主控制器进行通信;最后,主控制器驱动程序会通过PCI枚举器软件直接实现对USB物理总
11、线的访问。USB总线设备驱动程序必须遵循Win32驱动程序模型(WDM,其扩展名为.Sys。驱动程序主要实现的功能包括:设备初始化;即插即用设备的创建和删除;处理Win32打开和关闭文件句柄请求;类功能定义IO CTL(I/O Control、功能实现;IRP(I/O Request Packet的调用处理;访问硬件。为帮助设备和软件的开发者测试USB总线设备请求和数据传输的能力,Cypress公司提供了EZ_ USB通用驱动程序GPD(General Purpose Driver。GPD是用来和基于EZ_ USB外设接口的通用设备驱动程序,提供公共USB总线设备请求和数据传输的用户态接口。使
12、用GPD作为起始点,可以创建用户特有的驱动程序。(1 建立EZ_USB GPD建立GDP需要微软的WDM DDK和微软的Visual C+6.0。EZ-USB的GPD ezusb.sys是一个不用修改就可用的驱动程序,在自行开发外部设备的时,可以采用这个驱动程序作为USB驱动。(2 用户态和GPD的接口对于用户态的应用,可以使用VC+编译工具CreateFile(和DeviceIoControl(。所有的用户态通过I/O控制调用来访问EZ_USB GPD的。一个用户态程序首先通过调用一个Win32函数CreateFile( 来获得设备驱动程序的句柄。然后用Win32函数DeviceIoCont
13、rol(通过CreateFile( 函数返回的句柄,来提交I/O控制代码和相关的输入输出缓冲区到驱动程序。2.3 PC机用户程序开发 后台PC机用户程序采用Visual C+6.0 编写,主要功能是利用开发的USB驱动程序完成数据的发送和接收,并将数据保存为自己定义的格式。下面将详细介绍利用USB驱动程序中定义的控制通道和块传输通道进行数据接收和保存的过程,并给出部分关键代码。(1打开USB设备BOOL usbMark; 当前选定的USB 设备是否打开标志。usbMark=OpenUSB(;OpenUSB函数的功能是调用设备对应的驱动程序,并获得设备的描述,其返回值为 BOOL型,可
14、以依此判断设备是否正确工作。(2定义命令请求和数据结构。 char buffer64;定义数据缓冲区;ULONG venderlong=0; REQUEST_DATA usbRequest;定义USB 数据传输的请求结构。 所有的 设备是通过缺省控制通道对主机的请求发出响应,这些请求是由驱动程序控制传送而完成的,请求以及请求的参数通过包的形式发向设备,这里定义的usbRequest就是请求的数据包,(3填写数据传输的请求并发送数据传输请求。 USBSendReq(&usbRequest,&buffer0,vender-long;函数将请求
15、交给 驱动程序,由驱动程序完成向USB设备的发送,USB设备接到请求后根据固件中的程序将数据发送回后台PC机。(4进行数据的接收,本文采用的是块传输模式。 BULK_DATA usbBulkdata;定义块传输结构;bulkControl.pipeNum=1;选择传输管道; buffer=&receivedat0;定义接收缓存区;ULONG length=64;预接收的数据长度; BulkdataSend(&usbBulkdata,buffer,length;BulkdataSend为数据接收函数, 函数调用后传回的数据保存在buffer中。
16、60;经过上述步骤即可把数据从DSP保存到后台PC机内存中。 3 结语本文使用USB控制器AN2131Q芯片实现了对高速信号的数据传输, 安装简单, 支持即插即用; 无需外接电源;并将其应用到基于TMS320C5409的水声信号采集及混沌特性研究系统通信中,充分验证了此接口电路的可行性和具体设计的正确性。本文作者创新点: 通用串行总线USB是近年来一种新兴的计算机外围设备串行通信接口,它具有传输可靠、易于扩展、低价并可热插拨等特性。本文将EZ-USB 序列芯片AN2131Q用于水声信号采集及混沌特性研究系统中,实现DSP与PC机间的通信,并在AN2131Q与DSP间加入两片IDT72V02,使得数据的传输不会出现堵塞情况,提高了传输的速度。 参考文献:1 徐庆元,张天序,钟胜.基于USB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水利工程主要施工机械设备使用计划
- 生活垃圾分类测试题库及答案
- 车险名单管理培训
- 车队安全行驶培训课件
- 车队安全意识培训课件
- 湖二师汉语言文学转专业笔试试题
- 车间降本增效培训
- 酒店客房钥匙卡使用指导制度
- 京东店铺精细化运营与品类排名提升工作心得(3篇)
- 车间级安全培训内容课件
- “青苗筑基 浙里建证”浙江省建设投资集团2026届管培生招聘30人备考核心题库及答案解析
- 江苏百校大联考2026届高三语文第一学期期末学业质量监测试题含解析
- 代还按揭协议书
- 广西2025年高等职业教育考试全区模拟测试 能源动力与材料 大类试题及逐题答案解说
- 2026江苏省公务员考试公安机关公务员(人民警察)历年真题汇编附答案解析
- 2026年失眠患者睡眠调理指南
- 2026年盘锦职业技术学院单招职业适应性测试题库及答案详解一套
- 2025年10月自考00610高级日语(二)试题及答案
- 2026年包头铁道职业技术学院单招职业技能考试题库带答案解析
- 循证护理在基础护理中的应用
- 复旦大学招生面试常见问题及回答要点
评论
0/150
提交评论