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主机系统的设计内容
毒俟©程,获取usb设备的描述符并加以利用等。
移动usb——usb otg的发展
usb on-the-go,顾名思义,是usb应用在便携式移动设备领域中,因此,我们姑且将其翻译为“便携式usb”(或者“移动usb”),简记成usb otg。otg 1.0作为usb 2.0的补充协议,基本上符合usb 2.0规范。但是,有所不同的是符合usb otg的设备完全抛开了pc,既可以作为主机,也可以作为外设,而与另一个otg设备直接实现点对点(pear to pear)通讯。因此,这类otg设备也被称为是双角色设备(dual-role device,简称为drd),并能够根据接入设备的特性和数据传输过程中的情况,自动切换为主机或是设备。需要注意的是,usb otg设备保留了作为普通usb 2.0设备的功能,可以作为外设直接连接到pc的usb主机上。
结语
综观usb技术的整个发展过程,从诞生→成为绝大多数pc外设的标准接口→提高速度后应用遍及几乎所有pc外设领域→出现嵌入式usb主机技术和产品→发布usb otg标准,我们可以看到,usb在不断地自我完善。随着usb新技术的不断出现,usb的应用领域也越发的广泛。
iPad Pro 5确定一季度发布:miniLED屏幕、A14X处理器
军用连接器设计解决了尺寸、重量和环境问题
思科无边界网络架构塑造新一代校园网络
简约便携加湿器专用芯片—DLTAP701SC概述
华为Mate10什么时候上市?华为Mate10、iPhone8、三星Note8三足鼎立,谁才是最强旗舰?
USB应用技术
LM317参数及基本应用电路
SSD在安防行业的应用机遇与挑战
机器人杀人事件的终结者 打造安全的机器人解决方案
广东中山(小榄)fm频道列表
科创板天宜上佳创始人及高管信息大全
芯来科技亮相第十六届“中国芯”集成电路产业促进大会
使用保护环的反相放大器电路
关于智能温室大棚控制系统在温室大棚中的应用
赛灵思推出即插即用高清电视参考设计
新iPhone提前发布?2017上半年最期待的5款手机
RFID技术将迈向万物互联时代
硬刚特斯拉的国家电网,是如何布局IoT的?
巧用景深合成&图像拼接技术,轻松get高质量图像
邵贝贝:嵌入式操作系统μC/OS-III