基于USB总线的高速数据采集系统设计

上传人:cl****1 文档编号:473411260 上传时间:2023-06-06 格式:DOC 页数:7 大小:50.50KB
返回 下载 相关 举报
基于USB总线的高速数据采集系统设计_第1页
第1页 / 共7页
基于USB总线的高速数据采集系统设计_第2页
第2页 / 共7页
基于USB总线的高速数据采集系统设计_第3页
第3页 / 共7页
基于USB总线的高速数据采集系统设计_第4页
第4页 / 共7页
基于USB总线的高速数据采集系统设计_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《基于USB总线的高速数据采集系统设计》由会员分享,可在线阅读,更多相关《基于USB总线的高速数据采集系统设计(7页珍藏版)》请在金锄头文库上搜索。

1、 基于USB总线的高速数据采集系统设计 摘要 通用串行总线USB(Universal Serial Bus)是一种新型的微机总线接口规范。随着客户对系统数据采集速度要求的不断提高,USB以其使用方便、易于扩展、速度快等优点而越来越多的应用于数据采集系统中。本文介绍了一种基于USB总线的数据采集系统的设计方法,采用PHILIPS公司的USB接口芯片PDIUSBD12与单片机AT89C51进行通信,并和PC机通信而编制出友善的设备应用程序。该系统以单片机89C51和USB接口芯片PDIUSBD12为主的数据采集系统进行了硬件设计和软件编程,并在此设计的基础上给出相应的原理图。硬件设计主要解决的是P

2、DIUSBD12和ADC0809与单片机之间的接口电路问题,软件编程大致分为三部分:一是为满足D12在USB上的最大传输速率而编写的固件程序;二是在PC机中的Windows 2000工作环境下编写USB设备驱动程序;三是充分了解D12的主要功能特点,并编写出应用程序。通过该数据采集系统,我们可以对USB协议有很深刻的理解,对D12接口芯片有很熟练的应用,能更好领悟USB接口的优势关键词 USB总线,单片机,数据采集,Windows驱动程序模型,设备驱动程序1 绪论1.1 课题背景随着数字化的广泛应用,数据采集也越来越重要,传统的外设与主机的通信口一般采用ISA、PCI、C PCI、1394等标

3、准,基于这些接口的产品,安装麻烦,价格昂贵,并受计算机插槽数量、地址中断资源限制,且可扩展性差,USB的出现,很好地解决了以上问题。 USB作为一种新型的串口通信标准,具有较高的传输速率,可扩展性好,采用总线供电,使用灵活。它共有4种传输模式:控制传输、同步传输、中断传输、批量传输,以适应不同设备的需要。信息技术与电子技术的迅猛发展,使得计算机和外围设备也得到飞速发展和应用。过去人们单纯追求计算机与外设之间的传输速度,现在纠错能力和操作安装的简易性也成为人们关注的目标。USB通讯技术的出现,使高传输速度、强纠错能力、易扩展性、方便的即插即用,有机的结合在一起。USB设备需要依据USB协议进行数

4、据的解包与打包,底层硬件设备与操作系统之间需要以驱动程序为桥梁。驱动程序以WDM为模型,以DDK为开发工具,以IRP为消息传播载体,来实现与Windows系统底层核心机制相交互的功能。1.2课题的提出尽管RS232是一种十分成熟且应用广泛的通讯方式,但是随着控制系统的日益复杂,所要采集的量也会越来越多。因此寻求一种高速、安全、方便的通讯形式是十分必要的。USB技术虽然出现的时间并不长,但是由于它的种种优点,被越来越多的厂商和用户所接受,出现了USB打印机、摄像头等产品。尽管目前USB接口的应用主要集中在电脑的周边外设,但是USB产品进入工控领域将是必然的趋势。采用PDIUSBD12芯片和89C

