无线充电原理与QI协议详解[通俗易懂](恩山无线论坛)
一 、無線充電基本原理
無線充電的基本原理就是我們平時常用的開關(guān)電源原理,區(qū)別在于沒有磁介質(zhì)耦合,那么我們需要利用磁共振的方式提高耦合效率,具體方法是在發(fā)送端和接收端線圈串并聯(lián)電容,是發(fā)送線圈處理諧振狀態(tài),接收端線圈也是如此
下圖就是實際電路應(yīng)用
無線充電工作基本原理圖
發(fā)射板主要有控制ic,驅(qū)動ic,發(fā)射線圈,諧振電容組成
這個是接收線圈,扎數(shù)比發(fā)射線圈多所以諧振電容可以小一些,方便安裝在手機(jī)后蓋
一 、無線充電通訊協(xié)議
上面說了原理,但是為什么無線充電還需要協(xié)議呢,原因如下
1、發(fā)射板需要確認(rèn)接收線圈是不是已經(jīng)放置在發(fā)射線圈上方,如果沒有接收線圈,發(fā)射端不工作降低功耗
2、如果在線圈上放了金屬制品會產(chǎn)生渦流導(dǎo)致金屬品發(fā)熱,比如在發(fā)射板上放了鑰匙那么鑰匙就會發(fā)熱,需要避免這種情況
3、手機(jī)充電時電流不同,比如正常充電時1A,充滿電的時候電流會降到幾十MA,那么發(fā)射板功率如果一直恒定不變,當(dāng)手機(jī)充滿電時發(fā)射線圈接收端的電壓會很高,這是負(fù)載變小電壓升高的原因,所以需要當(dāng)負(fù)載變化時發(fā)射線圈功率也需要跟著調(diào)節(jié),就像開關(guān)電源一樣需要電壓反饋控制
解決方法:
1通過無線通訊機(jī)制來判斷是不是金屬制品或者沒有放置接收線圈,比如接收端線圈必須間隙發(fā)送確認(rèn)信號
2通過無線通訊機(jī)制來調(diào)節(jié)發(fā)射端功率
具體方法其實類似RFID,區(qū)別在于無線充電是單向通訊,接收端發(fā)送信號,發(fā)射端接收信號
主要通訊流程如下
1,上電后發(fā)射端線圈發(fā)射脈沖信號,然后接收端線圈收到信號后返回一個身份識別包信號,然后在發(fā)送配置包,比如功率設(shè)置
2,當(dāng)時發(fā)射線圈接收到接收線圈發(fā)來的信號就可以正常工作了,這個時候接收線圈必須在規(guī)定時間內(nèi)發(fā)送信號強度包來調(diào)整功率,如果在規(guī)定時間內(nèi)發(fā)射線圈沒有收到信號就認(rèn)為接收線圈已經(jīng)不在發(fā)射板上方,導(dǎo)致重新建立握手
各種通訊包格式
包格式如下
這是數(shù)據(jù)的編碼格式,頻率為2KHz
調(diào)制方式有兩種,下圖是電容調(diào)制和電阻調(diào)制,電容調(diào)制是接收板常用電路
三、實驗驗證
用單片機(jī)模擬接收線圈控制IC,通過觀察發(fā)射板的供電情況,我用的是電阻調(diào)制,因為比較簡單,主要是看下能不能通訊,下面是自己寫的代碼
這個包格式
前導(dǎo):11個-25個1
包頭:
常用的就是0X01,0X51,0X71,0X03,0X04,
發(fā)包順序是0X01,0X71,0X51,包中間間隔小于21ms
然后0X03和0X04包在充電中發(fā)出,間隔小于1.5S和23S
信息:這個就看我發(fā)的鏈接發(fā)內(nèi)容比較多
校驗:把包頭和包信息異或檢驗
下面是用NV32開發(fā)板的程序,LED3就是調(diào)制波形, LED3_On();調(diào)制MOS管柵極為高電平
void Header (void)//前導(dǎo)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)//字節(jié)編碼
{
uint8 i,j=0;
LED3_Toggle();//起始位
delay_us(500);
for(i=0;i<8;i++)//數(shù)據(jù)位
{
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();//修改包數(shù)據(jù)可以改變功率
delay_ms(500);
}
}
把IO接到調(diào)制MOS管上,發(fā)射板就能持續(xù)供電了,說明通訊協(xié)議是對的,大家可以用其他開發(fā)板試一下,就能自己設(shè)計無線充電接收線圈了,
下次再用單片機(jī)設(shè)計一個無線充電發(fā)射板控制IC,難點主要是接收信號的處理和解碼
總結(jié)
以上是生活随笔為你收集整理的无线充电原理与QI协议详解[通俗易懂](恩山无线论坛)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中list与string的转
- 下一篇: RPC接口简介「建议收藏」(一文带你搞懂