基于嵌入式USB接口的数据采集系统的设计

发布者:ShiningSmile最新更新时间:2013-06-26 来源: dzsc关键字:嵌入式  USB接口  数据采集系统 手机看文章 扫描二维码
随时随地手机看文章

  数据采集任务多在户外进行,所以数据采集系统通常要满足实时性、专用性、可靠性和低功耗等性能,这些特性在嵌入式系统中都能得到很好的体现,因此本文将以WindowsCE的嵌入式平台来开发效据采集系统。但是由于嵌入式系统的硬件结构不易改变,所以在进行数据采集设备扩展时应该选择接口简单灵活、数据传输率高和支持热拔插的传输总线,而USB接口则能很好地满足这些要求,同时USB还有总线供电和不受插槽、中断等硬件资源限制的特性,因此USB接口是数据采集设备与嵌入式系统进行数据传输的理想选择。综上所述,本文将设计一款基于嵌入式USB接口的数据采集系统以满足实际的需要,下面将从硬件设计,程序实现和实际测试3方面具体描述。

  1 硬件设计

  1.1 硬件结构框架

  本系统的硬件结构主要由控制中心、模数转换和USB协议实现3个部分组成,下面将针对这3个部分进行详细的介绍。具体的结构框架如图1所示。

图1 嵌入式USB接口的数据采集系统总体结构

  1)控制中心。本系统采用单片机提供地址数据复用总线、选通信号(D12_CS和AD_CS),读写信号(RD和WR)以及对中断信号(D12_INT和AD_INT)进行检测。

  2)模数转换。本系统采用MAX197芯片进行模数转换,该芯片具有采样保持功能和12位的高精度输出。单片机可向MAX197写入其特定的命令从而选择指定的通道进行模数转换,转换结束后,MAX197向单片机输出低电平的AD_INT信号,单片机采用轮询方式检测到后通过HBEN信号控制MAX197输出低8位和高4位的转换数据。

  3)USB协议实现。本系统采用PDIUSBD12作为USB设备端的控制芯片,该芯片实现了USB1.1传输协议。嵌入式系统要对USB设备进行读写均需通过信号D12_INT向单片机发送中断,单片机响应中断后只需对PDIUSBD12的不同寄存器进行读写操作就可以利用USB进行数据传输。

  1.2 固件程序设计

  硬件设备需要固件程序的控制以保证其正常运行,本文所设计的固件程序主要用于识别USB设备以及采集与传输数据。固件程序的总体流程如图2所示。

图2 固件程序的总体流程

  1)设备识别。USB设备的识别过程分别由操作系统和设备驱动两个部分通过USB协议的标准设备请求来完成。操作系统在USB设备连接时加载设备驱动程序并分配通信地址,驱动程序启动后通过中断读取相关描述符进行资源配置并使能传输端点,从而为应用程序提供接口。

  2)数据采集与传输。通过单片机的定时器可对数据的采集频率进行设置。本系统的数据采集频率为1 000 Hz,因此设置定时器每一毫秒中断一次进行数据采集,而主机端对USB设备的读写操作则通过外部中断实现,定时器中断优先级高于外部中断以保证采集频率固定为1 000 Hz.主机端通过写操作向USB设备发送控制信息,包括设备启动和停止的相关初始化与清理的工作,其中在对USB设备进行读操作前要先在端点的缓冲区填写64字节数据并通过命令使其有效,不然主机端对USB设备进行读操作时,无效的缓冲区将导致PDIUSBD12芯片不会产生中断,从而导致读操作失败。[page]

驱动程序设计

  Windows CE下的USB设备驱动模型由3个层次组成,其中由操作系统实现的有两层,它们分别是HCD模块(USBHost Controller Driver)和USBD模块(USB Bus Driver),而第三层则被称为USB客户端驱动(USB Client Driver),由驱动开发人员实现。HCD模块处于最底层,是CPU中USB控制器的驱动,为USBD模块提供底层的功能访问服务。USBD模块处于HCD模块的上层,它根据HCD模块提供的功能设计USB驱动接口函数,并提供给第3层使用。USB客户端驱动处于USB驱动模型的最顶层,也是本文所要设计的USB驱动程序,它向上为应用程序提供接口以方便对USB设备进行控制,向下利用USBD模块提供的接口函数传递控制信息和数据。因此,要成功开发USB设备的驱动程序,在操作系统定制的时候就需要把HCD和USBD的相关组件添加进去。

  本文开发的USB设备驱动程序是流接口形式的驱动程序,它被设计用来与通常的文件系统API(如CreateFile、ReadFile和WriteFile等)进行通信,应用程序通过对文件系统的操作来完成对设备的控制。本驱动所设计的流接口如表1所示。

