基于FPGA的USB PD控制器的设计与实现∗
2020-07-13牛雨萌焦继业
牛雨萌 焦继业 李 晨
(西安邮电大学电子工程学院 西安 710121)
1 引言
目前市场上新发布的主流手机机型,已全面开始使用 USB Type-C[1]接口,且飞利浦、乐视等厂商已经推出USB Type-C接口的数字耳机,USB Type-C在消费类电子市场中得到了广泛应用[2]。相比于传统USB接口[3],最大的不同在于USB Type-C接口中新定义了一条CC线,USB PD[4]协议就是基于USB Type-C接口中的CC线实现的,它是一种主从单线通讯协议,不仅是用于实现快速充电的协议,实际上,USB PD是USB Type-C的灵魂所在。它与USB Type-C接口的结合可支持高达20V/5A的标准电能传输,利用协议中的VDM[5]消息建立 Type-C 替代模式的连接,可实现 DisplayPort[6~7]、HDMI[8]等高速数据传输,具有良好的应用前景[9]。
本文设计并实现了一种USB PD控制器,完成了PD数据包的正确发送、接收及校验,并利用FP⁃GA进行验证[10]。FPGA(Field-Programmable Gate Array),即现场可编程门阵列,具有丰富的可编程逻辑单元、嵌入式块RAM、可编程输入输出单元等硬件资源,可以在其内部灵活实现各种数字电路设计。因此,采用FPGA技术进行验证,可以快速修改代码中的错误,为后续的IC设计提供正确保障。
2 PD控制器总体方案
USB PD协议采用BMC编码,标准数据包格式如图1。每个包的起始和结束分别以固定的64bit0/1交替的序列和01101作为标志;SOP*定义了通信类型;Message Header定义了数据对象的个数、Mes⁃sage ID、电力角色、数据角色、版本信息、消息类型等信息;Data Object是0~7个32bit数据对象,若该部分不存在则此条消息为控制消息,CRC为校验码,用于检测包内容在传输过程中是否出错。

图1 PD控制器总体框图
本文采用自顶向下的设计方法,先根据功能要求设计总体方案,再针对核心模块逐步细化[11]。……
