Zynq-7000的柔性直流輸電橋臂控制器設計
Linux內(nèi)核在CPU0啟動成功后,此時CPU1處于休眠狀態(tài),會一直輪詢0xFFFF FFF0地址處的數(shù)值,非零就把讀取到的數(shù)值裝載到PC寄存器,跳轉到對應的地址執(zhí)行指令。CPU0通過Linux的devmem命令把CPU1的DDR3內(nèi)存起始地址0x3000 0000寫入0xFFFF FFF0,啟動CPU1:devmem 0xFFFF FFF0 0x3000 0000。
CPU1啟動后,在主函數(shù)注冊中斷服務函數(shù),當FPGA的數(shù)據(jù)中斷發(fā)生時進入中斷函數(shù),進行故障判斷并生成控制指令。因為CPU1運行的是裸機程序,其中斷響應時間要比運行Linux的CPU0響應時間短。
3. 3 系統(tǒng)軟件升級
橋臂控制器在調(diào)試過程中經(jīng)常需要對代碼進行升級,而程序代碼和FPGA的配置文件固化在外部Quad-SPIFlash中,通過開啟CPU0上Linux的SSH和FTP服務,使用網(wǎng)口可以重新燒寫Flash中的文件,步驟如下:
①PC電腦通過FileZilla Client(Windows下的ftp工具)登錄Linux的ftp服務器,將新的燒寫文件上傳到Linux的文件系統(tǒng)下;
②PC電腦通過putty(Windows下的ssh工具)登錄Linux的root賬號;
③在putty界面下,使用Linux自帶的flashcp命令將上傳的文件燒寫到外部Quad—SPI Flash。
橋臂控制器重啟后,系統(tǒng)軟件得到更新。
3.4 應用程序流程
系統(tǒng)程序流程如圖4所示。
4 FPGA通信傳輸率測試
ARM和FPGA通過AXI4數(shù)據(jù)總線進行通信,數(shù)據(jù)帶寬最高達到1 024位,本文主要測試了64位突發(fā)傳輸率。
對于64位突發(fā)傳輸,分別測試FPGA工作頻率為50 MHz、100 MHz和150 MHz時,F(xiàn)PGA發(fā)送256個64位數(shù)據(jù)的用時,如表1所列。
由表1可以計算得出不同F(xiàn)PGA工作頻率下,數(shù)據(jù)位寬為64位時的傳輸速率,如表2所列。
由表2可見,使用zynq—xc7z020芯片能夠極大提高FPGA和ARM的數(shù)據(jù)傳輸速率。
結語
本文設計的橋臂控制器,采用Xilinx Zynq—xc7z020芯片,使用AXI總線取代了以前的DSP+FPGA數(shù)據(jù)總線方式,實測的最高數(shù)據(jù)傳輸率達到8.9 Gb/s,極大地改善了閥控系統(tǒng)數(shù)據(jù)通信的實時性,同時簡化了控制板卡的硬件設計,降低了板卡功耗,提升了系統(tǒng)的運行穩(wěn)定性。
利用芯片上集成的ARM Cortex-A9 MPCore雙核處理器,搭建了AMP多系統(tǒng)架構,在保證系統(tǒng)實時響應FPGA中斷的同時,移植了Linux操作系統(tǒng),提供了人機交互界面,為橋臂控制器添加了新的控制功能,簡化了柔性直流輸電閥控系統(tǒng)的整體設計。
評論