表1 驱动所设计的流接口

  3 系统测试

  3.1 测试条件与结果

  本测试的目的在于检验本文设计的数据采集系统能否在采集频率较高的情况下准确地采集数据,并通过USB接口完整地进行数据传输。因此,测试将基于以下5个条件进行。其中一个通道的部分测试数据结果如图3所示。

图3 正弦波采集测试结果图

  1)测试信号为正弦波,峰峰值约为12 V,频率为100Hz.

  2)系统以1000Hz的采集频率连续对8个通道进行采集。

  3)单片机晶振频率为12MHz.

  4)采集系统的数据缓冲区设置为128字节。

  5)采集数据记录在SD卡中。

[page]

3.2 测试结果分析

  由3.1的正弦波采集测试结果图可以得出如下两点结论:

  1)采集的正弦波的峰峰值约为12 V,一个周期有10个数据点,根据采集频率1000Hz可知采集到的正弦波的频率为100Hz.

  2)在30 ms的时候,正弦波发生畸变,可见采集数据在USB传输过程中发生丢失。

  第一点结论说明了本采集系统能准确地进行数据采集,而对于第二点结论所表现出的不完整性分析如下。

  1)设V1是有效数据的传输速度,V2是协议开销的传输速度,N为采集数据的通道数目,M为每通道采集的字节数,H为采集频率,K为缓冲区大小,U为传输的协议开销字节数。USB数据帧的组成包括有效数据和协议开销两个部分,其中传输协议的开销包括同步字段、包标识符、地址信息、端点信息和CRC校验,所以数据采集系统要求的USB传输速度可根据公式(1)计算得到。本文设计的数据采集系统共有8个通道,每通道有2个字节的数据,采集频率为1 000 Hz,根据公式(2)可得有效数据的传输速度约为16 kB/s.一个完整的数据帧的传输需要11个字节的协议开销,本文设计的数据传输过程分为4个步骤:发送传输请求,发送接收控制命令,接收请求应答,开始接收数据,每个步骤均需传输一个完整的USB数据帧,因此进行一次传输的协议开销为44个字节,根据公式(3)可计算出协议开销的传输速度。以缓冲区的大小为横坐标,数据采集系统要求的USB传输速度为纵坐标绘出图4所示的关系图,分析该图可得:缓冲区越大,所要求的USB传输速度越少。测试中较少的128字节缓冲区使得在一次传输中有效数据过少,约5.5 kB/s的额外开销传输速度约占总速度的25%,过高的额外传输开销导致数据来不及传输,从而发生数据丢失的情况。

图4 缓存区大小与USB传输速度关系图

  2)另外,由于应用程序要在SD卡这类低速设备上记录数据,所以记录数据的时候来不及获取USB设备中的数据也会导致实际的传输速度变慢,导致新采集的数据溢出缓冲区并覆盖来不及传输的旧数据,从而造成数据丢失。

  因此有必要采取一定的方法来改善数据采集系统,以保证数据采集的完整性。下面将提出3个解决方法。

  3.3 系统改善措施

  1)增大晶振频率到24MHz,加快单片机的处理速度。

  2)在硬件上增加静态RAM作为数据存储的缓冲区,缓冲区的存在一方面可以保证新采集的数据不会覆盖没来得及传输的旧数据,另一方面可以让USB设备在一次USB数据帧的传输中所含有的有效数据更多,从而减少在传输过程中的校验、识别和握手等USB协议的额外开销,加快传输速度。

  3)在应用程序控制USB设备时将新建2条线程,一条进程用于向USB设备进行读写操作来进行数据采集,另一条进程用于向嵌入式系统的SD卡这类低速设备进行读写操作来记录数据,利用操作系统分时复用的特性减少数据记录过程对数据传输造成的延误,从而加快USB设备的传输速度。

  4 结束语

  本文从硬件结构、固件程序和驱动程序3个方面对基于嵌入式USB接口的数据采集系统进行了设计。最后还通过实际采集正弦波信号对系统进行了测试,并提出了3个方法有效地提高了数据采集系统的传输速度。本系统能在拥有USB接口的嵌入式设备上方便地进行连接和安装,是数据采集应用的一个重要部分。

