嵌入式检测系统的应用程序设计

2012-03-26 14:44:04来源: 微计算机信息 关键字:嵌入式  USB接口  应用程序

1、引言

嵌入式系统(Embedded Systems)被定义为以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统,它是面向用户、产品和用户的,它具有功耗低、体积小、可靠性高、处理速度快等优点。该嵌入式检测系统采用嵌入式微控制器(microcontroller unit)为核心,以单片机89C52和Philip公司的单纯的USB接口芯片PDIUSBD12为主要器件,所以该检测系统是一个USB接口设备,而 USB接口设备在生活中已经随处可见了,它由三部分组成:具有USB接口的PC系统,能够支持USB的系统软件和使用USB接口的设备。它的提出是基于采用通用连接技术,实现外设的简单快速连接,达到方便用户、降低成本、扩展PC连接外设范围的目地。它的最显著优点是支持热插拔,当用户插入USB外设后,计算机能够自动识别接入的外设,而不需要重新启动系统。

用户对USB设备的控制是通过应用程序来实现的。但应用程序不能直接访问USB设备,它必须先与驱动程序通信,通过驱动程序来访问USB设备。所以,应用程序的工作是把用户的对设备的请求翻译成相应的控制代码,并将其传递给驱动程序,同时还负责接收从驱动程序返回的数据。为对应用程序的工作原理有一个较深入的了解,下面先总体介绍一下应用程序与USB设备的通信流程。

2、USB总线特性

USB是英文Universal Serial Bus的缩写,中文含义是“通用串行总线”。它不是一种新的总线标准,而是应用在PC领域的新型接口技术。

那么为什么选用USB呢?因为它具有很多很好的特性。包括:

2.1使用方便 

使用USB接口可以连接多个不同的设备,支持热插拔。在软件方面,为USB设计的驱动程序和应用软件可以自动启动,无需用户干预。 USB设备也不涉及IRQ冲突等问题,它单独使用自己的保留中断,不会同其它设备争用PC机有限的资源,为用户省去了硬件配置的烦恼。 USB设备能真正做到“即插即用”。 

2.2速度加快 

快速性能是USB技术的突出特点之一。USB接口的最高传输率比串口快了整整100倍,也比并口快了十多倍。今后USB的速度还将会不断提高。  

2.3连接灵活 

USB接口支持多个不同设备的串列连接,一个USB口理论上可以连接127个USB设备。而每个外设间距离(电缆长度)可达5米。USB还能智能识别USB链上外围设备的接入或拆卸。 在USB方式下,所有的外设都在机箱外连接,不必打开机箱;

2.4独立供电 

普通使用串口、并口的设备都需要单独的供电系统,而USB设备则不需要,因为USB接口提供了内置电源。USB电源能向低压设备提供5V的电源,因此新的设备就不需要专门的交流电源了,从而降低了这些设备的成本并提高了性价比。

3、通信流程

在应用程序与设备开始通信之前,设备必须先连接在总线上。然后Windows检测该设备,通过设备列举,取得设备的各种描述符。Windows将从该设备所读取的描述符,与它的.inf文件做比较来识别该设备,找出应该使用哪个设备驱动程序来与设备通信,然后载入选定的驱动程序。

接下来应用程序取得一个设备的句柄,此句柄让应用程序识别该设备以及与它通信。设备的句柄是一个惟一的标识符,由Windows指定给每个设备的实例变量。应用程序通过调用带有一个能识别该设备的符号链接的CreateFile API函数,来取得该设备的句柄。该符号链接包含一个全域惟一标识符(globally unique identifier,GUID)。GUID是一个128位的号码,Windows用来惟一识别一个对象。

当设备已经连接好准备传输数据后,主机就可以开始要求传输。当用户要读取一个数据捕获单位的数据时,他可以按下应用程序的按钮来读取一个读数,或是选择让应用程序每分钟要求一个读数。

在用户请求一个传输之后,应用程序开始与设备通信。它通过API函数来与USB设备沟通。API包含有3个与设备交换数据的函数:ReadFile,WriteFile和DeviceControl。 ReadFIle与WriteFile是一般用途的函数,用来读取与写入数据到驱动程序内。读取与写入的数据,是储存在函数所指定的缓冲区内。 DeviceIoControl是另一个传输缓冲区数据的函数,它包含一个码用来识别一个特定的要求。与ReadFile和WriteFile不同的是,DeviceIoControl函数可以双向传输数据。

当一个应用程序启动一个API调用来读/写一个USB设备时,Windows把此调用传递给合适的设备驱动程序。设备驱动程序把请求转换为USB总线类驱动能理解的格式。

当应用程序与设备的通信结束时,对于此设备驱动程序的句柄就必须通过CloseHandle API释放出来。当其中的一个应用程序调用CloseHandle函数,驱动程序首先收到“清除”IRP,驱动程序应当在“清除”例程中清除和此设备有关的待处理的IRP。然后收到“关闭”设备对象。到此,一个完整的通信过程就完成了。

[1] [2]

关键字:嵌入式  USB接口  应用程序

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2012/0326/article_4886.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:嵌入式软件测试
下一篇:基于μc/OS-II的多传感器测控系统研究

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
嵌入式
USB接口
应用程序

小广播

独家专题更多

2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved