采用USBN9602的数据采集系统设计

发布者:星辰古泉最新更新时间:2016-12-28 来源: eechina关键字:USBN9602  数据采集系统 手机看文章 扫描二维码
随时随地手机看文章

在工业生产和科学技术研究过程的各行业中,常常要对各种数据进行采集,现在常用的采集方式是在PC机或工控机内安装数据采集卡,如A/D卡及 422卡、485卡、采集卡不仅安装麻烦,易受机箱内环境的影响,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备;而用串行总线 USB(Universal Serial Bus)能很发地解决以上这些冲突。
利用89C51设计基于USB总线的数据采集设备,还可与MAX485结合起来实现数据的远程采集。该系统具有可靠性高、性价比高和多点采集等优点。

1 系统硬件设计

USB数据采集系统硬件模块主要由串行A/D转换器、89C51芯片、USB接口芯片和多路模拟开关等组成。硬件总体结构框图如图1所示。

1.gif 

USB接口芯片采用National Semiconductor公司的一种专用芯片USBN9602。该芯片内部集成微处理器接口、FIFO存储器、时钟发生器、串行接口引擎(SIE)、收发器电压转换器,支持DMA和微波接口。

多路模拟输入信号经多路模拟开关控制将其中的一路接入串行A/D转换器,A/D转换器经光电隔离后串行输出到移位寄存器,移位寄存器将此结果转为8位并行数据。89C51系统通过8位的并行接口传送A/D转换器采集的数据,存储在FIFO存储器中;一旦FIFO存满,SIE立刻对数据进行处理,然后89C51系统将数据从FIFO存储器中读出,由收发器通过数据线(D+、D-)送至主机。USBN9602与89C51的具体接口电路如图2所示。

2.gif 

图中USBN9602的CLKOUT与89C51的XTAL1相连,即USBN9602的时钟输出为89C51提供时钟输入。USBN9602的复位端接 RC电路,以保证复位电路可靠地工作。由于晶振频率较高,结合USBN9602内部网络,在XOUT端串接100μF电容及470μF电感,起稳定内部振荡频率的作用。

2 系统软件设计

系统软件包括设备固件、USB设备驱动程序和应用程序。

2.1 设备固件(firmaware)设计

此处固件是指固化到89C51 Flash中的程序。其主要功能是:①控制A/D转换器的采样;②控制芯片USBN9602接受并处理USB驱动程序的请求及应用程序的控制指令。现主要介绍89C51系统如何控制USB控制器(USBN9602)与主机的通信。

89C51系统对USB控制器的操作是严格按照USB协议1.1进行的。按照USB协议1.1的规定,USB传输方式分为4种:控制传输、块传输、同步传输和中断传输。在实际开发中使用了控制传输和块传输。控制传输主要完成主机对设备的各种控制操作,也就是实现位于主机上的USB总线驱动程序(USBD.SYS)以及编写的功能驱动程序对设备的各种控制操作。块传输主要完成主机和设备间的大指数据传输以及对传输数据进行错误检测(若发生错误,它支持“重传”功能)。

89C51系统控制USB控制器的工作工程可以简单地概括为:当USB控制器从USB总线检测到主机启动的某一传输请求后,USB控制器通过中断方式将此请求通知89C51系统;89C51系统通过访问USB控制器的状态寄存器和数据寄存器,获得与此次传输有关的各种参数,并根据具体的传输参数,对USB控制器的控制寄存器和数据寄存器进行相应的操作,以完成主机的传输请求。理解了以上的工作过程就可以进行相应的固件设计。

2.2 USB设备驱动程序设计

USB系统驱动程序的设计是基于驱动程序模型WDM(Window Driver Model)的。WDM采用分层驱动程序模型:较高级的USB设备驱动程序和较低级的USB函数层。其中USB函数层由两部分组成:较高级的通用串行总线模块(USBD)和较低级的主控制器驱动程序模块(HCD)。

