劉有耀 崔盼 張燁晨
摘要:為了提高充電速度,解決電子產(chǎn)品充電協(xié)議不兼容的問題,提出一款基于USB Type-C接口的多協(xié)議智能快充電路,可同時兼容PD和QC 2.0協(xié)議,最大耐壓值為40 V。使用軟硬件結(jié)合的方式,通過Verilog HDL硬件描述語言完成物理層的設(shè)計;用軟件語言完成協(xié)議層的設(shè)計,從而用搭載USB Type-C接口的適配器可為使用多種不同協(xié)議的終端設(shè)備快充。通過仿真測試,結(jié)果表明多協(xié)議智能快充電路可實現(xiàn)不同快充協(xié)議間的切換,且能達到對應(yīng)協(xié)議支持的最大充電功率,從源頭上降低了各種充電線纜的產(chǎn)生。
關(guān)鍵詞:智能快充;多協(xié)議;USB Type-C接口;電路設(shè)計;仿真測試;FPGA驗證
中圖分類號:TN402-34
文獻標識碼:A
文章編號:1004-373X( 2019) 24-0025 -05
0 引言
USB-IF( USB Implementers Forum)組織提出的USBType-C接口[1]已成為主流接口,其具有正反可插、供電性強和兼容性佳等優(yōu)點。目前,華為的P9、MATE9,小米4,樂視等很多手機接口都使用Type-C接口,但搭載Type-C接口的手機只有使用官方標配的適配器才可實現(xiàn)快充,比如使用華為的P9適配器給同樣具有Type-C接口的小米4手機充電時,只能實現(xiàn)普通充電,并不能達到小米4手機所要求的快充。這是因為華為適配器和小米4手機分別采用不同的快充協(xié)議,再加上市面上的快充協(xié)議更多,為了實現(xiàn)手機快充,適配器目前還不能達到通用的地步。直至USB-IF組織發(fā)布了USB PD 3.0協(xié)議[2],該協(xié)議支持PPS( Programmable Power Supply)充電,且與USB Type-C接口的結(jié)合可支持高達20 V/5 A的標準電力傳輸[3],這樣便把市面上不同的快充標準統(tǒng)一在USB PD 3.0的范疇,即只要符合USB PD 3.0的充電器和終端都可以兼容[4]。因此研究基于USB Type-C接口的多協(xié)議智能快充電路不僅可以統(tǒng)一快充標準而且還有巨大的市場前景[5]。
本文設(shè)計的多協(xié)議智能快充電路基于Type-C接口實現(xiàn),其中PD 3.0部分使用Verilog HDL硬件描述語言完成PD控制器的設(shè)計,使用軟件語言完成PD協(xié)議層的設(shè)計,QC 2.0協(xié)議使用軟件實現(xiàn),最終通過SOURCE端(供電器如適配器)和采用PD 3.0或QC 2.0的SINK端(消耗端,如手機)進行數(shù)據(jù)交流,從而可為SINK端提供適合快充的電壓和電流。該電路克服了市場上適配器無法通用快充的弊端,且電路成本低,擴展性強。1 PD 3.0快充電路總體結(jié)構(gòu)
本文設(shè)計的多協(xié)議智能快充電路中的PD 3.0部分的結(jié)構(gòu)主要包含三部分,分別為SOURCE端、電纜部分和SINK端,其結(jié)構(gòu)框圖如圖1所示。
設(shè)計重點主要集中在SOURCE端,其端主要包括DC-DC電源模塊、電壓檢測模塊和PD控制器三部分。PD控制器即物理層的設(shè)計先使用Verilog HDL硬件描述語言完成設(shè)計,之后將硬件描述語言對應(yīng)的jic文件下載到Alter Cyclone IV EP4CE6E22C8N FPGA仿真器,再使用軟件開發(fā)協(xié)議層,其中整個數(shù)據(jù)通信流程如圖2所示。
設(shè)備管理器用來獲取能量供給能力、端口額定電流和判斷插入設(shè)備是否為PD設(shè)備,相當于該系統(tǒng)的控制中心[6]。
線纜檢測主要功能是檢測USB Type-C線纜所能傳遞的電壓電流信息。策略引擎提示協(xié)議層生成原始數(shù)據(jù)包,然后發(fā)送給物理層,之后在物理層中添加PRE,SOP*,CRC,EOP,并且進行485B編碼和BMC編碼,再將編碼后的數(shù)據(jù)傳輸?shù)紺C線上[7],以此來進行數(shù)據(jù)的交互實現(xiàn)快充,且策略引擎可直接與設(shè)備管理器進行交流。為了確保執(zhí)行當前的協(xié)議,當設(shè)備管理器發(fā)生更改時,策略引擎也將隨之發(fā)生改變[8]。
總體來說,整個SOURCE端系統(tǒng)可分為硬件設(shè)計和軟件設(shè)計兩部分。
2 硬件電路設(shè)計
系統(tǒng)硬件設(shè)計主要包括PD控制器設(shè)計、插入檢測電路設(shè)計、DC-DC電源模塊設(shè)計和電壓檢測模塊設(shè)計四部分。
2.1 PD控制器的設(shè)計
PD控制器主要包括發(fā)送機設(shè)計和接收機設(shè)計,其主要作用是負責數(shù)據(jù)接收、發(fā)送和協(xié)議處理。
由于本設(shè)計是基于USB Type-C接口的,為了增強抗干擾能力并均衡直流分量,發(fā)送數(shù)據(jù)時,物理層先使用485B編碼對數(shù)據(jù)進行轉(zhuǎn)換,再使用BMC編碼對數(shù)據(jù)流進行二次轉(zhuǎn)換,最終將信號傳輸?shù)紺C線上[9],接收過程和發(fā)送過程相反,具體流程如圖3所示。
2.1.1 發(fā)送機設(shè)計模塊
發(fā)送機的設(shè)計總框圖如圖4所示。在該設(shè)計中,物理層接收來自協(xié)議層的初始數(shù)據(jù)包,為其添加PRE,SOP,EOP等部分,然后將這三個部分通過BMCTH和BMCTL寄存器傳輸?shù)絫x—state狀態(tài)機,將head和data部分傳送給CRC32模塊進行校驗,將校驗后的值通過BMCT4T5[7:0]寄存器傳輸?shù)?85B編碼模塊。通過編碼后,將數(shù)據(jù)包存放在BMCBUF寄存器中,之后再傳輸給狀態(tài)機,在圖4中的兩個狀態(tài)機分別為控制發(fā)送數(shù)據(jù)的tx—state和控制BMC編碼狀態(tài)的mc_state。tx_state的狀態(tài)有6種,分別為TX- IDLE,TX_WAIT,TX_SYNC,TX_DLY,TX_OK,TX_BUF,經(jīng)過條件判斷,最后輸出數(shù)據(jù)存放在TX_BUF中,然后將TX_BUF寄存器中的值按位傳輸?shù)絤c_state狀態(tài)機中進行BMC編碼。mc_state的狀態(tài)有5種,分別為MC_IDLE,MC_00,MC- 10,MC_11,MC_01,由于BMC編碼的規(guī)則為如果數(shù)據(jù)為“0”則保持,如果為“1”則反轉(zhuǎn),那么MC_00和MC_ 11為數(shù)據(jù)不反轉(zhuǎn)的情況,MC_10和MC_01為數(shù)據(jù)反轉(zhuǎn)的情況,通過兩個狀態(tài)機的相互工作,最終輸出編碼后的數(shù)據(jù)為pdtx_data,此時若滿足CCIEN=1或CC2EN=1的條件,那么最終輸出的數(shù)據(jù)為dig2alg_pdtxl_data或者dig2alg_pdtx2_data,這些數(shù)據(jù)將會被將傳輸?shù)紺C信道。
在本設(shè)計中采用MCTRO和MCPRO作為接收和發(fā)送波特率控制,發(fā)送和接收時間分別設(shè)定不同波特率進行數(shù)據(jù)發(fā)送和接收,標準時間設(shè)置為300 kHz。波特率由MCPRO決定,比如FCPU是20 MHz,MCPR0=20 MHz÷300 kHz-1≈66,所以MCPRO填入66,采樣波特率由MCTCON中MSAMPLE[5:0]決定,數(shù)值為20 MHz÷300 kHz÷4≈16。
1) CRC模塊
CRC即循環(huán)冗余校驗碼,其作用是為了防止協(xié)議層生成的數(shù)據(jù)在傳輸過程中受到損壞或者丟失,因此對數(shù)據(jù)包的Message Header和數(shù)據(jù)部分進行了CRC數(shù)據(jù)保護,計算完CRC之后,通過EOP來進行包結(jié)尾標識,如果CRC校驗不對,則整個包將會被丟棄,如果CRC校驗正確,則整個數(shù)據(jù)包將會被傳到協(xié)議層。
2) 485B編碼模塊
為了提高編碼效率,采用485B編碼,485B編碼是用5 bit的二進制碼來代表4 bit二進制碼。此編碼的效率是80%,比Manchester( 50%)碼高。以SOP—CAP包為例,首先使能接收信號和CCI信號,由上可知只對head-er,data和crc32這三部分進行485B編碼。其中,header部分配置為11al,data部分數(shù)據(jù)為00019121( SV3A),經(jīng)過crc32計算后的值為312c3eda,經(jīng)過編碼后的值傳輸?shù)絙mcbuf[7:0]寄存器中。
3) BMC編碼模塊
由于本設(shè)計是使用USB Type-C接口中的CC線來傳遞信息,而在CC信道上傳遞數(shù)據(jù)時,為了確保數(shù)據(jù)DC的平衡,必須要經(jīng)過BMC編碼。此碼是一種單向通信編碼,數(shù)據(jù)1的傳輸需要有一次高低電平的轉(zhuǎn)換,數(shù)據(jù)0的傳輸則是固定的高電平或者低電平。
2.1.2 接收機設(shè)計模塊
接收機的設(shè)計框圖如圖5所示。第一步先進行BMC解碼,其次由于數(shù)據(jù)發(fā)送時是按位發(fā)送的,最低位最先發(fā)送,那么接收時是先接收到最低位,所以需要對解碼后的數(shù)據(jù)進行順序的顛倒,即最低位放到最高位上,經(jīng)過倒序后的數(shù)據(jù)為bmcr5b[4:0]。之后將進入pd_state狀態(tài)機進行數(shù)據(jù)包的拆包,與此同時還會進行SB4B解碼。
1) BMC解碼模塊
由于在CC線上傳輸都要經(jīng)過BMC編碼,因此接收部分需要首先對數(shù)據(jù)進行BMC解碼。來自CC1信道的數(shù)據(jù)為alg2dig_pdrxl_data,來自CC2信道的數(shù)據(jù)為alg2 dig_pdrx2_data,只有在使能信號CCIEN=1或者CC2EN=I的情況下,數(shù)據(jù)才可以正確接收,接收到的可處理的數(shù)據(jù)為bmcr_ccdat,經(jīng)過BMC編碼模塊輸出的數(shù)據(jù)為bmcr_sdat[1:0],其中解碼的波特率與發(fā)送模塊中BMC編碼的波特率一致。
2) pd_state狀態(tài)機模塊
pd_state狀態(tài)機主要是對BMC解碼后的數(shù)據(jù)包進行拆包,將依次解出PRE,SOP,DATA和EOP,按照解包順序,當解完前導碼時會產(chǎn)生一個sync64_flag標志位,解完SOP時會產(chǎn)生三個syncl_flag標志位和一個sync2_flag標志位,依此類推,當產(chǎn)生eop_flag標志位時代表該數(shù)據(jù)包解包完畢。該狀態(tài)機總共有7個狀態(tài),分別為IDLE,WAIT.SFIRST.SYN64, SYNI, DATA和EOP。
3) 584B解碼和CRC校驗?zāi)K
由于在發(fā)送模塊中只對head和data部分進行了485B編碼和CRC校驗,那么在接收數(shù)據(jù)時就只需對這分兩個部進行584B解碼和CRC校驗,因此將數(shù)據(jù)包分為兩部分。PRE,SOP和EOP通過運算模塊輸出,head和data部分進行584B解碼,將解碼后的數(shù)據(jù)發(fā)送給CRC校驗?zāi)K,如果新舊CRC計算值相同,則說明數(shù)據(jù)接收成功,如果CRC計算值不同,說明校驗錯誤,那么整個數(shù)據(jù)包將被丟棄。
2.2 插入檢測電路的設(shè)計
由于USB Type-C接口可正反插,所以需要設(shè)計CCl&CC2插入檢測模塊,使用OPI和OP2,利用DACO設(shè)定檢測電壓,具體做法是CC1和CC2兩端默認上拉電壓都是3.3 V,一旦有外設(shè)接人,那么CC1或CC2的電壓就會被拉低。通過與預(yù)設(shè)的電壓比較器進行比較,如果CCl PLUG被拉低,則可判斷出CC1被接人;同理,如果CC2 PLUG被拉低,則可判斷出CC2被接人。
2.3 DC-DC電源模塊的設(shè)計
USB Type-C接口支持的電壓范圍為0-20 V,其中以50 mV的幅度逐漸遞增,支持的電流范圍為0-5 A,以10 mA的幅度逐漸遞增。本設(shè)計的電源模塊電路圖如圖6所示,具體的調(diào)壓做法是:FPGA通過SPI控制DAC,DAC的輸出通過運放控制恒流源最終控制FB上的電流,抽掉FB上不同的電流則相應(yīng)的電壓Vout就會按照比例增加,從而達到升壓的過程。
2.4 電壓檢測模塊的設(shè)計
在經(jīng)過上述調(diào)節(jié)之后,電壓達到了終端需求的數(shù)值,但是為了確保終端設(shè)備的充電安全,本設(shè)計通過SPI采集ADC128S022的方式采集最終的電壓數(shù)值,最終通過Vbus將電壓輸出到SINK端。
3 軟件設(shè)計
3.1 通信協(xié)議的設(shè)計
系統(tǒng)軟件部分設(shè)計主要包括PD協(xié)議層和QC 2.0協(xié)議的設(shè)計。兩個協(xié)議都對應(yīng)不同的數(shù)據(jù)格式以及編碼原理,其中USB PD數(shù)據(jù)包主要由preamble(數(shù)據(jù)長度為64 bit),SOP(數(shù)據(jù)長度為20 bit),Message Header(數(shù)據(jù)長度為16 bit),data,CRC(數(shù)據(jù)長度為40 bit)和EOP(數(shù)據(jù)長度為5 bit)組成。數(shù)據(jù)類型有兩種分別為控制信息和數(shù)據(jù)信息,當信息為控制信息時,該數(shù)據(jù)包由Message Header和CRC組成;當信息為數(shù)據(jù)信息時,該信息由Message Header和一個或者多個Data Objects組成。其中Data Objects的格式是由Message Header里面的Message Type定義的,其總共有四種消息格式分別為:PDO (Power Data Object), RDO (Request Data Ob-ject), BDO( BIST Data Object), VDO (Vendor DefinedData Object)。供電就是通過包含有電流電壓性能的PDO實現(xiàn)的。
3.2 程序設(shè)計
針對基于PD 3.0協(xié)議的快充來說,硬件部分主要實現(xiàn)485B編碼、BMC編碼和CRC校驗,軟件部分通過數(shù)據(jù)包格式構(gòu)造數(shù)據(jù)包和配置相應(yīng)的寄存器來實現(xiàn)數(shù)據(jù)包的通信。其中,需要構(gòu)造SRC_CAP,GoodCRC,Re-quest, GoodCRC, Accept, GoodCRC, PS_RDY和GoodCRC等8個數(shù)據(jù)包的模塊,通過自定義的PD_C harge函數(shù)調(diào)用各個數(shù)據(jù)包模塊,再使用maln.c調(diào)用PD_Charge函數(shù)來實現(xiàn)最終的PD通信。
4 FPGA驗證
4.1 PD控制器仿真
本部分使用VCS作為仿真工具,Novas公司的Verdi作為Debug工具,對PD控制器進行功能仿真。其中能量協(xié)商過程中SOURCE端到SINK端5個步驟分別為:
1) SOURCE端提供它的能力數(shù)據(jù)信息(SRC_CAP);
2) SINK端收到能力數(shù)據(jù)并且從SOURCE端提供的能力數(shù)據(jù)信息中選出適當?shù)碾娫磁渲脜?shù)并發(fā)出GoodCRC和相應(yīng)的請求(Request);
3) SOURCE端接收請求并且回復GoodCRC和Ac-cept;
4) SOURCE端將總線電壓修改成相應(yīng)的參數(shù)并且向SINK端發(fā)PS_RDY表示功能準備完成;
5) SINK端接收電壓,充電協(xié)商過程完成,開始充電。當SINK端希望總線電壓降低的時候,同樣的通信過程也會發(fā)生。
圖7為數(shù)據(jù)交流仿真圖,圖中的8個數(shù)據(jù)包依次為SRC_CAP, GoodCRC, Request, GoodCRC, Accept, Cood-CRC,PS_RDY和GoodCRC。
由于每個數(shù)據(jù)包具體內(nèi)容繁瑣,信號量大,故在此就不再將各個數(shù)據(jù)包內(nèi)容呈現(xiàn)。
4.2 系統(tǒng)驗證
FPGA驗證平臺如圖8所示,其由Alter Cyclone IVEP4CE6E22C8N FPGA仿真器、USB PD協(xié)議測試儀(POWER-Z)和手機組成。將軟件程序?qū)?yīng)的hex文件下載到仿真器,則仿真器相當于SOURCE端,手機則為SINK端。
通過給iPhone X充電進行驗證,iPhone X內(nèi)部支持USB PD 3.0協(xié)議,但官方配置仍是傳統(tǒng)的5 V/1 A適配器,其快充潛能沒有發(fā)揮出來,通過本設(shè)計可以使得充電電壓電流達到9 V/2 A,實現(xiàn)快充。其中,SOURCE端和SINK端數(shù)據(jù)相互交流,利用PD分析儀將數(shù)據(jù)包解析出來并且用示波器抓取Vbus上電壓變化過程,如圖9所示。
由圖9可以觀測到,SOURCE端(SRCI電源)與SINK端(SNKI終端)的協(xié)商過程以及電源的供電能力。首先SOURCE端發(fā)送5個供電能力包,SINK端正確接收后回復GOODCRC,并且發(fā)送請求數(shù)據(jù)包,此時請求的電壓電流5 V/3 A為系統(tǒng)默認的電壓電流;SOURCE端收到請求數(shù)據(jù)包后回復GOODCRC,并且接收請求,等待大約2s,SINK端開始請求9 V/2 A;SOURCE端收到請求數(shù)據(jù)包后回復GOODCRC包,并且接收請求,將電壓電流調(diào)整到9 V/2 A,到此協(xié)商過程結(jié)束,充電開始。之后采用QC 2.0協(xié)議進行快充時,用示波器抓取的升壓波形如圖10所示。電壓默認初始值為SV,之后通過數(shù)據(jù)協(xié)商電壓上升到9V,最終實現(xiàn)快充。
5 結(jié)語
本文提出一種基于Type-C接口的多協(xié)議快充電路,通過SOURCE端和SINK端數(shù)據(jù)交流實現(xiàn)了快充。最后對整個系統(tǒng)進行了FPGA驗證,結(jié)果滿足設(shè)計要求。在眾多的快充產(chǎn)品中,該設(shè)計使用軟硬件結(jié)合的方式不僅簡化了電路,降低了成本,還實現(xiàn)了多協(xié)議快充,使得搭載USB Type-C接口的適配器可為采用PD 3.0和QC 2.0協(xié)議的手機快充,克服了市場上適配器無法通用快充的弊端,后期還可根據(jù)需要增加多種協(xié)議,具有極大的擴展性,且電路成本低,未來市場廣闊。
參考文獻
[1] USB-IF. USB Type-C cable and connector specification release1.3[M].[S.1]:USB-IF, 2017.
[2] USB Implementers Forum. Universal serial bus power deliveryspecification [S]. Rev 3.0.[S_1.]:USB-IF. 2017.
[3] DUNSTAN Bob. Universal serial bus power delivery specifica-tion [M]. Revision 3.0.[S.1]:USB Implementers Forum, 2017.
[4] Conpaq Hewlett-packard. Universal serial bus specification [M].Revision 2.0.[Sll]:USB Implementers Forum. 2000.
[5]李勇.USB PD在移動設(shè)備快速充電中的新興應(yīng)用[J].電子產(chǎn)品世界,2018.25(9):27-30.
LI Yong. USB PD emerging application in mobile equipmentquick charge [J]. Journal of electronics world, 2018, 25(9):27-30.
[6]李生輝.基于Type-C接口的USB PD協(xié)議的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學,2017.
LI Shenghui. The design and realization of the Type-C interfaceof USB PD agreement [D]. Xi' an: Xidian University, 2017.
[7]俞德軍.基于USB TYPE-C協(xié)議的大功率智能電源技術(shù)研究[D].成都:電子科技大學,2018.
YU Dejun. Based on the USB TYPE-C protocol of high-powerintelligent power technology research [D]. Chengdu: Universityof Electronic Science and Technology of China, 2018.
[8]惠惠,支持快充協(xié)議的充電接口芯片XD952的研究與設(shè)計[D].西安:西安電子科技大學,2017.
HUI Hui. Support quick charge agreement charging the re-search and design of the interface chip XD952 [D]. Xi' an: Xid-ian University.2017.
[9]歐陽聯(lián)鉑.USB Type-C接口顯示器特性及其驗證要點[J]電子技術(shù)與軟件工程.2017( 15):90-91.OUYANG Lianbo. USB Type-C interface display features andprocess validation [J]. Journal of electronic technology and soft-ware engineering, 2017( 15): 90-91.
[10]馬獻武,基于IMS架構(gòu)多協(xié)議信令網(wǎng)關(guān)研究與實現(xiàn)[D],西安:西安電子科技大學,2018.
MA Xianwu. Research and implementation of multi-protocolsignaling gatewav based on IMS architecture [D]. Xi' an: Xidi-an University 2018.
作者簡介:劉有耀(1975-),男,陜西榆林人,教授,研究方向為集成電路設(shè)計。
崔盼(1994-),女,陜西西安人,碩士,研究方向為電路與系統(tǒng)。
張燁晨(1993-),男,陜西渭南人,碩士,研究方向為電路與系統(tǒng)。