设计具有通用串行总线(USB)通信功能的应用可使系统能够通过各种USB主机设备进行通信,并通过USB连接提供方便的电源选择方案。如今的打印机、手机、数码相机、媒体播放机、外部硬盘驱动器和游戏机都采用USB协议传输数据。通过一条数据线同时提供电源和数据通信功能可以给应用带来方便和灵活性。USB通信可以设计成新系统或者增加到传统系统中,通过增加固定功能USB通信桥接器或者带定制USB固件的USB微控制器(MCU)来更新传统系统。
各种USB开发选择方案的主要折衷因素在于数据吞吐能力与开发时间以及是否需要USB专门知识来实现。小型USB MCU和固定功能USB通信桥接器可为在设计中增加USB通信功能提供一种极具成本效益的解决方案。USB通信接口包括四个信号:D+、D-、接地信号和VBUS。D+和D-信号为差分数据线路,VBUS信号是由USB主机设备提供的5V线路。VBUS信号用于指示USB端口中的USB数据线是否存在,但是它还能通过供电集线器向系统提供高达500mA的电源或者通过非供电集线器向系统提供100mA的电源。
带5V至3V片上稳压器的MCU或固定功能USB通信桥接器可通过稳压器输出来给整个应用供电。此规格还支持各种不同尺寸和形状的USB连接器,包括标准、迷你和微型连接器。各种USB连接器尺寸给开发人员提供了诸多在应用中集成USB通信功能的选择方案。
此外,此USB规格还支持单个总线连接多达127个设备,并支持各种设备类别,包括人机接口设备(HID)类,这类设备本身就受大多数操作系统支持,并且不需要安装驱动程序。主机在枚举过程中确定相连的USB设备的类型。将USB设备插入主机后,USB设备将指示设备类型和要加载的驱动程序的描述符发送给主机。
开发人员可以升级传统系统以增加USB连接,也可以从头开始设计包含USB的新系统。USB MCU或固定功能USB桥接器可以同时满足这两种方案。表1列出了在系统中增加USB通信功能的四种选择方案以及对开发人员和终端用户的要求。
选择USB通信选择方案取决于几个因素,包括开发人员是升级现有系统还是创建新系统。这里我们首先阐述如何设计具有USB功能的新系统。
开发人员在创建新系统时可以灵活选择增加USB通信功能的最佳方法。他们可以USB MCU或固定功能USB通信桥接器为中心进行系统的设计,然后为适合USB解决方案而对系统的各个方面进行更改。例如,最初的印制电路板(PCB)设计将包含USB设备和USB连接器等所有必需的元器件,电路板设计人员可以根据需要对它们进行重新配置。此外,USB通信与系统的连接方法不受限制,开发人员可从上表中的四个USB通信选择方案中任意选择。
要在新系统中增加USB通信功能,固定功能USB通信桥接器可提供最简单的解决方案来,但是其灵活性最低。它们可作为HID或非HID固定功能USB通信桥接器提供,如USB转UART虚拟COM端口(VCP)桥接器。使用这些通信桥接器时,由于不需要开发USB固件和驱动程序,因此USB专门知识不是必需的。对于非HID类设备而言,制造商为不受支持的操作系统提供必需的驱动程序。此外,制造商往往还提供动态链接库(DLL),为开发USB主机应用提供帮助。无需开发USB固件、DLL和驱动程序可以缩短应用的面市时间。借助这种技术,USB接口不直接与目标系统连接,而是另一种桥接设备接口比如UART、串行外设接口(SPI)或内置集成电路(I2C),直接与目标应用连接。USB转UART VCP桥接器(图1)通过UART接口与目标系统通信。
开发人员采用这种选择方案为系统增加USB通信功能时必须确保目标系统能够通过UART接口进行通信,同时考虑桥接设备的吞吐能力,该能力往往受UART通信速度限制。此外,开发人员需向终端用户提供驱动程序和驱动程序安装包。终端用户需安装驱动程序才能使用该设备。在这个实例中,桥接设备作为USB主机系统的COM端口。需要固定功能USB通信桥接器(无需安装主机端驱动程序)的开发人员应考虑HID通信桥接器。
由于HID设备类具有灵活性和总吞吐能力,且无需安装驱动程序,因此这类设备正作为嵌入式系统的常规连接选择方案而获得业界认可。由于HID设备类本身受多数操作系统支持,因此无需开发驱动程序。终端用户直接将其插入设备中即可开始使用,而无需安装驱动程序。在上述USB转UART VCP实例中,桥接设备可用HID USB转UART设备替代(图2)。
HID桥接器的大多数设计考虑因素都与上述VCP桥接器实例相同,但是HID与VCP USB转UART桥接器实例在设计上略有不同。通过HID配置,桥接设备的吞吐能力限制为最大HID吞吐能力,即64KBps。此外,此设备不作为USB主机的COM端口,而是作为HID类设备。HID固定功能通信桥接器可为希望在向系统增加USB通信功能时最大程度地缩短总USB开发时间的开发人员提供直接替代方案。如果对于一个应用而言,固定功能USB通信桥接器的吞吐能力或常规功能不够用,开发人员应考虑增加USB MCU。
USB MCU可提供USB通信接口的最大灵活性和控制,但需要大量设计工作。开发人员必须构建所有的USB固件,如果创建了非HID类设备,开发人员必须编写设备驱动程序。这需要一些USB方面的经验,因为编写USB固件和设备驱动程序并非小事一桩。由于所有MCU固件都可定制,因此USB MCU可在需要时执行额外的任务。这提供了通信桥接器无法实现的更高灵活性。例如,如果USB MCU具有模数转换器(ADC),开发人员可增加固件来配置ADC并在需要时进行测量。USB描述符在固件中也是可以完全定制的。USB主机在枚举过程中通过从设备接收的描述符来确定设备是HID设备还是非HID设备。
使用USB MCU时,USB通信可提供与目标系统的直接连接,系统可以基于USB MCU来构建(图3)。除了更长的开发时间之外,开发人员还需考虑所需的吞吐能力。HID类设备的吞吐能力限制是64KBps(即512Kbps)。非HID类设备的吞吐能力限制为12Mbps(即12,000Kbps)。与HID设备相比,非HID类设备可以实现更高的吞吐能力,但是也需要开发定制驱动程序,终端用户则需要安装驱动程序。这就增加了应用的总开发时间。使用配置HID的USB MCU可以避免开发和安装驱动程序,但是前提是HID的吞吐能力能够满足应用的要求。
创建包含USB MCU的系统可以灵活地更改设计的各个方面,从而根据要求组合最佳的USB解决方案。例如,开发人员在设计通过USB通信向主机发送测量数据的医疗设备时可以更改USB MCU数据传递类型,以满足所需的USB MCU解决方案的吞吐能力限制,或者实现多接口设备,比如带同步HID接口的设备。设计新的USB应用时,开发人员可对每个USB选择方案的要求进行分析,然后选择最适合的方案。我们接下来探讨如何通过USB通信升级传统设计。
开发人员通过 USB 通信升级传统系统时可在为新设计提供的四个方案中任选一个,但是必须选择适合现有应用的USB解决方案,而不是设计一个适合USB解决方案的应用。此时,开发人员需考虑当前的通信方法、所需的USB数据吞吐能力和可供附加元器件使用的PCB空间。传统设计拥有成熟的与主机系统的通信方法。如果桥接设备中提供用于与主机通信的接口,那么增加固定功能USB通信桥接器是唯一的选择方案。在多数应用中,这种接口为UART接口。对于这些应用,可在设计中增加USB转UART通信桥接芯片。图4显示了如何使增加的桥接设备适合传统设计。
从硬件层面看,现有的PCB需进行重新设计,以使USB设备和USB连接器适合现有的电路板。从软件层面看,USB转UART设备的制造商一般会为开发人员提供VCP驱动程序,因此无需开发驱动程序。在这个实例中,桥接设备的吞吐能力限制是UART接口的波特率。只要桥接设备能够支持应用所需的波特率,吞吐能力就不存在问题。设备将仍作为USB主机的COM端口,这样传统主机应用不需要进行修改即可正常工作。传统设计与升级的设计之间的主要区别在于通过USB提供与主机的接口以及需要终端用户安装驱动程序。
如果需要无驱动程序的选择方案,HID固定功能USB通信桥接器就是一个可能的解决方案。选择此方案时,其设计考虑因素与VCP固定功能通信桥接器的考虑因素相同,但是此桥接器的吞吐能力限定为64KBps,这是最高HID吞吐能力。在上述传统设计升级的实例中,开发人员可以使用HID USB转UART桥接器,但是设备不作为主机系统的COM端口,而是作为HID。这样,传统主机应用如不进行修改将无法正常工作。尽管此解决方案无需安装驱动程序,但是现有的主机应用需进行修改后才能与HID OS 应用程序编程接口(API)通信,而不是与COM端口API通信。固定功能USB通信桥接器是大多数传统设计升级的理想选择,因为它们可以为在设计中增加USB通信提供最简单的解决方案,且无需USB专门知识。
对于需要更高吞吐能力、额外功能或定制USB固件的传统设计,USB MCU是最佳选择。新设计方案的许多设计考虑因素都适用于此方案。由于开发人员必须编写所有的USB固件,因此该选择方案需要一定的USB专门知识。VCP USB设备还需开发和安装驱动程序。USB MCU必须具有通过GPIO引脚或系统管理总线(SMBus)或SPI等外设接口与现有传统应用进行通信的途径(图5)。
此外,需通过增加额外元器件对现有PCB进行重新设计。若开发人员所需的吞吐能力比桥接设备所能实现的吞吐能力高或者使用桥接设备无法实现的通信方法,使用USB MCU升级传统应用是最佳选择。
选择在设计中增加固定功能通信桥还是增加USB MCU,取决于目标应用、开发人员的USB经验和开发时间。使用USB MCU可提供最高的灵活性,但也需要USB专门知识,并且可能需要开发驱动程序。选择固定功能USB通信桥接器无需任何USB固件,也不需要开发驱动程序,这样就缩短了总开发时间。这是在系统中增加USB只进行极少的重新设计的最简单方法。
在系统中增加USB功能可以实现与各种USB主机设备的通信,同时能以一根数据线增加500mA的电源方案,因此可为应用带来方便和灵活性。小型USB MCU和固定功能USB通信桥接器可为在新设计或传统系统中增加USB通信功能提供极具成本效益的方案。
|
||||||
|
||||||