基于STM32和LabVIEW的USBType-C接口输电控制器方案设计

2020-05-30 01:02
机电工程技术 2020年4期
关键词:程序框图协商电源

黎 坚

(深圳软通动力信息技术有限公司,广东深圳 518000)

0 引言

随着当代科技的发展,USB(universal serial Bus)接口是当下消费类电子设备使用最多的接口。随着USB接口标准的发展,USB接口已经能够进入3.1标准的时代。为了适应新的标准,USB Type-C接口应运而生。Type-C接口相比传统的USB Type-A接口、USB Type-B接口,其有着巨大的优势。Type-C接口具有尺寸更小,支持正反插,供电能力更强,传输速度更快的优点。

本文专门针对USBType-C接口电源传输控制,提出了一种低成本、可靠性高、实时性强的单芯片PD输电控制器方案。STM32F103芯片是系统的控制核心,ADS1256电压采样模块,STUSB4500独立式USB PD(Power Delivery)控制器模块,最终由STM32模块处理采集后的A/D数据和控制PD控制器的工作模式。此方案既可以通过STUSB4500 PD控制器将普通设备升级到USB-C供电,让设备不需要使用单独专用的充电器与电源,也可以用来对USBType-C接口设备的电源实时监控(用于显示负载电源接入类型与接口正反插状态指示,以及配置源端电源输出种类)。

1 系统方案

如图1所示,系统采用意法半导体(ST)公司的微控制器STM32F103,USB Type-C接口电源电压信号监控模块ADS1256, STUSB4500 PD(Power Delivery)控制器和LabVIEW软件相结合的USB-C输电控制器方案。

该系统通过USB2.0接口传输下位机采集来的Type-C接口的电压,并将信息传输至上位机。上位机则利用LabVIEW进行GUI界面的软件开发,负责发送用户指令以及对数据进行处理、显示与存储。

2 系统硬件

2.1 MCU控制器

系统采用ST公司STM32作为控制核心,STM32F103C8T6采用的是Cortex-M3内核ARM V7构架,不仅支持Thumb-2指令集,而且拥有许多新的特性。支持72 MHz的工作频率,拥有64 k~128 k字节FALSH的代码存储空间。最大可以扩展至80PIN GPIO管脚,并支持SWD串行调试和并行JTAG两种调试和记载模式,STM32103通过外部SPI接口访问和读取ADS1256芯片采集的电压数据。图2为STM32 MCU管脚分布图。

图2 STM32 MCU管脚分布图

2.2 电源AD采样模块

因为需要监控Type-C接口的四路VBUS电源信号变化情况,可以通过A/D芯片分别进行实时监控。系统选用ADS1256[1],图3为ADS1256 A/D转换原理图。ADS1256是TI公司推出的8通道,24位高的精度高性能A/D采样器。数据采样速率高达30 kS/s。内置可编程放大器PGA,当PGA=1时,可以提供高达25.3位的有效分辨率;当PPGA=64时,可以提供22.5位的有效分辨率。该芯片的模拟电压供电输入为5 V,数字电压供电时输入为1.8~3.6 V。芯片在低功耗模式下是功率为38 MW,备用模式下的功耗为0.4 MW。ADS1256[2]和STM32之间通过四线制SPI总线(时钟信号线SCLK、数据输入线DIN、数据输出线DOUT和偏片选线CS)进行通信,用户可以根据实际需要选择差分输入测量方式或者是单极测量方式。系统为了希望得到更精准的测量结果,将ADS1256的输入配置成差分输入形式。

图3 ADS1256 A/D转换原理图

2.3 USB Type-C PD控制器

STUSB4500是一款通过相关行业认证的独立式USBPD控制器,是专为使用USB-C线缆供电的受电端而设计的独立式(Standlone)USB PD控制器。用户可以使用芯片默认的内部NVM配置,也可以按照自己的应用方案去定义STUSB4500D的设置。图4为STUSB4500内部结构框图。图5为STUSB4500芯片封装图。

图4 STUSB4500内部结构框图

图5 STUSB4500芯片封装图

