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