当前位置:首页 >> 机械/仪表 >>

利用Visual+C实现USB设备与PC机通信


仪器仪表用户
按键及发光二极管,以方便进行简单的通信实验时数据的输入及输 出显示(图4)。

3通信程序的编制
为了便于进行不同的试验,提供了实验板的监控程序。通过先 后按下选择实验的功能键和代表实验号的数字键便可进行实验选 择,89C5K1)先通过双口RAM将实验号告诉89C51(2),再转向相 应实验的执行程序,而89C51(2)在接受

到通知后也转向相对应的 程序。此监控程序使得通信程序的编制十分灵活,只需要有针对性
图5监控程序的流程图

参考文献 11】张培仁.MSC一51单片机原理与应用【M】.北京:清华大学出版社,2003 [2】杨光友.单片微型计算机原理及接13技术【M】.北京:中国水利水电 出版社,2001.
【3】IDT7130
High speed IK*8 Daul—Port Static

地对实验程序的某一部分编制或者修改即可,同时只需要在89(351
(1)每个实验程序的主循环体中插入判断是否有用于实验选择的功 能键按下的程序(在89C51(2)程序的主循环中插入判断是否接到 新通知的程序)便可使实验很方便的进行切换,监控程序的流程图 如图5所示。

SRAM Datasheet

document.IDT.2000.

【4】范逸之,陈立元.Visual Basic与RS-232串行通信控制【M】.北

4结束语
此套多功能单片机通信实验板的软硬件设计为进行单片机通信 试验提供了一个灵活高效的平台,在实验教学中取得了很好的效 果,使学生在单片机通信方面的具体应用和系统设计上都有了较大 程度的提高。同时此实验板还可进一步设计而具有更多通信接口, 具有继续发展和推广的空间。国

京:清华大学出版社,2002. 作者简介:刘健,男,河北理工大学信息学院教师,研究方向为数字信号 处理和嵌入式系统设计。

7。

文章编号:1671-1041(2007)01—0087-03

利用Vis ual C++实现U SB设备与PC机通信
李伟,张东亮,杨丽丽 (1.山东大学控制科学与工程学院,山东济南250061;2.莱阳农学院机电工程学院,山东青岛 2舶109)
摘要:本文阐述了如何利用Vc十+实现USB设备与PC机通信。简单介绍 了USB系统及其软件组成;并详细给出了设备驱动程序、EZ-USB固件程
序,以及用户应用程序。 关键词:USB;设备驱动程序;固件 中图分类号:TP368.1 文献标识码:B
Abstract:This between
overview

paper device

describes and PC

how based

to
on

realize

the

communication paper gives
aN

USB

VC++.This in

of USB

system;then explains its software firmware and application driver

detail,including

device Key

driver.EZ?USB

program.

words:USB;firmware;device

Using VC++to realize the communication between USB device and PC
LI Wei,Zhang Dong-liang,YANG Li-li (1.School of Control Science and Engineering, Shangdong University,Jinan 250061,China;2.College of Mechanical and Electronic Engineering,Laiyang Agricultural University,Qingdzo 266109,China) 收稿日期:2006-10?06

USB是由Intel、Compaq、IBM、Microsoft、NEC、 Northern+relecom等七家世界著名的计算机公司和通信公司等共 同推出的新一代接口标准,全称为Universal Serial Bus(通用串行

总线)。它是为了解决日益增加的PC外设与有限的主板插槽和端
口之间的矛盾而制定的一种串行通信标准,尤其是当传输速率高达 48呱伯it/s的USB2.0规范面世后,USB应用更加广泛。 USB技术具有显著的优越性,表现在热插拔、即插即用、接口 统一,供电灵活、成本低等方面。其应用不仅改善了设备性能。而 且降低了设备成本。因此越来越多的外设采用USB接13,如数字

照相机、计算机电话、数字音箱、数字游戏杆、键盘、鼠标等,大
有取代PC机上的串口、并口的趋势。USB在短短几年内已经成 为计算机与外设接口的通用标准,成为了计算机的标准配置之一。

欢迎订阅欢迎撰稿欢迎发布产品广告信息

ElC

VOI.14

2007

NO.1

87

万   方数据

显经验壅流显
1 1.1

仪器仪表用户
各驱动程序上,包括固件装载驱动程序与用户定制的设备驱动程 序。 下面是开发板INF文件的部分代码,修改开发板的VID/PID 为0547/1004: IStnngsJ

USB系统结构 USB系统框图
笔者采用Cypress公司提供的EZ—USB 2100系列开发板作为

USB设备来进行通信测试。Cypress公司提供了EZ—USB开发 包,包括硬件与软件两部分,主要有:EZ—USB开发板、EZ.USB 固件库与固件框架、EZ—USB驱动程序、’Cypress Loader驱动程 序、EZ—USB通用设备驱动程序等。 一个典型的USB应用系统的框图如图1所示。 1。2 AN2131QC芯片 开发板的核心是EZ—USB系列芯片AN2131QC,其功能框图如 图2。

Cypress=’’Cypress

Semiconductor。’ EZ—USB

USBVID一0547&PID一0080.DeviceDesc=”Cypress Development Board”

Servo

USBVID一0547&PID一1004.DeviceDesc=”山东大学USB Firmware Loader。’
EZ—USB

USBVID一0547&PID一1002.DeviceDesc=”Cypress Sample Device” USBVID一0547&PID一2131.DeviceDesc=”Cypress

EZ.USB

(2131Q/2131S,2135S).EEPROM missing”
2.2

EZ-USB固件程序
Cypress为用户开发EZ—USB固件提供了底层Keil C函数库

及该函数库的源代码,用户可以直接使用该函数库或EZ—USB程序 框架来开发EZ—USB固件。

下面是部分固件程序代码,EZ—USB的端点OUT4来发送
读/写命令,端点OUT2向RAM发送数据,端点IN2从RAM读 取数据。
void

TD—Poll(void)//设备空闲时重复调用


圈1 USB应用系统框图

if(!(OUT2CS&bmEPBUSY)),,判断OUT2BUF缓冲器是 否有效?查询busy位


count=OUT2BC:

警L————卜一
圈2
AN2I

for(i=0;i<count;++i)

{pAddr[i]=OUT2BUF[i];}1/把懒OUT2BUF驸JRAM

3IOC功§£框图

OUT2BC=O://装载任意直到OUT2BC,以准备OUT传输

该芯片内部集成了一一个USB外设接口所需的技术和电路, USB总线收发器与USB总线D+和D一相连。串行接口引擎用来 对数据进行解码、译码、错误校验、位填充并完成其它的USB总 线所需的信号等级细节,最终实现与USB总线接口的数据传输。 通用微处理器采用增强的8051内核,执行时间快,功能更强大。 内部RAM作为程序代码和数据存储器,使EZ—USB具有“软”特 性;I旦就是说,用户可以自行装载代码和数据来实现具体功能。


RamWriting=0;//完成写入到RAM 】
if(!(IN2CS&bmEPBUSY)),,判断IN2BUF缓冲器是否 有效?


for(i=0;i<DataLen;++i)//把数据从RAM读到IN2BUF

{IN2BUF[i]=pAddr[i];)
IN2BC=DataLen;//装载字节计数器IN2BC, RamReading=0;//完成读RAM

USB系统的软件组成
USB系统的软件包括蔓部分:USB设备驱动程序、EZ—USB

固件程序、用户应用程序。
2.1

) ) 2.3用户应用程序
USB数据传输是指发生主机软件和USB设备上特定端点的数 据交换。设备端点和主机软件之间利用管道进行联系,一个设备有 若干个管道,一个管道中的数据传输与其它管道中的数据传输相互 独立。 笔者编写了应用程序来测试开发板与PC机的通信。在VC ++环境下,应用程序可以以对话框结构的界面来实现,该应用程 序的功能比较简单,在VC++6.0下编译并运行成功。如图3所

