无线充电发射端的Qi协议控制器设计与实现

2022-05-06 13:32霍倩楠焦继业任朝辉焦宽祥
电子设计工程 2022年8期
关键词:接收端解码校验

霍倩楠,焦继业,任朝辉,焦宽祥

(1.西安邮电大学计算机学院,陕西西安 710121;2.西安邮电大学电子工程学院,陕西 西安 710121)

2018 年,无线电源联盟成立,发布了第一个无线充电的国际标准Qi协议,无论是什么产品,只要有Qi的标识,都可以用Qi 无线充电器充电[1]。随着Qi 无线充电接收端产品的日益增加,对无线充电发射端提出了更高的要求,需要其同时具有较高的灵活性和可靠性[2]。但现有的无线充电方案大都通过软件方式实现数据通信,需要不断调用CPU 资源,影响通信的速度和准确性。文献[1]提出将整个数据通信接口集成,包括每个阶段的数据包时长和传输内容,虽然大大提升了通信速度,但灵活性较差。为了同时提高数据通信的速度和适应性,提出仅对数据进行简单的收发,留有接口使用户在不同功率传输阶段自定义数据包传输的间隔时间和传输内容的方法。

该文立足于Qi v1.2.4 规范,面向无线充电发射端设计一种可编程Qi 协议控制器,完成数据包的正确接收与发送,并利用FPGA 和Qi 协议测试仪进行验证。实验结果表明,此设计可以实现对数据包的实时监控,且灵活性更高,可以应用于更复杂的无线充电发射端方案。

1 Qi协议通信概述

1.1 接收端至发射端

接收端到发射端的通信方式是ASK 方式,采用负载调制技术发送数据,协议规定时钟信号频率是2 kHz,即每一位的传输时间约为500 μs[3]。如图1 所示,数据0 是500 μs 的高电平或者500 μs 的低电平;数据1 是250 μs 高电平+250 μs 低电平或者250 μs低电平+250 μs 高电平[4]。

图1 位编码格式

数据字节使用11 位异步串行格式。每一个数据由1 bit 起始位、8 bit 数据位、1 bit 奇偶校验位和1 bit停止位组成。如图2 所示,起始位为0,数据位采用LSB 编码格式,低位在前,高位在后[5]。奇偶校验位采用奇校验方式,即如果包含偶数个1,校验位为1,否则为0。如图2 表示的数据是0x35。

图2 字节编码格式

每一组数据包分为序言、报头、数据、校验和4 个部分[6]。其中序言由至少4 个1 构成;报头由一个表示包类型的字节组成;数据包含接收端的配置信息;校验和是报头与数据的校验结果,目的是让发射机检测是否发射错误。

1.2 发射端至接收端

发射端到接收端的通信方式是FSK 方式,以数字信号控制载波频率变化的调制方式调制信号[7]。协议规定,每个数据位的传输时间约为功率信号频率的512 个周期。其中数据1 是在512 个周期内,信号频率发生两次转变,第一次转变发生在数据位的起始阶段,第二次转变发生在256 个周期以后。数据0 从数据位开始,信号频率仅发生一次转变[8]。

发射端的字节编码格式与接收端大致相同,起始位为0,数据位采用LSB 编码格式,但奇偶校验位采用偶校验方式,如果数据字节包含奇数个1,校验位为1,否则为0[9]。发射端按照连续序列发送所有比特,两个连续比特之间不暂停,首先发送起始位,最后发送停止位。

与接收端不同的是,发射端的每一组数据包仅包含3 个部分,分别是报头、数据、校验和,三者代表的含义与接收端相同[10]。

除数据包外,发射端还发送响应包,响应包有3种类型,分别为响应(ACK)、不响应(NAK)、未知(ND)。它们的字节编码方式与数据包不同,不包括起始位、奇偶校验位和停止位,每个数据采用重复的编码方式,其中ACK 包由8 个1 组成,NAK 包由8 个0 组成,ND 包由1、0 循环构成。

2 Qi控制器整体架构

该设计使用Verilog 硬件描述语言建立模型,采用自顶向下的方法,首先根据功能设计出整体方案,再具体设计主要模块[11]。该设计实现的是面向无线充电发射端的Qi 协议控制器,协议参照最新的1.2.4版本,因此适用于所有支持Qi协议的接收端。