5、51单片机设计的基于USB总线的数据采集系统,具有可靠性高、数据不丢失、抗干扰性强、便于数据传输和处理等优点,可在信号测试、信号采集场合广泛使用。所以本课题的研究是具有一定的现实意义和经济意义的。2 数据采集系统的固件设计2.1 固件的开发环境Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效

6、率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil C51的工具包中,uVision是C51 for Windows的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进

7、行调试,也可以直接写入程序存贮器如EPROM中。2.2 采用PDIUSBD12的固件设计2.2.1 固件编程的主要工作固件是FIREWARE的对应中文词,它实际上是单片机的程序文件,其编写语言可以采用C语言或是汇编语言.它的操作方式与硬件联系紧密,包括USB设备的连接USB协议、中断处理等,它不是单纯的软件,而是软件和硬件的结合,开发者需要对端口、中断和硬件结构非常熟悉。固件程序一般放入MCU中,当把设备连接到主机上时,上位机可以发现新设备,然后建立连接。因此,编写固件程序的一个最主要的目的就时让Windows可以检测和识别设备。USB固件程序程序由三部分组成:初始化单片机和所有的外围电路(包

8、括PDIUSBD12);主循环部分,其任务是可以中断的;中断服务程序,其任务是对时间敏感的,必须马上执行。根据USB协议,任何传输都是由主机开始的。单片机作它的前台工作,等待中断。主机首先要发令牌包给USB设备(这里是PDIUSBD12),PDIUSBD12接收到令牌包后就给单片机发中断。单片机进入中断服务程序,首先读PDIUSBD12的中断寄存器,判断USB令牌包的类型,然后执行相应的操作。在USB单片机程序中,要完成对各种令牌包的响应,其中比较难处理的是SETUP包,主要是端口0的编程。单片机与PDIUSBD12的通信主要是靠单片机给PDIUSBD12发命令和数据来实现的。PDIUSBD1

9、2的命令字分为三种:初始化命令字、数据流命令字和通用命令字。PDIUSBD12数据手册给出了各种命令的代码和地址。单片机先给PDIUSBD12的命令地址发命令,根据不同命令的要求再发送或读出不同的数据。因此,可以将每种命令做成函数,用函数实现各个命令,以后直接调用函数即可。2.2.2 PDIUSBD12芯片特点PDIUSBD12是一个性能优化的USB器件,通常用于基于微控制器的系统,并通过高速通用并行接口与微控制器进行通信,而且支持本地DMA传输。该器件采用模块化的方法实现一个USB接口,允许在众多可用的微控制器中选择最合适的作为系统微控制器,允许使用现存的体系结构使固件投资减到最小。这种灵活

10、性减少了开发时间、风险和成本。该器件使开发成本低且高效的USB外围设备的一种有效途径。PDIUSDB12完全符合USB1.1规范,也能适应大多数设备类规范的设计,如成像类、大容量存储类、通信类、打印类和人工输入设备等。因此,PDIUSBD12非常适合做很多外围设备。现在很多用SCSI实现的很多设备如果用USB来实现可以直接降低成本。PDIUSBD12还集成了SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等特性。所有这些特性都能在系统实现时节省成本,同时在外围设备上很容易实现更高级的USB功能。2.2.3 PDIUSBD12固件程序的编写USB设备启动流程如下:1.

11、 USB设备接入USB口,发出连接USB命令;2. 主机发出读设备描述符两次;3. 主机根据设备描述符厂商ID、产品ID,启动相应设备驱动程序;4. 设备驱动程序初始化USB设备;读设备描述符;读配置描述符;选择接口、端点(管道),确定传输方式。USB设备在正常使用以前,必须由主机配置设备。主机一般会从USB设备获取配置信息后再确定此设备有哪些功能。作为配置操作的一部分,主机会设备设备的配置值,如果必要的话会选择合适的接口备选设备。在发出连接USB命令后,主机先读取设备描述符,然后发出设置USB地址SETUP包,设置USB地址后,进行主机客户驱动与设备初始化。其余端点依此类推。在其头文件里需定

