當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]基于SOPC的通用型JTAG調試器的設計

SOPC技術的發(fā)展,給仿真器指出了新的發(fā)展方向。所謂SOPC技術,就是指用可編程技術將整個系統(tǒng)放在一塊硅片上。在傳統(tǒng)設計中電路級相互獨立的各個系統(tǒng)被集成到一塊FPGA芯片中。
    SOPC的可重用性是一種先進的設計思想。為了降低用戶的負擔,避免重復勞動,將一些在數(shù)字電路中常用但比較復雜的功能模塊,比如SDRAM控制器等,設計成可修改參數(shù)的模塊,用戶在設計系統(tǒng)時可以直接調用這些模塊。這些特定的功能模塊被稱為IPcore(知識產(chǎn)權核)。由于IPcore通常是很成熟的,因此降低了開發(fā)風險。
    本文利用SOPC技術的特點,設計一種通用型調試器。根據(jù)待調試目標板的CPU型號,將相應的調試IPcore和其他通用IPcore一起編譯生成一個嵌入式調試系統(tǒng),下載到FPGA上,實現(xiàn)一個通用型調試器。在使用同一個硬件系統(tǒng)的情況下,可以選擇不同的調試IPcore來調試不同的CPU,而不同的IPcore可以方便的互相替換。該方法在設計靈活性、開發(fā)成本、開發(fā)周期、工作性能等方面都具有優(yōu)越性。具體的實現(xiàn)采用了Cyclone開發(fā)板和Altera開發(fā)套件。

1 JTAG調試原理
    目前在線仿真調試器中使用最多的調試方法都是基于JTAG標準。1986年,聯(lián)合測試行動組發(fā)表了最早的邊界掃描測試規(guī)范(Boundary Scan Testing),經(jīng)不斷改進,1990年被批準為IEEE Std 1149.1a標準,簡稱JTAG標準。現(xiàn)在大多數(shù)復雜的IC芯片都帶有JTAG調試接口。本文所討論的調試方法也基于JTAG標準。下面首先簡單介紹一下JTAG調試原理。
    JTAG調試原理的基礎是邊界掃描測試。它通過在芯片的每個I/0腳附加一個邊界掃描單元(BoundaryScan Cell,BSC)以及一些附加的測試控制邏輯來實現(xiàn)。每個BSC有兩個數(shù)據(jù)通道:一個是測試數(shù)據(jù)通道——測試數(shù)據(jù)輸入TDI(Test Data Input)、測試數(shù)據(jù)輸出TD0(Test Data 0utput);另一個是正常數(shù)據(jù)通道——正常數(shù)據(jù)輸入NDI(Normal Data Input)、正常數(shù)據(jù)輸出ND0(Normal Data Output)。在正常工作狀態(tài),輸入和輸出數(shù)據(jù)可以自由通過每個BSC,正常工作數(shù)據(jù)從NDI進,從NDO出。在測試狀態(tài),可以選擇數(shù)據(jù)流動的通道:對于輸入引腳,可以選擇從NDI或從TDI輸入數(shù)據(jù);對于輸出引腳,可以選擇從BSC輸出數(shù)據(jù)至NDO或至TDO。芯片輸入輸出引腳上的邊界掃描寄存器單元可以相互連接起來,在芯片周圍形成一個掃描鏈。利用邊界掃描鏈就可以控制芯片的輸入,觀察芯片的輸出。一般來說,芯片都提供了若干條掃描鏈來完成測試功能。例如ARM7TDMI核提供了3條掃描鏈。
    JTAG控制器主要由3部分組成:測試端口控制器(Test Access Port,TAP)、指令寄存器和數(shù)據(jù)寄存器。其中,TAP控制器是JTAG的核心控制器,需要以下5個控制信號:TCK(邊界掃描時鐘)、TMS(JTAG測試模式選擇)、TDI(串行邊界掃描輸入數(shù)據(jù))、TDO(串行邊界掃描輸出數(shù)據(jù))和TRST(JTAG測試邏輯復位)。正是通過TAP控制器狀態(tài)的不斷變化,JTAG控制器得以控制CPU的運行。TAP控制器的狀態(tài)機如圖1所示。

2 系統(tǒng)設計與實現(xiàn)
2.1 硬件設計與實現(xiàn)
   
