<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > XC9500系列CPLD遙控編程的實(shí)現

XC9500系列CPLD遙控編程的實(shí)現

作者: 時(shí)間:2012-09-20 來(lái)源:網(wǎng)絡(luò ) 收藏

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

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

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

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

3.2 XSVF文件的生成

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

3.3 嵌入式ISP編程流程

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

流程圖

XSVF格式的編程文件包含編程指令和數據,編程指令主要有三條,即XRUNTEST、XSIR和XSDR。微控制器讀取指令后進(jìn)行解釋?zhuān)⒏鶕噶顖绦邢鄳牟僮鳌?p>XRUNTEST指令指定在執行下一條XSIR和XSDR指令之前在Run-Test/ldle狀態(tài)停留的時(shí)間,指令之后緊接的4個(gè)字節為時(shí)間數值(毫秒數);當微控制器讀取的指令為XSIR時(shí),便為T(mén)MS和TCK提供激勵直至進(jìn)入Shift-IR狀態(tài),然后讀取指定的數據長(cháng)度值和數據,并將數據送到TDI口;微控制器讀取XSDR指令時(shí),首先讀取將要在Shift-IR狀態(tài)輸出的數據,再觸發(fā)TMS和TCK直接進(jìn)入Shift-IR狀態(tài),并保持TMS為低,停留在Shift-IR狀態(tài),將XSVF文件數據輸出到TDI口,并存儲從TDO口接收到的數據,在所有數據都輸出到TDI口之后,TMS變高進(jìn)入Exit-1-DR狀態(tài),然后將從TD0輸入的值和TDO預期值相比較,如果不匹配則轉出錯處理,如匹配則重新進(jìn)入Run-Test/ldle狀態(tài)。微控制器循環(huán)地從XSVF RAM中讀取指令和數據并執行,直到編程結束。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 9500 CPLD XC 遙控

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>