USB设备驱动程序
在Windows环境下,不允许用户在应用程序中(如Microsoft

Word、Photoshop等)直接访问硬件设备,应用程序必须通过一 .个中间桥梁才能访问硬件设备,这个中间桥梁就是设备驱动程序。 这里主要开发固件下载设备驱动程序。生成该驱动程序需要 Micorsoft WDM DDK(Win 98 DDK或Win 2000 DDK)和 Micorsofl Visual C++5.0以上的版本。该驱动程序的目标是在设 备插上后,主机能通过USB总线自动下载固件到EZ—USB外设芯 片中,并自动运行该固件程序。 具体步骤如下: ①新建一个目录并将EZ—USB开发包Cypress
usb driver

示,该界面用几个简单的按钮和编辑框实现了交互功能。 2.3.1打开USB设备 要和设备通信,首先要把设备打开。Windows下每个设备被
当成一个文件来访问,每个文件有一个文件名。Windows API函 数根据文件名打开文件,并获得文件句柄(HANDLE),通过文件 句柄对文件进行操作。 下面一段代码中,应用程序调用CreatFile函数来获得句柄, 打开设备。
CString

ezloader目录下的文件和子目录拷贝到该新建目录中; ②修改目录中的source文件,将TARGETNAME=ezloader 中的ezloader改为目标固件装载驱动程序名:③用hex2c实用程序 将已经编译好的Intel十六进制同件转换为C文件,并用其中的 firmware[J数组替换firmware.C中的firmware[】数组;④运行 Windows DDK的build—C命令,创建该固件装载驱动程序;⑤修 改安装信息文件(.INF),使之将设备的VID,PID绑定到特定的设

completeDeviceName=(CString)”I|l”+devname;

88

EIC

VOI。1 4

2007

No.1

欢迎光临本刊网站http://www.eic.com.cn

万   方数据

仪器仪表用户
//设备名 +phDriver=CreateFile(completeDeviceName, GENERIC WRITE.
FILE SHARE

匣经验銮速鲤
AfxMessageBox(”Correct
—pair.hex”was
not

Pipe
to

not


found.Perhaps”Ep development board.”,

downloaded

MB—OKIMB—ICONSTOP);

WRITE.


else

&security. OPEN 0. NULLl: EXISTING.


//把数据从缓冲区传送到输出成员变量m—BulkSize for(int i=O;i<m_BulkSize;“+)


BYTE

bt=+(char4)(m_Buffer+i);

strtemp.Format(”%02X”'bt);//将字符以十六进制方式送入临 时变量strtemp存放
m_ReadData+=strtemp;


m—ReadData+=”rill’’:

m_Status=”数据读出完成!”: UpdateData(FALSE);
图3应片j程序界面及写数据

) )
点击读按钮,将数据从地址为1700~1706的RAM中读出, 如图4所示。

2.3.2

写数据

文件打开后,可以调用ReadFile和WriteFile来读写文件,这 里使用的是DeviceloControl函数。向设备写数据时,首先分配一 片相应大小的内存,然后在发送数据编辑框里输入要写入设备的数 据,并把它写到分配的内存缓冲区中,通过OnButtonWrite()函数 把数据写入到设备中去。 下面是OnButtonWrite()函数的主要代码: if(OpenDriver(&hDevice,sDriverName))

(.
btc.pipeNum=l;

//使用管道1,端点OUT2来发送

数据 bResult=DeViceIoControl(hDevice. IOCTL—EZUSB—BULK-WRJTE,
&btc,
图4读数据显示

2.3.4清空显示数据和信息
在应用程序中用OnButtonClear()函数来清空已经显示的数 据,包括发送数据编辑框、接收数据编辑框和USB设备状态报告 框的清空,以便用户重新读写新数据,了解设备的当前状态。在实 现时,只要把相应的编辑框重新赋值为空即可。
m—RamAddrl=…’; nLRamAddr2=…’; m_ReadData=…’:

sizeof(BULK—TRANSFER—CONTROL),
m—Bufier,

m——StrBuffer.GetLength0, (unsigned long 4)&nBytes,
NULL):

) 如图3所示,设定RAM地址为1700~1706,在发送数据编辑 框里输入任意数据,并点击写按钮,数据写入完成。

ⅡLWriteData=…’; re_Status=”清除数据!”;

2.3.3读数据
从设备读数据时,也要分配一片相应大小的内存空间,暂时存 放从设备读取的数据,然后用IN2端点把数据读出,并显示在接收 数据编辑框里。该功能是通过OnButtonRead()函数来实现的。 下面是OnButtonRead()函数的主要代码: if(OpenDriver(&hDevice,sDriverName)) ( btc.pipeNum=0;//使用管道O,端点IN2来接收数据
bResult=DeviceIoControl fhDevice. 10CTL—EZUSB—BULK—READ,

3结束语
USB设备与PC机之间的通信,除了读写数据外还有很多种类

型,但读写数据是最基本的。本程序在WindowsXP下调试通过,
成功的实现了数据传输。随着USB技术的推广和普及,将会有越 来越多的计算机外围设备采用这种总线技术,USB设备的软硬件 设计技术有着广泛的应用前景。@
参考文献

【1]胡文静,陈松.基于EZ-USB芯片AN2131Q的USB接口设计. 湖南理工学院院报(自然科学版),2004,(12) 【2]莫林利,赵秀绍.用VC++实现与USB驱动程序的通信.电脑
编程技巧与维护,2003,(1) 【3]胡晓军, 社,2005. 【4】颜荣江.EZ—USB

