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