Segger的emUSB-Host软件协议栈为嵌入式系统提供外设即插即用支持。无论添加网络连接还是需要音频通信,都可以通过emUSB-Host协议栈实现各种标准USB外设连接。
emUSB-Host支持所有传输模式(控制传输,批量传输,中断传输,同步传输),遵循USB 1.1及USB 2.0规范。协议栈还实现了USB 管道管理及扩展错误恢复机制。
emUSB-Host专为嵌入式系统设计,软件以ANSI C代码实现,可以运行在各种硬件平台。emUSB-Host可以配合embOS或其它支持的RTOS使用。协议栈提供了大量的设备驱动,也可以定制新平台的支持。
模块化设计使应用可以直接访问USB主机编程接口,或使用类驱动提供的API。
协议栈可以同时处理多个设备和hub,支持设备和hub的热插拔。编程接口支持动态枚举和识别设备。
特性
• ISO/ANSI-C 源代码
• 支持USB1.1/2.0
• 支持高速传输
• 支持OHCI、EHCI及私有驱动
• 在枚举时提供扩展的错误恢复功能
• 支持多个hub
• 支持Modem(3G,4G)
• 支持LAN设备
• 无版税
• 遵循MISRA-C:2012
声光控制
emUSB-Host新增加了audio类支持,支持音频输入输出设备。emUSB-Host还支持MIDI类,可以将运行emUSB-Host的设备作为声乐控制器。
访问网络
emUSB-Host提供了基于USB的LAN支持,通过CDC-ECM或RNDIS类, 使其兼容几乎所有通过USB接口提供IP连接的设备。
存储数据
MSC(大容量存储设备)类支持U盘和外部存储器,如CD-ROM等。针对市场上不严格遵循USB标准的U盘,可以配置emUSB-Host识别这些设备。
媒体数据传输
MTP(媒体传输协议)类通过基于对象的通信方式,支持设备间的所有类型的文件传输。智能手机、数码相机或其它多媒体设备通常支持MTP,传输多媒体数据。
串行接口支持
emUSB-Host提供了串行通信选项,通过CDC-ACM类,USB-UART转换器(例如FTDI的FT232系列,Silicon Labs的CP210x系列)实现串行通信。USB-UART转换器可以实现已有设备的串行连接,许多新的设备,已提供了串行USB转换器功能的USB接口。
人机接口
HID(人机接口设备)类用于控制计算机操作的用户设备处理。HID类支持输入设备,如条码扫描仪、键盘、鼠标、跟踪球或触屏控制器等。
打印机
连接到emUSB-Host的打印机或绘图仪将被自动识别。Printer类将输出数据发送到连接的打印机,实际输出需使用printer指定的编码格式生成。
USB OTG
USB On-The-Go(OTG)支持双向设备,设备既可以用作USB主机,也可以用作外设。emUSB的OTG模块在新的连接建立后,根据需求自动决定设备是作为主机还是设备操作。
OTG通常用于只有一个USB端口的设备,实现主机和设备功能。数码相机使用OTG端口将数据发送到主机进行编辑或连接到打印机。一些智能手机和平板电脑只有一个USB端口,用作主机和设备功能。USB OTG保留了标准的USB主从模型,一个主机与USB外围设备交互。emUSB OTG 提供了一个简单接口,检测USB OTG控制器的角色。