實(shí)戰(zhàn):從車規(guī)標(biāo)準(zhǔn)到集成電路版圖設(shè)計(jì))
簡(jiǎn)介PDF文檔《車載芯片與集成電路開發(fā)》系統(tǒng)梳理了智能汽車與自動(dòng)駕駛背景下車載芯片設(shè)計(jì)的完整知識(shí)體系面向汽車電子、芯片架構(gòu)及嵌入式開發(fā)相關(guān)技術(shù)人員。文檔從SoC架構(gòu)設(shè)計(jì)切入覆蓋核心組件、通信總線、多核異構(gòu)架構(gòu)與片上集成隨后依次展開多核處理器集成方案中的核間通信、資源分配與功耗散熱管理實(shí)時(shí)操作系統(tǒng)適配中的RTOS特性匹配、接口設(shè)計(jì)與實(shí)時(shí)性保障含ARM Cortex-M示例以及電源管理模塊中的DVFS、多電壓域與測(cè)試驗(yàn)證。安全與可靠性方面還講解了安全啟動(dòng)、內(nèi)存保護(hù)、硬件安全模塊HSM、故障檢測(cè)與容錯(cuò)冗余等具體機(jī)制幫助讀者建立從芯片設(shè)計(jì)到量產(chǎn)驗(yàn)證的系統(tǒng)認(rèn)知。包內(nèi)為單個(gè)PDF文件約1.45MB目錄結(jié)構(gòu)清晰便于按章節(jié)查閱。目前已有33人學(xué)習(xí)下載適合作為車載芯片領(lǐng)域的技術(shù)參考或入門學(xué)習(xí)資料。1. 車載芯片的整體設(shè)計(jì)思路先搞清楚“車規(guī)級(jí)”到底意味著什么車載芯片和集成電路開發(fā)很多剛?cè)胄械呐笥岩宦牼陀X得門檻高、離自己遠(yuǎn)其實(shí)它跟你熟悉的消費(fèi)電子開發(fā)并沒有本質(zhì)上的差別差別在于約束條件完全不同。同樣是做一個(gè)芯片或者一個(gè)板級(jí)方案消費(fèi)類可能跑通功能就能上市車載卻要把最惡劣的溫度、振動(dòng)、電磁干擾、十年以上的壽命預(yù)期全部提前放進(jìn)設(shè)計(jì)里。這個(gè)領(lǐng)域的核心關(guān)鍵詞就兩個(gè)車載芯片、集成電路但這兩個(gè)詞背后延伸出的是一整套和普通嵌入式開發(fā)完全不同的考量邏輯。我記得第一次接觸車規(guī)項(xiàng)目時(shí)最直觀的沖擊來自一顆看似不起眼的電源管理芯片。消費(fèi)級(jí)芯片的數(shù)據(jù)手冊(cè)只會(huì)告訴你工作溫度是0到70攝氏度而車規(guī)芯片上來就是-40到125攝氏度甚至有些發(fā)動(dòng)機(jī)艙內(nèi)的器件要求-40到150攝氏度。這不僅僅是數(shù)字變化它意味著芯片的封裝材料、內(nèi)部走線、保護(hù)電路、測(cè)試篩選方法全都要換一遍。所以做車載芯片開發(fā)第一課不是寫代碼、不是畫版圖而是建立“車規(guī)思維”所有設(shè)計(jì)決策都要圍繞可靠性、可制造性、可維護(hù)性三個(gè)維度展開。這個(gè)領(lǐng)域的開發(fā)流程通常比消費(fèi)電子長(zhǎng)一到兩倍。一顆成熟的車規(guī)MCU從立項(xiàng)到量產(chǎn)往往需要三到五年的時(shí)間其中大量時(shí)間花在可靠性驗(yàn)證和功能安全認(rèn)證上。對(duì)工程師來說這意味著每個(gè)環(huán)節(jié)都不能拍腦袋每一版設(shè)計(jì)都要有據(jù)可查。也正因?yàn)槿绱塑囕d芯片開發(fā)特別適合那些喜歡把問題想透徹、愿意做長(zhǎng)期項(xiàng)目的工程師它不是拼手速的賽道而是拼深度的賽道。1.1 可靠性不是一句口號(hào)是從器件到系統(tǒng)的層層約束車載環(huán)境對(duì)芯片的考驗(yàn)我用一個(gè)生活化的類比來解釋消費(fèi)級(jí)芯片像是辦公室里的文員環(huán)境舒適、作息規(guī)律車規(guī)級(jí)芯片則像是戶外工地的施工隊(duì)長(zhǎng)夏天暴曬、冬天凍透、下雨天還要趟水干活而且一干就是十年不能退休。溫度范圍、濕度、振動(dòng)、灰塵、電磁干擾、電壓波動(dòng)這些因素在車上幾乎同時(shí)存在。AEC-Q100是車規(guī)芯片最基礎(chǔ)的可靠性測(cè)試標(biāo)準(zhǔn)它把芯片按照工作溫度范圍分成幾個(gè)等級(jí)Grade 1是-40到125攝氏度Grade 0是-40到150攝氏度。做車載芯片開發(fā)選型時(shí)第一件事就是確認(rèn)芯片的等級(jí)是否滿足目標(biāo)應(yīng)用場(chǎng)景。比如車身控制模塊BCM、車窗升降控制器這類座艙內(nèi)應(yīng)用Grade 1通常就夠用而變速箱控制、發(fā)動(dòng)機(jī)管理這類動(dòng)力總成應(yīng)用就必須考慮Grade 0的器件。除了溫度等級(jí)AEC-Q100還規(guī)定了電遷移測(cè)試、熱循環(huán)測(cè)試、濕度敏感性測(cè)試、ESD靜電放電測(cè)試等一整套驗(yàn)證項(xiàng)目。這些測(cè)試不是走個(gè)過場(chǎng)每項(xiàng)都有明確的失效判定標(biāo)準(zhǔn)。我曾經(jīng)經(jīng)歷過一個(gè)案子一顆MCU在高溫工作壽命測(cè)試HTOL跑到800小時(shí)的時(shí)候內(nèi)部LDO輸出電壓開始漂移最后查到是帶隙基準(zhǔn)源的金屬走線在高溫下發(fā)生了電遷移。這種問題在仿真階段幾乎不可能發(fā)現(xiàn)只有靠嚴(yán)格的車規(guī)測(cè)試流程才能逼出來也正因如此車規(guī)芯片的成本里測(cè)試驗(yàn)證占了相當(dāng)大的比重。1.2 功能安全與失效模式從設(shè)計(jì)上提前兜底ISO 26262是汽車功能安全的國(guó)際標(biāo)準(zhǔn)它把安全等級(jí)從A到D分為ASIL A、B、C、D四級(jí)ASIL D最高通常對(duì)應(yīng)轉(zhuǎn)向、制動(dòng)這類直接關(guān)系生命安全的系統(tǒng)。做車載芯片開發(fā)哪怕您只是做一顆輔助芯片也要想清楚它在整個(gè)系統(tǒng)里承擔(dān)什么安全角色。舉個(gè)例子車窗防夾功能如果失效最壞情況是夾到乘客的手這個(gè)風(fēng)險(xiǎn)的嚴(yán)重程度屬于中等偏高通常會(huì)被定義為ASIL B左右。而如果是一顆負(fù)責(zé)電池管理系統(tǒng)中電壓采樣的芯片采樣錯(cuò)誤可能導(dǎo)致過充甚至起火那就要往ASIL C甚至D去設(shè)計(jì)。安全等級(jí)的差異直接影響架構(gòu)設(shè)計(jì)ASIL A可能只需要基本的看門狗ASIL D要求雙核鎖步、硬件自檢、糾錯(cuò)碼ECC、冗余安全路徑每一項(xiàng)都會(huì)增加芯片面積和開發(fā)成本。功能安全在設(shè)計(jì)階段的落地方式主要是FMEA失效模式與影響分析和安全機(jī)制設(shè)計(jì)。FMEA要求工程師把每一個(gè)可能的失效模式列出來評(píng)估它的發(fā)生概率、嚴(yán)重程度、可檢測(cè)性然后針對(duì)風(fēng)險(xiǎn)高的項(xiàng)目設(shè)計(jì)安全機(jī)制。比如MCU內(nèi)核跑飛了怎么辦、傳感器開路短路了怎么辦、通信報(bào)文丟失了怎么辦這些都需要提前預(yù)設(shè)響應(yīng)策略。落到代碼層面就是看門狗超時(shí)后是進(jìn)入安全狀態(tài)還是嘗試恢復(fù)出現(xiàn)故障標(biāo)志位后是點(diǎn)亮故障燈還是限制輸出功率這些決策都要寫進(jìn)設(shè)計(jì)文檔不能到測(cè)試階段才臨時(shí)拍板。1.3 開發(fā)流程與節(jié)點(diǎn)評(píng)審車載芯片不流行“快速迭代”消費(fèi)電子領(lǐng)域流行的敏捷開發(fā)和小步快跑在車載芯片開發(fā)里并不完全適用。倒不是因?yàn)槠囆袠I(yè)保守而是因?yàn)橐惠v車上幾十個(gè)ECU協(xié)同工作任何一個(gè)節(jié)點(diǎn)出錯(cuò)都可能引發(fā)連鎖反應(yīng)。所以整個(gè)開發(fā)流程被拆成了清晰的節(jié)點(diǎn)概念評(píng)審、系統(tǒng)需求評(píng)審、架構(gòu)設(shè)計(jì)評(píng)審、詳細(xì)設(shè)計(jì)評(píng)審、驗(yàn)證計(jì)劃評(píng)審、量產(chǎn)放行評(píng)審每個(gè)節(jié)點(diǎn)都有明確的輸入輸出和評(píng)審標(biāo)準(zhǔn)。這里要特別提一下PPAP生產(chǎn)件批準(zhǔn)程序。當(dāng)芯片方案定型、準(zhǔn)備交給代工廠量產(chǎn)之前需要對(duì)整個(gè)制造過程做一次全面確認(rèn)包括工藝流程、設(shè)備參數(shù)、測(cè)試覆蓋率、封裝材料、可靠性數(shù)據(jù)。這個(gè)環(huán)節(jié)看起來跟電路設(shè)計(jì)沒什么關(guān)系但它決定了你精心設(shè)計(jì)的芯片能否穩(wěn)定地、一致地生產(chǎn)出來。很多工程師在這個(gè)環(huán)節(jié)容易踩坑比如忽略了晶圓廠工藝偏差對(duì)芯片性能的影響結(jié)果同一批芯片部分上電正常部分上電后靜態(tài)功耗偏大。后來排查下來是MOS管閾值電壓在工藝角偏移后某個(gè)偏置電路沒有余量了這個(gè)問題的根因就出在設(shè)計(jì)階段沒有做夠工藝角仿真。2. 核心器件拆解15w408as 各引腳功能與選型要點(diǎn)聊完宏觀的開發(fā)思路我們落到具體器件上。這次項(xiàng)目里用到的核心芯片之一是15w408as這是一顆STC系列的8位MCU增強(qiáng)型8051內(nèi)核在很多車載小節(jié)點(diǎn)控制場(chǎng)景里出現(xiàn)頻率很高。熱搜詞里專門提到“15w408as各引腳功能”說明不少同行在實(shí)際開發(fā)中對(duì)引腳定義、外圍電路搭接有困惑我結(jié)合自己用這顆料做車身小節(jié)點(diǎn)控制的經(jīng)驗(yàn)把引腳功能和選型要點(diǎn)捋一遍。2.1 15w408as 引腳功能總覽與典型外圍電路先看一顆芯片的基本盤。15w408as 常見的封裝有SOP20、SOP28、TSSOP20等不同封裝引腳數(shù)量不同但核心功能引腳基本一致。以SOP20封裝為例我按功能分組整理如下功能分組引腳說明電源VCC、GND工作電壓范圍約2.5V~5.5V典型值3.3V或5V復(fù)位RST低電平復(fù)位外部建議接10kΩ上拉電阻和0.1μF電容時(shí)鐘XTAL1、XTAL2外部晶振輸入常用11.0592MHz或22.1184MHz主IO口P1.0~P1.7通用IO部分引腳支持ADC輸入和PWM輸出主IO口P3.0~P3.7通用IO其中P3.0/P3.1默認(rèn)復(fù)用為RXD/TXD串口串口RXD、TXD串口通信可通過配置切換到其他引腳組特殊功能P5.4某些封裝中用于復(fù)位腳配置或IO復(fù)用這顆芯片最常用的外圍電路是VCC接0.1μF和10μF兩級(jí)去耦電容RST腳上拉10kΩ到VCC并對(duì)地接0.1μF電容晶振兩端各接20~30pF負(fù)載電容。上電時(shí)序上建議VCC先穩(wěn)定再釋放復(fù)位避免芯片在欠壓狀態(tài)下執(zhí)行錯(cuò)誤指令。實(shí)際項(xiàng)目中曾經(jīng)遇到一批板子上電后偶爾不工作排查發(fā)現(xiàn)是復(fù)位電容選得太大導(dǎo)致復(fù)位釋放時(shí)間超過了電源穩(wěn)定后的時(shí)間窗口MCU在上電瞬間讀到了不確定狀態(tài)。后來把復(fù)位電容從1μF改成0.1μF問題就消失了。2.2 為什么這類MCU在車載小節(jié)點(diǎn)中用得廣很多人會(huì)問現(xiàn)在ARM內(nèi)核的MCU都這么便宜了為什么還要用8位8051內(nèi)核的芯片答案在于“夠用就好”這四個(gè)字。車窗升降、雨刮控制、座椅調(diào)節(jié)、燈光控制這類小節(jié)點(diǎn)控制邏輯不復(fù)雜IO數(shù)量要求不多實(shí)時(shí)性要求也不算極端一顆15w408as完全能勝任。它的優(yōu)勢(shì)很明顯成本低、開發(fā)工具鏈成熟、底層寄存器直接可控、代碼執(zhí)行確定性高不會(huì)因?yàn)椴僮飨到y(tǒng)調(diào)度帶來不確定性延遲。更重要的是這類芯片的生態(tài)非常成熟找資料、找例程、找參考設(shè)計(jì)都很方便。對(duì)于中小型零部件供應(yīng)商來說用成熟低成本的8位MCU做小節(jié)點(diǎn)比一上來就用高端32位MCU更務(wù)實(shí)。當(dāng)然它也有明顯的局限性比如Flash空間通常只有幾KB到十幾KBRAM更小做不了復(fù)雜的通信協(xié)議棧和算法。所以在實(shí)際方案里我通常把15w408as定位為“執(zhí)行器控制器”負(fù)責(zé)把總線上的命令轉(zhuǎn)成具體的IO動(dòng)作而復(fù)雜的決策邏輯放到域控制器或者更高算力的主控芯片上。2.3 選型時(shí)容易被忽略的幾個(gè)細(xì)節(jié)選型這件事很多工程師習(xí)慣只看主頻和Flash容量但在車載場(chǎng)景里有幾個(gè)參數(shù)特別容易被忽略。第一是IO口的灌電流和拉電流能力比如15w408as的IO驅(qū)動(dòng)能力通常在20mA左右驅(qū)動(dòng)繼電器或者LED直驅(qū)時(shí)要算好電流超過規(guī)格就需要加三極管或者M(jìn)OS管驅(qū)動(dòng)。第二是ADC的參考電壓精度如果你用它的ADC采集電位器位置信號(hào)比如座椅位置記憶參考電壓的溫漂和噪聲直接影響采集精度必要時(shí)外部加一顆高精度基準(zhǔn)源。第三是工作電壓范圍和低壓復(fù)位閾值車輛蓄電池在啟動(dòng)瞬間會(huì)掉到6V甚至更低如果系統(tǒng)沒有做BUCK或者LDO穩(wěn)壓MCU必須能承受這個(gè)電壓跌落。另外一個(gè)實(shí)際問題就是貨源和版本。STC系列芯片在市面上流通版本很多15w408as和15w408as-35I后綴不同工作溫度范圍和使用場(chǎng)景可能完全不同。采購(gòu)時(shí)一定要確認(rèn)是車規(guī)溫度級(jí)還是商業(yè)溫度級(jí)批量生產(chǎn)前先做小批驗(yàn)證不要等到量產(chǎn)了才發(fā)現(xiàn)芯片在高溫環(huán)境下頻繁復(fù)位。3. 集成電路版圖設(shè)計(jì)核心環(huán)節(jié)畫對(duì)每一層“地圖”熱搜詞里出現(xiàn)了“集成電路版圖設(shè)計(jì)”這是個(gè)非常硬核的話題。版圖設(shè)計(jì)是連接電路原理圖和實(shí)際芯片制造之間的橋梁它決定了你的設(shè)計(jì)最后能不能以可接受的良率造出來。很多從PCB設(shè)計(jì)轉(zhuǎn)到芯片版圖設(shè)計(jì)的人最不適應(yīng)的就是這件事設(shè)計(jì)結(jié)果要到幾個(gè)月后晶圓制造完成才能看到實(shí)物驗(yàn)證中間全靠仿真和規(guī)則檢查容錯(cuò)率極低。3.1 版圖規(guī)劃先想清楚再動(dòng)手別急著畫晶體管版圖設(shè)計(jì)的第一步不是畫晶體管而是做整體規(guī)劃也就是所謂的Floorplan。你要想清楚幾個(gè)問題主要模塊放在哪里、IO PAD怎么排布、電源地網(wǎng)絡(luò)怎么走、敏感模擬模塊和數(shù)字模塊之間怎么隔離。我習(xí)慣把Floorplan類比成裝修房子先確定客廳、臥室、廚房的位置再考慮水電管線怎么走最后才是買家具擺裝飾。如果一開始就把某個(gè)模塊畫得很大后面發(fā)現(xiàn)旁邊的模塊放不下了整個(gè)布局推倒重來的代價(jià)極高。芯片級(jí)設(shè)計(jì)中數(shù)字模塊通常用標(biāo)準(zhǔn)單元自動(dòng)布局布線APR模擬模塊則偏手工設(shè)計(jì)。兩者對(duì)版圖的要求差異很大數(shù)字模塊看時(shí)序收斂和布線擁塞度模擬模塊看匹配性、噪聲隔離和寄生參數(shù)的一致性。結(jié)構(gòu)上我常用的原則是“模擬優(yōu)先”先把比較敏感的模擬模塊固定好位置再把數(shù)字模塊填進(jìn)剩余空間最后統(tǒng)一規(guī)劃IO。模擬模塊盡量靠近IO PAD減少輸入信號(hào)的走線長(zhǎng)度數(shù)字模塊集中放在芯片中部或一角通過保護(hù)環(huán)Guard Ring與模擬模塊隔離。Floorplan做完之后要做擁塞度評(píng)估。如果你用的是自動(dòng)布局布線工具比如Synopsys的ICC2或者Cadence的Innovus跑完初步布局后會(huì)生成擁塞度熱力圖哪里紅得發(fā)紫哪里就要提前調(diào)整宏單元的位置或者改變供電網(wǎng)絡(luò)的結(jié)構(gòu)。很多新手喜歡一上來就把所有宏單元都鋪開導(dǎo)致布線資源嚴(yán)重浪費(fèi)最終面積超標(biāo)這里需要反復(fù)迭代才能找到平衡點(diǎn)。3.2 設(shè)計(jì)規(guī)則檢查與寄生效應(yīng)避開“畫得出卻造不出”的坑每一家晶圓廠都會(huì)給出一套設(shè)計(jì)規(guī)則Design Rule這套規(guī)則是工藝能力和良率保障的底線。常見的設(shè)計(jì)規(guī)則包括最小線寬、最小間距、最小包圍、天線規(guī)則、金屬密度等。版圖畫完后必須跑DRC設(shè)計(jì)規(guī)則檢查把違反規(guī)則的地方全部修掉。這個(gè)過程非常磨人一套復(fù)雜的模擬版圖DRC跑出幾千個(gè)違例都很常見但你必須一個(gè)一個(gè)看分清哪些是真違例、哪些是假違例。比DRC更隱蔽的是寄生效應(yīng)。每條走線都有電阻、電容兩個(gè)相鄰走線之間還有耦合電容這些寄生參數(shù)在低頻時(shí)無傷大雅一旦頻率高了或者驅(qū)動(dòng)能力弱了就會(huì)顯現(xiàn)出信號(hào)延遲、串?dāng)_、壓降等問題。后端工具在做寄生提取時(shí)會(huì)把版圖上的多邊形轉(zhuǎn)成RC網(wǎng)絡(luò)然后輸出給仿真工具做后仿真。我的經(jīng)驗(yàn)是關(guān)鍵信號(hào)線盡量短、盡量寬敏感信號(hào)之間加屏蔽地線模擬電路里對(duì)匹配敏感的器件要采用共質(zhì)心布局最大限度抵消工藝梯度帶來的失配。還有一個(gè)經(jīng)典問題是天線效應(yīng)。芯片制造過程中金屬走線會(huì)像天線一樣收集等離子體加工時(shí)產(chǎn)生的電荷積累到一定程度就會(huì)擊穿柵氧化層導(dǎo)致晶體管失效。解決辦法是在靠近柵極的地方加一個(gè)二極管或者跳線換層讓電荷有個(gè)泄放路徑。這個(gè)在DRC規(guī)則里有專門的天線規(guī)則檢查但很多人容易忽略等到流片出來芯片不工作才后悔莫及。3.3 電源網(wǎng)絡(luò)與地彈噪聲把“水電”當(dāng)成頭等大事芯片內(nèi)部沒有市政電網(wǎng)所有電能都靠電源PAD引入再通過電源網(wǎng)絡(luò)分配給每個(gè)模塊。電源網(wǎng)絡(luò)設(shè)計(jì)的好壞直接決定芯片能不能正常工作尤其是高頻數(shù)字電路和敏感的模擬電路混合的場(chǎng)景。IR Drop問題是最常見的芯片內(nèi)部供電走線有電阻當(dāng)大量電路同時(shí)翻轉(zhuǎn)時(shí)瞬間電流會(huì)在走線上產(chǎn)生壓降導(dǎo)致遠(yuǎn)處模塊供電不足。我的做法是在Floorplan階段就預(yù)估各模塊的峰值電流然后計(jì)算電源環(huán)的寬度和層數(shù)保證滿載運(yùn)行時(shí)IR Drop控制在目標(biāo)值以內(nèi)。與IR Drop相伴的是地彈噪聲。芯片內(nèi)部地網(wǎng)絡(luò)上的寄生電感在數(shù)字電路快速翻轉(zhuǎn)時(shí)會(huì)產(chǎn)生電壓波動(dòng)這個(gè)波動(dòng)會(huì)通過共享的地網(wǎng)絡(luò)傳導(dǎo)到模擬模塊造成噪聲耦合。緩解手段無非三種增加地PAD和地走線的數(shù)量、數(shù)字模塊和模擬模塊使用獨(dú)立的地網(wǎng)絡(luò)并在芯片外部單點(diǎn)連接、敏感模擬模塊周圍加保護(hù)環(huán)。數(shù)字電路開關(guān)引起的噪聲本質(zhì)上是電流劇變產(chǎn)生的所以除了布局上隔離設(shè)計(jì)上還可以通過控制數(shù)字模塊同時(shí)翻轉(zhuǎn)的觸發(fā)器數(shù)量、在數(shù)字模塊入口處加去耦電容等方式來平滑電流波動(dòng)。去耦電容的作用就是就地儲(chǔ)能像小區(qū)里的臨時(shí)蓄水池峰值用水時(shí)不必全部依賴外部輸水管道這個(gè)比喻對(duì)理解電源去耦非常有幫助。3.4 可制造性與可測(cè)試性版圖不只是“畫得對(duì)”還要“造得出”版圖設(shè)計(jì)做到后期必須考慮可制造性DFM。晶圓制造要經(jīng)歷光刻、刻蝕、沉積、拋光等多個(gè)步驟每一層版圖的圖形密度直接影響工藝均勻性。如果某一層金屬在某些區(qū)域特別密、在某些區(qū)域幾乎空白化學(xué)機(jī)械拋光CMP時(shí)就會(huì)出現(xiàn)碟形凹陷導(dǎo)致局部金屬厚度不均勻進(jìn)而引起電阻漂移。解決方法是加填充圖形Dummy Fill在稀疏區(qū)域填充不參與電氣連接的虛擬圖形讓整體密度均勻化。金屬密度規(guī)則通常在20%到80%之間具體數(shù)值要看晶圓廠的要求??蓽y(cè)試性設(shè)計(jì)DFT也不能忽視。一顆芯片做出來之后測(cè)試成本可能占到總成本的三分之一以上。為了讓測(cè)試更高效設(shè)計(jì)時(shí)要預(yù)留掃描鏈測(cè)試端口、內(nèi)建自測(cè)試電路BIST、電壓電流測(cè)試點(diǎn)。比如Flash和SRAM模塊都建議加上MBIST存儲(chǔ)器內(nèi)建自測(cè)試這樣可以在不加外部測(cè)試程序的情況下快速判斷存儲(chǔ)單元的好壞。ICC2和Innovus在跑APR時(shí)可以直接集成DFT邏輯自動(dòng)插入掃描鏈。4. 從仿真到實(shí)測(cè)常見問題與排查技巧實(shí)錄做車載芯片開發(fā)落到板級(jí)系統(tǒng)后才是真正的考驗(yàn)。仿真做得再充分也擋不住現(xiàn)實(shí)世界里的各種意外。這里我把自己這些年踩過的坑整理成問題清單按高頻到低頻排列每個(gè)問題都附上排查思路。這些問題有一個(gè)共同點(diǎn)它們都不是單一原因?qū)е碌亩嵌鄠€(gè)因素疊加排查時(shí)需要耐心和系統(tǒng)性的方法。4.1 上電不工作、時(shí)常復(fù)位先量電源再看復(fù)位癥狀板子上電后MCU完全沒有反應(yīng)或者工作一段時(shí)間后自動(dòng)復(fù)位。排查順序第一步永遠(yuǎn)是用示波器測(cè)量VCC引腳。你可能會(huì)驚訝于有多少問題出在電源上LDO輸出振蕩、啟動(dòng)瞬間電壓跌落、紋波過大、接觸不良任何一種都足以讓MCU工作異常。確認(rèn)電源穩(wěn)定后再測(cè)復(fù)位引腳的電平是否正常、復(fù)位釋放時(shí)間是否合理、外部看門狗有沒有被誤觸發(fā)。15w408as內(nèi)置看門狗如果程序里沒有正確喂狗芯片會(huì)周期性復(fù)位。這種問題最典型的特征是系統(tǒng)跑幾秒就重啟重啟后又能工作幾秒。排查方法很簡(jiǎn)單先暫時(shí)關(guān)閉看門狗功能看問題是否消失。如果確認(rèn)是看門狗引起的就要檢查主循環(huán)的執(zhí)行時(shí)間和喂狗位置某些耗時(shí)操作比如EEPROM擦寫會(huì)占用幾百毫秒導(dǎo)致看門狗超時(shí)。4.2 通信偶發(fā)異常CAN/LIN報(bào)文時(shí)通時(shí)斷車載系統(tǒng)離不開CAN、LIN、UART這些通信總線偶發(fā)通信故障是最難排查的問題之一。我的經(jīng)驗(yàn)是按“物理層-數(shù)據(jù)鏈路層-應(yīng)用層”的順序逐層排查。物理層先看總線電平用示波器抓差分信號(hào)檢查總線顯性隱性電平是否在標(biāo)準(zhǔn)范圍內(nèi)。CAN總線的隱性電平通常在2.5V左右顯性電平差約為2V如果共模電壓漂移嚴(yán)重多半是收發(fā)器或終端電阻出了問題。數(shù)據(jù)鏈路層要重點(diǎn)檢查波特率精度。CAN協(xié)議要求節(jié)點(diǎn)的位時(shí)間誤差在千分之幾以內(nèi)如果MCU的晶振精度不夠比如用了誤差較大的陶瓷諧振器而不是石英晶振波特率偏差積累到一定程度就會(huì)導(dǎo)致幀錯(cuò)誤。這里有一個(gè)實(shí)用技巧不要把CAN的波特率設(shè)定值卡得太死先算出晶振實(shí)際頻率下的實(shí)際波特率再看它與目標(biāo)值的偏差是否在容差內(nèi)。應(yīng)用層的問題通常表現(xiàn)為某條報(bào)文周期性丟失此時(shí)要檢查發(fā)送節(jié)點(diǎn)的發(fā)送緩沖是否溢出、接收節(jié)點(diǎn)有沒有做好報(bào)文過濾。LIN總線相對(duì)簡(jiǎn)單但同樣有坑。LIN是單線總線通信質(zhì)量跟線束長(zhǎng)度、節(jié)點(diǎn)位置、上拉電阻阻值都有關(guān)系。如果LIN從節(jié)點(diǎn)偶發(fā)無響應(yīng)先檢查1kΩ上拉電阻是否接對(duì)、從節(jié)點(diǎn)有沒有正確同步波特率。4.3 EMC測(cè)試超標(biāo)整改永遠(yuǎn)比預(yù)防貴十倍車載電子產(chǎn)品出廠前必須通過整車廠的EMC電磁兼容測(cè)試傳導(dǎo)發(fā)射、輻射發(fā)射、抗擾度其中任何一項(xiàng)超標(biāo)都可能導(dǎo)致項(xiàng)目延期。ESD問題也常見于車載環(huán)境中因?yàn)槿藛T操作、線束摩擦都會(huì)產(chǎn)生靜電放電。ESD整改通常從兩個(gè)方面入手一是加強(qiáng)接口保護(hù)在連接器入口加TVS管和共模電感電感的作用是扼制高頻干擾二是優(yōu)化PCB布局減小回路面積、加寬地線。物理層的防護(hù)和管理層的正確設(shè)計(jì)同樣重要而這兩者都需要在硬件設(shè)計(jì)階段就留好位置等到EMC測(cè)試失敗再想辦法加器件往往因?yàn)榻Y(jié)構(gòu)空間和成本限制而非常被動(dòng)。我的一個(gè)深刻體會(huì)是EMC問題盡量不要在產(chǎn)品定型后再解決必須在PCB布局階段就做足功課。比如電源輸入口先放共模電感再放差模電容最后進(jìn)LDO晶振下方鋪完整地銅不要走其他信號(hào)線所有高速信號(hào)的回路面積都要盡量小。遵守這些基本原則大概率能一次通過測(cè)試。4.4 常見問題速查表問題現(xiàn)象可能原因排查優(yōu)先級(jí)解決辦法上電無反應(yīng)電源未建立/復(fù)位被拉低高示波器量VCC、RST時(shí)序周期性重啟看門狗未喂/紋波過大高先關(guān)看門狗測(cè)試再查電源CAN偶發(fā)掉線波特率偏差/線纜過長(zhǎng)中示波器抓波形算位時(shí)間誤差芯片發(fā)熱嚴(yán)重驅(qū)動(dòng)過流/IO短路高斷電查各模塊電流ADC采樣跳動(dòng)參考電壓不穩(wěn)/地噪聲中加濾波電容、改布局Flash寫入失敗電壓跌落/擦寫次數(shù)超標(biāo)中測(cè)擦寫瞬間電壓、優(yōu)化算法5. 一點(diǎn)個(gè)人體會(huì)做車載芯片和集成電路開發(fā)這幾年最大的感受是這一行不看你踩了多少坑而看你把每次踩坑的教訓(xùn)沉淀成了什么。把一顆芯片從需求分析做到量產(chǎn)中間的技術(shù)棧覆蓋了數(shù)字邏輯、模擬電路、版圖設(shè)計(jì)、嵌入式軟件、系統(tǒng)測(cè)試和可靠性工程沒有任何一個(gè)環(huán)節(jié)是可以敷衍了事的。對(duì)新人來說培養(yǎng)一個(gè)習(xí)慣特別重要每做一個(gè)設(shè)計(jì)決策之前先問自己三個(gè)問題——這個(gè)決策的依據(jù)是什么、最壞情況是什么、替代方案是什么。不憑感覺做工程才能把風(fēng)險(xiǎn)控制在自己手里。版圖設(shè)計(jì)這塊如果可能的話建議每個(gè)做硬件的人至少親手畫一次底層模塊的版圖哪怕只是一個(gè)簡(jiǎn)單的電流鏡或者差分對(duì)這會(huì)讓你對(duì)芯片的物理本質(zhì)有完全不同的理解。本文還有配套的精品資源點(diǎn)擊獲取