无线充电联盟的QI协议,定义了Power Transmitter timing in the Ping phase(协议连接建立阶段的Ping流程)
Seq | Parameter | 参数 | Symbol | Value | Unit |
1 | Maximum Digital Ping duration | 数字Ping持续时间最大值 | t_ping | 65 | ms |
2 | Power Signal termination time | 功率信号终止时间 | t_ terminate | 28 | ms |
3 | First Packet time out | 第一个数据包超时 | t_first | 17 | ms |
4 | Power Signal expiration time | 功率信号 过期时间 | t_expire | 28 | ms |
也就是,
0)想进入正式充电阶段,必须想接收端/受电端发送一个申请;
1)若t_ping时间内没有收到接收端的回应数据包的首字节的起始位,则开始计时,t_ terminate内将发射线圈的电流减少到0;
2)发射端接收到功率强度数据包报头,将准备进入功率传输的识别配置阶段;但是如果接下来的t_first时间内,没有接收到强度信号,则开始计时,t_ terminate内将发射线圈的电流减少到0;
3)发射端接收到功率强度数据包报头,并且接下来的t_first时间内,正确接收到强度信号,则正式进入识别和配置阶段。
如果要实现Qi通讯的协议,就要首先把这些时间段的定义写入.h头文件。
对于通讯程序来说,核心有两点,一个是对齐时钟/频率,还有一个就是识别报头。
QI通讯是定频的,2Khz,也就是500us,所以每一位是通过这个周期内的电平来判断是0还是1(位)。
在位的基础上,通过低位先行,组成了了11位的byte。比如需要发送一个“0x51”(也就是,0b 0101 0001,对应“配置信息”的报头),则依次发送 - 起始位0,1,0,0,0,1,0,1,0,校验位0(奇数个1,校验为0),停止位1。所以最后就是0100 0101 001,一共11位。
在byte的基础上,组成了message。