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