目前通用的通过数据采集板卡采集的方法存在着以下缺点:安装麻烦,易受机箱内环境的干扰而导致采集数据的失真,易受计算机插槽数量和地址、中断资源的限制,可扩展性差。而通用串行总线USB(Universal Serial Bus)的出现,很好地解决了上述问题,很容易实现便捷、低成本、易扩展、高可靠性的数据采集,代表了现代数据采集系统的发展趋势。
1系统硬件设计与实现
1.1硬件总体结构
基于USB总线的实时数据采集系统硬件组成包括模拟开关、A/D转换器、单片机、USB接口芯片,其硬件总体结构如图1所示。多路模拟信号经过模拟开关传到A/D转换器转换为数字信号,单片机控制采集,USB接口芯片存储采集到的数据并将其上传至PC,同时也接收PC机USB控制器的控制信息。
1.2 PDIUSBDl2芯片
USB接口芯片采用Philips公司的一种专用芯片PDIUS-BDl2(以下简称D12)。该芯片完全符合USBl.1规范,集成了SIE、 320B的多配置FIFO存储器、收发器、电压调整器、SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等,支持双电压工作、完全自动DMA操作、多中断模式,内部结构如图2所示。
单片机通过8位并行接口传送经过A/D转换的采集数据,存储在FIFO存储器中。一旦存满,串行接口引擎SIE立刻对数据进行处理,包括同步模式识别、并/串转换、位填充/不填充、CRC校验、PID确认、地址识别以及握手鉴定,处理完毕后数据由模拟收/发器通过D+、D-发送至PC。上述过程遵循 USBl.1协议。D12与89C51的具体实现电路如图3所示。
2系统软件设计与实现
系统软件包括USB设备固件编程、驱动程序和应用程序。其中设备固件是整个系统的核心,它控制芯片D12采集数据、接收并处理USB驱动程序的请求和应用程序的控制指令。
2.1 USB设备固件程序设计与实现
设备固件是设备运行的核心,用C语言设计。其主要功能是控制A/D模块的数据采集;接收并处理驱动程序的请求,如请求描述符、请求或设置设备状态、请求设备设置、请求或设置设备接口等USBl.1标准请求;控制芯片D12接收应用程序的控制指令等。其程序主框图如图4所示。单片机检测到D12后进入主循环。此时PC机先发令牌包给D12,D12接收到令牌包后给单片机发中断,单片机据中断类型设定标志位Status,最后执行相应标志位的中断服务程序。单片机通过A/D模块的中断入口控制A/D模块的数据采集。
2.2驱动程序设计与实现
USB系统驱动程序采用分层结构模型:较高级的USB设备驱动程序和较低级的USB函数层。其中USB函数层由通用串行总线驱动程序模块(USBD)和主控制器驱动程序模块(HCD)组成。
为使驱动程序具有通用性,也为简化应用程序的开发,编写了供应用程序调用的动态链接库。这样应用程序只需调用此库提供的接口函数即可完成对USB设备的操作。USB函数层(USBD及HCD)由Windows98提供,负责管理USB设备驱动程序与USB控制器之间的通信、加载及卸载USB驱动程序等。目前Windows98提供的多种USB设备驱动程序并不针对实时数据采集设备,因此采用DDK开发工具设计专用的设备驱动程序。其由四个模块组成:初始化模块、即插即用管理模块、电源管理模块以及I/O功能实现模块。
初始化模块提供一个DriverEntry人口点执行一系列的初始化过程。
即插即用管理模块实现USB设备的热插拔及动态配置。当Windows98检测到USB设备接人时,查找相应的驱动程序,并调用它的 DriverEntry例程,PnP管理器调用驱动程序的AddDevice例程,告诉它添加了一个设备;然后驱动程序为USB设备建立一个功能设备对象。在此过程中,驱动程序收到一个IRlMN-STARIDEVICE的IRP,包括设备分配的资源信息。至此,设备被正确配置,驱动程序开始与硬件进行对话。电源管理模块负责设备的挂起与唤醒。 I/0功能实现模块完成I/O请求的大部分工作。当动态链接库提出I/0请求时调用Win32API函数DeviceToControl向设备发出命令;然后由I/0管理器构造一个IRP并设置其MajorFunction域为IRP_MJ_DEVICE_CON-TROL。USB设备驱动程序收到该 IRP后取出其中的控制码,并利用一个开关语句找到对应的例程入口。
2.3 应用程序设计与实现
应用程序采用Visual Basic6.0编写。由于其只需调用动态链接库,故开发较简单。主要功能包括检测USB设备、开启/关闭USB设备、设置A/D状态和数据采集端口、显示并分析实时采集的数据。主框图如图5所示。
由于D12的端点1的FIFO为16字节,端点2的FIFO为64字节,当缓冲区存满后自动将数据打包,由SIE自动发送数据包。程序获得数据包后需延迟至下组数据包准备完毕,从而保证程序与数据采集同步。另外程序还发出停止采集和关闭USB设备的命令。
3系统特点
基于USB总线的实时数据采集系统严格遵循USBl.1协议,有以下特点:
(1)易于扩展。最长传输距离5m,采用USBHub可达30m;最多可同时接127个设备。
(2)性价比高,远优于传统的实时数据采集系统。
(3)实时采集,实时显示。
(4)电磁干扰影响极小。本系统放置在计算机外部,不受板卡间的电磁干扰影响;若在电磁干扰极强的环境下工作,需专门为其设计电磁屏蔽方案。
(5)安装方便,支持即插即用。克服了以往数据采集板卡需要打开机箱的麻烦。
上一篇:PCB设计中EMC/EMI仿真分析技术分析
下一篇解析CAN总线与PC机串口通信适配器设计与实现
温馨提示:
凡在本公司进行电路板克隆业务的客户,必须有合法的PCB设计版权来源声明,以保护原创PCB设计版权所有者的合法权益;
您当前的位置:首页 > 技术资源 > PCB设计技术
探析基于USB总线的实时数据采集系统设计与实现
[探析基于USB总线的实时数据采集系统设计与实现]^相关文章
- [线及图形的编辑]
- PCB线路板定位信号完整性
- PCB电路板印制机械切割的方法
- 承接PCB贴片加工和功能测试服务
- 信号完整性(SI)分析
- 单电源运算放大器的偏置与去耦电路
- PCB曝光工艺中黑片复制故障方法解
- PCB设计中信号完整性(SI)的解决方法
- 2009年全球笔记本销售额同比下降7%
- 南电再创两年新高
- 单片机系统硬件抗干扰常用方法实
- 发审委取消依顿电子的审核会议
- PCB减少电路电磁干扰的方法
- PCB制板是什么?
- 3G带动国产预制棒产业进入快车道
- PCB设计中的常见错误分析
- 维修微短路短路现象的成品板
- 高像素手机发飚 LED闪光灯需求看
- PCB印刷电路板焊接分析缺陷
- PCB设计方法和技巧(3)
- PCB族群三月营收报捷 创历史新高
- PCB设计之敷铜工艺技术
- 常用软件加密方法一览
- 清洗PCBA电路板有哪些小技巧?
- PCB设计的核心与解决
- PCB线路板正片跟负片的区别说明
- PCB覆铜的利弊
- FLASH型单片机的加密与解密
- 美国德州仪器是2010年模拟IC市场第
- PCB钻孔机今年下半年就可以开始量
- PCB切片技术介绍
- 瀚宇博德(HannStar Board)江阴PCB板
- 湖北成台商PCB等企业投资聚集区