&btc, sizeof(BULK—TRANSFER—CONTROL),
m—Buffer, m——BulkSize,

张爱成.USB接口开发技术.西安电子科技大学出版 2100系列单片机原理、编程及应用.北京航空

(unsigned long+)&nBytes, NULL); if(!bResult) f

航天大学出版社.2002.

作者简介:李伟,山东大学控制学院硕士研究生,从事底层电路硬件研发. 具有较为丰富的仪器仪表开发经验。

欢迎订阅欢迎撰稿欢迎发布产品广告信息

ElC

VoI.1 4

2007

No.1

89

万   方数据

利用Visual C++实现USB设备与PC机通信
作者: 作者单位: 刊名: 英文刊名: 年,卷(期): 引用次数: 李伟, 张东亮, 杨丽丽, LI Wei, Zhang Dong-liang, YANG Li-li

仪器仪表用户 INSTRUMENTATION CUSTOMER 2007,14(1) 0次

参考文献(4条) 1.胡文静.陈松 基于EZ-USB芯片AN2131Q的USB接口设计[期刊论文]-湖南理工学院院报(自然科学版) 2004(12) 2.莫林利.赵秀绍 用VC++实现与USB驱动程序的通信[期刊论文]-电脑编程技巧与维护 2003(01) 3.胡晓军.张爱成 USB接口开发技术 2005 4.颜荣江.俞志强.张进.阴大兴 EZ-USB 2100系列单片机原理、编程及应用 2002