目前,Windwos98提供了多种USB设备驱动程序,但并不针对数据采集设备,因此需用DDK(设备驱动程序开发包)开发工具设计专用的 USB设备驱动程序。目前,写USB驱动程序的软件也很多,它们均提供用于生成USB驱动的代码生成器,用户按照提示可以定义设备的配置和功能,然后做功能的修改即可。利用软件中提供的例子进行修改也是一个比较好的捷径。可以把USB设备驱动程序的功能划分成4个不同的模块来实现:初始化模块、即插即用管理模块、电源管理模块以及I/O功能实现模块。

初始化模块提供1个入口函数DriverEntry(),整个驱动程序的入口点为DriverEntry例程。在DriverEntry中,需要提供一个AddDevice例程,把驱动程序添加到驱动程序堆栈中去。另外,所有对各种IRP(I/O请求包,如:IRP_MJ_CREATE,IRP_MJ_WRITE,IRP_MJ_CLOSE,IRP_MJ_READ,IRP_MJ_DEVICE_CONTROL 等)的处理例程都在此入口

函数中作为定义,如:
DriverEntry(IN PDRIVER_OBJECT DriverObject,…) //驱动程序入口
{
DriverObject->DriverExtension->AddDevice=USBAddDevice;
DriverObject->DriverUnload=USBUnload;
DriverObject->MajorFunction[IRP_MJ_READ]=USBRead;
DriverObject->MajorFunction[IRP_MJ_WRITE]=USBWrite;

}

即插即用管理模块用来实现USB设备的热插拔及动态配置。当硬件检测到有USB设备接入时,Windows98查找响应的驱动程序,并调用它的 DriverEntry例程。PnP(即插即用)管理器调用驱动程序的AddDevice例程,告诉它添加了一个设备。在此处理过程中,驱动程序收到一个设备启动请求(IRP_MN_START_DEVICE)的IRP。同理,当要拔除时,PnP管理器会发出一个设备删除请求(IRP_MN_REMOVE_DEVICE)的IRP,由驱动程序进行处理。通过对这些PnP请求的处理,可支持设备的热插拔和即插即用功能。
电源管理模块负责设备的挂起与唤醒。

I/O功能实现模块完成I/O请求的大部分工作。若应用程序想对设备进行I/O操作,它便使用Windows API函数,对WIN32子系统进行WIN32调用。此调用由I/O系统服务接收并通知I/O管理器,I/O管理将此请求构造成一个合适的I/O请求包(IRP)并把它传递给USB设备驱动程序。USB设备驱动程序接收到这个IRP以后,根据IRP中包含的具体操作代码,构造相应的USB请求块并把此 URB(USB请求块)放到一个新的IRP中。然后,把此IRP传递到USB总线驱动程序,USB总线驱动程序根据IRP中所含的URB执行相应的操作(如从USB设备读取数据等),并把操作结构通过IRP返还给USB设备驱动程序。USB设备驱动程序接收到此IRP后,将操作结果通过IRP返还给 I/O管理器。最后,I/O管理器将此IRP中操作结果返还给应用程序,至此应用程序对USB设备的一次I/O操作完成。

2.3 应用程序设计

用户态的应用程序是数据采集系统的中心,其主要功能为:开启或关闭USB设备、检测USB设备、设置USB数据传输管道、设置A/D状态和数据采集端口、实时从USB接口采集数据、显示并分析数据。

由于USBN9602提供的FIFO不超过64字节,当它存满后,USBN9602自动将数据打包即时请求读入数据,由SIE自动发送数据包。另外,当系统启动A/D模块后,便会创建两个线程:采样线程和显示存盘线程。采样线程负责将采集数据写到应用程序提交的内存;而显示存盘线程负责给应用程序发送显示和存盘消息。当应用程序接收到此消息后,便从它提交的内存读取数据并显示和存盘。此处需要注意的是,采样线程和显示存盘线程在读写应用程序提交的内存时要保持同步。

3 远程数据采集系统设计

传输距离是限制USB在工业现场应用的一个障碍,即使增加了中继或Hub,USB传输距离通常也不超过几十m,这对工业现场而言显然太短了。现在,工业现场有大量采用RS-485传输数据的采集设备,其优点主要为传输距离可达到1200m以上,并且可以挂接多个设备;但传输速度慢,且需要板卡支持,安装麻烦。将RS-485与USB结合起来,可以优势互补,产生一种快速、可靠、低成本的远程数据采集系统。
设计这样一个系统的关键设备是RS-485~USB转换器,可以采用USBN9602+89C51+MAX485实现这一功能。整个系统的基本思想是:将传感器采集到的模拟量数字化以后,利用RS-485协议将数据上传。RS-485~USB转换器在主机端接收485的数据。并通过USB接口传输到主机处理;而主机向USB发送数据时,数据通过RS-485~USB转换口转换为485协议向远端输送,从而实现远程数据的双向传输如图3所示。软件方面的设计与上面所述类似。

