專(zhuān)利名稱(chēng):一種flash芯片的加載方法和jtag控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信、電子領(lǐng)域,尤其涉及一種基于邊界掃描完成FLASH芯片加載的方法和所用JTAG控制器。
為了解決VLSI的測(cè)試問(wèn)題,1985年,由Philips、Siemens等公司成立的JETAG(Joint European Test Action Group)提出了邊界掃描技術(shù),它通過(guò)存在于器件輸入輸出管腳與內(nèi)核電路之間的BSC(邊界掃描單元)對(duì)器件及其外圍電路進(jìn)行測(cè)試,從而提高了器件的可控性和可觀察性,解決了現(xiàn)代電子技術(shù)發(fā)展帶來(lái)的上述測(cè)試問(wèn)題,可以較方便地完成由現(xiàn)代器件組裝的電路板的測(cè)試。后來(lái)由于其它地區(qū)的一些公司的加入,JETAG改名為JTAG。1990年,IEEE正式承認(rèn)了JTAG標(biāo)準(zhǔn),經(jīng)過(guò)補(bǔ)充和修訂以后,命名為IEEE1149.1-90。同年,又提出了BSDL(Boundary Scan Description Language,邊界掃描描述語(yǔ)言),后來(lái)成為IEEE1149.1-93標(biāo)準(zhǔn)的一部分。IEEE1149.1標(biāo)準(zhǔn)大大地推動(dòng)了邊界掃描技術(shù)地發(fā)展和廣泛應(yīng)用。
FLASH芯片加載技術(shù)是制成板加載中非常重要的一部分。其中可編程器件的編程方式分為兩大類(lèi)在板編程(0BP,On-Board Programming)和離板(Off-Board)編程。
離板編程是指在可編程器件被安裝到PCB之前對(duì)其進(jìn)行編程。這一般是采用編程器來(lái)完成的,常見(jiàn)的編程器有ALL-07、ALL-11等。
在板編程是指在可編程器件被焊接到PCB上以后對(duì)其進(jìn)行編程。常見(jiàn)的方法有利用ICT進(jìn)行的在線(xiàn)編程(ICP)、利用CPU進(jìn)行的系統(tǒng)編程(ISP)和利用JTAG進(jìn)行的在板編程(OBP)等。
在線(xiàn)編程ICP(In-Circuit Programming)是指通過(guò)外部設(shè)備連接到PCB上,提供必要的隔離和編程信號(hào)驅(qū)動(dòng)來(lái)實(shí)現(xiàn)編程。常見(jiàn)的如采用ICT(In CircuitTest)等測(cè)試裝備進(jìn)行的在線(xiàn)編程,需要占用昂貴的設(shè)備資源。
系統(tǒng)編程ISP(In-System Programming)是指通過(guò)系統(tǒng)上的CPU來(lái)執(zhí)行可編程器件的擦除和編程算法來(lái)實(shí)現(xiàn)可編程器件的編程。這種方式要求CPU能夠正常工作,并且需要提供額外的網(wǎng)口、串口等硬件接口進(jìn)行軟件下載。
而現(xiàn)在其余的FLASH加載方式不僅成本較高,而且容易導(dǎo)致產(chǎn)品不穩(wěn)定,而且,它們都無(wú)法處理BS器件和FLASH器件之間經(jīng)常存在的復(fù)雜的CLUSTER。
本發(fā)明的另一個(gè)目的,是提供一種JTAG控制器,通過(guò)該控制器,可以實(shí)現(xiàn)如前所述的FLASH加載方法。
一種FLASH芯片的加載方法,其特征在于通過(guò)JTAG控制器發(fā)送命令和數(shù)據(jù)給與欲加載FLASH芯片相連的邊界掃描器件,進(jìn)而將數(shù)據(jù)傳送到該FLASH芯片而實(shí)現(xiàn)加載的目的。
所述的FLASH芯片的加載方法,包括如下步驟a、通過(guò)命令掃描將FLASH芯片周邊的邊界掃描器件處于EXTEST(外部測(cè)試)狀態(tài),保證該邊界掃描器件可以通過(guò)該邊界掃描器件形成的邊界掃描鏈向外輸出命令和數(shù)據(jù);b、進(jìn)行數(shù)據(jù)移位,將數(shù)據(jù)刷新輸出到FLASH芯片;c、從FLASH芯片回讀數(shù)據(jù);d、重復(fù)步驟b和c,向FLASH芯片發(fā)出各種編程需要命令和數(shù)據(jù),直到完成FLASH芯片的加載。
所述的FLASH芯片的加載方法,還包括在第一次數(shù)據(jù)移位進(jìn)行之前,進(jìn)行一次命令移位,將EXTEST命令裝入命令寄存器。
所述的FLASH芯片的加載方法,如果在加載的過(guò)程中對(duì)命令進(jìn)行了更改,則在下一次進(jìn)行數(shù)據(jù)移位之前,要進(jìn)行一次命令移位,將EXTEST命令裝入命令寄存器。
所述的與FLASH芯片相連的邊界掃描器件,可以是一個(gè)或多個(gè),如果與FLASH芯片相連的是多個(gè)邊界掃描器件,則在數(shù)據(jù)加載的過(guò)程中,將不相關(guān)的邊界掃描器件旁路。
所述的與FLASH芯片相連的邊界掃描器件可以是直接相連,也可以是間隔有非邊界掃描器件邏輯簇的間接相連。
所述的命令和數(shù)據(jù),是通過(guò)與JTAG相連接的終端進(jìn)行輸入和控制的。
所述的終端上,安裝有邊界掃描加載系統(tǒng),該系統(tǒng)可以描述FLASH芯片結(jié)構(gòu)特征和各種操作命令。
所述的邊界掃描加載系統(tǒng)包括a、管腳定義描述與FLASH芯片相連的邊界掃描器件的相應(yīng)管腳,包括控制線(xiàn)、地址線(xiàn)和數(shù)據(jù)線(xiàn);b、塊結(jié)構(gòu)描述包括塊數(shù)定義和塊組成情況描述兩部分,其中塊數(shù)定義是用戶(hù)要指定FLASH芯片的總的塊的個(gè)數(shù);塊組成情況描述具體描述FLASH芯片每一塊的大小、最大塊擦除時(shí)間、最大塊編程時(shí)間;c、編程信息描述主要描述編程時(shí)的一些相關(guān)參數(shù)設(shè)定;d、ID碼定義主要描述廠商ID和一個(gè)設(shè)備ID;e、狀態(tài)位定義記錄對(duì)FLASH芯片進(jìn)行操作尤其是擦寫(xiě)操作時(shí)芯片的一些狀態(tài)信息,用于狀態(tài)校驗(yàn),確認(rèn)FLASH芯片某些操作是否執(zhí)行成功,或指明了操作失敗的具體原因;f、操作命令描述詳細(xì)描述對(duì)FLASH芯片進(jìn)行各種常用操作的流程和各引腳的相應(yīng)取值。
一種JTAG控制器,包括PCI接口邏輯模塊、RAM存儲(chǔ)器模塊,其特征在于還包括邊界掃描邏輯模塊,用以實(shí)現(xiàn)邊界掃描的各種信號(hào)的產(chǎn)生、輸出,所述三個(gè)模塊之間通過(guò)數(shù)據(jù)線(xiàn)相連,其中PCI接口邏輯模塊統(tǒng)一提供PCI接口,與終端機(jī)通過(guò)PCI總線(xiàn)相連,RAM存儲(chǔ)器模塊用來(lái)存儲(chǔ)數(shù)據(jù),完成PCI接口邏輯模塊與邊界掃描邏輯模塊的數(shù)據(jù)交換。
所述的JTAG控制器還包括信號(hào)調(diào)理模塊,所述的信號(hào)調(diào)理模塊與邊界掃描邏輯模塊通過(guò)數(shù)據(jù)線(xiàn)現(xiàn)連,對(duì)信號(hào)進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換過(guò)的信號(hào)輸出到待加載FLASH芯片上。
所述的信號(hào)調(diào)理模塊可以帶有多于一個(gè)的輸出端口,可以連接多個(gè)被測(cè)板,實(shí)現(xiàn)多個(gè)FLASH芯片的同時(shí)加載。
本發(fā)明相對(duì)于以前的各種加載方式,只需要在普通PC機(jī)上插一塊PCI卡,利用電路板本身的掃描鏈即可完成,對(duì)外部條件要求很低,適用性很強(qiáng)。只要電路板引出了JTAG口,上電即可加載,操作簡(jiǎn)單方便。無(wú)論在產(chǎn)品的開(kāi)發(fā)階段,還是維護(hù)階段;無(wú)論是進(jìn)行生產(chǎn)加載,還是后期程序升級(jí),都很容易完成FLASH芯片的加載。同時(shí)本發(fā)明的加載方法削減了物料成本,優(yōu)化了生產(chǎn)流程,減少了產(chǎn)品不穩(wěn)定因素,具有廣泛的應(yīng)用前景。
如
圖1所示,是現(xiàn)有技術(shù)中的加載示意圖,如圖2所示,是邊界掃描加載FLASH芯片與現(xiàn)有技術(shù)加載FLASH芯片的一個(gè)對(duì)比示意圖。
如圖3所示,是本發(fā)明的JTAG控制器的邏輯框圖,該JTAG控制器包括PCI接口邏輯模塊PCI接口邏輯實(shí)現(xiàn)了三部分功能。首先,PCI接口邏輯實(shí)現(xiàn)PCI接口即插即用功能,即在計(jì)算機(jī)初始化過(guò)程中通過(guò)BIOS系統(tǒng)可對(duì)板卡的資源進(jìn)行分配。主要包括端口地址空間分配,存儲(chǔ)器地址空間分配,中斷分配。計(jì)算機(jī)進(jìn)入工作狀態(tài)后,調(diào)用系統(tǒng)中的VXD控制程序?qū)崿F(xiàn)同板卡的數(shù)據(jù)通訊。其次,PCI接口邏輯實(shí)現(xiàn)存儲(chǔ)器和寄存器的讀寫(xiě)功能。通過(guò)對(duì)PCI總線(xiàn)信號(hào)的正確翻譯并利用接口邏輯狀態(tài)機(jī)產(chǎn)生讀寫(xiě)信號(hào),在數(shù)據(jù)和地址寄存器的配合下完成對(duì)存儲(chǔ)器和寄存器的讀寫(xiě)。第三,PCI接口邏輯通過(guò)內(nèi)部寄存器提供邊界掃描的啟動(dòng)信號(hào)并接受邊界掃描結(jié)束信號(hào)。這一部分主要實(shí)現(xiàn)RAM控制權(quán)的交接過(guò)程。在邊界掃描啟動(dòng)信號(hào)有效后,PCI接口邏輯將RAM控制權(quán)轉(zhuǎn)交給邊界掃描邏輯,禁止PCI總線(xiàn)對(duì)存儲(chǔ)器和端口的讀寫(xiě)操作。在PCI接口邏輯接收到邊界掃描結(jié)束信號(hào)后,取得存儲(chǔ)器的控制權(quán),置邊界掃描啟動(dòng)信號(hào)無(wú)效,允許PCI對(duì)存儲(chǔ)器進(jìn)行讀寫(xiě)操作。
該JTAG控制器還有一RAM存儲(chǔ)器模塊,該存儲(chǔ)器模塊是實(shí)現(xiàn)測(cè)試數(shù)據(jù)存儲(chǔ)的核心器件,其由PCI接口邏輯和邊界掃描邏輯進(jìn)行讀寫(xiě)來(lái)完成數(shù)據(jù)交換。
本發(fā)明的JTAG控制器,是在傳統(tǒng)的控制器中增加了一個(gè)邊界掃描邏輯模塊,該邊界掃描邏輯主要實(shí)現(xiàn)邊界掃描的各種信號(hào)的產(chǎn)生,即產(chǎn)生TCK,輸出TDI、TMS,將TDO存儲(chǔ)到存儲(chǔ)器中。在邊界掃描邏輯的實(shí)現(xiàn)過(guò)程中,主要是根據(jù)PCI總線(xiàn)在邊界掃描邏輯的控制端口的各種配置數(shù)據(jù),產(chǎn)生所需信號(hào)。
該P(yáng)CI接口邏輯模塊與RAM存儲(chǔ)器模塊及邊界掃描邏輯模塊通過(guò)數(shù)據(jù)線(xiàn)相連。
本發(fā)明的JTAG控制器還包括信號(hào)調(diào)理模塊,該信號(hào)調(diào)理模塊與邊界掃描邏輯模塊通過(guò)數(shù)據(jù)線(xiàn)相連,對(duì)信號(hào)進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換過(guò)的信號(hào)輸出到待加載FLASH芯片上。信號(hào)調(diào)理部分是將LVTTL信號(hào)轉(zhuǎn)變成LVDS信號(hào)用于長(zhǎng)線(xiàn)傳輸。普通10MHz的LVTTL信號(hào)是無(wú)法進(jìn)行一米左右的普通電纜傳輸?shù)?。為了保證信號(hào)的質(zhì)量和頻率在PCI-JTAG板卡輸出信號(hào)之前,先將LVTTL信號(hào)轉(zhuǎn)變?yōu)長(zhǎng)VDS信號(hào)保證信號(hào)的高質(zhì)量傳輸。
信號(hào)調(diào)理模決可以帶有多于一個(gè)的輸出端口,可以連接多個(gè)被測(cè)板,這樣,可以實(shí)現(xiàn)同時(shí)對(duì)多個(gè)目標(biāo)板同時(shí)實(shí)現(xiàn)加載。
如圖4所示,是本發(fā)明的JTAG控制器在系統(tǒng)中的連接示意圖。
如圖5所示,本發(fā)明使用的系統(tǒng)包括一終端機(jī),該終端機(jī)與被編程制成板PCB板相連接,帶有本發(fā)明的JTAG控制器。在終端機(jī)上安裝有加載系統(tǒng),該加載系統(tǒng)編譯一個(gè)包含描述FLASH芯片結(jié)構(gòu)特征和各種操作命令的文件,這就是FLASH芯片編程腳本FPS(FLASH PROGRAMMING SCRIPT)。FPS有著特定的編寫(xiě)格式和語(yǔ)法規(guī)則,它是進(jìn)行FLASH芯片編程的基本輸入工具。我們還提供FLASH芯片腳本自動(dòng)生成工具,結(jié)合系統(tǒng)自身的FLASH芯片器件庫(kù)和CPU器件庫(kù),引導(dǎo)用戶(hù)生成編程所需要的腳本。
FPS采用ANSIC語(yǔ)言格式設(shè)計(jì)和編寫(xiě),由六部分組成a、管腳定義管腳定義描述FLASH芯片所有管腳的信息。值得注意的是,管腳定義描述的不是FLASH芯片本身的管腳,而是與FLASH芯片相連的某個(gè)BS器件的相應(yīng)的管腳,一般就是與之直接或間接相連的BS器件相應(yīng)的管腳。
系統(tǒng)將管腳分為3類(lèi)分別進(jìn)行定義,它們是控制線(xiàn)、地址線(xiàn)和數(shù)據(jù)線(xiàn)。b、塊結(jié)構(gòu)描述塊結(jié)構(gòu)描述包括塊數(shù)定義和塊組成情況描述兩部分。
塊數(shù)定義就是用戶(hù)要指定FLASH芯片的總的塊的個(gè)數(shù)。
塊組成情況描述具體描述FLASH芯片每一塊的大小、最大塊擦除時(shí)間、最大塊編程時(shí)間(WORD模式和BYTE模式)。c、編程信息描述編程信息描述主要描述編程時(shí)的一些相關(guān)參數(shù)設(shè)定。包括三個(gè)部分起始編程塊,起始偏移量,地址增量。d、ID碼定義每個(gè)FLASH芯片都會(huì)包含一個(gè)廠商ID(Manufacturer ID)和一個(gè)設(shè)備ID(Device ID),ID碼定義主要描述這兩個(gè)ID的情況,以便進(jìn)行ID校驗(yàn)。ID碼定義包括三部分ID碼長(zhǎng)度、ID碼存放地址、ID值。e、狀態(tài)位定義每個(gè)FLASH芯片都有一個(gè)狀態(tài)寄存器SR,它記錄對(duì)FLASH芯片進(jìn)行操作尤其是擦寫(xiě)操作時(shí)芯片的一些狀態(tài)信息,用于狀態(tài)校驗(yàn),確認(rèn)FLASH芯片某些操作是否執(zhí)行成功,或指明了操作失敗的具體原因。
通常的SR是一個(gè)8位的字,每一位代表一個(gè)狀態(tài),每一位的取值標(biāo)識(shí)該狀態(tài)的成功與否。f、操作命令描述FLASH芯片是Memory芯片的一種,但是它和別的Memory芯片不一樣,對(duì)它進(jìn)行讀寫(xiě)操作需要先在特定的地址寫(xiě)入一些特定的命令字方能進(jìn)行。操作命令描述就是詳細(xì)描述對(duì)FLASH芯片進(jìn)行各種常用操作的流程和各引腳的相應(yīng)取值。
在本發(fā)明中,通過(guò)JTAG控制器發(fā)送命令和數(shù)據(jù)給與欲加載FLASH芯片相鄰的邊界掃描器件,進(jìn)而將數(shù)據(jù)傳送到該FLASH芯片而實(shí)現(xiàn)加載的目的。本發(fā)明的FLASH芯片加載系統(tǒng)支持對(duì)FLASH芯片進(jìn)行在板編程。該FLASH芯片并不被要求帶有JTAG接口,而且它一般也不是BS器件,但是它所有的地址線(xiàn)、數(shù)據(jù)線(xiàn)和控制信號(hào)都直接或者間接連接到邊界掃描器件上。運(yùn)行于PC機(jī)上的FLASH芯片加載系統(tǒng)通過(guò)JTAG控制器發(fā)送命令和數(shù)據(jù)給邊界掃描器件,并將數(shù)據(jù)傳送到欲編程的FLASH芯片上,即可實(shí)現(xiàn)編程。
在被編程制成板上,與欲加載FLASH芯片相鄰的一個(gè)或多個(gè)邊界掃描器件相連接,如果是多個(gè)邊界掃描器件相連,則形成一個(gè)邊界掃描鏈,不管是一個(gè)還是多個(gè)邊界掃描器件,都不影響本發(fā)明的實(shí)現(xiàn),邊界掃描加載系統(tǒng)就是通過(guò)這一系列的掃描鏈串行移位來(lái)完成FLASH芯片的在板編程。
如圖6所示,是本發(fā)明加載的一個(gè)流程圖。
首先在終端上通過(guò)命令掃描使得欲加載FLASH芯片周邊的邊界掃描器件處于EXTEST狀態(tài),以保證這些邊界掃描器件可以通過(guò)該邊界掃描鏈向外輸出數(shù)據(jù)和命令;關(guān)于EXTEST命令,它是器件廠家必須提供的公用命令,利用它來(lái)進(jìn)行芯片的整體失效模擬是最適合的。外部測(cè)試命令將選擇串行連接在TDI與TDO之間的邊界掃描寄存器構(gòu)成的掃描鏈,同時(shí)器件內(nèi)核邏輯從輸入/輸出管腳中隔離出來(lái)。利用EXTEST命令可以完成的功能1)進(jìn)行芯片之間的互連測(cè)試;
2)模擬芯片整體失效功能;3)可以控制邊界掃描器件對(duì)其余器件進(jìn)行讀寫(xiě)等操作。
其中2和3是本發(fā)明所創(chuàng)新,在本發(fā)明的加載方法中,該ESTEST命令是用來(lái)完成模擬芯片整體失效,對(duì)其他器件進(jìn)行讀寫(xiě)等操作。
然后就是數(shù)據(jù)移位,將數(shù)據(jù)刷新輸出;然后從FLASH芯片上回讀數(shù)據(jù)和命令;再進(jìn)行數(shù)據(jù)移位,重新刷新并輸出;......,就這樣反復(fù)進(jìn)行數(shù)據(jù)掃描和數(shù)據(jù)輸出,向FLASH芯片輸入各種命令和數(shù)據(jù),以及從FLASH芯片讀回?cái)?shù)據(jù),一直到完成FLASH芯片編程為止。
在加載過(guò)程中,每次數(shù)據(jù)移位完畢,所有數(shù)據(jù)均已經(jīng)準(zhǔn)備好,在進(jìn)入U(xiǎn)pdate-DR狀態(tài)時(shí)邊界掃描器件的邊界掃描單元將數(shù)據(jù)打入FLASH芯片,此時(shí)命令寄存器中的命令要求是EXTEST。所以在執(zhí)行數(shù)據(jù)移位之前,還要進(jìn)行一次命令移位,將EXTEST命令裝入命令寄存器。但是完成命令裝載以后,只要不更改命令,就不再需要進(jìn)行命令移位了,此時(shí)只需要進(jìn)行數(shù)據(jù)移位,所以數(shù)據(jù)移位是編程的主要操作,掃描鏈的長(zhǎng)度是影響FLASH芯片編程速度的關(guān)鍵因素之一。
在系統(tǒng)加載的過(guò)程中,當(dāng)掃描鏈由多個(gè)邊界掃描器件組成時(shí),系統(tǒng)會(huì)自動(dòng)將不相關(guān)的邊界掃描器件旁路掉。
由于都是一些串行移位的過(guò)程,所以利用JTAG加載FLASH芯片的速度就成為一個(gè)重要的性能指標(biāo)。
在實(shí)際的操作中,以下因素影響JTAG進(jìn)行FLASH芯片編程的速度邊界掃描鏈的長(zhǎng)度掃描鏈越長(zhǎng)意味著編程時(shí)間越長(zhǎng);數(shù)據(jù)掃描的次數(shù)完成每個(gè)地址單元(Byte/Word等)的編程操作需要的掃描次數(shù)越多,編程速度就越低。這與FLASH芯片的操作時(shí)序有關(guān),執(zhí)行一個(gè)FLASH芯片的操作命令所需要的總線(xiàn)周期越多,編程速度越慢;數(shù)據(jù)寬度對(duì)相同字節(jié)數(shù)的內(nèi)容進(jìn)行編程,8-bit的數(shù)據(jù)寬度要比16-bit的數(shù)據(jù)寬度多需要一倍的編程時(shí)間,也就是說(shuō)一次編程的數(shù)據(jù)寬度越大,編程速度越快;TCK頻率TCK的頻率越低,編程速度越慢;TCK頻率越高,編程速度越快。但是每一個(gè)BS器件都有一個(gè)TCK頻率的上限(在BSDL中有說(shuō)明),超過(guò)此頻率,信號(hào)就不穩(wěn)定了。
如圖7所示,是通過(guò)邊界掃描器件加載FLASH芯片的連接示意圖,其中一個(gè)FLASH芯片可以通過(guò)一個(gè)邊界掃描器件完全控制,也可以通過(guò)多個(gè)邊界掃描器件連接。當(dāng)在邊界掃描鏈中裝載了適當(dāng)?shù)臄?shù)據(jù)后,在EXTEST命令下將數(shù)據(jù)傳送給FLASH芯片。假設(shè)圖中的邊界掃描器件有224個(gè)邊界掃描單元BSC(以Intel 486DX2為例),系統(tǒng)必須使用224個(gè)TCK時(shí)鐘完成在每一個(gè)BSC中裝載預(yù)定的數(shù)據(jù),這稱(chēng)為一次數(shù)據(jù)移位(DR-Shift)。
如圖8所示,是以28F160C3為例的FLASH編程時(shí)序圖。由圖中可以看出,Intel系列的Flash芯片完成一個(gè)地址的Byte/Word編程操作需要4個(gè)周期,具體如圖9所示。其中,完成FLASH芯片一個(gè)地址的Byte/Word編程操作需要寫(xiě)入一個(gè)命令字和一組地址/數(shù)據(jù),而每一次都需要完成WE從1到0的跳變,所以編程一個(gè)Byte/Word需要JTAG進(jìn)行四次數(shù)據(jù)掃描。
下面舉例計(jì)算編程一個(gè)4-Mbit Intel Flash memory(以芯片PA28F400BV為例)所需的理論時(shí)間。A、一次數(shù)據(jù)移位的時(shí)間TCK=80ns Cycle Time(12.5Mhz TCK)224 BSC bits×80ns=17.92us特別注意,在圖7中標(biāo)注的時(shí)間是20us,而我們這里計(jì)算的結(jié)果是17.92us,多出的2.08us是考慮到系統(tǒng)開(kāi)銷(xiāo),包括JTAG編程控制器傳輸數(shù)據(jù)的開(kāi)銷(xiāo)等。B、編程一個(gè)Byte/Word的時(shí)間4 signal transitions×17.92us=71.68usC、編程4-Mbit的FLASH所需要的時(shí)間262,144 words(flash memory density)×71.68us=18.79sD、編程8-Kword boot block的所需要的時(shí)間8,192 words(boot block size)×71.68us=0.59sE、由上可知,JTAG對(duì)FLASH編程的時(shí)間計(jì)算公式為FLASH芯片編程總時(shí)間=(TCK周期)×(掃描鏈長(zhǎng)度)×(編程一個(gè)位或字需要的掃描次數(shù))×(FLASH芯片編程大小)應(yīng)用實(shí)例應(yīng)用我們的邊界掃描加載系統(tǒng)對(duì)某產(chǎn)品中某電路板實(shí)現(xiàn)FLASH編程,BS器件為mpc850的CPU(掃描鏈長(zhǎng)度為397),F(xiàn)LASH芯片為28F320C3TA(4MB,16位數(shù)據(jù)寬度),TCK工作頻率設(shè)置為5MHZ,F(xiàn)LASH的編程大小為2M字節(jié)。實(shí)際編程時(shí)間為365秒,理論編程時(shí)間為397×4×2×1024×1024×8/(16×5×1000000)=333秒,實(shí)際消耗時(shí)間與理論時(shí)間相近(系統(tǒng)存在一定開(kāi)銷(xiāo))。
本發(fā)明利用電路板上的邊界掃描器件完成FLASH芯片的加載,成本很低,操作簡(jiǎn)單方便,而且不會(huì)對(duì)電路板造成任何損傷,其操作簡(jiǎn)單,實(shí)驗(yàn)和模擬中,取得了很好的效果。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉該技術(shù)的人在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書(shū)的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種FLASH芯片的加載方法,其特征在于通過(guò)JTAG控制器發(fā)送命令和數(shù)據(jù)給與欲加載FLASH芯片相連的邊界掃描器件,進(jìn)而將數(shù)據(jù)傳送到該FLASH芯片而實(shí)現(xiàn)加載的目的。
2.如權(quán)利要求1所述的FLASH芯片的加載方法,其特征在于包括如下步驟a、通過(guò)命令掃描將FLASH芯片的周邊的邊界掃描器件設(shè)置為EXTEST狀態(tài),保證該邊界掃描器件可以通過(guò)該邊界掃描器件形成的邊界掃描鏈輸出命令和數(shù)據(jù);b、進(jìn)行數(shù)據(jù)移位,將數(shù)據(jù)刷新輸出至FLASH芯片;c、從FLASH芯片回讀數(shù)據(jù);d、重復(fù)步驟b和c,向FLASH芯片發(fā)出各種編程需要命令和數(shù)據(jù),直到完成FLASH芯片的加載。
3.如權(quán)利要求2所述的FLASH芯片的加載方法,其特征在于如步驟b中所述的數(shù)據(jù)移位是在進(jìn)行一次命令移位,將EXTEST命令裝入命令寄存器后才進(jìn)行的,如果在加載的過(guò)程中對(duì)命令進(jìn)行了更改,則在下一次進(jìn)行數(shù)據(jù)移位之前,要進(jìn)行一次命令移位,將EXTEST命令裝入命令寄存器。
4.如權(quán)利要求2所述的FLASH芯片的加載方法,其特征在于所述的與欲加載FLASH芯片相鄰的邊界掃描器件,可以是一個(gè)或多個(gè),如果與FLASH芯片相連的是多個(gè)邊界掃描器件,則在數(shù)據(jù)加載的過(guò)程中,將不相關(guān)的邊界掃描器件旁路。
5.如權(quán)利要求2所述的FLASH芯片的加載方法,其特征在于所述的與FLASH芯片相連的邊界掃描器件為直接相連或間隔有非邊界掃描器件邏輯簇的間接相連。
6.如權(quán)利要求1、2、3、4或5所述的FLASH芯片的加載方法,其特征在于所述的命令和數(shù)據(jù),是通過(guò)終端輸入和控制的,所述的終端上安裝有JTAG控制器。
7.如權(quán)利要求6所述的FLASH芯片的加載方法,其特征在于所述的終端上,安裝有邊界掃描加載系統(tǒng),該系統(tǒng)描述FLASH結(jié)構(gòu)特征和各種操作命令,包括a、管腳定義描述與FLASH芯片相連的邊界掃描器件的相應(yīng)管腳,包括控制線(xiàn)、地址線(xiàn)和數(shù)據(jù)線(xiàn);b、塊結(jié)構(gòu)描述包括塊數(shù)定義和塊組成情況描述兩部分,其中塊數(shù)定義是用戶(hù)要指定FLASH芯片的總的塊的個(gè)數(shù);塊組成情況描述具體描述FLASH芯片每一塊的大小、最大塊擦除時(shí)間、最大塊編程時(shí)間;c、編程信息描述主要描述編程時(shí)的一些相關(guān)參數(shù)設(shè)定;d、ID碼定義主要描述廠商ID和一個(gè)設(shè)備ID;e、狀態(tài)位定義記錄對(duì)FLASH芯片進(jìn)行操作尤其是擦寫(xiě)操作時(shí)芯片的一些狀態(tài)信息,用于狀態(tài)校驗(yàn),確認(rèn)FLASH芯片某些操作是否執(zhí)行成功,或指明了操作失敗的具體原因;f、操作命令描述詳細(xì)描述對(duì)FLASH芯片進(jìn)行各種常用操作的流程和各引腳的相應(yīng)取值。
8.一種JTAG控制器,包括PCI接口邏輯模塊、RAM存儲(chǔ)器模塊,其特征在于還包括邊界掃描邏輯模塊,用以實(shí)現(xiàn)邊界掃描的各種信號(hào)的產(chǎn)生、輸出,所述三個(gè)模塊之間通過(guò)數(shù)據(jù)線(xiàn)相連,所述的PCI接口邏輯模塊統(tǒng)一提供PCI接口,與終端機(jī)通過(guò)PCI總線(xiàn)相連,所述的RAM存儲(chǔ)器模塊用來(lái)存儲(chǔ)數(shù)據(jù),完成PCI接口邏輯模塊與邊界掃描邏輯模塊的數(shù)據(jù)交換。
9.如權(quán)利要求8所述的JTAG控制器,其特征在于還包括信號(hào)調(diào)理模塊,所述的信號(hào)調(diào)理模塊與邊界掃描邏輯模塊通過(guò)數(shù)據(jù)線(xiàn)相連,對(duì)信號(hào)進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換過(guò)的信號(hào)輸出到待加載FLASH芯片上。
10.如權(quán)利要求9所述的JTAG控制器,其特征在于所述的信號(hào)調(diào)理模塊可以帶有多于一個(gè)的輸出端口,可以連接多個(gè)被測(cè)板,實(shí)現(xiàn)多個(gè)FLASH芯片的同時(shí)加載。
全文摘要
一種FLASH芯片加載方法,其特征在于通過(guò)JTAG控制器發(fā)送命令和數(shù)據(jù)給與欲加載FLASH芯片相鄰的邊界掃描器件,進(jìn)而將數(shù)據(jù)傳送到該FLASH芯片而實(shí)現(xiàn)加載的目的。本發(fā)明相對(duì)于以前的各種加載方式,只需要在普通PC機(jī)上插一塊PCI卡,利用電路板本身的掃描鏈即可完成,對(duì)外部條件要求很低,適用性很強(qiáng)。
文檔編號(hào)G06F9/00GK1462979SQ02122108
公開(kāi)日2003年12月24日 申請(qǐng)日期2002年5月30日 優(yōu)先權(quán)日2002年5月30日
發(fā)明者李穎悟, 袁標(biāo), 游志強(qiáng) 申請(qǐng)人:華為技術(shù)有限公司