1 系統(tǒng)概述
Xilinx的Platform Flash PROM包括XCFxS和XCFxP系列,,它們都是帶JTAG接口的PROM,都支持JTAG ISP Programming,,本文主要以XCF-01S為例,。DS89C450型單片機(jī)是一款超高速的高性能單片機(jī),其顯著特點(diǎn)是速度快,,一個(gè)機(jī)器周期只需要一個(gè)時(shí)鐘周期,;通過使能,,可以激活其內(nèi)部的1KB數(shù)據(jù)存儲器,來作為數(shù)據(jù)緩存,;同時(shí)它具有64KB的內(nèi)部程序存儲器,,支持ISP、IAP,。
本設(shè)計(jì)主要實(shí)現(xiàn)的功能是:
?、貲S89C450的在應(yīng)用編程(IAP)。通過使用IAP,,單片機(jī)用戶代碼的更新和修改將十分方便,。
②使能DS89C450內(nèi)部1KB數(shù)據(jù)存儲器,,在對Platform Flash PROM編程時(shí),,作為數(shù)據(jù)緩存,這樣將無需在片外擴(kuò)展數(shù)據(jù)存儲器,,從而減小了電路板面積,,同時(shí)提高了訪問速度,節(jié)省成本,。
?、塾肈S89C450的P1口的4根線模擬JTAG的時(shí)序邏輯,實(shí)現(xiàn)與Platform Flash PROM的通信,;余下的4根線用來構(gòu)造片選邏輯,,將整個(gè)電路設(shè)計(jì)在背板上,將串口引出到設(shè)備面板來與上位機(jī)通信,。
?、懿捎脜R編語言開發(fā),使iMPACT下載和單片機(jī)下載互不沖突,,方便實(shí)現(xiàn)插板式機(jī)箱結(jié)構(gòu),。
該設(shè)計(jì)在設(shè)備調(diào)試、遠(yuǎn)程維護(hù),、功能擴(kuò)展和修改等方面將具有很高的靈活性,,系統(tǒng)示意圖如圖1所示。
2 DS89C450 IAP的實(shí)現(xiàn)
DS89C450內(nèi)部集成了64 KB的Flash程序存儲器,,64 KB Flash分為2部分,,低32 KB區(qū)(地址范圍0000H~7FFFH)和高32 KB區(qū)(地址范圍8000H~FFFFH)。只有高32 KB區(qū)才可以由IAP程序訪問,,這個(gè)空間將存放用戶代碼。DS89C450內(nèi)部有一個(gè)存儲器管理單元(MMU),,它實(shí)際上就是一個(gè)狀態(tài)機(jī),,獨(dú)立于處理器核心而存在,,只需向相應(yīng)的特殊功能寄存器中寫入命令、地址,、數(shù)據(jù)等,,將啟動(dòng)MMU,實(shí)現(xiàn)對高32 KB區(qū)的擦除,、編程,、校驗(yàn)以及系統(tǒng)復(fù)位。而在低32 KB區(qū)存的是IAP程序,,IAP程序代碼是通過燒錄器燒寫進(jìn)去的,。
IAP程序?qū)⑼ㄟ^串口和上位機(jī)通信,在系統(tǒng)上電后,,上位機(jī)發(fā)出是否要更新高32 KB區(qū)代碼的命令,,若不更新,則IAP程序立即跳轉(zhuǎn)至8000H處取指令,,執(zhí)行高32 KB區(qū)的用戶代碼,;若上位機(jī)發(fā)出了更新高32KB區(qū)代碼的命令,IAP程序?qū)⑦M(jìn)入工作狀態(tài),,它將首先擦除高32 KB區(qū),,然后準(zhǔn)備接收新的用戶代碼(即對Platform Flash PROM操作的代碼),收到新代碼數(shù)據(jù)之后,,將其寫入高32 KB區(qū),;新代碼文件全部寫入之后,由上位機(jī)發(fā)出校驗(yàn)命令,,IAP程序?qū)⒏?2 KB區(qū)按字節(jié)讀出,,并計(jì)算出累加和,作為校驗(yàn)和回送上位機(jī),。
上述所有操作都是通過讀寫2個(gè)特殊功能寄存器來實(shí)現(xiàn)的,,這2個(gè)寄存器是FCNTL(地址:D5H)和FDATA(地址:D6H),圖2給出了編程的流程,。
3 DS89C450片上1 KB數(shù)據(jù)存儲器的使用
無論是在IAP程序更新高32 KB區(qū)的用戶代碼時(shí),,還是在刷新Platform Flash PROM內(nèi)的配置數(shù)據(jù)時(shí),在DS89C450和上位機(jī)之間都會有大量的數(shù)據(jù)傳遞,。DS89C450內(nèi)部集成了1 KB的數(shù)據(jù)存儲器,,它將用作數(shù)據(jù)的緩存,因此不需要再擴(kuò)展外部數(shù)據(jù)存儲器,。同時(shí),,采用匯編語言開發(fā),將有效提高資源的利用率,。這1 KB數(shù)據(jù)存儲器在默認(rèn)情況下是不可用的,,需要設(shè)置相應(yīng)的特殊功能寄存器位來激活,。將DME0位(PMR.0)置1激活它,激活之后采用MOVX指令訪問,,相比訪問外部擴(kuò)展的數(shù)據(jù)存儲器速度更快,。
4 DS89C450與Xilinx Platform Flash PROM
結(jié)合Xilinx的器件,先簡要介紹JTFAG接口的工作原理,。
JTAG又稱為邊界掃描(boundary scan),,是符合IEEE STD 1149.1的通信標(biāo)準(zhǔn),它含有一個(gè)TAP控制器,,也就是一個(gè)狀態(tài)機(jī),。所有的指令、數(shù)據(jù)的輸入以及數(shù)據(jù)的輸出都是在狀態(tài)機(jī)的控制下完成的,,如圖3所示,。
JTAG接口一般用到了下面4根線:
TMS——模式選擇輸入,在TCK的上升沿送入TAP控制器,,用于狀態(tài)的轉(zhuǎn)換,;
TDI——輸入引腳,指令和數(shù)據(jù)通過它在TCK的上升沿送入TAP控制器,;
TDO——輸出引腳,,數(shù)據(jù)在TCK的下降沿由此輸出;
TCK——輸入時(shí)鐘,,為TAP控制器的輸入和輸出提供時(shí)序控制,。
TAP控制器含有1個(gè)指令寄存器和若干數(shù)據(jù)寄存器(數(shù)據(jù)掃描鏈),對于Xilinx的可編程邏輯器件,,其指令寄存器一般為8位,。TAP控制器的工作流程是,通過TMS引腳,,使?fàn)顟B(tài)機(jī)按照圖3所示的轉(zhuǎn)換圖處于某一狀態(tài)下,,送入特定的指令,TAP控制器對指令進(jìn)行譯碼,,譯碼結(jié)果將產(chǎn)生相關(guān)動(dòng)作,,例如選擇一條數(shù)據(jù)掃描鏈準(zhǔn)備接收數(shù)據(jù),或捕獲功能引腳信號到數(shù)據(jù)寄存器等,。
本設(shè)計(jì)中,,硬件連接圖如圖4所示,每個(gè)JTAG接口都與一片74AHCT245相連,,DS89C450的P1.0,、P1.1、P1.2,、P1.3分別對應(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接口,。
當(dāng)需要對某個(gè)JTAG連接的Platform Flash PROM編程時(shí),上位機(jī)通過串口向DS89C450發(fā)出命令,,DS89C450收到正確的命令之后,,打開譯碼器的G1門,對8個(gè)JTAG接口進(jìn)行掃描,,將掃描到的IDCODE上報(bào)上位機(jī),,空的JTAG接口將掃描到全“1”碼;然后,,上位機(jī)送出需更新代碼的板卡地址,,DS89C450根據(jù)這個(gè)地址選擇指定的JTAG接口(即選擇了需要更新代碼的PlatformFlash PROM),自動(dòng)升級也就開始了,。升級結(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,,用括號內(nèi)的表示XCF01S或FPGA。因此,,在圖4中的JTAG接口指的是JTAG插針,,而非某個(gè)具體器件的JTAG口?;谶@一點(diǎn),,DS89C450要實(shí)現(xiàn)對Platform Flash PROM的操作,需要將菊花鏈中的FPGA旁路(bypass),。
要對Platform Flash PROM的內(nèi)容進(jìn)行更新,,上位機(jī)需將新文件(bin格式)按照一定長度的字節(jié)數(shù)分批次送給DS89C450,DS89C450將本次收到的定長數(shù)據(jù)寫入Platform Flash PROM,,寫完之后,,準(zhǔn)備接收下一幀,依此往復(fù),,直到將新文件處理完,。
對于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ù)將十分方便,。