基于CPLD的USB下載電纜設(shè)計(jì)
引 言
本文引用地址:http://butianyuan.cn/article/82548.htm隨著片上系統(tǒng)(SoC,System on Chip)時代的到來,包括復(fù)雜可編程邏輯器件(CPLD,Complex ProgrammableLogic Devi(e)和現(xiàn)場可編程門陣列(FPGA,F(xiàn)ield Programmable Gate Array)的可編程邏輯器件(具有在系統(tǒng)可再編程的獨(dú)特優(yōu)點(diǎn)),應(yīng)用越來越廣泛。這給用于可編程邏輯器件編程的下載電纜提出了更高的要求。
本文研究基于IEEEll49.1標(biāo)準(zhǔn)的USB下載接口電路的設(shè)計(jì)及實(shí)現(xiàn)。針對Altera公司的FPGA器件Cy-ckone,通過分析它的邊界掃描測試結(jié)構(gòu)和各種JTAG指令,研究它的編程過程和編程特點(diǎn),并提出設(shè)計(jì)方案。在接口電路硬件設(shè)計(jì)中,選用FTDI公司的USB控制芯片F(xiàn)T2蠣BM,實(shí)現(xiàn)USB物理層和鏈路層協(xié)議的解析;Altera公司的可編程邏輯器件EPM7064實(shí)現(xiàn)接口邏輯。與傳統(tǒng)的基于PC并口的下載電纜相比,本設(shè)計(jì)的USB下載接口電路具有支持熱插拔、體積小、便于攜帶、降低對PC硬件傷害、編程速度快等明顯優(yōu)點(diǎn)。
目前已開發(fā)的USB下載線一般需要在主機(jī)端另行設(shè)計(jì)軟件來控制與下載線及目標(biāo)器件之間的通信和數(shù)據(jù)傳送;但是這樣不僅繁瑣,而且可能由于PC機(jī)操作系統(tǒng)的不同而影響兼容性。本文討論的USB下載線能在A1tera公司的QuartusII開發(fā)環(huán)境下直接使用,無須在主機(jī)端另行設(shè)計(jì)通信軟件。
1 系統(tǒng)結(jié)構(gòu)及工作原理
接口電路的整體結(jié)構(gòu)框圖如圖l所示。由于USB下載電路涉及了IEEEll49.1標(biāo)準(zhǔn)和USB協(xié)議,所以接口電路主要包含兩大部分。一部分是USB接口,它連接主機(jī)和可編程邏輯器件,主要功能是進(jìn)行USB和并行I/O口之間的數(shù)據(jù)格式轉(zhuǎn)換,用USB控制芯片實(shí)現(xiàn)。另一部分是JTAG接口,它連接USB控制芯片和需要編程的邏輯器件,主要功能是進(jìn)行并行I/O口和JTAG之間數(shù)據(jù)的轉(zhuǎn)換,轉(zhuǎn)換邏輯通過對可編程邏輯器件進(jìn)行設(shè)計(jì)來實(shí)現(xiàn)。其他還包括一些必要的時鐘電路和電壓轉(zhuǎn)換電路。
從主機(jī)傳來的USB數(shù)據(jù),由USB控制芯片轉(zhuǎn)換為8位并行數(shù)據(jù),經(jīng)數(shù)據(jù)總線送到CPLD的可編程I/O引腳。CPLD的數(shù)據(jù)也可以通過數(shù)據(jù)總線送回USB控制芯片,然后轉(zhuǎn)換為USB的數(shù)據(jù)格式傳回主機(jī)。CPLD收到USB控制芯片傳送來的數(shù)據(jù)后,對數(shù)據(jù)進(jìn)行解析,然后轉(zhuǎn)換為符合IEEEll49.1標(biāo)準(zhǔn)的編程數(shù)據(jù)和指令,從TCK、TMS和TDI串行輸出到要編程的可編程邏輯器件。從可編程邏輯器件返回的符合IEEEll49.1標(biāo)準(zhǔn)的校驗(yàn)數(shù)據(jù)從TDO串行輸入到CPLD,轉(zhuǎn)換為8位并行數(shù)據(jù)傳送給USB控制芯片,最后返回主機(jī)進(jìn)行校驗(yàn)。
USB控制芯片F(xiàn)T245BM負(fù)責(zé)解釋USB協(xié)議,完成雙方數(shù)據(jù)通信。其內(nèi)部有USB協(xié)議引擎,并且集成的電平轉(zhuǎn)換器使FIFO和控制信號能與電壓為5 V、3.3 V的邏輯器件接口。USB接口電路原理如圖2所示。
2 對目標(biāo)器件的配置過程
對目標(biāo)器件的配置流程如圖3所示。
(1)識別USB下載接口
Quanus II編程器通過PC的USB接口向FT245BM依次發(fā)7e、7f、7c三個數(shù)據(jù)。FT245BM經(jīng)PC的USB接口向編程器依次返回3個數(shù)據(jù)03。在編程器收到返回的3個03以后,編程器就識別此USB下載接口電路為它的下載硬件平臺。
(2)測試BST電路
測試包括以下幾個方面:
復(fù)位測試;
指令寄存器移位測試;
標(biāo)志寄存器移位測試。
(3)下載編程數(shù)據(jù)
這個步驟把所有的編程數(shù)據(jù)從PC下載進(jìn)可編程邏輯器件的配置存儲器。因?yàn)檫@一步驟下載的編程數(shù)據(jù)龐大,所以下載時采用特快模式,并且不進(jìn)行校驗(yàn),避免影響下載速度。下載選用的指令是Ahcra公司自己定義的DOWNLOAD指令(00 0000 0010)。
(4)內(nèi)建自測試
內(nèi)建自測試是在電路內(nèi)部建立測試生成、施加、分析和測試控制結(jié)構(gòu),使得電路能夠測試自己。
(5)校驗(yàn)器件的IDCODE
在整個編程流程結(jié)束以前,再一次校驗(yàn)器件的ID—CODE,確認(rèn)器件的BST電路在下載編程數(shù)據(jù)后足否工作正常。這一步的過程和標(biāo)志寄存器移位測試完全相同。
(6)返回測試邏輯復(fù)位狀態(tài)
保持TMS為高6個TCK周期,使TAP控制器進(jìn)入測試邏輯復(fù)位狀態(tài),并且讓TMS保持為高電平,以保持測試邏輯復(fù)位狀態(tài)。這樣器件的測試邏輯失效,器件的核心邏輯開始正常工作。
結(jié)語
本文所討論的USB數(shù)據(jù)下載線能在Altera公司的QuartusII開發(fā)環(huán)境下直接使用,無須另行開發(fā)主機(jī)端通信程序。與傳統(tǒng)并幾的編程方式相比,優(yōu)勢十分明顯:支持熱插拔,使用更方便;體積更小,攜帶方便;編程速度更快,節(jié)約時間。為國際數(shù)字系統(tǒng)設(shè)計(jì)領(lǐng)域內(nèi)正蓬勃興起的在線編程(ISP)技術(shù)的推廣與發(fā)展提供了有力的支持。
評論