ALPS HID 触摸板协议

简介

目前,ALPS HID 驱动程序支持 U1 触摸板设备。

U1 设备基本信息。

供应商 ID

0x044E

产品 ID

0x120B

版本 ID

0x0121

HID 描述符

字节

字段

注释

0

wHIDDescLength

001E

HID 描述符的长度:30 字节

2

bcdVersion

0100

符合版本 1.00

4

wReportDescLength

00B2

报告描述符为 178 字节 (0x00B2)

6

wReportDescRegister

0002

用于读取报告描述符的标识符

8

wInputRegister

0003

用于读取输入报告的标识符

10

wMaxInputLength

0053

输入报告为 80 字节 + 2

12

wOutputRegister

0000

用于读取输出报告的标识符

14

wMaxOutputLength

0000

没有输出报告

16

wCommandRegister

0005

命令寄存器的标识符

18

wDataRegister

0006

数据寄存器的标识符

20

wVendorID

044E

供应商 ID 0x044E

22

wProductID

120B

产品 ID 0x120B

24

wVersionID

0121

版本 01.21

26

保留

0000

保留

报告 ID

ReportID-1

(输入报告)

(HIDUsage-鼠标) 用于 TP 和 SP

ReportID-2

(输入报告)

(HIDUsage-键盘) 用于 TP

ReportID-3

(输入报告)

(供应商用途:最多 10 个手指数据) 用于 TP

ReportID-4

(输入报告)

(供应商用途:ON 位数据) 用于 GP

ReportID-5

(特性报告)

特性报告

ReportID-6

(输入报告)

(供应商用途:指针杆数据) 用于 SP

ReportID-7

(特性报告)

Flash 更新 (引导加载程序)

数据模式

案例 1

ReportID_1

TP/SP

相对/相对

案例 2

ReportID_3 ReportID_6

TP SP

绝对 绝对

命令读取/写入

要读取/写入 RAM,需要向设备发送命令。

命令格式如下。

DataByte(SET_REPORT)

字节 1

命令字节

字节 2

地址 - 字节 0 (LSB)

字节 3

地址 - 字节 1

字节 4

地址 - 字节 2

字节 5

地址 - 字节 3 (MSB)

字节 6

值字节

字节 7

校验和

命令字节为读取=0xD1/写入=0xD2。

地址为读取/写入 RAM 地址。

当您发送写入命令时,值字节为写入数据。

当您读取 RAM 时,它没有任何意义。

DataByte(GET_REPORT)

字节 1

响应字节

字节 2

地址 - 字节 0 (LSB)

字节 3

地址 - 字节 1

字节 4

地址 - 字节 2

字节 5

地址 - 字节 3 (MSB)

字节 6

值字节

字节 7

校验和

读取的值存储在值字节中。

数据包格式 触摸板数据字节 ------------------

b7

b6

b5

b4

b3

b2

b1

b0

1

0

0

SW6

SW5

SW4

SW3

SW2

SW1

2

0

0

0

Fcv

Fn3

Fn2

Fn1

Fn0

3

Xa0_7

Xa0_6

Xa0_5

Xa0_4

Xa0_3

Xa0_2

Xa0_1

Xa0_0

4

Xa0_15

Xa0_14

Xa0_13

Xa0_12

Xa0_11

Xa0_10

Xa0_9

Xa0_8

5

Ya0_7

Ya0_6

Ya0_5

Ya0_4

Ya0_3

Ya0_2

Ya0_1

Ya0_0

6

Ya0_15

Ya0_14

Ya0_13

Ya0_12

Ya0_11

Ya0_10

Ya0_9

Ya0_8

7

LFB0

Zs0_6

Zs0_5

Zs0_4

Zs0_3

Zs0_2

Zs0_1

Zs0_0

8

Xa1_7

Xa1_6

Xa1_5

Xa1_4

Xa1_3

Xa1_2

Xa1_1

Xa1_0

9

