无线充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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 系统调用(int 0x80)详解

    系统调用(int 0x80)详解1、系统调用初始化在系统启动时,会在sched_init(void)函数中调用set_system_gate(0x80,&system_call),设置中断向量号0x80的中断描述符:#defineset_system_gate(n,addr) _set_gate(&idt[n],15,3,addr)其中15表示此中断号对应的是陷阱门,注意,这个中断向量不是中断门描述符

    2022年9月13日
    2
  • prometheus监控日志告警_undo terminal monitor

    prometheus监控日志告警_undo terminal monitorkubernetes之prometheus监控第二篇-alertmanager监控告警:  在前期的博文中,我已经简单的介绍过了prometheus的安装,以及通过grafana来实施监控。这篇博文,我们更深入的介绍一下prometheus的监控。本篇博文主要分为以下几个知识点:1.使用prometheus监控ceph存储;2.学习简单的PromQL语言,在grafana里面根据业务自定…

    2022年10月3日
    3
  • linux发邮件失败,Linux SendMail发送邮件失败诊断案例,sendmail发送邮件

    linux发邮件失败,Linux SendMail发送邮件失败诊断案例,sendmail发送邮件LinuxSendMail发送邮件失败诊断案例,sendmail发送邮件Linux上Sendmail经常由于一些配置问题,导致邮件发送失败,下面整理、收集了一些邮件发送失败、异常的案例。案例1:在新服务器上测试sendmail发送邮件时,发现邮件发送不成功,检查/var/log/maillog日志文件发现如下错误(Notice:hostname、邮箱地址等信息使用xxx代替)tail/var/…

    2022年10月20日
    2
  • python实现各大视频网站电影下载

    python实现各大视频网站电影下载一、前期准备有时候我们想下载自己喜欢的电影,但很多时候要么需要安装客户端才能下载,或者干脆不提供下载的服务,很是不爽,因此这里我们介绍使用python来实现网站的电影下载功能,凡是能在线观看的,都

    2022年7月3日
    26
  • kali修改更新源(无法安全的用该源更新)

    因为kali是国外的,所以一些软件你要下载的话得从国外的网站下载,就会很慢,国内一些公司或者学校提供了国内的下载地址,所以我们需要更换更新源一,命令:vim/etc/apt/sources.list二、增加或替换掉sources.list文件里面的更新源地址:#阿里云debhttp://mirrors.aliyun.com/kalikali-rollingmain…

    2022年4月10日
    76
  • ajax的跨域请求_js解决跨域问题

    ajax的跨域请求_js解决跨域问题什么是AJAX?AJAX是无需刷新页面就能够从服务器去的数据的一种方法,负责Ajax运作的核心对象是XMLHttpRequest(XHR)对象。同源策略是对XHR的一个主要约束,它为通信设置了“相同的域、相同的端口、相同的协议”这一限制。试图访问上述限制之外的资源都会引发安全错误,除非采用被认可的跨域解决方案。这个方案叫做CORS(Cross-OriginResourceSharing)跨源…

    2022年8月24日
    5

发表回复

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

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