<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 數(shù)字信號(hào)處理(DSP )系統(tǒng)測(cè)試和調(diào)試2

          數(shù)字信號(hào)處理(DSP )系統(tǒng)測(cè)試和調(diào)試2

          作者: 時(shí)間:2008-07-19 來源:網(wǎng)絡(luò) 收藏

            JTAG 技術(shù)簡(jiǎn)介

            收縮技術(shù)(shrinking technology)的一個(gè)劣勢(shì)在于,測(cè)試小型器件的復(fù)雜程度急劇升高。當(dāng)電路板面積較大時(shí),板的測(cè)試是通過采用釘床等技術(shù)來進(jìn)行的。這種技術(shù)采用小型彈簧式測(cè)試探針來和板底部的焊盤進(jìn)行連接。這種測(cè)試方案是定制的,不僅成本太高,而且效率低下,而且在設(shè)計(jì)完成之前很多測(cè)試都無法進(jìn)行。

            隨著電路板面積的縮小,以及表面貼裝技術(shù)的改進(jìn),釘床測(cè)試的問題不斷增多。

            而且,如果一塊電路板兩面都安插了器件,根本無法留下任何可使電路板安放到測(cè)試器件上的依附點(diǎn)。

            邊界(Boundary scan)
            
            1985 年,一個(gè)歐洲電子公司組織聯(lián)合起來,試圖尋找能夠解決這些問題的方案。該組織名為聯(lián)合測(cè)試行動(dòng)組,制定了一個(gè)用于在集成電路級(jí)別上進(jìn)行邊界硬件測(cè)試的規(guī)范。1990 年,IEEE 將該規(guī)范制定為IEEE 1149.1 標(biāo)準(zhǔn),在其中說明了通過一個(gè)JTAG 端口接入任何芯片的詳情。

            邊界技術(shù)可以通過少數(shù)的專用測(cè)試管腳在嵌入式系統(tǒng)上進(jìn)行大量調(diào)試和診斷。信號(hào)被連續(xù)掃描進(jìn)出器件的I/O 單元,以在各種情況下其輸入并測(cè)試輸出。如今,邊界掃描技術(shù)幾乎成為業(yè)界最為流行并通用的可測(cè)性設(shè)計(jì)技術(shù)。

            測(cè)試管腳

            系統(tǒng)中的器件是通過一組I/O 管腳來和外界通信的。如果只靠這些管腳本身,我們無法詳細(xì)了解器件內(nèi)部的情況。但是,支持邊界掃描的器件中有一種位移寄存器,器件的每個(gè)信號(hào)管腳都有一個(gè)。如圖5 所示,這些寄存器以一個(gè)特別的路徑連接在器件的邊界上(邊界掃描因此而得名)。這樣就將每個(gè)普通輸入端口都包圍起來,并直接器件及輸出端上的可視性。

                圖5 一個(gè)采用了JTAG 邊界掃描的標(biāo)準(zhǔn)集成電路

            在測(cè)試中,器件的I/O 信號(hào)通過邊界掃描單元進(jìn)出芯片。經(jīng)過配置,邊界掃描單元可以支持外部測(cè)試,以測(cè)試芯片間的互聯(lián),也可以支持內(nèi)部測(cè)試,測(cè)試芯片內(nèi)部的邏輯。

            為了提供邊界掃描功能,IC 廠商必須在他們的器件上添加邏輯,包括每個(gè)信號(hào)管腳上的掃描寄存器、一個(gè)連接這些寄存器的專用掃描路徑、4 個(gè)(需要時(shí)可添加5 個(gè))額外的管腳以及額外的電路。

            添加這個(gè)邏輯并不會(huì)產(chǎn)生太多的負(fù)載,而且為了實(shí)現(xiàn)板級(jí)的高效測(cè)試能力,這樣的成本也是值得的。這些邊界掃描控制信號(hào)被統(tǒng)稱為測(cè)試接入端口(TAP),定義了一個(gè)用于掃描式器件的串行協(xié)議:

          TCK/- 同步內(nèi)部狀態(tài)機(jī)操作。
          TMS/模式選擇- 在TCK 的上升沿被采樣,以決定下一個(gè)狀態(tài)。
          TDI/數(shù)據(jù)進(jìn)入- 當(dāng)內(nèi)部狀態(tài)機(jī)處于正確狀態(tài)時(shí),這個(gè)信號(hào)在TCK 的上升沿被采樣,被轉(zhuǎn)移到器件的測(cè)試或編程邏輯。
          TDO/數(shù)據(jù)輸出- 當(dāng)內(nèi)部狀態(tài)機(jī)處于正確狀態(tài)時(shí),這個(gè)信號(hào)表示數(shù)據(jù)被從器件的測(cè)試或編程邏輯轉(zhuǎn)移出去,并在TCK 的下降沿有效。
          TRST/重置(可選功能)- 當(dāng)TCK 下降至很低時(shí),內(nèi)部狀態(tài)機(jī)會(huì)自動(dòng)重置。
          TCK、TMS 和TRST 輸入管腳驅(qū)動(dòng)著一個(gè)有16 種狀態(tài)的TAP 控制器狀態(tài)機(jī)。TAP控制器控制著數(shù)據(jù)和指令的交換。它根據(jù)每個(gè)TCK 上升沿的TMS 信號(hào)數(shù)值來進(jìn)入下一個(gè)狀態(tài)。只要接線方式無誤,就可以對(duì)多個(gè)IC 或電路板進(jìn)行同步測(cè)試。邊界掃描描述語言文件定義了各個(gè)器件的邊界掃描邏輯的功能。

            測(cè)試過程

            通過邊界掃描技術(shù)驗(yàn)證一個(gè)器件(或電路板)的標(biāo)準(zhǔn)測(cè)試過程如下:

          測(cè)試人員將測(cè)試或診斷數(shù)據(jù)加到器件的輸入管腳上。
          邊界掃描單元在監(jiān)控輸入管腳的邊界掃描寄存器中捕捉數(shù)據(jù)。
          數(shù)據(jù)通過TDO 管腳掃描出器件,用于驗(yàn)證。
          數(shù)據(jù)可通過TDI 管腳掃描進(jìn)器件。
          測(cè)試人員在器件的輸出管腳上驗(yàn)證數(shù)據(jù)。

            簡(jiǎn)單的測(cè)試可以發(fā)現(xiàn)一些制造缺陷,例如器件管腳斷開、器件缺失、電路板上的器件位置不正確或者方向倒反等情況,甚至能檢測(cè)到有故障的或者無法工作的器件。

            邊界掃描技術(shù)的主要優(yōu)勢(shì)在于它能夠獨(dú)立于應(yīng)用邏輯來觀察器件輸入上的數(shù)據(jù),并控制輸出的數(shù)據(jù)。另一個(gè)關(guān)鍵優(yōu)勢(shì)是它可以降低接入設(shè)備所需測(cè)試點(diǎn)的總數(shù)量。有了邊界掃描,就不再需要物理測(cè)試點(diǎn),從而降低電路板制造成本,并提高封裝。

            邊界掃描的診斷功能要好于其它測(cè)試方法。傳統(tǒng)的技術(shù)是將測(cè)試矢量(測(cè)試模式)加到器件的輸入,并監(jiān)控輸出。如果測(cè)試中發(fā)生問題,需要很長的時(shí)間才能隔離問題,并且需要進(jìn)行重新測(cè)試。而在邊界掃描技術(shù)中,邊界掃描單元可以通過監(jiān)控器件的輸入管腳來觀察器件響應(yīng),從而輕松隔離各種測(cè)試故障,比如管腳和電路板不接觸的問題。

            邊界掃描可以用于各種級(jí)別的功能測(cè)試和調(diào)試,從內(nèi)部IC 測(cè)試到板級(jí)測(cè)試,甚至能用于硬件/軟件測(cè)試中。
            
            有些測(cè)試設(shè)備和ASIC 單元供應(yīng)商就給自己的產(chǎn)品增加了JTAG 功能來執(zhí)行軟件調(diào)試功能。通于內(nèi)置到目標(biāo)CPU 中的功能支持,這個(gè)接口可以用下載代碼、執(zhí)行代碼并檢查寄存器和內(nèi)存值。這些功能已經(jīng)囊括了一個(gè)標(biāo)準(zhǔn)調(diào)試器的大部分低級(jí)別功能。另外,還可以在工作站或者電腦上運(yùn)行一個(gè)成本不高的遠(yuǎn)程調(diào)試器,來軟件調(diào)試提供支持。

            邊界掃描技術(shù)還被用來。通過控制掃描信息在目標(biāo)和調(diào)試器窗口之間的傳輸,器的前端可以行使掃描管理器的功能。當(dāng)然,當(dāng)有一個(gè)主機(jī)來控制JTAG掃描信息時(shí),必須讓連接到這一掃描鏈中的其它器件也獲知這一點(diǎn)。

            JTAG 還讓設(shè)備的內(nèi)部組件都可以被掃描(例如CPU)。這使得JTAG 可以接入所有能通過CPU 接入的設(shè)備,因而可用來調(diào)試嵌入式設(shè)備,同時(shí)還能全速進(jìn)行測(cè)試。

            這已經(jīng)成為了硅廠商使用的一個(gè)標(biāo)準(zhǔn)調(diào)試方法。JTAG 還可進(jìn)行系統(tǒng)級(jí)調(diào)試。

            如果給設(shè)備添加額外的管腳,就能實(shí)現(xiàn)額外的系統(tǒng)集成功能,包括基準(zhǔn)化、繪制概圖和系統(tǒng)級(jí)斷點(diǎn)等。

            設(shè)計(jì)周期時(shí)間壓力是由以下幾個(gè)因素造成的:

            集成等級(jí)的提高- 更多功能被集成到一個(gè)設(shè)備中,而不是添加離散器件。

            率提高- 外部支持邏輯導(dǎo)致的電氣干擾。

            更精密的封裝- 這產(chǎn)生了外部調(diào)試連接性問題。

            如今,這些同樣的因素交織在一起,給為當(dāng)前復(fù)雜的、更高率的高集成設(shè)計(jì)提供所需的系統(tǒng)調(diào)試能力的掃描類仿真器形成了極大的挑戰(zhàn)?,F(xiàn)在的系統(tǒng)正在變得越來越小、越來越快而且越來越便宜。它們的面積越來越大,性能越來越高。系統(tǒng)發(fā)展的這些積極趨勢(shì),卻給對(duì)系統(tǒng)活動(dòng)的觀察產(chǎn)生了反作用,而系統(tǒng)可視性卻正是快速部署的關(guān)鍵因素。這個(gè)效應(yīng)就叫做“日益下降的可視性”。

            片上系統(tǒng)(SoC)模式將一個(gè)完整系統(tǒng)所有的功能都集成到了一張硅芯片中,包括處理器、存儲(chǔ)設(shè)備、邏輯元件、通信外圍設(shè)備和模擬設(shè)備。這個(gè)方法的優(yōu)勢(shì)在于通過在單芯片上集成所有這些組件而縮小了組件之間的物理間隔,使設(shè)備變得更小,并進(jìn)而能夠運(yùn)行得更快,制造起來也更簡(jiǎn)單。這些優(yōu)勢(shì)使得系統(tǒng)的可靠性得以提高,總體成本也降低了。

            應(yīng)用開發(fā)人員更喜歡圖6 中顯示的理想化可視性級(jí)別,因?yàn)樗粌H提供了可視性,還能控制各種相關(guān)的系統(tǒng)活動(dòng)。隨著集成等級(jí)和時(shí)鐘的穩(wěn)步上升,可視性和控制級(jí)別則不斷下降。這些就造成了一個(gè)可視性和控制間隙,即期望的可視性和控制級(jí)別和現(xiàn)實(shí)級(jí)別之間的差距。這個(gè)間隙會(huì)隨著時(shí)間的推移而不斷擴(kuò)大。

            應(yīng)用開發(fā)工具供應(yīng)商正在努力延緩這一間隙的擴(kuò)大。開發(fā)工具、軟件和相關(guān)硬件組件必須以更少而且不同的方式來執(zhí)行更多的功能,降低由于這些因素而導(dǎo)致的使用難度。高端的仿真技術(shù)可以提供人們期望的程序活動(dòng)和執(zhí)行的可視性,而由于以上提到的各種原因,DSP 類系統(tǒng)正需要這樣的可視性。


                                圖6:可視性和控制間隙

            下一章將解釋仿真器如何通過斷點(diǎn)和單步執(zhí)行等功能來控制DSP 上的程序。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();