使用DS89C450對Xilinx PROM的在系統(tǒng)編程設(shè)計
摘要:使用DS89C450型單片機的I/O口實現(xiàn)JTAG通信協(xié)議,再用部分I/O口構(gòu)造片選邏輯,來對一個系統(tǒng)中多片Xilinx Platform Flash PROM進行在系統(tǒng)編程(ISP),以此來更新對應(yīng)的FPGA的配置數(shù)據(jù)。同時,DS89C450通過在應(yīng)用編程(IAP)來更新用戶代碼。將硬件電路設(shè)計在背板上,實現(xiàn)插板式機箱結(jié)構(gòu),方便系統(tǒng)升級。
關(guān)鍵詞:DS89C450;JTAG;IAP;Xilinx Platform Flash PROM
引言
可編程邏輯器件(FPGA、CPLD等)廣泛用于現(xiàn)代電子設(shè)計中,在一個系統(tǒng)中往往會用1片以上的可編程邏輯器件。作為最大的供應(yīng)商之一,Xilinx公司的器件獲得了廣泛的應(yīng)用。基于查找表技術(shù)的FPGA在應(yīng)用時需要外置一個非易失性存儲器來存儲配置數(shù)據(jù)。如何方便靈活地對一個系統(tǒng)中多片F(xiàn)PGA的配置數(shù)據(jù)進行升級是本文討論的問題。
1 系統(tǒng)概述
Xilinx的Platform Flash PROM包括XCFxS和XCFxP系列,它們都是帶JTAG接口的PROM,都支持JTAG ISP Programming,本文主要以XCF-01S為例。DS89C450型單片機是一款超高速的高性能單片機,其顯著特點是速度快,一個機器周期只需要一個時鐘周期;通過使能,可以激活其內(nèi)部的1 KB數(shù)據(jù)存儲器,來作為數(shù)據(jù)緩存;同時它具有64KB的內(nèi)部程序存儲器,支持ISP、IAP。
本設(shè)計主要實現(xiàn)的功能是:
①DS89C450的在應(yīng)用編程(IAP)。通過使用IAP,單片機用戶代碼的更新和修改將十分方便。
②使能DS89C450內(nèi)部1 KB數(shù)據(jù)存儲器,在對Platform Flash PROM編程時,作為數(shù)據(jù)緩存,這樣將無需在片外擴展數(shù)據(jù)存儲器,從而減小了電路板面積,同時提高了訪問速度,節(jié)省成本。
③用DS89C450的P1口的4根線模擬JTAG的時序邏輯,實現(xiàn)與Platform Flash PROM的通信;余下的4根線用來構(gòu)造片選邏輯,將整個電路設(shè)計在背板上,將串口引出到設(shè)備面板來與上位機通信。
④采用匯編語言開發(fā),使iMPACT下載和單片機下載互不沖突,方便實現(xiàn)插板式機箱結(jié)構(gòu)。
該設(shè)計在設(shè)備調(diào)試、遠(yuǎn)程維護、功能擴展和修改等方面將具有很高的靈活性,系統(tǒng)示意圖如圖1所示。
2 DS89C450 IAP的實現(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程序訪問,這個空間將存放用戶代碼。DS89C450內(nèi)部有一個存儲器管理單元(MMU),它實際上就是一個狀態(tài)機,獨立于處理器核心而存在,只需向相應(yīng)的特殊功能寄存器中寫入命令、地址、數(shù)據(jù)等,將啟動MMU,實現(xiàn)對高32 KB區(qū)的擦除、編程、校驗以及系統(tǒng)復(fù)位。而在低32 KB區(qū)存的是IAP程序,IAP程序代碼是通過燒錄器燒寫進去的。
IAP程序?qū)⑼ㄟ^串口和上位機通信,在系統(tǒng)上電后,上位機發(fā)出是否要更新高32 KB區(qū)代碼的命令,若不更新,則IAP程序立即跳轉(zhuǎn)至8000H處取指令,執(zhí)行高32 KB區(qū)的用戶代碼;若上位機發(fā)出了更新高32KB區(qū)代碼的命令,IAP程序?qū)⑦M入工作狀態(tài),它將首先擦除高32 KB區(qū),然后準(zhǔn)備接收新的用戶代碼(即對Platform Flash PROM操作的代碼),收到新代碼數(shù)據(jù)之后,將其寫入高32 KB區(qū);新代碼文件全部寫入之后,由上位機發(fā)出校驗命令,IAP程序?qū)⒏?2 KB區(qū)按字節(jié)讀出,并計算出累加和,作為校驗和回送上位機。
評論