微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 利用PSoC1实现基于WPC协议的电力发送器设计

利用PSoC1实现基于WPC协议的电力发送器设计

时间:09-19 来源:互联网 点击:

1, 无线充电概述

  无线充电技术在消费类市场表现出巨大的潜力。在不使用连线的情况下给电子设备充电不但可为便携式设备用户提供一种便利的解决方案,而且还让广大设计人员能够寻找到更具创新性的问题解决方法。许多电池供电型便携式设备均能受益于这种技术,从手机到电动汽车不一而足。

  目前,无线充电技术主要有两个联盟A4WP和WPC。A4WP是以三星和高通牵头的6家企业成立了无线充电联盟,而WPC主要有TI、三星、HTC、LG、海尔等109家成员。WPC主要是采用线圈耦合的方式来实现能量转移,目前主要为5W产品的低功耗应用制定规范,也在尝试为高功率产品制定规范。它可实现在一个平面上为多个电器进行充电,充电板的发射端与充电产品接收端距离为5毫米。而A4WP正在促进共振方式无线充电技术的发展。充电板与智能机装置拥有同样频率的共振线圈,通过共振来充电,因此即便智能手机不与充电板接触也可进行充电。另外,该技术无需考虑电波,可为多台智能产品同时充电,并可通过非金属表面的物体进行充电,使用起来非常方便。

  除了两大联盟的技术方式外,也存在其他几种充电方式,比如以Wildcharge、Duracell两家公司为主的传导式充电、Powermat和Palm的无线充电技术,以及以Powercast公司为代表的RF射频充电技术等等,但无线充电方式还远不止这些。

  2,WPC介绍

  3,基于PSoC1的电力发送器设计

  电力发送器(其通常为一个平面用户将电力接收器放置在上面)连接至电源。符合WPC标准的设备线圈起到了一个50%占空比谐振半桥的作用,其输入为19-VDC(±1 V)。如果电力接收器需要或多或少的功率,则线圈频率会发生变化,但会保持在110到 205kHz 之间,具体取决于功率需求。

  如第二部分介绍,电力发送器的关键电路是用于向电力接收器传输电力的一次线圈、驱动一次线圈的控制单元以及解调一次线圈电压或者电流的通信电路。图2是采用Cypress的PSoC1对一次线圈的控制及驱动电路,它采用的是A1设计。

  图2, WPC电力发送器驱动电路

  其中,LM5107是线圈驱动芯片, 20N06HD是MOSFET管,Cp(约为100nF)是电路所有电容总和,Lp是一次线圈,A1设计中其值为24uH。

  电力发送器的通信部分主要为解调来自电力接收器的电压信号,并解析数据包。通信过程中采用的是差分双向编码(differential bi-phase encoding)方式,每个码元持续时间开始时电平都发生跃变,如果在半个码元持续时间后电平再次跃变,则代表1;而在整个码元持续时间内电平不发生跃变,则代表0.如下图3所示:

  图3,WPC通信编码

在PSoC Designer中实现的原理图如下图4所示,

  图4,PSoC Designer设计原理图

  从上图可以看到,对线圈的驱动控制采用的是PWM模块PWMDB8_1,其与Port2_5和Port2_7相连以驱动控制LM5107芯片。 解调来自电力接收器的电压信号,PSoC1使用了4个元件(Decode_Timer,PGA_1, COMP_1和OneShot_1), Decode_Timer模块用来计时,PGA_1对接受到的微笑信号放大, COMP_1把模拟信号变数字信号,OneShot_1对信号进行同步并产生中断,软件就根据Decode_Timer计算的OneShot_1两次中断的时间间隔来解码协议。当两次中断间隔为:

  1T----解码为逻辑1

  1.5T----如果第一次收到1.5T间隔的中断,解码为两个bit,逻辑1和逻辑0

  如果第二次收到1.5T间隔的中断,解码为逻辑0

  2T---解码为两个逻辑0

  这里“T”为1bit传输时间

  其软件实现如下所示:

  cur_time = Decode_Timer_COMPARE_REG;

  if (cur_time > prev_time)

  {

  delta = 250 - cur_time;

  delta += prev_time + 1;

  }

  else delta = prev_time - cur_time;

  //estimate the delta between next samples taking into accoun timer overflow

  prev_time = cur_time;

  if ((delta > ONE_T_LOWER) (delta ONE_T_UPPER))/*1T*/

  {

  //ADD_BIT(1,WPTdata);

  if (bit_num WPTBITSCOUNT)

  {

  WPTdata >>= 1;

  WPTdata |= 0x80;

  parity ^=1;

  }

  else parity_received = 1;

  bit_num++;

  }

  else if ((delta > ONEANDHALF_T_LOWER) (delta ONEANDHALF_T_UPPER)) /*1,5T*/

  {

  if(flag==0)

  {

  if (bit_num WPTBITSCOUNT)

  {

  WPTdata >>= 1;

  WPTdata |= 0x80;

  parity ^=1;

  }

else parity_received = 1;

  bit_num++;

  if (bit_num WPTBITSCOUNT) WPTdata >>= 1;

  else parity_received = 0;

  bit_num++;

  flag = 1;

  }

  else

  {

  if (bit_num WPTBITSCOUNT) WPTdata >>= 1;

  else parity_received = 0;

  bit_num++;

  flag = 0;

  }

  }

  else if ((delta > DOUBLE_T_LOWER) (delta DOUBLE_T_UPPER))/* 2T*/

  {

if (bit_num WPTBITSCOUNT)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top