本文采用A1tera的FPGA器件實現(xiàn)了圖2所示的硬件結構。

    上圖列出了所需要的各類IPcore,其中大部分在Altera的開發(fā)包中可以找到,主要包括:
    Nios II/f CPU,50 MHz,Altera提供的免費軟核CPU。
    Avalon總線,用于數(shù)據(jù)通信。
    Flash控制器,用于控制和操作Flash芯片。Flash芯片中靜態(tài)存放操作系統(tǒng)、1wIP協(xié)議棧及其他調試代碼。本系統(tǒng)中使用的Flash芯片為Am29LVl60D,容量為2MB。
    SDRAM控制器,用于控制和操作SDRAM芯片。SDRAM芯片用于動態(tài)執(zhí)行調試程序。本系統(tǒng)中使用的SDRAM芯片為三星公司的K4S640432,容量為8 MB。
    Ethernet控制器,用于控制和操作網(wǎng)卡芯片。仿真器使用這個以太網(wǎng)口與PC部分的集成開發(fā)環(huán)境通信。本系統(tǒng)中使用的網(wǎng)卡芯片為LAN91C111。
    ARM7TDMI JTAG IPcore,仿真調試IPcore,需要自主開發(fā)。其內部邏輯用Verilog語言實現(xiàn),然后按照Altera IPcore的標準編寫IPcore描述文件,最后掛在三態(tài)總線上,完成全部調試功能。
    TCK發(fā)生器,TCK脈沖產(chǎn)生邏輯,需要自主開發(fā)。它利用Nios的時鐘生成TCK信號,作為時鐘來驅動ARM7TDMI JTAG IPcore。它被做成一個小的功能模塊,通過PIO與三態(tài)總線通信。
    上述所介紹的IPcore使用Altera公司的開發(fā)工具Quartus II編譯,最后下載到Altera FPGA中。本系統(tǒng)使用的CPGA芯片是Cyclone系列的EPlCl2。該芯片包含12 060個邏輯單元,具有239 616位RAM,片上集成2個鎖相環(huán),最大用戶I/O引腳達到249個。
    該硬件結構很好地體現(xiàn)了SOPC的概念,所有的IPcore(包括Altera公司發(fā)布和自主開發(fā)的)集成在一片F(xiàn)PGA上。一個片上系統(tǒng)就基本包含了在線仿真器的絕大部分功能,任何硬件結構設計的變化都在該片F(xiàn)PGA上,這使得通用在線仿真器這個概念得以實現(xiàn)。對其他芯片在線仿真,只需更改ARM7TDMI JTAG IPcore模塊,重新下載到FPGA中,便可以對另一種處理器芯片進行在線仿真。該IPcore用Verilog語言實現(xiàn),保存為armjtag.v文件。通過Quartus II里的SOPC Builder可以將該文件生成組件,再將其加入Nios系統(tǒng)中。器件引腳分配好后,就在Quartus II里全編譯,最后生成ice.pof文件。將該文件通過編程器燒寫到配置芯片EPCS4里面。這樣硬件系統(tǒng)就完成了。
2.2 軟件設計與實現(xiàn)
   
