:單片機無線充電系統(tǒng)設(shè)計)
簡介圍繞單片機控制的手機無線充電系統(tǒng)展開的畢業(yè)設(shè)計文檔面向電子信息、自動化及相關(guān)專業(yè)學生與嵌入式初學者可用于課程設(shè)計、畢業(yè)設(shè)計選題參考和無線供電方案入門。壓縮包內(nèi)僅含1個doc文件約1.19MB文件類型為Word文檔主體為完整畢業(yè)設(shè)計論文稿涵蓋中英文摘要、引言、無線電力傳輸原理、系統(tǒng)硬件設(shè)計、原理圖與軟件設(shè)計等章節(jié)并附發(fā)射與接收線圈原理圖、AD程序、紅外發(fā)送程序設(shè)計等附錄便于對照理解電磁感應、電磁耦合共振、逆變電路、整流濾波、電壓檢測及紅外數(shù)據(jù)傳輸?shù)汝P(guān)鍵環(huán)節(jié)。已有105人學習適合需要梳理系統(tǒng)框架、硬件電路與單片機軟件流程的讀者參考也可作為答辯準備和方案查漏補缺的文檔。1. 把手機往板子上一放就開始充電這套單片機無線充電系統(tǒng)里最難的部分不是線圈把手機往板子上一放就開始充電拆開外殼你會發(fā)現(xiàn)里面既沒有變壓器鐵芯也沒有任何機械觸點只有兩片銅箔線圈隔著一層塑料對望。很多人第一次做無線充電方案注意力全放在怎么把能量隔空送過去上線圈匝數(shù)、諧振電容、逆變頻率算了一遍又一遍真正讓樣機跑不起來的往往不是傳能效率而是那條從手機端繞回發(fā)射端的反向信息通道——沒有它發(fā)射端根本不知道對面有沒有手機、電池滿沒滿線圈只能一直盲目振蕩。這套基于單片機、靠電磁感應傳能、用紅外把充電狀態(tài)回傳、再由繼電器決定通斷的無線充電系統(tǒng)值得研究的原因在它把供電這件事從開環(huán)變成了閉環(huán)。今天你手邊的無線充電產(chǎn)品內(nèi)部同樣有這一層控制邏輯只不過紅外換成了負載調(diào)制繼電器換成了 PWM 控制器。理解了這條閉環(huán)怎么搭起來再看任何一套無線充電方案你看到的就不再是兩塊板子加一個線圈而是一個能被拆開、被驗證、也能被踩坑的完整系統(tǒng)。2. 傳能原理電磁感應和磁耦合共振差的不只是一個電容無線充電經(jīng)常被講成兩個線圈靠近就能輸電這句話不算錯但省略了最關(guān)鍵的一層靠近只是讓它能工作諧振才讓它能用。這兩件事在物理上是分開的混在一起講后面所有的電路參數(shù)都會跟著糊涂。2.1 把變壓器剖開近場磁感應到底在傳什么先從最樸素的模型開始。閉合導體回路的磁通量發(fā)生變化時回路里會出現(xiàn)感應電動勢大小正比于磁通對時間的變化率取負ε -dΦ/dt這就是整套系統(tǒng)的物理底座。傳統(tǒng)變壓器把這個過程做到了極致初級次級共用一個高磁導率的閉合鐵芯磁路幾乎不漏耦合系數(shù)可以到 0.95 以上互感大、漏感小所以效率高、溫升低。而無線充電做的事本質(zhì)上就是把這只變壓器從中間剖開——鐵芯拿掉氣隙換成幾毫米的空氣加一層塑料外殼。這一步剖開性質(zhì)就變了??諝獾拇艑手挥需F芯的千分之一量級磁力線大量發(fā)散到周圍空間耦合系數(shù)掉到 0.20.5漏感迅速上升。漏感帶來的直接后果是初級線圈上加了電壓很大一部分電流消耗在建立漏磁場上沒有參與能量傳遞。這個電流就是勵磁電流它不做有用功卻實實在在流過開關(guān)管和線圈電阻變成熱。用一個更工程化的視角描述次級開路時次級感應出的電壓大致是Voc ωMI?其中 M 是互感、ω 是角頻率。也就是說想傳更多功率要么加大互感線圈靠近、加大、加磁片要么提高頻率。前者受限于產(chǎn)品厚度和對位精度后者受限于開關(guān)損耗和器件能力——這套系統(tǒng)最后落在 514kHz就是在這兩股力量之間找的一個平衡點。2.2 諧振補償為什么必須讓 LC 在 514kHz 上共振光有互感還不夠。初級線圈是個大電感直接給它加方波電壓電流會嚴重滯后于電壓功率因數(shù)極低電源輸出的視在功率遠大于實際傳遞的有功功率。解決辦法是在回路里串一個電容讓它在工作頻率上和線圈電感諧振。串聯(lián)諧振時容抗和感抗互相抵消回路阻抗只剩下線圈的直流電阻 R 和負載折算過來的等效電阻。此時回路電流不再受感抗限制理論上等于 U/R。諧振回路的品質(zhì)因數(shù) Q ωL/R 決定了電流被放大的倍數(shù)也決定了回路里流動的無功電流有多大。拿這套系統(tǒng)的參數(shù)粗略估一下電感量 6.7μH 量級、頻率 514kHz感抗 ωL 大約是二十幾歐姆而實測線圈直流電阻是 5.8ΩQ 值在 34 之間。這個 Q 不算高意味著諧振帶來的電壓/電流增益有限但好處是對頻率失諧不敏感——手工繞制的線圈電感量本來就散Q 太高反而容易翻車。次級回路做同樣的補償兩端都諧振就進入了所謂磁耦合共振的范疇。這里有個容易被混淆的點近場磁感應和磁耦合共振并不是兩種完全不同的物理機制后者是前者的一個特例——兩端都是高 Q 諧振體靠近場的倏逝波耦合能量只在同頻物體之間高效交換對頻率失諧極其敏感。工程上的區(qū)別體現(xiàn)在取舍上純感應式耦合帶寬寬、容錯高、距離短共振式距離能拉開一些但頻率一飄、線圈一偏效率斷崖式下跌。手機充電這種對位條件相對可控、距離要求只有幾毫米的場景走感應式加補償電容的路線是更穩(wěn)的選擇。提示補償電容要選 CBB 薄膜電容或高頻特性好的型號普通瓷片電容在幾百 kHz、幾安培的諧振電流下容量漂移明顯溫升上去之后諧振點直接跑掉這是很多樣機剛上電正常、跑兩分鐘效率暴跌的真實原因。2.3 四條技術(shù)路線的分界與取舍把常見的幾種無線電力傳輸方式放在一張表里能更直觀地看出這套系統(tǒng)為什么走感應式路線。方式傳輸介質(zhì)典型距離效率量級對位要求成本電磁感應磁場近場毫米到厘米高高低磁耦合共振磁場近場諧振厘米到分米中高中中電場耦合電場極板間毫米級高、發(fā)熱低極高中微波諧振電磁波遠場米級低低高電場耦合用兩塊金屬極板代替線圈體積小、發(fā)熱低但極板間距必須很窄而且高壓極板的安規(guī)處理麻煩微波方式類似廣播能量四散發(fā)射接收端只能撈到很小一部分對手機充電這種瓦級功率需求來說利用率太低。感應式方案的短板是距離和對位但恰好手機的放置姿勢是被用戶習慣約束住的——只要線圈位置設(shè)計得讓用戶放上去就基本對齊這個短板就被場景消化掉了。3. 發(fā)射鏈路514kHz 全橋逆變與自舉驅(qū)動怎么配合發(fā)射端的任務很單一把直流電變成 514kHz 的交流加到發(fā)射線圈上。但從直流到高頻交流這一步中間要跨過三個坎拓撲選型、驅(qū)動電平、時序配合。任何一個沒處理好MOS 管不是不導通就是直通炸掉。3.1 頻率、功率、拓撲三個參數(shù)是綁死的先看頻率怎么定。諧振頻率公式是f 1 / (2π√(L·C))反解出補償電容C 1 / ((2πf)2·L)可以看到電容值和頻率的平方成反比。假設(shè)目標頻率從 514kHz 降到 100kHz同樣的線圈電感下補償電容要增大二十多倍從幾千皮法變成零點幾微法體積、耐壓、諧振電流承受能力全都跟著變差。這是頻率不能選太低的原因。頻率也不能無限往上堆。開關(guān)損耗和頻率成正比IRF6635 這類 MOSFET 的上升時間約 6ns、下降時間約 14ns、關(guān)斷延遲約 28ns在 514kHz周期約 1.95μs下這些時間占比很小還有余量再往上走驅(qū)動能力和死區(qū)控制就開始吃緊了。功率定在 6W 量級對應 5V/1A 左右的充電規(guī)格開關(guān)管選 IRF6635漏極連續(xù)電流 5.7A、標稱耐壓 35V相對 12V 的母線電壓有足夠裕量。拓撲上半橋只需要兩只管子但它輸出到線圈的電壓幅值只有母線電壓的一半接收端全橋整流后再掉兩個二極管壓降剩下的電壓不足以直接給電池充電必須再加一級升壓——這會把設(shè)計復雜度推高一個臺階。所以這里選全橋四只管子分成兩組對角導通負載兩端得到的電壓幅值等于母線電壓一輪下來就能滿足后級需求。全橋的工作過程可以這么記Q1 和 Q4 同時導通時電流從母線正極經(jīng) Q1、線圈、Q4 回到負極Q1/Q4 關(guān)斷、Q2/Q3 導通時電流反向。兩組交替線圈兩端就得到一個正負對稱的方波。關(guān)鍵在于同時兩個字——同一橋臂的上下管絕對不能同時導通那是直接把母線短路。3.2 自舉電容高端 MOS 的浮地電源從哪來全橋里最麻煩的不是低邊管是高邊管。低邊管的源極接地柵極驅(qū)動電壓相對地抬到 1015V 就能導通高邊管的源極接在線圈一端隨著開關(guān)動作在 0V 和母線電壓之間來回跳它的柵極必須相對這個跳動的源極高出 10V 以上才能導通。也就是說高邊驅(qū)動需要一個騎在開關(guān)節(jié)點上的浮動電源。IR2110 解決這個問題的辦法是自舉。芯片內(nèi)部有一組浮動電源引腳 VB 和 VS外部在 VB 和 VS 之間接一個自舉電容 Cboot再從電源 VCC 經(jīng)一個快恢復二極管接到 VB。工作過程分兩個階段第一低邊管導通時VS 被拉到地VCC 通過自舉二極管給 Cboot 充電電容兩端建立起接近 VCC 的電壓。第二低邊管關(guān)斷、高邊管準備導通時VS 被抬到母線電壓由于電容兩端電壓不能突變VB 也跟著被抬到母線電壓之上此時 Cboot 就充當了高邊驅(qū)動的浮動電源。自舉二極管在這一刻反偏防止高壓倒灌回 VCC。這套機制有一個硬約束高邊管不能長時間保持 100% 占空比。因為一旦高邊一直導通低邊就永不導通自舉電容沒有充電窗口電容上的電荷被高邊柵極一點點消耗掉VB 電壓慢慢跌落高邊管最終會退化成半導通狀態(tài)管耗急劇上升。常見的做法是把最大占空比限制在 90% 出頭留出足夠的充電時間自舉電容的容量按高邊管柵極電荷 Qg 估算一般取Cboot ≥ 2·Qg / (VCC - Vf - Vls)工程上 0.11μF 之間比較常見太小充不滿太大則充電時間長、低邊導通損耗增加。注意自舉二極管必須用快恢復型普通整流二極管的反向恢復時間在幾百納秒量級在 514kHz 下還沒等完全關(guān)斷高邊的反向電壓就追上來了會出現(xiàn)從 VB 到 VCC 的瞬間倒灌電流表現(xiàn)為芯片發(fā)熱、高邊波形抖動。3.3 互補信號與死區(qū)4069 反相器撐起的時序驅(qū)動信號的來源是一條很樸素的鏈路溫補晶振產(chǎn)生 514kHz 的穩(wěn)定方波峰值只有 5V經(jīng)一級放大后送進驅(qū)動芯片。這里有個細節(jié)值得停下來看晶振出來的方波要驅(qū)動全橋的兩組橋臂需要一正一反兩路信號互斥、不能重疊。做法是把放大后的信號一路直接送到第一片 IR2110 的邏輯輸入另一路經(jīng)過 CD4069 反相器取反后送到第二片。反相器在這里不只是取反它順帶提供了死區(qū)。CD4069 的傳輸延遲在幾十納秒量級信號經(jīng)過它之后上升沿和下降沿都會比原信號晚一點這個延遲恰好讓兩組驅(qū)動信號在切換瞬間出現(xiàn)一小段全關(guān)斷的窗口。IR2110 本身的開通延遲約 120ns、關(guān)斷延遲約 94ns關(guān)斷比開通快方向是對的但余量不算寬裕。在 514kHz 下半周期約 973ns幾十納秒的死區(qū)占比約 5%屬于能用但需要驗證的范圍——實際調(diào)試時應該用示波器雙通道同時看上下管的柵極波形確認交疊區(qū)不存在。我還想指出這條鏈路里一個容易被忽略的問題。前端放大環(huán)節(jié)如果用的是通用運放壓擺率往往跟不上。514kHz 方波的半周期不到 1μs5V 擺幅要求壓擺率至少在 5V/μs 以上而很多通用運放的壓擺率只有 0.30.6V/μs差了一個數(shù)量級。結(jié)果就是本該是方波的信號被磨成了三角波邊沿變得很緩送到驅(qū)動芯片后MOS 管在米勒平臺區(qū)停留時間變長開關(guān)損耗顯著上升。常見的實現(xiàn)思路是改用比較器開環(huán)放大比較器的翻轉(zhuǎn)速度遠快于運放代價是輸出電平需要加上拉電阻匹配。這一處的器件選擇直接決定了整機的溫升。3.4 補償電容與線圈的聯(lián)合求解發(fā)射端的補償電容和線圈是一對必須聯(lián)合求解的參數(shù)不能分開定。步驟是這樣的先根據(jù)機械尺寸定下線圈測出電感量再根據(jù)目標頻率反算電容最后校核諧振電流和電容耐壓。這套系統(tǒng)的線圈參數(shù)是內(nèi)徑 50mm、外徑 100mm、18 匝單面板 1 盎司覆銅、線寬 20mil發(fā)射接收兩個線圈間距 5mm。實測電感量在 6.7μH 量級原始文檔里單位標注成 μF從物理量綱和后面的諧振計算看應當是 μH 級這個單位問題我在第 6 章會專門講。把頻率 514kHz 和電感量代入公式算出補償電容在十幾納法量級原始設(shè)計取的是 4700pF實測取值和公式計算之間存在偏差原因通常是電感測量時的引線電感、線圈分布電容以及測量頻率和實際工作頻率不一致。諧振狀態(tài)下流過電容的電流不是負載電流而是被 Q 值放大過的諧振電流。Q 取 34線圈里跑 700mA電容上承受的電流就可能到 2A 以上峰值電壓也會被抬升。所以補償電容的選型要看三個參數(shù)容量精度、額定電流、耐壓缺一不可。電解電容在這里完全不能用極性接反或者高頻下等效串聯(lián)電阻發(fā)熱都會直接炸。4. 接收鏈路從饅頭波到 4.2V 的每一步損耗接收端要把線圈上感應出來的高頻交流一步步變成能灌進鋰電池的穩(wěn)定直流。這條鏈路上每一級都在吃掉效率而手機端對體積的要求又不允許你堆料。理解每一級的取舍比記住電路圖更有用。4.1 為什么整流管必須是肖特基線圈感應出來的交流頻率是 514kHz電壓不高可能只有幾伏到十幾伏。這個條件下整流器件的選擇非常有限。普通硅二極管的反向恢復時間在微秒量級514kHz 的半周期不到 1μs意味著二極管還沒從導通狀態(tài)完全恢復反向電壓就加上了形成瞬間的直通電流損耗急劇上升器件發(fā)熱。肖特基二極管是多數(shù)載流子導器件幾乎沒有反向恢復過程開關(guān)速度快正向壓降也低——SS14 這類管子正向壓降在 0.5V 左右而普通硅管在 0.71V。在輸出電壓只有幾伏的場景里這 0.20.5V 的差距就是幾個百分點的效率。整流拓撲選全橋而不是半波。半波整流只利用半個周期輸出紋波大、濾波困難而且能量利用率只有一半全橋雖然同一時刻有兩只二極管串聯(lián)導通壓降翻倍到 1V 左右但兩個半周都用上了綜合下來更劃算。這里有個賬要算清楚假設(shè)整流后輸出 6V串聯(lián)兩個二極管吃掉的 1V 就是約 17% 的損耗這個比例不算小。想再往上提效率就得換同步整流——用低導通電阻的 MOS 管代替二極管把壓降降到幾十毫伏代價是增加驅(qū)動電路和時序控制復雜度和成本都上去了。對于一個畢業(yè)設(shè)計級別的樣機肖特基全橋是性價比最高的選擇。4.2 π 型濾波與 LDO給單片機留一路干凈電源全橋整流出來的不是平滑直流而是一串饅頭波——每個半周期一個鼓包脈動很大。這種電源直接給充電電路用紋波會串進電池長期下來影響壽命給單片機用更不行ADC 采樣會被紋波污染判決全亂。濾波用的是 π 型結(jié)構(gòu)輸入端一個電容、中間一個電感或者電阻、輸出端再一個電容形狀像希臘字母 π。前級電容先把脈動電壓削平一部分中間的電感阻擋高頻殘余后級電容再兜底三級下來紋波能壓到可接受范圍。電容選鉭電容而不是普通鋁電解原因是鉭電容的等效串聯(lián)電阻小、自身電感小、貼片封裝體積小在幾百 kHz 的殘余紋波下阻抗更低濾波效果更好而且接收板要貼在手機電池附近空間極其緊張體積是硬指標。單片機和充電管理芯片的供電電壓不同需要再降一級。這里用的是 AMS1117-3.3 這類線性穩(wěn)壓器最大輸出 800mA壓差約 1.1V輸入 5V 輸出 3.3V 完全夠用。選 LDO 而不是開關(guān)電源是因為開關(guān)電源本身就是一個噪聲源在已經(jīng)有 514kHz 強干擾的環(huán)境里再引入一路高頻開關(guān)ADC 采樣精度會更糟。線性穩(wěn)壓器的代價是效率多余的壓差全變成熱但在幾百毫安的小電流下這個熱是可以接受的。4.3 充電管理與電壓檢測AD 采樣點選在哪鋰電池充電不是加個電壓就行標準流程是恒流恒壓兩階段電池電壓低時先恒流充電流控制在電池容量的 0.51C電壓升到 4.2V 后轉(zhuǎn)為恒壓電流逐漸減小當電流降到設(shè)定值的十分之一左右判定為充滿。這套邏輯由專門的充電管理芯片完成單片機不直接參與充電過程只負責看和報。看的方式是 AD 采樣。采樣點有兩個選擇一是直接采電池正極電壓經(jīng)電阻分壓后送進 ADC二是采充電管理芯片的狀態(tài)指示引腳讀出高低電平。前者能拿到連續(xù)變化的電壓值可以判斷出正在充和快充滿了的區(qū)別后者只能拿到離散的狀態(tài)位信息量少但不受分壓精度影響。這套系統(tǒng)選的是前者因為要讓發(fā)射端決定什么時候斷電必須知道電池是不是真的到了 4.2V而不是只看到一個充電完成的標志。分壓電阻的取值有講究。阻值太大會導致 ADC 輸入阻抗不匹配采樣值偏低阻值太小則會在待機時持續(xù)消耗電池電量手機放一晚上電量掉一截用戶會認為這個充電器有問題。常見的做法是取幾十千歐量級并在 ADC 輸入端加一個小電容濾掉采樣瞬間的毛刺。軟件上單次采樣不可信一般是連續(xù)采 8 次或 16 次去掉最大值最小值后取平均這一招在電源紋波大的場合幾乎是標配。4.4 線圈幾何內(nèi)徑、外徑、匝數(shù)、間距的相互牽制線圈是整套系統(tǒng)里唯一沒有現(xiàn)成芯片可買的部件參數(shù)全靠自己定而定下來的每一個尺寸都會反過來影響電路。內(nèi)徑 50mm、外徑 100mm、18 匝這個尺寸對應的是當時主流智能手機的背板面積——線圈要貼在手機背面或者保護殼內(nèi)側(cè)不能超出機身輪廓。內(nèi)徑不能太小因為磁場在中心區(qū)域最均勻內(nèi)徑太小會讓有效耦合面積縮水外徑也不能太大否則邊緣的匝數(shù)貢獻的磁通有限卻實實在在增加了銅損。銅損可以估算。18 匝、平均周長約 236mm總長約 4.24m1 盎司覆銅厚度 35μm線寬 20mil 約 0.5mm截面積約 0.018mm2銅的電阻率取 0.0172 Ω·mm2/m算下來直流電阻約 4Ω。實測 5.8Ω多出來的部分是焊點、引線和接觸電阻。想降低電阻常見做法是雙層并聯(lián)或者在線圈上補錫加厚但這套系統(tǒng)出于成本考慮用的是單面線圈。還有個高頻效應要校核514kHz 下銅的趨膚深度約 91μm而覆銅厚度只有 35μm小于兩倍趨膚深度電流在厚度方向上分布還算均勻單面板不會因為趨膚效應被嚴重懲罰。如果頻率再高一個數(shù)量級就必須考慮用多股絞線或者加厚銅箔了。兩個線圈的間距定在 5mm中間隔著塑料外殼。間距每增加一點耦合系數(shù)就往下掉一截而且是指數(shù)式衰減但間距太小裝配公差和外殼形變會導致兩個線圈摩擦、刮傷絕緣層。5mm 是在裝配可行性和耦合效率之間取的折中。另外一個常被低估的因素是橫向偏移線圈錯開四分之一直徑耦合系數(shù)可能掉一半所以產(chǎn)品結(jié)構(gòu)上通常要做凹槽或者磁吸定位讓用戶放上去就基本對齊。5. 紅外閉環(huán)一塊 8051 怎么知道電充滿了前面所有的硬件本質(zhì)上都在解決怎么把電送過去。而這個系統(tǒng)被稱作智能充電靠的是另一條完全獨立于能量通道的信息通道手機端判斷自己的電池狀態(tài)用紅外把結(jié)論發(fā)回發(fā)射端發(fā)射端據(jù)此決定繼電器的通斷。5.1 狀態(tài)判決AD 值 → 充電階段 → 一個字節(jié)的指令接收端的單片機循環(huán)做三件事采樣電池電壓、判斷當前處于哪個階段、把結(jié)果編碼成指令。階段劃分不需要很細三檔就夠用無負載線圈上沒檢測到有效電壓或者電池未接入、充電中電壓在上升但沒到滿電閾值、已充滿電壓達到 4.2V 并維持一段時間。加一個時間維度的確認很有必要——單次采樣到 4.2V 就斷電報充滿可能是負載突變或者干擾導致的誤判連續(xù)若干次采樣都超過閾值再確認穩(wěn)定性會好很多。指令本身只需要幾個字節(jié)一個引導碼、一個地址碼防止附近其他紅外遙控器誤觸發(fā)、一個數(shù)據(jù)碼、一個數(shù)據(jù)反碼用于校驗。地址碼這一層在實驗室里看著多余放到有電視遙控器、空調(diào)遙控器的真實環(huán)境里就是救命的設(shè)計——沒有地址過濾隔壁遙控器按一下你的充電器就斷電了。5.2 紅外時序38kHz 載波與脈寬編碼的底層紅外接收頭不是一個簡單的光敏二極管它內(nèi)部集成了帶通濾波器和解調(diào)電路只對 38kHz 附近的調(diào)制信號有響應輸出端給出的是已經(jīng)解調(diào)好的基帶波形。這么做的好處是環(huán)境光、白熾燈、太陽光這些直流或低頻干擾被硬件直接濾掉了。發(fā)射端要做的是把邏輯上的 0 和 1 變成有載波和無載波的時間組合。這類遙控器普遍采用的編碼方式是先發(fā)一個 9ms 的載波脈沖作為引導碼再發(fā) 4.5ms 的空閑然后開始傳 32 位數(shù)據(jù)。每一位由一段 0.56ms 的載波脈沖加上一段間隔組成間隔 0.56ms 表示 0間隔 1.69ms 表示 1。接收頭解調(diào)后輸出的是反相的基帶信號單片機只需要測量每個低電平的持續(xù)時間就能還原出 0 和 1。這個測量脈寬的過程對定時精度有要求。514kHz 的逆變器就在旁邊工作開關(guān)噪聲很容易耦合到紅外接收頭的電源和輸出腳上表現(xiàn)為邊沿抖動、脈寬測量偏差。軟件上一般不會只測一次而是引導碼確認、32 位收齊、地址碼比對、數(shù)據(jù)碼與反碼校驗四道關(guān)卡都過了才認為收到一幀有效指令物理上則是在接收頭的電源腳就近加去耦電容走線盡量遠離線圈和功率回路。5.3 軟件實現(xiàn)主循環(huán)、外部中斷與發(fā)送時序接收端的發(fā)送邏輯相對簡單核心是把電池狀態(tài)映射成指令再按上面的時序把載波打出去。下面這段是發(fā)送部分的骨架用定時器產(chǎn)生 38kHz 載波用延時控制脈寬/* 接收端紅外指令發(fā)送骨架8051 內(nèi)核定時器0 產(chǎn)生 38kHz 載波 */ #define CARRIER_HALF 13 /* 12MHz 晶振13us 半周期 ≈ 38.5kHz */ #define BIT_MARK 560 /* 每位起始的載波時長單位 us */ #define ZERO_SPACE 560 /* 邏輯 0 的空閑時長 */ #define ONE_SPACE 1690 /* 邏輯 1 的空閑時長 */ void ir_send_byte(unsigned char dat) { unsigned char i; for (i 0; i 8; i) { carrier_burst(BIT_MARK); /* 先發(fā) 0.56ms 載波作為位起始 */ if (dat 0x01) delay_us(ONE_SPACE); /* 位 1長空閑 */ else delay_us(ZERO_SPACE); /* 位 0短空閑 */ dat 1; /* NEC 協(xié)議低位先發(fā) */ } } void ir_send_frame(unsigned char addr, unsigned char cmd) { carrier_burst(9000); delay_us(4500); /* 9ms 引導 4.5ms 空閑 */ ir_send_byte(addr); /* 地址碼用于過濾鄰近遙控器 */ ir_send_byte(~addr); /* 地址反碼硬件級校驗 */ ir_send_byte(cmd); /* 數(shù)據(jù)碼0充電中1已充滿 */ ir_send_byte(~cmd); /* 數(shù)據(jù)反碼 */ carrier_burst(BIT_MARK); /* 結(jié)束位 */ }carrier_burst()內(nèi)部打開定時器讓 IO 口以 38.5kHz 翻轉(zhuǎn)指定微秒數(shù)后關(guān)閉delay_us()用空循環(huán)實現(xiàn)精度受中斷影響所以發(fā)送期間要關(guān)掉其他中斷。參數(shù)上最關(guān)鍵的是CARRIER_HALF它決定了載波頻率是否落在接收頭帶通濾波器的中心——偏太多接收頭的輸出幅度會明顯下降通信距離縮短。12MHz 晶振下 13μs 半周期對應 38.46kHz與常見的 38kHz 接收頭匹配良好。發(fā)射端則是反向過程紅外接收頭的輸出接單片機的外部中斷 0配置成下降沿觸發(fā)。每來一個下降沿中斷服務程序記錄定時器當前值和上一次記錄值相減得到剛剛那個低電平的寬度再查表判斷是引導碼、邏輯 0 還是邏輯 1。收齊 32 位后置一個標志位主循環(huán)檢測到標志位再做校驗和動作。/* 發(fā)射端外部中斷0 測量脈寬還原位數(shù)據(jù) */ void ext0_isr(void) interrupt 0 { unsigned int now read_timer0(); /* 讀當前計數(shù)值 */ unsigned int width now - last_edge; /* 與上次邊沿的時間差 */ last_edge now; if (width 8000) { /* 8ms 以上判定為引導碼 */ bit_cnt 0; data_acc 0; return; } if (bit_cnt 32) return; /* 超出 32 位丟棄 */ data_acc 1; if (width 1000) /* 1.12ms 以上判為邏輯 1 */ data_acc | 0x8000; bit_cnt; if (bit_cnt 32) frame_ready 1; /* 一幀收齊交給主循環(huán)處理 */ }這里把判決閾值放在 1000μs是取 0.56ms 和 1.69ms 的中點略偏上的位置容忍 ±30% 的脈寬抖動。定時器要配置成不自動重載的連續(xù)計數(shù)模式否則每次溢出都會把差值算錯這個坑我在第 6 章會展開。主循環(huán)的邏輯就簡單了檢測到frame_ready校驗地址碼和反碼通過則取出命令字節(jié)命令是已充滿就拉低繼電器控制腳切斷發(fā)射線圈的直流供電命令是充電中則保持繼電器吸合。發(fā)射端單片機在這一過程中不參與任何能量控制只做一個開關(guān)決策者。5.4 繼電器放在發(fā)射端是一個安全選擇繼電器為什么放發(fā)射端而不是接收端從功能上看兩邊都能切斷充電但含義完全不同。放在接收端斷的是已經(jīng)送到手機上的電發(fā)射端還在滿功率振蕩線圈還在發(fā)熱只是能量沒人接收??蛰d狀態(tài)下的串聯(lián)諧振回路阻抗極低電流只受線圈電阻限制可能比帶載時還大長時間運行線圈溫度會升得很高。放在發(fā)射端斷的是能量源頭繼電器一松逆變電路直接失電線圈上什么都沒有整機進入真正的待機狀態(tài)。另外一個現(xiàn)實原因是功耗。接收端如果要用繼電器切斷電池供電路徑繼電器線圈本身就要耗電而它恰恰是在電池已經(jīng)充滿、需要省電的時候工作邏輯上很別扭。發(fā)射端由市電供電多一路繼電器線圈的功耗無所謂。繼電器本身也有代價機械觸點壽命有限、動作時有聲音、體積大。用 MOS 管做固態(tài)開關(guān)更安靜、更快但需要額外的驅(qū)動和隔離。這套系統(tǒng)選擇繼電器看中的是它的徹底性——物理斷開沒有漏電流也沒有關(guān)不斷的風險。6. 避坑與排查這套系統(tǒng)最容易翻車的五個地方硬件調(diào)試和軟件調(diào)試最大的區(qū)別是軟件出錯有報錯信息硬件出錯只有一個現(xiàn)象——不工作或者發(fā)熱。下面這五條是這類系統(tǒng)調(diào)試時最常撞上的。6.1 高邊波形塌了自舉電容沒有充電窗口現(xiàn)象低邊管的柵極波形干凈漂亮高邊管的柵極波形一開始正常幾百毫秒后幅度逐漸下降最后變成一條貼著源極電位的直線同時高邊管溫度快速上升。原因高邊驅(qū)動依賴自舉電容在低邊導通期間充電。如果程序里給的占空比接近 100%低邊管幾乎沒有導通時間自舉電容只出不進電壓被高邊柵極電荷一點點抽干最終不足以維持導通。另一種可能是自舉二極管選錯用了慢恢復的整流管在高頻下反向漏電電容充不滿。解決把最大占空比限制在 90% 左右確保每個周期都有充電窗口自舉二極管換成快恢復型用示波器同時看 VB 和 VS 兩點的電壓差正常應該在 10V 以上且平穩(wěn)如果看到鋸齒狀的緩慢下降就是充電不足的典型特征。6.2 驅(qū)動波形變成三角波運放擺率和頻率不匹配現(xiàn)象晶振輸出端測到的是規(guī)整方波經(jīng)過放大級之后邊沿變得很緩波形頂部還被削平MOS 管在開關(guān)瞬間發(fā)熱明顯效率比預期低一截。原因放大級用的運放壓擺率不夠。514kHz 方波的半周期不到 1μs要在這么短的時間內(nèi)完成 5V 的電壓跳變壓擺率至少要 5V/μs通用運放的壓擺率往往只有 0.30.6V/μs輸出跟不上輸入的變化方波就被磨成了三角波。MOS 管在米勒平臺區(qū)停留的時間因此變長這段時間里管子同時承受高電壓和大電流損耗全部變成熱。解決換用比較器做開環(huán)放大比較器的翻轉(zhuǎn)速度在納秒量級邊沿陡峭或者選用高壓擺率的專用驅(qū)動芯片。換完之后重新測一次柵極波形上升沿應該在幾十納秒內(nèi)完成。6.3 電感量測出來差一個數(shù)量級單位和諧振點現(xiàn)象按實測電感量代入公式算出的補償電容裝上去之后諧振點完全不對線圈電流遠小于預期或者大得離譜導致管子過流保護。原因電感量的單位被弄混了。6.7μH 和 6.7mH 差了三個數(shù)量級代入C 1/((2πf)2L)之后算出的電容值也差三個數(shù)量級。另一層原因是測量條件用電橋在 1kHz 下測的電感量和 514kHz 下的實際等效電感并不完全相同線圈的分布電容、鄰近效應都會讓高頻下的等效值偏移。解決測量時把頻率設(shè)到接近工作頻率測量前把線圈按實際裝配位置固定好線圈之間的距離、背后有沒有金屬或磁片都會顯著改變電感量算完電容后不要一次焊死先用可調(diào)電容或者多個電容并聯(lián)試出諧振點再用固定電容替換。6.4 沒放手機也發(fā)燙空載諧振電流失控現(xiàn)象板子通電上面什么都沒放幾分鐘后發(fā)射線圈和開關(guān)管明顯發(fā)熱輸入電流比帶載時還大。原因串聯(lián)諧振回路在諧振頻率上的阻抗極低只有線圈的直流電阻。沒有接收端吸收能量時這部分電流全部消耗在線圈電阻和開關(guān)管導通電阻上Q 值越高空載電流越大。這也是無線充電器必須有負載檢測的根本原因——不是為了省電是為了不讓它自己燒自己。解決加負載檢測機制。這套系統(tǒng)用的是紅外閉環(huán)接收端檢測到有效電壓后才發(fā)充電中指令發(fā)射端收到指令才閉合繼電器超過設(shè)定時間沒收到指令自動斷開。另一種思路是在發(fā)射端檢測輸入電流或者線圈電壓的相位變化空載和帶載時諧振點會偏移相位差能反映出來。后一種不需要額外的通信通道但檢測電路的設(shè)計難度更高。6.5 繼電器亂跳紅外在開關(guān)噪聲里誤碼現(xiàn)象充電過程中繼電器時不時啪地斷開又吸合手機充電斷斷續(xù)續(xù)把手機拿遠一點或者用手擋住紅外接收頭現(xiàn)象反而消失。原因514kHz 的逆變回路是一個強干擾源開關(guān)瞬間的 dv/dt 和 di/dt 會通過空間耦合和電源線傳導到紅外接收頭上。接收頭內(nèi)部的帶通濾波器只對 38kHz 附近有效但強干擾會讓輸出端產(chǎn)生毛刺單片機誤判成有效邊沿如果程序沒有做完整的幀校驗一兩個毛刺就能湊出一幀假數(shù)據(jù)。解決軟件上做三重確認——引導碼時間窗口校驗、地址碼比對、數(shù)據(jù)碼與反碼異或檢查三者全過才執(zhí)行動作同時要求連續(xù)兩幀內(nèi)容一致才響應單幀丟棄。硬件上把紅外接收頭的電源腳就近加 0.1μF 去耦電容輸出腳加 RC 低通接收頭的位置盡量遠離線圈和功率回路必要時加一小片鋁箔或者磁屏蔽罩。7. 設(shè)計取舍這套土辦法為什么反而能跑通并值得細看把整套系統(tǒng)從頭到尾捋一遍會發(fā)現(xiàn)它幾乎沒有用什么先進器件8051 內(nèi)核的單片機、IR2110 這種二十多年前的驅(qū)動芯片、CD4069 反相器、紅外遙控的成熟編碼、機械繼電器。單看每一項都平平無奇但組合起來它把無線充電最難的幾件事都解決了而且是可解釋、可測量、可復現(xiàn)的解決。這里有幾處明顯的取舍值得停下來想。第一處是通信方式。用紅外傳狀態(tài)速率低、方向單一、怕遮擋看起來遠不如現(xiàn)在的負載調(diào)制優(yōu)雅。但負載調(diào)制需要在接收端做阻抗切換通過反射阻抗的變化把信息頂回發(fā)射端檢測電路的信噪比要求很高紅外方案把信息通道和能量通道徹底解耦調(diào)試時你可以單獨用一個遙控器驗證發(fā)射端邏輯是否正確這種可分離性在樣機階段極其寶貴。第二處是功率控制手段。繼電器笨重、有壽命限制、動作有延遲但它斷得徹底不存在關(guān)不斷的隱患。用 MOS 管做固態(tài)開關(guān)響應更快、更安靜可在幾百 kHz 的強干擾環(huán)境下驅(qū)動電路的抗擾設(shè)計又是一輪新的坑。樣機階段選一個雖然土但一定管用的方案把不確定性留給更值得投入的地方這是一種很務實的工程判斷。第三處是頻率和控制精度的匹配。514kHz 不算高線圈 Q 值只有 34諧振峰很寬這意味著線圈繞得不太規(guī)整、電容選得不太精確系統(tǒng)仍然能工作。如果追求更高的傳輸距離把頻率提上去、Q 值拉高效率曲線會變得非常陡峭任何一點參數(shù)漂移都會讓系統(tǒng)掉出諧振點。工程上有一句話能容忍誤差的設(shè)計才是好設(shè)計。如果想驗證這套系統(tǒng)是不是真的按你想的方式工作有幾個測試點值得固定下來本文還有配套的精品資源點擊獲取