USB接口范文
USB接口范文(精选12篇)
USB接口 第1篇
(一) 发展历史
USB是英文Universal Serial Bus的缩写, 中文含义是“通用串行总线”。1994年, Intel、Compaq、Digital、IBM、Microsoft、NEC、Northern Telecom等七家世界著名的计算机和通讯公司成立了USB论坛, 旨在统一外设如打印机、外置Modem、扫描仪、鼠标等的接口, 以便于安装使用, 取代以往的串口、并口和PS/2接口, 花了近两年的时间形成了统一的意见, 于1995年11月正式制定了USB0.9通用串行总线 (Universal Serial Bus) 规范。可是具有真正意义的USB标准是在1996年制定USB1.0标准, 其传输速率为1.5Mbps, 现在我们称为低速传输的USB接口, 常用于连接一些低速传输的设备, 如鼠标、键盘等, 不过由于当时操作系统的不支持 (WIN95以后的操作系统才支持USB) 和很少有主板提供USB接口, 使得1996年颁布的USB1.0标准没有多大意义。直到1998年, 制定了USB1.1标准, 使USB技术更加成熟可靠, 接着支持USB的操作系统Win98发布以后, USB才真正发展起来;基于USB1.1标准的USB接口也称为全速传输的USB接口, 其传输速率为12Mbps, 可用于连接音频和压缩视频设备。但随着数据交换量的日益增大, 12Mbps的传输率已经成了USB接口的瓶颈, 直到1999年2月, USB 2.0规格的出现, 情况才有所改观, 其传输速率高达480Mbps, 使得新一代的USB接口成为几乎不受限制的新型接口。
IEEE1394, 是由Apple公司于1993年首先提出, 旨在取代并行的SCSI总线, 并能同时提供连接数字音频和视频设备的一种高速串行总线, 1995年IEEE (电气与电子工程师协会) 正式接纳成为一个工业标准, 全称为IEEE1394高性能串行总线标准 (IEEE1394 High Performance Serial BUS Standard) 。该标准在不同的应用领域名称有所不同, 在PC产业市场常称之为IEEE1394, 在家电业界则多称之为i.LINK, 在Mac族群则以最早的Firewire称之。IEEE1394发展到现在主要有两个版本, 一个是IEEE 1394a, 主要支持两种模式Backplane模式和Cable模式, 其中Backplane模式只支持12.5Mbps、25.5Mbps或50Mbps的传输速率, 而Cable模式则提供了我们需要的100Mbps、200Mbps和400Mbps;另一个是IEEE 1394b, 它将由IEEE 1394a的400Mbps直接扩大到800Mbps和1600Mbps, 如果使用光纤的话, 最高传输速率提高到了3.2Gbps, 提供内部设备供电解决方案, 此外还引入了一种称为“Betamode”的新物理层配置, 用来提高IEEE 1394b系统的管理能力。
由此看出两者是同一时期出现的两种新型串行总线标准, 但出发点不同, USB是想统一外设接口, 而IEEE1394是想提供高速传输的串行接口, 因此IEEE1394在出现之初所提供的传输率就高于USB, 之后的发展态势仍是IEEE1394的传输率大大高于USB的。再一个就是, USB是由世界著名的PC大公司共同制定的标准, 许多主板厂商都提供良好的支持, 这也决定了USB在PC上的普及程度比较高, 而IEEE1394一个是工业标准, 最初是由Apple公司提出, 虽然后来各大PC虽也陆续支持, 但在PC上的普及仍不如USB。
(二) 规范及特性
下表是对USB和IEEE 1394的一些主要特性作的一个比较。
由此可以看出:
1. 单从技术角度上来看, IEEE 1394从性能、应用面来说都比USB更具优势, 主要表现在以下几个方面:
(1) IEEE 1394比USB更能提供快速的传输速率。虽然USB2.0可以提供480Mbps, 略高于IEEE 1394a提供的400Mbps, 但在实际应用中, USB2.0的实际传输速度只有USB1.1 (12 Mbps) 的2~13倍, 远远达不到其理论值, 而且如果几台设备共用一个USB通道, 带宽会被平均分配给每个USB设备, 每个设备所享用的带宽就会变小, 这时的传输速度就更低了。而目前主流的IEEE 1394a在突发传输率、平均读速率/写速率、工作站性能、文件拷贝速率等方面都要远优于USB2.0, 且传输自始至终使用固定的带宽, 可以想象IEEE1394b的优势将更为明显。
(2) IEEE 1394能够提供比USB所能提供的更大功率的电源支持, 功率超过2.5W的常用外设不使用独立电源的话, 就只能用IEEE 1394为其提供电源, IEEE 1394提供的60W的电源, 可以满足各种常见外设的供电需求, 如硬盘、刻录机、扫描仪等。
(3) USB主要是用于PC与其外部设备进行数据文件的传输, 即使是两台设备之间的连接和传输也必须经过PC, 而IEEE1394除了用于计算机数据文件的传输外, 还能用来直接传输音/视频信号及MIDI数据, 信号可以在两台设备之间直接传输而无需通过PC。
(4) 由于USB总线传输数据必须通过主机CPU来处理, 因此它便不是一种同步传输总线而是非同步传输总线, 因此它是无法实现实时视频流传播的, 会产生严重的延迟现象;而IEEE1394, 则能得心应手地完成它。
2. 单从价格角度来看, IEEE 1394使用成本比USB高, 主要表现在以下两个方面:
(1) 对于IEEE 1394来说, IEEE 1394控制器的结构较复杂, 要想将它集成进主板芯片组中, 无论在技术上还是在成本上都有一定难度, 要想实现IEEE 1394功能, 只能通过插接IEEE 1394扩展卡来实现, 而大部分南桥芯片都整合了USB控制器, 因此用户基本上不需要再投入其他费用, 就可以享受USB所带来的便利。
(2) IEEE 1394要收取高额的专利费, 而USB则不用。
(三) 应用领域
IEEE1394作为一个工业标准的高速串行总线, 最先的定位是在多媒体应用这方面。在影音消费类电器领域, IEEE 1394已成为一种事实上的连接标准, 已广泛应用于数字摄像机、数字照相机、电视机顶盒、家庭游戏机等设备。而USB走的是大众化路线, 广泛应用于PC外设接口, 如今的中低速外设无一例外的采用了USB接口, 如USB键盘和USB鼠标、USB调制解调器、USB音箱、USB打印机、USB扫描仪、USB游戏杆等。
USB与IEEE 1394本来分别流行于PC和音视频设备 (包括消费类与专业类设备) 两个不同的领域, 井水不犯河水, 但电子业的数字化及广泛融合使两个领域的设备产生互连的需要。比如由AV设备向PC输入以存储AV资料或由PC输出至AV设备用于录制或播放等等, 这就使得PC要与这些音视频设备相连, 必须提供IEEE 1394接口。随着多媒体技术的发展, 人们对音视频的需求的日益增加, 越来越多的中高档PC, 包括台式机和笔记本, 基本上都配置了IEEE 1394接口, 并有向低端电脑延伸的趋势。这是否就说明IEEE 1394将替代USB呢?不能这样说, 2001年底USB开发者论坛发布了USB 2.0OTG 1.0补充规范, 其目标是使USB设备之间可以摆脱电脑而自主通讯, 这项技术使得USB向消费电子产品领域渗透成为可能。
USB与IEEE1394在各自的领域都已有广泛的相应, 并不断的更新和完善自己的技术, 力图向对方的领域渗透。
(四) 标准制定及发展展望
在新技术和新标准的制定上, 两者也争先恐后, 力图在技术上和更广泛的应用上压倒对方。USB开发者论坛于2005年5月发布Wireless USB标准, 使得USB设备在3米范围内可以以480Mbps或10米范围内以110Mbps同各种无线应用直接共容互通;USB OTG最新1.3版也于2006年提出, 完全可以实现没有主机时设备与设备之间的数据全速传输 (480Mbps) 。而IEEE1394也不示弱, 于2004年正式发布1394.1标准, 增加了两个1394总线间的桥接技术, 可以用网桥连接多个IEEE1394网络, 达到无限制连接;于2005年发布Wireless 1394标准, 各种无线应用能够直接共容互通;1394c标准是在2006年正式发布, 增加了使用5类线传输技术 (800Mb/s) , 传输距离达到100M, 与以太网可进行无缝连接。USB与IEEE1394都在积极的研究各自的新技术, 并在更多的领域应用自己的新技术, 比如无线、网络等, 力争使自己的标准成为唯一的外设接口标准。
随着技术的发展, Vsita、高清、DX10的逐渐普及, USB的480mbps的传输速度对于现在的应用环境来说已经不足以满足我们的要求了, 于是USB开发者论坛开始着手制定USB3.0规范, 届时速度将是USB2.0的10倍;而1394协会也正在考虑制定一个10G规范的标准, 新标准的将会使IEEE1394传输速率更快。
通过对USB和IEEE1394的在多个方面的比较, 可以得出IEEE1394在传输速率上比USB更快, 在流媒体处理方面有着USB无法比拟的优越性, 更适合于音视频数据的传输, 但占用资源较多, 要让其达到最佳传输速率需要高速CPU来配合;还有就是使用成本高, 一旦1394控制器能集成到主板芯片组中和取消了专利使用费, 其在PC领域的应用将大增加。USB在技术上不及IEEE1394, 然而一款成功的标准在业界的确立, 除了技术还要受到其它诸多方面因素的影响, 如价格, 厂商支持等, USB控制器已集成进了南桥芯片中, 现在厂商生产的主板无一例外的提供6个以上的USB接口, USB在PC应用中的地位是难以撼动的, 而如果USB解决好了流媒体传输和设备无PC连接问题, 其向音视频领域的渗透也会变得容易起来。
USB不会因为IEEE1394的技术比暂时比自己领先而拱手让出其在PC领域的外设接口的老大地位, 而IEEE1394也不会因为USB的低廉使用价格而放弃成为PC统一外设接口的理想, 两者还将会在相当长的一段时间内继续争斗、继续共存, 并不断的推出向对方的领域渗透和向更广泛领域应用的新技术和新标准, 届时谁的技术更成熟、易用性更好, 谁能更好的解决融合过程中的兼容和互连问题, 解决好性能和价格的矛盾问题, 谁就会占得先机, 并逐步占领对方领域的市场, 以至取而代之, 成为唯一而统一的外设接口。
摘要:文章从发展历史、规范及特性、应用领域、标准制定及发展展望四个方面对USB接口和IEEE 1394接口作出了比较, 指出各自的优势及局限, 以及未来的发展前景。
关键词:USB,IEEE 1394,接口
参考文献
[1]邓亚平, 陈昌志.微型计算机接口技术[M].北京:清华大学出版社, 2005.
USB接口 第2篇
王晖
摘要关键词简单介绍USB接口的特点和Philips公司的USB接口芯片ISP1581;详细介绍USB接口的硬件原理设计、固件开发流程及USB设备的调试。
USB
ISP158
1固件
枚举
微控制器接口
DMA 引
言
通用串行总线USB(Universal Serial Bu s是近年来应用在PC领域的新型接口技术;是一些大PC厂商,如Microsoft、Int el等,为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾,而制定的一种串行通信的标准。USB以其高速、易于安装配置、使用灵活和可靠性高而日益受到人们的欢迎。现在已广泛使用于计算机和周边设备的连接,如键盘、鼠标、打印机、存储设备等。
USB控制器一般有两种类型:一种是MCU集成在芯片里面;另一种是纯粹的USB接口芯片,仅处理 USB 通信。前者由于开发时需要单独的开发系统,因此开发成本较高;后者只是一个芯片与MCU接口,实现USB 通信功能,因此成本较低、可靠性较高。本文主要介绍Philips公司的ISP1581器件的使用方法,它属于后者。1硬件设计
1.1I S P1581芯片特点
ISP1581 是一个高速USB 器件控制器。它实现了USB 2.0/1.1 物理层和数据协议
层的任务,并且实现了
连同端点EP0(设置用于 访问设置缓冲器在内的 16 个USB 端点的共同协 作;用于基于微控制器 的系统,与微控制器/微 处理器的通信是通过一 个高速的通用并行接口 实现的,接口速度可达 12.5M字节/s或12.5 M字/s;支持DMA传输, 可很好地实现与大容量
存储设备的接口;通过ATA/A TAPI接口,可以直接与ATA/A TAPI设备相连。ISP1581能适应大多数设备类规范的设计,非常适合做很多外围设备,如打印机、扫描仪、外部大容量存储器和数码相机等的外部接口。(注: ATA/A TAPI,Advanced Technology Attachmen t/Advanced Technology Attachment Peripheral Int erface。中文名称为高级技术附加装置/高级技术附加装置外围接口。ATA是一种硬盘接口标准,ATA标准的接口类型其实就是IDE 接口类型。
1.2I S P1581内部模块功能描述
ISP1581内集成了多个模块,各自完成不同功能,如图1所示。
① USB2.0收发器。模拟收发器通过集成的终端电阻直接与USB电缆相连。
② Philips串行接口引擎(SIE,Serial Interface Engine。完成所有USB协议层的功能,主要完成以下的功能:同步方式的识别、并行/串行的转换,位填充/解除填充、CRC校验/产生、包标识(PID校验/产生、地址识别和握手评估/产生。考虑到速度,它是全硬件的,不需要
DREQ,DACK CS0,CS1, [16:0] DS/WR 图
1ISP1581内部结构方框图
固件介入。
③ 存储器管理单元(M M U和集成RA M。MMU 和集成RAM 实现了USB 总线和微控制器管理器或DMA 管理器之间的速度转换。
④ 微控制器/处理器接口和微控制器/处理器的管理器。可以直接与大部分微控制器相连。
⑤ DMA 接口和DMA 管理器。DM A 管理器接收到DMA 命令后,可直接把数据从内部RAM 传送到外部DM A 设备或从外部DM A 设备传送给内部RAM。
2硬件连接
ISP1581 有一个快速通用接口,利用它可以实现与大
部分类型的微控制器/处理器的通信。上电时,由引脚BUS_CONF、MODE1 和MODE0 共同设置。由于MMC2107的外部地址、数据总线是分开的,因此在本开发平台上ISP1581只能工作在通用处理器工作模式下,设置方式如表1所列。
ISP1581提供微控制器接口与微控制器进行数据传输,也支持DMA 传输。在微控制器速度较高时,两者的读写访问速度均可达12.5M b/s ,采用DMA 方式会增加电路设计的复杂度。经过综合比较,采取微控制器接口方式。USB 模块硬件连接原理如图2所示。
注:①ISP1581提供两种复位方式:a.ISP1581集成有上电复位电路(POR, RESET 引脚接电源,实现上电复位功能。b.RESET 引脚接MMC2107的一个数字I/O 引脚,将该引脚置低800μs 后置高,实现复位。②ISP1581 的供电电压为3.3V 或5.0V ,I/O 引脚最大能承受5.0V 的电压。根据I/O 口的电压,从3.3V 和5.0V 中选择一个作为供电电压。
3I S P 1581固件(F I R E W A R E 程序设计 由于所有的通信都是由主机发起,设备只能响应来
自主机的命令。在这种结构下,ISP1581的固件采取中断驱动。这样一方面保证了快速的数据传输和较好的软
件结构,另一方面简化了编程和测试。
固件程序由5部分组成,如图3所示。(1主循环流程
上电后,初始化MMC2107和ISP1581。然后,主循环程序轮询检查事件标志,进入相应的子程序进行进一步的处理。图4是主循环的流程。
表
1设置工作方式
注:这里使用16位总线,AD[0]必须与ISP1581的地端相连。图
3固件结构和数据流向 图
4USB主循环程序
图
2MMC2107与ISP1581硬件连接原理
(2中断服务程序(ISR流程
图5所示的中断服务流程,用来处理由ISP1581产生的中断。通过访问ISP1581的中断寄存器,建立正确的事件标志,以通知主循环程序进行处理。(3USB 标准请求处理
进行应用通信以前,主机必须枚举设备。该过程是通过给端点0发送包含标准设备请求(CHA P_9的控制传
输实现的。USB 标准请求流程(见图6译码设备请求类型,转到相应的处理子流程。枚举过程如下: ①主机使用默认地址(地址0读取设备描述符G etDeviceDescriptor;② SetAddress;③ 连续3次G etDev iceDescriptor ,读取全部设备描述符;④ G etConfigDescriptor;
⑤ G etStringDescriptor(可能没有;⑥ 读取全部ConfigDescriptor 后,主机将找到新设备,提示安装驱动程序。⑦ 在设备能通信前,主机给出SetConfiguration 请求,设备收到后调整有关信息,使设备能被客户软件利用。(4厂商请求处理(VENDOR 厂商请求和USB 标准请求一样,都根据控制传输的内容进行相应处理。本开发平台的固件程序中定义了两个厂商请求,分别为取得固件版本和将批量数据写入设备或从设备中读出数据。
取得固件版本流程如图7所示。主机发送批量数据读写请求时,在控制传输的数据阶段,主机给出需要传输的数据字节数、数据传输方向、页索引和数据定位。控制传输结束后,主机和设备就可以根据双
方约定,启动批量传输。批量传输流程如图8所示。调
试 4.1 调试步骤
USB 的调试可分为以下几个步骤: ① 若USB 芯片正常工作,可实现软连接,将设备插 入主机后,主机上出现“未知设备类型”的USB 设备;② 提供描述符,提供正确的VID 和PID 后,主机能够识别设备,但要求提供设备的驱动程序;③ 安装驱动程序后,调试各端点,使其均可传输数据,用主机端的测试程序对其进行测试,验证硬件及固件的正确性。
中断服务程序
图
5中断服务程序流程 图6
USB标准设备请求流程 取得固件版本
图7
取得固件版本流程 图8
批量传送流程
4.2调试工具
因为每一次USB的传输过程,都有时效要求,等待时间过长,通信过程也就中止了,因此不适合用硬件仿真器来设断点调试。可采用串口辅助调试过程,即在固件代码中加入类似于Printf的语句,向串口输出一些信息。借此,可以知道程序是否运行到此处,以及运行到此处时相应的变量或寄存器值。
设备完成配置后,在Bus Hou nd中可看到该设备(bus Hound是一种应用软件。选择该设备,就可以对主机与此设备间的通信数据进行分析和监视。Bus Hound 工作在主机端,串口工作在微控制器端。将串口调试和Bus Hound两种手段配合使用,可以使USB通讯过程的调试更加容易。
在调试USB设备时,还可使用UsbView程序。在该程序中可以查看设备描述符、配置描述符和端点描述符是否正确。
扩展前置USB接口 第3篇
一、 认识USB接口
目前市面上的主板一般提供八个以上的USB接口,但是裸露在机箱背面的主板USB接口一般只有四个。
二、连接外置USB接口
那么主板提供的其他USB接口如何使用呢?其实,这需要在装机时,通过机箱与主板的接口连接线缆,从而使机箱前置USB接口可以使用。
主板上提供的前置USB接口一般为两组,每一组可以外接两个USB接口,分别是USB4、 5与USB6、7接口,总共可以在机箱的前面板上扩展四个USB接口(当然需要机箱的支持,一般情况下机箱仅提供两个前置的USB接口,所以只要接好一组即可)。
这是机箱前面板前置USB的连接线缆,其中VCC用来供电,USB2-与USB2+分别是USB的负、正极接口。GND为接地线。(注:在连接USB 接口时大家一定要参照主板的说明书,仔细地对照,如果连接不当,很容易造成主板的烧毁。)
为了方便用户的安装,目前市面上销售的主板的USB接口的设置相当人性化,把USB接口设计成有些类似于PATA接口的设计,采用了防呆式的设计方法,只有以正确的方向才能够插入USB 接口,否则是无法插入的,提高工作效率的同时也避免因接法不正确而烧毁主板的现象。
USB接口驱动程序开发 第4篇
随着微机技术水平的日益提高,传统的计算机接口已经不能满足当前计算机高速发展的需求,计算机业迫切需要一种新的通用型、高速总线接口,通用外设接口标准USB就应运而生。
USB,全称是Universal Serial Bus(通用串行总线),是一种新型的、基于令牌的、高速的串行总线标准,由Compaq、Microsoft、Intel、IBM等七家公司共同开发的,旨在解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信标准[3],自1995年在Comdex上亮相以来已广泛地为各PC厂家支持。现在市场上几乎所有的P C机器都配备了U S B接口,USB接口之所以能够得到广泛支持和快速普及,是因为它具备以下优点:
1)终端用户的易用性
●为接缆和连接头提供了单一模型
●电气特性与用户无关
●自检外设,自动的进行设备驱动和设置
●外设可以动态连接,动态重置
2)广泛的适用性
●适应不同设备,传输速率从几kb/s到十几Mb/s
●在同一线上支持同步、异步两种传输模式
●支持对多个设备的同时操作
●可同时操作127个物理设备
●在主机和设备之间可以传输多个数据和信息流
●支持多功能的设备
●利用底层协议,提高了总线利用率
3)同步传输带宽
●确定的带宽和低延迟适合电话系统和音频的应用
●同步工作可以利用整个总线带宽
4)灵活性
●直接发送一系列指定大小的数据包,允许对设备缓冲器大小进行选择
●通过指定数据缓冲区的大小和执行时间,支持各种数据传输率
●通过协议对数据流进行缓冲处理
5)健壮性
●在协议中使用差错处理/差错恢复机制
●完全实时热插拔
●可以对有缺陷的设备进行鉴别
6)与P C产业的一致性
●协议的易实现性和完整性
●与P C机的即插即用体系结构一致
●与现存操作系统有良好衔接的接口
7)性价比
●以低廉的价格提供传输速率为1.5 M b/s的子通道
●将外设和主机硬件进行了最优化的集成
●促进了低价格外设的发展
●廉价的电缆和连接头
●运用商业技术降低成本
8)可升级性
●体系结构的可升级性支持在一个系统中同时存在多个USB主机控制器
正由于上述优点,开发USB接口的设备已成为一种发展趋势。然而随着USB技术的迅猛发展,传统的U S B 1.1接口已经不能适应用户的需求,于是在1 9 9 9年在Intel的开发者论坛大会上又提出了USB2.0技术,使得U S B不仅支持1.5 M b/s的“低速”,传输和12Mb/s的“全速”传输,而且支持480Mb/s的“高速”传输,比USB1.1标准快40倍左右,速度的提高对于用户的最大好处就是意味着用户可以使用到更高效的外部设备,而且具有多种速度的周边设备都可以被连接到USB 2.0的线路上,而且无需担心数据传输时发生瓶颈效应。
2 USB驱动程序设计
一个完整的USB系统包括主机系统和USB设备。所有的传输事务都是由主机发起的。一个主机系统又可以分为以下几个层次结构,如图1所示。
U S B总线接口包括U S B主控制器和根集线器,其中USB主控制器负责处理主机与设备之间电气和协议层的互连,根集线器提供USB设备连接点。USB系统使用USB主控制器来管理主机和USB设备之间的数据传输,另外它也负责管理USB资源,如带宽等。应用软件不能直接访问U S B设备硬件,而通过U S B系统和USB总线接口与USB设备进行交互[1]。
U S B设备包含一些向主机软件提供一系列U S B设备的特征和能力的信息的设备描述符,用来配置设备和定位USB设备驱动程序。这些信息确保了主机以正确的方式访问设备。通常,一个设备有一个或多个配置(C o n f i g u r a t i o n)来控制其行为。配置是接口(I n t e r f a c e)的集合,接口指出软件应该如何访问硬件。接口又是端点(endpoint)的集合,每一个与USB交换数据的硬件就为端点,它是作为通信管道的一个终点。图1显示了一个多层次结构的通信模型,它表明了端点和管道所扮演的角色。
2.1 USB驱动程序结构
1)USB驱动程序体系结构
运行在核心态的USB驱动程序是基于WIN32驱动程序模型WDM(Windows Driver Model)的,它采用分层驱动程序模型,由USB总线驱动程序和USB功能驱动程序两部分组成,总线驱动程序由操作系统提供,用户只需要编写相应的功能驱动程序即可[2]。
2)处理流程
因为I/O管理器把每一个设备对用户程序都抽象成文件,所以用户程序通过调用文件操作API函数就可以实现与驱动程序中某个设备的通信。
用户程序发送的请求由I/O管理器转换为具有不同主功能代码的IRP(I/O请求包)发送给功能驱动程序。功能驱动程序接收该IRP,在回调程序中根据IRP中包含的具体操作代码,构造相应的U S B请求,把它放到一个新的IRP中,并把这个新的IRP传递给USB总线驱动程序。USB总线驱动程序根据IRP中所包含的USB请求块执行相应操作,再将操作结果通过IRP返还给功能驱动程序,功能驱动程序接收此IRP,将操作结果通过IRP返还I/O管理器。最后,I/O管理器将此IR P中的操作结果返回给应用程序。至此,应用程序对USB设备的一次I/O操作完成,其处理流程如图2所示。
3 USB设备驱动程序中关键代码实现
下面是以开发的A R M读写驱动程序为例,介绍U S B驱动程序中几个关键例程的实现。本驱动程序的主要功能是控制USB设备上的ARM并对ARM板进行读写操作。
1)初始化函数Driver Entry()
设备驱动程序与应用程序不同,没有main()或Win Main()函数,而是有一个名为Driver Entry()的入口函数,它通常完成一些初始化工作。当设备驱动程序被加载时,操作系统调用这个入口。
2)创建设备函数Add Device()
大多数的PDO都是在Pn P管理器调用该程序入口点时被创建的。插入新设备后,系统启动时,总线枚举器会搜索总线上的所有设备,自动寻找并安装设备的驱动程序,并由驱动程序中的处理Pn P功能模块自动处理Add Device()。本程序使用Create Device()函数创建设备对象,再使用Register Devicelnterface()函数将设备组成一个特定的设备接口,然后通过Attach Device To Device Stack()函数关联设备栈。
3)ARM的传输处理函数Usb Transmit()
该函数是实现本驱动程序功能的关键,它用来与ARM进行通信。分析发送的请求数据后根据命令的具体含义对ARM进行读写操作。应用层通过调用标准的AR M板函数来发送I/O请求。
4 结束语
随着支持USB的个人电脑的普及,大量支持USB接口外设的不断涌现,以及USB技术的发展和不断完善,因此基于USB驱动程序的开发也将成为这一发展趋势的重中之重。本文介绍了USB的通信模型,分析了基于WDM的USB驱动开发的关键所在,结合ARM驱动程序开发介绍了DDK开发环境的构建,最终结合实际系统完成了基于DDK的USB接口WDM驱动开发和调试。
参考文献
[1]盖素丽,常青.USB接口的驱动程序开发[J].河北省科学院学报,2005,(6):18-19.
[2]王志强,孙书鹰,孙世宇.USB设备驱动程序开发技术研究[J].中文核心期刊《微计算机信息,》2006,22(1):57-58.
MINI USB接口维修实例 第5篇
1.拆卸
这款U盘的封装没有采用通用的螺丝紧固方式,而是采用如图所示的方式,其匙环端采用螺丝直接压入的方式,外露部分为光滑面,无法使用普通工具进行拧下螺丝。所以维修时想拆下来,可以采用用小一字螺丝刀将扣环撬下来,或者采用尖嘴钳硬拧下螺丝的方式,不过此种方式会把紧固螺丝拧花,影响美观,
只要把两个固定螺丝拧下来,再把印有方正LOGO的金属条沿USB接口方向推出,就会露出电路板。
2.焊接
MINI USB接口在电路板上的焊接共有六个焊点,四个USB数据连线,两个接地板固定。脱落的原因主要是MINI接地板的固定点焊接不牢,松动后导致MINI接头被直接推入所致。
焊接不用多说了,只要按原位置焊好就行,两侧的接地点容易焊接,但四个数据线接点却不容易焊接,须使用尖头烙铁进行焊接。一定要注意在焊接时电烙铁一定要良好接地,否则闪存芯片或驱动芯片可能会因静电而击穿损坏;还有是MINI接口的位置不能偏斜。
3.检测
插入MINI连接线,再与PC机连接,如果主机能够识别出U盘型号并顺利读出其中的数据,就说明修复成功了。
4.结束
USB接口 第6篇
故障现象一:USB鼠标老是断开连接然后重连。
解决办法:这不是主板供电不足的问题,而是设置问题。依次点开“控制面板/电源选项/更改计划设置/更改高级电源设置/USB设置/USB选择性暂停”,全部设为已禁用(如图1)。
故障现象二:USB鼠标一会儿不用,就会突然间不能动了,拔下来重新插上,就又恢复了正常。
解决办法:该问题主要是由Windows XP系统默认的USB电源管理设置问题造成的,用户只需调出设备管理器界面,点开“通用串行总线控制器”下拉菜单,用鼠标右键点选标有黄色感叹号的一项后,在弹出菜单中选择属性项。接下来将弹出窗口切换到“电源管理”项下,取消对“允许计算机关闭这个设备以节约电源”项的勾选(如图2)。
故障现象三:主板USB硬件接口供电不足,导致鼠标跳帧、假死、失效等故障。
解决办法:该故障有一部分可能是因为USB线材不良引起的,一般更换USB插线就可以解决,而大多数是由于主板本身USB接口设计供电不足造成的。USB接口有四个触点,分别是电源+5V、数据-、数据+、电源地,USB设备与计算机通过数据+和数据-通道进行数据传输,+5V、电源地具有为外部设备供电的能力。一般来说,电脑的前置USB是通过机箱上的数据线和主板上的USB插座连接,供电性能不佳,故当出现USB鼠标接前置USB口出现故障时,可以先转接到USB后置接口。
USB接口 第7篇
目前现有的仪器设备通常采取RS232串口与计算机通信RS232接口曾是计算机的标准配置,但随着时间的推移和计算机技术的进步,支持热插拔的USB标准接口取而代之并被大量配置。RS232串口在计算机的配置越来越少甚至不配置。RS232串口与USB接口虽然都属于串行接口,但它们的数据格式,通信协议及信号电平和机械连接方式都完全不同。这样便产生计算机不便于甚至于不能控制现有的仪器设备的问题,解决这一问题就得把现有的仪器设备的RS232接口改成USB接口。这种转换有两个设计方案,一个方案是从硬件底层固件开始,进行全面系统开发,此方案由于开发成本和开发难度及单片机的限制而很少被采用。另一个方案就是采用USB/RS232桥接芯片如CP2102进行设计,计算机通过USB接口虚拟出一个RS232串口,与设备的传统器件连接,设备对计算机接口的形式为USB接口。
2 CP2102功能
SILICON LABORATORIES推出的USB与RS232接口转换芯片CP2102是一种高度集成的USB-UART桥接器,提供一个使用最小化的元件和PCB空间实现RS232转USB的简便的解决方案,如图1所示,芯片包含一个USB功能控制器,USB收发器,振荡器和带有全部的调制解调器控制信号的异步串行数据总线(UART)全部功能集成在一个5mm X 5mm MLP-28封装的IC中。
作为USB/RS232双向转换芯片,一方面可以从主机接收USB数据并将其转换为RS232信息流格式发送给外设;另一方面可从RS232外设接收数据转换为USB数据格式传送回主机,其中包括控制和握手信号[1]。这些工作全部有芯片自动完成。
2.1 USB功能控制器和收发器
CP2102的USB功能控制器是一个符合USB 2.0的全速器件,并集成了收发器和片内相应的上拉电阻。USB功能控制器管理USB和UART间所有的数据传输以及由USB主控制器发出的命令请求和用于控制UART功能的命令。
CP2102和CP2103支持USB挂起和恢复信号功能便于器件以及外部电路的电源管理。当CP2102在总线上检测到挂起信号时,CP2102将进入挂起模式。在进入挂起模式时,CP2102会发出SUSPEND和/SUSPEND信号。SUSPEND和/SUS-PEND在一个CP2102或CP2103复位后也会发出,直到USB要求的器件配置完成。
CP2102的挂起模式会在下述任何一种情况时出现:
1)检测到继续信号或产生继续信号时
2)检测到一个USB复位信号
3)器件复位
在挂起模式出现时SUSPEND和/SUSPEND信号被取消。需要注意的是SUSPEND和/SUSPEND在CP2102复位期间会暂时处于高电平如果要避免这种情况出现可以使用一个下拉电阻(10K欧姆)来确保/SUSPEND在复位期间处于低电平。
2.2 异步串行数据总线(UART)接口
CP2102和CP2103UART接口包括TX(发送)和RX(接收)数据信号以及RTS,CTS,DSR,DTR,DCD和RI控制信号。UA RT支持RTS/CTS,DSR/DTR和X-On/X-Off握手。
可以通过编程使UART支持各种数据格式和波特率。UART的数据格式和波特率的编程是在PC的COM口配置期间进行的。可获得的数据格式和波特率见表1。
2.3 内部EEPROM
CP2102内部集成了一个EEPROM可以用于存储由设备原始制造商定义的USB供应商ID﹑产品ID﹑产品说明﹑电源参数﹑器件版本号和器件序列号等信息[2]。USB配置数据的定义是可选的。如果EEPROM没有被OEM的数据占用,则采用上表所示的默认配置数据。注意,尽管如此,对于可能使用多个基于CP2102的器件连接到同一个PC机的OEM应用来说,则需要一个专一的序列号。
内部的EEPROM是通过USB进行编程的,这允许OEM的USB配置数据和序列号可以在制造和测试时直接写入到系统板上的CP2102中。Cygnal提供一个专门为CP2102的内部EEPROM编程的工具。同时还提供一个免专利费驱动Windows DLL格式的程序库。这个程序库可以用于将EEPROM编程步骤集成到OEM在制造过程中进行流水线式测试和序列号的管理的自定义软件中。EEPROM的写寿命的典型值为100,000次,数据保持时间为100年。为防止被更改USB描述符可被锁定。
3 应用
原设备的RS232接口仅使用TXD/RXD二个引脚的信号和地三条线。设备单片机8031与RS232接口之间电平驱动采用MAXIM公司的MAX202CPE,用光藕6N137隔离。
采用CP2102改造后接口的实际应用电路如图2所示。该电路已经通过制板和软硬件调试,证明是完全可行可靠的。
(1)进行串口扩展所需的外部器件非常少,仅需2-3只去耦电容器即可,REGIN的输入端加去耦电容0.1u F与1.0u F并连。CP2102的供电电源由计算机USB口提供,可加3只保护管,使用起来非常简易方便。
(2)电路仅使用CP2102UART总线上的TXD/RXD二个引脚,其余悬空。
(3)CP2102的UART总线上的信号能够被单片机直接识别,为确保数据收发的稳定性,避免通信过程中的干扰,用原隔离光藕,并将RST脚用4.7kΩ电阻挂到VDD脚。
(4)当CP2102转换器连接到主机后,必须根据操作系统选择相对应的虚拟串行口驱动程序。设备的原应用程序不必修改,可以像存取一个标准的物理串口一样访问这个虚拟串口,在端口设备中会有“CP2102 USB to UART Bridge Controller(COM)”的新端口,(随计算机的配置而异),此时说明芯片驱动程序已经安装成功。而本质上所有针对虚拟串口的数据通信都是以USB总线传输来完成的,但在设备一方,收发的是RS232数据。
4 接口通讯程序
计算机通过USB接口与单片机通讯如图2所示,计算机采用C语言的通讯控制函数,按串行口方式设置。单片机通讯程序如下所示[3]。此通讯程序在波特率9600~600间调试,通讯准确可靠。
5 结束语
使用CP2102开发RS232转USB具有电路简单,运行可靠,成本低廉,对原有的RS232传统器件设备的软件硬件无需任何的改动,就将原有的RS232设备升级为USB接口设备。CP2102已被应用到系列标准源产品之中,并且还应用在黑龙江省科技厅电量变送器校验装置项目中。
参考文献
[1]Silicon Laboratories.CP2102DataSheet[EB/OL]http://www.silabs.com,2005.
[2]Silicon Laboratories.CP2103DataSheet[EB/OL]http://www.silabs.com,2005.
试论USB接口的安全性 第8篇
1994年,Intel、Compaq、Digital、IBM、Microsoft、NEC、Nortel等7家计算机和通讯厂为了解决传输速度、扩展能力和易用性问题,联合成立了USB论坛,并于1995年11月正式制订了USB0.9通用串行总线(Universal Serial Bus)规范,用于形成统一的PC外设接口标准。后来又有1996年发布的USB1.0,1998年发布的USB1.1以及2000发布的标准USB2.0。
USB为个人电脑与其外围设备之间的连接提供了一种标准化、单一化的接口其主要特征是高速、双向、同步、低成本、可动态连接,并且可以与当今乃至来的计算机平台兼容,是对计算机体系结构的一种工业标准扩展。
USB主要有以下优点:
1)速度快。USB有高速、全速和低速三种方式,主模式为高速模式,速率为480Mbps,USB2.0版规范允许480Mbps的速率传输数据。另外为了适应一些不需要很大吞吐量和很高实时性的设备,如鼠标等,USB还提供低速方式,速率为1.5Mbps。相比之下,串口数据传输率是115kbps-230kbps,标准并口的数据传输率为1Mbps,这些都远低于USB的传输速率。
2)设备安装和配置容易。USB设备支持即插即用,安装USB设备不必再打开机箱,加减己安装过的设备完全不用关闭计算机。所有USB设备支持热插拔,系统对其进行自动配置,不再占用中断资源或者DMA资源,彻底抛弃了过去的跳线和拨码开关设置。USB为接缆和连接头提供了单一模型,解决了外设越来越多所造成的插槽紧张问题。
3)易于扩展。通过使用Hub扩展,可接多达127个外设。标准USB电缆长度为3m,通过Hub或中继器可以使外设距离达到30m。
4)使用灵活。USB共有4种传输模式:控制传输(control)、同步传输(Synchronization)、中断传输(interrupt)、批量传输(bulk),以适应不同设备的需要。
5)能够采用总线供电。USB总线可提供5V电压、500mA电流,对于功耗较小的设备来说这是非常有效的。
2 USB接口存在的安全问题[1]
USB存储设备在极大地方便了我们工作、生活的同时,也给公司、企事业单位以及个人的重要数据安全带来了极大的安全隐藏,USB存储设备的风险可以划分为如下几点:
1)数据泄漏。USB存储设备体积小巧,容量却很大,现在普通的u盘多在1GB以上,而具有存储功能的M P4更是多达40GB以上,如果仅存储文本文件的话,几乎可以将一座图书馆纳入其中。许多正在使用USB存储设备的用户为了工作或使用的方便,往往是将USB存诸设备随身携带,很多雇员不假思索利用这些USB存诸设备把工作带回家或者带出工作场所,而USB存储设备体积小巧很容易滑落丢失。另外,存储有大量重要文件的USB存储设备也是其他别有用心之人或者是竞争对手的窃取对象,一旦USB存储设备丢失或者是被窃,必将导致数据泄露或丢失,一旦公司数据落入坏人手中,毋庸置疑公司将面临极大的风险与威胁。公司会失去信誉,卷入诉讼纠纷,造成重大财产的损失等等一系列的麻烦。
2)未经许可的数据提取。USB存储设备十分普及,但很多公司并没有出台相应的使用管理规定,即便是出台了,也有许多的不完善之处,比如没有相应的备份,加密或者资产管理机制。USB设备在公司内部、外部任意的流通使用,这样,就给别有用心之人提供了可乘之机,进行未经许可的数据提取,于是大量敏感的数据流出公司,瞬间被拷走。这种风险存在于两个方面:一是将公司计算机上的重要文件提取到USB存储设备上,带出公司出售给竞争对手或者是他用;二是将USB存储设备上的重要数据提取到计算机上,进行他用非法企图比如从企业窃取信息。2004年8月的雅典奥运会期间,为了保护奥运会计算机系统的安全,降低系统遭受外部攻击的可能性,只使用传统的有线局域网,并且还放弃了其他有可能使系统遭受攻击的设备,包括USB端口。
3)传染病毒。USB存诸设备的这种便利性也给病毒洞开了方便之门,USB存诸设备几乎成了病毒毫无疑问的理想载体。微型的便携式存储产品能够绕过电子邮件服务器上的防火墙、反病毒软件等防御系统,给企业网络带来特洛伊木马或病毒等恶意代码。仅仅是一个带有木马或者病毒的U盘,就可能从内部破坏企业的安全防护体系在公司各部门之间流通的USB存储设备,如果一旦感染了病毒,那么很快就可以使多台公司电脑中毒,从而进一步在公司局域网之间传播,从而有可能使公司网络陷入瘫痪。比如现如今著名的"Automn.inf"病毒、u盘杀手病毒、u盘窥探者病毒等等。
3 应对USB安全威胁的措施[2]
对于通过USB端口的数据进行安全性控制属于信息安全的一个领域。对于USB端口的控制,国内外都有一定的研究,具体有以下几种方法:
1)物理上直接去除USB接口。正如雅典奥运会的做法一样,这种做法最为安全,但是因噎废食,使USB接口永远无法再使用。
2)从BIOS中禁止USB端口的使用。大多数新型主板的BIOS中有禁止内置2个(或者4个)USB端口的选项。这种方法有一定的局限性,并不是所有的主板都有这样的功能。而且,在B IOS下禁止端口会将所有的USB口都封掉,将会导致所有USB设备不能用。
3)利用软件进行数据控制。利用软件来控制通过USB端口的数据,从而达到数据安全的目的。这种方法在国内外都比较常用,通常有以下几类软件:防水墙、计算机设备控制系统、专用的USB监控软件。
防水墙:防水墙的概念是由中软总公司首先提出的,它是用来加强信息系统内部安全的重要工具。它处于内部网络中,是一个内网监控系统,可以随时监控内部主机的安全状况。它的一个重要功能就是防止非法拷贝。用户在未经有效授权的情况下,不能用任何载体拷贝任何信息。与此同时,系统将对授权状态下的拷贝进行监控,并自动将拷贝内容备案。这对于通过USB接口的数据起到了良好的保护作用。国内软件主要有中软防水墙系统WaterBox以及攀达科技公司的攀达防水墙。国外也有类似的软件,如SecureWave发布的新版SecureEXE软件,兼有防火墙和防水墙的两种功能。Se2cureEXE其中的一项功能就是限制使用者以便携式储存装置复制特定资料。
计算机设备控制系统:是对计算机的各种外部设备进行控制的专用软件。国外软件有enforce的企业移动安全管理器(EMSM)。它使用中央控制组策略来管理笔记本用户对各种不同渠道的访问,而敏感数据就是从这些渠道流失的。利用EMSM可以实现USB端口的限制。国内的攀达计算机设备控制系统是一款计算机信息安全保密软件,它可以控制计算机的各种设备,防止计算机信息被非法拷贝,适用于各种需要严格保密的计算机或具备特殊用途的计算机。
USB监控软件:是对USB接口进行专门控制的软件。USB monitor就是这样一款软件,它可以拦截所有通过USB设备存取的资料,并进行实时监控,支持资料记录,录制监控项目工作阶段,并于稍后播放。
软件控制方法在一定程度上能够保证内部的信息安全,但也存在着一定的局限性。首先,这些控制软件一般都是对通过USB接口的数据进行拦截,并没有进行高层次的控制。另外,这类应用软件都属于用户进程,具有一定权限的用户就可以通过杀掉进程的方法来关闭程序,从而攻破系统的防御系统。
4 结束语
USB接口已经成为个人计算机的一个标准配置接口[3],可以用来接入鼠标、游戏控制手柄、扫描仪、打印机等多种电脑周边设备。同样,基于USB接口的U盘和USB硬盘也成为现在的主流移动存储设备。USB存贮设备的体积也越来越小,使得信息交换可以更多、更有效、更便利。但是我们在选择其便利性的同时,也应该对其安全性有足够的认识,维护计算机系统、企业网等网络的安全。
参考文献
[1]牛岭,李骞.信息安全防护与USB安全控制技术[J].周口师范学报,2006(3).
[2]王阳.USB安全技术及控制方法研究[J].计算机安全,2006(12).
基于USB接口的数据采集系统 第9篇
基于USB接口的数据采集系统由3部分组成:数据采集卡, 数据采集卡驱动程序和用户应用程序。数据采集卡包括系统硬件电路及固件程序, 它是本采集系统系统的基础。它用来完成信号的A/D转换, 并把转换好的信号传给USB接口。
数据采集卡驱动程序完成数据采集卡和应用程序之间的通信, 它提供了应用程序与采集卡之间的软件接口, 在装入后成为操作系统内核信任的部分, 供用户应用程序使用标准的WIN32API函数对硬件进行FO操作。用户应用程序是整个采集卡的最高层, 直接与用户进行交互。主要功能是与采集卡驱动程序接口来获得数据, 并把得到的数据进行处理、显示等操作, 同时把用户命令通过驱动程序传递给采集卡, 从而控制采集卡的参数设置。
2 系统硬件电路设计
本课题选取了PHILIPS公司的PDIUSBD12, M A X I M公司的M A X 1 1 6 6和A T M E L公司的89C52芯片作为整个采集系统的核心芯片。
2.1 系统硬件总体设计
本系统硬件电路包括:时钟电路、按键复位电路、电源电路、A/D转换电路、USB接口电路、串口电路。如图1所示。
2.2 A/D转换电路设计
模拟电源A V D D和数字电源D V D D应分别通过0.1uF的担电容与模拟地和数字地相连接。而数字地D G N D和模拟地A G N D 1、A G N D 2通常共地。
2.3 USB接口电路设计
采取总线形式传输, 硬件连接:PDIUSBD12 (简称D12) ALE与89C52 (简称52) 的ALE相连, D12数据口与P0口相连D12的CS、INT、WR、RD分别和52的P1.6、INT0、WR、RD脚相连;D12的D+、D一接18欧姆限流电阻, D 1 2的I N T、S U S P E N D、R E S E T、D M A C K、EOT接上拉电阻。
3 USB驱动程序
USB驱动程序入口程序DriverEntry () 的主要功能是告诉系统那些IRP由哪个例程处理也就是对驱动程序初始化, 它的作用相当于C/C++的main () 或Windows编程下的WinMain () 。
初始化派遣例程
在驱动程序初始化之后, PnP管理器调用AddDevice例程来初始化由该驱动程序所控制的设备。AddDevice例程的基本职责是创建一个设备对象并把它连接到以PDO (Physics Device Object) 为底层的设备堆栈中, 具体步骤如下。
(1) 创建设备对象, 并建立一个私有的设备扩展对象。 (2) 寄存一个或多个设备接口, 以便应用程序知道设备的存在。另外还可以给出设备名并创建符号连接名。 (3) 初始化设备扩展对象和设备对象的标志位。 (4) 把新设备对象添加到设备堆栈中。
4 结语
本文以基于USB接口的数据采集平台为研究对象, 选取了通用U S B接口芯片P D I U S B D 1 2, A/D转换芯片M A X 1 1 6 6和89C52单片机作为系统核心芯片, 设计并研制了一套基于USB接口的数据采集硬件板卡, 并开发了相应的VC++开发环境下的用户应用程序, 实现了从底层单片机到以WindowsXP操作系统为基础的PC机的USB双向通信, 最终构建了一个基于USB接口的数据采集平台。
本课题的难点在于对协议的理解和驱动程序的编写, 详细研究了USB通讯协议、操作系统原理及内核, 通过大量的实践与总结完成了PC机与USB之间的通讯。系统设计中对系统软件的测试没有什么非常有效的方法, 对其问题进行有效的定位, 只能通过示波器及BUSHOUND软件来进行一些初步判断。
摘要:数据采集系统广泛应用于信息检测、信号处理、自动控制系统等领域。为了提高数据采集的数据传输速率, 降低开发成本, 节约能源, 本文设计了基于USB总线的数据采集系统。本文概述的基于USB总线的数据采集系统是以AT89C52单片机为核心, 采用PDIUSBD12通用USB接口芯片作为通信接口, 通过A/D转换芯片MAX1166实现模拟量到数字量转换, 进行了系统硬件设计;并进行了相应的固件程序、驱动程序和应用程序开发, 给出了程序流程图和部分程序代码。该系统特点是连接方便, 支持即插即用, 数据传输速度远远高于普通的串口和并口。
关键词:数据采集,USB总线,PDIUSBD12,驱动
参考文献
[1]陈心结.基于USB接口的多通道实时数据采集系统[J].计算机工程与应用, 2003, 15 (3) :46~58.
[2]谭浩强.C语言程序设计[M].北京:清华大学出版社, 1999, 12.
[3]晃建刚, 陈善广, 薛亮.基于USB接口技术的外设应用设计[J].嵌入式系统论文集, 2000, 7 (13) :102~116.
[4]刘丁, 毛德柱, 王云飞.USB在数据采集系统中的应用[J].电子技术应用, 2003, 12 (8) :33~44..
[5]张弘.USB接口设计[M].西安:西安电子科技大学出版社, 2002.
[6]晃建刚, 魏安阳等.通用串行总线 (USB) 设备的驱动[J].电子技术应用, 2002, 22 (13) :77~86.
[7]王朔, 李刚.USB接口器件PDIUSBD12的接口应用设计[J].单片机与嵌入式系统应用, 2002, 17 (6) :79~93.
[8]郭四稳.WDM驱动程序的开发与实现[J].电脑与信息技术, 2006, 11 (7) :63~75.
咳嗽录音装置USB接口设计与实现 第10篇
慢性咳嗽的病因可通过检查肺功能、诱导痰和食道p H值的动态监测等来明确诊断[1],但这些检查技术复杂、费用高,不利于基层医院广泛开展。咳嗽的特征,如发作时间、频率、环境和诱发因素等,对于病因诊断有重要的参考价值。若能长时间连续记录患者咳嗽情况,并采用计算机辅助识别咳嗽,对于临床医师的诊断与治疗将具有重要意义。开发嵌入式的便携式咳嗽录音装置可有效解决该问题。
该类型录音装置接口设备较少,但要求具备简单的判断和识别功能,因此处理器通常采用DSP实现。原始录音数据需要传输到计算机上,以供存档及进行更为细致的诊疗处理。目前USB设备已被广泛应用,鉴于此,本文介绍了一种基于DSP和USB的咳嗽记录仪设计方案。该方案以TI C5000低功耗DSP为核心,结合大存储容量的SDHC卡为存储介质,并通过USB接口实现离线数据高速提取。
1 系统硬件结构和主要功能
考虑便携要求,本设计选用内嵌USB模块的德州仪器(TI)公司的TMS320VC5509A(以下简称5509A),其内嵌符合USB 1.1兼容2.0协议标准的全速从设备模块,由2个控制端点和多达14个支持批量、中断和等时传输的通用端点[2]。因不需再外接USB控制器,减少了硬件接口资源的使用。并且不需产生片外存储器访问的冲突发生,使系统的数据传输更稳定。
咳嗽记录仪的主要组成如图1所示,包括DSP主控芯片、信号采集、LCD显示、按键、FLASH、数据存储(SDHC卡)以及电源等部分。
USB接口采用Mini-USB B型接口,此时系统为主模式(Master Mode)。
咳嗽频率可以高达6~7 k Hz,为了抗混叠和保持信号的完整性使用16 k Hz的采样率对咳嗽声采样,然后对以16位PCM格式表示的WAV数据文件进行保存可以使数据分析的归一化均方误差值在2%以内[3]。按照该要求设置采样率和记录格式,一个60 min的咳嗽WAV文件数据大约为121.6 MB,要实现24 h不间断录音的实际需求,装置的总存储容量要大于2 GB。Ver2.0以下版本的SD卡(2 GB)无法满足要求,必须采用遵循SD Spec Ver2.0规范的4 GB容量的SDHC卡,而内部文件管理系统则要采用FAT32[4]。
后期大量的数据要实现离线提取到PC侧进行咳嗽识别分析,基于USB的通用性和普遍性及其传输数据的稳定性和高速性,采用USB 1.1协议标准的全速USB接口可以有效解决海量数据高速离线提取的需求。
2 USB接口的硬件设计
由于5509A内嵌USB控制模块[5],因此传统的外接USB控制器方案在此并不适用。所以要基于5509A的硬件资源和实际需求分析重新设计开发USB Mass Storage类设备的固件程序和硬件连接方案,同时此方案要兼容SD Ver2.0规范的SDHC卡。
USB模块和DSP的总线连接如图2所示,PU_DSP、DP_DSP和DN_DSP端口接到5509A的USB模块端口上,DSP的DP、DN端口以差分方式传送数据。R36和R37是串接电阻,用以匹配差分数据传送端口的驱动输出阻抗,PU_DSP端口通过1.5 kΩ的上拉电阻接到USB接口总线D+端,用以选择USB总线为高速模式[6]。
3 USB模块设计
USB的驱动程序主要是主机端的设备驱动程序和设备固件程序,而设备固件程序是指运行在本系统DSP中的程序,主要完成USB协议的应答处理和设备与主机的数据传输交换[7],因此这部分是系统中的重点和难点。
3.1 USB固件实现原理
设备固件程序被设计为支持SCSI命令集和BulkOnly协议,这样采集的音频数据通过USB和PC连接可以在PC的文件目录中以数据文件格式可见可操作,音频数据采集完后要按照FAT32文件系统来存储到SD-HC卡上。
USB Mass Storage类系统结构如图3所示,灰色部分为USB设备端的固件结构,主要有Bulk-Only传输协议、UFI命令的解析和响应、FLASH驱动等[8]。
3.2 USB Mass Storage类设备的枚举过程
USB设备为取得与主机的通信,必须实现设备的枚举。枚举过程主要是USB设备和主机进行一系列的请求应答,包括以下几步:
(1)设备接上USB总线,总线复位,集线器发送复位信号且维持10 ms以上。
(2)USB设备进入缺省状态,此时以缺省地址0响应主机请求。
(3)主机读取USB设备的设备描述符并分配一个新的设备地址。
(4)主机再次读取USB设备描述符。
(5)主机读取设备的配置描述符、接口描述符、端点描述符和字符串描述符。
(6)主机识别设备并加载设备驱动程序,完成枚举。
其中设备描述符和配置描述符的设置和一般USB设备一样,对于USB Mass Storage类设备的接口描述符要进行特定的配置,本系统定义的接口描述符如下:
此外,USB Mass Storage类设备规范还定义了2个特殊类请求:Bulk-Only Mass Storage Reset和Get Max LUN[9],所有此类型的存储设备都必须支持这2个请求,关于它们的处理,在许多USB设备文献中有详细介绍。
3.3 Bulk-Only传输服务
在成功枚举之后,识别出设备为USB Mass Storage设备,其后进入Bulk-Only传输模式。在Bulk-Only协议传输方式下,有普通数据、CBW(Command Block Wrapper)数据包和CSW(Command Status Wrapper)数据包在主机与设备之间传输。
USB主机通过Bulk-Out端点向设备发送长度为31 b的命令包CBW[10]。设备接收到CBW包后要对其进行解析和做出相应的回答,对于SCSI命令中CBW命令包的处理步骤如下:
(1)接收CBW命令包,判断是否为有效CBW命令包,若是进入步骤(2),若否则继续等待;
(2)将CBWTag复制到CSWTag,作为CSW应答包的应答标识;
(3)判断CBWCB是否为已知的SCSI命令,若是则进入4,若否就提示“Unknown Request!”;
(4)安照SCSI规范处理请求的命令。
当完成CBW命令包的正确应答后,主机与设备和主机可以按照Bulk-Only协议规范进行数据的交换。
USB设备完整的固件程序的流程图如图4所示,当DSP完成初始化打开中断时若USB中断进入,就开始USB中断服务模块。如果是14个通用端点中断,则按照通用端点定义的数据传输处理方式来进行数据的传输;如果是控制端点0中断,则要求完成一系列的应答处理完成设备枚举。最后中断返回,进入主程序等待中断进入状态。
由于SDHC存储卡的读取最小单位是一个扇区,所以当收到SCSI_Read10命令时,首先要计算出需读取数据的起始扇区号Read_Add和数据的长度Tran_Length,然后从SDHC存储卡中读取指定扇区并向PC传输。值得注意的是,一个扇区是512 B,而Bulk_In端点每次最多传输64 B[11],因此要连续传输8次才能传完一个扇区的数据。此部分的源码如下:
3.4 FAT32文件系统与SDHC存储卡初始化
咳嗽音频数据采集完后,在进行存储前,必须先将系统的SD卡按照FAT32文件系统规则格式化。FAT32文件系统将逻辑空间划分为3部分:文件分配表区,保留区和数据区,其中文件分配表区和保留区合称系统区,如表1所示。一般情况下,SDHC存储卡默认是SD模式的。如图5所示,要在初始化时完成以下几个步骤,才能进入SPI模式并被识别为SDHC存储卡完成初始化和FAT32文件系统的管理。
4 测试结果
在正确完成SCSI命令的应答后,系统栏会出现USB图标,双击图标可以看到如图6所示的设备磁盘驱动器属性页,可以看见文件系统为FAT32,系统实际容量为3.86 GB,其中“gird_cog recorder Ver1.00”为项目USB设备名称,其中“gird”为广州呼吸疾病研究所的英文首字母。
由于采用SPI连接方式,在数据的传输速度上也受到一定的限制,在多次实验测试中SDHC存储卡数据读取速度最大为1.625 Mb/s,对于一般采集系统的离线提取需求已经足够。
5 结语
本文提出一种基于TI公司TMS320VC5509A型DSP,以其内嵌USB控制模块的优势,以SD Ver2.0规范的第2代大容量存储卡作为存储介质设计实现基于DSP和USB的咳嗽记录仪。有效解决了实际应用中对便携式数据采集设备体积小、存储容量大和离线数据传输稳定的需求。此方案已成功应用到广州呼吸疾病研究所的咳嗽记录仪系统中。
参考文献
[1]KORPAS J,SADLONONA J,VRABEC M.Analysis of thecough sound:an overview[J].Pulmonary Pharmacology,1996,9(5/6):261-268.
[2]彭启宗,武乐琴,张舰.TMS320VC55x系列DSP的CPU与外设[M].北京:清华大学出版社,2005.
[3]陈派林.基于TMS320VC5509A的咳嗽监测装置的设计与实现[D].广州:华南理工大学,2010.
[4]黄大勇.基于USB2.0接口的高速数据采集系统设计[J].现代电子技术,2007,30(24):69-72.
[5]周霖.DSP信号处理技术应用[M].北京:国防工业出版社,2004.
[6]韦志恒.基于TMS320VC5509A的USB系统开发[D].哈尔滨:哈尔滨工程大学,2007.
[7]贾宝金.基于USB的数据采集系统的设计与研究[J].现代电子技术,2007,30(24):187-190.
[8]周东.基于DSP的USB海量存储设备的设计与实现[J].微计算机信息,2009,25(2):146-148.
[9]Texas Instruments.Universal serial bus mass storage class bulk only transport[EB/OL].[1999-09-31].http://www.usb.org/de velopers/devclass.
[10]陈启美,丁传锁.计算机USB接口技术[M].南京:南京大学出版社,2003.
PIC单片机USB接口应用设计 第11篇
关键词:PIC;USB;单片机;应用
中图分类号:TP368.12 文献标识码:A 文章编号:1674-7712 (2012) 16-0049-01
肺功能测定是临床较为常见的一种检查,对于患者肺及气道早期检查具有积极作用,同时可以对患者病情严重程度给予评估。能够通过检测呼气流速实现多项生理参数评估的医学仪器,由于一些早期肺功能测定仪不支持USB通信,在数据导入导出中不够方便,本研究通过带有USB模块的单片机改造,实现了USB通信功能。
一、PIC单片机USB模块
带改造肺功能测试仪采用的单片机为PIC18F6720型,为确保兼容性,加快改进速度,本次选用的单片机为PIC18F67J50系列单片机。
(一)USB外设
PIC18F67J50系列单片机的USB模块能够实现USB2.0串口兼容,同时可支持全速接口(12Mb/s)和低速接口(1.5Mb/s),可以全面支持中断、控制及批量传输,能够支持双向16对端点,最多32个端点(双向16对),RAM具有CPU和USB模块双重存取特性。
(二)USB电源模式
在USB电源配置方面,有着不同的要求和配置,比较常见模式为的电源模式包括Self-Power Only(仅自供电)、Dual Powe(双电源)、Bus Power Only(仅总线供电)等三种供电模式。其中仅总线供电模式下是最简单和是最常用的一种供电方式,这种方式电源自USB接口,在供电方式上非常简单。为符合USB2.0对于浪涌电流的规范化要求,Vbus同接地端间等效电容应在l0uF以下。按照USB2.0的规范,USB还应可以支持低功耗挂起模式。在USB提供V的Vbus线供电过程中,其实际电流消耗应在500uA以内,通信停止至少3ms来实现主机和外设之间的挂起模式通信。在elf-Power Only(仅自供电)模式中,USB采取自身提供电源的方式,仅有很小电源来自USB,并通常都需要增加相应的连接指示器,来显示USB和主机连接及Vbus供电情况。
(三)振荡器
USB模块具有相应的时钟要求。在低速运行状态下,需要给予USB模块6MHz的时钟脉冲频率,在全速运行状态下,需要USB模块48MHz的时钟脉冲频率为48MHz。然而,无论USB模块的时钟脉冲频率如何,单片机CPU等外设振荡器均需要在一定的时钟速度运行。
二、PIC单片机固件开发
本研究选择的PIC单片机程序环境为MPLAB IDE,改集成开发环境平台中,可全面支持机器码编译连接、源程序编写、开发调试工具等功能。软件可免费通过微芯公司官方网站进行下载,此外,在开发语言上也完全支持C语言以及第三方语言工具,主要包括:Byte Craft、CCS、B Knudsen Data、HI-TECH等。本研究中原有肺功能检测仪的采取的程序编译器为第三方提供的HI-TECH,有因此支持nc器件较少,开发成本较高,在综合考虑成本因素和实用因素的基础上,本研究最终采用的编译器为微芯公司的MPLAB C18。
而采取微芯公司的MPLAB C18需要对而这需要对肺功能检测仪原程序的变量定义实施修改,所以必须首先对MPLAB C18的变量的存储区进行定义。默认状态下,编译器会假定无跨越存储区边界问题。因此在创建超过256字节的变量中可对链接描述文件进行相应修改。
三、固件编程
肺功能检测仪固件改进的目的重要在于通过USB接口实现计算机数据处理和本机数据提取功能。因此,在主要改进容物就集中在保持原有操作代码基础上的USB的HID类通信上,实现USB总线的通信命令传送和数据采集并及时返回。
(一)USB状态和控制
在编写USB模块固件程序时会用到USB传输状态寄存器(USTAT)、USB配置寄存器(UCFG)、USB控制寄存器(UCON) 3个寄存器进行当前工作状态的设置和查询,并进入到相应的控制流程当中。
控制寄存器主要包括零电平复位、USB模块等状态配置管理;配置寄存器主要包括片上上拉电阻、总线速度、片上收发器与USB模块硬件相关的配置;状态寄存器则主要负责提供串行接口引擎(SIE)中的状态报告,一旦发现中断信号,应首先进行该寄存器的读取工作,并以此完成传输的状态的确认。
(二)USB中断
USB模块的绝大部分活动均有中断进行触发,和其他单片机中断源一样,该模块也有着自身的特定中断逻辑结构。能够通过一组寄存器允许USB中断,同时可以用一组单独的标志寄存器来实现中断事件捕获。在本研究中的单片机中断逻辑中,USB中断源均通过顶层的USB中断请求来反应和标志位USBIF,在通过中断第二层寄存器来进行确认。
四、系统流程与釆集
当肺功能测试仪开启后,应首先对单片机以及液晶屏等进行初始化处理。再通过USB检测引脚来对高电平情况进行判断,如果出现高电平则可以说明已连接上了USB线,可以对PIC单片机的USB模块进行初始化配置工作,在肺功能测试仪液晶屏上出现“连接USB线”提示,在这一期间应禁止键盘中断使能,也就是不允许实施本机操作。随后实施USB枚举过程,进行接口和端点配置。在完成配置工作后,即可以实施相应的计算机操作工作。通过控制输出端点0上位机将命令向下位机进行发送。设备完成对命令的响应工作,开始进行数据采集工作,通过中断输入端点1可实现返回数据。
参考文献:
[1]张巍,郑建彬.基于VC++实现在线签名认证系统与USB的通信[J].计算机与数字工程,2007,10.
[2]扶文树,何军,陆信如.USB HID数据通信接口的设计与实现[J].工业控制计算机,2009,22(2).
[3]叶君耀,刘克宁.加密存储设备驱动程序的优化设计[J].软件导刊,2010,2.
[4]钱宇红.人机接口类型USB设备的程序设计[J].微计算机信息,2010,26(12).
[5]屈景辉.TeeChart应用技术详解[M].北京:中国水利水电出版社,2008:1-16.
USB接口 第12篇
心电图分析是诊断心脏疾病的一种重要手段。简单地说, 心电图是心肌细胞的综合电活动在体表地的一种反映。心肌活动所产生的微小电流可经过身体组织传导到体表, 使体表的不同部位产生不同的电位, 将体表两点间的电位记录下来, 就会按照心脏激动的时间顺序形成一条连续的曲线, 这就是心电图 (Electrocardiogram, ECG) 。
USB (Universal Serial Bus) , 中文含义是“通用串行总线”。它不是一种新的总线标准, 而是应用在PC领域的接口技术。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。不过直到近期, 它才得到广泛地应用。从1994年11月11日发表了USB V0.7版本以后, USB版本经历了多年的发展, 到现在已经发展为2.0版本, 成为目前电脑中的标准扩展接口。USB自从1996年推出后, 已成功替代串口和并口, 并成为当今个人电脑和大量智能设备的必配的接口之一。
虚拟仪器技术是计算机技术、现代测控技术和电子仪器技术相互结合、渗透的产物。在虚拟仪器系统中, 所有的数据采集、分析、控制、结果输出和用户界面等功能都由软件完成, 硬件仅仅是为了解决信号的输入输出, 因此, 软件是整个仪器系统的核心, 从某种意义上可以说:“软件即仪器”。
本文介绍的基于USB接口的虚拟心电采集记录系统实现了一种心电电极到计算机USB接口的数据采集, 可将人体心电信号通过计算机的USB接口方便地传入计算机, 并利用Lab View软件进行虚拟心电记录系统设计用于显示、存储和分析。这种设备成本低, 便于携带, 配备装有虚拟仪器软件的便携式电脑可方便用于医生出诊。
1 系统构成
基于USB接口的虚拟心电采集记录系统如图1所示, 主要由硬件、软件两大部分组成。硬件主要包括多路心电放大器、USB数据采集卡和PC机组成。其主要功能是实现心电信号的采集、处理和A/D转换以及将信号通过USB数据采集卡送入PC机进行处理。软件采用Lab VIEW对采集到的心电信号进行显示、分析和处理。
该系统多路心电放大器主要包括前置放大器、带通滤波器、工频滤波器、主放大器和光电耦合电路组成。前置放大主要满足高输入阻抗、高增益、低噪声、低漂移等技术指标;带通滤波器实现对干扰信号的滤除和让0.05-100Hz的心电信号无失真地通过;工频干扰的滤除由采用双T有源滤波形式的50Hz陷波器完成;主放大器用来对处理过的心电信号进行调理, 以满足USB接口数据采集卡对输入信号的电平要求;光电耦合用来实现人体与电器上的隔离, 保证人体安全。
数据采集 (DAQ) , 是指从传感器和其它待测设备等模拟和数字被测单元中自动采非电量或者电量信号, 送到上位机中进行分析, 处理。数据采集系统是结合基于计算机或者其他专用测试平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。通常, 必须在数据采集设备采集之前调制传感器信号, 包括对其进行增益或衰减和隔离, 放大, 滤波等。本系统基于NI的USB数据采集卡进行设计与开发。
2 系统软件设计
Lab VIEW虚拟仪器设计平台的应用范围广泛, 目前很多的电子仪器都采用该平台进行开发和设计, 基于对该软件平台的了解, 在相关硬件的支持下本文研究采用该平台来进行虚拟心电采集记录系统的开发设计。
2.1 USB通信模块
利用USB数据采集卡自带的Lab View驱动程序, 完成USB通信模块的设计。利用该模块, 实现对多路数据的分时采集。
2.2 前面板
虚拟仪器的前面板是仪器与用户交互的可视化操作界面, 用户通过操作前面板的各种开关和按钮, 可以实现心电信号的实时采集、心率计算与显示、波形存储和回放等各项功能。前面板中设置了两个波形显示控件, 左上面用来实时显示采集到的心电波形, 左下面用来现实回访的波形, 以利于医生观察、诊断所需的心电图。
2.3 数据处理模块
在信号调理和采集过程中, 信号必然受到噪声和干扰的影响, 虽然我们在硬件设计时采取了相应措施来抑制它, 但我们知道干扰可以消除, 但噪声只能抑制。为改善信号质量, 为后续准确分析判断做好准备, 在系统中使用五点平滑数字滤波。
2.4 心率计算模块
本模块的程序代替了传统心电图机硬件电路中的微分, 整形和计数器电路, 采用软件方法完成心电信号的R波检测、周期和心率计算功能。将采集到的实时心电信号接入该程序实现R波的检测, 从而计算出两个R波间期和心率。
2.5 波形检测与诊断模块
ECG自动检测技术的研究主要集中在QRS波检测, P波和T波检测, ST段检测等方面。QRS波检测是ECG检测中的首要问题, QRS波检测不仅是诊断心律失常的最重要根据, 而且只有在QRS波确定后才能分析EGC的其它细节信息。
3 心电信号处理
3.1 预处理
在心电信号中, 需要考虑的噪声来源有:工频干扰、呼吸引起的基线漂移、电极接触噪声、运动伪迹等。而其中又以工频干扰和呼吸引起的基线漂移是主要的噪声干扰, 本文主要考虑利用小波分解消除呼吸引起的基线漂移, 利用带通滤波器消解工频干扰的影响。
图2为系统使用五点平滑数字滤波的效果比较图。
该图证明此方法进行数据预处理简单有效。
3.2 QRS波群检测
QRS波是ECG中最显著的部分, 反映了心室收缩时心脏的电行为, 其能量占了心电信号能量的很大百分比。QRS波的检测是所有波形检测的基础, 而其准确检测一直是心电信号自动分析的焦点和难点。目前QRS波检测方法主要有:差分法、带通滤波法、小波变换、形态学运算、长度和能量变换等。本文采用小波变换进行QRS波群检测。
3.3 处理结果
经过数据预处理, 得到如图3所示结果及实时显示心电曲线。
4 结束语
将虚拟仪器技术与医疗装备中医学信号的采集、分析及结果显示结合起来为医疗装备的开发提供了一个很好的方向。利用高性能的模块化硬件, 结合高效灵活的软件来完成各种测试、测量和自动化的应用。灵活高效的软件能创建完全自定义的用户界面, 模块化的硬件能方便地提供全方位的系统集成, 充分发挥虚拟仪器技术性能高、扩展性强、开发时间少, 集成的软硬件平台这4大优势。
本文介绍了基于USB接口的虚拟心电采集记录系统用于对人体心电信号进行采集、处理、显示及打印, 从而最终在屏幕上显示出心电波形及相关的重要心电特征参数。该系统的设计对虚拟仪器在医学生物信号处理和医疗仪器开发有一定的参考价值。
参考文献
[1]洪建, 吴小玲, 李桂英.心电监护系统的设计[J].医疗卫生装备, 2000, (6) :25-29
[2]李翠微, 郑崇勋, 袁超伟.ECG信号的小波变换检测方法[J].中国生物医学工程学报, 1995, 4 (1) :59-64
[3]杨乐平, 李海涛.LabView高级程序设计[M].清华大学出版社, 2003年
[4]朱志强, 田心.LabVIEW及其在生物医学工程中的应用[J].国外医学:生物医学工程分册, 2001, 24 (2) :59-64
USB接口范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。