相似文献(10条) 1.学位论文 那洪洋 WinCE.Net系统下USB总线客户端设备驱动程序的研究与开发 2005
本课题所涉及的研究方向是探索在WinCE.Net嵌入式系统下进行USB总线设备客户端驱动程序开发相关原理。课题来源于北京首科集团凯奇电气有限 公司以WinCE.Net系统为新型数控设备主机系统的研究开发中的一个分支应用方向。USB总线已经成为微机与功能繁多的外部设备连接的重要标准手段 ,所以以WinCE.Net为系统的数控主机具备对USB总线的支持将能连接更多的具有USB总线接口形式的功能设备,扩大产品的应用领域,成为该产品的一个 突出竞争优势。因此本课题的研究内容具有很大的理论意义以及实际应用价值。 在研究过程中,由于在嵌入式系统下开发USB总线驱动的相关成果资料较少,本课题横向类比了相关领域如Windows,Linux等系统下USB总线设备驱 动程序开发的各类成熟和较成熟思想,结合与WinCE.Net系统开发相关的各种中英文资料,分析该系统自带的各种驱动源代码示例,从而提出以流驱动模 式为策略的框架下具体开发该类总线设备驱动程序的流程,总结如下: (1)USB总线体系与其它传统的串行总线不同,其主机端和设备端是一个互相联系的有机整体,功能设备的制作需要遵循同一的设备类规范,从而设 备驱动程序要以该规范所制定的USB总线设备特征和协议内容为基础进行开发。 (2)分析WinCE.Net系统对于USB总线的支持程度,提出并阐述了USB总线客户端驱动程序开发策略,并根据该策略开发出USB总线实验设备的驱动程序 ,这是本课题的主体部分。由于针对的应用领域不同,相对于成熟的如Windows,Linux等大型操作系统,WinCE.Net嵌入式系统中设备驱动程序开发机制 较为精简,可以根据不同的功能设备灵活的实现二者的通信。本文所总结的驱动开发策略是流驱动的形式,可以运用于产生流式数据的设备或者与这种 方式相关相近的设备驱动程序开发中。 (3)分析出系统协议栈与USB总线设备的配置交互过程以及设备驱动程序与设备对应接口的匹配过程。这两大过程的分析结果是本课题的重要成果之 一,可以作为一般性原理适用于所有USB总线设备。在设备驱动程序能够控制设备之前必须经过协议六种状态阶段主机才能配置好设备,并且只有通过协 议后续的指定设备功能接口和设备驱动程序匹配过程,主机才能控制目标设备。

