JTAG接口與Flash的設(shè)計(jì)實(shí)現(xiàn),有那些方法?
在這篇文章中,小編將為大家?guī)?lái)JTAG接口與Flash的相關(guān)報(bào)道。如果你對(duì)本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。
一、JTAG的結(jié)構(gòu)
芯片生產(chǎn)廠商如ALTERA、XILINX、ATMEL、AMD、TI等對(duì)標(biāo)準(zhǔn)進(jìn)行了擴(kuò)充,使用專(zhuān)用的擴(kuò)展指令執(zhí)行維護(hù)和診斷應(yīng)用及對(duì)可配置器件的可編程算法,使JTAG接口廣泛用于FLASH系列芯片的編程。概括起來(lái),JTAG接口主要應(yīng)用于:電路的邊界掃描測(cè)試和可編程芯片的在系統(tǒng)編程。
在硬件結(jié)構(gòu)上,JTAG的接口包括兩個(gè)部分,JTAG端口和控制器。與JTAG接口兼容的器件可以是微處理器(MPU)微控制器(MCU)PLD CPL FPGA ASIC或其它符合IEEE1149。1規(guī)范的芯片。IEEE1149。1標(biāo)準(zhǔn)中規(guī)定對(duì)應(yīng)數(shù)字集成電路的每個(gè)引腳都設(shè)有一個(gè)移動(dòng)存寄單元。稱(chēng)為邊界掃描單元BSC。它將JTAG電路與內(nèi)核邏輯電路聯(lián)系起來(lái),同時(shí)隔離內(nèi)核電路和芯片引腳。由集成電路的所有邊界掃描構(gòu)成單元掃描寄存器BSR。邊界掃描寄存器僅在進(jìn)行JTAG測(cè)試時(shí)有效,在集成電路工作正常無(wú)效,不影響集成電路的功能 。
測(cè)試邏輯的最高電路包括3個(gè)主要內(nèi)容:
·測(cè)試訪問(wèn)端口(TAP)控制器
TAP控制器提供在嵌入在JTAG兼容器件內(nèi)部的測(cè)試功能電路的訪問(wèn)控制,是一個(gè)同步狀態(tài)機(jī)。每個(gè)JTAG兼容的器件都有自己的TAP控制器。通過(guò)測(cè)試模式選擇TMS和時(shí)鐘信號(hào)TCK控制其狀態(tài)轉(zhuǎn)移,實(shí)現(xiàn)由IEEE149。1標(biāo)準(zhǔn)確定的測(cè)試邏輯電路的工作時(shí)序。
·指令寄存器
指令寄存器是基于電路的移動(dòng)寄存器,通過(guò)它可以串行輸入執(zhí)行各種操作的指令。
·數(shù)據(jù)寄存組。
數(shù)據(jù)寄存器組是一組基于電路的移位寄存器。操作指令被串行裝入由當(dāng)前的指令所選擇的數(shù)據(jù)寄存器。隨著操作的執(zhí)行,測(cè)試結(jié)果被移出。
二、JTAG接口與Flash的設(shè)計(jì)實(shí)現(xiàn)
為了將配置碼流寫(xiě)入Flash存儲(chǔ)器,上位機(jī)軟件通過(guò)JTAG下載線與JTAG接口模塊連接。JTAG接口模塊接收上位機(jī)軟件發(fā)送的JTAG信號(hào),從中提取出JTAG指令及對(duì)應(yīng)的數(shù)據(jù),并產(chǎn)生針對(duì)Flash存儲(chǔ)器的擦除和燒寫(xiě)信號(hào)。
燒寫(xiě)Flash存儲(chǔ)器和利用Flash存儲(chǔ)器配置FPGA器件時(shí),都需要對(duì)Flash存儲(chǔ)器進(jìn)行操作,因此需要設(shè)計(jì)一個(gè)控制器模塊來(lái)專(zhuān)門(mén)產(chǎn)生Flash存儲(chǔ)器的控制指令。Flash控制器要實(shí)現(xiàn)的功能是:響應(yīng)輸入的擦除、寫(xiě)、讀命令,并根據(jù)命令產(chǎn)生相應(yīng)的時(shí)序來(lái)實(shí)現(xiàn)對(duì)Flash的操作。
為了在一片F(xiàn)lash存儲(chǔ)器中存放多個(gè)配置文件,可以將Flash按照配置文件的大小分為多個(gè)區(qū)間。這樣,對(duì)于一個(gè)具體的配置文件,輸入指令的作用范圍應(yīng)該在配置文件存放的區(qū)間內(nèi)。因此,擦除某個(gè)配置文件時(shí)要選用塊擦除方式,而不是整片擦除方式。
為了及時(shí)的將一幀配置碼流寫(xiě)入Flash存儲(chǔ)器中,要求Flash存儲(chǔ)器的編程時(shí)間應(yīng)該小于FPGM指令執(zhí)行后的等待時(shí)間。根據(jù)Flash存儲(chǔ)器數(shù)據(jù)手冊(cè)上的參考數(shù)據(jù)計(jì)算后發(fā)現(xiàn),使用普通的編程方式來(lái)燒寫(xiě)一幀配置碼流時(shí)間大于等待時(shí)間,而使用寫(xiě)緩沖的編程方式來(lái)燒寫(xiě)一幀配置碼流的時(shí)間要小于等待時(shí)間,因此必須選用寫(xiě)緩沖的編程方式來(lái)燒寫(xiě)Flash存儲(chǔ)器。
JTAG接口與Flash控制器間的命令和數(shù)據(jù)翻譯由反向兼容JTAG控制器中的燒寫(xiě)控制模塊完成。它會(huì)接收J(rèn)TAG接口發(fā)送的擦除或?qū)懨睿?jīng)過(guò)轉(zhuǎn)化后產(chǎn)生相應(yīng)的Flash控制器必需的命令、地址和數(shù)據(jù)。由于一次寫(xiě)緩沖編程寫(xiě)入Flash存儲(chǔ)器的數(shù)據(jù)小于一幀配置碼流的大小,因此接收到寫(xiě)命令后,燒寫(xiě)控制模塊會(huì)配合寫(xiě)命令和對(duì)應(yīng)的操作地址,將緩沖區(qū)中一幀配置碼流分多次送往Flash控制器。
以上便是小編此次想要和大家共同分享的有關(guān)JTAG接口與Flash的內(nèi)容,如果你對(duì)本文內(nèi)容感到滿意,不妨持續(xù)關(guān)注我們網(wǎng)站喲。最后,十分感謝大家的閱讀,have a nice day!