新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > XC9500系列CPLD遙控編程的實現

        XC9500系列CPLD遙控編程的實現

        作者: 時間:2012-09-20 來源:網絡 收藏

        數據輸入由紅外收發器實現(如可用Siemens公司的IRM3105),它所接收到的數據是由PC機生成的按RS232格式打包的XSVF格式編程數據文件,收發器通過UART(Universal Asynchronous Receiver Transmitter) 接口和95108相連。

        95108包含URAT接收器、時序控制狀態機及總線控制器等。URAT接收器對接收到的數據進行校驗,并且去掉起始位和結束位,如果接收正確則通知時序控制狀態機數據接收就緒,如果接收不正確則給出錯誤指示。

        時序控制狀態機是編程的核心,包括四種狀態,即HIGH、LOW、DOWNLOAD和ISP。XSVF文件的第一、二個字節為傳輸的字節總數,在狀態HIGH和LOW時字節總數的高低字節被保存到一個變量中,當在DOWNLOAD狀態時,每當往XSVF RAM寫入一個字節,該變量的值減1,同時XSVF RAM的地址增1。一旦全部XSVF文件都寫入XSVF RAM中,狀態機便進入ISP狀態,此時中斷微控制器,微控制器響應中斷并進入中斷服務子程序。中斷服務子程序根據XSVF RAM中的信息通過JTAG對 器件進行編程。

        總線控制器根據時序控制狀態機控制XSVF格式數據存儲器的數據總線的切換,當在DOWNLOAD狀態時,總線控制權交由XC95108;當在ISP狀態時,總線控制權交由8031;當在HIGH和LOW狀態時,總線為高阻狀態。

        3.2 XSVF文件的生成

        上面提到過遠程端接收到的數據為XSVF文件,XSVF文件是由本地PC機生成的,它是如何生成的呢?首先將設計數據輸入,開發系統進行設計轉換生成JEDEC器件編程文件;然后,由Xilinx公司提供的軟件EZTagTM自動讀取JEDEC文件并轉換成SVF文件,SVF格式是專門用來描述IEEE 1149.1(JTAG)總線操作的格式,SVF文件中不僅包含的編程數據,也包含有編程命令,但由于SVF格式為ASXII碼,因要求較大內存,不適合嵌入式應用;最后,由軟件svf2xsvf將SVF格式轉換成XSVF格式,XSVF格式為壓縮的二進制格式,占用存儲空間小,因而更適合嵌入式應用。

        3.3 嵌入式ISP編程流程

        XC通過四線測試存取端口TAP(Yest Access Port 和TAP控制器來執行系統內編程和IEEE 1149.1邊界掃描測試(JTAG)。TAP包括TCK、TMS、TDI和TDO四個引腳,TAP控制器是16狀態的狀態機,控制邊界掃描電路按照TMS運行,執行由IEEE規定的狀態圖(詳細內容參見參考文獻1,下面所提到的狀態,如Shift-1R、Shift-DR等包含在16個狀態之中)。微控制器根據XSVF文件提供的指令和數據激勵TAP端口,在TAP控制器的控制下實現XC 的ISP編程。流程圖如圖3所示。

        流程圖

        XSVF格式的編程文件包含編程指令和數據,編程指令主要有三條,即XRUNTEST、XSIR和XSDR。微控制器讀取指令后進行解釋,并根據指令執行相應的操作。

        XRUNTEST指令指定在執行下一條XSIR和XSDR指令之前在Run-Test/ldle狀態停留的時間,指令之后緊接的4個字節為時間數值(毫秒數);當微控制器讀取的指令為XSIR時,便為TMS和TCK提供激勵直至進入Shift-IR狀態,然后讀取指定的數據長度值和數據,并將數據送到TDI口;微控制器讀取XSDR指令時,首先讀取將要在Shift-IR狀態輸出的數據,再觸發TMS和TCK直接進入Shift-IR狀態,并保持TMS為低,停留在Shift-IR狀態,將XSVF文件數據輸出到TDI口,并存儲從TDO口接收到的數據,在所有數據都輸出到TDI口之后,TMS變高進入Exit-1-DR狀態,然后將從TD0輸入的值和TDO預期值相比較,如果不匹配則轉出錯處理,如匹配則重新進入Run-Test/ldle狀態。微控制器循環地從XSVF RAM中讀取指令和數據并執行,直到編程結束。


        上一頁 1 2 下一頁

        關鍵詞: 9500 CPLD XC 遙控

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 土默特右旗| 河津市| 吴桥县| 建宁县| 家居| 洪雅县| 武乡县| 嵊州市| 资兴市| 雅江县| 吴旗县| 台中县| 尼勒克县| 杭州市| 会昌县| 孝感市| 江油市| 固始县| 通化市| 莫力| 通辽市| 邮箱| 昌都县| 安义县| 五寨县| 浦北县| 天台县| 合作市| 崇仁县| 英超| 商城县| 镇原县| 屯留县| 平邑县| 敦煌市| 凤山市| 兰坪| 视频| 普陀区| 黄梅县| 南平市|