全面认识USB的技术精髓
时间:12-12
来源:互联网
点击:
led)状态;
2.主机通过对HUB的查询以确认外设的连接;
3.现在,主机已经知道有一台新的USB外设连接到了USB系统中,然后,它激活(Enabled)这个HUB的端口,并向HUB发送一个复位(Reset)该端口的命令;
4.HUB将复位信号保持10ms,为连接到该端口的外设提供100mA的总线电流,这时该外设处于Powered状态,它的所有寄存器被清空并指向默认的地址;
5.在外设分配到唯一的USB地址以前,他的默认信道均使用主机的默认地址。然后主机通过读取外设协议层的特征字来了解该外设的默认信道所使用的实际的最大数据有效载荷宽度(即外设在特征字中所定义的在DATA0数据包中数据字段的长度)。
6.主机分配一个唯一的USB地址给该外设,并使它处于Addressed状态;
7.主机开始使用Endpoint 0信道读取外设ROM中所存储的器件配置特征字,这可能会花去几帧的时间;
8.基于器件配置特征字,主机为该外设指定一个配置值,这时,外设即处于配置(Configured)状态了,它所有的端点(Endpoint)这时也处于配置值所描述的状态。从外设的角度来看,这时该外设已处于准备使用的状态。
在一台外设能被使用之前,它必须被配置。"配置"即主机根据外设的配置特征字来定义器件的配置寄存器,以便规定外设的所有Endpoint的工作环境。如某信道所采用的数据传输方式,该外设所属的器件"基类(Class)"、"派生类(SubClass)"和C++等,从而通过基于主机的USB系统软件或客户软件对外设进行控制。
当一台USB外设配置好以后,即会进入到挂起(Suspend)状态,直到它开始被使用。
必须指出的是,一台USB外设一旦配置好,它的每一个特定的信道只能使用一种数据传输方式。Endpoint 0信道只能采用控制传送的方式,主机通过Endpoint 0来传送标准的USB命令,完成诸如读取器件配置特征字、控制外设对数据的采集、处理和传送等任务,并可以通过Endpoint 0来检测和改变外设所处的状态(如对外设的远端唤醒、挂起和恢复等)。
对于一台采用同步传输的数字摄像机来说,数据传输的过程如下:
1.应用软件(CSW)在内存中开辟数据缓冲区,并通过标准USB命令字向外设发出数据请求(IRPs);
2.主机USB系统软件通过对该IRPs的翻译形成Token数据包发送到外设,这时主机进入等待状态;
3.外设对数据包进行NRZI解码和Bit Unstuffing操作及CRC校验,确认后接收主机PID字段中所包含的命令并开始采集数据。
4.采集到的并行数据首先进入FIFOs,并通过并/串转换部件形成串行脉冲;
5.根据器件配置寄存器的要求对数据进行符合条件的分割,配置数据包的PID字段等以形成原始数据包。
6.通过CRC校验产生器对每一个数据包生成CRC校验码字段,SOP & EOP信号产生器为该数据包加入同步字段头和数据包结束符;
7.数据包的NRZI编码和Bit Stuffing操作;
8.使用收发器(Transreceiver)将数据流驱动到USB线缆上。
9.主机控制器将USB数据转化成为普通的"纯"图像数据送到数据缓冲区以进行数据的进一步处理;如果是控制传输、块传输或中断传输方式,在数据被成功传送后,主机还会向外设发送ACK的握手数据包作为回应。
图13简单描绘了非同步数据传输的请求和传送过程(在同步传输中没有Handshake部分)。
图13 非同步数据传输的请求和传送过程
四、结束语
至此,我们已从几个方面较详细地介绍了USB系统的软硬件构成及USB的数据传输协议。USB可以说是开辟了计算机外设接口的新纪元。它把人们从繁杂的连线、不同的接口标准和恼人的中断冲突中解放出来;
使"PnP"和"热插拔"这样的特性不再只是口号;它大大扩展了计算机可连接的外设数目;它的智能电源管理有效地降低了手持电脑的电源损耗……USB正在成为市场的热点,越来越多的外设生产厂家将自己的产品转向USB接口。而USB 2.0协议的推出,无疑对USB技术的发展起到了推波助澜的作用。
在如鼠标、键盘、手写板或是游戏杆等人机交互的应用场合;如扫描仪、数码相机、移动存贮设备、数字摄像机等数据输入应用场合,USB无疑是替代传统串/并口的最佳接口方式,它们使得USB的优点得到了充分发挥。但对诸如视频或音频输出这样的场合,USB也真的适用吗?我们知道,像Sound Blaster Live!这样的声卡正是因为它在硬件上实现了波表合成和EAX环境音效等高级特性,才使我们在几乎小于1%的资源占用率下就能听到"天籁之音",同时又能在美仑美奂的3D环境中飚车。然而USB也并非万能,例如我们看到在市场上热卖的"USB音箱"号称可以"省掉一块声卡!"。但由于USB接口并不对数据进行任何处理,因而数据处理的任务完全交给了CPU和软件,从而这种音箱造成了惊人的资源占用率,且从声音的表现上看也与声卡有着天壤之别。所以说,USB并不是"包治百病"的。
2.主机通过对HUB的查询以确认外设的连接;
3.现在,主机已经知道有一台新的USB外设连接到了USB系统中,然后,它激活(Enabled)这个HUB的端口,并向HUB发送一个复位(Reset)该端口的命令;
4.HUB将复位信号保持10ms,为连接到该端口的外设提供100mA的总线电流,这时该外设处于Powered状态,它的所有寄存器被清空并指向默认的地址;
5.在外设分配到唯一的USB地址以前,他的默认信道均使用主机的默认地址。然后主机通过读取外设协议层的特征字来了解该外设的默认信道所使用的实际的最大数据有效载荷宽度(即外设在特征字中所定义的在DATA0数据包中数据字段的长度)。
6.主机分配一个唯一的USB地址给该外设,并使它处于Addressed状态;
7.主机开始使用Endpoint 0信道读取外设ROM中所存储的器件配置特征字,这可能会花去几帧的时间;
8.基于器件配置特征字,主机为该外设指定一个配置值,这时,外设即处于配置(Configured)状态了,它所有的端点(Endpoint)这时也处于配置值所描述的状态。从外设的角度来看,这时该外设已处于准备使用的状态。
在一台外设能被使用之前,它必须被配置。"配置"即主机根据外设的配置特征字来定义器件的配置寄存器,以便规定外设的所有Endpoint的工作环境。如某信道所采用的数据传输方式,该外设所属的器件"基类(Class)"、"派生类(SubClass)"和C++等,从而通过基于主机的USB系统软件或客户软件对外设进行控制。
当一台USB外设配置好以后,即会进入到挂起(Suspend)状态,直到它开始被使用。
必须指出的是,一台USB外设一旦配置好,它的每一个特定的信道只能使用一种数据传输方式。Endpoint 0信道只能采用控制传送的方式,主机通过Endpoint 0来传送标准的USB命令,完成诸如读取器件配置特征字、控制外设对数据的采集、处理和传送等任务,并可以通过Endpoint 0来检测和改变外设所处的状态(如对外设的远端唤醒、挂起和恢复等)。
对于一台采用同步传输的数字摄像机来说,数据传输的过程如下:
1.应用软件(CSW)在内存中开辟数据缓冲区,并通过标准USB命令字向外设发出数据请求(IRPs);
2.主机USB系统软件通过对该IRPs的翻译形成Token数据包发送到外设,这时主机进入等待状态;
3.外设对数据包进行NRZI解码和Bit Unstuffing操作及CRC校验,确认后接收主机PID字段中所包含的命令并开始采集数据。
4.采集到的并行数据首先进入FIFOs,并通过并/串转换部件形成串行脉冲;
5.根据器件配置寄存器的要求对数据进行符合条件的分割,配置数据包的PID字段等以形成原始数据包。
6.通过CRC校验产生器对每一个数据包生成CRC校验码字段,SOP & EOP信号产生器为该数据包加入同步字段头和数据包结束符;
7.数据包的NRZI编码和Bit Stuffing操作;
8.使用收发器(Transreceiver)将数据流驱动到USB线缆上。
9.主机控制器将USB数据转化成为普通的"纯"图像数据送到数据缓冲区以进行数据的进一步处理;如果是控制传输、块传输或中断传输方式,在数据被成功传送后,主机还会向外设发送ACK的握手数据包作为回应。
图13简单描绘了非同步数据传输的请求和传送过程(在同步传输中没有Handshake部分)。
图13 非同步数据传输的请求和传送过程
四、结束语
至此,我们已从几个方面较详细地介绍了USB系统的软硬件构成及USB的数据传输协议。USB可以说是开辟了计算机外设接口的新纪元。它把人们从繁杂的连线、不同的接口标准和恼人的中断冲突中解放出来;
使"PnP"和"热插拔"这样的特性不再只是口号;它大大扩展了计算机可连接的外设数目;它的智能电源管理有效地降低了手持电脑的电源损耗……USB正在成为市场的热点,越来越多的外设生产厂家将自己的产品转向USB接口。而USB 2.0协议的推出,无疑对USB技术的发展起到了推波助澜的作用。
在如鼠标、键盘、手写板或是游戏杆等人机交互的应用场合;如扫描仪、数码相机、移动存贮设备、数字摄像机等数据输入应用场合,USB无疑是替代传统串/并口的最佳接口方式,它们使得USB的优点得到了充分发挥。但对诸如视频或音频输出这样的场合,USB也真的适用吗?我们知道,像Sound Blaster Live!这样的声卡正是因为它在硬件上实现了波表合成和EAX环境音效等高级特性,才使我们在几乎小于1%的资源占用率下就能听到"天籁之音",同时又能在美仑美奂的3D环境中飚车。然而USB也并非万能,例如我们看到在市场上热卖的"USB音箱"号称可以"省掉一块声卡!"。但由于USB接口并不对数据进行任何处理,因而数据处理的任务完全交给了CPU和软件,从而这种音箱造成了惊人的资源占用率,且从声音的表现上看也与声卡有着天壤之别。所以说,USB并不是"包治百病"的。
USB技术精 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)