无线充电原理与QI协议详解
一 、无线充电基本原理
无线充电的基本原理就是我们平时常用的开关电源原理,区别在于没有磁介质耦合,那么我们需要利用磁共振的方式提高耦合效率,具体方法是在发送端和接收端线圈串并联电容,是发送线圈处理谐振状态,接收端线圈也是如此
下图就是实际电路应用
无线充电工作基本原理图
发射板主要有控制ic,驱动ic,发射线圈,谐振电容组成
这个是接收线圈,扎数比发射线圈多所以谐振电容可以小一些,方便安装在手机后盖
一 、无线充电通讯协议
上面说了原理,但是为什么无线充电还需要协议呢,原因如下
1、发射板需要确认接收线圈是不是已经放置在发射线圈上方,如果没有接收线圈,发射端不工作降低功耗
2、如果在线圈上放了金属制品会产生涡流导致金属品发热,比如在发射板上放了钥匙那么钥匙就会发热,需要避免这种情况
3、手机充电时电流不同,比如正常充电时1A,充满电的时候电流会降到几十MA,那么发射板功率如果一直恒定不变,当手机充满电时发射线圈接收端的电压会很高,这是负载变小电压升高的原因,所以需要当负载变化时发射线圈功率也需要跟着调节,就像开关电源一样需要电压反馈控制
解决方法:
1通过无线通讯机制来判断是不是金属制品或者没有放置接收线圈,比如接收端线圈必须间隙发送确认信号
2通过无线通讯机制来调节发射端功率
具体方法其实类似RFID,区别在于无线充电是单向通讯,接收端发送信号,发射端接收信号
主要通讯流程如下
1,上电后发射端线圈发射脉冲信号,然后接收端线圈收到信号后返回一个身份识别包信号,然后在发送配置包,比如功率设置
2,当时发射线圈接收到接收线圈发来的信号就可以正常工作了,这个时候接收线圈必须在规定时间内发送信号强度包来调整功率,如果在规定时间内发射线圈没有收到信号就认为接收线圈已经不在发射板上方,导致重新建立握手
各种通讯包格式
包格式如下
这是数据的编码格式,频率为2KHz
调制方式有两种,下图是电容调制和电阻调制,电容调制是接收板常用电路
三、实验验证
用单片机模拟接收线圈控制IC,通过观察发射板的供电情况,我用的是电阻调制,因为比较简单,主要是看下能不能通讯,下面是自己写的代码
这个包格式
前导:11个-25个1
包头:
常用的就是0X01,0X51,0X71,0X03,0X04,
发包顺序是0X01,0X71,0X51,包中间间隔小于21ms
然后0X03和0X04包在充电中发出,间隔小于1.5S和23S
信息:这个就看我发的链接发内容比较多
校验:把包头和包信息异或检验
下面是用NV32开发板的程序,LED3就是调制波形, LED3_On();调制MOS管栅极为高电平
void Header (void)//前导11到25个1,这里用18个1
{
uint8 i;
for(i=0;i<18;i++)
{
LED3_On();
delay_us(250);
LED3_Off();
delay_us(250);
}
}
void Code (uint8 aa)//字节编码
{
uint8 i,j=0;
LED3_Toggle();//起始位
delay_us(500);
for(i=0;i<8;i++)//数据位
{
if(aa&0x01)
{
j+=1;
LED3_Toggle();
delay_us(250);
LED3_Toggle();
delay_us(250);
}
else
{
LED3_Toggle();
delay_us(500);
}
aa>>=1;
}
if(j%2)//检验位
{LED3_Toggle();delay_us(500);}
else
{LED3_Toggle();delay_us(250);LED3_Toggle();delay_us(250);
}LED3_Toggle();//停止位delay_us(250);LED3_Toggle();delay_us(250);
}
void ping (void)//PING包
{
Header();
Code(0x01);
Code(0x80);
Code(0x01^0x80);
LED3_Off();
}
void id (void)//id包
{
Header();
Code(0x71);
Code(0x10);
Code(0x00);
Code(0x01);
Code(0x00);
Code(0x01);
Code(0x00);
Code(0x00);
Code(0x710x100x000x010x000x010x00^0x00);
LED3_Off();
}
void config (void)//配置包
{
Header();
Code(0x51);
Code(0x0a);
Code(0x00);
Code(0x00);
Code(0x00);
Code(0x00);
Code(0x510x0a0x000x000x00^0x00);
LED3_Off();
}
void ConErr (void)//误差控制包
{
Header();
Code(0x03);
Code(0x02);
Code(0x03^0x02);
LED3_Off();
}
void RecPWR (void)//接收功率包
{
Header();
Code(0x04);
Code(0xff);
Code(0x04^0xff);
LED3_Off();
}
int main (void)
{
sysinit();
SysTick_SetCallBack(SysTick_CallBack);
delay_us(500);
LED3_Init();
ping();delay_ms(10);
id();delay_ms(10);
config();delay_ms(50);
while(1)
{
ConErr();//修改包数据可以改变功率
delay_ms(500);
}
}
把IO接到调制MOS管上,发射板就能持续供电了,说明通讯协议是对的,大家可以用其他开发板试一下,就能自己设计无线充电接收线圈了,
下次再用单片机设计一个无线充电发射板控制IC,难点主要是接收信号的处理和解码
无线充电原理与QI协议详解相关推荐
- HTTP协议详解(真的很经典)
转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...
- Http 协议详解笔记
HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第 ...
- Http协议 详解(转载)
http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分 ...
- HTTP协议详解 转自小坦克
HTTP协议详解 转自小坦克 -- 有些文章是引用别人的,为了方便我以后或不再备注;引用目的是因为直接网摘里面的地址经常被重置,找不到原来的文章 当今web程序的开发技术真是百家争鸣,ASP.NET, ...
- HTTP 协议详解(超级经典)
协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器 什么是HT ...
- rtmp官方协议详解
标准规范学习: rtmp消息结构,包括几个部分: 时戳:4 byte,单位毫秒.超过最大值后会翻转. 长度:消息负载的长度. 类型ID:Type Id 一部分ID范围用于rtmp的控制信令.还有一部 ...
- IP协议详解---Linux学习笔记
网络层概述: IP服务的特点: IP协议为上层协议提供无状态.无连接.不可靠的服务. 无状态:IP通讯双方不同步传输状态的信息,因此所有IP数据报发送.传输.接收都是相互独立的,没有上下文关系.这样同 ...
- 接口测试之HTTP协议详解
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...
- 应用层协议:HTTP与HTTPS协议详解、二者的区别
http协议详解 1.HTTP协议:超文本传输协议 是一种分布式.合作式.多媒体信息系统服务,面向应用层的协议.是一种通用的,不分状态的协议.是一种请求/应答协议. 1.1.HTTP/1.0和HTTP ...
- HTTP协议详解(文档)
目录 引言............................................................................................... ...
最新文章
- 盘点热门的目标检测开源方案(附论文+代码下载)
- Anychat视频会议系统企业信息化的完美衔接
- js复制功能的有效方法总结新
- get request uni 参数_uni-app 环境配置,uni.request封装,接口配置,全局配置,接口调用的封装...
- hive大数据倾斜总结
- anaconda安装scrapy_Scrapy框架的安装
- Java 10新特性解密
- 卷积神经网络的几种典型架构
- linux外接NetApp存储,netapp linux iscsi 实现
- Apache Dubbo是一款高性能Java RPC框架。
- js判断访问端,跳转不同页面
- Redhat5 安装oracle10g 启动测试
- html5--select与HTML5新增的datalist元素
- 计算机桌面壁纸在哪个文件夹,桌面背景在哪个文件夹,详细教您xp win7 win10系统桌面背景在哪个文件夹?...
- CPU_Z计算机主板性能表,只为高端玩家 七款Z97高规主板推荐
- 期待已久的屏幕录像专家2021
- 扫描项目中的二维码关注微信公众号
- docker入门课程
- Activity全屏透明动画等
- 为什么在wps中调整了0.5倍行距,某一页的行数不会发生变化?
热门文章
- 在内核中分配物理地址连续的大内存.
- 人工智能入坑-机器学习-小目标
- php复制目录图片,php实现将base64格式图片保存在指定目录的方法
- python 的库如何开发_Python开发者必备6个基本库
- 关于联想LJ2655DN出现open the frontcover then replace the toner的解决方法
- MySQL 入门(六)—— 索引
- c#下实现GUI编程_写给初学者的C#教程[专题1S7通信](1)
- Java| 编译和反编译
- Linux内核探索之路——关于书
- 华为OLT(MA5680T)查看光猫光衰