3.gif 

结语

目前,基于USB外设的应用在国外处于高速发展阶段,在国内的应用也已经日见扩大;利用USB进行数据采集和工业控制已得到成功应用,特别是随着USB协议2.0的推出,数据传输速率高这480Mbps。如此高的传输速率,必将使USB在数据采集中的优势更加充分地体现出来,同时会使其在更广阔的领域得到更深层次的应用。

参考文献

   1. 张念淮.江浩 USB总线接口开发指南 2002
   2. 李朝青 PC机及单片机数据通信技术 2000

关键字:USBN9602  数据采集系统 引用地址:采用USBN9602的数据采集系统设计

上一篇:户外高压装置智能警示器设计
下一篇:用C8051F构成的采集与控制系统

推荐阅读最新更新时间:2024-03-16 15:27

温度数据记录选择适当的数据采集系统
温度测量有很多种方法。最简单的方法是将温度探头插入被测器件(DUT)来测量该时间点的温度。想要实现更多功能,该怎么办? • 想在被测器件中的多处位置进行温度测量,该如何实现? • 如果您想定期测量温度,例如连续 10 小时每分钟进行一次测量,那么该如何实现? • 如果您想要达到 0.05°C 的温度测量精度,该如何实现? • 如果您想设置报警系统,在温差超过特定阈值时触发报警,该如何实现? • 如果您想在测量温度的同时进行电压、电流或电阻测量,该如何实现? • 如果您想配置测量装置,并在无需复杂编程的前提下自动执行所有测试,那么该如何实现? 什么是温度数据记录仪? 按照维基百科的定义,“温度数据记录仪,也称温度监测器,是一种便
[测试测量]
温度数据记录选择适当的<font color='red'>数据采集系统</font>
USB数据采集系统中DMA数据传输的实现
  引言   USB通用串行总线(Universal Serial Bus)是被PC机广泛采用的一种总线,目前已经在计算机主板上大量集成,成为一种标准配置接口。它的即插即用、真正的热插拔、可总线供电、高性能和系统造价低等一系列的优点,使得USB接口得到了广泛的应用。特别是随着USB2.0高速传输协议的出现,其数据传输速度达到了480Mb/s,使得USB接口方式的虚拟仪器系统成为今天低成本虚拟仪器系统的主流。本文设计了基于USB2.0高速传输的数据采集系统,整个数据传输过程完全采用DMA方式,达到了较高的数据传输速度。   1、系统介绍   系统总体结构如图1所示。采用Philips公司的微控制器LPC2888作为系统核心控制
