无线充qi协议c语言详解,QI无线充通信协议数据包格式解析

无线充qi协议c语言详解,QI无线充通信协议数据包格式解析QI通信数据格式编码:协议规定时钟信号的频率应该是Fclk=2(4%)KHZ,所以每一位的传输时间约500us,如图所示数据0:500us的高电平,或者500us的低电平数据1:250us高电平+250us低电平,或者250us低电平+250us高电平电源接收端(移动设备端)采用11位异步串行格式传输数据字节数据编码格式为:起始位0、8位数据位、一个奇偶校验位(如果数据字节包含…

大家好,又见面了,我是你们的朋友全栈君。

QI通信数据格式编码:

4eb95779ac8fc257c7bfe1cad0b4a207.png协议规定时钟信号的频率应该是Fclk = 2(4%)KHZ,所以每一位的传输时间约500us,如图所示

数据 0:500us的高电平,或者500us的低电平

数据 1:250us高电平+250us低电平,或者250us低电平+250us高电平

电源接收端(移动设备端)采用 11 位异步串行格式传输数据字节

数据编码格式为:起始位0、 8 位数据位、一个奇偶校验位(如果数据字节包含偶数个 1 位,则奇偶校验位为 1。否则为零)和一个停止位1组成。——以值0x35为例:

322804e3988071ddf9be0c2bc7d88630.png

数据包结构:数据包格式由四部分组成:序言(序言最小为11位,最大为25位,序言全部为1),报头,消息和校验和。

说明:序言使功率发射器同步输入数据并准确检测报头的起始位。报头、消息和校验和由三个或更多字节组成的序列组成。

39bc7dfe4c90ad68b1100958db2e8946.png

上图为数据包格式

功率发射端在下列情况可视为正确接收到了数据包

1、功率发射器检测到至少 4 个前导位,后面跟着一个起始位。

2、功率发射器没有在组成数据包的任何字节中检测到奇偶校验错误(这包括头字节、消息字节和校验和字节)。

3、功率发射器检测到校验和字节的停止位。

4、功率发射器确定校验和字节是一致的。

说明:如果功率发射机没有正确接收到数据包,功率发射机应丢弃包,不使用其中包含的任何信息,(在 ping 阶段以及标识和配置阶段,这通常会导致超时,它使功率发射机消除功率信号)。

报头的组成:报头应该由一个表示包类型的字节组成。此外,报头是隐式的提供包中包含的消息的大小。

5524c45bae4d80a80e54a9585fe2276f.png消息的大小

9ca9726832278b6e25a97425199d66fa.png

数据包类型:

消息的组成:消息的第一个字节 B0,直接跟在报头后面。

校验和的组成:校验和由一个字节组成,可使功率发送端能够检查传输数据

错误。

功率变送器的校验和计算如下:

18d1d00bea54e40c89149644fd6437fb.png

说明:其中 C 表示计算的校验和,H 表示报头,B0, B1,…,Blast 表示消息。如果计算的校验和。

信号强度包(0x01)的组成:

42dff48081a01f8ba5b29b3b01229d42.png

该字段中的无符号整数值应该用于表示发射端和接收端的耦合程度,功率接收端应该在Ping期间监视适当变量的值,如整流电压,开路电压(在输出断开开关处测量),接收到的电源(如果在数字 Ping 过程中,整流电压被主动或被动箝位),该值应该随着耦合程度的增加而增加。信号强度值表示为:信号强度值=U/U(max)·256 在Ping 期间 U 是被监控的变量并且 max 是电源

接收器期望的最大值。

注:当 U≥最大值时,应将信号强度值设置为 255。

功率传输包(0x02)的组成:

e89fc2c79b8e1daab429ab95311d48e7.png

接收端功率传递值:

0x00———–请求发送端终止功率传递

0x01———–指示接收端电池充满电

0x02———–内部错误,软件或逻辑错误

0x03———–接收端设备内部温度过高

0x04———–接收端设备接收电压过高

0x05———–接收端设备电流过高

0x06———–接收端内部电池故障

0x07———–接收端请求重新配置

0x08———–数据错误

0x0A———–协商功率级别

0x0B———–异物检测

控制错误包(0x03)

72388589114fa0eb754f61a68b5dc887.png

只接收8位功率包 (0x04)

23d2cda46f9a9fd85665238ae2a8cb45.png

移动接收端接收到功率配置包。功率计算如下:接收功率=(接收功率值/128)X(最大功率值/2)x10(电源类型次方)W

这里,最大功率值和电源类型是配置包中包含的值

注:如果接收端没有收到配置包则将发送其自己的配置包。

充电状态包(0x05)

a2a2360c75e7511ef3e3055a6e597795.png

该字段中包含的整数表示该储能设备的充电水平,其百分比为充满电的能级。为清晰起见,值 0 表示一个空的能量存储设备,值 100 指充满电的储能装置。如果移动设备不包含可充电能源存储设备或如果电源接收器不能提供充电状态信息,此字段应包含 0 xff 价值。所有其他值均已保留,不应出现在充电状态包中。

电源控制保持包(0x06)

2c189a6242d7325a9affc24769bb294b.png

电源控制暂停时间。此字段中包含的无符号整数包含时间量在收到控制错误包后的几毫秒内,功率发送器应在此之前等待调整初级电池电流。

注:充电状态包是可选的,这意味着电源接收器可以选择不发送电荷状态数据包。

配置包 (0x51)

fe2abf5a835cf17f2321f20feba3b20f.png

Power Class该字段应设置为“00”。

Maximum Power Value该字段中包含的无符号整数值指示电源接收器期望在输出端提供的最大功率,此最大功率计算如下:

3a7f9cda8dea77c1f2e061e72793f535.png

Prop:如果该位设置为零,则电源发射机应避免发送响应。如果这个位是设置为 1 时,电源发射器应在配置结束后发送 ACK 响应

数据包向电源接收器表明它正在进入协商阶段。

Reserved:保留的这些位应该设置为零。

Count :这个字段包含一个无符号整数值,表示可选配置的数量电源接收器在识别和配置阶段传输的数据包。

8 位接收功率包(0x04)和 24 位接收功率包(0x31)

该字段中包含的整数值为接收到的功率值,即功率接收器

在接收到的功率包中报告的功率值

标识包(0x71)

bbd102a96ac820a0b619f59da8718e7d.png

此字段由主要版本和次要版本组成,用于确定要修改的版本电源接收器符合本规格

Manufacture Code:该字段中包含的位串标识电源的制造商接收器

Ext:

如果这个位设置为0,则位串制造商代码||基本设备标识符识别电源接收器。

如果这个位设置为 1,那么这个位串就是 1 制造商代码||基本设备标识符||扩

展设备标识符(扩展标识包(0x81))

无线电源ID包 (0x54和0x55)

7b5fe0f60856387cc093781c1bc657ef.png

CRC:此字段应包含 WPID 字段的循环冗余检查

WPID: 表示其中包含的 24 位字符串无线电源ID 包

扩展标识包(0x81)

a53c13989f5a9d51b82b9da182641070.png

用于延长设备标识符,该字段中包含的位串有助于标识电力接收器。

24位接收功率包(0x31)

5f9c7314b3f7e6c387bd5542d4d1f68d.png

Reserved:这些位应设为零.

Mode:该字段中的位串提供有关接收电源的附加信息。

10fa5e010bdfc7658528c729e4f7396e.png

Received Power Value:此字段中包含的无符号整数表示在时间窗口中,功率接收器通过其界面接收到的功率在配置包中指出。它表示为= (接收电源值/32768)×最大电源。在此计算中,功率发射器使用功率中包含的最大功率转让合同。接收到的结果是以瓦特为单位的。

只适用于一般请求包 (0x07)

1b62af7fb3d2125320572b54124827fb.png

此无符号整数值指示所请求的信息的类型。请求一个特定包,将请求字段

设置为该包的头。例如,请求电源发送器标识包,将请求字段设置为 0x30。

只特定请求包 (0x20)

4e882347806f43c3b092a9d6df084702.jpg

该字段中的无符号整数包含请求和请求参数,具体如下图

6eab2ba808843daab4f80f5fdae3a2fb.png

结束协商(0x00)

372344065e8ea90999b37db070005ce7.png

此字段中包含的无符号整数值提供在协商阶段修改的传输参数

保证功率(0x01)

9ccd288ccc0387ed78410db59f82b736.png

此字段包含所需的保证功率(单位为)0.5 W。例如,值 10 用于查询功率发射器是否支持保证功率值 30 查询,保证功率为 15 W。

接收到的数据包类型 (0x02)

a06707b42cf37d675a2726ade51e03b5.png

接收到的数据包报头。如这个字段应该设置为 0x31,表示电源接收器打算在功率

传输阶段使用 24 位接收的功率包。

FSK 参数 (0x03)61dadfdc4005d1ff5c09a248c830b497.png

Reserved:保留。这些位应设为零。

Polarity:该位为0指示功率发射机使用正的 FSK 极性。

Depth:该字段中包含的无符号整数选择 FSK 调制深度。

最大功率(0x04)

17e22488cb29e86ae895bea8ecc7cd68.png

Maximum Power Value:此字段中包含的整数值为功率接收器在接收到的功率包中报告的接收功率值,电源接收器应将此值设置为最大电量的两倍作为它期望在输出端提供的功率值。

FOD 状态包 (0x22)

58bbcc0386ba955c88aa5b41ff1d67b4.png

Mode:该字段表示功率接收器的工作模式,具体值如下表

04140430c631625d9390044d95fab529.png

重新协商包 (0x09)

baf25915ed3a4bf77d842a9dd5f9ff7f.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150227.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月18日 下午5:46
下一篇 2022年6月18日 下午5:46


相关推荐

  • 汇编语言里 eax, ebx, ecx, edx, esi, edi, ebp, esp这些都是什么意思啊?

    汇编语言里 eax, ebx, ecx, edx, esi, edi, ebp, esp这些都是什么意思啊?eax ebx ecx edx esi edi ebp esp 等都是 X86 汇编语言中 CPU 上的通用寄存器的名称 是 32 位的寄存器 如果用 C 语言来解释 可以把这些寄存器当作变量看待 比方说 addeax 2 nbsp nbsp nbsp 可以认为是给变量 eax 加上 2 这样的一个值 这些 32 位寄存器有多种用途 但每一个都有 专长 有各自的特别之处 EAX

    2026年3月18日
    1
  • 收藏!小白程序员必看:Workflow与Agent如何助力大模型落地,开启AI自动化新征程

    收藏!小白程序员必看:Workflow与Agent如何助力大模型落地,开启AI自动化新征程

    2026年3月14日
    2
  • QT GUI编程

    QT GUI编程QT 程序设计 一 QT 基础 Qt 简介 Qt 应用范围开发环境 QtCreator 安装 Qt 内存管理第一个 Qt 程序打印跟踪信号与槽二 窗口部件三 主窗口四 QT 基础五 QT 基础六 QT 基础七 QT 基础持续更新中 一 QT 基础 Qt 简介 Qt 应用范围开发环境 QtCreator 安装 Qt 内存管理第一个 Qt 程序打印跟踪信号与槽二 窗口部件三 主窗口四 QT 基础五 QT 基础六 QT 基础七 QT 基础持续更新中

    2026年3月26日
    3
  • Nano Banana(Gemini)命令模板(提示词指南)

    Nano Banana(Gemini)命令模板(提示词指南)

    2026年3月13日
    3
  • vue双向绑定原理 面试_vue首屏加载优化

    vue双向绑定原理 面试_vue首屏加载优化vue.js采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。数据的双向绑定,首先要对数据进行劫持监听,所以我们需要设置一个监听器Observer,用来监听所有属性。如果属性发上变化了,就需要告诉订阅者Watcher看是否需要更新。因为订阅者是有很多个,所以我…

    2022年10月17日
    7
  • __cplusplus介绍

    __cplusplus介绍伪代码如下 ifdef cplusplusext C endif include lt h gt ifdef cplusplus endif 如果在 C 的编译环境中 代码就变成了 include lt h gt 如果在 C 环境中 代码就变成了 extern C include lt h gt 这个 cplusplus 在编译器中被定义 不同的 C 版本有不同的值 C 03 cplusplus

    2026年3月16日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号