• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > EDA/PCB > 設計應用 > 使用DS89C450對Xilinx PROM的在系統編程設計

    使用DS89C450對Xilinx PROM的在系統編程設計

    作者: 時間:2011-06-22 來源:網絡 收藏

    摘要:使用DS89型單片機的I/O口實現JTAG通信協議,再用部分I/O口構造片選邏輯,來對一個系統中多片 Platform Flash 進行在系統編程(ISP),以此來更新對應的FPGA的配置數據。同時,DS89通過在應用編程(IAP)來更新用戶代碼。將硬件電路設計在背板上,實現插板式機箱結構,方便系統升級。
    關鍵詞:DS89;JTAG;IAP; Platform Flash

    引言
    可編程邏輯器件(FPGA、CPLD等)廣泛用于現代電子設計中,在一個系統中往往會用1片以上的可編程邏輯器件。作為最大的供應商之一,公司的器件獲得了廣泛的應用。基于查找表技術的FPGA在應用時需要外置一個非易失性存儲器來存儲配置數據。如何方便靈活地對一個系統中多片FPGA的配置數據進行升級是本文討論的問題。

    1 系統概述
    Xilinx的Platform Flash 包括XCFxS和XCFxP系列,它們都是帶JTAG接口的PROM,都支持JTAG ISP Programming,本文主要以XCF-01S為例。DS89C450型單片機是一款超高速的高性能單片機,其顯著特點是速度快,一個機器周期只需要一個時鐘周期;通過使能,可以激活其內部的1 KB數據存儲器,來作為數據緩存;同時它具有64KB的內部程序存儲器,支持ISP、IAP。
    本設計主要實現的功能是:
    ①DS89C450的在應用編程(IAP)。通過使用IAP,單片機用戶代碼的更新和修改將十分方便。
    ②使能DS89C450內部1 KB數據存儲器,在對Platform Flash PROM編程時,作為數據緩存,這樣將無需在片外擴展數據存儲器,從而減小了電路板面積,同時提高了訪問速度,節省成本。
    ③用DS89C450的P1口的4根線模擬JTAG的時序邏輯,實現與Platform Flash PROM的通信;余下的4根線用來構造片選邏輯,將整個電路設計在背板上,將串口引出到設備面板來與上位機通信。
    ④采用匯編語言開發,使iMPACT下載和單片機下載互不沖突,方便實現插板式機箱結構。
    該設計在設備調試、遠程維護、功能擴展和修改等方面將具有很高的靈活性,系統示意圖如圖1所示。

    本文引用地址:http://www.czjhyjcfj.com/article/191142.htm

    a.JPG


    2 DS89C450 IAP的實現
    DS89C450內部集成了64 KB的Flash程序存儲器,64 KB Flash分為2部分,低32 KB區(地址范圍0000H~7FFFH)和高32 KB區(地址范圍8000H~FFFFH)。只有高32 KB區才可以由IAP程序訪問,這個空間將存放用戶代碼。DS89C450內部有一個存儲器管理單元(MMU),它實際上就是一個狀態機,獨立于處理器核心而存在,只需向相應的特殊功能寄存器中寫入命令、地址、數據等,將啟動MMU,實現對高32 KB區的擦除、編程、校驗以及系統復位。而在低32 KB區存的是IAP程序,IAP程序代碼是通過燒錄器燒寫進去的。
    IAP程序將通過串口和上位機通信,在系統上電后,上位機發出是否要更新高32 KB區代碼的命令,若不更新,則IAP程序立即跳轉至8000H處取指令,執行高32 KB區的用戶代碼;若上位機發出了更新高32KB區代碼的命令,IAP程序將進入工作狀態,它將首先擦除高32 KB區,然后準備接收新的用戶代碼(即對Platform Flash PROM操作的代碼),收到新代碼數據之后,將其寫入高32 KB區;新代碼文件全部寫入之后,由上位機發出校驗命令,IAP程序將高32 KB區按字節讀出,并計算出累加和,作為校驗和回送上位機。


    上一頁 1 2 3 4 下一頁

    關鍵詞: Xilinx C450 PROM 450

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 武威市| 福泉市| 达尔| 五莲县| 新兴县| 嘉荫县| 金塔县| 江永县| 雷山县| 繁昌县| 岳阳县| 确山县| 普宁市| 礼泉县| 乌鲁木齐市| 丹棱县| 铅山县| 霞浦县| 洛川县| 青岛市| 昌平区| 尚志市| 绥宁县| 忻城县| 尼玛县| 廊坊市| 修文县| 偏关县| 诏安县| 都昌县| 应用必备| 正镶白旗| 商洛市| 广元市| 台山市| 甘德县| 古田县| 大新县| 萍乡市| 定安县| 荥阳市|