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

上传人:QQ40****828 文档编号:442902 上传时间:2018-10-02 格式:DOC 页数:7 大小:50KB
返回 下载 相关 举报
基于USB总线的高速数据采集系统设计_第1页
第1页 / 共7页
基于USB总线的高速数据采集系统设计_第2页
第2页 / 共7页
基于USB总线的高速数据采集系统设计_第3页
第3页 / 共7页
点击查看更多>>
资源描述
基于 USB 总线的高速数据采集系统设计摘要 通用串行总线 USB(Universal Serial Bus)是一种新型的微机总线接口规范。随着客户对系统数据采集速度要求的不断提高,USB 以其使用方便、易于扩展、速度快等优点而越来越多的应用于数据采集系统中。本文介绍了一种基于 USB 总线的数据采集系统的设计方法,采用 PHILIPS 公司的 USB 接口芯片 PDIUSBD12 与单片机 AT89C51 进行通信,并和 PC 机通信而编制出友善的设备应用程序。该系统以单片机 89C51 和 USB 接口芯片PDIUSBD12 为主的数据采集系统进行了硬件设计和软件编程,并在此设计的基础上给出相应的原理图。硬件设计主要解决的是 PDIUSBD12 和 ADC0809 与单片机之间的接口电路问题,软件编程大致分为三部分: 一是为满足 D12 在 USB 上的最大传输速率而编写的固件程序;二是在 PC 机中的 Windows 2000 工作环境下编写 USB 设备驱动程序 ;三是充分了解 D12的主要功能特点,并编写出应用程序。通过该数据采集系统,我们可以对 USB 协议有很深刻的理解,对 D12 接口芯片有很熟练的应用,能更好领悟 USB 接口的优势关键词 USB 总线,单片机,数据采集,Windows 驱动程序模型,设备驱动程序1 绪论1.1 课题背景随着数字化的广泛应用,数据采集也越来越重要,传统的外设与主机的通信口一般采用ISA、PCI、C PCI、1394等标准,基于这些接口的产品,安装麻烦,价格昂贵,并受计算机插槽数量、地址中断资源限制,且可扩展性差,USB的出现,很好地解决了以上问题。USB作为一种新型的串口通信标准,具有较高的传输速率,可扩展性好,采用总线供电,使用灵活。它共有4种传输模式:控制传输、同步传输、中断传输、批量传输,以适应不同设备的需要。信息技术与电子技术的迅猛发展,使得计算机和外围设备也得到飞速发展和应用。过去人们单纯追求计算机与外设之间的传输速度,现在纠错能力和操作安装的简易性也成为人们关注的目标。USB通讯技术的出现,使高传输速度、强纠错能力、易扩展性、方便的即插即用,有机的结合在一起。USB设备需要依据USB协议进行数据的解包与打包,底层硬件设备与操作系统之间需要以驱动程序为桥梁。驱动程序以WDM为模型,以DDK为开发工具,以IRP为消息传播载体,来实现与Windows系统底层核心机制相交互的功能。1.2课题的提出尽管RS232是一种十分成熟且应用广泛的通讯方式,但是随着控制系统的日益复杂,所要采集的量也会越来越多。因此寻求一种高速、安全、方便的通讯形式是十分必要的。USB技术虽然出现的时间并不长,但是由于它的种种优点,被越来越多的厂商和用户所接受,出现了USB打印机、摄像头等产品。尽管目前USB接口的应用主要集中在电脑的周边外设,但是USB产品进入工控领域将是必然的趋势。采用PDIUSBD12芯片和89C51单片机设计的基于USB总线的数据采集系统,具有可靠性高、数据不丢失、抗干扰性强、便于数据传输和处理等优点,可在信号测试、信号采集场合广泛使用。所以本课题的研究是具有一定的现实意义和经济意义的。2 数据采集系统的固件设计2.1 固件的开发环境Keil C51是美国 Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil C51的工具包中,uVision是C51 for Windows的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及 A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51 创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。2.2 采用PDIUSBD12的固件设计2.2.1 固件编程的主要工作固件是FIREWARE的对应中文词,它实际上是单片机的程序文件,其编写语言可以采用C 语言或是汇编语言.它的操作方式与硬件联系紧密,包括USB设备的连接USB 协议、中断处理等,它不是单纯的软件,而是软件和硬件的结合,开发者需要对端口、中断和硬件结构非常熟悉。固件程序一般放入MCU中,当把设备连接到主机上时,上位机可以发现新设备,然后建立连接。因此,编写固件程序的一个最主要的目的就时让Windows可以检测和识别设备。USB固件程序程序由三部分组成:初始化单片机和所有的外围电路(包括PDIUSBD12) ;主循环部分,其任务是可以中断的;中断服务程序,其任务是对时间敏感的,必须马上执行。根据USB 协议,任何传输都是由主机开始的。单片机作它的前台工作,等待中断。主机首先要发令牌包给USB设备(这里是PDIUSBD12) ,PDIUSBD12接收到令牌包后就给单片机发中断。单片机进入中断服务程序,首先读PDIUSBD12的中断寄存器,判断USB令牌包的类型,然后执行相应的操作。在USB单片机程序中,要完成对各种令牌包的响应,其中比较难处理的是SETUP包,主要是端口0的编程。单片机与PDIUSBD12的通信主要是靠单片机给PDIUSBD12发命令和数据来实现的。PDIUSBD12的命令字分为三种:初始化命令字、数据流命令字和通用命令字。PDIUSBD12数据手册给出了各种命令的代码和地址。单片机先给PDIUSBD12的命令地址发命令,根据不同命令的要求再发送或读出不同的数据。因此,可以将每种命令做成函数,用函数实现各个命令,以后直接调用函数即可。2.2.2 PDIUSBD12芯片特点PDIUSBD12是一个性能优化的USB器件,通常用于基于微控制器的系统,并通过高速通用并行接口与微控制器进行通信,而且支持本地DMA传输。该器件采用模块化的方法实现一个USB 接口,允许在众多可用的微控制器中选择最合适的作为系统微控制器,允许使用现存的体系结构使固件投资减到最小。这种灵活性减少了开发时间、风险和成本。该器件使开发成本低且高效的USB 外围设备的一种有效途径。PDIUSDB12完全符合USB1.1规范,也能适应大多数设备类规范的设计,如成像类、大容量存储类、通信类、打印类和人工输入设备等。因此,PDIUSBD12非常适合做很多外围设备。现在很多用SCSI 实现的很多设备如果用USB来实现可以直接降低成本。PDIUSBD12还集成了SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等特性。所有这些特性都能在系统实现时节省成本,同时在外围设备上很容易实现更高级的USB功能。2.2.3 PDIUSBD12固件程序的编写USB设备启动流程如下:1. USB设备接入USB 口,发出连接 USB命令;2. 主机发出读设备描述符两次;3. 主机根据设备描述符厂商ID、产品ID ,启动相应设备驱动程序;4. 设备驱动程序初始化USB设备;读设备描述符;读配置描述符;选择接口、端点(管道) ,确定传输方式。USB设备在正常使用以前,必须由主机配置设备。主机一般会从USB设备获取配置信息后再确定此设备有哪些功能。作为配置操作的一部分,主机会设备设备的配置值,如果必要的话会选择合适的接口备选设备。在发出连接USB命令后,主机先读取设备描述符,然后发出设置USB地址SETUP包,设置USB地址后,进行主机客户驱动与设备初始化。其余端点依此类推。在其头文件里需定义USB规范中的各种描述符格式,包括设备描述表、配置描述表、接口描述表、端点描述表、字符串描述表以及描述表类型。这样,在发送配置联合描述表时,主机USBD可以根据描述类型标识区分各种分描述表。2.3 固件的文件结构本数据采集系统的固件有着如下的积木式结构:图2-1 数据采集系统固件的文件结构固件设计的目标就是使PDIUSBD12在USB上达到最大的传输速率。外围设备可使用PDIUSBD12 在USB 上传输数据,这些设备的CPU要忙于处理许多设备控制和数据处理等任务。PDIUSBD12 的固件设计成完全的中断驱动,当CPU处理前台任务时,USB的传输可在后台进行,这就确保了最佳的传输速率和更好的软件结构,同时简化了编程和调试。后台ISR中断服务程序和前台主程序循环之间的数据交换通过事件标志和数据缓冲区来实现,例如PDIUSBD12的批量输出端点可使用循环的数据缓冲区,当PDIUSBD12从USB收到一个数据包,那么就对 CPU产生一个中断请求, CPU立即响应中断在ISR中固件将数据包从PDIUSBD12内部缓冲区移到循环数据缓冲区,并在随后清零PDIUSBD12的内部缓冲区,以使能接收新的数据包CPU可以继续它当前的前台任务直到完成然后返回到主循环检查循环缓冲区内是否有新的数据并开始其它的前台任务。由于这种结构,主循环不关心数据是来自USB串口还是并口,它只检查循环缓冲区内需要处理的新数据。这样主循环程序专注于数据的处理,而ISR能够以最大可能的速度进行数据的传输。相似的控制端点在数据包处理时采用了同样的概念。ISR接收和保存数据缓冲区中的控制传输并设置相应的标志寄存器。主循环向协议处理程序发出请求。由于所有的标准器件级别和厂商请求都是在协议处理程序中进行处理,ISR得以保持它的效率。硬件提取层EPPHAL.C :这是固件中的最底层代码,它执行对D12和硬件I/O相关访问。PDIUSBD12命令接口D12CI.C:为了进一步简化PDIUSBD12的编程,固件定义了一套压缩了所有访问PDIUSBD12功能的命令接口,以对PDIUSBD12 芯片进行操作。中断服务程序ISR.C:这部分代码的处理由PDIUSBD12产生的中断,在中断服务程序主循环:发送USB请求、读入数据、控制采集通道和处理USB总线事件等等MAINLOOP.C标准请求 CHAP_9.C 厂商请求PROTODMA.C中断服务程序ISR.CPDIUSBD12 命令接口 D12CI.C硬件提取层EPPHAL.C中,它将数据从PDIUSBD12的内部FIFO取回到CPU存储器并建立正确的事件标志,以通知主循环程序进行处理。ISR通过设定事件标志“EPPFLAGS”和Setup 包数据缓冲区“CONROL_XFER”与主循环进行通信。主循环MAINLOOP.C:主循环在初始化完单片机 CPU和PDIUSBD12芯片后,检查事件标志,并进入对应的子程序进行进一步的处理,在开发套件中,它还包含人机接口的代码。协议层CHAP_9.C和PROTODMA.C:协议层处理标准的USB器件请求和特殊的厂商请求。3 结论USB是一种 IT行业新发展起来的通用接口标准,目前很多应用主要集中在PC机的外设和一些消费类电子上。其实,作为一种通用型串行总线标准,USB不仅仅适用于IT行业,它的应用空间很广泛,完全可以使用在不同的领域和行业。特别是由于USB的使用简单、即插即用、热插拔、开放性、高速、稳定、可靠性高等优点,它特别适用于仪器仪表、虚拟仪器、数据采集、数据采集设备、监控设备和加密设备等等场合。本论文所完成的工作和分析可概括为以下几点:1. 对USB1.1规范进行了较为详细的研究。分析了USB 主机、USB 设备、USB物理层以及USB连接,详细说明了USB 的数据流。2. 详细地介绍了PHILIPS公司PDIUSBD12接口器件和使用Keil c51开发固件。探索了PDIUSBD12固件编程的思想,将PDIUSBD12的固件设计成完全的中断驱动,MCU有更多的时间处理其它工作。3. 论述了WDM设备驱动程序模型以及开发 USB设备驱动程序的方法。分析了USB设备驱动程序的层次结构以及各层次的功能,构造出USB设备驱动程序的框架。详细说明了驱动开发环境的设置,介绍了用DriverSudio如何开发USB驱动程序。4. 详细地介绍了Windows API及设备应用程序与WDM的通信。说明了应用程序的工作流程,给出了应用程序的操作界面。5. 我们使用的是USB1.1 标准,存在许多不足。最大传输率可以达到12Mbps,是指主机控制器最大的处理能力,而一个USB设备不可能拥有这么高的带宽,它的带宽由主机的总线驱动程序管理。当添加或者删除一个USB设备时,连接的其它USB设备的资源要重新分配,以提高总线的利用率。单个USB设备所能拥有的带宽一般小于8Mbps。为了实现高速数据传输,应该考虑使用USB2.0标准。6. 由于开发板使用AT89C51作为D12 的控制器,这就从根本上限制了数据传输速度的提高。它的工作主频比较低,晶振太小,处理数据不够迅速。可以使用速度更快的处理器。7. 在对应用程序进行MFC编程时,思维和算法不够慎密,在考虑内存管理方面不够完善。8. 开发板中的固件编程使用了C51编写,虽然程序的可读性相对较好,但它的执行效率却不如汇编语言的执行效率高。因此,选择编程语言也是提高设备传输率的方法之一。9. 使用DriverSudio开发USB 驱动程序十分方便,但环境设置较为复杂,特别是DriverSudio和DDK之间以及它们与系统之间存在兼容问题,这很容易使初学者陷入困境。虽然本设计还有许多缺陷,不足以完成大批量数据的高速传送,但是它己经是USB数据采集系统的雏形。只要在后续的研究中通过改善硬件环境和软件算法解决好一系列存在的问题,一定会得到充分体现USB总线简单易用、传输速度快等特点的数据采集系统。综上所述,本论文己经完成了基于USB的数据采集系统的所有开发步骤,从设备的硬件到固件,到主机系统的驱动程序接口,再到用户应用程序。相信随着USB总线技术的发展,它的应用前景会更加广阔。参 考 文 献(小四号棍体,20 磅行距)(下面为示例)1 陈启美,丁传锁编着.计算机USB接口设计M.南京 :南京大学出版社,2003.1 15-352 尹勇,王洪成编着.单片机开发环境Vision 2的使用指南及USB固件编程与调试M. 北京:北京航空航天大学出版社,2004.1 42-553 丁元杰 编 着. 单片微机原理及应用M.北京: 机械工业出版社,2005.7 135-1654 周立功编 着.PDIUSBD12 USB 固件编程与驱动开发M.北京:北京航空航天大学出版社,2003.2 155-2055 边海龙,贾少华编着.USB2.0设备的设计与开发M. 北京: 人民邮电出版社,2004.1 126-1456 张靖武,周灵彬编着. 单片机系统的PROTEUS设计与仿真M. 北京: 电子工业出版社,2007.4 87-987 杨金岩编 着. 8051单片机数据传输接口扩展技术与应用实例M.孙义,马莉波等译.北京: 人民邮电出版社, 2005.1 156-1658 刘炳文,李凤华编着Visual Basic 6.0 Win32 API程序设计M. 北京: 清华大学出版社,2001.9 98-1099 张惠娟,周利华,瞿鸿鸣编着.Windows环境下的设备驱动程序设计M. 西安:西安电子科技大学出版社,2002.5 62-7610 何立民作室 编着. 单片机应用文集M.北京: 北京航空航天大学出版社,1996.8 15-2511 Compaq, Intel, Microsoft, NEC.Universal Serial Bus Specification V1.1S.1998 26-3412 Philips,Augest.PDIUSBD12 DataSheetEB. 2000 55-65
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!