黎 堅
(深圳軟通動力信息技術(shù)有限公司,廣東深圳 518000)
隨著當(dāng)代科技的發(fā)展,USB(universal serial Bus)接口是當(dāng)下消費類電子設(shè)備使用最多的接口。隨著USB接口標(biāo)準(zhǔn)的發(fā)展,USB接口已經(jīng)能夠進入3.1標(biāo)準(zhǔn)的時代。為了適應(yīng)新的標(biāo)準(zhǔn),USB Type-C接口應(yīng)運而生。Type-C接口相比傳統(tǒng)的USB Type-A接口、USB Type-B接口,其有著巨大的優(yōu)勢。Type-C接口具有尺寸更小,支持正反插,供電能力更強,傳輸速度更快的優(yōu)點。
本文專門針對USBType-C接口電源傳輸控制,提出了一種低成本、可靠性高、實時性強的單芯片PD輸電控制器方案。STM32F103芯片是系統(tǒng)的控制核心,ADS1256電壓采樣模塊,STUSB4500獨立式USB PD(Power Delivery)控制器模塊,最終由STM32模塊處理采集后的A/D數(shù)據(jù)和控制PD控制器的工作模式。此方案既可以通過STUSB4500 PD控制器將普通設(shè)備升級到USB-C供電,讓設(shè)備不需要使用單獨專用的充電器與電源,也可以用來對USBType-C接口設(shè)備的電源實時監(jiān)控(用于顯示負(fù)載電源接入類型與接口正反插狀態(tài)指示,以及配置源端電源輸出種類)。
如圖1所示,系統(tǒng)采用意法半導(dǎo)體(ST)公司的微控制器STM32F103,USB Type-C接口電源電壓信號監(jiān)控模塊ADS1256, STUSB4500 PD(Power Delivery)控制器和LabVIEW軟件相結(jié)合的USB-C輸電控制器方案。
該系統(tǒng)通過USB2.0接口傳輸下位機采集來的Type-C接口的電壓,并將信息傳輸至上位機。上位機則利用LabVIEW進行GUI界面的軟件開發(fā),負(fù)責(zé)發(fā)送用戶指令以及對數(shù)據(jù)進行處理、顯示與存儲。
系統(tǒng)采用ST公司STM32作為控制核心,STM32F103C8T6采用的是Cortex-M3內(nèi)核ARM V7構(gòu)架,不僅支持Thumb-2指令集,而且擁有許多新的特性。支持72 MHz的工作頻率,擁有64 k~128 k字節(jié)FALSH的代碼存儲空間。最大可以擴展至80PIN GPIO管腳,并支持SWD串行調(diào)試和并行JTAG兩種調(diào)試和記載模式,STM32103通過外部SPI接口訪問和讀取ADS1256芯片采集的電壓數(shù)據(jù)。圖2為STM32 MCU管腳分布圖。
圖2 STM32 MCU管腳分布圖
因為需要監(jiān)控Type-C接口的四路VBUS電源信號變化情況,可以通過A/D芯片分別進行實時監(jiān)控。系統(tǒng)選用ADS1256[1],圖3為ADS1256 A/D轉(zhuǎn)換原理圖。ADS1256是TI公司推出的8通道,24位高的精度高性能A/D采樣器。數(shù)據(jù)采樣速率高達(dá)30 kS/s。內(nèi)置可編程放大器PGA,當(dāng)PGA=1時,可以提供高達(dá)25.3位的有效分辨率;當(dāng)PPGA=64時,可以提供22.5位的有效分辨率。該芯片的模擬電壓供電輸入為5 V,數(shù)字電壓供電時輸入為1.8~3.6 V。芯片在低功耗模式下是功率為38 MW,備用模式下的功耗為0.4 MW。ADS1256[2]和STM32之間通過四線制SPI總線(時鐘信號線SCLK、數(shù)據(jù)輸入線DIN、數(shù)據(jù)輸出線DOUT和偏片選線CS)進行通信,用戶可以根據(jù)實際需要選擇差分輸入測量方式或者是單極測量方式。系統(tǒng)為了希望得到更精準(zhǔn)的測量結(jié)果,將ADS1256的輸入配置成差分輸入形式。
圖3 ADS1256 A/D轉(zhuǎn)換原理圖
STUSB4500是一款通過相關(guān)行業(yè)認(rèn)證的獨立式USBPD控制器,是專為使用USB-C線纜供電的受電端而設(shè)計的獨立式(Standlone)USB PD控制器。用戶可以使用芯片默認(rèn)的內(nèi)部NVM配置,也可以按照自己的應(yīng)用方案去定義STUSB4500D的設(shè)置。圖4為STUSB4500內(nèi)部結(jié)構(gòu)框圖。圖5為STUSB4500芯片封裝圖。
圖4 STUSB4500內(nèi)部結(jié)構(gòu)框圖
圖5 STUSB4500芯片封裝圖
根據(jù)存放在內(nèi)部非易失性存儲器(NVM)內(nèi)的默認(rèn)電源配置文件(PDO)包含了3種不同的VBUS電壓和電流組合。在獨立運行模式下,STUSB4500控制器會執(zhí)行意法半導(dǎo)體自由算法,與供電設(shè)備協(xié)商輸電協(xié)議,無需額外的軟硬件支持。當(dāng)然,也可以通過上位機下發(fā)指令給下位的STM32處理器進行選擇動態(tài)修改STUSB4500的電源配置文件,強制發(fā)起另一次輸電協(xié)商對話??梢灾С侄喾NPDOs模式,從5 V/0.5 A至最高20 V/5.0 A供電的多種組合配置方式。
如圖6所示,單板按功能主要劃分為兩個部分,第一部分是Type-C接口VBUS電壓數(shù)據(jù)采集電路,STM32主控制器通過SPI接口控制ADS1256去實時采集對應(yīng)的電壓信號。第二部分是PD控制器配置不同PDOs,將協(xié)商后的VBUS通過PMOS管輸出至負(fù)載設(shè)備[3]。主要由STM32[4]通過I2C接口對STUSB4500進行用戶自定義PDOs的配置以適配不同負(fù)載對電壓的要求。
圖6 單板硬件示意框圖
如圖7所示,先拉低片選信AD-CS選通ADS1256,再通過AD-RST的一個低電平復(fù)位AD轉(zhuǎn)換器,完成復(fù)位后初始化轉(zhuǎn)換器相關(guān)寄存器,并對AD自校準(zhǔn)。啟動AD轉(zhuǎn)換后,通過DRDY信號判斷一次AD轉(zhuǎn)換是否結(jié)束。當(dāng)DRDY為高電平時等待;當(dāng)DRDY為低電平時讀取轉(zhuǎn)換結(jié)果并完成片內(nèi)數(shù)字濾波,最后將結(jié)果通過SPI總線輸入至單片機。
圖7 ADS1256程序流程圖
圖8 STUSB4500程序框圖
等待用戶從上位機輸入對應(yīng)的命令,進入手動負(fù)載設(shè)置模式或者進入自動適配設(shè)模式。手動模式都是固定的PDO配置,比如5 V-1.75 A、15 V-1.5 A、20 V-1 A。自動配置模式既可以使用STUSB4500內(nèi)部默認(rèn)非易失存儲器性NVM協(xié)商到協(xié)商輸電電壓,也可由用戶加載配置文件修改協(xié)商輸電電壓。圖8為STUSB4500程序框圖。
該系統(tǒng)可以根據(jù)不同的終端設(shè)備要求在用戶設(shè)置的PDO下配置對應(yīng)的充電電壓。同時VBUS電壓也被實時監(jiān)控,時間戳列表則用來記錄對應(yīng)USB-CVbus歷史數(shù)據(jù)。用戶可以導(dǎo)出數(shù)據(jù),并將自動輪詢的電壓數(shù)值傳輸至Word、Excel等軟件。
系統(tǒng)上位機采用LabVIEW[5]作為開發(fā)軟件,同C#、VB、VCC++相比,LabVIEW界面不靈活、擴展性好、學(xué)習(xí)難度低。LabVIEW提供多種與傳統(tǒng)儀器相類似的控件,可以通過用戶自定義GUI界面。
圖9為實時的電壓USB Type-CVBUS監(jiān)控面板的設(shè)計,用戶可以通過ADS1256芯片采集[6]查看Type-C接口在加入終端設(shè)備情況下的電壓變化情況。對應(yīng)的后臺程序框圖設(shè)計如圖10所示,主要由數(shù)據(jù)采集處理和顯示模塊組成。
圖9 VBUS電壓監(jiān)控前面板界面設(shè)計
圖10 VBUS電壓監(jiān)控程序設(shè)計框圖
終端設(shè)備負(fù)載能力配置面板設(shè)計如圖11所示。用戶可以采用手動模式和自動適配模式來協(xié)商供電端Type-C設(shè)備的輸電電壓,面板時間戳表格存儲每次配置PDO結(jié)果,方便用戶后續(xù)查詢和分析。
圖11 設(shè)備負(fù)載能力配置面板設(shè)計
其中一部分關(guān)于自動模式和手動配置模式對應(yīng)程序框圖設(shè)計如圖12所示。
圖12 手動和自動配置程序框圖
本文采用STM32單片機作為主控制器,STUSB4500 PD控制器將實現(xiàn)USBType-C端口負(fù)載能力協(xié)商的功能,并通過LabVIEW上位機界面實時顯示數(shù)據(jù)和傳輸用戶指令。經(jīng)過實際論證,該輸電控制器方案具有操作簡單、穩(wěn)定性高、數(shù)據(jù)采集實時性強的優(yōu)點??傊疚奶峁┝艘环N低成本、高可靠性的USBType-C接口輸電控制器思路和方案,使得許多諸如15~100W的便攜設(shè)備可以用一個標(biāo)準(zhǔn)的USBType-C接口取代專用充電器。