使用DS89C450對(duì)Xilinx PROM的在系統(tǒng)編程設(shè)計(jì)
本設(shè)計(jì)中,硬件連接圖如圖4所示,每個(gè)JTAG接口都與一片74AHCT245相連,DS89C450的P1.0、P1.1、P1.2、P1.3分別對(duì)應(yīng)TMS、TD-I、TDO、TCK的功能;而P1.4、P1.5、P1.6、P1.7通過譯碼器74HC138構(gòu)造片選邏輯。當(dāng)P1.7為低電平時(shí),譯碼器74HC138所有的輸出引腳/Y0~/Y7均為高電平,所有74AHCT245的/0E腳均為高,因此,所有的JTAG接口均未選中,這時(shí),它們都可以通過Xilinx Impact軟件進(jìn)行操作。這個(gè)狀態(tài)作為系統(tǒng)上電之后的默認(rèn)狀態(tài)。圖4作為示意圖,只畫出了2個(gè)JTAG接口,而最多可以連接8個(gè)JTAG接口。本文引用地址:http://cafeforensic.com/article/191142.htm
當(dāng)需要對(duì)某個(gè)JTAG連接的Platform Flash PROM編程時(shí),上位機(jī)通過串口向DS89C450發(fā)出命令,DS89C450收到正確的命令之后,打開譯碼器的G1門,對(duì)8個(gè)JTAG接口進(jìn)行掃描,將掃描到的IDCODE上報(bào)上位機(jī),空的JTAG接口將掃描到全“1”碼;然后,上位機(jī)送出需更新代碼的板卡地址,DS89C450根據(jù)這個(gè)地址選擇指定的JTAG接口(即選擇了需要更新代碼的PlatformFlash PROM),自動(dòng)升級(jí)也就開始了。升級(jí)結(jié)束,關(guān)閉譯碼器的G1門,回到默認(rèn)狀態(tài)。
一般情況下,具體到某一塊板卡,其上的JTAG插針,是將Platform Flash PROM的JTAG和FPGA的JTAG串聯(lián)起來的菊花鏈結(jié)構(gòu)。例如,插針的TDI→(TDI,TDO)→(TDI,TDO)→插針的TDO,用括號(hào)內(nèi)的表示XCF01S或FPGA。因此,在圖4中的JTAG接口指的是JTAG插針,而非某個(gè)具體器件的JTAG口?;谶@一點(diǎn),DS89C450要實(shí)現(xiàn)對(duì)Platform Flash PROM的操作,需要將菊花鏈中的FPGA旁路(bypass)。
要對(duì)Platform Flash PROM的內(nèi)容進(jìn)行更新,上位機(jī)需將新文件(bin格式)按照一定長度的字節(jié)數(shù)分批次送給DS89C450,DS89C450將本次收到的定長數(shù)據(jù)寫入Platform Flash PROM,寫完之后,準(zhǔn)備接收下一幀,依此往復(fù),直到將新文件處理完。
對(duì)于XCF01S,其扇區(qū)大小為256字節(jié),下面以每次傳輸256個(gè)字節(jié)為例,圖5給出了操作Platform Flash PROM的指令及編程流程。表1為操作Platform FlashPROM的指令。
結(jié)語
本設(shè)計(jì)的優(yōu)點(diǎn)是低成本、高性能、高靈活性。低成本體現(xiàn)在硬件上,用到的器件少,節(jié)省電路板空間;DS89C450是一款高性能的單片機(jī),速度快,工作穩(wěn)定;高靈活性體現(xiàn)在2個(gè)更新——一是可通過IAP程序更新DS89C450內(nèi)部高32 KB區(qū)的用戶程序,二是可通過DS89CA50內(nèi)部高32 KB區(qū)的用戶程序來更新Platform Flash PROM內(nèi)的數(shù)據(jù)。同時(shí),多片Platform Flash PROM的更新實(shí)現(xiàn)。這樣,整個(gè)系統(tǒng)的更新維護(hù)將十分方便。
評(píng)論