• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 微波/射频 > RF技术文章 > 利用PSoC1实现基于WPC协议的电力发送器设计

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

录入:edatop.com    点击:

从上图可以看到,对线圈的驱动控制采用的是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) WPTdata >>= 1;

else parity_received = 0;

bit_num++;

if (bit_num < WPTBITSCOUNT) WPTdata >>= 1;

else parity_received = 0;

bit_num++;

}

else

{

state = next_state = RX_ERROR;

time_out = TIME_OUT_ERROR;

return;

}

如何成为一名优秀的射频工程师,敬请关注: 射频工程师养成培训

上一篇:Qi标准无线充电配件概述
下一篇:TD-LTE双流波束赋形技术

射频和天线工程师培训课程详情>>

  网站地图