参考文献:

[1]. MAX197 datasheet http://www.dzsc.com/datasheet/MAX197_721185.html.
[2]. PDIUSBD12 datasheet http://www.dzsc.com/datasheet/.html.

关键字:嵌入式  USB接口  数据采集系统 引用地址:基于嵌入式USB接口的数据采集系统的设计

上一篇:LVDS的接口电路设计
下一篇:复杂模块接口的独立设计

推荐阅读最新更新时间:2024-05-02 22:42

基于嵌入式的MP3音频点播系统设计
引言     随着电子技术的发展,嵌入式系统已广泛用于信息家电、移动通信、工业控制、军事电子等领域。这里介绍一种基于S3C2410处理器和嵌入式Linux系统的C/S结构音频点播系统,将MP3音频文件集中存储在网络FTP服务器上或本地U盘内,利用自主开发的MP3播放终端进行点播。该音频点播系统可广泛用于卡拉OK厅、语音教室和公共广播等场所。 2 系统功能及实现方案 嵌入式系统由底层硬件、设备驱动、操作系统、应用中间软件及应用系统5部分组成。基于嵌入式系统的MP3音频点播系统可广泛用于卡拉OK厅、语音教室和公共广播等许多场所,它由一个网络服务器和多个客户端播放器组成,是基于局域网的C/S结构的点播系统。首先在服务器中存储
[工业控制]
嵌入式网络设备的MAC及IP地址设置
摘要:嵌入式网络设备与通用计算机的网络设置相比有相同的地方,也有其独特的地方。本文以嵌放式操作系统uClinux在带网络接口的嵌入式芯片S3C4510B上的应用为例,介绍一种嵌入式网络设备中MAC及IP地址设置的方法。 关键词:Linux uClinux 嵌入式系统 IP地址 MAX地址 以太网 嵌入式产品可分为信息电器、移动计算设备、网络设备和工控、仿真等。 在网络日益重要的今天,越来越多的嵌入式产品有了联网的要求。以上嵌入式产品的分类中,除了网络设备特别强调网络功能外,其它几类产品经常也有网络要求。 在谈到网络功能时,很自然就会想到目前应用越来越广的Linuxz操作系统。Linux对网络有很强的支持能力,甚至比大多数操
[应用]
嵌入式Linux系统下Microwindows的应用
摘要:通过对嵌入式GUI软件Microwindows进行分析并与X window进行对比,阐述Microwindows用于嵌入式设备上的优点;简要论述Microwindows的体系结构和图形应用程序接口;介绍其设备驱动特性、API、客户机/服务器模型、画图机制和FLTK。 关键词:嵌入式系统 Microwindows Linux 引言 在进入后PC时代以后,嵌入式设备以一种无法抑制的迅猛速度普及和发展到日常生活及工作当中,众多知名开发商为了抢占市场和争夺利润,竞相推出各种性能优异的软硬件及内核芯片。鉴于以视窗为代表的桌面操作模式取得巨大成功,该模式目前已成为国内外开发者们在嵌入式设备中的首选方案。 近几年,随着Linux技术的兴起,
[嵌入式]
基于ARM系列32位高性能嵌入式处理器的数据实时存储解决方案
在数据采集设备以及具有相关功能的仪器使用中,数据的存储和传输是一个非常重要的环节,本文在成功实践的基础上,介绍采用工业级ARM系列32位高性能嵌入式处理器实现数据的采集后的数据存储及与数据通信的相关内容。 在数据采集和测量仪器尤其是便携式设备中,需要可支持大容量数据储存的便携式设备,本文介绍一种超大容量的RS232/485串口转SD/TF内存卡数据存储器,数据存储器采用模块化设计,不需要用户对现有设备进行改造,实现数据实时存储。 数据自动存储的客观要求 在许多测量过程中,不仅要求读取简单的仪表值,而且还需要对一段时间的数据进行科学的分析和处理以取得预测和分析的目的。在这种情况下,可能要求测量时间长,采集要求自动进行,无需人
[单片机]
基于ARM系列32位高性能<font color='red'>嵌入式</font>处理器的数据实时存储解决方案
2014中国嵌入式暨物联网教育发展高峰论坛即将召开
为促进嵌入式系统、物联网和移动互联网教学在高校的开展,提升高校相关专业教师学术水平,拓展嵌入式系统专业教育方向与包括物联网、移动互联网和云计算的融合和渗透,为我国信息产业培养出工程型、实践型、复合型、国际化的嵌入式系统技术人才,由工业和信息化部软件与集成电路促进中心(国家软件与集成电路公共服务平台)、教育部教育管理信息中心等单位指导,中国软件行业协会嵌入式系统分会和华清远见教育集团联合主办,ARM中国协办,将于 2014年7月 19日在北京举办规模盛大的“2014(第四届)中国嵌入式系统暨物联网教育发展高峰论坛”。 业内知名专家学者倾力出席,百所高校资深讲师齐聚京城,共商嵌入式暨物联网人才培养大计。 本次高峰论坛将邀请政
[嵌入式]
嵌入式Linux系统中MMC卡驱动管理技术研究
引 言 MMC(Multitmedia Card)是一种体积小巧、容量大、使用方便的存储器,目前在手机等嵌入式系统中有着广泛的应用。MMC通过卡内的一个集成片内控制器对MMC卡进行控制和管理,当主机正确地驱动MMC卡后,就可以像磁盘一样方便地存取数据。本文所研究与实现的Linux驱动程序,以Intel XScale的PXA250为硬件平台,在遵循MMC卡通信协议规范的基础上,实现了卡的底层读写。然后对传统的块设备驱动程序中的单块读写进行了改进,实现了集群读写技术,提高了卡的读写速度;同时增加了电源管理功能,满足了嵌入式系统低功耗的需求;增加了即插即用功能,方便了用户的使用。 1 MMC卡驱动程序的体系结构 MMC 卡仅通过
[单片机]
<font color='red'>嵌入式</font>Linux系统中MMC卡驱动管理技术研究
赛灵思XPS 8.2版本开发套件推进嵌入式处理的开发
新版本的Platform Studio引入了独特的处理支持并增强了设计的便捷性 作者:Jay Gould Xilinx嵌入式解决方案市场部高级产品经理 jay.gould@xilinx.com 如果问使用Xilinx Platform Studio (XPS)嵌入式工具套件的用户,他们需要什么功能来满足其下一代终极处理设计的需要?他们必然会回答:“性能和先进的处理功能。” 为了满足嵌入式环境的要求,工程师必须设法从现有大多数成本经济的器件中一点点地挖掘出性能,并且,他们在设计和调试两个方面都需要方便使用的工具。 XPS 8.2版本是普遍使用的嵌入式开发套件(EDK)的一种,赛灵思在其中增加了新型的高度最优化的MicroBla
[应用]
嵌入式系统以太网接口的设计
    摘要: 介绍以8051系列单片机系统为例的嵌入式系统与10Mbps以太网控制器芯片DM9008的硬件接口电路的实现及编程方法。     关键词: 嵌入式系统 以太网 DM9008芯片 单片机 TCP/IP协议 目前,以太网(Ethernet)协议已经非常广泛地应用于各种计算机网络,如办公局域网、工业控制网络、因特网等场合,并且还不断地发展。基于以太网的新技术和联网设备不断出现,以太网已经成为事实上最常用的网络标准之一。 但是,基于以太网的嵌入式系统目前并是很多。其原因除了嵌入式系统本身运行速度较慢、资源较少且不足以实现以太网的各种协议外,更重要是设计以太网的接口及协议相对比较复杂,使人望而却步。
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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