微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > USB应用技术

USB应用技术

时间:04-18 来源:互联网 点击:

USB应用技术

通用串行总线(Universal Serial Bus,简称USB)从诞生后发展到今天,已将近十年。伴随着计算机技术的迅猛发展,USB协议从1.1过渡到2.0,作为其最重要指标的设备传输速度也从1.5Mb/s的低速和12Mb/s的全速提高到如今的480Mb/s的高速。USB作为过去几年里计算机和嵌入式系统领域中的热点,推动了计算机外设的飞速发展。毫无疑问的是,USB已经占领了PC和外设的市场;而在未来,USB又将以OTG再次引领计算机外设产业的发展方向,同时也将把计算机和嵌入式领域的学术研究带入更为深入的层次。

图1 带有USB接口的PC外设 USB设备开发技术
1994年11月,以Intel为首的7家公司推出了USB协议规范的第一个草案。自从1996年2月USB版本1.0发布后短短几年内,USB不光成为了PC主板上的标准接口,而且成为了所有PC外部设备如键盘、鼠标、显示器、打印机、数码相机、扫描仪和游戏手柄等与PC相连的标准协议之一,迅速占领了计算机中低速外部设备的市场,大有取代串口和并口之势。图1展示了几款带有USB接口的PC外设、数码家电和通信产品。
首先,我们总结出USB设备开发的基本内容:

USB设备作为一个完整的硬件设备,是由硬件和固件两部分来组成的。其中固件中包括了有关系统配置和CPU的一些设置模块、USB协议栈模块等几部分。USB总线上的信息有两种:一种是差模数据线上的包;另一种则是有特殊定义的数据线的信号,比如复位信号、远程唤醒信号等等。因此,设备的USB栈就要能够识别并处理这些不同的信息内容。同时,在上层,这些信息又要被组成各种传输的类型来加以处理。所以,整个协议栈的内容是非常庞大的。
一般来说,USB设备在硬件上要由USB的芯片来实现。这个芯片的作用有:管理和实现USB物理层差模信号;提供给连接的端口;电源管理(主要指提供3.3V的电源);以寄存器的形式提供各种端点;提供各种配置和存储寄存器。因此,固件就是以这些硬件资源为基础来实现USB的功能。一般的USB芯片都会提供几个标准的端点,每个端点都支持单一的总线传输方式。其中端点0必须支持控制传输,而其他的端点则可以支持同步传输、批量传输或中断传输中的任意一种传输方式。管理和使用这些端点,就需要通过相应的控制寄存器、状态寄存器、中断寄存器和数据寄存器来实现。其中,控制寄存器用于设置端点的工作模式、启用端点的功能等;状态寄存器用于查询端点的当前状态;中断寄存器则用于设置端点的中断触发和响应功能;数据寄存器则是设备与主机交换数据用的缓冲区。合理和有效地使用这些寄存器,是编好USB协议栈的关键。
简而言之,USB的协议栈以设备端点的使用和管理作为基础和核心。而在端点的这些寄存器中,对中断寄存器的管理尤其重要。也因此,编写USB的中断服务程序是整个设备端USB固件编写的主要内容。可以分为三个步骤:

USB主机的嵌入式开发技术

USB主机嵌入式化的必要性
随着USB应用领域的逐渐扩大,人们希望USB能应用在各种计算机领域中,尤其是在移动数据交换等没有PC的领域中。
非PC应用领域?这正是USB一个致命的弱点。USB的拓扑结构中居于核心地位的是主机(Host),任何一次USB的数据传输都必须由主机来发起和控制,所有的USB设备都只能和主机建立连接,任何两个外设之间或是两个主机之间无法直接通信。而目前,大量的扮演主机角色的是个人电脑(PC)。因此,我们目前所买到和使用的USB移动设备,都是USB的设备,比如USB的移动硬盘、USB接口的数码相机等等。所有这些设备都只能在PC上使用,只能通过PC来进行相互的文件和数据交换。没有了PC,这些设备就“失灵”了(就数据交换的功能而言)。
因此,“如何将USB应用到嵌入式领域?如何实现USB点对点的通信?”等问题,开始进入了USB开发者的讨论议程。正是在这种新的需求之下,USB 主机的嵌入式应用成了USB领域新的兴奋点。
PC上USB主机的功能与工作原理
USB主机完成的主要功能包括以下5个方面:检测USB设备的连接和断开、管理主机和设备之间的标准控制管道、管理主机和设备之间的数据流、收集设备的状态和统计总线的活动、控制和管理主机控制器与设备之间的电气接口。
剖析PC上USB主机部分的结构,可以看到,PC主板上一般都有两个USB端口,并由一个USB主机接口芯片控制;这个USB主机接口芯片又通过PCI总线,与CPU进行通信;此外,芯片附近还有一些电源管理的部分,用于对USB外设进行电源的供给和管理。这是其硬件部分。软件部分,很显然,就是PC的操作系统所能够提供的各种驱动程序和应用程序支持,具体来说,包括三部分:USB主控制器驱动程序,其负责CPU与USB主机接口芯片的通讯,处理底层USB包的发送与接收;USB核心驱动程序,这部分是USB底层与用户程序之间的桥梁,负责解释用户程序中对USB的各种操作命令,并解码后发送给底层驱动;USB用户程序和类协议驱动程序,这部分就是上层的应用层,主要包括操作系统提供给用户的API、以及用户自己定义的对USB设备的各种操作,比如读取USB设备某几个特定的数据等等。
嵌入式USB主机系统的设计内容
毒俟copy;程,获取USB设备的描述符并加以利用等。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top