欢迎来到天天文库
浏览记录
ID:5364443
大小:291.64 KB
页数:4页
时间:2017-12-08
《usb上位机程序开发与设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、万方数据鲤经殓銮速鲤文章编号:1671—1041(2005)01-0052-02USB上位机程序开发与设计童洪洁,李宝华(吉林大学电子科学与工程学院,长春130061)摘要:本文介绍了在VC++环境下USB上位机程序的开发和设计,且利用·WindowsAPl(ApplicationProgramInterface)实现USB接口通信的方法。给出了多线程客户应用程序软件的实例。关键词:USB:API:VC++:线程中图分类号:TP311文献标识码:BDevelopanddesignofthehostcomputerprocedureonusbTONGH
2、ong-jie.LIBao-hua(ElectronicScienceandEngineeringDepartmentofJilinUniversity,Changchun130061)Abstract:ThispaperintroducesthedevelopmentanddesignofthehostcomputerprocedureonUSBundertheenviromentofVC++.makinguseofWindowsAPI(ApplicationProgramInterface)torealizeUSBinterfacecommuni
3、cationmethod.Providetheinstanceofmanythreadcustomer'sapplicationpmgramsoftware.Keywords:USB;API:VC++:THREADUSB(通用串行总线)现在逐渐成为各种新型设备的的通用标准总线,并且大有取代传统的RS一232趋势。USB在速度有RS一232无法匹敌的优势,同时随着USB的发展,从1995年提出USB标准,经历了USBl.0,USBl.1。USB2.0,到现在USBOTG规范,USB的传输速度也得到迅猛的提升。从USBl.1设备的传输速度12Mbits/
4、s到2.O设备的480Mbits/s的发展,同时USB设备即插即用的特点,使其应用更加广泛并且超过了目前很多工业接口总线标准,因而它的应用越发重要。然而uSB在应用上给我们带来极大方便时,在软件处理上也给我们造成了不小麻烦。由于USB设备是基于通信协议的接口设备,使得我们不能在电脑上像处理RS一232那样来处理USB。USB设备需要驱动程序的支持,而RS一232则不需要,而且USB设备是从设备,任何的USB传输都必须从电脑里的USB主机开始发送指令,虽然绝大部分的USB设备厂商都给出了驱动程序但是应用接口还需要客户自行设计,从而使得上位机的编程变得尤
5、为重要。在VC++环境下,传统的RS一232可以直接使用相应的控件直接与外设进行通信,而USB不具备相应的控件,不过我们可以利用VC的环境下的WindowsAPI函数把USB接口当作文件来操作,从而轻而易举的实现USB接口通信。1USB接口通信目前大多数驱动程序都采用了WDM(WindowDriverModel),从而我们可以采用两种方式来打开设备:(1)GUID接口方式:(2)符号连接名方式。在采用GUID接口方式之前,一定要获取此设备的GUID,在实际开发中可以从驱动程序或者利用WindowsAPI函数获取。以下为主要步骤:1.1获取设备信息集S
6、etupD{GetClassDevs(收稿日期:2004-11-1252ElCVOI.122005No.1仪器仪表用户pGuid,//指向一个安装类或接口类的GUIDNULL,/I指向字符串,过滤返回的设各NULL,//返回顶层窗口句柄DIGCF—INTERFACEDEVICEfDIGCF—PRESENT,,给出构造设备信息集的控制操作)SetupDiGetClassDevs函数是一个设备信息集的处理程序,它包含了指定参数匹配的所有已安装的设备。1.2识别接口信息SetupDiEnumDeviceInterfaces(hardwareDeviceln
7、fo,//指向接口设备信息集0,//指向一个SP—DEVINFO—DATA结构pGuid,//指向一个GUID,它标识了请求接口的设备接口类i,//设备接口表中基于零的索引&devicelnfoData)/,分配给调用程序的缓冲区SetupDiEnumDeviceInterfaces函数返回设备信息集的一个设备接口元素的环境结构,每次调用该函数返回一个设备接口的信息。1.3得设备路径名SetupDiGetDeviceInterfaceDetail(HardwareDevicelnfo,II指向设备信息集DevicelnfoData,//指向标识设备的
8、接口functionClassDeviceData,//指向接受接口信息predictedI..ength,
此文档下载收益归作者所有