如图3 所示,Qi 控制器主要包括3 个部分,即Qi接收器、Qi 发送器、波特率时钟单元。其功能主要包括两点,一是根据协议格式接收来自无线充电接收端的数据包,送给上层处理;二是将上层发送的数据按照Qi 协议格式编码送至无线充电接收端[12]。其中,Qi 接收器的任务是接收无线充电接收端发来的数据包,对其进行解码处理,并根据协议的编码格式进行前导码和数据包的检测,将校验正确的有效数据包传给上层进行处理[13]。Qi 发送器的任务是接收来自上层的有效数据包,按照协议的消息格式给每个数据添加起始位、校验位和停止位,再将完整的数据包发送至无线充电接收端[14]。波特率时钟单元的任务是根据协议规定的接收和发送数据频率,设定不同的波特率值进行数据的传输。

图3 Qi控制器架构

2.1 Qi控制器硬件实现

如图4 所示,呈现的是Qi 接收器的整体设计思路,可大致分为解码模块、移位控制模块、数据缓存模块、CRC 校验模块、Qi_RXSTATE 模块和标志位生成模块。解码模块负责根据Qi 协议位编码格式将无线充电RX 端发来的串行数据以0、1 的格式解析;移位控制模块根据接收状态标志将解码后的有效数据依次右移缓存至数据缓存寄存器;Qi_RXSTATE模块和标志位生成模块与外部信号交互,控制整个接收数据的过程。Qi_RXSTATE 模块根据解码出的0、1 数据以及Qi 协议字节编码格式保留正确的数据;标志位生成模块会生成如前导接收完成标志、数据接收位标志、数据校验错误标志等标志控制Qi_RXSTATE 模块。当接收到一包完整的有效数据时,标志位生成模块也会生成数据接收结束标志。若数据接收结束标志有效,对数据暂时缓存,将收到的所有数据进行CRC校验,若校验正确,则将数据输出。

图4 Qi接收器框图

从无线充电RX 端发送的串行数据都需先经过解码,每一位数据解析正确是最终数据正确解析的前提[15]。所以为了保证最终输出数据的完整性及准确性,解码模块需精确地解析每一位数据。Qi 协议中规定,时钟信号的频率是2 kHz,每一位的传输时间约500 μs[16],但是在实际应用中,由于硬件解调电路解析数据的不确定性,它的每一位传输时间会有偏差,数据1也不是在250 μs发生电平的跳变。通常的解码方法是用时间采样,但是在时间偏差较大的情况下,采样点很难确定,且较容易丢失数据。为了保证数据解码的准确性,该设计采用边沿检测的方法检测相邻沿改变的时间,若在400~600 μs 之间没有电平的改变,为0;反之则为1。图5 为解码的检测原理图。

图5 解码检测原理图

Qi_RXSTATE 模块是Qi 控制器接收模块的核心,接收状态机的状态图如图6 所示,主要分为IDLE、PRE、START、BYTE、ODD 和STOP 6 个状态。IDLE 表示初始状态,PRE 表示接收前导码状态,START、BYTE、ODD 和STOP 分别表示数据的起始、数据、奇校验和停止状态。

图6 接收状态机的状态图

接收机的初始状态是IDLE 状态,当检测到下降沿,即pin_neg=1 时,进入接收前导码状态,同时pre_cnt 记录前导的个数。当收到1,即pin_change 为1 时,pre_cnt 不断自增,直到接收到0,即pin_change为0;若此时前导个数大于7,则进入数据的起始位状态,并将数据位数bit_cnt 置为1。若继续接收到有效数据,则进入数据的数据位状态,每收到一位有效数据,bit_cnt 加1,并把数据暂时锁存。当接收到第10 位有效数据,进入数据的校验位状态,对比接收到的数据与锁存的10 位数据的奇校验结果,如果相同,且收到1,则进入数据的停止位状态。此时一个有效数据已接收结束,将数据缓存,为后面的CRC 校验作准备。对于以上所有的状态,如果任一条件未满足,都需要回到IDLE 状态,重新检测前导位。无线充电接收端发送的一包数据至少会包含3 个有效数据,所以在停止位状态下,如果下一位收到的数据是0,则返回接收数据的起始位状态,继续接收数据,如果未收到,默认所有数据接收结束,返回IDLE状态。