2.期刊论文 韩海力.郭云峰.Han Haili.Guo Yunfeng 用DDK开发win2000/xp下USB设备驱动程序 -微型电脑应用 2005,21(6)
本文介绍了如何用Microsoft公司提供的驱动程序开发包(DDK)工具开发win2000/xp下的USB设备驱动程序.首先概述了USB驱动程序体系结构和 Windows驱动程序模型等用于开发USB设备驱动程序背景知识.然后深入的讲述了用DDK编写USB设备驱动程序必须用到的几个关键技术,包括USB设备驱动程 序入口与初始化、如何建立并提交USB请求块(URB)给总线驱动程序(USBD)、USB设备如何配置、USB四种通信管道的管理等四个方面.

3.学位论文 潘州 基于CAN总线的USB功能设备驱动程序设计与实现 2006
具有实时性、可靠性的CAN总线是目前应用最为广泛的现场总线之一,节点设备CAN板卡被用于构建船舶上的传输控制网络,其与主机的通信接口采用 USB接口.通常操作系统所能提供的USB通用驱动程序,仅负责USB设备的枚举,但无法实现对特定设备的读写和控制.为了实现对特定设备的读写和控制,并 为应用程序提供接口,需要在USB通用驱动程序的上层开发设备功能驱动程序.本文作者利用DDK在Windows2000环境下,根据IJSB控制芯片PDIUSBD12的特点 ,完成CAN板卡USB功能设备驱动程序的软件开发. 首先作者介绍了CAN总线体系结构,分析了CAN总线物理层和数据链路层工作原理.然后对USB的通信协议及特点进行了论述,其中包括总线特征、协议 定义、传输方式和电源管理等等,并对USB与其它常用接口的优缺点进行了比较. 其次对Windows 2000操作系统的总体结构进行了简要的描述,其中包括对用户模式和内核模式的讨论.然后针对WDM驱动模型及设计方法进行了详细的 讨论,其中包括对I/O请求、IRP处理及取消、电源管理、即插即用等技术细节的详细说明. 接下来作者结合源程序论述如何利用DDK开发CAN板卡USB功能设备驱动程序,其中详细说明了设备初始化、读写设备、即插即用等重要例程.最后论文 简要说明了驱动程序调试技术及安装. 作者开发的IJSB功能设备驱动程序不仅能稳定的运行于windows 2k,而且还能移植到基于NT技术的其它操作系统,占用非分页内存较少,整个开发过程 具有较强的代表性,对从事类似设备驱动程序开发的技术人员有较高的参考价值.

4.期刊论文 时向卫.李峥.张少武.SHI Xiang-wei.LI Zheng.ZHANG Shao-wu Win2000/XP下USB设备驱动程序研究与 设计 -计算机工程与设计2008,29(21)
USB驱动程序是实现USB上层应用软件和底层USB硬件无缝连接的桥梁,驱动程序的开发是USB设备开发的一个重要组成部分;在分析USB协议基础上,介 绍了Win2000/xp下USB系统体系结构,USB接口的相关概念,剖析了驱动程序的分层、重要数据结构,讨论了采用DriverStudio开发基于WDM的USB设备驱动程 序的设计原理和方法,阐述了驱动程序的调试与安装.通过设计并实现一个典型的例子总结了在Win2000/xp下编写一个USB设备驱动程序的一般方法和技巧 ,为开发更复杂的USB设备奠定了良好的基础.

5.学位论文 陈亮 Windows 2000/XP设备驱动程序的研究及WDM型USB驱动程序的开发 2005
本文旨在通过简明的语言,突出的重点使读者比较容易地理解WDM驱动程序开发模型的基本机制以及实现的基本原理,并通过实际开发USB设备的驱 动程序的实例使读者进一步了解在Windows2000/XP环境下WDM设备驱动程序的开发过程。 本文共7章,第一章,“绪论”描述了Windows2000操作系统的结构与WDM驱动程序模型。第二章,“WDM驱动程序的基本机制”讨论了创建WDM驱动程 序架构所需的类及必需的基本例程。第三章,“IRP”介绍了IRP的定义和有关IRP完成、取消、创建和释放操作的基本用法。第四章I/0控制操作介绍