12、义USB规范中的各种描述符格式,包括设备描述表、配置描述表、接口描述表、端点描述表、字符串描述表以及描述表类型。这样,在发送配置联合描述表时,主机USBD可以根据描述类型标识区分各种分描述表。2.3 固件的文件结构本数据采集系统的固件有着如下的积木式结构:主循环:发送USB请求、读入数据、控制采集通道和处理USB总线事件等等MAINLOOP.C标准请求 CHAP_9.C厂商请求PROTODMA.C中断服务程序ISR.CPDIUSBD12 命令接口D12CI.C硬件提取层EPPHAL.C图2-1 数据采集系统固件的文件结构固件设计的目标就是使PDIUSBD12在USB上达到最大的传输速率。外围设

13、备可使用PDIUSBD12 在USB上传输数据,这些设备的CPU要忙于处理许多设备控制和数据处理等任务。PDIUSBD12 的固件设计成完全的中断驱动,当CPU处理前台任务时,USB的传输可在后台进行,这就确保了最佳的传输速率和更好的软件结构,同时简化了编程和调试。后台ISR中断服务程序和前台主程序循环之间的数据交换通过事件标志和数据缓冲区来实现,例如PDIUSBD12的批量输出端点可使用循环的数据缓冲区,当PDIUSBD12从USB收到一个数据包,那么就对CPU产生一个中断请求,CPU立即响应中断在ISR中固件将数据包从PDIUSBD12内部缓冲区移到循环数据缓冲区,并在随后清零PDIUSB

14、D12的内部缓冲区,以使能接收新的数据包CPU可以继续它当前的前台任务直到完成然后返回到主循环检查循环缓冲区内是否有新的数据并开始其它的前台任务。由于这种结构,主循环不关心数据是来自USB串口还是并口,它只检查循环缓冲区内需要处理的新数据。这样主循环程序专注于数据的处理,而ISR能够以最大可能的速度进行数据的传输。相似的控制端点在数据包处理时采用了同样的概念。ISR接收和保存数据缓冲区中的控制传输并设置相应的标志寄存器。主循环向协议处理程序发出请求。由于所有的标准器件级别和厂商请求都是在协议处理程序中进行处理,ISR得以保持它的效率。硬件提取层EPPHAL.C:这是固件中的最底层代码,它执行对

15、D12和硬件I/O相关访问。PDIUSBD12命令接口D12CI.C:为了进一步简化PDIUSBD12的编程,固件定义了一套压缩了所有访问PDIUSBD12功能的命令接口,以对PDIUSBD12芯片进行操作。中断服务程序ISR.C:这部分代码的处理由PDIUSBD12产生的中断,在中断服务程序中,它将数据从PDIUSBD12的内部FIFO取回到CPU存储器并建立正确的事件标志,以通知主循环程序进行处理。ISR通过设定事件标志“EPPFLAGS”和Setup包数据缓冲区“CONROL_XFER”与主循环进行通信。主循环MAINLOOP.C:主循环在初始化完单片机CPU和PDIUSBD12芯片后,

16、检查事件标志,并进入对应的子程序进行进一步的处理,在开发套件中,它还包含人机接口的代码。协议层CHAP_9.C和PROTODMA.C:协议层处理标准的USB器件请求和特殊的厂商请求。3 结论USB是一种IT行业新发展起来的通用接口标准,目前很多应用主要集中在PC机的外设和一些消费类电子上。其实,作为一种通用型串行总线标准,USB不仅仅适用于IT行业,它的应用空间很广泛,完全可以使用在不同的领域和行业。特别是由于USB的使用简单、即插即用、热插拔、开放性、高速、稳定、可靠性高等优点,它特别适用于仪器仪表、虚拟仪器、数据采集、数据采集设备、监控设备和加密设备等等场合。本论文所完成的工作和分析可概括为以下几点:1. 对USB1.1规范进行了较为详细的研究。分

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号