[单片机]
USB<font color='red'>数据采集系统</font>中DMA数据传输的实现
基于MPX2100型压力传感器的高精度数据采集系统
一、引言 在石油、化工、冶金、电力、纺织、轻工、水利等工业及科研领域中,都必须进行相关的压力检测与分析。通常压力值的变化速度较缓慢,但在测量压力值并把它由非电量转变成电量这一过程中,要求精度非常高,本文介绍了一种通用的高精度压力数据采集系统。系统的压力传感器选用Motorola公司的高精度X型硅压力传感器MPX2100,转换精度高、灵敏度高,具有极好的线性度,在高性能单片机AT89S52的控制下,放大调理后的模拟电量通过高精度、高性能芯片ICL7135进行A/D转换,可以保证系统具有很高的数据采集精度和很强的抗干扰能力,使用寿命长。系统采用液晶显示及PS/2键盘接口,实现了良好的人机交换。PLD技术的应用,节省了硬件电路的开
[测试测量]
基于MPX2100型压力传感器的高精度<font color='red'>数据采集系统</font>
基于USB总线和89C51单片机的数据采集系统设计
在工业生产和科学技术研究过程的各行业中,常常要对各种数据进行采集,现在常用的采集方式是在PC机或工控机内安装数据采集卡,如A/D卡及RS-422卡、RS-485卡。采集卡不仅安装麻烦,易受机箱内环境的影响,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。而通用串行总线(Universal Serial Bus,简称USB)的出现能很好地解决以上这些冲突。我们利用89C51单片机设计了基于USB总线的数据采集设备,并可与MAX485结合起来实现数据的远程采集。 系统硬件设计 USB数据采集系统硬件模块主要由串行A/D转换器、89C51芯片、USB接口芯片和多路模拟开关等组成。硬件总体结构框图如图1所示。
[嵌入式]
基于can总线的大射电望远镜分布式控制与数据采集系统
1引言 fast(five一hundredmeteraperturesperi-ealteleseope)soom口径球面射电望远镜是国际大射电望远镜计划在中国的一项先导工作。计划在某喀斯特地貌地区建造口径d~500m的射电望远镜,频率渡盖米波一分米波一厘米波波段(0.3~8.sghz)〔1〕。 随着控制、计算机、测量、通讯、网络等技术的发展,球面射电望远镜的成功实例—美国arecibo305m口径天线越来越呈现造价高、单频工作、精度低等缺点,充分运用新理论、新技术,科研人员提出了新的创新设计思想。在fast光机电一体化设计中,通过若干根悬索长度的控制可实现馈源舱按照天文观测要求的位姿做扫描运动。要实现这一设计思想,现代数字主动
[嵌入式]
由ADuC812与K9S6408V0A构成的便携式数据采集系统
    摘要: K9S6408V0A是三星公司生产的快闪存储器,它具有容量大,接口简单等特点。而ADuC812是内嵌MCU的多通道12位AD转换器。文中介绍了一种以ADuC812为主,配以K9S6408V0A快闪存储器所构成的便携式数据采集系统,并给出了AduC812与K9S6408V0A的硬件接口及软件编程。     关键词: MCU  闪速存储器  数据采集  ADuC812  K9S6408V0A     ADuC812是AD公司生产的内嵌MCU的多通道12位AD转换器,K9S6408V0A是三星公司的新型FLASH存储器,其容量可达64M,只需3V供电便可进行读、编程、擦除等操作,而且与CPU的接口简单。
[应用]
基于单片机的便携远程多路数据采集系统
引言:在工业生产和各种科学技术研究过程中,常常要对各种数据进行采集和处理,通常用的采集方式是在PC机或者工控机内安装数据采集卡,例如A/D卡及RS-422卡、RS-485卡。采集卡易受机箱内环境的影响,以及计算机插槽数量和地址、中断资源的限制,不能挂接很多设备。尤其是在进行油井压裂作业时,因为压裂工作现场比较危险,而又同时需要对压裂时的各种数据进行采集和处理,以便进行远程实时监控,因此利用工控机进行远程数据采集处理,就难以满足远程数据传输和便携的要求。本文探讨一种基于单片机和手提电脑的远程数据采集系统,既可以进行远程数据采集,而且灵活轻便利于携带,同时也减低了设备成本。 1 主要芯片介绍 AT89C52是一个低功耗,高性能CM
[单片机]
基于单片机的便携远程多路<font color='red'>数据采集系统</font>
基于PCI-9812的太赫兹成像数据采集系统设计
  太赫兹波(THz)指频率在0.1~10 THz(1 THz="1012Hz")范围内的电磁波,波长范围在30μm~3 mm,这一波段位于微波和红外辐射之间,因此太赫兹波兼有波与光的特性,在物体成像、时域谱分析、医学诊断、环境监测、空间遥感和军事安全等方面都展现出巨大的应用前景。太赫兹波的光子能量仅4.1 meV,没有X射线的电离特性,不会对材料和人体造成伤害,因此太赫兹成像技术比X射线有更大的应用优势。20世纪90年代以后,由于自由电子激光器和超快技术的发展,为THz脉冲的产生提供了稳定可靠的激发光源,世界各国都在各个领域展开了对太赫兹波技术的研究。近些年,我国的科研工作者也开展了对太赫兹波技术的大量研究工作,目前的太赫兹成像
[模拟电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved