計(jì):從原理到KU5P聲學(xué)相機(jī)工程實(shí)踐)
在實(shí)際嵌入式產(chǎn)品開發(fā)中JTAG接口的設(shè)計(jì)遠(yuǎn)不止是畫上幾個(gè)引腳那么簡單。它關(guān)系到產(chǎn)品從研發(fā)、調(diào)試、生產(chǎn)測試到后期維護(hù)的整個(gè)生命周期。特別是對(duì)于像聲學(xué)相機(jī)這類集成了復(fù)雜信號(hào)處理如KU5P這類FPGA或SoC的設(shè)備JTAG鏈路的芯片選型與設(shè)計(jì)更是硬件工程師必須深思熟慮的一環(huán)。選型不當(dāng)可能導(dǎo)致調(diào)試?yán)щy、生產(chǎn)良率下降甚至為產(chǎn)品埋下無法修復(fù)的硬件缺陷。本文將以“聲學(xué)相機(jī)”產(chǎn)品為背景圍繞核心處理器KU5P深入探討JTAG鏈路芯片選型設(shè)計(jì)的工程實(shí)踐。我們將從JTAG的基礎(chǔ)原理出發(fā)逐步分析在復(fù)雜系統(tǒng)中設(shè)計(jì)JTAG鏈路的挑戰(zhàn)對(duì)比不同芯片選型方案的優(yōu)劣并最終給出一個(gè)兼顧調(diào)試、量產(chǎn)和維護(hù)的完整設(shè)計(jì)實(shí)例。無論你是正在設(shè)計(jì)第一塊FPGA載板的工程師還是負(fù)責(zé)復(fù)雜系統(tǒng)集成的技術(shù)負(fù)責(zé)人本文提供的設(shè)計(jì)思路和排查方法都將幫助你構(gòu)建一個(gè)更可靠、更高效的硬件開發(fā)基礎(chǔ)。1. 理解JTAG不止于調(diào)試的芯片“后門”在開始選型之前我們必須重新審視JTAGJoint Test Action Group的本質(zhì)。很多開發(fā)者僅將其視為下載程序或進(jìn)行源碼級(jí)調(diào)試的接口這大大低估了它的價(jià)值。1.1 JTAG的核心功能測試、訪問與控制JTAG標(biāo)準(zhǔn)IEEE 1149.1最初是為解決高密度PCB上芯片引腳測試難題而誕生的。其核心是通過一個(gè)簡單的四線或五線串行接口TDI, TDO, TMS, TCK可選TRST訪問芯片內(nèi)部一個(gè)名為邊界掃描Boundary Scan的專用邏輯電路。這套機(jī)制賦予了開發(fā)者三種關(guān)鍵能力測試Test在不依賴物理探針的情況下測試PCB上各芯片引腳之間的連接性開路、短路。這對(duì)于BGA封裝等無法直接探測的芯片至關(guān)重要。訪問Access通過邊界掃描單元可以采樣Sample或驅(qū)動(dòng)Force芯片的每一個(gè)I/O引腳的電平狀態(tài)。這意味著你可以通過JTAG“看到”芯片管腳上的實(shí)際信號(hào)或強(qiáng)制其輸出特定電平用于外圍電路的功能驗(yàn)證??刂艭ontrol更重要的是JTAG是訪問芯片內(nèi)部調(diào)試模塊如ARM CoreSight、FPGA配置邏輯的標(biāo)準(zhǔn)化通道。通過它可以實(shí)現(xiàn)編程/配置向FPGA加載比特流Bitstream向Flash燒錄固件。調(diào)試設(shè)置斷點(diǎn)、單步執(zhí)行、查看/修改寄存器與內(nèi)存。內(nèi)建自測試MBIST觸發(fā)和執(zhí)行芯片內(nèi)存的內(nèi)建自測試并讀取結(jié)果。對(duì)于KU5P這類可能包含硬核處理器如ARM Cortex系列和FPGA可編程邏輯的器件JTAG通常是訪問其內(nèi)部調(diào)試子系統(tǒng)的唯一或主要途徑。1.2 JTAG鏈路Chain與拓?fù)鋯蝹€(gè)芯片的JTAG接口很簡單。但當(dāng)系統(tǒng)中有多個(gè)支持JTAG的器件例如一個(gè)KU5P、一個(gè)DDR存儲(chǔ)器控制器芯片、一個(gè)配置Flash時(shí)就需要將它們組織成一條“鏈路”。標(biāo)準(zhǔn)的連接方式是將前一個(gè)芯片的TDO連接到后一個(gè)芯片的TDI形成一個(gè)串行的移位寄存器鏈。TCK、TMS和TRST通常并聯(lián)到所有芯片。PC/調(diào)試器 - [TDI] - [Device 1 (KU5P)] - [TDO] - [TDI] - [Device 2 (e.g., CPLD)] - [TDO] - ... - [TDI] - [Device N] - [TDO] - 回PC/調(diào)試器 ^ ^ ^ ^ ^ ^ | | | | | | TCK, TMS, (TRST)并聯(lián)到所有器件這條鏈路上的每一個(gè)器件都必須被分配一個(gè)唯一的標(biāo)識(shí)符即JTAG IDCODE。調(diào)試工具通過掃描整條鏈路識(shí)別出每個(gè)器件及其在鏈中的位置。鏈路設(shè)計(jì)的正確性直接決定了調(diào)試工具能否識(shí)別到目標(biāo)芯片。2. KU5P系統(tǒng)JTAG設(shè)計(jì)面臨的挑戰(zhàn)與選型考量聲學(xué)相機(jī)產(chǎn)品通常對(duì)信號(hào)完整性、功耗和成本有嚴(yán)格要求。KU5P作為核心處理器其JTAG鏈路設(shè)計(jì)需要平衡多方面因素。2.1 挑戰(zhàn)一多器件與鏈路配置一個(gè)典型的聲學(xué)相機(jī)硬件系統(tǒng)可能包含主處理器KU5PFPGA硬核處理器。配置存儲(chǔ)器存儲(chǔ)FPGA比特流的Flash芯片可能支持JTAG間接編程。輔助芯片用于電源管理、接口擴(kuò)展的CPLD或小型FPGA。調(diào)試接口最終暴露給用戶的連接器如20pin、10pin標(biāo)準(zhǔn)JTAG頭或ARM Cortex Debug接頭。這些器件可能都需要接入JTAG鏈路。設(shè)計(jì)時(shí)必須明確鏈路順序哪個(gè)器件在前哪個(gè)在后順序會(huì)影響調(diào)試工具的識(shí)別和操作。鏈路使能是否所有器件都需要始終接入鏈路如何在不焊接的情況下隔離某個(gè)器件以簡化調(diào)試2.2 挑戰(zhàn)二接口電平與驅(qū)動(dòng)能力KU5P的JTAG引腳電平取決于其Bank電壓。如果鏈路上的其他器件如CPLD、Flash的工作電壓不同就會(huì)存在電平不匹配問題。直接連接可能導(dǎo)致通信失敗或損壞器件。因此需要考慮電平轉(zhuǎn)換。此外長走線、連接器、線纜會(huì)引入電容可能導(dǎo)致信號(hào)邊沿變差。如果鏈路中器件較多TDO驅(qū)動(dòng)能力可能不足需要緩沖。2.3 挑戰(zhàn)三生產(chǎn)與維護(hù)模式生產(chǎn)模式在量產(chǎn)線上需要快速、可靠地對(duì)PCB進(jìn)行編程和測試。此時(shí)可能需要通過JTAG批量燒寫Flash。執(zhí)行邊界掃描測試快速檢測焊接缺陷。操作需要自動(dòng)化接口需要可靠。研發(fā)調(diào)試模式工程師需要靈活的調(diào)試能力可能頻繁插拔需要訪問底層寄存器?,F(xiàn)場維護(hù)模式產(chǎn)品出貨后可能需要通過預(yù)留的接口進(jìn)行固件升級(jí)或故障診斷。此接口可能需要防誤插、防靜電甚至考慮安全性如禁用某些調(diào)試功能。不同的模式對(duì)JTAG鏈路的設(shè)計(jì)提出了不同要求芯片選型需要兼顧。2.4 挑戰(zhàn)四信號(hào)完整性與EMCJTAG信號(hào)尤其是TCK是高速時(shí)鐘信號(hào)MHz級(jí)別。不合理的走線如過長、過細(xì)、靠近噪聲源會(huì)導(dǎo)致信號(hào)反射、振鈴進(jìn)而引起通信不穩(wěn)定。在聲學(xué)相機(jī)這種可能包含高靈敏度模擬前端的設(shè)備中JTAG信號(hào)也可能成為干擾源需要做好屏蔽和濾波。3. JTAG鏈路芯片選型方案深度對(duì)比針對(duì)上述挑戰(zhàn)我們有幾種不同的芯片選型方案。下表對(duì)比了三種主流方案的優(yōu)缺點(diǎn)及適用場景。選型方案核心芯片/方法優(yōu)點(diǎn)缺點(diǎn)適用場景方案A直接連接無額外芯片KU5P等器件直連JTAG接頭。成本最低電路最簡單延遲最小。無電平轉(zhuǎn)換電壓不兼容系統(tǒng)無法使用無緩沖驅(qū)動(dòng)長鏈或多器件能力弱無法動(dòng)態(tài)配置鏈路安全性差接口常開。系統(tǒng)內(nèi)所有JTAG器件電壓相同且數(shù)量少≤3走線短僅用于研發(fā)調(diào)試的場景。方案B采用模擬開關(guān)/多路復(fù)用器使用如SN74CBT3257等模擬開關(guān)芯片。成本較低可實(shí)現(xiàn)鏈路的動(dòng)態(tài)切換或分時(shí)復(fù)用能隔離部分器件。通常不提供電平轉(zhuǎn)換開關(guān)本身引入導(dǎo)通電阻和電容可能影響高速信號(hào)需要額外的控制GPIO。需要在不同JTAG鏈路如KU5P鏈和Flash編程鏈之間切換或需要軟件控制使能調(diào)試接口的系統(tǒng)。方案C采用專用JTAG緩沖/電平轉(zhuǎn)換芯片使用如TXB0104/TXS0104雙向、SN74AVC4T774方向可控等電平轉(zhuǎn)換緩沖器。提供可靠的電平轉(zhuǎn)換如1.8V-3.3V增強(qiáng)信號(hào)驅(qū)動(dòng)能力改善完整性部分型號(hào)集成方向控制。成本比方案A高需要正確選擇支持JTAG信號(hào)速度的型號(hào)雙向自動(dòng)感應(yīng)型號(hào)可能不適合TMS/TCK。聲學(xué)相機(jī)等混合電壓系統(tǒng)的推薦方案。當(dāng)KU5P Bank電壓與外部接口電壓不同或鏈路較長、器件較多時(shí)使用。方案D集成開關(guān)與緩沖的復(fù)雜管理芯片使用如PCIe Switch芯片模擬或?qū)S霉芾鞩C。功能強(qiáng)大可管理非常復(fù)雜的鏈路拓?fù)?。成本高設(shè)計(jì)復(fù)雜通常用于大型服務(wù)器、通信設(shè)備主板在嵌入式產(chǎn)品中過度設(shè)計(jì)。聲學(xué)相機(jī)產(chǎn)品中一般不推薦。對(duì)于大多數(shù)基于KU5P的聲學(xué)相機(jī)產(chǎn)品方案C專用JTAG緩沖/電平轉(zhuǎn)換芯片是平衡性能、可靠性和成本的最佳選擇。方案A風(fēng)險(xiǎn)太高方案B功能不完整方案D則過于復(fù)雜。4. 基于專用緩沖芯片的KU5P JTAG鏈路設(shè)計(jì)實(shí)戰(zhàn)我們以一款支持1.8V/3.3V雙向電平轉(zhuǎn)換的緩沖芯片為例設(shè)計(jì)一個(gè)完整的JTAG鏈路。假設(shè)KU5P的JTAG Bank電壓為1.8V而外部調(diào)試接口和配置Flash需要3.3V電平。4.1 器件清單與鏈路規(guī)劃核心器件KU5P (1.8V JTAG)電平轉(zhuǎn)換緩沖TXB0104 (4通道雙向電平轉(zhuǎn)換器)注意需確認(rèn)芯片速率滿足JTAG時(shí)鐘要求通常TCK可達(dá)幾十MHz。配置FlashXilinx Platform Flash (3.3V)支持JTAG間接編程。調(diào)試接口標(biāo)準(zhǔn)20pin ARM JTAG接頭 (3.3V)。鏈路順序規(guī)劃為了便于調(diào)試通常將主處理器放在鏈?zhǔn)?。?guī)劃鏈路為調(diào)試器 - 緩沖芯片 - KU5P - Flash。4.2 原理圖設(shè)計(jì)關(guān)鍵點(diǎn)以下是關(guān)鍵部分的連接示意圖和說明----------------- | 20-pin JTAG | | Connector | | (3.3V Domain) | | TDI o o TDO| | TMS o o n.c| | TCK o o n.c| | TRST o o GND| --------||------- || --------\/------- | TXB0104 | | (Level Shifter) | | A-Side(3.3V) B-Side(1.8V)| | TDI_A ----- TDI_B | | TMS_A ----- TMS_B | | TCK_A ----- TCK_B | | TRST_A----- TRST_B| --------||------- || --------\/------- | KU5P | | (1.8V Domain) | | TDI | | TMS | | TCK | | TRST | | TDO--------- --------||------- || --------\/------- | Config Flash | | (3.3V Domain) | | TDI ------- | TMS (并聯(lián)至KU5P TMS?) | TCK (并聯(lián)至KU5P TCK?) | TDO ------- 回調(diào)試器? -----------------重要說明TMS和TCK的并聯(lián)TMS和TCK是廣播信號(hào)需要從緩沖芯片輸出后同時(shí)連接到KU5P和Flash的對(duì)應(yīng)引腳。在上圖中Flash的TMS和TCK應(yīng)直接連接到緩沖芯片B側(cè)的TMS_B和TCK_B而不是從KU5P后面接。TDO的串聯(lián)TDO是數(shù)據(jù)輸出必須串聯(lián)。KU5P的TDO應(yīng)連接到Flash的TDI。Flash的TDO則最終需要返回到緩沖芯片再傳回JTAG接頭的TDO。這需要在緩沖芯片上為Flash的TDO信號(hào)也分配一個(gè)通道。緩沖芯片通道數(shù)我們需要轉(zhuǎn)換TDI, TDO, TMS, TCK, TRST五根信號(hào)線如果使用。TXB0104只有4通道因此可能需要兩片或者選擇通道數(shù)更多的芯片如TXB0108或者將TRST直接通過電阻分壓進(jìn)行電平轉(zhuǎn)換如果頻率不高。4.3 一個(gè)更完整的連接示例使用兩片TXB0104假設(shè)我們使用兩片TXB0104芯片U1和U2。信號(hào)流向: PC - [JTAG Conn] - [U1] - KU5P - Flash - [U2] - [JTAG Conn] - PC (3.3V) (3.3V) (1.8V) (1.8V) (3.3V) (3.3V) (3.3V) 詳細(xì)連接 U1 (負(fù)責(zé)下行信號(hào)): A1(TDI_A) -- JTAG_CONN.TDI B1(TDI_B) -- KU5P.TDI A2(TMS_A) -- JTAG_CONN.TMS B2(TMS_B) -- KU5P.TMS 且 -- FLASH.TMS (并聯(lián)) A3(TCK_A) -- JTAG_CONN.TCK B3(TCK_B) -- KU5P.TCK 且 -- FLASH.TCK (并聯(lián)) A4(TRST_A)-- JTAG_CONN.TRST B4(TRST_B)-- KU5P.TRST KU5P.TDO -- FLASH.TDI U2 (負(fù)責(zé)上行信號(hào)TDO): A1(TDO_A) -- FLASH.TDO B1(TDO_B) -- JTAG_CONN.TDO (U2的其他通道可懸空或用于其他電平轉(zhuǎn)換)4.4 PCB布局布線建議靠近接口放置電平轉(zhuǎn)換緩沖芯片U1 U2應(yīng)盡可能靠近JTAG連接器放置確保來自外部的信號(hào)先經(jīng)過緩沖/轉(zhuǎn)換再進(jìn)入板內(nèi)。等長與匹配對(duì)于TCK、TMS等關(guān)鍵信號(hào)走到KU5P和Flash的布線應(yīng)盡量等長避免時(shí)序偏移。如果走線較長5cm應(yīng)考慮串聯(lián)一個(gè)小電阻22-33歐姆進(jìn)行阻抗匹配減少反射。電源去耦在緩沖芯片的1.8V和3.3V電源引腳附近必須放置高質(zhì)量的濾波電容如0.1uF 10uF。接地為JTAG信號(hào)提供完整、低阻抗的回流路徑。連接器的屏蔽殼應(yīng)接地。5. 設(shè)計(jì)驗(yàn)證與常見問題排查設(shè)計(jì)完成后必須進(jìn)行系統(tǒng)性驗(yàn)證。5.1 上電前檢查目檢與量測短路檢查用萬用表檢查JTAG各信號(hào)線對(duì)地、對(duì)電源是否短路。通路檢查檢查TDI、TDO、TMS、TCK、TRST從連接器到各芯片的連通性。電平檢查確認(rèn)緩沖芯片兩側(cè)的電源電壓是否正確1.8V和3.3V。5.2 上電后基礎(chǔ)測試靜態(tài)電平不連接調(diào)試器測量JTAG連接器各引腳電壓。TDI、TMS、TCK應(yīng)為高阻態(tài)或上拉狀態(tài)取決于內(nèi)部引腳配置。特別注意KU5P的JTAG引腳默認(rèn)狀態(tài)某些芯片的JTAG引腳在未編程時(shí)可能默認(rèn)為普通IO需要確認(rèn)其初始狀態(tài)不會(huì)與外部電路沖突。動(dòng)態(tài)測試連接調(diào)試器如Xilinx Vivado Hardware Manager或ARM DS-5嘗試掃描JTAG鏈路。5.3 典型故障現(xiàn)象與排查下表列出了JTAG鏈路設(shè)計(jì)中最常見的幾種問題及排查思路故障現(xiàn)象可能原因排查步驟解決方案調(diào)試器無法檢測到任何器件1. 電源未接通或電壓錯(cuò)誤。2. TCK、TMS信號(hào)未到達(dá)芯片。3. 鏈路中存在斷路或短路。4. TRST信號(hào)狀態(tài)錯(cuò)誤如被誤拉低復(fù)位。1. 測量KU5P、緩沖芯片、Flash的電源電壓。2. 用示波器在KU5P的TCK、TMS引腳測量連接調(diào)試器并執(zhí)行掃描看是否有時(shí)鐘脈沖。3. 檢查所有JTAG信號(hào)線的連通性。4. 檢查TRST引腳的上拉/下拉電阻配置。修復(fù)電源問題檢查緩沖芯片使能端修復(fù)斷線/短路糾正TRST電路。只能檢測到鏈中第一個(gè)器件KU5P檢測不到Flash1. KU5P的TDO到Flash的TDI斷路。2. Flash的TDO回路上有問題如U2未工作。3. Flash本身未供電或損壞。4. Flash的TMS/TCK未連接。1. 檢查KU5P.TDO到Flash.TDI的走線。2. 測量Flash電源檢查其TDO引腳到U2的連通性測量U2輸入輸出電平。3. 確認(rèn)Flash的TMS、TCK與KU5P相應(yīng)引腳并聯(lián)正確。修復(fù)斷路確保Flash供電正常檢查并修復(fù)TDO回路連接。調(diào)試器檢測到的器件ID錯(cuò)誤或不穩(wěn)定1. 信號(hào)完整性差振鈴、邊沿緩慢。2. 電平轉(zhuǎn)換不匹配或延遲過大。3. 電源噪聲大。4. 接地不良。1. 用示波器觀察TDI、TDO、TCK信號(hào)質(zhì)量看上升/下降時(shí)間、過沖、振鈴。2. 確認(rèn)電平轉(zhuǎn)換芯片支持當(dāng)前TCK頻率。3. 測量電源紋波。4. 檢查系統(tǒng)接地。縮短走線增加串聯(lián)匹配電阻更換更高速的電平轉(zhuǎn)換芯片加強(qiáng)電源濾波改善接地。編程或調(diào)試過程中隨機(jī)失敗1. 接觸不良連接器、過孔。2. 外部電磁干擾。3. 芯片溫度過高導(dǎo)致不穩(wěn)定。4. 同時(shí)使用了其他復(fù)用JTAG引腳的功能如stm32禁用jtag這類操作。1. 按壓連接器或芯片觀察是否恢復(fù)。2. 在屏蔽環(huán)境下測試。3. 監(jiān)測芯片溫度。4.檢查KU5P的JTAG引腳是否被軟件重配置為其他功能。確保連接可靠為JTAG線添加屏蔽加強(qiáng)散熱在硬件設(shè)計(jì)中避免將JTAG引腳用于其他關(guān)鍵功能或在原理圖上明確標(biāo)注其復(fù)用風(fēng)險(xiǎn)。關(guān)于“禁用JTAG”的特別提醒在STM32等MCU中常有通過軟件復(fù)用JTAG引腳為普通IO的操作。對(duì)于KU5P這類FPGA雖然也可以在比特流中配置引腳功能但強(qiáng)烈建議在硬件設(shè)計(jì)階段就將JTAG引腳視為“神圣不可侵犯”的專用調(diào)試引腳不要將其規(guī)劃為普通用戶IO。否則一旦加載了禁用JTAG的配置文件硬件將無法再通過JTAG進(jìn)行更新只能通過其他方式如配置Flash恢復(fù)風(fēng)險(xiǎn)極高。6. 面向生產(chǎn)與維護(hù)的最佳實(shí)踐6.1 為量產(chǎn)設(shè)計(jì)測試點(diǎn)與自動(dòng)化預(yù)留測試點(diǎn)在JTAG信號(hào)線上緩沖芯片前后預(yù)留小型測試點(diǎn)方便生產(chǎn)線上用飛針或床針進(jìn)行邊界掃描測試Boundary Scan Test。考慮自動(dòng)化接口量產(chǎn)燒錄時(shí)可能使用彈簧針或焊接式接口而非標(biāo)準(zhǔn)連接器。確保PCB布局為此預(yù)留空間。編寫生產(chǎn)測試腳本利用邊界掃描工具如XJTAG、Goepel等編寫自動(dòng)測試腳本快速檢測開路、短路和器件型號(hào)是否正確。6.2 為維護(hù)設(shè)計(jì)安全與可靠性ESD防護(hù)在JTAG連接器的信號(hào)線上添加ESD保護(hù)二極管防止插拔時(shí)靜電損壞芯片。上拉/下拉電阻為TMS、TCK等信號(hào)配置合適的上拉電阻通常4.7kΩ-10kΩ確保在無連接時(shí)處于確定狀態(tài)避免因浮空引入噪聲或額外功耗。接口防呆使用防呆連接器如KEY定位防止誤插反接。限流考慮雖然不常見但可在電源引腳上串聯(lián)小阻值電阻或使用自恢復(fù)保險(xiǎn)絲防止外部調(diào)試器電源異常時(shí)損壞板卡。6.3 文檔與標(biāo)識(shí)原理圖標(biāo)注清晰標(biāo)注JTAG鏈路的順序和信號(hào)流向。PCB標(biāo)注在PCB上絲印JTAG連接器的引腳定義。產(chǎn)品手冊(cè)說明在產(chǎn)品維護(hù)手冊(cè)中明確JTAG接口的使用方法、電壓等級(jí)和注意事項(xiàng)。JTAG鏈路是嵌入式產(chǎn)品的“生命線”。一個(gè)魯棒的設(shè)計(jì)能在數(shù)年的產(chǎn)品周期內(nèi)為研發(fā)調(diào)試、生產(chǎn)測試和現(xiàn)場維護(hù)提供堅(jiān)實(shí)的保障。對(duì)于聲學(xué)相機(jī)這類復(fù)雜設(shè)備在KU5P周圍精心設(shè)計(jì)一個(gè)帶電平轉(zhuǎn)換和緩沖的JTAG鏈路所增加的微小成本和設(shè)計(jì)工作量與它可能避免的調(diào)試噩夢和生產(chǎn)損失相比是絕對(duì)值得的。在設(shè)計(jì)之初就按照本文所述的思路從鏈路規(guī)劃、芯片選型、原理圖設(shè)計(jì)到PCB布局進(jìn)行全盤考慮你將收獲一個(gè)穩(wěn)定、可靠、貫穿產(chǎn)品全生命周期的硬件調(diào)試基礎(chǔ)。