本系統(tǒng)的軟件部分包括2個模塊:一是PC端的開發(fā)調試界面,二是調試器里面的控制程序。2個模塊通過TCP/IP協(xié)議通信。
    PC端開發(fā)調試界面的主要功能是接收用戶的調試命令,并顯示調試結果。這是系統(tǒng)與用戶進行交互的唯一方式。開發(fā)調試界面對上給用戶提供統(tǒng)一的調試功能接口,對下給調試器提供統(tǒng)一的調試命令。本系統(tǒng)使用VisualC++開發(fā)。
    調試器里的控制程序主要功能是將上層用戶調試命令轉換成特定的JTAG指令序列,并控制IPcore將其發(fā)送出去,同時接收JTAG反饋信息并發(fā)送回用戶界面。本系統(tǒng)使用Nios IDE來開發(fā)。在Nios IDE的工程屬性中加入LwIP和μC/OS組件。主程序首先初始化μC/0S,初始化LwIP協(xié)議棧,再啟動μC/OS。所有程序控制放在μC/OS的OSStart()任務里。該任務首先建立一個套接字,然后在死循環(huán)中等待數(shù)據(jù)到來。當收到來自PC端的調試命令后,從數(shù)據(jù)包中分離出命令字和參數(shù),將命令字轉換成IPcore需要的調試命令,通過Avalon總線將其發(fā)送到IPcore,并等待IPcore工作完成。最后將IPcore傳回的數(shù)據(jù)打包發(fā)回PC端。
    目前提供的通用調試命令如表1所列。

    在TCP/IP數(shù)據(jù)包中,有效數(shù)據(jù)為12字節(jié)。第1至4字節(jié)是命令代碼,第5至8字節(jié)為命令參數(shù)1,第9到12字節(jié)為命令參數(shù)2。命令參數(shù)1和命令參數(shù)2是否有效取決于命令代碼。主控制程序收到數(shù)據(jù)包后,將命令代碼發(fā)往JTAG IPcore的指令端口地址,并根據(jù)命令代碼向參數(shù)端口地址發(fā)送命令參數(shù)1。如果該命令代碼需要命令參數(shù)2,則在下一個周期發(fā)送。
    在SOPC的硬件系統(tǒng)設計中,所有的外設都是統(tǒng)一編址。將JTAG IPcore的指令端口地址和參數(shù)端口地址分別設置成0x00910850和0x00910860,端口位寬為32位。因此在程序里,往IPcore發(fā)送指令只需要往地址0x00910850寫32位數(shù)據(jù);往IPcore發(fā)送參數(shù)只需要往地址Ox00910860寫32位數(shù)據(jù)。反饋數(shù)據(jù)端口地址設置成Ox00910870,端口位寬為32位。因此在程序里,讀取JTAG反饋數(shù)據(jù)只需讀取地址0x00910870的32位數(shù)據(jù)。
2.3 JTAG IPcore的實現(xiàn)
    JTAG IPcore是本調試器的核心,下面簡單介紹一下該部分的實現(xiàn)。
    IPcore的接口如圖3所示。

    該IPcore的對外接口由兩部分組成:一是與Avalon總線通信的接口部分,即圖中的左邊部分;二是與被調試CPU通信的接口部分,即圖中的右邊部分。另外,在整個實現(xiàn)中,定義了一些重要的寄存器。
    “reg[3000:O]tms,tdo"分別用來存放完成當前操作的tms序列和tdo序列。像訪問存儲器這樣的操作需要很長的tms序列和tdo序列,因此用了3001位。IPcore每次從這2個寄存器讀取1位后,就向對應的引腳發(fā)送數(shù)據(jù)。tdi寄存器只用了134位,因為不是每個tdi輸入對JTAG調試都有用。parmreg寄存器用來存放總線上傳來的參數(shù)。tdidata寄存器用來存放從tdi引腳讀取的有效數(shù)據(jù),將被發(fā)送到Avalon總線。tdicolJnter寄存器用來對tdi輸入數(shù)據(jù)計數(shù)。
    Avalon總線上來的指令發(fā)送到ins[31:0]端口。在調試器主程序里判斷指令,做出相應的動作。當IPcore讀取到某個指令后,根據(jù)命令代碼查找對應的TMS命令序列,找到以后將命令序列送到tms寄存器。同時,通過parm[31:O]端口讀取命令參數(shù),根據(jù)命令參數(shù)生成對應的TDO序列,將其送到tdo寄存器。當兩個寄存器的內容準備好后,在TCK時鐘的控制下,通過TMS引腳和TD0引腳分別串行輸出。在TDO引腳輸出的同時檢測TDI引腳,并在適當時機將TDI引腳上的數(shù)據(jù)讀入IPcore,經(jīng)過處理后發(fā)送回總線。
    由于TMS序列長度較長且其對應于各個調試命令是固定不變的,因此在本設計中,將TMS序列作成一個表,存放在IPcore里,而不是通過總線發(fā)送。需要時,根據(jù)不同的命令代碼來讀取。這樣可以節(jié)約時間,提高調試速度。

結 語
    本文介紹了一個基于SOPC的通用調試器的設計方案與實現(xiàn)過程。在開發(fā)過程中,IP復用、軟硬件協(xié)同設計等先進的嵌入式設計思想對縮短開發(fā)時間、降低開發(fā)風險起到了很好的作用。同時,自主開發(fā)的ARM7TDMIJTAG IPcore和C8051 JTAG IPcore體現(xiàn)了該調試器的通用性。接下來還將推出基于ARM其他系列和PowerPC系列的IPcore,本調試器的應用價值將得到進一步提高。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