Neonode触摸传感器模块通信协议

1通信协议

Neonode触摸传感器模块可以通过USB HID传输或I2C传输与主机系统通信。

2 可用的函数库

Neonode开发了以下函数库,以便于传感器模块的集成:
zForce软件开发工具包(SDK)是一个完整的函数库,用于通过USB HID接口进行通信。SDK允许用户通过USB与传感器模块通信,而无需解密序列化的ASN.1消息。

3 准备传感器进行通信

准备传感器模块以使用I2C或USB原始HID模式进行通信需要以下步骤。

3.1 USB原始HID模式

触摸传感器模块有一个称为操作模式的设置用于确定将向主机发送哪些数据
当通过USB通信时,有两种不同的操作模式来传递触摸数据,称为检测模式和检测模式HID。
默认情况下,传感器模块设置为操作模式检测模式HID。该模式根据用于触摸屏设备的HID标准将触摸数据传送到操作系统。为了让主机接收根据Neonode的ASN.1串行化协议串行化的触摸数据,必须将操作模式设置为检测模式。换句话说,将操作模式设置为检测模式允许主机通过USB原始HID模式接收触摸数据。
执行以下步骤,通过USB原始HID模式准备传感器模块。
1.接通触摸传感器模块的电源。
2.等待操作系统枚举设备,然后枚举应用程序中的传感器模块。根据使用的操作系统,应用程序可能需要操作系统的许可才能访问设备。
3.通过发送报告id为1的功能报告,将传感器模块设置为正确的操作模式(检测模式)。
4.等待传感器模块发出有数据要读取的信号。这是一个输入报告2,或者您可以轮询id为2的功能报告以获取新数据。
5.从id为2的功能报告中读取响应数据。读取的数据反映了传感器模块中的当前设置。
触摸传感器模块现在可以进行通信了。步骤完成后,传感器模块默认启用,并将开始发送ASN.1串行触摸通知。要禁用触摸通知,必须发送禁用请求。

3.2 I2C

使用以下步骤准备I2C上的触摸传感器模块。
1.接通触摸传感器模块的电源。
2.等待传感器模块断言数据就绪引脚(DR)。
3.启动2字节I2C读取操作。该读取的有效载荷应该是EE XX,其中XX是在第二I2C读取操作中要读取的字节量。
4.读取XX字节量(要读取的字节数由第一I2C读取操作的第二字节指示)。现在阅读一条名为BootComplete的消息。消息应该是

F0 11 40 02 00 00 63 0B 80 01 YY 81 02 03 YY 82 02 00 YY

其中YY通常是“00”,但可以有另一个值。这表示传感器模块现已启动。

根据提供的数据,BootComplete对应的字节如下:
F0 11 40 02 00 00 63 0B 80 01 YY 81 02 03 YY 82 02 00 YY
其中:
F0:表示I2C传输的起始字节;
11:表示传感器模块的I2C地址;
40:表示读取数据的命令码;
02:表示需要读取的数据长度的字节数;
00 00:表示需要读取的数据长度;
63 0B:表示BootComplete消息的起始字节;
80 01 YY:表示一个字段,其中 80 表示该字段的标识符,01 表示该字段的长度,YY 表示该字段的值。
81 02 03 YY:表示另一个字段,其中 81 表示该字段的标识符,02 表示该字段的长度,03 YY 表示该字段的值。
82 02 00 YY:表示另一个字段,其中 82 表示该字段的标识符,02 表示该字段的长度,00 YY 表示该字段的值。
因此,BootComplete对应的字节是63 0B 80 01 YY 81 02 03 YY 82 02 00 YY。
请注意,YY表示一个占位符,具体的值可能因传感器模块的状态而异。

5.要使触摸传感器模块开始发送触摸通知,请执行以下操作:
a.发送启用命令:

EE 09 40 02 02 00 65 03 81 01 00

b.阅读回复。回应应该是:

EF 09 40 02 02 00 65 03 81 01 00

触摸传感器模块现在可以进行通信了。当DR被断言时,传感器模块将发送触摸通知或新的BootComplete。BootComplete表示传感器模块由于某种原因已经重新启动;然后必须再次设置“启用”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值