论文部分内容阅读
通用串行总线(USB)具有成本低,使用方便,支持热插拔,传输速率高,功耗低等优点,已被广泛应用于PC机及嵌入式系统中。采用USB接口进行数据采集是本课题的一大特点。本文首先研究了USB接口的通信协议,包括USB基本架构与总线结构,硬件规范,NRZI编码方式,控制传输、批量传输、中断传输以及等时传输四种USB数据传输方式,设备枚举及USB设备描述符等内容。接着,通过ATMEL的89S52单片机和Philips公司的PDIUSBD12接口芯片实现了模拟信号的采集与传输。其具体实现过程包括单片机端的固件程序设计,USB设备驱动程序设计及其上位机应用程序设计三大模块。固件编程设计采用分层结构进行,实现了USB协议的解析和应答,完成了模拟信号的采集和传输等过程,并且通过给出部分源程序代码和程序流程图,采用从下向上的层次顺序详细研究了硬件提取层、PDIUSBD12命令接口层、中断服务程序、标准设备请求及主循环程序的实现过程。USB设备驱动程序为上位机应用程序访问硬件设备提供了统一的软件接口,USB的设备驱动程序必须符合Microsoft定义的Win32驱动程序模型(Win32Driver Model,WDM)规格。在此本文选用Numega公司的第三方驱动程序开发工具DriverStudio,由于它所含的DriverWorks工具提供独特的DriverWizard向导,包含丰富的例子和库的完整源代码,可以引导用户根据实际需要完成设备驱动程序开发的全过程,所以利用它大大简化了设备驱动程序的开发过程。上位机应用程序采用了C++Builder开发工具,通过调用Win32 API函数的打开设备CreateFile0、读/写设备WriteFile0/ReadFile0、I/O设备控制DeviceIOControl0及关闭设备CloseFile0等函数即可实现与基于USB接口的数据采集系统的通信。本设计实现了外部信号的采集并通过USB接口传输到PC机上实现了实时显示。本系统由于引入了USB接口,较以前的传统接口提高了数据传输的速率,支持热插拔,使用更方便。