根据存放在内部非易失性存储器(NVM)内的默认电源配置文件(PDO)包含了3种不同的VBUS电压和电流组合。在独立运行模式下,STUSB4500控制器会执行意法半导体自由算法,与供电设备协商输电协议,无需额外的软硬件支持。当然,也可以通过上位机下发指令给下位的STM32处理器进行选择动态修改STUSB4500的电源配置文件,强制发起另一次输电协商对话。可以支持多种PDOs模式,从5 V/0.5 A至最高20 V/5.0 A供电的多种组合配置方式。

2.4 单板硬件设计框图

如图6所示,单板按功能主要划分为两个部分,第一部分是Type-C接口VBUS电压数据采集电路,STM32主控制器通过SPI接口控制ADS1256去实时采集对应的电压信号。第二部分是PD控制器配置不同PDOs,将协商后的VBUS通过PMOS管输出至负载设备[3]。主要由STM32[4]通过I2C接口对STUSB4500进行用户自定义PDOs的配置以适配不同负载对电压的要求。

图6 单板硬件示意框图

3 系统软件

3.1 MCU对A/D模块配置程序

如图7所示,先拉低片选信AD-CS选通ADS1256,再通过AD-RST的一个低电平复位AD转换器,完成复位后初始化转换器相关寄存器,并对AD自校准。启动AD转换后,通过DRDY信号判断一次AD转换是否结束。当DRDY为高电平时等待;当DRDY为低电平时读取转换结果并完成片内数字滤波,最后将结果通过SPI总线输入至单片机。

图7 ADS1256程序流程图

图8 STUSB4500程序框图

3.2 MCU对STUSB4500模块配置程序

等待用户从上位机输入对应的命令,进入手动负载设置模式或者进入自动适配设模式。手动模式都是固定的PDO配置,比如5 V-1.75 A、15 V-1.5 A、20 V-1 A。自动配置模式既可以使用STUSB4500内部默认非易失存储器性NVM协商到协商输电电压,也可由用户加载配置文件修改协商输电电压。图8为STUSB4500程序框图。

3.3 上位机GUI界面程序

该系统可以根据不同的终端设备要求在用户设置的PDO下配置对应的充电电压。同时VBUS电压也被实时监控,时间戳列表则用来记录对应USB-CVbus历史数据。用户可以导出数据,并将自动轮询的电压数值传输至Word、Excel等软件。

系统上位机采用LabVIEW[5]作为开发软件,同C#、VB、VCC++相比,LabVIEW界面不灵活、扩展性好、学习难度低。LabVIEW提供多种与传统仪器相类似的控件,可以通过用户自定义GUI界面。

图9为实时的电压USB Type-CVBUS监控面板的设计,用户可以通过ADS1256芯片采集[6]查看Type-C接口在加入终端设备情况下的电压变化情况。对应的后台程序框图设计如图10所示,主要由数据采集处理和显示模块组成。

图9 VBUS电压监控前面板界面设计

图10 VBUS电压监控程序设计框图

终端设备负载能力配置面板设计如图11所示。用户可以采用手动模式和自动适配模式来协商供电端Type-C设备的输电电压,面板时间戳表格存储每次配置PDO结果,方便用户后续查询和分析。

图11 设备负载能力配置面板设计

其中一部分关于自动模式和手动配置模式对应程序框图设计如图12所示。

图12 手动和自动配置程序框图

4 结束语

本文采用STM32单片机作为主控制器,STUSB4500 PD控制器将实现USBType-C端口负载能力协商的功能,并通过LabVIEW上位机界面实时显示数据和传输用户指令。经过实际论证,该输电控制器方案具有操作简单、稳定性高、数据采集实时性强的优点。总之,本文提供了一种低成本、高可靠性的USBType-C接口输电控制器思路和方案,使得许多诸如15~100W的便携设备可以用一个标准的USBType-C接口取代专用充电器。

猜你喜欢
程序框图协商电源
“顺势而下”破解程序框图
Cool Invention炫酷发明
算法与程序框图常考类型
程序框图问题的精彩交汇
论协商实效与协商伦理、协商能力
Rheological Properties and Microstructure of Printed Circuit Boards Modifed Asphalt
以政协参与立法深化协商民主
程序框图题盘点
哪一款移动电源充电更多?更快?
阳光电源