張萬(wàn)榮,王飛虎
(北京工業(yè)大學(xué) 信息學(xué)部,北京 100000)
近年來(lái),隨著移動(dòng)設(shè)備快速充電功率的不斷提高,USB 標(biāo)準(zhǔn)化組織(Universal Serial Bus Implementers Forum,USB-IF)制定了基于BMC 編碼的USB 功率傳輸(Universal Serial Bus Power Deliver,USB PD)3.0 協(xié)議,該協(xié)議相比于Qualcomm 公司的快速充電(Quick Charge,QC)協(xié)議、Samsung 公司的自適應(yīng)快速充電(Adaptive Fast Charge,AFC)協(xié)議等快充協(xié)議具有只占用一根通信線,協(xié)議內(nèi)容可拓展性強(qiáng)等優(yōu)點(diǎn),已成為應(yīng)用最廣的快充協(xié)議[1-3]。BMC 解碼模塊是USB PD 3.0 協(xié)議芯片的核心模塊[4-6]。隨著手機(jī)快充功率突破120 W,峰值電流可達(dá)到6.25 A,電流大范圍變化帶來(lái)的地電位漂移現(xiàn)象愈發(fā)嚴(yán)重,地電位漂移導(dǎo)致BMC 信號(hào)在傳輸過程中周期多次連續(xù)變化使得BMC 信號(hào)周期累計(jì)變化范圍可達(dá)3.3 μs 的±30%[7];隨著USB 線中數(shù)據(jù)傳輸速率提高到20 Gb/s 使,USB 線包內(nèi)的電磁環(huán)境更加惡劣,從而使得BMC 信號(hào)在傳輸過程中受到大量高頻噪聲干擾而導(dǎo)致周期單次大幅度突變[8]。為解決上述問題,近年來(lái)人們提出了一些對(duì)BMC 解碼模塊優(yōu)化的方案,文獻(xiàn)[9]提出了一種解碼電路能夠成功解碼周期在3.3 μs±25%范圍內(nèi)變化的BMC信號(hào),但是當(dāng)BMC 信號(hào)周期累計(jì)變化到±30%時(shí)不能成功解碼,而是通過錯(cuò)誤反饋機(jī)制強(qiáng)制USB PD 3.0 協(xié)議芯片回到初始狀態(tài)。
針對(duì)上述文獻(xiàn)的不足,本文在傳統(tǒng)解碼模塊的基礎(chǔ)上,首先,通過調(diào)整傳統(tǒng)解碼系統(tǒng)的結(jié)構(gòu)并加入狀態(tài)機(jī)實(shí)現(xiàn)了對(duì)信號(hào)周期單次變化在±25%以內(nèi)的BMC 信號(hào)成功解碼;另外,通過新增的FIR 濾波器產(chǎn)生隨BMC 信號(hào)周期浮動(dòng)的解碼閾值實(shí)現(xiàn)了對(duì)周期多次連續(xù)變化的BMC 信號(hào)成功解碼。
BMC 解碼規(guī)則如圖1 所示,被解碼信號(hào)在每一比特開始前先進(jìn)行一次翻轉(zhuǎn),如果某一比特的1/2 位置發(fā)生了一次翻轉(zhuǎn),則該比特被解碼成二進(jìn)制數(shù)1,如圖1 中第1 比特和第3 比特所示;如果被解碼信號(hào)某一比特內(nèi)不發(fā)生翻轉(zhuǎn),則該比特被解碼成0,如圖1 中第2 比特和第4 比特所示[10-11]。
圖1 BMC 解碼規(guī)則
傳統(tǒng)的BMC 解碼系統(tǒng)電路結(jié)構(gòu)如圖2 所示,包括濾波模塊、邊沿檢測(cè)模塊、解碼模塊[12]。首先,數(shù)字BMC信號(hào)是由模擬信號(hào)經(jīng)過施密特觸發(fā)器得到的,容易帶有毛刺,濾波模塊可以濾除寬度為200 ns 以下的毛刺;然后,邊沿檢測(cè)模塊輸出的BMC 信號(hào)的上升沿和下降沿作為解碼模塊中計(jì)數(shù)器開始和結(jié)束的條件;最后,解碼模塊通過對(duì)BMC 信號(hào)64 比特前導(dǎo)碼的過采樣求周期的平均值得到解碼閾值,通過對(duì)比解碼閾值和計(jì)數(shù)器計(jì)數(shù)值的大小解碼數(shù)據(jù)包的有效數(shù)據(jù)部分,當(dāng)計(jì)數(shù)器的值小于3/4 解碼閾值時(shí)解碼結(jié)果為1,否則為0。從而實(shí)現(xiàn)了BMC 信號(hào)的解碼。
圖2 傳統(tǒng)BMC 解碼系統(tǒng)電路結(jié)構(gòu)
為了實(shí)現(xiàn)對(duì)信號(hào)周期單次變化在±25%以內(nèi)的BMC信號(hào)成功解碼,本文將計(jì)數(shù)器從解碼模塊中分離出來(lái)并在解碼模塊內(nèi)新增狀態(tài)機(jī)。新型BMC 解碼電路架構(gòu)如圖3 所示,其中優(yōu)化后的解碼模塊電路原理圖如圖4所示,Threshold 值進(jìn)入解碼模塊后先進(jìn)行移位操作得到1/2Threshold 和1/4Threshold,然后將1/2Threshold 和1/4Threshold、Threshold 和1/4Threshold、1/2Threshold 和Threshold 分別進(jìn)行加法運(yùn)算得到3/4Threshold、5/4Threshold、3/2Threshold 的值,通過比較器后得到它們與Cnt 值的大小關(guān)系,將比較結(jié)果與Edge 信號(hào)做與運(yùn)算后作為狀態(tài)寄存器的跳轉(zhuǎn)條件,D register1 和D register2 構(gòu)成狀態(tài)機(jī)的2 比特位寬的狀態(tài)寄存器,D register3 為輸出寄存器,當(dāng)狀態(tài)寄存器值為01 且與門And1 產(chǎn)生的結(jié)果為1時(shí)輸出1,當(dāng)狀態(tài)寄存器值10 與門And1 產(chǎn)生的結(jié)果為1 時(shí)輸出0。優(yōu)化后的解碼模塊與其他模塊間的協(xié)作方式如圖5 所示。首先,BMC_Signal 信號(hào)經(jīng)過消抖模塊打拍后得到BMC_Signal_Filtered 信號(hào),當(dāng)解碼模塊檢測(cè)到BMC_Signal_Filtered 信號(hào)后認(rèn)為數(shù)據(jù)開始傳輸,狀態(tài)機(jī)從Idle 狀態(tài)跳到Counter_First 狀態(tài),同時(shí)邊沿檢測(cè)模塊會(huì)檢測(cè)到BMC_Signal_Filtered 信號(hào)的出現(xiàn),從而激發(fā)計(jì)數(shù)器開始工作。然后,當(dāng)BMC_Signal 信號(hào)發(fā)生跳變時(shí)會(huì)再次被邊沿檢測(cè)模塊捕捉到并使得邊沿檢測(cè)模塊產(chǎn)生脈沖信號(hào)Edge,當(dāng)解碼模塊在Counter_First 狀態(tài)檢測(cè)到Edge信號(hào)時(shí)會(huì)比較計(jì)數(shù)器產(chǎn)生的Cnt 和閾值Threshold 的大小,如果Cnt 的值處于3/4Threshold 和5/4Threshold 之間,則將當(dāng)前比特的BMC 信號(hào)解碼為0;如果Cnt 的值處于1/4Threshold 和3/4Threshold 之間,則將當(dāng)前比特的BMC 信號(hào)解碼為1。因此,新型BMC 解碼電路可對(duì)信號(hào)周期發(fā)生1/4 形變的信號(hào)解碼。
圖3 新型BMC 解碼系統(tǒng)電路結(jié)構(gòu)
圖4 解碼模塊電路原理圖
圖5 新型BMC 解碼系統(tǒng)協(xié)作方式
為了實(shí)現(xiàn)對(duì)周期多次連續(xù)變化的BMC 信號(hào)成功解碼,本文在新型解碼電路中增加FIR 濾波模塊。新型BMC 解碼電路架構(gòu)如圖3 所示,其中FIR 濾波器電路原理圖如圖6 所示,其為四階FIR 濾波器,本文設(shè)計(jì)的FIR濾波器的高通區(qū)間為250~350 kHz,通過MATLAB 調(diào)用FIR 濾波函數(shù)計(jì)算得到抽頭系數(shù)分別為61、30、16、15。為了減小芯片面積且便于電路實(shí)現(xiàn),本文將抽頭系數(shù)h近似為1/2、1/4、1/8、1/8[13-15],由式(1)可知輸出結(jié)果Threshold 值不再是固定值,而隨相鄰Cnt 值同向變化。由圖3 和圖5 可知,F(xiàn)IR 濾波器的輸入Cnt 值由計(jì)數(shù)器和解碼模塊共同決定,當(dāng)解碼模塊在Counter_First 狀態(tài)或者在Counter_Second 狀態(tài)檢測(cè)到Edge 信號(hào)時(shí)比較對(duì)計(jì)數(shù)器產(chǎn)生的Cnt 和閾值Threshold 的大小,如果Cnt 的值處于3/4Threshold 和5/4Threshold 之間,則將計(jì)數(shù)器的值打入FIR 濾波器。FIR 濾波器每接收到一次計(jì)數(shù)器的傳遞來(lái)的結(jié)果就會(huì)通過FIR 算法更新一次傳送給解碼模塊的Threshold 值,從而完成更新Threshold 的值的正反饋,達(dá)到了連續(xù)多比特位寬均變化時(shí)仍可以成功解碼的目標(biāo)。
圖6 FIR 濾波器電路原理圖
傳統(tǒng)解碼算法能夠允許的BMC 信號(hào)周期變化范圍為25%,由于供電功率增大或減小導(dǎo)致BMC 信號(hào)周期變化超過25%時(shí)會(huì)導(dǎo)致解碼失敗[16]。圖7 為傳統(tǒng)解碼模塊對(duì)周期連續(xù)變化的BMC 信號(hào)進(jìn)行解碼的仿真結(jié)果。BMC_Signal 為待解碼的BMC 輸入信號(hào);Number 表示當(dāng)前輸入的BMC_Signal 信號(hào)的序號(hào);BMC_Signal_Filtered為BMC_Signal 經(jīng)過濾波后得到的信號(hào);Edge 信號(hào)為邊沿檢測(cè)模塊的檢測(cè)結(jié)果;Counter 為計(jì)數(shù)器的值,計(jì)數(shù)器以19.2 MHz 的頻率對(duì) BMC_Signal 信號(hào)進(jìn)行過采樣;Counter_Result 為計(jì)數(shù)器對(duì)前一位BMC_Signal 信號(hào)的采樣結(jié)果,例如,Number 為2 時(shí)Counter_Result 為64 表示計(jì)數(shù)器以19.2 MHz 的頻率需計(jì)數(shù)64 次完成對(duì)Number為1 時(shí)BMC_Signal 的采樣;BMC_Decode_Result 為解碼結(jié)果。由圖7 可知,本文仿真了輸入信號(hào)BMC_Signal 的前10位的周期以6.25%的速度增加,第10 位到13 位周期保持不變,第13 位到第21 位周期以6.25%的速度升高。周期變化幅度小于25%時(shí),BMC_Signal 的前5 位能夠成功解碼,第6 位到第17 位變化幅度超過25% BMC_Decode_Result 一直為0,解碼失敗,第18 位后BMC_Signal 信號(hào)周期重新升到3.33 μs±25%的范圍內(nèi)后,傳統(tǒng)解碼模塊再次正確解碼。由仿真可知,傳統(tǒng)BMC 解碼模塊只可以對(duì)周期在3.33 μs±25%范圍內(nèi)的信號(hào)進(jìn)行解碼。
圖7 傳統(tǒng)解碼模塊仿真結(jié)果
由圖8 可知,本文仿真了輸入信號(hào)BMC_Signal 第4位中的254 ns 寬的毛刺成功被消抖模塊濾除,濾波后的信號(hào)BMC_Signal_Filtered 沒有毛刺;輸入信號(hào)BMC_Signal 前10 位的周期以6.25%的速度增加,第14 位到第18 位的周期以6.25%的速度減小,由于加入了FIR 濾波器使得Threshold 值隨Counter_Result 增大或減小,從而新型BMC解碼電路均能成功解碼。
圖8 新型解碼模塊仿真結(jié)果
本文與文獻(xiàn)[9]的性能比較見表1 所列,本文設(shè)計(jì)的新型BMC 解碼電路可對(duì)任意頻率的BMC 信號(hào)進(jìn)行解碼,文獻(xiàn)[9]僅可以對(duì)周期在300 kHz±25%范圍內(nèi)的信號(hào)進(jìn)行解碼,且在華虹半導(dǎo)體0.18 μm 工藝下面積相比于文獻(xiàn)[9]減少了57.29%,功耗相比于文獻(xiàn)[9]減少了89.10%。
表1 性能比較
為了實(shí)現(xiàn)對(duì)單比特周期突變25%的BMC 信號(hào)解碼,而且能夠?qū)χ芷诙啻芜B續(xù)變化的BMC 信號(hào)成功解碼,本文將計(jì)數(shù)器從解碼模塊中分離出來(lái)并在解碼模塊內(nèi)新增狀態(tài)機(jī),另外在傳統(tǒng)解碼電路中增加了FIR 濾波模塊。狀態(tài)機(jī)的跳轉(zhuǎn)條件為Cnt 值相對(duì)于Threshold 值可變化1/4,實(shí)現(xiàn)了對(duì)單比特周期突變25%的BMC 信號(hào)的解碼;新增的FIR 濾波器使得Threshold 值隨Cnt 值線性變化,實(shí)現(xiàn)了對(duì)周期多次連續(xù)變化的BMC 信號(hào)成功解碼。對(duì)新型BMC 解碼電路的仿真結(jié)果表明,可以對(duì)周期相差25%的相鄰兩位BMC 信號(hào)解碼,可以對(duì)周期以6.25%增加的連續(xù)十位進(jìn)行解碼。