Xa1_15

Xa1_14

Xa1_13

Xa1_12

Xa1_11

Xa1_10

Xa1_9

Xa1_8

10

Ya1_7

Ya1_6

Ya1_5

Ya1_4

Ya1_3

Ya1_2

Ya1_1

Ya1_0

11

Ya1_15

Ya1_14

Ya1_13

Ya1_12

Ya1_11

Ya1_10

Ya1_9

Ya1_8

12

LFB1

Zs1_6

Zs1_5

Zs1_4

Zs1_3

Zs1_2

Zs1_1

Zs1_0

13

Xa2_7

Xa2_6

Xa2_5

Xa2_4

Xa2_3

Xa2_2

Xa2_1

Xa2_0

14

Xa2_15

Xa2_14

Xa2_13

Xa2_12

Xa2_11

Xa2_10

Xa2_9

Xa2_8

15

Ya2_7

Ya2_6

Ya2_5

Ya2_4

Ya2_3

Ya2_2

Ya2_1

Ya2_0

16

Ya2_15

Ya2_14

Ya2_13

Ya2_12

Ya2_11

Ya2_10

Ya2_9

Ya2_8

17

LFB2

Zs2_6

Zs2_5

Zs2_4

Zs2_3

Zs2_2

Zs2_1

Zs2_0

18

Xa3_7

Xa3_6

Xa3_5

Xa3_4

Xa3_3

Xa3_2

Xa3_1

Xa3_0

19

Xa3_15

Xa3_14

Xa3_13

Xa3_12

Xa3_11

Xa3_10

Xa3_9

Xa3_8

20

Ya3_7

Ya3_6

Ya3_5

Ya3_4

Ya3_3

Ya3_2

Ya3_1

Ya3_0

21

Ya3_15

Ya3_14

Ya3_13

Ya3_12

Ya3_11

Ya3_10

Ya3_9

Ya3_8

22

LFB3

Zs3_6

Zs3_5

Zs3_4

Zs3_3

Zs3_2

Zs3_1

Zs3_0

23

Xa4_7

Xa4_6

Xa4_5

Xa4_4

Xa4_3

Xa4_2

Xa4_1

Xa4_0

24

Xa4_15

Xa4_14

Xa4_13

Xa4_12

Xa4_11

Xa4_10

Xa4_9

Xa4_8

25

Ya4_7

Ya4_6

Ya4_5

Ya4_4

Ya4_3

Ya4_2

Ya4_1

Ya4_0

26

Ya4_15

Ya4_14

Ya4_13

Ya4_12

Ya4_11

Ya4_10

Ya4_9

Ya4_8

27

LFB4

Zs4_6

Zs4_5

Zs4_4

Zs4_3

Zs4_2

Zs4_1

Zs4_0

SW1-SW6

SW ON/OFF 状态

Xan_15-0(16 位)

第 “n” 个手指的 X 绝对数据

Yan_15-0(16 位)

第 “n” 个手指的 Y 绝对数据

Zsn_6-0(7 位)

第 “n” 个手指的操作区域

指针杆数据字节

b7

b6

b5

b4

b3

b2

b1

b0

字节 1

1

1

1

0

1

SW3

SW2

SW1

字节 2

X7

X6

X5

X4

X3

X2

X1

X0

字节 3

X15

X14

X13

X12

X11

X10

X9

X8

字节 4

Y7

Y6

Y5

Y4

Y3

Y2

Y1

Y0

字节 5

Y15

Y14

Y13

Y12

Y11

Y10

Y9

Y8

字节 6

Z7

Z6

Z5

Z4

Z3

Z2

Z1

Z0

字节 7

T&P

Z14

Z13

Z12

Z11

Z10

Z9

Z8

SW1-SW3

SW ON/OFF 状态

Xn_15-0(16 位)

X 绝对数据

Yn_15-0(16 位)

Y 绝对数据

Zn_14-0(15 位)

Z