利用單片機(jī)實現(xiàn)CPLD的在系統(tǒng)編程
一、問題的提出
本文引用地址:http://m.butianyuan.cn/article/171994.htm嵌入式系統(tǒng)而靈活性的要求。一方面,應(yīng)用環(huán)境會對嵌入式系統(tǒng)不斷提出新的要求,需要更改最初的設(shè)計;另一方面指生產(chǎn)多個品種時希望盡量能在單一的硬件平臺上實現(xiàn)。為了最大限度地滿足靈活性的需要,嵌入式系統(tǒng)一般都設(shè)計而可編程邏輯器件CPLD。在設(shè)計階段和現(xiàn)場運(yùn)行之后的各個階段,都可能會遇到設(shè)計的升級、修改和測試問題。FLASH的使用方便了程序的更新;帶而在系統(tǒng)可編程(ISP)功能的可編程邏輯器件,使得不需重新設(shè)計印制板就可以改變原而的設(shè)計;網(wǎng)絡(luò)技術(shù)的發(fā)展,又使得遠(yuǎn)程維護(hù)成為可能。
筆者設(shè)計的嵌入式系統(tǒng),實現(xiàn)了遠(yuǎn)程維護(hù)。其中CPLD采用了XILINX公司的XC9500系列。
二、JTAG簡介
JTAG簡介
JTAG是IEEE的聯(lián)合測試行動小組(Joint Test Action Group)所制定的測試標(biāo)準(zhǔn)(IEEE1149.1-1990),使得用戶可以測試器件的邏輯和相互之間的連接。目前,它是國際上最流行的ICE技術(shù),眾多的芯片廠家都在自己的產(chǎn)品中加入JTAG口,以便用戶調(diào)試。
XILINX的XC9500系列CPLD采用了JTAG的編程和測試指令。XC9500系列CPLD帶而測試訪問口TAP(Test Access Port),包括4個引腳:
*TDI-測試數(shù)據(jù)輸入;
*TDO-測試數(shù)據(jù)輸出;
*TCK-測試口同步時鐘;
*TMS-測試模式選擇。
當(dāng)用基于PC機(jī)的編程軟件對CPLD進(jìn)行編程時,PC機(jī)的并口經(jīng)轉(zhuǎn)換板與目標(biāo)器件的TAP接口相連,完成編程工作。
在本設(shè)計上,將MCU的I/O口與CPLD的TAP接口相連,利用MCU的I/O口模擬JTAG測試口的行為,實現(xiàn)對PLD的編程。
三、SVF與XSVF
SVF (Serial Vector Format)格式由TI公司和Teradyne公司于1991年聯(lián)合開發(fā)完成。SVF文件是一個ASCII碼文件,用于描述基于IEEE.1119.1 標(biāo)準(zhǔn)的測試模式,包括激勵、預(yù)期響應(yīng)和屏蔽數(shù)據(jù)。開發(fā)SVF的初衷就是獲得一種獨(dú)立于供應(yīng)商的IEEE1149.1標(biāo)準(zhǔn)的測試模式,它能夠在各個仿真軟件和測試儀器廠商之間進(jìn)行數(shù)據(jù)交換,可以應(yīng)用于從設(shè)計驗證現(xiàn)場診斷各個階段。
SVF文件中包含了編程所需要的命令及相應(yīng)的數(shù)據(jù)。SVF文件由一系列SVF語句組成。語句以分號結(jié)束。每一個語句由一個命令和相關(guān)的參數(shù)組成。命令分為三類:狀態(tài)命令、偏移命令和并行命令。其中狀態(tài)命令說明測試序列如何驅(qū)動IEEE1149.1TAP的狀態(tài)機(jī),包括:
*SDR-掃描數(shù)據(jù)寄存器;
*SIR-掃描指令寄存器;
*ENDDR-數(shù)據(jù)寄存器掃描結(jié)束;
*ENDIR-指令寄存器掃描結(jié)束;
*RUNTEST-進(jìn)入測試/空閑狀態(tài);
*STATE-進(jìn)入特定狀態(tài);
*TRST-驅(qū)動TRST為特定電平。
XILINX 的CPLD通過自身的TAP接口接受SVF格式的編程指令和JTAG邊界掃描指令。事實上,XILINX提供的JTAGProgrammer編程軟件能夠自動將標(biāo)準(zhǔn)的JEDEC/BIT格式的編程文件轉(zhuǎn)換為SVF格式;但是SVF文件格式為ASCII碼,需要較大的存儲空間,并不適合直接用于嵌入式系統(tǒng)。為此,需要一種結(jié)構(gòu)更為緊湊的數(shù)據(jù)格式-XSVF。
XSVF用與SVF類似的方法描述IEEE1149.1總線的操作。SXVF與SVF的最大區(qū)別在于它能獲得更大的數(shù)據(jù)壓縮率,從而得到較小的文件。它是二進(jìn)制格式的。
SVF轉(zhuǎn)換為XSVF可以利用XILINX公司的軟件SVF2XSVF.EXE來實現(xiàn)。經(jīng)轉(zhuǎn)換之后的文件大小如表1所列。注意文件的大小只與芯片的型號相關(guān)而和邏輯的復(fù)雜程度無關(guān)。
評論