“WDM驱动程序和应用程序之间的通信打的方法。第五章,“即插即用”解释了PnP管理器的功能、即插即用IRP以及即插即用例程。第六章,“安装设备 驱动程序”介绍怎样把驱动程序纳入到系统中及INF文件的基本写法。第七章“USB设备开发”介绍了USB的基本概念和结构,结合实例阐述了用 DriverStudio工具包开发Windows2000环境下WDM型USB设备驱动程序的方法,并给出关键例程主要代码。

6.期刊论文 吴方园.张磊.俞建新.WU Fangyuan.ZHANG Lei.YU Jianxin USB 2.0内存卡读写器设备驱动程序设计与 实现 -微计算机应用2006,27(4)
介绍了USB设备基本概念和驱动程序核心数据结构,并分析了WDM型的USB驱动程序分层模型和USB驱动程序接口,最后设计并实现了USB2.0内存读写器 设备驱动程序.

7.学位论文 程科 嵌入式Linux设备驱动程序的设计与研究 2007
在数字信息技术和网络技术高速发展的后PC时代,嵌入式系统因其体积小、可靠性高、功能强、灵活方便等许多优点,已渗透到工业、农业、教育 、国防、科研以及日常生活等各个领域,对各行各业的技术改造、产品更新换代、加速自动化进程、提高生产率等方面起到了极其重要的推动作用。同 时,嵌入式Linux操作系统以其开放源代码、易于开发、功能强大、稳定、成本低等优势迅速跻身于主流嵌入式开发平台。基于嵌入式Linux操作系统的 研究和应用具有巨大的学术和商业价值。在嵌入式Linux系统的开发中,嵌入式设备种类繁多的特点决定了不同的嵌入式产品在开发时都必须设计和开发 自己的设备驱动程序,使得嵌入式Linux设备驱动程序的开发在整个嵌入式系统开发工作中占有举足轻重的地位。 本文首先详细介绍了嵌入式Linux系统的体系结构以及嵌入式Linux系统设计的基本步骤,并阐述了在基于$3C24.10芯片的FS2410开发板上构建了一 个可实用的嵌入式Linux系统的全过程;然后分析了Linux内核的组成和工作机制、内核与设备驱动之间的关系,Linux设备驱动的结构,并总结了 Linux设备驱动的设计和实现步骤;再概述了USB总线协议的拓扑结构、通信流模型、数据传输流程等问题,实现了基于ZC301P芯片的USB摄像头的嵌入式 Linux驱动程序。最后概述了PCI总线协议的体系结构、总线信号、总线配置等问题,实现了流媒体数据缓存PCI卡的Linux设备驱动程序。在硕士课题的 研究工作中,作者的主要工作成果是: 1.研究和分析了项目开发中USB摄像头和USB鼠标数据传输带宽冲突所造成的花屏、死机的问题和原因。从减小冲突的影响和降低传输带宽需求这两 个方面出发,提出并实现了三种解决USB传输带宽冲突问题的方法。实验证明,综合使用这三种方法就能够有效地解决带宽冲突带来的花屏、死机问题。 并且,据此发表核心文章一篇。 2.总结了Linux设备驱动程序的设计和实现步骤,并实现了基于ZC301P芯片的USB摄像头和流媒体数据缓存PCI卡的Linux设备驱动程序。

8.期刊论文 梁正平.毋国庆.肖敬 Linux中USB设备驱动程序研究 -计算机应用研究2004,21(6)
介绍了USB的相关概念及Linux中USB设备驱动程序的框架和重要数据结构.通过设计和实现一个典型的例子,总结了Linux下编写一个USB设备驱动程序 的一般方法和技巧.

