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

    EEPW首頁 > 嵌入式系統 > 設計應用 > 利用單片機實現CPLD的在系統編程

    利用單片機實現CPLD的在系統編程

    作者: 時間:2012-02-27 來源:網絡 收藏

    一、問題的提出

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

    嵌入式而靈活性的要求。一方面,應用環境會對嵌入式不斷提出新的要求,需要更改最初的設計;另一方面指生產多個品種時希望盡量能在單一的硬件平臺上。為了最大限度地滿足靈活性的需要,嵌入式一般都設計而可邏輯器件。在設計階段和現場運行之后的各個階段,都可能會遇到設計的升級、修改和測試問題。FLASH的使用方便了程序的更新;帶而在系統可(ISP)功能的可邏輯器件,使得不需重新設計印制板就可以改變原而的設計;網絡技術的發展,又使得遠程維護成為可能。

    筆者設計的嵌入式系統,了遠程維護。其中采用了XILINX公司的XC9500系列。

    二、JTAG簡介

    JTAG簡介

    JTAG是IEEE的聯合測試行動小組(Joint Test Action Group)所制定的測試標準(IEEE1149.1-1990),使得用戶可以測試器件的邏輯和相互之間的連接。目前,它是國際上最流行的ICE技術,眾多的芯片廠家都在自己的產品中加入JTAG口,以便用戶調試。

    XILINX的XC9500系列采用了JTAG的編程和測試指令。XC9500系列CPLD帶而測試訪問口TAP(Test Access Port),包括4個引腳:
    *TDI-測試數據輸入;
    *TDO-測試數據輸出;
    *TCK-測試口同步時鐘;
    *TMS-測試模式選擇。

    當用基于PC機的編程軟件對CPLD進行編程時,PC機的并口經轉換板與目標器件的TAP接口相連,完成編程工作。

    在本設計上,將MCU的I/O口與CPLD的TAP接口相連,MCU的I/O口模擬JTAG測試口的行為,對PLD的編程。

    三、SVF與XSVF

    SVF (Serial Vector Format)格式由TI公司和Teradyne公司于1991年聯合開發完成。SVF文件是一個ASCII碼文件,用于描述基于IEEE.1119.1 標準的測試模式,包括激勵、預期響應和屏蔽數據。開發SVF的初衷就是獲得一種獨立于供應商的IEEE1149.1標準的測試模式,它能夠在各個仿真軟件和測試儀器廠商之間進行數據交換,可以應用于從設計驗證現場診斷各個階段。

    SVF文件中包含了編程所需要的命令及相應的數據。SVF文件由一系列SVF語句組成。語句以分號結束。每一個語句由一個命令和相關的參數組成。命令分為三類:狀態命令、偏移命令和并行命令。其中狀態命令說明測試序列如何驅動IEEE1149.1TAP的狀態機,包括:
    *SDR-掃描數據寄存器;
    *SIR-掃描指令寄存器;
    *ENDDR-數據寄存器掃描結束;
    *ENDIR-指令寄存器掃描結束;
    *RUNTEST-進入測試/空閑狀態;
    *STATE-進入特定狀態;
    *TRST-驅動TRST為特定電平。

    XILINX 的CPLD通過自身的TAP接口接受SVF格式的編程指令和JTAG邊界掃描指令。事實上,XILINX提供的JTAGProgrammer編程軟件能夠自動將標準的JEDEC/BIT格式的編程文件轉換為SVF格式;但是SVF文件格式為ASCII碼,需要較大的存儲空間,并不適合直接用于嵌入式系統。為此,需要一種結構更為緊湊的數據格式-XSVF。

    XSVF用與SVF類似的方法描述IEEE1149.1總線的操作。SXVF與SVF的最大區別在于它能獲得更大的數據壓縮率,從而得到較小的文件。它是二進制格式的。

    SVF轉換為XSVF可以XILINX公司的軟件SVF2XSVF.EXE來實現。經轉換之后的文件大小如表1所列。注意文件的大小只與芯片的型號相關而和邏輯的復雜程度無關。

    42.jpg

    43.jpg


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 明溪县| 杭锦旗| 安达市| 余庆县| 永兴县| 东乌珠穆沁旗| 新沂市| 咸丰县| 迁西县| 彭泽县| 嵩明县| 周至县| 蓝山县| 孟村| 贵定县| 甘孜| 五台县| 勐海县| 浑源县| 吴桥县| 都匀市| 天津市| 和林格尔县| 博乐市| 孟州市| 巫山县| 白朗县| 苗栗市| 绿春县| 龙门县| 沙洋县| 永嘉县| 桓仁| 东乡县| 新河县| 京山县| 皮山县| 昌图县| 庆元县| 乳山市| 句容市|