USB Accessory Mode
+ -

AOA协议命令大全

2025-12-09 本文链接为:http://www.usbzh.com/article/detail-1605.html ,欢迎转载,转载请附上本文链接。
定义 功能
ACCESSORY_GET_PROTOCOL 51 获取协议版本(v1.0支持基本功能,v2.0 增加 HID和音频支持)
ACCESSORY_SEND_STRING 52 主机向设备发送字符串信息(制造商、型号等)
ACCESSORY_START 53 主机完成配置后,启动配件模式
ACCESSORY_REGISTER_HID 54 注册 HID 设备,获取唯一ID
ACCESSORY_UNREGISTER_HID 55 注销已注册的 HID 设备
ACCESSORY_SET_HID_REPORT_DESC 56 发送 HID 报告描述符(支持分片传输)
ACCESSORY_SEND_HID_EVENT 57 发送 HID 事件报告
ACCESSORY_SET_AUDIO_MODE 58 设置音频模式(0=禁用,1=16位立体声PCM)
/* Use Google Vendor ID when in accessory mode */
#define USB_ACCESSORY_VENDOR_ID 0x18D1


/* Product ID to use when in accessory mode */
#define USB_ACCESSORY_PRODUCT_ID 0x2D00

/* Product ID to use when in accessory mode and adb is enabled */
#define USB_ACCESSORY_ADB_PRODUCT_ID 0x2D01

/* Indexes for strings sent by the host via ACCESSORY_SEND_STRING */
#define ACCESSORY_STRING_MANUFACTURER   0
#define ACCESSORY_STRING_MODEL          1
#define ACCESSORY_STRING_DESCRIPTION    2
#define ACCESSORY_STRING_VERSION        3
#define ACCESSORY_STRING_URI            4
#define ACCESSORY_STRING_SERIAL         5

/* Control request for retrieving device's protocol version
 *
 *    requestType:    USB_DIR_IN | USB_TYPE_VENDOR
 *    request:        ACCESSORY_GET_PROTOCOL
 *    value:          0
 *    index:          0
 *    data            version number (16 bits little endian)
 *                     1 for original accessory support
 *                     2 adds HID and device to host audio support
 */
#define ACCESSORY_GET_PROTOCOL  51

/* Control request for host to send a string to the device
 *
 *    requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *    request:        ACCESSORY_SEND_STRING
 *    value:          0
 *    index:          string ID
 *    data            zero terminated UTF8 string
 *
 *  The device can later retrieve these strings via the
 *  ACCESSORY_GET_STRING_* ioctls
 */
#define ACCESSORY_SEND_STRING   52

/* Control request for starting device in accessory mode.
 * The host sends this after setting all its strings to the device.
 *
 *    requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *    request:        ACCESSORY_START
 *    value:          0
 *    index:          0
 *    data            none
 */
#define ACCESSORY_START         53

/* Control request for registering a HID device.
 * Upon registering, a unique ID is sent by the accessory in the
 * value parameter. This ID will be used for future commands for
 * the device
 *
 *    requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *    request:        ACCESSORY_REGISTER_HID_DEVICE
 *    value:          Accessory assigned ID for the HID device
 *    index:          total length of the HID report descriptor
 *    data            none
 */
#define ACCESSORY_REGISTER_HID         54

/* Control request for unregistering a HID device.
 *
 *    requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *    request:        ACCESSORY_REGISTER_HID
 *    value:          Accessory assigned ID for the HID device
 *    index:          0
 *    data            none
 */
#define ACCESSORY_UNREGISTER_HID         55

/* Control request for sending the HID report descriptor.
 * If the HID descriptor is longer than the endpoint zero max packet size,
 * the descriptor will be sent in multiple ACCESSORY_SET_HID_REPORT_DESC
 * commands. The data for the descriptor must be sent sequentially
 * if multiple packets are needed.
 *
 *    requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *    request:        ACCESSORY_SET_HID_REPORT_DESC
 *    value:          Accessory assigned ID for the HID device
 *    index:          offset of data in descriptor
 *                      (needed when HID descriptor is too big for one packet)
 *    data            the HID report descriptor
 */
#define ACCESSORY_SET_HID_REPORT_DESC         56

/* Control request for sending HID events.
 *
 *    requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *    request:        ACCESSORY_SEND_HID_EVENT
 *    value:          Accessory assigned ID for the HID device
 *    index:          0
 *    data            the HID report for the event
 */
#define ACCESSORY_SEND_HID_EVENT         57

/* Control request for setting the audio mode.
 *
 *    requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *    request:        ACCESSORY_SET_AUDIO_MODE
 *    value:          0 - no audio
 *                     1 - device to host, 44100 16-bit stereo PCM
 *    index:          0
 *    data            none
 */
#define ACCESSORY_SET_AUDIO_MODE         58
本文链接为:http://www.usbzh.com/article/detail-1605.html ,欢迎转载,转载请附上本文链接。

0 篇笔记 写笔记

AOA协议格式
Android Open Accessory (AOA) 协议格式详解一、协议版本对照协议版本Android 版本支持核心特性AOA 1.0Android 2.3.4+基础配件模式、音频流支持AOA 2.0Android 4.1+新增 HID 设备支持、ADB 调试......
AOA协议命令大全
定义值功能ACCESSORY_GET_PROTOCOL51获取协议版本(v1.0支持基本功能,v2.0 增加 HID和音频支持)ACCESSORY_SEND_STRING52主机向设备发送字符串信息(制造商、型号等)ACCESSORY_START53主机完......
Android 开放配件 (AOA) 介绍
AOA简介Android 开放配件 (AOA) 支持功能可让外部 USB 硬件(Android USB 配件)与处于配件模式下的 Android 设备进行交互。当某台 Android 设备处于配件模式时,所连接的配件会充当 USB 主机(为总线供电并列举设备),而 Android 设备则充当 USB......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!