9.学位论文 伍华 ARM9平台下的Linux设备驱动程序 2006
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件均可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用 计算机系统。在嵌入式系统需求不断增长的今天,Linux也凭借其内核微小、可裁减,资源丰富和硬件支持广泛的优越特性加入到嵌入式系统开发的阵营 ,并逐步得到业内人士的认可。 USB是英文“UniversalSerialBus”的缩写,中文含义是通用串行总线。它一种快速的、廉价的、双向的并可以进行热插拔的串行接口。USB技术的 问世改变了传统的PC机外设世界,使不同的外设和主机之间的接口大大简化了。 本文将研究的重点放在了Linux设备驱动程序的设计上。文章首先总的介绍了嵌入式设备驱动程序的概念、特点、功能以及嵌入式设备驱动程序的软 件架构,之后本文分两个部分详细介绍Linux设备驱动程序的设计与具体实现。 第一部分先对Linux下的设备类型、设备号等概念以及主要的数据结构、入口函数进行了详细说明,然后概括了Linux设备驱动程序的框架以及设计 方法。第二部分则是在第一部分的内容基础之上具体介绍了USB接口的特性,USB总线传输的协议和USB设备驱动程序开发的知识。最后给出了在 arm2410平台下添加和实现一个USB鼠标设备的具体方法和步骤。

10.会议论文 孙熊飞.殷烨 添加USB外部设备驱动程序 2002
嵌入式系统中应用USB总线越来越多,特别用于与多种类型的外设进行通信.本文讨论了USB设备接口以及设备驱动程序的编写.设备驱动是保证应用程 序访问硬件的软件组件.设备驱动程序是根据Windows驱动程序模型(WDM)来设计的,使用了NTDDK驱动程序开发包.编程语言及编译使用了VC++.本文只是对 其的一个简述.

本文链接:http://d.g.wanfangdata.com.cn/Periodical_yqybyh200701053.aspx 下载时间:2010年5月27日


相关文章:
基于USB接口的单片机与PC机通信-论文
基于USB接口的单片机与PC机通信 摘要:安装USB设备不需要用户自己设置硬件与软件的选项,USB接口的传输速度要比计算 机传统的串行口和并口快的多, 所以USB设备已经广泛...
VC++6.0 中使用libUsb库进行Hid USB设备通讯
VC++6.0 中使用libUsb库进行Hid USB设备通讯_计算机软件及应用_IT/计算机_专业资料。介绍通用USB库在VC++环境中的使用 VC++6.0 中使用 libUsb 库进行 Hid ...
用VC实现PC机与单片机的通信
用VC 实现 PC 机与单片机的通信 王荣鸽 白连平 介绍了 Windows98 环境下利用 Visual C++ 6.0 的 MSComm 控件实现微机 摘要 与微机及微机与单片机通信程序设计方法...
利用CAN总线实现PC机的远程通信
利用CAN 总线实现 PC 机的远程通信 【摘要】介绍了一种在工业测控系统中具有通用性的,基于 cAN 总线控制 器 SIAl000 的,CAN 总线与 PC 机通过 RS-232 互连...
单片机与远程PC机间建立通信的方法
单片机 AT89C52 控制 ADC0809 进行数据采集。将...基于USB接口的51单片机与... 5页 2下载券 PC机...PC机与单片机串行通信的... 2页 5下载券 利用MODEM...
51单片机与PC机通信
相关硬件及配套软件 7.1 AT89C51 器件简介 7.2...本文介绍一种纯软件实现 PC 机和单片机串口通信的...基于USB接口的51单片机与... 5页 2下载券 51...
基于CH375多通道USB接口与PC机通信的实现
基于CH375多通道USB接口与PC机通信实现_信息与通信...Visual C++作为计算机端应用软件的开发平台,以实现两...CH375CloseDevice( 1 ); //关闭 USB 设备 2 }...
单片机与PC机串口通信实现
越​多​地​采​​单​片​机​...​P​C​机​具​有​强​大​的...PC 机的 RS-232 串行接口与外部设备进行通讯,使...
单片机与PC机通信设计
c) 编制程序实现: 将数字 0-255 从 PC 机的串口...4.2 USB 通信的优点 通过 USB 接口和 RS-232(DB...(DB-9)串口不支持即插即 热插拔,设备安装后...
利用Visual C
利用Visual+C实现USB设备... 5页 1下载券 利用Matlab和Visual C^+... 3页...利用Visual C++制作应用程序启动画面 2006-10-16 06:00 作者:徐茜 黄雪峰出处...
更多相关标签:
单片机与pc机串口通信 | 单片机与pc机通信 | 单片机与pc机串行通信 | 单片机 pc机 串口通信 | fpga与pc机以太网通信 | visual c 串口通信 | visual basic串口通信 | visual c 实现mqtt |