張志國,珠海歐比特控制工程股份有限公司, 珠海519085 摘要: 經(jīng)過幾十年SoC系統(tǒng)設(shè)計(jì)技術(shù)的快速發(fā)展, SOC芯片內(nèi)部頻率越來越快,編寫及運(yùn)行程序越來越大。在測試及調(diào)試過程中,用傳統(tǒng)UART串口下載及調(diào)試程序,在速度、打印等方面呈現(xiàn)出諸多不便;而且該端口在SOC/FPGA研發(fā)領(lǐng)域中不通用,而JTAG接口卻圓滿地解決了上述兩個(gè)問題。 引言 本應(yīng)用手冊主要講解JTAG口的基本原理及與歐比特最新四核芯片S698PM的連接方法和注意事項(xiàng);目的方便用戶盡快地熟悉和掌握S698PM開發(fā)系統(tǒng)的JTAG調(diào)試環(huán)境。 1. JTAG簡介 JTAG(Joint Test Action Group)是一種國際標(biāo)準(zhǔn)測試協(xié)議,與IEEE 1149.1標(biāo)準(zhǔn)高度兼容,主要應(yīng)用于芯片功能內(nèi)部測試及軟件程序調(diào)試兩大功能。 JTAG接口主要由4根信號(hào)線組成:TCK、TDI、TDO、TMS,不同的公司還添加幾根輔助信號(hào)線,例如:NTRST、VERF、GND等信號(hào)。TCK是JTAG模塊外部輸入時(shí)鐘;TDI是JTAG模塊外部數(shù)據(jù)輸入信號(hào);TDO是JTAG模塊外部輸出信號(hào);TMS是JTAG模塊的模式選擇信號(hào); 1.1. JTAG傳輸協(xié)議 1.1.1. JTAG傳輸狀態(tài)機(jī) 基于S698PM芯片JTAG的狀態(tài)機(jī)主要分兩種子狀態(tài)機(jī),分別是數(shù)據(jù)傳輸狀態(tài)機(jī)和命令傳輸狀態(tài)機(jī),并且自定義SHIFT-DR 與SHIFT-IR的循環(huán)次數(shù)不同,從而寫入或是讀出的數(shù)值寬度不同而已。而S698PM芯片定義的數(shù)據(jù)寄存器寬度為33位,而命令寄存器寬度為35位,在下面的章節(jié)里有詳細(xì)介紹寄存器上每位的功能和意義。 下圖一展示JTAG模塊里狀態(tài)機(jī)的流轉(zhuǎn)過程。 ![]() 圖一、JTAG模塊狀態(tài)機(jī) 1.1.2. JTAG時(shí)序圖 JTAG主要有四個(gè)信號(hào),TCK作為協(xié)議的時(shí)鐘信號(hào),一般默認(rèn)以100ns為周期變化,而TMS/TDI則一般是在時(shí)鐘下降沿給出,TDO則是TCK時(shí)鐘上升沿移位出來。 ![]() 圖二、JTAG時(shí)序圖 2. S698PM芯片內(nèi)部JTAG模塊 在S698PM芯片內(nèi)部JTAG模塊是由三個(gè)子模塊組成,分別是TAP(Test Access Port)、Communication Interface、AHB主設(shè)備模塊組成。該JTAG調(diào)試端口提供訪問S698PM芯片內(nèi)部AMBA總線的功能,并通過簡單的讀寫協(xié)議實(shí)現(xiàn)AMBA總線上寄存器的讀寫操作。 ![]() 圖一 JTAG控制器框圖 基于S698PM芯片的JTAG調(diào)試口帶有兩種寄存器(命令/地址寄存器、數(shù)據(jù)寄存器),并支持JTAG讀寫兩種指令;AHB讀操作主要是通過JTAG信號(hào)線把讀寫命令位、AHB傳輸類型、AHB傳輸?shù)刂返刃畔⒁莆坏矫?地址寄存器里,然后讀操作試行,并把相應(yīng)的數(shù)據(jù)保存到數(shù)據(jù)寄存器里,并通過TDO信號(hào)移位輸出來;AHB寫操作主要是通過JTAG信號(hào)線把讀寫命令位、AHB傳輸類型、AHB傳輸?shù)刂返刃畔⒁莆坏矫?地址寄存器里,然后把數(shù)據(jù)信息移位到數(shù)據(jù)寄存器里后,開始執(zhí)行AHB總線寫操作。 2.1. JTAG命令/地址寄存器
2.2. JTAG數(shù)據(jù)寄存器
3. JTAG調(diào)試 硬件主要有兩部分組成:一個(gè)是S698PM – DKIT開發(fā)板,另外一個(gè)是FTDI公司的USB Hi-Speed FT4232 MINI MODEL開發(fā)板。 S698PM – DKIT開發(fā)板是芯片S698PM快速開發(fā)的系統(tǒng)環(huán)境,詳細(xì)資料查看該開發(fā)板的配套 資料。 FT4232H MINI MODEL開發(fā)板主要完成JTAG下載器的功能。詳細(xì)資料查看FTDI公司的網(wǎng)站。 通過JTAG端口,并按照J(rèn)TAG協(xié)議發(fā)送命令或是數(shù)據(jù)就可以調(diào)試和運(yùn)行S698PM的程序,并且可以查看任意地址寄存器的數(shù)值。 ![]() 3.1. JTAG命令及參數(shù) ![]() ![]() ![]() 4. 結(jié)論 通過FTDI公司的JTAG下載器,能夠成功下載嵌入式系統(tǒng)VXWORKS代碼,并快速執(zhí)行,從反饋結(jié)果可以看出JTAG模塊功能正常,以此表明:基于S698PM芯片的JTAG控制器符合國際IEEE 1149.1標(biāo)準(zhǔn),該JTAG調(diào)試口滿足芯片的邊界掃描測試及程序調(diào)試的需求;同時(shí)程序的下載速度提高了7倍以上,大大縮短了調(diào)試等待時(shí)間。 參考文獻(xiàn) [1]. 顏軍. SPARC嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)-S698系列處理器實(shí)用教程[M]. 北京:中國標(biāo)準(zhǔn)出版社, 2013. |