使用Zynq-7000设计桥臂控制器的分析测试和其结果对比

使用Zynq-7000设计桥臂控制器的分析测试和其结果对比,第1张

摘要: 介绍了基于Xilinx Zynq7000芯片的柔性直流输电桥臂控制器的设计方案。集成在Zynq7000芯片上的FPGAARM之间采用AXI4总线传输数据;配置芯片上的ARM双核各自运行独立的应用程序,移植了Linux *** 作系统;同时,基于Linux增加了HDMI图形控制界面和SD卡数据记录等功能。FPGA和ARM间的数据速率实测达到8.9 Gb/s,大大地提高了桥臂控制系统的实时性。

柔性直流输电技术是基于电压源换流器(VSC)的新一代直流输电技术,通过控制IGBT的通断来实现子模块投切状态的转换。阀控系统的桥臂控制器根据接收到的子模块16位电容电压和32位状态信息,生成子模块控制指令,并下发到每个子模块。由于子模块的数量比较多(一个桥臂为576个子模块),需要传输的数据量比较大(总共27.6 Kb),并且阀控系统对控制周期有严格的要求[1](控制过程严格控制在100 μs内)。

目前的桥臂控制器普遍采用DSP+FPGA的设计架构,FPGA将接收到的数据处理后传送给DSP,DSP对数据进行故障判断生成控制指令,FPGA读取控制指令并通过光纤发送到子模块。两者之间采用32位数据总线进行数据交互,数据传输速率低于1Gb/s,传输子模块数据大概需要30 μs,占用了控制周期较长的时间,降低了阀控系统的控制实时性。

Xilinx的Zynq7000系列芯片将FPGA和ARM集成到一个芯片上,两者之间可以通过64位的内存映射型AXI接口进行双向数据传输,理论带宽为9.6 Gb/s。ARM和FPGA直接通过AXI4数据总线进行通信,理论数据线宽度达到1 024位,对于突发长度,最多支持256位,能够极大地提高FPGA和ARM的数据通信传输率,保证系统实时运行[2]。

本文设计的桥臂控制器采用Zynq xc7z020芯片,使用AXI4总线取代了DSP+FPGA的数据总线,同时利用ARM 双核CortexA9处理子系统和丰富的外设资源,进一步提升了桥臂控制器的功能。

1 系统总体结构设计

本文所设计的桥臂控制器由集成在Zynqxc7z020内的双核ARM CortexA9 MPCore处理器(CPU0+CPU1)所控制,这两个处理器可以同时运行各自独立的 *** 作系统和软件程序,而且可以通过片内RAM进行通信。

为了保证ARM对FPGA中断的实时响应,将CPU1配置为运行裸机程序,执行中断服务函数,主要完成故障检测和控制指令生成。而CPU0运行Linux *** 作系统,提供用户控制图形界面和网络通信等功能。CPU0和CPU1通过片内256K的RAM进行数据通信,这种双核架构称为不对称的多处理机系统(Asymmetric MulTIProcessing,AMP)模式。

Zynqxc7z020芯片的FPGA接收到子模块的电容电压数据后,进行排序及冗余处理,然后利用AXI_Master_Connector的AXI总线IP核将数据转换为AXI4总线数据格式,通过ARM与FPGA的64位AXI HP(High Performance)高速接口传输到外部的DDR3中,数据传输完毕后,FPGA向ARM的CPU1发送一个中断请求。

ARM的CPU1接收到中断后,从DDR3内存读取数据并进行故障判断处理,同时通知CPU0的Linux *** 作系统,在图形界面实时显示数据变化并通过网口向后台发送事件信息。

CPU1数据处理完毕后,生成子模块控制指令并写入DDR3指定内存区,FPGA通过AXI_Master_Connector总线IP核从DDR3读取数据,并通过光纤发送到每个子模块。

运行Linux的CPU0作为主节点,提供HDMI图形界面,并负责系统上电硬件初始化、启动CPU1、将位配置文件烧写到FPGA中和升级系统软件等工作。方案的整体框架如图1所示。

使用Zynq-7000设计桥臂控制器的分析测试和其结果对比,图1 桥臂控制器系统框架图,第2张

 

图1 桥臂控制器系统框架图

2 硬件平台设计

桥臂控制器的硬件平台主要分为ARM和FPGA两部分。使用Xilinx XPS硬件设计软件,配置Zynq处理器中ARM部分的外设,如图2所示。

使用Zynq-7000设计桥臂控制器的分析测试和其结果对比,图2 桥臂控制器ARM侧外设配置,第3张

 

图2 桥臂控制器ARM侧外设配置

程序代码和FPGA的配置文件固化在外部QuadSPI Flash中,Enet0用来与后台进行网络通信,SD0可以挂接SD卡,I2C0用来挂接RTC8564JE芯片,I2C1控制器配置HDMI输出芯片Sil9134,系统使用UART1输出调试信息。

FPGA部分的硬件平台包括数据预处理的IP核、AXI总线控制IP核(IN_AXI_MASTER和OUT_AXI_MASTER),以及产生中断的irq_gen_0 IP核,构建了FPGA、ARM和DDR3的数据流通道[3],如图3所示。

使用Zynq-7000设计桥臂控制器的分析测试和其结果对比,图3 桥臂控制器FPGA硬件设计,第4张

 

图3 桥臂控制器FPGA硬件设计

添加AXI总线控制IP核时,需指定AXI协议为AXI4,数据带宽为64位(最高1 024位),并将ARM与FPGA的64位AXI HP接口映射到DDR3内存的高端1 MB地址(0x3FF0 0000~0x3FFF FFFF),用来存储接收到的子模块数据以及生成的控制指令[4]。
     

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2717332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存