2.2 Qi发射器设计

如图7 所示,呈现的是Qi 发射器的整体设计思路。无线充电发射端传递给接收端的信息有两种类型,一类是数据包,另一类是响应包,由于两者的数据构成不同,因此将其放在不同的模块。DATA 模块接收来自协议层的数据包,包括数据头包和数据包,将其依次传入CRC 校验模块进行CRC 计算,并将计算结果返回至DATA 模块。每包数据传入编码模块按照Qi 协议格式进行编码,为数据添加起始位、偶校验位和停止位。Response 模块接收来自协议层的响应包。选择模块负责从编码后的数据和响应包中选择最终输出的数据,再经移位寄存器将每位数据依次传入ENCODE_STATE 模块进行数据编码并输出。

图7 Qi发射器框图

ENCODE_STATE 模块是Qi 控制器发射模块的核心,发射编码状态机的状态图如图8 所示,主要分为IDLE、ENCO_00、ENCO_01、ENCO_10、ENCO_11 5 个状态。IDLE 表示初始状态,ENCO_00、ENCO_11表示数据0 的编码状态,ENCO_01、ENCO_10 表示数据1 的编码状态。当检测到有数据传入,即txen=1时,进入ENCO_00 状态,当时间满足Qi 协议数据传输要求时,clk_t=1,假设前一个状态是ENCO_00,若收到0,则跳转到ENCO_11;若收到1,则跳转到ENCO_10,以此类推。

图8 编码状态机

为了使编码后的信号能被无线充电RX 端正确解析,编码必须满足Qi 协议数据传输的要求。当处于ENCO_00 状态时,输出0;当处于ENCO_11 状态时,输出1;当处于ENCO_01 状态时,先输出0 并持续半个数据传输周期,再输出1;当处于ENCO_10 状态时,先输出1 并持续半个数据传输周期,再输出0。

3 验证与分析

3.1 结果验证

Qi 协议控制器选用DIGILENT ARTY ARTIX-7 XC7A35T FPGA 开发板以及Qi 无线充电器测试仪作为验证平台。为了验证控制器的实用性,将无线充电样机解调后的数字信号传入Qi 控制器,然后再通过串口调试助手将控制器解析的数据打印并与Qi 无线充电器测试仪发送的数据作对比。通过对比,两者数据完全相同,且无线充电测试仪不断更新数据包,证明它正确收到了无线充电发射端发送的数据[17-19]。

3.2 性能测试对比

将该文与使用Cortex M0 解析数据的时间与准确性进行对比。对比参数如表1 所示。

表1 性能测试对比

为了突出文中设计的实用性,编写C 代码用软件模拟实现对数据的解析,并在Cortex M0 上测试。结果表明,在50 MHz 时钟下,该设计的执行时间远远小于纯软件的方式,且准确性有所提升,可提升无线充电发射端解析数据的效率。

4 结束语

该文面向Qi 兼容的无线充电发射端,设计并实现了协议控制器。通过研究无线充电发射端与接收端的数据通信格式,完成了控制器接收模块、发射模块等设计,实现了数据的实时监控。针对解调后的波形和协议格式有偏差的问题,接收模块中数据的解码采用边沿检测的方法,提升了数据解码的准确性,减少了丢包率。同时在设计中增加了串行接口,可以自定义每个数据包传输的间隔时间和数据包中传输的内容,使该控制器具有较强的灵活性和适应性。后续将继续研究,为挂载在开源处理器RISC-V上作准备,并搭建外围解调电路和驱动电路等,实现完整的无线充电发射端方案。

猜你喜欢
接收端解码校验
《解码万吨站》
使用Excel朗读功能校验工作表中的数据
基于扰动观察法的光通信接收端优化策略
基于多接收线圈的无线电能传输系统优化研究
解码eUCP2.0
手机无线充电收发设计
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
智能电能表的现场快速校验方法探讨
电子式互感器校验方式研究